; LLVM IR from libxsmm/libxsmm :: src (generator_mateltwise_reduce_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_mateltwise_kernel_config_struct = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i8 }
%struct.libxsmm_meltw_descriptor = type <{ i32, i32, i32, i32, i32, i32, i8, i8, i8, i16, i16, i8 }>
%struct.libxsmm_generated_code = type { ptr, i32, i32, i32, i32, i32, i32 }
%struct.libxsmm_mateltwise_gp_reg_mapping_struct = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }

@.str = external hidden unnamed_addr constant [94 x i8], align 1
@libxsmm_ninit = external global i32, align 4
@libxsmm_verbosity = external global i32, align 4
@.str.10 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [63 x i8], align 1
@__func__.libxsmm_generator_reduce_rows_avx512_microkernel = external hidden unnamed_addr constant [49 x i8], align 1

; Function Attrs: nounwind uwtable
declare dso_local void @libxsmm_generator_reduce_set_lp_vlen_vname_vmove_x86(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #0

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

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

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

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

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

declare void @libxsmm_generator_initialize_avx_mask(ptr noundef, i32 noundef, i32 noundef, i32 noundef) #2

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

declare void @libxsmm_generator_mateltwise_header_n_loop(ptr noundef, ptr noundef, ptr noundef, i32 noundef) #2

declare void @libxsmm_x86_instruction_unified_vec_move(ptr noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i8 noundef signext, i32 noundef, i32 noundef, i32 noundef, i32 noundef) #2

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

declare void @libxsmm_generator_mateltwise_footer_n_loop(ptr noundef, ptr noundef, ptr noundef, i32 noundef, i32 noundef) #2

declare void @libxsmm_generator_vcvt_hf8_tofrom_f32_avx512_prep_stack(ptr noundef, i32 noundef) #2

declare void @libxsmm_generator_initialize_avx512_mask(ptr noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef) #2

declare void @libxsmm_generator_vcvtneps2bf8_avx512_prep_stack(ptr noundef, i32 noundef) #2

declare void @libxsmm_generator_vcvtneps2bf16_avx512_prep_stack(ptr noundef, i32 noundef) #2

declare void @libxsmm_x86_instruction_vec_move(ptr noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i8 noundef signext, i32 noundef, i32 noundef, i32 noundef, i32 noundef) #2

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

declare void @libxsmm_generator_cvtbf8ps_avx512(ptr noundef, i8 noundef signext, i32 noundef, i32 noundef) #2

declare void @libxsmm_generator_vcvthf8_to_f32_avx512_preppedstack(ptr noundef, i8 noundef signext, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef) #2

declare void @libxsmm_generator_vcvtneps2bf8_avx512_preppedstack(ptr noundef, i8 noundef signext, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef) #2

declare void @libxsmm_generator_vcvtf32_to_hf8_avx512_preppedstack(ptr noundef, i8 noundef signext, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef) #2

declare void @libxsmm_generator_vcvtneps2bf16_avx512_preppedstack(ptr noundef, i8 noundef signext, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef) #2

declare void @libxsmm_x86_instruction_vec_compute_2reg_mask_sae_imm8(ptr noundef, i32 noundef, i8 noundef signext, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i8 noundef zeroext, i32 noundef) #2

declare void @libxsmm_generator_vcvtneps2bf8_avx512_clean_stack(ptr noundef, i32 noundef) #2

declare void @libxsmm_generator_vcvtneps2bf16_avx512_clean_stack(ptr noundef, i32 noundef) #2

declare void @libxsmm_generator_vcvt_hf8_tofrom_f32_avx512_clean_stack(ptr noundef, i32 noundef) #2

declare i32 @printf(ptr noundef, ...) #2

declare void @libxsmm_generator_load_vreg_signmask(ptr noundef, i8 noundef zeroext, i32 noundef, i32 noundef, i32 noundef) #2

declare void @libxsmm_x86_instruction_alu_reg(ptr noundef, i32 noundef, i32 noundef, i32 noundef) #2

declare void @libxsmm_generator_mateltwise_header_m_loop(ptr noundef, ptr noundef, ptr noundef, i32 noundef) #2

declare void @libxsmm_generator_cvtbf16ps_sse_avx2_avx512(ptr noundef, i8 noundef signext, i32 noundef, i32 noundef) #2

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) #2

declare void @libxsmm_generator_mateltwise_footer_m_loop(ptr noundef, ptr noundef, ptr noundef, i32 noundef, i32 noundef) #2

; Function Attrs: nounwind uwtable
define dso_local void @libxsmm_generator_reduce_rows_avx512_microkernel(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr noundef %3, ptr noundef %4) #0 {
  %6 = alloca ptr, align 8
  %7 = alloca ptr, align 8
  %8 = alloca ptr, align 8
  %9 = alloca ptr, align 8
  %10 = alloca ptr, align 8
  %11 = alloca i32, align 4
  %12 = alloca i32, align 4
  %13 = alloca i32, align 4
  %14 = alloca i32, align 4
  %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 i8, align 1
  %43 = alloca i8, align 1
  %44 = alloca i8, align 1
  %45 = alloca i32, align 4
  %46 = alloca i32, align 4
  %47 = alloca i32, align 4
  %48 = alloca i32, align 4
  %49 = alloca i32, align 4
  %50 = alloca i32, align 4
  %51 = alloca i32, align 4
  %52 = alloca i32, align 4
  %53 = alloca i32, align 4
  %54 = alloca i32, align 4
  %55 = alloca i32, align 4
  %56 = alloca i32, align 4
  %57 = alloca i32, align 4
  %58 = alloca i32, align 4
  %59 = alloca i32, align 4
  %60 = alloca i32, align 4
  %61 = alloca i32, align 4
  %62 = alloca i32, align 4
  %63 = alloca i32, align 4
  %64 = alloca i32, align 4
  %65 = alloca i32, align 4
  %66 = alloca i32, align 4
  %67 = alloca i32, align 4
  %68 = alloca i32, align 4
  %69 = alloca i32, align 4
  %70 = alloca i32, align 4
  %71 = alloca i32, align 4
  %72 = alloca i32, align 4
  %73 = alloca i32, align 4
  %74 = alloca i32, align 4
  %75 = alloca i32, align 4
  %76 = alloca i32, align 4
  %77 = alloca i32, align 4
  store ptr %0, ptr %6, align 8, !tbaa !5
  store ptr %1, ptr %7, align 8, !tbaa !5
  store ptr %2, ptr %8, align 8, !tbaa !5
  store ptr %3, ptr %9, align 8, !tbaa !5
  store ptr %4, ptr %10, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #3
  store i32 0, ptr %11, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #3
  store i32 16, ptr %22, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #3
  store i32 0, ptr %25, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #3
  store i32 0, ptr %26, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #3
  store i32 24, ptr %27, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #3
  store i32 24, ptr %28, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #3
  store i32 16, ptr %29, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #3
  store i32 16, ptr %30, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #3
  store i32 16, ptr %31, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #3
  store i32 0, ptr %32, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #3
  store i32 1, ptr %33, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #3
  store i32 78, ptr %34, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #3
  store i32 30, ptr %35, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #3
  store i32 31, ptr %36, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #3
  store i32 27, ptr %37, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #3
  store i32 28, ptr %38, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #3
  store i32 6, ptr %39, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #3
  store i32 5, ptr %40, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #3
  store i32 4, ptr %41, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %42) #3
  %78 = load ptr, ptr %9, align 8, !tbaa !5
  %79 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %78, i32 0, i32 128
  %80 = load i8, ptr %79, align 4, !tbaa !11
  store i8 %80, ptr %42, align 1, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 1, ptr %43) #3
  %81 = load ptr, ptr %9, align 8, !tbaa !5
  %82 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %81, i32 0, i32 128
  %83 = load i8, ptr %82, align 4, !tbaa !11
  store i8 %83, ptr %43, align 1, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 1, ptr %44) #3
  %84 = load ptr, ptr %9, align 8, !tbaa !5
  %85 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %84, i32 0, i32 128
  %86 = load i8, ptr %85, align 4, !tbaa !11
  store i8 %86, ptr %44, align 1, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #3
  %87 = load ptr, ptr %9, align 8, !tbaa !5
  %88 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %87, i32 0, i32 6
  %89 = load i32, ptr %88, align 4, !tbaa !14
  store i32 %89, ptr %45, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #3
  %90 = load ptr, ptr %9, align 8, !tbaa !5
  %91 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %90, i32 0, i32 9
  %92 = load i32, ptr %91, align 4, !tbaa !15
  store i32 %92, ptr %46, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #3
  %93 = load ptr, ptr %10, align 8, !tbaa !5
  %94 = getelementptr inbounds %struct.libxsmm_meltw_descriptor, ptr %93, i32 0, i32 10
  %95 = load i16, ptr %94, align 1, !tbaa !16
  %96 = zext i16 %95 to i32
  %97 = icmp eq i32 %96, 18
  br i1 %97, label %122, label %98

98:                                               ; preds = %5
  %99 = load ptr, ptr %10, align 8, !tbaa !5
  %100 = getelementptr inbounds %struct.libxsmm_meltw_descriptor, ptr %99, i32 0, i32 10
  %101 = load i16, ptr %100, align 1, !tbaa !16
  %102 = zext i16 %101 to i32
  %103 = icmp eq i32 %102, 20
  br i1 %103, label %122, label %104

104:                                              ; preds = %98
  %105 = load ptr, ptr %10, align 8, !tbaa !5
  %106 = getelementptr inbounds %struct.libxsmm_meltw_descriptor, ptr %105, i32 0, i32 10
  %107 = load i16, ptr %106, align 1, !tbaa !16
  %108 = zext i16 %107 to i32
  %109 = icmp eq i32 %108, 21
  br i1 %109, label %122, label %110

110:                                              ; preds = %104
  %111 = load ptr, ptr %10, align 8, !tbaa !5
  %112 = getelementptr inbounds %struct.libxsmm_meltw_descriptor, ptr %111, i32 0, i32 10
  %113 = load i16, ptr %112, align 1, !tbaa !16
  %114 = zext i16 %113 to i32
  %115 = icmp eq i32 %114, 70
  br i1 %115, label %122, label %116

116:                                              ; preds = %110
  %117 = load ptr, ptr %10, align 8, !tbaa !5
  %118 = getelementptr inbounds %struct.libxsmm_meltw_descriptor, ptr %117, i32 0, i32 10
  %119 = load i16, ptr %118, align 1, !tbaa !16
  %120 = zext i16 %119 to i32
  %121 = icmp eq i32 %120, 69
  br label %122

122:                                              ; preds = %116, %110, %104, %98, %5
  %123 = phi i1 [ true, %110 ], [ true, %104 ], [ true, %98 ], [ true, %5 ], [ %121, %116 ]
  %124 = zext i1 %123 to i64
  %125 = select i1 %123, i32 1, i32 0
  store i32 %125, ptr %47, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #3
  %126 = load ptr, ptr %10, align 8, !tbaa !5
  %127 = getelementptr inbounds %struct.libxsmm_meltw_descriptor, ptr %126, i32 0, i32 10
  %128 = load i16, ptr %127, align 1, !tbaa !16
  %129 = zext i16 %128 to i32
  %130 = icmp eq i32 %129, 19
  br i1 %130, label %137, label %131

131:                                              ; preds = %122
  %132 = load ptr, ptr %10, align 8, !tbaa !5
  %133 = getelementptr inbounds %struct.libxsmm_meltw_descriptor, ptr %132, i32 0, i32 10
  %134 = load i16, ptr %133, align 1, !tbaa !16
  %135 = zext i16 %134 to i32
  %136 = icmp eq i32 %135, 20
  br label %137

137:                                              ; preds = %131, %122
  %138 = phi i1 [ true, %122 ], [ %136, %131 ]
  %139 = zext i1 %138 to i64
  %140 = select i1 %138, i32 1, i32 0
  store i32 %140, ptr %48, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %49) #3
  %141 = load ptr, ptr %10, align 8, !tbaa !5
  %142 = getelementptr inbounds %struct.libxsmm_meltw_descriptor, ptr %141, i32 0, i32 10
  %143 = load i16, ptr %142, align 1, !tbaa !16
  %144 = zext i16 %143 to i32
  %145 = icmp eq i32 %144, 18
  br i1 %145, label %158, label %146

146:                                              ; preds = %137
  %147 = load ptr, ptr %10, align 8, !tbaa !5
  %148 = getelementptr inbounds %struct.libxsmm_meltw_descriptor, ptr %147, i32 0, i32 10
  %149 = load i16, ptr %148, align 1, !tbaa !16
  %150 = zext i16 %149 to i32
  %151 = icmp eq i32 %150, 20
  br i1 %151, label %158, label %152

152:                                              ; preds = %146
  %153 = load ptr, ptr %10, align 8, !tbaa !5
  %154 = getelementptr inbounds %struct.libxsmm_meltw_descriptor, ptr %153, i32 0, i32 10
  %155 = load i16, ptr %154, align 1, !tbaa !16
  %156 = zext i16 %155 to i32
  %157 = icmp eq i32 %156, 19
  br label %158

158:                                              ; preds = %152, %146, %137
  %159 = phi i1 [ true, %146 ], [ true, %137 ], [ %157, %152 ]
  %160 = zext i1 %159 to i64
  %161 = select i1 %159, i32 1, i32 0
  store i32 %161, ptr %49, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #3
  %162 = load ptr, ptr %10, align 8, !tbaa !5
  %163 = getelementptr inbounds %struct.libxsmm_meltw_descriptor, ptr %162, i32 0, i32 10
  %164 = load i16, ptr %163, align 1, !tbaa !16
  %165 = zext i16 %164 to i32
  %166 = icmp eq i32 %165, 21
  %167 = zext i1 %166 to i64
  %168 = select i1 %166, i32 1, i32 0
  store i32 %168, ptr %50, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #3
  %169 = load ptr, ptr %10, align 8, !tbaa !5
  %170 = getelementptr inbounds %struct.libxsmm_meltw_descriptor, ptr %169, i32 0, i32 10
  %171 = load i16, ptr %170, align 1, !tbaa !16
  %172 = zext i16 %171 to i32
  %173 = icmp eq i32 %172, 70
  %174 = zext i1 %173 to i64
  %175 = select i1 %173, i32 1, i32 0
  store i32 %175, ptr %51, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %52) #3
  %176 = load ptr, ptr %10, align 8, !tbaa !5
  %177 = getelementptr inbounds %struct.libxsmm_meltw_descriptor, ptr %176, i32 0, i32 10
  %178 = load i16, ptr %177, align 1, !tbaa !16
  %179 = zext i16 %178 to i32
  %180 = icmp eq i32 %179, 69
  %181 = zext i1 %180 to i64
  %182 = select i1 %180, i32 1, i32 0
  store i32 %182, ptr %52, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %53) #3
  %183 = load ptr, ptr %10, align 8, !tbaa !5
  %184 = getelementptr inbounds %struct.libxsmm_meltw_descriptor, ptr %183, i32 0, i32 9
  %185 = load i16, ptr %184, align 1, !tbaa !19
  %186 = zext i16 %185 to i32
  %187 = and i32 %186, 64
  %188 = icmp sgt i32 %187, 0
  %189 = zext i1 %188 to i64
  %190 = select i1 %188, i32 1, i32 0
  store i32 %190, ptr %53, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #3
  store i32 32, ptr %54, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #3
  store i32 80, ptr %55, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #3
  store i32 1, ptr %56, align 4, !tbaa !9
  %191 = load ptr, ptr %6, align 8, !tbaa !5
  %192 = load ptr, ptr %9, align 8, !tbaa !5
  %193 = load ptr, ptr %10, align 8, !tbaa !5
  call void @libxsmm_generator_reduce_set_lp_vlen_vname_vmove_x86(ptr noundef %191, ptr noundef %192, ptr noundef %193, ptr noundef %29, ptr noundef %42, ptr noundef %43, ptr noundef %45, ptr noundef %46)
  %194 = load ptr, ptr %6, align 8, !tbaa !5
  %195 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %194, i32 0, i32 6
  %196 = load i32, ptr %195, align 4, !tbaa !20
  %197 = icmp uge i32 %196, 1006
  br i1 %197, label %198, label %204

198:                                              ; preds = %158
  %199 = load ptr, ptr %6, align 8, !tbaa !5
  %200 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %199, i32 0, i32 6
  %201 = load i32, ptr %200, align 4, !tbaa !20
  %202 = icmp ult i32 %201, 1101
  br i1 %202, label %203, label %204

203:                                              ; preds = %198
  store i32 1, ptr %34, align 4, !tbaa !9
  br label %204

204:                                              ; preds = %203, %198, %158
  %205 = load ptr, ptr %10, align 8, !tbaa !5
  %206 = getelementptr inbounds %struct.libxsmm_meltw_descriptor, ptr %205, i32 0, i32 0
  %207 = load i32, ptr %206, align 1, !tbaa !22
  %208 = load ptr, ptr %10, align 8, !tbaa !5
  %209 = getelementptr inbounds %struct.libxsmm_meltw_descriptor, ptr %208, i32 0, i32 2
  %210 = load i32, ptr %209, align 1, !tbaa !23
  %211 = icmp ugt i32 %207, %210
  br i1 %211, label %212, label %221

212:                                              ; preds = %204
  %213 = load ptr, ptr %6, align 8, !tbaa !5
  %214 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !9
  %215 = icmp ult i32 1, %214
  br i1 %215, label %216, label %218

216:                                              ; preds = %212
  %217 = load i32, ptr @libxsmm_verbosity, align 4, !tbaa !9
  br label %219

218:                                              ; preds = %212
  br label %219

219:                                              ; preds = %218, %216
  %220 = phi i32 [ %217, %216 ], [ 1, %218 ]
  call void @libxsmm_handle_error(ptr noundef %213, i32 noundef 90007, ptr noundef @__func__.libxsmm_generator_reduce_rows_avx512_microkernel, ptr noundef @.str, i32 noundef 1599, i32 noundef %220)
  store i32 1, ptr %57, align 4
  br label %6742

221:                                              ; preds = %204
  %222 = load i32, ptr %47, align 4, !tbaa !9
  %223 = icmp ugt i32 %222, 0
  br i1 %223, label %224, label %225

224:                                              ; preds = %221
  store i32 1, ptr %24, align 4, !tbaa !9
  br label %226

225:                                              ; preds = %221
  store i32 0, ptr %24, align 4, !tbaa !9
  br label %226

226:                                              ; preds = %225, %224
  %227 = load i32, ptr %48, align 4, !tbaa !9
  %228 = icmp ugt i32 %227, 0
  br i1 %228, label %229, label %230

229:                                              ; preds = %226
  store i32 1, ptr %23, align 4, !tbaa !9
  br label %231

230:                                              ; preds = %226
  store i32 0, ptr %23, align 4, !tbaa !9
  br label %231

231:                                              ; preds = %230, %229
  %232 = load i32, ptr %49, align 4, !tbaa !9
  %233 = icmp ugt i32 %232, 0
  br i1 %233, label %234, label %241

234:                                              ; preds = %231
  %235 = load ptr, ptr %10, align 8, !tbaa !5
  %236 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %235, i32 noundef 4)
  %237 = icmp eq i32 0, %236
  br i1 %237, label %238, label %239

238:                                              ; preds = %234
  store i32 814028376, ptr %25, align 4, !tbaa !9
  br label %240

239:                                              ; preds = %234
  store i32 805574232, ptr %25, align 4, !tbaa !9
  br label %240

240:                                              ; preds = %239, %238
  br label %290

241:                                              ; preds = %231
  %242 = load i32, ptr %50, align 4, !tbaa !9
  %243 = icmp ugt i32 %242, 0
  br i1 %243, label %247, label %244

244:                                              ; preds = %241
  %245 = load i32, ptr %51, align 4, !tbaa !9
  %246 = icmp ugt i32 %245, 0
  br i1 %246, label %247, label %268

247:                                              ; preds = %244, %241
  %248 = load ptr, ptr %10, align 8, !tbaa !5
  %249 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %248, i32 noundef 4)
  %250 = icmp eq i32 0, %249
  br i1 %250, label %251, label %259

251:                                              ; preds = %247
  store i32 814028383, ptr %25, align 4, !tbaa !9
  %252 = load ptr, ptr %6, align 8, !tbaa !5
  %253 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %252, i32 0, i32 6
  %254 = load i32, ptr %253, align 4, !tbaa !20
  %255 = icmp uge i32 %254, 1051
  br i1 %255, label %256, label %257

256:                                              ; preds = %251
  store i32 -259180976, ptr %26, align 4, !tbaa !9
  br label %258

257:                                              ; preds = %251
  store i32 814028507, ptr %26, align 4, !tbaa !9
  br label %258

258:                                              ; preds = %257, %256
  br label %267

259:                                              ; preds = %247
  store i32 805574239, ptr %25, align 4, !tbaa !9
  %260 = load ptr, ptr %6, align 8, !tbaa !5
  %261 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %260, i32 0, i32 6
  %262 = load i32, ptr %261, align 4, !tbaa !20
  %263 = icmp uge i32 %262, 1051
  br i1 %263, label %264, label %265

264:                                              ; preds = %259
  store i32 -267569584, ptr %26, align 4, !tbaa !9
  br label %266

265:                                              ; preds = %259
  store i32 814028507, ptr %26, align 4, !tbaa !9
  br label %266

266:                                              ; preds = %265, %264
  br label %267

267:                                              ; preds = %266, %258
  br label %289

268:                                              ; preds = %244
  %269 = load i32, ptr %52, align 4, !tbaa !9
  %270 = icmp ugt i32 %269, 0
  br i1 %270, label %271, label %278

271:                                              ; preds = %268
  %272 = load ptr, ptr %10, align 8, !tbaa !5
  %273 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %272, i32 noundef 4)
  %274 = icmp eq i32 0, %273
  br i1 %274, label %275, label %276

275:                                              ; preds = %271
  store i32 814028381, ptr %25, align 4, !tbaa !9
  br label %277

276:                                              ; preds = %271
  store i32 805573981, ptr %25, align 4, !tbaa !9
  br label %277

277:                                              ; preds = %276, %275
  br label %288

278:                                              ; preds = %268
  %279 = call i32 (ptr, ...) @printf(ptr noundef @.str.10)
  %280 = load ptr, ptr %6, align 8, !tbaa !5
  %281 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !9
  %282 = icmp ult i32 1, %281
  br i1 %282, label %283, label %285

283:                                              ; preds = %278
  %284 = load i32, ptr @libxsmm_verbosity, align 4, !tbaa !9
  br label %286

285:                                              ; preds = %278
  br label %286

286:                                              ; preds = %285, %283
  %287 = phi i32 [ %284, %283 ], [ 1, %285 ]
  call void @libxsmm_handle_error(ptr noundef %280, i32 noundef 90000, ptr noundef @__func__.libxsmm_generator_reduce_rows_avx512_microkernel, ptr noundef @.str, i32 noundef 1646, i32 noundef %287)
  store i32 1, ptr %57, align 4
  br label %6742

288:                                              ; preds = %277
  br label %289

289:                                              ; preds = %288, %267
  br label %290

290:                                              ; preds = %289, %240
  %291 = load i32, ptr %23, align 4, !tbaa !9
  %292 = icmp ugt i32 %291, 0
  br i1 %292, label %293, label %309

293:                                              ; preds = %290
  %294 = load i32, ptr %25, align 4, !tbaa !9
  %295 = icmp eq i32 %294, 805574232
  br i1 %295, label %309, label %296

296:                                              ; preds = %293
  %297 = load i32, ptr %25, align 4, !tbaa !9
  %298 = icmp eq i32 %297, 814028376
  br i1 %298, label %309, label %299

299:                                              ; preds = %296
  %300 = call i32 (ptr, ...) @printf(ptr noundef @.str.11)
  %301 = load ptr, ptr %6, align 8, !tbaa !5
  %302 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !9
  %303 = icmp ult i32 1, %302
  br i1 %303, label %304, label %306

304:                                              ; preds = %299
  %305 = load i32, ptr @libxsmm_verbosity, align 4, !tbaa !9
  br label %307

306:                                              ; preds = %299
  br label %307

307:                                              ; preds = %306, %304
  %308 = phi i32 [ %305, %304 ], [ 1, %306 ]
  call void @libxsmm_handle_error(ptr noundef %301, i32 noundef 90000, ptr noundef @__func__.libxsmm_generator_reduce_rows_avx512_microkernel, ptr noundef @.str, i32 noundef 1653, i32 noundef %308)
  store i32 1, ptr %57, align 4
  br label %6742

309:                                              ; preds = %296, %293, %290
  %310 = load ptr, ptr %8, align 8, !tbaa !5
  %311 = getelementptr inbounds %struct.libxsmm_mateltwise_gp_reg_mapping_struct, ptr %310, i32 0, i32 1
  store i32 8, ptr %311, align 4, !tbaa !24
  %312 = load ptr, ptr %8, align 8, !tbaa !5
  %313 = getelementptr inbounds %struct.libxsmm_mateltwise_gp_reg_mapping_struct, ptr %312, i32 0, i32 16
  store i32 9, ptr %313, align 4, !tbaa !26
  %314 = load ptr, ptr %8, align 8, !tbaa !5
  %315 = getelementptr inbounds %struct.libxsmm_mateltwise_gp_reg_mapping_struct, ptr %314, i32 0, i32 17
  store i32 10, ptr %315, align 4, !tbaa !27
  %316 = load ptr, ptr %8, align 8, !tbaa !5
  %317 = getelementptr inbounds %struct.libxsmm_mateltwise_gp_reg_mapping_struct, ptr %316, i32 0, i32 24
  store i32 11, ptr %317, align 4, !tbaa !28
  %318 = load ptr, ptr %8, align 8, !tbaa !5
  %319 = getelementptr inbounds %struct.libxsmm_mateltwise_gp_reg_mapping_struct, ptr %318, i32 0, i32 25
  store i32 0, ptr %319, align 4, !tbaa !29
  store i32 1, ptr %56, align 4, !tbaa !9
  %320 = load ptr, ptr %6, align 8, !tbaa !5
  %321 = load i32, ptr %56, align 4, !tbaa !9
  call void @libxsmm_generator_meltw_getval_stack_var(ptr noundef %320, i32 noundef 13, i32 noundef %321)
  %322 = load ptr, ptr %6, align 8, !tbaa !5
  %323 = load ptr, ptr %9, align 8, !tbaa !5
  %324 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %323, i32 0, i32 14
  %325 = load i32, ptr %324, align 4, !tbaa !30
  %326 = load ptr, ptr %8, align 8, !tbaa !5
  %327 = getelementptr inbounds %struct.libxsmm_mateltwise_gp_reg_mapping_struct, ptr %326, i32 0, i32 0
  %328 = load i32, ptr %327, align 4, !tbaa !31
  %329 = load i32, ptr %54, align 4, !tbaa !9
  %330 = load ptr, ptr %8, align 8, !tbaa !5
  %331 = getelementptr inbounds %struct.libxsmm_mateltwise_gp_reg_mapping_struct, ptr %330, i32 0, i32 1
  %332 = load i32, ptr %331, align 4, !tbaa !24
  call void @libxsmm_x86_instruction_alu_mem(ptr noundef %322, i32 noundef %325, i32 noundef %328, i32 noundef 127, i32 noundef 0, i32 noundef %329, i32 noundef %332, i32 noundef 0)
  %333 = load i32, ptr %24, align 4, !tbaa !9
  %334 = icmp ugt i32 %333, 0
  br i1 %334, label %335, label %374

335:                                              ; preds = %309
  %336 = load ptr, ptr %6, align 8, !tbaa !5
  %337 = load ptr, ptr %9, align 8, !tbaa !5
  %338 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %337, i32 0, i32 14
  %339 = load i32, ptr %338, align 4, !tbaa !30
  %340 = load ptr, ptr %8, align 8, !tbaa !5
  %341 = getelementptr inbounds %struct.libxsmm_mateltwise_gp_reg_mapping_struct, ptr %340, i32 0, i32 0
  %342 = load i32, ptr %341, align 4, !tbaa !31
  %343 = load i32, ptr %55, align 4, !tbaa !9
  %344 = load ptr, ptr %8, align 8, !tbaa !5
  %345 = getelementptr inbounds %struct.libxsmm_mateltwise_gp_reg_mapping_struct, ptr %344, i32 0, i32 16
  %346 = load i32, ptr %345, align 4, !tbaa !26
  call void @libxsmm_x86_instruction_alu_mem(ptr noundef %336, i32 noundef %339, i32 noundef %342, i32 noundef 127, i32 noundef 0, i32 noundef %343, i32 noundef %346, i32 noundef 0)
  %347 = load i32, ptr %23, align 4, !tbaa !9
  %348 = icmp ugt i32 %347, 0
  br i1 %348, label %349, label %373

349:                                              ; preds = %335
  call void @llvm.lifetime.start.p0(i64 4, ptr %58) #3
  %350 = load ptr, ptr %10, align 8, !tbaa !5
  %351 = getelementptr inbounds %struct.libxsmm_meltw_descriptor, ptr %350, i32 0, i32 1
  %352 = load i32, ptr %351, align 1, !tbaa !32
  %353 = load ptr, ptr %9, align 8, !tbaa !5
  %354 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %353, i32 0, i32 5
  %355 = load i32, ptr %354, align 4, !tbaa !33
  %356 = mul i32 %352, %355
  store i32 %356, ptr %58, align 4, !tbaa !9
  %357 = load ptr, ptr %6, align 8, !tbaa !5
  %358 = load ptr, ptr %9, align 8, !tbaa !5
  %359 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %358, i32 0, i32 14
  %360 = load i32, ptr %359, align 4, !tbaa !30
  %361 = load ptr, ptr %8, align 8, !tbaa !5
  %362 = getelementptr inbounds %struct.libxsmm_mateltwise_gp_reg_mapping_struct, ptr %361, i32 0, i32 16
  %363 = load i32, ptr %362, align 4, !tbaa !26
  %364 = load ptr, ptr %8, align 8, !tbaa !5
  %365 = getelementptr inbounds %struct.libxsmm_mateltwise_gp_reg_mapping_struct, ptr %364, i32 0, i32 17
  %366 = load i32, ptr %365, align 4, !tbaa !27
  call void @libxsmm_x86_instruction_alu_reg(ptr noundef %357, i32 noundef %360, i32 noundef %363, i32 noundef %366)
  %367 = load ptr, ptr %6, align 8, !tbaa !5
  %368 = load ptr, ptr %8, align 8, !tbaa !5
  %369 = getelementptr inbounds %struct.libxsmm_mateltwise_gp_reg_mapping_struct, ptr %368, i32 0, i32 17
  %370 = load i32, ptr %369, align 4, !tbaa !27
  %371 = load i32, ptr %58, align 4, !tbaa !9
  %372 = zext i32 %371 to i64
  call void @libxsmm_x86_instruction_alu_imm(ptr noundef %367, i32 noundef 30000, i32 noundef %370, i64 noundef %372)
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #3
  br label %373

373:                                              ; preds = %349, %335
  br label %386

374:                                              ; preds = %309
  %375 = load ptr, ptr %6, align 8, !tbaa !5
  %376 = load ptr, ptr %9, align 8, !tbaa !5
  %377 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %376, i32 0, i32 14
  %378 = load i32, ptr %377, align 4, !tbaa !30
  %379 = load ptr, ptr %8, align 8, !tbaa !5
  %380 = getelementptr inbounds %struct.libxsmm_mateltwise_gp_reg_mapping_struct, ptr %379, i32 0, i32 0
  %381 = load i32, ptr %380, align 4, !tbaa !31
  %382 = load i32, ptr %55, align 4, !tbaa !9
  %383 = load ptr, ptr %8, align 8, !tbaa !5
  %384 = getelementptr inbounds %struct.libxsmm_mateltwise_gp_reg_mapping_struct, ptr %383, i32 0, i32 17
  %385 = load i32, ptr %384, align 4, !tbaa !27
  call void @libxsmm_x86_instruction_alu_mem(ptr noundef %375, i32 noundef %378, i32 noundef %381, i32 noundef 127, i32 noundef 0, i32 noundef %382, i32 noundef %385, i32 noundef 0)
  br label %386

386:                                              ; preds = %374, %373
  %387 = load ptr, ptr %10, align 8, !tbaa !5
  %388 = getelementptr inbounds %struct.libxsmm_meltw_descriptor, ptr %387, i32 0, i32 0
  %389 = load i32, ptr %388, align 1, !tbaa !22
  %390 = icmp uge i32 %389, 256
  br i1 %390, label %403, label %391

391:                                              ; preds = %386
  %392 = load i32, ptr %51, align 4, !tbaa !9
  %393 = icmp ugt i32 %392, 0
  br i1 %393, label %403, label %394

394:                                              ; preds = %391
  %395 = load ptr, ptr %6, align 8, !tbaa !5
  %396 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %395, i32 0, i32 6
  %397 = load i32, ptr %396, align 4, !tbaa !20
  %398 = icmp ult i32 %397, 1051
  br i1 %398, label %403, label %399

399:                                              ; preds = %394
  %400 = load ptr, ptr %10, align 8, !tbaa !5
  %401 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %400, i32 noundef 4)
  %402 = icmp eq i32 0, %401
  br i1 %402, label %403, label %1915

403:                                              ; preds = %399, %394, %391, %386
  call void @llvm.lifetime.start.p0(i64 4, ptr %59) #3
  store i32 15, ptr %59, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #3
  store i32 14, ptr %60, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %62) #3
  store i32 13, ptr %62, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %63) #3
  store i32 13, ptr %63, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %64) #3
  store i32 0, ptr %64, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %65) #3
  store i32 0, ptr %65, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %66) #3
  store i32 0, ptr %66, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %67) #3
  store i32 0, ptr %67, align 4, !tbaa !9
  %404 = load ptr, ptr %10, align 8, !tbaa !5
  %405 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %404, i32 noundef 4)
  %406 = icmp eq i32 0, %405
  br i1 %406, label %407, label %408

407:                                              ; preds = %403
  store i32 4, ptr %29, align 4, !tbaa !9
  br label %409

408:                                              ; preds = %403
  store i32 8, ptr %29, align 4, !tbaa !9
  br label %409

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

414:                                              ; preds = %409
  %415 = load ptr, ptr %10, 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 %426

418:                                              ; preds = %414
  store i32 31, ptr %59, align 4, !tbaa !9
  store i32 30, ptr %60, align 4, !tbaa !9
  store i32 30, ptr %63, align 4, !tbaa !9
  store i32 1, ptr %66, align 4, !tbaa !9
  %419 = load ptr, ptr %6, 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 !20
  %422 = icmp uge i32 %421, 1101
  br i1 %422, label %423, label %424

423:                                              ; preds = %418
  store i32 8, ptr %29, align 4, !tbaa !9
  br label %425

424:                                              ; preds = %418
  br label %425

425:                                              ; preds = %424, %423
  br label %448

426:                                              ; preds = %414, %409
  %427 = load ptr, ptr %6, align 8, !tbaa !5
  %428 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %427, i32 0, i32 6
  %429 = load i32, ptr %428, align 4, !tbaa !20
  %430 = icmp uge i32 %429, 1051
  br i1 %430, label %431, label %447

431:                                              ; preds = %426
  %432 = load ptr, ptr %10, align 8, !tbaa !5
  %433 = getelementptr inbounds %struct.libxsmm_meltw_descriptor, ptr %432, i32 0, i32 0
  %434 = load i32, ptr %433, align 1, !tbaa !22
  %435 = icmp uge i32 %434, 256
  br i1 %435, label %439, label %436

436:                                              ; preds = %431
  %437 = load i32, ptr %51, align 4, !tbaa !9
  %438 = icmp ugt i32 %437, 0
  br i1 %438, label %439, label %447

439:                                              ; preds = %436, %431
  store i32 31, ptr %35, align 4, !tbaa !9
  store i32 30, ptr %36, align 4, !tbaa !9
  store i32 29, ptr %37, align 4, !tbaa !9
  store i32 28, ptr %38, align 4, !tbaa !9
  store i32 7, ptr %39, align 4, !tbaa !9
  store i32 6, ptr %40, align 4, !tbaa !9
  store i32 5, ptr %41, align 4, !tbaa !9
  store i32 27, ptr %59, align 4, !tbaa !9
  store i32 26, ptr %60, align 4, !tbaa !9
  store i32 26, ptr %63, align 4, !tbaa !9
  store i32 1, ptr %67, align 4, !tbaa !9
  %440 = load ptr, ptr %6, align 8, !tbaa !5
  %441 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %440, i32 0, i32 6
  %442 = load i32, ptr %441, align 4, !tbaa !20
  %443 = icmp uge i32 %442, 1101
  br i1 %443, label %444, label %445

444:                                              ; preds = %439
  store i32 16, ptr %29, align 4, !tbaa !9
  store i8 122, ptr %44, align 1, !tbaa !13
  br label %446

445:                                              ; preds = %439
  store i32 8, ptr %29, align 4, !tbaa !9
  store i8 121, ptr %44, align 1, !tbaa !13
  br label %446

446:                                              ; preds = %445, %444
  br label %447

447:                                              ; preds = %446, %436, %426
  br label %448

448:                                              ; preds = %447, %425
  %449 = load ptr, ptr %10, align 8, !tbaa !5
  %450 = getelementptr inbounds %struct.libxsmm_meltw_descriptor, ptr %449, i32 0, i32 0
  %451 = load i32, ptr %450, align 1, !tbaa !22
  store i32 %451, ptr %13, align 4, !tbaa !9
  %452 = load ptr, ptr %10, align 8, !tbaa !5
  %453 = getelementptr inbounds %struct.libxsmm_meltw_descriptor, ptr %452, i32 0, i32 1
  %454 = load i32, ptr %453, align 1, !tbaa !32
  store i32 %454, ptr %14, align 4, !tbaa !9
  %455 = load i32, ptr %13, align 4, !tbaa !9
  %456 = load i32, ptr %29, align 4, !tbaa !9
  %457 = urem i32 %455, %456
  %458 = icmp eq i32 %457, 0
  %459 = zext i1 %458 to i64
  %460 = select i1 %458, i32 0, i32 1
  store i32 %460, ptr %18, align 4, !tbaa !9
  %461 = load i32, ptr %13, align 4, !tbaa !9
  %462 = load i32, ptr %29, align 4, !tbaa !9
  %463 = add i32 %461, %462
  %464 = sub i32 %463, 1
  %465 = load i32, ptr %29, align 4, !tbaa !9
  %466 = udiv i32 %464, %465
  store i32 %466, ptr %15, align 4, !tbaa !9
  %467 = load i32, ptr %15, align 4, !tbaa !9
  store i32 %467, ptr %31, align 4, !tbaa !9
  store i32 0, ptr %32, align 4, !tbaa !9
  store i32 1, ptr %33, align 4, !tbaa !9
  %468 = load i32, ptr %31, align 4, !tbaa !9
  %469 = load i32, ptr %30, align 4, !tbaa !9
  %470 = icmp ugt i32 %468, %469
  br i1 %470, label %471, label %495

471:                                              ; preds = %448
  %472 = load i32, ptr %30, align 4, !tbaa !9
  store i32 %472, ptr %31, align 4, !tbaa !9
  %473 = load i32, ptr %15, align 4, !tbaa !9
  %474 = load i32, ptr %31, align 4, !tbaa !9
  %475 = udiv i32 %473, %474
  store i32 %475, ptr %33, align 4, !tbaa !9
  %476 = load i32, ptr %15, align 4, !tbaa !9
  %477 = load i32, ptr %31, align 4, !tbaa !9
  %478 = load i32, ptr %33, align 4, !tbaa !9
  %479 = mul i32 %477, %478
  %480 = sub i32 %476, %479
  store i32 %480, ptr %32, align 4, !tbaa !9
  %481 = load i32, ptr %18, align 4, !tbaa !9
  %482 = icmp ugt i32 %481, 0
  br i1 %482, label %483, label %494

483:                                              ; preds = %471
  %484 = load i32, ptr %32, align 4, !tbaa !9
  %485 = icmp eq i32 %484, 0
  br i1 %485, label %486, label %494

486:                                              ; preds = %483
  %487 = load i32, ptr %33, align 4, !tbaa !9
  %488 = add i32 %487, -1
  store i32 %488, ptr %33, align 4, !tbaa !9
  %489 = load i32, ptr %15, align 4, !tbaa !9
  %490 = load i32, ptr %31, align 4, !tbaa !9
  %491 = load i32, ptr %33, align 4, !tbaa !9
  %492 = mul i32 %490, %491
  %493 = sub i32 %489, %492
  store i32 %493, ptr %32, align 4, !tbaa !9
  br label %494

494:                                              ; preds = %486, %483, %471
  br label %510

495:                                              ; preds = %448
  %496 = load i32, ptr %18, align 4, !tbaa !9
  %497 = icmp ugt i32 %496, 0
  br i1 %497, label %498, label %509

498:                                              ; preds = %495
  %499 = load i32, ptr %32, align 4, !tbaa !9
  %500 = icmp eq i32 %499, 0
  br i1 %500, label %501, label %509

501:                                              ; preds = %498
  %502 = load i32, ptr %33, align 4, !tbaa !9
  %503 = add i32 %502, -1
  store i32 %503, ptr %33, align 4, !tbaa !9
  %504 = load i32, ptr %15, align 4, !tbaa !9
  %505 = load i32, ptr %31, align 4, !tbaa !9
  %506 = load i32, ptr %33, align 4, !tbaa !9
  %507 = mul i32 %505, %506
  %508 = sub i32 %504, %507
  store i32 %508, ptr %32, align 4, !tbaa !9
  br label %509

509:                                              ; preds = %501, %498, %495
  br label %510

510:                                              ; preds = %509, %494
  %511 = load i32, ptr %18, align 4, !tbaa !9
  %512 = icmp ugt i32 %511, 0
  br i1 %512, label %513, label %569

513:                                              ; preds = %510
  %514 = load i32, ptr %50, align 4, !tbaa !9
  %515 = icmp ugt i32 %514, 0
  br i1 %515, label %522, label %516

516:                                              ; preds = %513
  %517 = load i32, ptr %51, align 4, !tbaa !9
  %518 = icmp ugt i32 %517, 0
  br i1 %518, label %522, label %519

519:                                              ; preds = %516
  %520 = load i32, ptr %52, align 4, !tbaa !9
  %521 = icmp ugt i32 %520, 0
  br i1 %521, label %522, label %569

522:                                              ; preds = %519, %516, %513
  %523 = load i32, ptr %63, align 4, !tbaa !9
  %524 = sub i32 %523, 1
  store i32 %524, ptr %27, align 4, !tbaa !9
  %525 = load i32, ptr %63, align 4, !tbaa !9
  %526 = add i32 %525, -1
  store i32 %526, ptr %63, align 4, !tbaa !9
  %527 = load i32, ptr %51, align 4, !tbaa !9
  %528 = icmp ugt i32 %527, 0
  br i1 %528, label %529, label %547

529:                                              ; preds = %522
  %530 = load ptr, ptr %6, align 8, !tbaa !5
  %531 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %530, i32 0, i32 6
  %532 = load i32, ptr %531, align 4, !tbaa !20
  %533 = icmp ult i32 %532, 1051
  br i1 %533, label %534, label %547

534:                                              ; preds = %529
  %535 = load ptr, ptr %10, align 8, !tbaa !5
  %536 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %535, i32 noundef 4)
  %537 = icmp eq i32 0, %536
  br i1 %537, label %538, label %542

538:                                              ; preds = %534
  %539 = load ptr, ptr %6, align 8, !tbaa !5
  %540 = load i8, ptr %44, align 1, !tbaa !13
  %541 = load i32, ptr %27, align 4, !tbaa !9
  call void @libxsmm_generator_load_vreg_signmask(ptr noundef %539, i8 noundef zeroext %540, i32 noundef 0, i32 noundef %541, i32 noundef 0)
  br label %546

542:                                              ; preds = %534
  %543 = load ptr, ptr %6, align 8, !tbaa !5
  %544 = load i8, ptr %44, align 1, !tbaa !13
  %545 = load i32, ptr %27, align 4, !tbaa !9
  call void @libxsmm_generator_load_vreg_signmask(ptr noundef %543, i8 noundef zeroext %544, i32 noundef 0, i32 noundef %545, i32 noundef 1)
  br label %546

546:                                              ; preds = %542, %538
  br label %568

547:                                              ; preds = %529, %522
  %548 = load ptr, ptr %10, align 8, !tbaa !5
  %549 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %548, i32 noundef 4)
  %550 = icmp eq i32 0, %549
  br i1 %550, label %551, label %559

551:                                              ; preds = %547
  %552 = load ptr, ptr %6, align 8, !tbaa !5
  %553 = load i8, ptr %44, align 1, !tbaa !13
  %554 = load i32, ptr %27, align 4, !tbaa !9
  %555 = load i32, ptr %52, align 4, !tbaa !9
  %556 = icmp ugt i32 %555, 0
  %557 = zext i1 %556 to i64
  %558 = select i1 %556, i32 1, i32 0
  call void @libxsmm_generator_load_vreg_infinity_double(ptr noundef %552, i8 noundef zeroext %553, i32 noundef 0, i32 noundef %554, i32 noundef %558)
  br label %567

559:                                              ; preds = %547
  %560 = load ptr, ptr %6, align 8, !tbaa !5
  %561 = load i8, ptr %44, align 1, !tbaa !13
  %562 = load i32, ptr %27, align 4, !tbaa !9
  %563 = load i32, ptr %52, align 4, !tbaa !9
  %564 = icmp ugt i32 %563, 0
  %565 = zext i1 %564 to i64
  %566 = select i1 %564, i32 1, i32 0
  call void @libxsmm_generator_load_vreg_infinity(ptr noundef %560, i8 noundef zeroext %561, i32 noundef 0, i32 noundef %562, i32 noundef %566)
  br label %567

567:                                              ; preds = %559, %551
  br label %568

568:                                              ; preds = %567, %546
  br label %590

569:                                              ; preds = %519, %510
  %570 = load i32, ptr %51, align 4, !tbaa !9
  %571 = icmp ugt i32 %570, 0
  br i1 %571, label %572, label %589

572:                                              ; preds = %569
  %573 = load i32, ptr %63, align 4, !tbaa !9
  %574 = sub i32 %573, 1
  store i32 %574, ptr %27, align 4, !tbaa !9
  %575 = load i32, ptr %63, align 4, !tbaa !9
  %576 = add i32 %575, -1
  store i32 %576, ptr %63, align 4, !tbaa !9
  %577 = load ptr, ptr %10, align 8, !tbaa !5
  %578 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %577, i32 noundef 4)
  %579 = icmp eq i32 0, %578
  br i1 %579, label %580, label %584

580:                                              ; preds = %572
  %581 = load ptr, ptr %6, align 8, !tbaa !5
  %582 = load i8, ptr %44, align 1, !tbaa !13
  %583 = load i32, ptr %27, align 4, !tbaa !9
  call void @libxsmm_generator_load_vreg_signmask(ptr noundef %581, i8 noundef zeroext %582, i32 noundef 0, i32 noundef %583, i32 noundef 0)
  br label %588

584:                                              ; preds = %572
  %585 = load ptr, ptr %6, align 8, !tbaa !5
  %586 = load i8, ptr %44, align 1, !tbaa !13
  %587 = load i32, ptr %27, align 4, !tbaa !9
  call void @libxsmm_generator_load_vreg_signmask(ptr noundef %585, i8 noundef zeroext %586, i32 noundef 0, i32 noundef %587, i32 noundef 1)
  br label %588

588:                                              ; preds = %584, %580
  br label %589

589:                                              ; preds = %588, %569
  br label %590

590:                                              ; preds = %589, %568
  %591 = load i32, ptr %53, align 4, !tbaa !9
  %592 = icmp ugt i32 %591, 0
  br i1 %592, label %593, label %598

593:                                              ; preds = %590
  %594 = load i32, ptr %63, align 4, !tbaa !9
  %595 = sub i32 %594, 1
  store i32 %595, ptr %28, align 4, !tbaa !9
  %596 = load i32, ptr %63, align 4, !tbaa !9
  %597 = add i32 %596, -1
  store i32 %597, ptr %63, align 4, !tbaa !9
  br label %598

598:                                              ; preds = %593, %590
  %599 = load ptr, ptr %10, align 8, !tbaa !5
  %600 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %599, i32 noundef 3)
  %601 = icmp eq i32 4, %600
  br i1 %601, label %602, label %604

602:                                              ; preds = %598
  %603 = load ptr, ptr %6, align 8, !tbaa !5
  call void @libxsmm_generator_vcvtneps2bf8_avx512_prep_stack(ptr noundef %603, i32 noundef 0)
  br label %638

604:                                              ; preds = %598
  %605 = load ptr, ptr %10, align 8, !tbaa !5
  %606 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %605, i32 noundef 3)
  %607 = icmp eq i32 2, %606
  br i1 %607, label %608, label %626

608:                                              ; preds = %604
  %609 = load ptr, ptr %6, align 8, !tbaa !5
  %610 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %609, i32 0, i32 6
  %611 = load i32, ptr %610, align 4, !tbaa !20
  %612 = icmp ult i32 %611, 1103
  br i1 %612, label %613, label %625

613:                                              ; preds = %608
  %614 = load ptr, ptr %6, align 8, !tbaa !5
  %615 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %614, i32 0, i32 6
  %616 = load i32, ptr %615, align 4, !tbaa !20
  %617 = icmp ne i32 %616, 1053
  br i1 %617, label %618, label %625

618:                                              ; preds = %613
  %619 = load ptr, ptr %6, align 8, !tbaa !5
  %620 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %619, i32 0, i32 6
  %621 = load i32, ptr %620, align 4, !tbaa !20
  %622 = icmp ne i32 %621, 1008
  br i1 %622, label %623, label %625

623:                                              ; preds = %618
  %624 = load ptr, ptr %6, align 8, !tbaa !5
  call void @libxsmm_generator_vcvtneps2bf16_avx512_prep_stack(ptr noundef %624, i32 noundef 0)
  br label %625

625:                                              ; preds = %623, %618, %613, %608
  br label %637

626:                                              ; preds = %604
  %627 = load ptr, ptr %10, align 8, !tbaa !5
  %628 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %627, i32 noundef 0)
  %629 = icmp eq i32 5, %628
  br i1 %629, label %634, label %630

630:                                              ; preds = %626
  %631 = load ptr, ptr %10, align 8, !tbaa !5
  %632 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %631, i32 noundef 3)
  %633 = icmp eq i32 5, %632
  br i1 %633, label %634, label %636

634:                                              ; preds = %630, %626
  %635 = load ptr, ptr %6, align 8, !tbaa !5
  call void @libxsmm_generator_vcvt_hf8_tofrom_f32_avx512_prep_stack(ptr noundef %635, i32 noundef 0)
  br label %636

636:                                              ; preds = %634, %630
  br label %637

637:                                              ; preds = %636, %625
  br label %638

638:                                              ; preds = %637, %602
  %639 = load i32, ptr %67, align 4, !tbaa !9
  %640 = icmp ugt i32 %639, 0
  br i1 %640, label %641, label %646

641:                                              ; preds = %638
  store i32 1, ptr %62, align 4, !tbaa !9
  %642 = load ptr, ptr %6, align 8, !tbaa !5
  %643 = load i32, ptr %62, align 4, !tbaa !9
  %644 = load i32, ptr %29, align 4, !tbaa !9
  %645 = sub i32 %644, 1
  call void @libxsmm_generator_initialize_avx512_mask(ptr noundef %642, i32 noundef 0, i32 noundef %643, i32 noundef %645, i32 noundef 1)
  br label %680

646:                                              ; preds = %638
  %647 = load ptr, ptr %10, align 8, !tbaa !5
  %648 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %647, i32 noundef 3)
  %649 = icmp eq i32 2, %648
  br i1 %649, label %650, label %657

650:                                              ; preds = %646
  %651 = load i32, ptr %63, align 4, !tbaa !9
  %652 = sub i32 %651, 1
  store i32 %652, ptr %35, align 4, !tbaa !9
  %653 = load i32, ptr %63, align 4, !tbaa !9
  %654 = sub i32 %653, 2
  store i32 %654, ptr %36, align 4, !tbaa !9
  %655 = load i32, ptr %63, align 4, !tbaa !9
  %656 = sub i32 %655, 2
  store i32 %656, ptr %63, align 4, !tbaa !9
  store i32 1, ptr %62, align 4, !tbaa !9
  br label %679

657:                                              ; preds = %646
  %658 = load ptr, ptr %10, align 8, !tbaa !5
  %659 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %658, i32 noundef 3)
  %660 = icmp eq i32 3, %659
  br i1 %660, label %661, label %662

661:                                              ; preds = %657
  store i32 1, ptr %62, align 4, !tbaa !9
  br label %678

662:                                              ; preds = %657
  %663 = load i32, ptr %66, align 4, !tbaa !9
  %664 = icmp ugt i32 %663, 0
  br i1 %664, label %665, label %672

665:                                              ; preds = %662
  store i32 1, ptr %62, align 4, !tbaa !9
  %666 = load ptr, ptr %6, align 8, !tbaa !5
  %667 = load i32, ptr %62, align 4, !tbaa !9
  %668 = load i32, ptr %29, align 4, !tbaa !9
  %669 = sub i32 %668, 1
  %670 = load ptr, ptr %10, align 8, !tbaa !5
  %671 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %670, i32 noundef 3)
  call void @libxsmm_generator_initialize_avx512_mask(ptr noundef %666, i32 noundef 0, i32 noundef %667, i32 noundef %669, i32 noundef %671)
  br label %677

672:                                              ; preds = %662
  %673 = load ptr, ptr %6, align 8, !tbaa !5
  %674 = load i32, ptr %62, align 4, !tbaa !9
  %675 = load ptr, ptr %10, align 8, !tbaa !5
  %676 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %675, i32 noundef 3)
  call void @libxsmm_generator_initialize_avx_mask(ptr noundef %673, i32 noundef %674, i32 noundef 1, i32 noundef %676)
  br label %677

677:                                              ; preds = %672, %665
  br label %678

678:                                              ; preds = %677, %661
  br label %679

679:                                              ; preds = %678, %650
  br label %680

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

683:                                              ; preds = %680
  %684 = load i32, ptr %66, align 4, !tbaa !9
  %685 = icmp ugt i32 %684, 0
  br i1 %685, label %689, label %686

686:                                              ; preds = %683
  %687 = load i32, ptr %67, align 4, !tbaa !9
  %688 = icmp ugt i32 %687, 0
  br i1 %688, label %689, label %702

689:                                              ; preds = %686, %683
  store i32 2, ptr %64, align 4, !tbaa !9
  %690 = load ptr, ptr %6, align 8, !tbaa !5
  %691 = load i32, ptr %64, align 4, !tbaa !9
  %692 = load i32, ptr %29, align 4, !tbaa !9
  %693 = load i32, ptr %13, align 4, !tbaa !9
  %694 = load i32, ptr %29, align 4, !tbaa !9
  %695 = urem i32 %693, %694
  %696 = sub i32 %692, %695
  %697 = load i32, ptr %66, align 4, !tbaa !9
  %698 = icmp ugt i32 %697, 0
  %699 = zext i1 %698 to i64
  %700 = select i1 %698, i32 0, i32 1
  call void @libxsmm_generator_initialize_avx512_mask(ptr noundef %690, i32 noundef 0, i32 noundef %691, i32 noundef %696, i32 noundef %700)
  %701 = load i32, ptr %64, align 4, !tbaa !9
  store i32 %701, ptr %65, align 4, !tbaa !9
  br label %729

702:                                              ; preds = %686
  call void @llvm.lifetime.start.p0(i64 4, ptr %68) #3
  %703 = load ptr, ptr %10, align 8, !tbaa !5
  %704 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %703, i32 noundef 4)
  store i32 %704, ptr %68, align 4, !tbaa !9
  %705 = load i32, ptr %63, align 4, !tbaa !9
  %706 = sub i32 %705, 1
  store i32 %706, ptr %64, align 4, !tbaa !9
  %707 = load ptr, ptr %6, align 8, !tbaa !5
  %708 = load i32, ptr %64, align 4, !tbaa !9
  %709 = load i32, ptr %13, align 4, !tbaa !9
  %710 = load i32, ptr %29, align 4, !tbaa !9
  %711 = urem i32 %709, %710
  %712 = load i32, ptr %68, align 4, !tbaa !9
  call void @libxsmm_generator_initialize_avx_mask(ptr noundef %707, i32 noundef %708, i32 noundef %711, i32 noundef %712)
  %713 = load i32, ptr %63, align 4, !tbaa !9
  %714 = add i32 %713, -1
  store i32 %714, ptr %63, align 4, !tbaa !9
  %715 = load ptr, ptr %10, align 8, !tbaa !5
  %716 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %715, i32 noundef 0)
  %717 = icmp eq i32 2, %716
  br i1 %717, label %722, label %718

718:                                              ; preds = %702
  %719 = load ptr, ptr %10, align 8, !tbaa !5
  %720 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %719, i32 noundef 0)
  %721 = icmp eq i32 3, %720
  br i1 %721, label %722, label %726

722:                                              ; preds = %718, %702
  %723 = load i32, ptr %13, align 4, !tbaa !9
  %724 = load i32, ptr %29, align 4, !tbaa !9
  %725 = urem i32 %723, %724
  store i32 %725, ptr %65, align 4, !tbaa !9
  br label %728

726:                                              ; preds = %718
  %727 = load i32, ptr %64, align 4, !tbaa !9
  store i32 %727, ptr %65, align 4, !tbaa !9
  br label %728

728:                                              ; preds = %726, %722
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #3
  br label %729

729:                                              ; preds = %728, %689
  br label %730

730:                                              ; preds = %729, %680
  %731 = load i32, ptr %14, align 4, !tbaa !9
  %732 = icmp ugt i32 %731, 1
  br i1 %732, label %733, label %740

733:                                              ; preds = %730
  %734 = load ptr, ptr %6, align 8, !tbaa !5
  %735 = load ptr, ptr %7, align 8, !tbaa !5
  %736 = load ptr, ptr %9, align 8, !tbaa !5
  %737 = load ptr, ptr %8, align 8, !tbaa !5
  %738 = getelementptr inbounds %struct.libxsmm_mateltwise_gp_reg_mapping_struct, ptr %737, i32 0, i32 25
  %739 = load i32, ptr %738, align 4, !tbaa !29
  call void @libxsmm_generator_mateltwise_header_n_loop(ptr noundef %734, ptr noundef %735, ptr noundef %736, i32 noundef %739)
  br label %740

740:                                              ; preds = %733, %730
  %741 = load i32, ptr %24, align 4, !tbaa !9
  %742 = icmp ugt i32 %741, 0
  br i1 %742, label %743, label %918

743:                                              ; preds = %740
  %744 = load i32, ptr %49, align 4, !tbaa !9
  %745 = icmp ugt i32 %744, 0
  br i1 %745, label %749, label %746

746:                                              ; preds = %743
  %747 = load i32, ptr %51, align 4, !tbaa !9
  %748 = icmp ugt i32 %747, 0
  br i1 %748, label %749, label %757

749:                                              ; preds = %746, %743
  %750 = load ptr, ptr %6, align 8, !tbaa !5
  %751 = load ptr, ptr %9, 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 !11
  %754 = load i32, ptr %59, align 4, !tbaa !9
  %755 = load i32, ptr %59, align 4, !tbaa !9
  %756 = load i32, ptr %59, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %750, i32 noundef 805574231, i8 noundef signext %753, i32 noundef %754, i32 noundef %755, i32 noundef %756)
  br label %917

757:                                              ; preds = %746
  %758 = load i32, ptr %50, align 4, !tbaa !9
  %759 = icmp ugt i32 %758, 0
  br i1 %759, label %763, label %760

760:                                              ; preds = %757
  %761 = load i32, ptr %52, align 4, !tbaa !9
  %762 = icmp ugt i32 %761, 0
  br i1 %762, label %763, label %916

763:                                              ; preds = %760, %757
  %764 = load ptr, ptr %6, align 8, !tbaa !5
  %765 = load ptr, ptr %10, align 8, !tbaa !5
  %766 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %765, i32 noundef 0)
  %767 = icmp eq i32 4, %766
  br i1 %767, label %772, label %768

768:                                              ; preds = %763
  %769 = load ptr, ptr %10, align 8, !tbaa !5
  %770 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %769, i32 noundef 0)
  %771 = icmp eq i32 5, %770
  br i1 %771, label %772, label %784

772:                                              ; preds = %768, %763
  %773 = load ptr, ptr %6, align 8, !tbaa !5
  %774 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %773, i32 0, i32 6
  %775 = load i32, ptr %774, align 4, !tbaa !20
  %776 = icmp ult i32 %775, 1101
  br i1 %776, label %777, label %784

777:                                              ; preds = %772
  %778 = load i32, ptr %18, align 4, !tbaa !9
  %779 = icmp ugt i32 %778, 0
  br i1 %779, label %780, label %783

780:                                              ; preds = %777
  %781 = load i32, ptr %15, align 4, !tbaa !9
  %782 = icmp eq i32 %781, 1
  br i1 %782, label %784, label %783

783:                                              ; preds = %780, %777
  br label %786

784:                                              ; preds = %780, %772, %768
  %785 = load i32, ptr %45, align 4, !tbaa !9
  br label %786

786:                                              ; preds = %784, %783
  %787 = phi i32 [ 545725200, %783 ], [ %785, %784 ]
  %788 = load ptr, ptr %8, align 8, !tbaa !5
  %789 = getelementptr inbounds %struct.libxsmm_mateltwise_gp_reg_mapping_struct, ptr %788, i32 0, i32 1
  %790 = load i32, ptr %789, align 4, !tbaa !24
  %791 = load i8, ptr %42, align 1, !tbaa !13
  %792 = load i32, ptr %59, align 4, !tbaa !9
  %793 = load i32, ptr %18, align 4, !tbaa !9
  %794 = icmp eq i32 %793, 1
  br i1 %794, label %795, label %798

795:                                              ; preds = %786
  %796 = load i32, ptr %15, align 4, !tbaa !9
  %797 = icmp eq i32 %796, 1
  br label %798

798:                                              ; preds = %795, %786
  %799 = phi i1 [ false, %786 ], [ %797, %795 ]
  %800 = zext i1 %799 to i64
  %801 = select i1 %799, i32 1, i32 0
  %802 = load i32, ptr %18, align 4, !tbaa !9
  %803 = icmp eq i32 %802, 1
  br i1 %803, label %804, label %809

804:                                              ; preds = %798
  %805 = load i32, ptr %15, align 4, !tbaa !9
  %806 = icmp eq i32 %805, 1
  br i1 %806, label %807, label %809

807:                                              ; preds = %804
  %808 = load i32, ptr %65, align 4, !tbaa !9
  br label %810

809:                                              ; preds = %804, %798
  br label %810

810:                                              ; preds = %809, %807
  %811 = phi i32 [ %808, %807 ], [ 0, %809 ]
  call void @libxsmm_x86_instruction_unified_vec_move(ptr noundef %764, i32 noundef %787, i32 noundef %790, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %791, i32 noundef %792, i32 noundef %801, i32 noundef %811, i32 noundef 0)
  %812 = load ptr, ptr %10, align 8, !tbaa !5
  %813 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %812, i32 noundef 0)
  %814 = icmp eq i32 4, %813
  br i1 %814, label %815, label %822

815:                                              ; preds = %810
  %816 = load ptr, ptr %6, align 8, !tbaa !5
  %817 = load ptr, ptr %9, align 8, !tbaa !5
  %818 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %817, i32 0, i32 128
  %819 = load i8, ptr %818, align 4, !tbaa !11
  %820 = load i32, ptr %59, align 4, !tbaa !9
  %821 = load i32, ptr %59, align 4, !tbaa !9
  call void @libxsmm_generator_cvtbf8ps_avx512(ptr noundef %816, i8 noundef signext %819, i32 noundef %820, i32 noundef %821)
  br label %862

822:                                              ; preds = %810
  %823 = load ptr, ptr %10, align 8, !tbaa !5
  %824 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %823, i32 noundef 0)
  %825 = icmp eq i32 5, %824
  br i1 %825, label %826, label %837

826:                                              ; preds = %822
  %827 = load ptr, ptr %6, align 8, !tbaa !5
  %828 = load ptr, ptr %9, align 8, !tbaa !5
  %829 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %828, i32 0, i32 128
  %830 = load i8, ptr %829, align 4, !tbaa !11
  %831 = load i32, ptr %59, align 4, !tbaa !9
  %832 = load i32, ptr %59, align 4, !tbaa !9
  %833 = load i32, ptr %35, align 4, !tbaa !9
  %834 = load i32, ptr %36, align 4, !tbaa !9
  %835 = load i32, ptr %39, align 4, !tbaa !9
  %836 = load i32, ptr %40, align 4, !tbaa !9
  call void @libxsmm_generator_vcvthf8_to_f32_avx512_preppedstack(ptr noundef %827, i8 noundef signext %830, i32 noundef %831, i32 noundef %832, i32 noundef %833, i32 noundef %834, i32 noundef %835, i32 noundef %836)
  br label %861

837:                                              ; preds = %822
  %838 = load ptr, ptr %10, align 8, !tbaa !5
  %839 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %838, i32 noundef 0)
  %840 = icmp eq i32 3, %839
  br i1 %840, label %841, label %848

841:                                              ; preds = %837
  %842 = load ptr, ptr %6, align 8, !tbaa !5
  %843 = load ptr, ptr %9, align 8, !tbaa !5
  %844 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %843, i32 0, i32 128
  %845 = load i8, ptr %844, align 4, !tbaa !11
  %846 = load i32, ptr %59, align 4, !tbaa !9
  %847 = load i32, ptr %59, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_2reg(ptr noundef %842, i32 noundef 537208083, i8 noundef signext %845, i32 noundef %846, i32 noundef %847)
  br label %860

848:                                              ; preds = %837
  %849 = load ptr, ptr %10, align 8, !tbaa !5
  %850 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %849, i32 noundef 0)
  %851 = icmp eq i32 2, %850
  br i1 %851, label %852, label %859

852:                                              ; preds = %848
  %853 = load ptr, ptr %6, align 8, !tbaa !5
  %854 = load ptr, ptr %9, align 8, !tbaa !5
  %855 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %854, i32 0, i32 128
  %856 = load i8, ptr %855, align 4, !tbaa !11
  %857 = load i32, ptr %59, align 4, !tbaa !9
  %858 = load i32, ptr %59, align 4, !tbaa !9
  call void @libxsmm_generator_cvtbf16ps_sse_avx2_avx512(ptr noundef %853, i8 noundef signext %856, i32 noundef %857, i32 noundef %858)
  br label %859

859:                                              ; preds = %852, %848
  br label %860

860:                                              ; preds = %859, %841
  br label %861

861:                                              ; preds = %860, %826
  br label %862

862:                                              ; preds = %861, %815
  %863 = load i32, ptr %18, align 4, !tbaa !9
  %864 = icmp eq i32 %863, 1
  br i1 %864, label %865, label %915

865:                                              ; preds = %862
  %866 = load i32, ptr %15, align 4, !tbaa !9
  %867 = icmp eq i32 %866, 1
  br i1 %867, label %868, label %915

868:                                              ; preds = %865
  call void @llvm.lifetime.start.p0(i64 4, ptr %69) #3
  %869 = load i32, ptr %66, align 4, !tbaa !9
  %870 = icmp ugt i32 %869, 0
  br i1 %870, label %874, label %871

871:                                              ; preds = %868
  %872 = load i32, ptr %67, align 4, !tbaa !9
  %873 = icmp ugt i32 %872, 0
  br i1 %873, label %874, label %875

874:                                              ; preds = %871, %868
  br label %878

875:                                              ; preds = %871
  %876 = load i32, ptr %64, align 4, !tbaa !9
  %877 = shl i32 %876, 4
  br label %878

878:                                              ; preds = %875, %874
  %879 = phi i32 [ 0, %874 ], [ %877, %875 ]
  store i32 %879, ptr %69, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %70) #3
  %880 = load i32, ptr %66, align 4, !tbaa !9
  %881 = icmp ugt i32 %880, 0
  br i1 %881, label %885, label %882

882:                                              ; preds = %878
  %883 = load i32, ptr %67, align 4, !tbaa !9
  %884 = icmp ugt i32 %883, 0
  br i1 %884, label %885, label %887

885:                                              ; preds = %882, %878
  %886 = load i32, ptr %64, align 4, !tbaa !9
  br label %888

887:                                              ; preds = %882
  br label %888

888:                                              ; preds = %887, %885
  %889 = phi i32 [ %886, %885 ], [ 0, %887 ]
  store i32 %889, ptr %70, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %71) #3
  %890 = load i32, ptr %66, align 4, !tbaa !9
  %891 = icmp ugt i32 %890, 0
  br i1 %891, label %892, label %893

892:                                              ; preds = %888
  br label %905

893:                                              ; preds = %888
  %894 = load i32, ptr %67, align 4, !tbaa !9
  %895 = icmp ugt i32 %894, 0
  br i1 %895, label %896, label %897

896:                                              ; preds = %893
  br label %903

897:                                              ; preds = %893
  %898 = load ptr, ptr %10, align 8, !tbaa !5
  %899 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %898, i32 noundef 4)
  %900 = icmp eq i32 0, %899
  %901 = zext i1 %900 to i64
  %902 = select i1 %900, i32 1879912523, i32 1879912522
  br label %903

903:                                              ; preds = %897, %896
  %904 = phi i32 [ -268097947, %896 ], [ %902, %897 ]
  br label %905

905:                                              ; preds = %903, %892
  %906 = phi i32 [ -259709340, %892 ], [ %904, %903 ]
  store i32 %906, ptr %71, align 4, !tbaa !9
  %907 = load ptr, ptr %6, align 8, !tbaa !5
  %908 = load i32, ptr %71, align 4, !tbaa !9
  %909 = load i8, ptr %44, align 1, !tbaa !13
  %910 = load i32, ptr %59, align 4, !tbaa !9
  %911 = load i32, ptr %27, align 4, !tbaa !9
  %912 = load i32, ptr %59, align 4, !tbaa !9
  %913 = load i32, ptr %70, align 4, !tbaa !9
  %914 = load i32, ptr %69, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_mask_sae_imm8(ptr noundef %907, i32 noundef %908, i8 noundef signext %909, i32 noundef %910, i32 noundef %911, i32 noundef %912, i32 noundef %913, i32 noundef 0, i8 noundef zeroext 0, i32 noundef %914)
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #3
  br label %915

915:                                              ; preds = %905, %865, %862
  br label %916

916:                                              ; preds = %915, %760
  br label %917

917:                                              ; preds = %916, %749
  br label %918

918:                                              ; preds = %917, %740
  %919 = load i32, ptr %23, align 4, !tbaa !9
  %920 = icmp ugt i32 %919, 0
  br i1 %920, label %921, label %929

921:                                              ; preds = %918
  %922 = load ptr, ptr %6, align 8, !tbaa !5
  %923 = load ptr, ptr %9, align 8, !tbaa !5
  %924 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %923, i32 0, i32 128
  %925 = load i8, ptr %924, align 4, !tbaa !11
  %926 = load i32, ptr %60, align 4, !tbaa !9
  %927 = load i32, ptr %60, align 4, !tbaa !9
  %928 = load i32, ptr %60, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %922, i32 noundef 805574231, i8 noundef signext %925, i32 noundef %926, i32 noundef %927, i32 noundef %928)
  br label %929

929:                                              ; preds = %921, %918
  %930 = load i32, ptr %33, align 4, !tbaa !9
  %931 = icmp uge i32 %930, 1
  br i1 %931, label %932, label %1114

932:                                              ; preds = %929
  %933 = load ptr, ptr %6, align 8, !tbaa !5
  %934 = load ptr, ptr %7, align 8, !tbaa !5
  %935 = load ptr, ptr %9, align 8, !tbaa !5
  %936 = load ptr, ptr %8, align 8, !tbaa !5
  %937 = getelementptr inbounds %struct.libxsmm_mateltwise_gp_reg_mapping_struct, ptr %936, i32 0, i32 24
  %938 = load i32, ptr %937, align 4, !tbaa !28
  call void @libxsmm_generator_mateltwise_header_m_loop(ptr noundef %933, ptr noundef %934, ptr noundef %935, i32 noundef %938)
  store i32 0, ptr %12, align 4, !tbaa !9
  br label %939

939:                                              ; preds = %1086, %932
  %940 = load i32, ptr %12, align 4, !tbaa !9
  %941 = load i32, ptr %31, align 4, !tbaa !9
  %942 = icmp ult i32 %940, %941
  br i1 %942, label %943, label %1089

943:                                              ; preds = %939
  %944 = load i32, ptr %12, align 4, !tbaa !9
  %945 = load i32, ptr %63, align 4, !tbaa !9
  %946 = urem i32 %944, %945
  store i32 %946, ptr %61, align 4, !tbaa !9
  %947 = load ptr, ptr %6, align 8, !tbaa !5
  %948 = load ptr, ptr %10, align 8, !tbaa !5
  %949 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %948, i32 noundef 0)
  %950 = icmp eq i32 4, %949
  br i1 %950, label %955, label %951

951:                                              ; preds = %943
  %952 = load ptr, ptr %10, align 8, !tbaa !5
  %953 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %952, i32 noundef 0)
  %954 = icmp eq i32 5, %953
  br i1 %954, label %955, label %961

955:                                              ; preds = %951, %943
  %956 = load ptr, ptr %6, align 8, !tbaa !5
  %957 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %956, i32 0, i32 6
  %958 = load i32, ptr %957, align 4, !tbaa !20
  %959 = icmp ult i32 %958, 1101
  br i1 %959, label %960, label %961

960:                                              ; preds = %955
  br label %963

961:                                              ; preds = %955, %951
  %962 = load i32, ptr %45, align 4, !tbaa !9
  br label %963

963:                                              ; preds = %961, %960
  %964 = phi i32 [ 545725200, %960 ], [ %962, %961 ]
  %965 = load ptr, ptr %8, align 8, !tbaa !5
  %966 = getelementptr inbounds %struct.libxsmm_mateltwise_gp_reg_mapping_struct, ptr %965, i32 0, i32 1
  %967 = load i32, ptr %966, align 4, !tbaa !24
  %968 = load i32, ptr %12, align 4, !tbaa !9
  %969 = load i32, ptr %29, align 4, !tbaa !9
  %970 = mul i32 %968, %969
  %971 = load ptr, ptr %9, align 8, !tbaa !5
  %972 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %971, i32 0, i32 2
  %973 = load i32, ptr %972, align 4, !tbaa !34
  %974 = mul i32 %970, %973
  %975 = load i8, ptr %42, align 1, !tbaa !13
  %976 = load i32, ptr %61, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_unified_vec_move(ptr noundef %947, i32 noundef %964, i32 noundef %967, i32 noundef 127, i32 noundef 0, i32 noundef %974, i8 noundef signext %975, i32 noundef %976, i32 noundef 0, i32 noundef 0, i32 noundef 0)
  %977 = load ptr, ptr %10, align 8, !tbaa !5
  %978 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %977, i32 noundef 0)
  %979 = icmp eq i32 4, %978
  br i1 %979, label %980, label %987

980:                                              ; preds = %963
  %981 = load ptr, ptr %6, align 8, !tbaa !5
  %982 = load ptr, ptr %9, align 8, !tbaa !5
  %983 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %982, i32 0, i32 128
  %984 = load i8, ptr %983, align 4, !tbaa !11
  %985 = load i32, ptr %61, align 4, !tbaa !9
  %986 = load i32, ptr %61, align 4, !tbaa !9
  call void @libxsmm_generator_cvtbf8ps_avx512(ptr noundef %981, i8 noundef signext %984, i32 noundef %985, i32 noundef %986)
  br label %1027

987:                                              ; preds = %963
  %988 = load ptr, ptr %10, align 8, !tbaa !5
  %989 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %988, i32 noundef 0)
  %990 = icmp eq i32 5, %989
  br i1 %990, label %991, label %1002

991:                                              ; preds = %987
  %992 = load ptr, ptr %6, align 8, !tbaa !5
  %993 = load ptr, ptr %9, align 8, !tbaa !5
  %994 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %993, i32 0, i32 128
  %995 = load i8, ptr %994, align 4, !tbaa !11
  %996 = load i32, ptr %61, align 4, !tbaa !9
  %997 = load i32, ptr %61, align 4, !tbaa !9
  %998 = load i32, ptr %35, align 4, !tbaa !9
  %999 = load i32, ptr %36, align 4, !tbaa !9
  %1000 = load i32, ptr %39, align 4, !tbaa !9
  %1001 = load i32, ptr %40, align 4, !tbaa !9
  call void @libxsmm_generator_vcvthf8_to_f32_avx512_preppedstack(ptr noundef %992, i8 noundef signext %995, i32 noundef %996, i32 noundef %997, i32 noundef %998, i32 noundef %999, i32 noundef %1000, i32 noundef %1001)
  br label %1026

1002:                                             ; preds = %987
  %1003 = load ptr, ptr %10, align 8, !tbaa !5
  %1004 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %1003, i32 noundef 0)
  %1005 = icmp eq i32 3, %1004
  br i1 %1005, label %1006, label %1013

1006:                                             ; preds = %1002
  %1007 = load ptr, ptr %6, align 8, !tbaa !5
  %1008 = load ptr, ptr %9, align 8, !tbaa !5
  %1009 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1008, i32 0, i32 128
  %1010 = load i8, ptr %1009, align 4, !tbaa !11
  %1011 = load i32, ptr %61, align 4, !tbaa !9
  %1012 = load i32, ptr %61, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_2reg(ptr noundef %1007, i32 noundef 537208083, i8 noundef signext %1010, i32 noundef %1011, i32 noundef %1012)
  br label %1025

1013:                                             ; preds = %1002
  %1014 = load ptr, ptr %10, align 8, !tbaa !5
  %1015 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %1014, i32 noundef 0)
  %1016 = icmp eq i32 2, %1015
  br i1 %1016, label %1017, label %1024

1017:                                             ; preds = %1013
  %1018 = load ptr, ptr %6, align 8, !tbaa !5
  %1019 = load ptr, ptr %9, align 8, !tbaa !5
  %1020 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1019, i32 0, i32 128
  %1021 = load i8, ptr %1020, align 4, !tbaa !11
  %1022 = load i32, ptr %61, align 4, !tbaa !9
  %1023 = load i32, ptr %61, align 4, !tbaa !9
  call void @libxsmm_generator_cvtbf16ps_sse_avx2_avx512(ptr noundef %1018, i8 noundef signext %1021, i32 noundef %1022, i32 noundef %1023)
  br label %1024

1024:                                             ; preds = %1017, %1013
  br label %1025

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

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

1027:                                             ; preds = %1026, %980
  %1028 = load i32, ptr %24, align 4, !tbaa !9
  %1029 = icmp ugt i32 %1028, 0
  br i1 %1029, label %1030, label %1069

1030:                                             ; preds = %1027
  %1031 = load ptr, ptr %6, align 8, !tbaa !5
  %1032 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %1031, i32 0, i32 6
  %1033 = load i32, ptr %1032, align 4, !tbaa !20
  %1034 = icmp uge i32 %1033, 1051
  br i1 %1034, label %1035, label %1047

1035:                                             ; preds = %1030
  %1036 = load i32, ptr %51, align 4, !tbaa !9
  %1037 = icmp ugt i32 %1036, 0
  br i1 %1037, label %1038, label %1047

1038:                                             ; preds = %1035
  %1039 = load ptr, ptr %6, align 8, !tbaa !5
  %1040 = load i32, ptr %26, align 4, !tbaa !9
  %1041 = load ptr, ptr %9, align 8, !tbaa !5
  %1042 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1041, i32 0, i32 128
  %1043 = load i8, ptr %1042, align 4, !tbaa !11
  %1044 = load i32, ptr %61, align 4, !tbaa !9
  %1045 = load i32, ptr %59, align 4, !tbaa !9
  %1046 = load i32, ptr %59, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_mask_sae_imm8(ptr noundef %1039, i32 noundef %1040, i8 noundef signext %1043, i32 noundef %1044, i32 noundef %1045, i32 noundef %1046, i32 noundef 0, i32 noundef 0, i8 noundef zeroext 0, i32 noundef 3)
  br label %1068

1047:                                             ; preds = %1035, %1030
  %1048 = load i32, ptr %51, align 4, !tbaa !9
  %1049 = icmp ugt i32 %1048, 0
  br i1 %1049, label %1050, label %1059

1050:                                             ; preds = %1047
  %1051 = load ptr, ptr %6, align 8, !tbaa !5
  %1052 = load i32, ptr %26, align 4, !tbaa !9
  %1053 = load ptr, ptr %9, align 8, !tbaa !5
  %1054 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1053, i32 0, i32 128
  %1055 = load i8, ptr %1054, align 4, !tbaa !11
  %1056 = load i32, ptr %61, align 4, !tbaa !9
  %1057 = load i32, ptr %27, align 4, !tbaa !9
  %1058 = load i32, ptr %61, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %1051, i32 noundef %1052, i8 noundef signext %1055, i32 noundef %1056, i32 noundef %1057, i32 noundef %1058)
  br label %1059

1059:                                             ; preds = %1050, %1047
  %1060 = load ptr, ptr %6, align 8, !tbaa !5
  %1061 = load i32, ptr %25, align 4, !tbaa !9
  %1062 = load ptr, ptr %9, align 8, !tbaa !5
  %1063 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1062, i32 0, i32 128
  %1064 = load i8, ptr %1063, align 4, !tbaa !11
  %1065 = load i32, ptr %61, align 4, !tbaa !9
  %1066 = load i32, ptr %59, align 4, !tbaa !9
  %1067 = load i32, ptr %59, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %1060, i32 noundef %1061, i8 noundef signext %1064, i32 noundef %1065, i32 noundef %1066, i32 noundef %1067)
  br label %1068

1068:                                             ; preds = %1059, %1038
  br label %1069

1069:                                             ; preds = %1068, %1027
  %1070 = load i32, ptr %23, align 4, !tbaa !9
  %1071 = icmp ugt i32 %1070, 0
  br i1 %1071, label %1072, label %1085

1072:                                             ; preds = %1069
  %1073 = load ptr, ptr %6, align 8, !tbaa !5
  %1074 = load ptr, ptr %10, align 8, !tbaa !5
  %1075 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %1074, i32 noundef 4)
  %1076 = icmp eq i32 0, %1075
  %1077 = zext i1 %1076 to i64
  %1078 = select i1 %1076, i32 814032568, i32 805643960
  %1079 = load ptr, ptr %9, align 8, !tbaa !5
  %1080 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1079, i32 0, i32 128
  %1081 = load i8, ptr %1080, align 4, !tbaa !11
  %1082 = load i32, ptr %61, align 4, !tbaa !9
  %1083 = load i32, ptr %61, align 4, !tbaa !9
  %1084 = load i32, ptr %60, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %1073, i32 noundef %1078, i8 noundef signext %1081, i32 noundef %1082, i32 noundef %1083, i32 noundef %1084)
  br label %1085

1085:                                             ; preds = %1072, %1069
  br label %1086

1086:                                             ; preds = %1085
  %1087 = load i32, ptr %12, align 4, !tbaa !9
  %1088 = add i32 %1087, 1
  store i32 %1088, ptr %12, align 4, !tbaa !9
  br label %939, !llvm.loop !35

1089:                                             ; preds = %939
  %1090 = load ptr, ptr %6, align 8, !tbaa !5
  %1091 = load ptr, ptr %9, align 8, !tbaa !5
  %1092 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1091, i32 0, i32 10
  %1093 = load i32, ptr %1092, align 4, !tbaa !37
  %1094 = load ptr, ptr %8, align 8, !tbaa !5
  %1095 = getelementptr inbounds %struct.libxsmm_mateltwise_gp_reg_mapping_struct, ptr %1094, i32 0, i32 1
  %1096 = load i32, ptr %1095, align 4, !tbaa !24
  %1097 = load i32, ptr %31, align 4, !tbaa !9
  %1098 = zext i32 %1097 to i64
  %1099 = load i32, ptr %29, align 4, !tbaa !9
  %1100 = zext i32 %1099 to i64
  %1101 = mul nsw i64 %1098, %1100
  %1102 = load ptr, ptr %9, align 8, !tbaa !5
  %1103 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1102, i32 0, i32 2
  %1104 = load i32, ptr %1103, align 4, !tbaa !34
  %1105 = zext i32 %1104 to i64
  %1106 = mul nsw i64 %1101, %1105
  call void @libxsmm_x86_instruction_alu_imm(ptr noundef %1090, i32 noundef %1093, i32 noundef %1096, i64 noundef %1106)
  %1107 = load ptr, ptr %6, align 8, !tbaa !5
  %1108 = load ptr, ptr %7, align 8, !tbaa !5
  %1109 = load ptr, ptr %9, align 8, !tbaa !5
  %1110 = load ptr, ptr %8, align 8, !tbaa !5
  %1111 = getelementptr inbounds %struct.libxsmm_mateltwise_gp_reg_mapping_struct, ptr %1110, i32 0, i32 24
  %1112 = load i32, ptr %1111, align 4, !tbaa !28
  %1113 = load i32, ptr %33, align 4, !tbaa !9
  call void @libxsmm_generator_mateltwise_footer_m_loop(ptr noundef %1107, ptr noundef %1108, ptr noundef %1109, i32 noundef %1112, i32 noundef %1113)
  br label %1114

1114:                                             ; preds = %1089, %929
  %1115 = load i32, ptr %32, align 4, !tbaa !9
  %1116 = icmp ugt i32 %1115, 0
  br i1 %1116, label %1117, label %1361

1117:                                             ; preds = %1114
  store i32 0, ptr %12, align 4, !tbaa !9
  br label %1118

1118:                                             ; preds = %1357, %1117
  %1119 = load i32, ptr %12, align 4, !tbaa !9
  %1120 = load i32, ptr %32, align 4, !tbaa !9
  %1121 = icmp ult i32 %1119, %1120
  br i1 %1121, label %1122, label %1360

1122:                                             ; preds = %1118
  %1123 = load i32, ptr %12, align 4, !tbaa !9
  %1124 = load i32, ptr %63, align 4, !tbaa !9
  %1125 = urem i32 %1123, %1124
  store i32 %1125, ptr %61, align 4, !tbaa !9
  %1126 = load ptr, ptr %6, align 8, !tbaa !5
  %1127 = load ptr, ptr %10, align 8, !tbaa !5
  %1128 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %1127, i32 noundef 0)
  %1129 = icmp eq i32 4, %1128
  br i1 %1129, label %1134, label %1130

1130:                                             ; preds = %1122
  %1131 = load ptr, ptr %10, align 8, !tbaa !5
  %1132 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %1131, i32 noundef 0)
  %1133 = icmp eq i32 5, %1132
  br i1 %1133, label %1134, label %1148

1134:                                             ; preds = %1130, %1122
  %1135 = load ptr, ptr %6, align 8, !tbaa !5
  %1136 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %1135, i32 0, i32 6
  %1137 = load i32, ptr %1136, align 4, !tbaa !20
  %1138 = icmp ult i32 %1137, 1101
  br i1 %1138, label %1139, label %1148

1139:                                             ; preds = %1134
  %1140 = load i32, ptr %18, align 4, !tbaa !9
  %1141 = icmp ugt i32 %1140, 0
  br i1 %1141, label %1142, label %1147

1142:                                             ; preds = %1139
  %1143 = load i32, ptr %12, align 4, !tbaa !9
  %1144 = load i32, ptr %32, align 4, !tbaa !9
  %1145 = sub i32 %1144, 1
  %1146 = icmp eq i32 %1143, %1145
  br i1 %1146, label %1148, label %1147

1147:                                             ; preds = %1142, %1139
  br label %1150

1148:                                             ; preds = %1142, %1134, %1130
  %1149 = load i32, ptr %45, align 4, !tbaa !9
  br label %1150

1150:                                             ; preds = %1148, %1147
  %1151 = phi i32 [ 545725200, %1147 ], [ %1149, %1148 ]
  %1152 = load ptr, ptr %8, align 8, !tbaa !5
  %1153 = getelementptr inbounds %struct.libxsmm_mateltwise_gp_reg_mapping_struct, ptr %1152, i32 0, i32 1
  %1154 = load i32, ptr %1153, align 4, !tbaa !24
  %1155 = load i32, ptr %12, align 4, !tbaa !9
  %1156 = load i32, ptr %29, align 4, !tbaa !9
  %1157 = mul i32 %1155, %1156
  %1158 = load ptr, ptr %9, align 8, !tbaa !5
  %1159 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1158, i32 0, i32 2
  %1160 = load i32, ptr %1159, align 4, !tbaa !34
  %1161 = mul i32 %1157, %1160
  %1162 = load i8, ptr %42, align 1, !tbaa !13
  %1163 = load i32, ptr %61, align 4, !tbaa !9
  %1164 = load i32, ptr %18, align 4, !tbaa !9
  %1165 = icmp eq i32 %1164, 1
  br i1 %1165, label %1166, label %1171

1166:                                             ; preds = %1150
  %1167 = load i32, ptr %12, align 4, !tbaa !9
  %1168 = load i32, ptr %32, align 4, !tbaa !9
  %1169 = sub i32 %1168, 1
  %1170 = icmp eq i32 %1167, %1169
  br label %1171

1171:                                             ; preds = %1166, %1150
  %1172 = phi i1 [ false, %1150 ], [ %1170, %1166 ]
  %1173 = zext i1 %1172 to i64
  %1174 = select i1 %1172, i32 1, i32 0
  %1175 = load i32, ptr %18, align 4, !tbaa !9
  %1176 = icmp eq i32 %1175, 1
  br i1 %1176, label %1177, label %1184

1177:                                             ; preds = %1171
  %1178 = load i32, ptr %12, align 4, !tbaa !9
  %1179 = load i32, ptr %32, align 4, !tbaa !9
  %1180 = sub i32 %1179, 1
  %1181 = icmp eq i32 %1178, %1180
  br i1 %1181, label %1182, label %1184

1182:                                             ; preds = %1177
  %1183 = load i32, ptr %65, align 4, !tbaa !9
  br label %1185

1184:                                             ; preds = %1177, %1171
  br label %1185

1185:                                             ; preds = %1184, %1182
  %1186 = phi i32 [ %1183, %1182 ], [ 0, %1184 ]
  call void @libxsmm_x86_instruction_unified_vec_move(ptr noundef %1126, i32 noundef %1151, i32 noundef %1154, i32 noundef 127, i32 noundef 0, i32 noundef %1161, i8 noundef signext %1162, i32 noundef %1163, i32 noundef %1174, i32 noundef %1186, i32 noundef 0)
  %1187 = load ptr, ptr %10, align 8, !tbaa !5
  %1188 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %1187, i32 noundef 0)
  %1189 = icmp eq i32 4, %1188
  br i1 %1189, label %1190, label %1197

1190:                                             ; preds = %1185
  %1191 = load ptr, ptr %6, align 8, !tbaa !5
  %1192 = load ptr, ptr %9, align 8, !tbaa !5
  %1193 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1192, i32 0, i32 128
  %1194 = load i8, ptr %1193, align 4, !tbaa !11
  %1195 = load i32, ptr %61, align 4, !tbaa !9
  %1196 = load i32, ptr %61, align 4, !tbaa !9
  call void @libxsmm_generator_cvtbf8ps_avx512(ptr noundef %1191, i8 noundef signext %1194, i32 noundef %1195, i32 noundef %1196)
  br label %1237

1197:                                             ; preds = %1185
  %1198 = load ptr, ptr %10, align 8, !tbaa !5
  %1199 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %1198, i32 noundef 0)
  %1200 = icmp eq i32 5, %1199
  br i1 %1200, label %1201, label %1212

1201:                                             ; preds = %1197
  %1202 = load ptr, ptr %6, align 8, !tbaa !5
  %1203 = load ptr, ptr %9, align 8, !tbaa !5
  %1204 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1203, i32 0, i32 128
  %1205 = load i8, ptr %1204, align 4, !tbaa !11
  %1206 = load i32, ptr %61, align 4, !tbaa !9
  %1207 = load i32, ptr %61, align 4, !tbaa !9
  %1208 = load i32, ptr %35, align 4, !tbaa !9
  %1209 = load i32, ptr %36, align 4, !tbaa !9
  %1210 = load i32, ptr %39, align 4, !tbaa !9
  %1211 = load i32, ptr %40, align 4, !tbaa !9
  call void @libxsmm_generator_vcvthf8_to_f32_avx512_preppedstack(ptr noundef %1202, i8 noundef signext %1205, i32 noundef %1206, i32 noundef %1207, i32 noundef %1208, i32 noundef %1209, i32 noundef %1210, i32 noundef %1211)
  br label %1236

1212:                                             ; preds = %1197
  %1213 = load ptr, ptr %10, align 8, !tbaa !5
  %1214 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %1213, i32 noundef 0)
  %1215 = icmp eq i32 3, %1214
  br i1 %1215, label %1216, label %1223

1216:                                             ; preds = %1212
  %1217 = load ptr, ptr %6, align 8, !tbaa !5
  %1218 = load ptr, ptr %9, align 8, !tbaa !5
  %1219 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1218, i32 0, i32 128
  %1220 = load i8, ptr %1219, align 4, !tbaa !11
  %1221 = load i32, ptr %61, align 4, !tbaa !9
  %1222 = load i32, ptr %61, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_2reg(ptr noundef %1217, i32 noundef 537208083, i8 noundef signext %1220, i32 noundef %1221, i32 noundef %1222)
  br label %1235

1223:                                             ; preds = %1212
  %1224 = load ptr, ptr %10, align 8, !tbaa !5
  %1225 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %1224, i32 noundef 0)
  %1226 = icmp eq i32 2, %1225
  br i1 %1226, label %1227, label %1234

1227:                                             ; preds = %1223
  %1228 = load ptr, ptr %6, align 8, !tbaa !5
  %1229 = load ptr, ptr %9, align 8, !tbaa !5
  %1230 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1229, i32 0, i32 128
  %1231 = load i8, ptr %1230, align 4, !tbaa !11
  %1232 = load i32, ptr %61, align 4, !tbaa !9
  %1233 = load i32, ptr %61, align 4, !tbaa !9
  call void @libxsmm_generator_cvtbf16ps_sse_avx2_avx512(ptr noundef %1228, i8 noundef signext %1231, i32 noundef %1232, i32 noundef %1233)
  br label %1234

1234:                                             ; preds = %1227, %1223
  br label %1235

1235:                                             ; preds = %1234, %1216
  br label %1236

1236:                                             ; preds = %1235, %1201
  br label %1237

1237:                                             ; preds = %1236, %1190
  %1238 = load i32, ptr %50, align 4, !tbaa !9
  %1239 = icmp ugt i32 %1238, 0
  br i1 %1239, label %1243, label %1240

1240:                                             ; preds = %1237
  %1241 = load i32, ptr %52, align 4, !tbaa !9
  %1242 = icmp ugt i32 %1241, 0
  br i1 %1242, label %1243, label %1298

1243:                                             ; preds = %1240, %1237
  %1244 = load i32, ptr %18, align 4, !tbaa !9
  %1245 = icmp eq i32 %1244, 1
  br i1 %1245, label %1246, label %1298

1246:                                             ; preds = %1243
  %1247 = load i32, ptr %12, align 4, !tbaa !9
  %1248 = load i32, ptr %32, align 4, !tbaa !9
  %1249 = sub i32 %1248, 1
  %1250 = icmp eq i32 %1247, %1249
  br i1 %1250, label %1251, label %1298

1251:                                             ; preds = %1246
  call void @llvm.lifetime.start.p0(i64 4, ptr %72) #3
  %1252 = load i32, ptr %66, align 4, !tbaa !9
  %1253 = icmp ugt i32 %1252, 0
  br i1 %1253, label %1257, label %1254

1254:                                             ; preds = %1251
  %1255 = load i32, ptr %67, align 4, !tbaa !9
  %1256 = icmp ugt i32 %1255, 0
  br i1 %1256, label %1257, label %1258

1257:                                             ; preds = %1254, %1251
  br label %1261

1258:                                             ; preds = %1254
  %1259 = load i32, ptr %64, align 4, !tbaa !9
  %1260 = shl i32 %1259, 4
  br label %1261

1261:                                             ; preds = %1258, %1257
  %1262 = phi i32 [ 0, %1257 ], [ %1260, %1258 ]
  store i32 %1262, ptr %72, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %73) #3
  %1263 = load i32, ptr %66, align 4, !tbaa !9
  %1264 = icmp ugt i32 %1263, 0
  br i1 %1264, label %1268, label %1265

1265:                                             ; preds = %1261
  %1266 = load i32, ptr %67, align 4, !tbaa !9
  %1267 = icmp ugt i32 %1266, 0
  br i1 %1267, label %1268, label %1270

1268:                                             ; preds = %1265, %1261
  %1269 = load i32, ptr %64, align 4, !tbaa !9
  br label %1271

1270:                                             ; preds = %1265
  br label %1271

1271:                                             ; preds = %1270, %1268
  %1272 = phi i32 [ %1269, %1268 ], [ 0, %1270 ]
  store i32 %1272, ptr %73, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %74) #3
  %1273 = load i32, ptr %66, align 4, !tbaa !9
  %1274 = icmp ugt i32 %1273, 0
  br i1 %1274, label %1275, label %1276

1275:                                             ; preds = %1271
  br label %1288

1276:                                             ; preds = %1271
  %1277 = load i32, ptr %67, align 4, !tbaa !9
  %1278 = icmp ugt i32 %1277, 0
  br i1 %1278, label %1279, label %1280

1279:                                             ; preds = %1276
  br label %1286

1280:                                             ; preds = %1276
  %1281 = load ptr, ptr %10, align 8, !tbaa !5
  %1282 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %1281, i32 noundef 4)
  %1283 = icmp eq i32 0, %1282
  %1284 = zext i1 %1283 to i64
  %1285 = select i1 %1283, i32 1879912523, i32 1879912522
  br label %1286

1286:                                             ; preds = %1280, %1279
  %1287 = phi i32 [ -268097947, %1279 ], [ %1285, %1280 ]
  br label %1288

1288:                                             ; preds = %1286, %1275
  %1289 = phi i32 [ -259709340, %1275 ], [ %1287, %1286 ]
  store i32 %1289, ptr %74, align 4, !tbaa !9
  %1290 = load ptr, ptr %6, align 8, !tbaa !5
  %1291 = load i32, ptr %74, align 4, !tbaa !9
  %1292 = load i8, ptr %44, align 1, !tbaa !13
  %1293 = load i32, ptr %61, align 4, !tbaa !9
  %1294 = load i32, ptr %27, align 4, !tbaa !9
  %1295 = load i32, ptr %61, align 4, !tbaa !9
  %1296 = load i32, ptr %73, align 4, !tbaa !9
  %1297 = load i32, ptr %72, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_mask_sae_imm8(ptr noundef %1290, i32 noundef %1291, i8 noundef signext %1292, i32 noundef %1293, i32 noundef %1294, i32 noundef %1295, i32 noundef %1296, i32 noundef 0, i8 noundef zeroext 0, i32 noundef %1297)
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #3
  br label %1298

1298:                                             ; preds = %1288, %1246, %1243, %1240
  %1299 = load ptr, ptr %6, align 8, !tbaa !5
  %1300 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %1299, i32 0, i32 6
  %1301 = load i32, ptr %1300, align 4, !tbaa !20
  %1302 = icmp uge i32 %1301, 1051
  br i1 %1302, label %1303, label %1315

1303:                                             ; preds = %1298
  %1304 = load i32, ptr %51, align 4, !tbaa !9
  %1305 = icmp ugt i32 %1304, 0
  br i1 %1305, label %1306, label %1315

1306:                                             ; preds = %1303
  %1307 = load ptr, ptr %6, align 8, !tbaa !5
  %1308 = load i32, ptr %26, align 4, !tbaa !9
  %1309 = load ptr, ptr %9, align 8, !tbaa !5
  %1310 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1309, i32 0, i32 128
  %1311 = load i8, ptr %1310, align 4, !tbaa !11
  %1312 = load i32, ptr %61, align 4, !tbaa !9
  %1313 = load i32, ptr %59, align 4, !tbaa !9
  %1314 = load i32, ptr %59, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_mask_sae_imm8(ptr noundef %1307, i32 noundef %1308, i8 noundef signext %1311, i32 noundef %1312, i32 noundef %1313, i32 noundef %1314, i32 noundef 0, i32 noundef 0, i8 noundef zeroext 0, i32 noundef 3)
  br label %1340

1315:                                             ; preds = %1303, %1298
  %1316 = load i32, ptr %51, align 4, !tbaa !9
  %1317 = icmp ugt i32 %1316, 0
  br i1 %1317, label %1318, label %1327

1318:                                             ; preds = %1315
  %1319 = load ptr, ptr %6, align 8, !tbaa !5
  %1320 = load i32, ptr %26, align 4, !tbaa !9
  %1321 = load ptr, ptr %9, align 8, !tbaa !5
  %1322 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1321, i32 0, i32 128
  %1323 = load i8, ptr %1322, align 4, !tbaa !11
  %1324 = load i32, ptr %61, align 4, !tbaa !9
  %1325 = load i32, ptr %27, align 4, !tbaa !9
  %1326 = load i32, ptr %61, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %1319, i32 noundef %1320, i8 noundef signext %1323, i32 noundef %1324, i32 noundef %1325, i32 noundef %1326)
  br label %1327

1327:                                             ; preds = %1318, %1315
  %1328 = load i32, ptr %24, align 4, !tbaa !9
  %1329 = icmp ugt i32 %1328, 0
  br i1 %1329, label %1330, label %1339

1330:                                             ; preds = %1327
  %1331 = load ptr, ptr %6, align 8, !tbaa !5
  %1332 = load i32, ptr %25, align 4, !tbaa !9
  %1333 = load ptr, ptr %9, align 8, !tbaa !5
  %1334 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1333, i32 0, i32 128
  %1335 = load i8, ptr %1334, align 4, !tbaa !11
  %1336 = load i32, ptr %61, align 4, !tbaa !9
  %1337 = load i32, ptr %59, align 4, !tbaa !9
  %1338 = load i32, ptr %59, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %1331, i32 noundef %1332, i8 noundef signext %1335, i32 noundef %1336, i32 noundef %1337, i32 noundef %1338)
  br label %1339

1339:                                             ; preds = %1330, %1327
  br label %1340

1340:                                             ; preds = %1339, %1306
  %1341 = load i32, ptr %23, align 4, !tbaa !9
  %1342 = icmp ugt i32 %1341, 0
  br i1 %1342, label %1343, label %1356

1343:                                             ; preds = %1340
  %1344 = load ptr, ptr %6, align 8, !tbaa !5
  %1345 = load ptr, ptr %10, align 8, !tbaa !5
  %1346 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %1345, i32 noundef 4)
  %1347 = icmp eq i32 0, %1346
  %1348 = zext i1 %1347 to i64
  %1349 = select i1 %1347, i32 814032568, i32 805643960
  %1350 = load ptr, ptr %9, align 8, !tbaa !5
  %1351 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1350, i32 0, i32 128
  %1352 = load i8, ptr %1351, align 4, !tbaa !11
  %1353 = load i32, ptr %61, align 4, !tbaa !9
  %1354 = load i32, ptr %61, align 4, !tbaa !9
  %1355 = load i32, ptr %60, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %1344, i32 noundef %1349, i8 noundef signext %1352, i32 noundef %1353, i32 noundef %1354, i32 noundef %1355)
  br label %1356

1356:                                             ; preds = %1343, %1340
  br label %1357

1357:                                             ; preds = %1356
  %1358 = load i32, ptr %12, align 4, !tbaa !9
  %1359 = add i32 %1358, 1
  store i32 %1359, ptr %12, align 4, !tbaa !9
  br label %1118, !llvm.loop !38

1360:                                             ; preds = %1118
  br label %1361

1361:                                             ; preds = %1360, %1114
  %1362 = load i32, ptr %33, align 4, !tbaa !9
  %1363 = icmp uge i32 %1362, 1
  br i1 %1363, label %1364, label %1385

1364:                                             ; preds = %1361
  %1365 = load ptr, ptr %6, align 8, !tbaa !5
  %1366 = load ptr, ptr %9, align 8, !tbaa !5
  %1367 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1366, i32 0, i32 11
  %1368 = load i32, ptr %1367, align 4, !tbaa !39
  %1369 = load ptr, ptr %8, align 8, !tbaa !5
  %1370 = getelementptr inbounds %struct.libxsmm_mateltwise_gp_reg_mapping_struct, ptr %1369, i32 0, i32 1
  %1371 = load i32, ptr %1370, align 4, !tbaa !24
  %1372 = load i32, ptr %31, align 4, !tbaa !9
  %1373 = zext i32 %1372 to i64
  %1374 = load i32, ptr %33, align 4, !tbaa !9
  %1375 = zext i32 %1374 to i64
  %1376 = mul nsw i64 %1373, %1375
  %1377 = load i32, ptr %29, align 4, !tbaa !9
  %1378 = zext i32 %1377 to i64
  %1379 = mul nsw i64 %1376, %1378
  %1380 = load ptr, ptr %9, align 8, !tbaa !5
  %1381 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1380, i32 0, i32 2
  %1382 = load i32, ptr %1381, align 4, !tbaa !34
  %1383 = zext i32 %1382 to i64
  %1384 = mul nsw i64 %1379, %1383
  call void @libxsmm_x86_instruction_alu_imm(ptr noundef %1365, i32 noundef %1368, i32 noundef %1371, i64 noundef %1384)
  br label %1385

1385:                                             ; preds = %1364, %1361
  %1386 = load i32, ptr %24, align 4, !tbaa !9
  %1387 = icmp ugt i32 %1386, 0
  br i1 %1387, label %1388, label %1616

1388:                                             ; preds = %1385
  %1389 = load ptr, ptr %10, align 8, !tbaa !5
  %1390 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %1389, i32 noundef 4)
  %1391 = icmp eq i32 0, %1390
  br i1 %1391, label %1392, label %1396

1392:                                             ; preds = %1388
  %1393 = load ptr, ptr %6, align 8, !tbaa !5
  %1394 = load i32, ptr %25, align 4, !tbaa !9
  %1395 = load i32, ptr %59, align 4, !tbaa !9
  call void @libxsmm_generator_hinstrpd_avx_avx512(ptr noundef %1393, i32 noundef %1394, i32 noundef %1395, i32 noundef 0, i32 noundef 1)
  br label %1408

1396:                                             ; preds = %1388
  %1397 = load i32, ptr %67, align 4, !tbaa !9
  %1398 = icmp ugt i32 %1397, 0
  br i1 %1398, label %1399, label %1403

1399:                                             ; preds = %1396
  %1400 = load ptr, ptr %6, align 8, !tbaa !5
  %1401 = load i32, ptr %25, align 4, !tbaa !9
  %1402 = load i32, ptr %59, align 4, !tbaa !9
  call void @libxsmm_generator_hinstrps_avx512(ptr noundef %1400, i32 noundef %1401, i32 noundef %1402, i32 noundef 0, i32 noundef 1)
  br label %1407

1403:                                             ; preds = %1396
  %1404 = load ptr, ptr %6, align 8, !tbaa !5
  %1405 = load i32, ptr %25, align 4, !tbaa !9
  %1406 = load i32, ptr %59, align 4, !tbaa !9
  call void @libxsmm_generator_hinstrps_avx(ptr noundef %1404, i32 noundef %1405, i32 noundef %1406, i32 noundef 0, i32 noundef 1)
  br label %1407

1407:                                             ; preds = %1403, %1399
  br label %1408

1408:                                             ; preds = %1407, %1392
  %1409 = load i32, ptr %53, align 4, !tbaa !9
  %1410 = icmp ugt i32 %1409, 0
  br i1 %1410, label %1411, label %1509

1411:                                             ; preds = %1408
  %1412 = load ptr, ptr %6, align 8, !tbaa !5
  %1413 = load i32, ptr %46, align 4, !tbaa !9
  %1414 = load ptr, ptr %8, align 8, !tbaa !5
  %1415 = getelementptr inbounds %struct.libxsmm_mateltwise_gp_reg_mapping_struct, ptr %1414, i32 0, i32 16
  %1416 = load i32, ptr %1415, align 4, !tbaa !26
  %1417 = load i8, ptr %43, align 1, !tbaa !13
  %1418 = load i32, ptr %28, align 4, !tbaa !9
  %1419 = load i32, ptr %62, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_unified_vec_move(ptr noundef %1412, i32 noundef %1413, i32 noundef %1416, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %1417, i32 noundef %1418, i32 noundef 1, i32 noundef %1419, i32 noundef 0)
  %1420 = load ptr, ptr %10, align 8, !tbaa !5
  %1421 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %1420, i32 noundef 0)
  %1422 = icmp eq i32 4, %1421
  br i1 %1422, label %1423, label %1430

1423:                                             ; preds = %1411
  %1424 = load ptr, ptr %6, align 8, !tbaa !5
  %1425 = load ptr, ptr %9, align 8, !tbaa !5
  %1426 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1425, i32 0, i32 128
  %1427 = load i8, ptr %1426, align 4, !tbaa !11
  %1428 = load i32, ptr %28, align 4, !tbaa !9
  %1429 = load i32, ptr %28, align 4, !tbaa !9
  call void @libxsmm_generator_cvtbf8ps_avx512(ptr noundef %1424, i8 noundef signext %1427, i32 noundef %1428, i32 noundef %1429)
  br label %1470

1430:                                             ; preds = %1411
  %1431 = load ptr, ptr %10, align 8, !tbaa !5
  %1432 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %1431, i32 noundef 0)
  %1433 = icmp eq i32 5, %1432
  br i1 %1433, label %1434, label %1445

1434:                                             ; preds = %1430
  %1435 = load ptr, ptr %6, align 8, !tbaa !5
  %1436 = load ptr, ptr %9, align 8, !tbaa !5
  %1437 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1436, i32 0, i32 128
  %1438 = load i8, ptr %1437, align 4, !tbaa !11
  %1439 = load i32, ptr %28, align 4, !tbaa !9
  %1440 = load i32, ptr %28, align 4, !tbaa !9
  %1441 = load i32, ptr %35, align 4, !tbaa !9
  %1442 = load i32, ptr %36, align 4, !tbaa !9
  %1443 = load i32, ptr %39, align 4, !tbaa !9
  %1444 = load i32, ptr %40, align 4, !tbaa !9
  call void @libxsmm_generator_vcvthf8_to_f32_avx512_preppedstack(ptr noundef %1435, i8 noundef signext %1438, i32 noundef %1439, i32 noundef %1440, i32 noundef %1441, i32 noundef %1442, i32 noundef %1443, i32 noundef %1444)
  br label %1469

1445:                                             ; preds = %1430
  %1446 = load ptr, ptr %10, align 8, !tbaa !5
  %1447 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %1446, i32 noundef 0)
  %1448 = icmp eq i32 3, %1447
  br i1 %1448, label %1449, label %1456

1449:                                             ; preds = %1445
  %1450 = load ptr, ptr %6, align 8, !tbaa !5
  %1451 = load ptr, ptr %9, align 8, !tbaa !5
  %1452 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1451, i32 0, i32 128
  %1453 = load i8, ptr %1452, align 4, !tbaa !11
  %1454 = load i32, ptr %28, align 4, !tbaa !9
  %1455 = load i32, ptr %28, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_2reg(ptr noundef %1450, i32 noundef 537208083, i8 noundef signext %1453, i32 noundef %1454, i32 noundef %1455)
  br label %1468

1456:                                             ; preds = %1445
  %1457 = load ptr, ptr %10, align 8, !tbaa !5
  %1458 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %1457, i32 noundef 0)
  %1459 = icmp eq i32 2, %1458
  br i1 %1459, label %1460, label %1467

1460:                                             ; preds = %1456
  %1461 = load ptr, ptr %6, align 8, !tbaa !5
  %1462 = load ptr, ptr %9, align 8, !tbaa !5
  %1463 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1462, i32 0, i32 128
  %1464 = load i8, ptr %1463, align 4, !tbaa !11
  %1465 = load i32, ptr %28, align 4, !tbaa !9
  %1466 = load i32, ptr %28, align 4, !tbaa !9
  call void @libxsmm_generator_cvtbf16ps_sse_avx2_avx512(ptr noundef %1461, i8 noundef signext %1464, i32 noundef %1465, i32 noundef %1466)
  br label %1467

1467:                                             ; preds = %1460, %1456
  br label %1468

1468:                                             ; preds = %1467, %1449
  br label %1469

1469:                                             ; preds = %1468, %1434
  br label %1470

1470:                                             ; preds = %1469, %1423
  %1471 = load ptr, ptr %6, align 8, !tbaa !5
  %1472 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %1471, i32 0, i32 6
  %1473 = load i32, ptr %1472, align 4, !tbaa !20
  %1474 = icmp uge i32 %1473, 1051
  br i1 %1474, label %1475, label %1487

1475:                                             ; preds = %1470
  %1476 = load i32, ptr %51, align 4, !tbaa !9
  %1477 = icmp ugt i32 %1476, 0
  br i1 %1477, label %1478, label %1487

1478:                                             ; preds = %1475
  %1479 = load ptr, ptr %6, align 8, !tbaa !5
  %1480 = load i32, ptr %26, align 4, !tbaa !9
  %1481 = load ptr, ptr %9, align 8, !tbaa !5
  %1482 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1481, i32 0, i32 128
  %1483 = load i8, ptr %1482, align 4, !tbaa !11
  %1484 = load i32, ptr %28, align 4, !tbaa !9
  %1485 = load i32, ptr %59, align 4, !tbaa !9
  %1486 = load i32, ptr %59, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_mask_sae_imm8(ptr noundef %1479, i32 noundef %1480, i8 noundef signext %1483, i32 noundef %1484, i32 noundef %1485, i32 noundef %1486, i32 noundef 0, i32 noundef 0, i8 noundef zeroext 0, i32 noundef 3)
  br label %1508

1487:                                             ; preds = %1475, %1470
  %1488 = load i32, ptr %51, align 4, !tbaa !9
  %1489 = icmp ugt i32 %1488, 0
  br i1 %1489, label %1490, label %1499

1490:                                             ; preds = %1487
  %1491 = load ptr, ptr %6, align 8, !tbaa !5
  %1492 = load i32, ptr %26, align 4, !tbaa !9
  %1493 = load ptr, ptr %9, align 8, !tbaa !5
  %1494 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1493, i32 0, i32 128
  %1495 = load i8, ptr %1494, align 4, !tbaa !11
  %1496 = load i32, ptr %28, align 4, !tbaa !9
  %1497 = load i32, ptr %27, align 4, !tbaa !9
  %1498 = load i32, ptr %28, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %1491, i32 noundef %1492, i8 noundef signext %1495, i32 noundef %1496, i32 noundef %1497, i32 noundef %1498)
  br label %1499

1499:                                             ; preds = %1490, %1487
  %1500 = load ptr, ptr %6, align 8, !tbaa !5
  %1501 = load i32, ptr %25, align 4, !tbaa !9
  %1502 = load ptr, ptr %9, align 8, !tbaa !5
  %1503 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1502, i32 0, i32 128
  %1504 = load i8, ptr %1503, align 4, !tbaa !11
  %1505 = load i32, ptr %28, align 4, !tbaa !9
  %1506 = load i32, ptr %59, align 4, !tbaa !9
  %1507 = load i32, ptr %59, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %1500, i32 noundef %1501, i8 noundef signext %1504, i32 noundef %1505, i32 noundef %1506, i32 noundef %1507)
  br label %1508

1508:                                             ; preds = %1499, %1478
  br label %1509

1509:                                             ; preds = %1508, %1408
  %1510 = load ptr, ptr %10, align 8, !tbaa !5
  %1511 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %1510, i32 noundef 3)
  %1512 = icmp eq i32 4, %1511
  br i1 %1512, label %1513, label %1524

1513:                                             ; preds = %1509
  %1514 = load ptr, ptr %6, align 8, !tbaa !5
  %1515 = load ptr, ptr %9, align 8, !tbaa !5
  %1516 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1515, i32 0, i32 128
  %1517 = load i8, ptr %1516, align 4, !tbaa !11
  %1518 = load i32, ptr %59, align 4, !tbaa !9
  %1519 = load i32, ptr %59, align 4, !tbaa !9
  %1520 = load i32, ptr %35, align 4, !tbaa !9
  %1521 = load i32, ptr %36, align 4, !tbaa !9
  %1522 = load i32, ptr %39, align 4, !tbaa !9
  %1523 = load i32, ptr %40, align 4, !tbaa !9
  call void @libxsmm_generator_vcvtneps2bf8_avx512_preppedstack(ptr noundef %1514, i8 noundef signext %1517, i32 noundef %1518, i32 noundef %1519, i32 noundef %1520, i32 noundef %1521, i32 noundef %1522, i32 noundef %1523, i32 noundef 0, i32 noundef 0)
  br label %1607

1524:                                             ; preds = %1509
  %1525 = load ptr, ptr %10, align 8, !tbaa !5
  %1526 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %1525, i32 noundef 3)
  %1527 = icmp eq i32 5, %1526
  br i1 %1527, label %1528, label %1542

1528:                                             ; preds = %1524
  %1529 = load ptr, ptr %6, align 8, !tbaa !5
  %1530 = load ptr, ptr %9, align 8, !tbaa !5
  %1531 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1530, i32 0, i32 128
  %1532 = load i8, ptr %1531, align 4, !tbaa !11
  %1533 = load i32, ptr %59, align 4, !tbaa !9
  %1534 = load i32, ptr %59, align 4, !tbaa !9
  %1535 = load i32, ptr %35, align 4, !tbaa !9
  %1536 = load i32, ptr %36, align 4, !tbaa !9
  %1537 = load i32, ptr %37, align 4, !tbaa !9
  %1538 = load i32, ptr %38, align 4, !tbaa !9
  %1539 = load i32, ptr %39, align 4, !tbaa !9
  %1540 = load i32, ptr %40, align 4, !tbaa !9
  %1541 = load i32, ptr %41, align 4, !tbaa !9
  call void @libxsmm_generator_vcvtf32_to_hf8_avx512_preppedstack(ptr noundef %1529, i8 noundef signext %1532, i32 noundef %1533, i32 noundef %1534, i32 noundef %1535, i32 noundef %1536, i32 noundef %1537, i32 noundef %1538, i32 noundef %1539, i32 noundef %1540, i32 noundef %1541)
  br label %1606

1542:                                             ; preds = %1524
  %1543 = load ptr, ptr %10, align 8, !tbaa !5
  %1544 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %1543, i32 noundef 3)
  %1545 = icmp eq i32 3, %1544
  br i1 %1545, label %1546, label %1566

1546:                                             ; preds = %1542
  %1547 = load ptr, ptr %6, align 8, !tbaa !5
  %1548 = load ptr, ptr %9, align 8, !tbaa !5
  %1549 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1548, i32 0, i32 128
  %1550 = load i8, ptr %1549, align 4, !tbaa !11
  %1551 = load i32, ptr %59, align 4, !tbaa !9
  %1552 = load i32, ptr %59, align 4, !tbaa !9
  %1553 = load ptr, ptr %6, align 8, !tbaa !5
  %1554 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %1553, i32 0, i32 6
  %1555 = load i32, ptr %1554, align 4, !tbaa !20
  %1556 = icmp ult i32 %1555, 1101
  %1557 = zext i1 %1556 to i64
  %1558 = select i1 %1556, i32 0, i32 1
  %1559 = load ptr, ptr %6, align 8, !tbaa !5
  %1560 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %1559, i32 0, i32 6
  %1561 = load i32, ptr %1560, align 4, !tbaa !20
  %1562 = icmp ult i32 %1561, 1101
  %1563 = zext i1 %1562 to i64
  %1564 = select i1 %1562, i32 0, i32 1
  %1565 = trunc i32 %1564 to i8
  call void @libxsmm_x86_instruction_vec_compute_2reg_mask_sae_imm8(ptr noundef %1547, i32 noundef 671954205, i8 noundef signext %1550, i32 noundef %1551, i32 noundef %1552, i32 noundef 0, i32 noundef %1558, i8 noundef zeroext %1565, i32 noundef 0)
  br label %1605

1566:                                             ; preds = %1542
  %1567 = load ptr, ptr %10, align 8, !tbaa !5
  %1568 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %1567, i32 noundef 3)
  %1569 = icmp eq i32 2, %1568
  br i1 %1569, label %1570, label %1604

1570:                                             ; preds = %1566
  %1571 = load ptr, ptr %6, align 8, !tbaa !5
  %1572 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %1571, i32 0, i32 6
  %1573 = load i32, ptr %1572, align 4, !tbaa !20
  %1574 = icmp ult i32 %1573, 1103
  br i1 %1574, label %1575, label %1596

1575:                                             ; preds = %1570
  %1576 = load ptr, ptr %6, align 8, !tbaa !5
  %1577 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %1576, i32 0, i32 6
  %1578 = load i32, ptr %1577, align 4, !tbaa !20
  %1579 = icmp ne i32 %1578, 1053
  br i1 %1579, label %1580, label %1596

1580:                                             ; preds = %1575
  %1581 = load ptr, ptr %6, align 8, !tbaa !5
  %1582 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %1581, i32 0, i32 6
  %1583 = load i32, ptr %1582, align 4, !tbaa !20
  %1584 = icmp ne i32 %1583, 1008
  br i1 %1584, label %1585, label %1596

1585:                                             ; preds = %1580
  %1586 = load ptr, ptr %6, align 8, !tbaa !5
  %1587 = load ptr, ptr %9, align 8, !tbaa !5
  %1588 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1587, i32 0, i32 128
  %1589 = load i8, ptr %1588, align 4, !tbaa !11
  %1590 = load i32, ptr %59, align 4, !tbaa !9
  %1591 = load i32, ptr %59, align 4, !tbaa !9
  %1592 = load i32, ptr %35, align 4, !tbaa !9
  %1593 = load i32, ptr %36, align 4, !tbaa !9
  %1594 = load i32, ptr %39, align 4, !tbaa !9
  %1595 = load i32, ptr %40, align 4, !tbaa !9
  call void @libxsmm_generator_vcvtneps2bf16_avx512_preppedstack(ptr noundef %1586, i8 noundef signext %1589, i32 noundef %1590, i32 noundef %1591, i32 noundef %1592, i32 noundef %1593, i32 noundef %1594, i32 noundef %1595, i32 noundef 0)
  br label %1603

1596:                                             ; preds = %1580, %1575, %1570
  %1597 = load ptr, ptr %6, align 8, !tbaa !5
  %1598 = load ptr, ptr %9, align 8, !tbaa !5
  %1599 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1598, i32 0, i32 128
  %1600 = load i8, ptr %1599, align 4, !tbaa !11
  %1601 = load i32, ptr %59, align 4, !tbaa !9
  %1602 = load i32, ptr %59, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_2reg(ptr noundef %1597, i32 noundef 537273970, i8 noundef signext %1600, i32 noundef %1601, i32 noundef %1602)
  br label %1603

1603:                                             ; preds = %1596, %1585
  br label %1604

1604:                                             ; preds = %1603, %1566
  br label %1605

1605:                                             ; preds = %1604, %1546
  br label %1606

1606:                                             ; preds = %1605, %1528
  br label %1607

1607:                                             ; preds = %1606, %1513
  %1608 = load ptr, ptr %6, align 8, !tbaa !5
  %1609 = load i32, ptr %46, align 4, !tbaa !9
  %1610 = load ptr, ptr %8, align 8, !tbaa !5
  %1611 = getelementptr inbounds %struct.libxsmm_mateltwise_gp_reg_mapping_struct, ptr %1610, i32 0, i32 16
  %1612 = load i32, ptr %1611, align 4, !tbaa !26
  %1613 = load i8, ptr %43, align 1, !tbaa !13
  %1614 = load i32, ptr %59, align 4, !tbaa !9
  %1615 = load i32, ptr %62, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_unified_vec_move(ptr noundef %1608, i32 noundef %1609, i32 noundef %1612, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %1613, i32 noundef %1614, i32 noundef 1, i32 noundef %1615, i32 noundef 1)
  br label %1616

1616:                                             ; preds = %1607, %1385
  %1617 = load i32, ptr %23, align 4, !tbaa !9
  %1618 = icmp ugt i32 %1617, 0
  br i1 %1618, label %1619, label %1817

1619:                                             ; preds = %1616
  %1620 = load ptr, ptr %10, align 8, !tbaa !5
  %1621 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %1620, i32 noundef 4)
  %1622 = icmp eq i32 0, %1621
  br i1 %1622, label %1623, label %1627

1623:                                             ; preds = %1619
  %1624 = load ptr, ptr %6, align 8, !tbaa !5
  %1625 = load i32, ptr %25, align 4, !tbaa !9
  %1626 = load i32, ptr %60, align 4, !tbaa !9
  call void @libxsmm_generator_hinstrpd_avx_avx512(ptr noundef %1624, i32 noundef %1625, i32 noundef %1626, i32 noundef 0, i32 noundef 1)
  br label %1639

1627:                                             ; preds = %1619
  %1628 = load i32, ptr %67, align 4, !tbaa !9
  %1629 = icmp ugt i32 %1628, 0
  br i1 %1629, label %1630, label %1634

1630:                                             ; preds = %1627
  %1631 = load ptr, ptr %6, align 8, !tbaa !5
  %1632 = load i32, ptr %25, align 4, !tbaa !9
  %1633 = load i32, ptr %60, align 4, !tbaa !9
  call void @libxsmm_generator_hinstrps_avx512(ptr noundef %1631, i32 noundef %1632, i32 noundef %1633, i32 noundef 0, i32 noundef 1)
  br label %1638

1634:                                             ; preds = %1627
  %1635 = load ptr, ptr %6, align 8, !tbaa !5
  %1636 = load i32, ptr %25, align 4, !tbaa !9
  %1637 = load i32, ptr %60, align 4, !tbaa !9
  call void @libxsmm_generator_hinstrps_avx(ptr noundef %1635, i32 noundef %1636, i32 noundef %1637, i32 noundef 0, i32 noundef 1)
  br label %1638

1638:                                             ; preds = %1634, %1630
  br label %1639

1639:                                             ; preds = %1638, %1623
  %1640 = load i32, ptr %53, align 4, !tbaa !9
  %1641 = icmp ugt i32 %1640, 0
  br i1 %1641, label %1642, label %1710

1642:                                             ; preds = %1639
  %1643 = load ptr, ptr %6, align 8, !tbaa !5
  %1644 = load i32, ptr %46, align 4, !tbaa !9
  %1645 = load ptr, ptr %8, align 8, !tbaa !5
  %1646 = getelementptr inbounds %struct.libxsmm_mateltwise_gp_reg_mapping_struct, ptr %1645, i32 0, i32 17
  %1647 = load i32, ptr %1646, align 4, !tbaa !27
  %1648 = load i8, ptr %43, align 1, !tbaa !13
  %1649 = load i32, ptr %28, align 4, !tbaa !9
  %1650 = load i32, ptr %62, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_unified_vec_move(ptr noundef %1643, i32 noundef %1644, i32 noundef %1647, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %1648, i32 noundef %1649, i32 noundef 1, i32 noundef %1650, i32 noundef 0)
  %1651 = load ptr, ptr %10, align 8, !tbaa !5
  %1652 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %1651, i32 noundef 0)
  %1653 = icmp eq i32 4, %1652
  br i1 %1653, label %1654, label %1661

1654:                                             ; preds = %1642
  %1655 = load ptr, ptr %6, align 8, !tbaa !5
  %1656 = load ptr, ptr %9, align 8, !tbaa !5
  %1657 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1656, i32 0, i32 128
  %1658 = load i8, ptr %1657, align 4, !tbaa !11
  %1659 = load i32, ptr %28, align 4, !tbaa !9
  %1660 = load i32, ptr %28, align 4, !tbaa !9
  call void @libxsmm_generator_cvtbf8ps_avx512(ptr noundef %1655, i8 noundef signext %1658, i32 noundef %1659, i32 noundef %1660)
  br label %1701

1661:                                             ; preds = %1642
  %1662 = load ptr, ptr %10, align 8, !tbaa !5
  %1663 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %1662, i32 noundef 0)
  %1664 = icmp eq i32 5, %1663
  br i1 %1664, label %1665, label %1676

1665:                                             ; preds = %1661
  %1666 = load ptr, ptr %6, align 8, !tbaa !5
  %1667 = load ptr, ptr %9, align 8, !tbaa !5
  %1668 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1667, i32 0, i32 128
  %1669 = load i8, ptr %1668, align 4, !tbaa !11
  %1670 = load i32, ptr %28, align 4, !tbaa !9
  %1671 = load i32, ptr %28, align 4, !tbaa !9
  %1672 = load i32, ptr %35, align 4, !tbaa !9
  %1673 = load i32, ptr %36, align 4, !tbaa !9
  %1674 = load i32, ptr %39, align 4, !tbaa !9
  %1675 = load i32, ptr %40, align 4, !tbaa !9
  call void @libxsmm_generator_vcvthf8_to_f32_avx512_preppedstack(ptr noundef %1666, i8 noundef signext %1669, i32 noundef %1670, i32 noundef %1671, i32 noundef %1672, i32 noundef %1673, i32 noundef %1674, i32 noundef %1675)
  br label %1700

1676:                                             ; preds = %1661
  %1677 = load ptr, ptr %10, align 8, !tbaa !5
  %1678 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %1677, i32 noundef 0)
  %1679 = icmp eq i32 3, %1678
  br i1 %1679, label %1680, label %1687

1680:                                             ; preds = %1676
  %1681 = load ptr, ptr %6, align 8, !tbaa !5
  %1682 = load ptr, ptr %9, align 8, !tbaa !5
  %1683 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1682, i32 0, i32 128
  %1684 = load i8, ptr %1683, align 4, !tbaa !11
  %1685 = load i32, ptr %28, align 4, !tbaa !9
  %1686 = load i32, ptr %28, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_2reg(ptr noundef %1681, i32 noundef 537208083, i8 noundef signext %1684, i32 noundef %1685, i32 noundef %1686)
  br label %1699

1687:                                             ; preds = %1676
  %1688 = load ptr, ptr %10, align 8, !tbaa !5
  %1689 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %1688, i32 noundef 0)
  %1690 = icmp eq i32 2, %1689
  br i1 %1690, label %1691, label %1698

1691:                                             ; preds = %1687
  %1692 = load ptr, ptr %6, align 8, !tbaa !5
  %1693 = load ptr, ptr %9, align 8, !tbaa !5
  %1694 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1693, i32 0, i32 128
  %1695 = load i8, ptr %1694, align 4, !tbaa !11
  %1696 = load i32, ptr %28, align 4, !tbaa !9
  %1697 = load i32, ptr %28, align 4, !tbaa !9
  call void @libxsmm_generator_cvtbf16ps_sse_avx2_avx512(ptr noundef %1692, i8 noundef signext %1695, i32 noundef %1696, i32 noundef %1697)
  br label %1698

1698:                                             ; preds = %1691, %1687
  br label %1699

1699:                                             ; preds = %1698, %1680
  br label %1700

1700:                                             ; preds = %1699, %1665
  br label %1701

1701:                                             ; preds = %1700, %1654
  %1702 = load ptr, ptr %6, align 8, !tbaa !5
  %1703 = load i32, ptr %25, align 4, !tbaa !9
  %1704 = load ptr, ptr %9, align 8, !tbaa !5
  %1705 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1704, i32 0, i32 128
  %1706 = load i8, ptr %1705, align 4, !tbaa !11
  %1707 = load i32, ptr %28, align 4, !tbaa !9
  %1708 = load i32, ptr %60, align 4, !tbaa !9
  %1709 = load i32, ptr %60, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %1702, i32 noundef %1703, i8 noundef signext %1706, i32 noundef %1707, i32 noundef %1708, i32 noundef %1709)
  br label %1710

1710:                                             ; preds = %1701, %1639
  %1711 = load ptr, ptr %10, align 8, !tbaa !5
  %1712 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %1711, i32 noundef 3)
  %1713 = icmp eq i32 4, %1712
  br i1 %1713, label %1714, label %1725

1714:                                             ; preds = %1710
  %1715 = load ptr, ptr %6, align 8, !tbaa !5
  %1716 = load ptr, ptr %9, align 8, !tbaa !5
  %1717 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1716, i32 0, i32 128
  %1718 = load i8, ptr %1717, align 4, !tbaa !11
  %1719 = load i32, ptr %60, align 4, !tbaa !9
  %1720 = load i32, ptr %60, align 4, !tbaa !9
  %1721 = load i32, ptr %35, align 4, !tbaa !9
  %1722 = load i32, ptr %36, align 4, !tbaa !9
  %1723 = load i32, ptr %39, align 4, !tbaa !9
  %1724 = load i32, ptr %40, align 4, !tbaa !9
  call void @libxsmm_generator_vcvtneps2bf8_avx512_preppedstack(ptr noundef %1715, i8 noundef signext %1718, i32 noundef %1719, i32 noundef %1720, i32 noundef %1721, i32 noundef %1722, i32 noundef %1723, i32 noundef %1724, i32 noundef 0, i32 noundef 0)
  br label %1808

1725:                                             ; preds = %1710
  %1726 = load ptr, ptr %10, align 8, !tbaa !5
  %1727 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %1726, i32 noundef 3)
  %1728 = icmp eq i32 5, %1727
  br i1 %1728, label %1729, label %1743

1729:                                             ; preds = %1725
  %1730 = load ptr, ptr %6, align 8, !tbaa !5
  %1731 = load ptr, ptr %9, align 8, !tbaa !5
  %1732 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1731, i32 0, i32 128
  %1733 = load i8, ptr %1732, align 4, !tbaa !11
  %1734 = load i32, ptr %60, align 4, !tbaa !9
  %1735 = load i32, ptr %60, align 4, !tbaa !9
  %1736 = load i32, ptr %35, align 4, !tbaa !9
  %1737 = load i32, ptr %36, align 4, !tbaa !9
  %1738 = load i32, ptr %37, align 4, !tbaa !9
  %1739 = load i32, ptr %38, align 4, !tbaa !9
  %1740 = load i32, ptr %39, align 4, !tbaa !9
  %1741 = load i32, ptr %40, align 4, !tbaa !9
  %1742 = load i32, ptr %41, align 4, !tbaa !9
  call void @libxsmm_generator_vcvtf32_to_hf8_avx512_preppedstack(ptr noundef %1730, i8 noundef signext %1733, i32 noundef %1734, i32 noundef %1735, i32 noundef %1736, i32 noundef %1737, i32 noundef %1738, i32 noundef %1739, i32 noundef %1740, i32 noundef %1741, i32 noundef %1742)
  br label %1807

1743:                                             ; preds = %1725
  %1744 = load ptr, ptr %10, align 8, !tbaa !5
  %1745 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %1744, i32 noundef 3)
  %1746 = icmp eq i32 3, %1745
  br i1 %1746, label %1747, label %1767

1747:                                             ; preds = %1743
  %1748 = load ptr, ptr %6, align 8, !tbaa !5
  %1749 = load ptr, ptr %9, align 8, !tbaa !5
  %1750 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1749, i32 0, i32 128
  %1751 = load i8, ptr %1750, align 4, !tbaa !11
  %1752 = load i32, ptr %60, align 4, !tbaa !9
  %1753 = load i32, ptr %60, align 4, !tbaa !9
  %1754 = load ptr, ptr %6, align 8, !tbaa !5
  %1755 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %1754, i32 0, i32 6
  %1756 = load i32, ptr %1755, align 4, !tbaa !20
  %1757 = icmp ult i32 %1756, 1101
  %1758 = zext i1 %1757 to i64
  %1759 = select i1 %1757, i32 0, i32 1
  %1760 = load ptr, ptr %6, align 8, !tbaa !5
  %1761 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %1760, i32 0, i32 6
  %1762 = load i32, ptr %1761, align 4, !tbaa !20
  %1763 = icmp ult i32 %1762, 1101
  %1764 = zext i1 %1763 to i64
  %1765 = select i1 %1763, i32 0, i32 1
  %1766 = trunc i32 %1765 to i8
  call void @libxsmm_x86_instruction_vec_compute_2reg_mask_sae_imm8(ptr noundef %1748, i32 noundef 671954205, i8 noundef signext %1751, i32 noundef %1752, i32 noundef %1753, i32 noundef 0, i32 noundef %1759, i8 noundef zeroext %1766, i32 noundef 0)
  br label %1806

1767:                                             ; preds = %1743
  %1768 = load ptr, ptr %10, align 8, !tbaa !5
  %1769 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %1768, i32 noundef 3)
  %1770 = icmp eq i32 2, %1769
  br i1 %1770, label %1771, label %1805

1771:                                             ; preds = %1767
  %1772 = load ptr, ptr %6, align 8, !tbaa !5
  %1773 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %1772, i32 0, i32 6
  %1774 = load i32, ptr %1773, align 4, !tbaa !20
  %1775 = icmp ult i32 %1774, 1103
  br i1 %1775, label %1776, label %1797

1776:                                             ; preds = %1771
  %1777 = load ptr, ptr %6, align 8, !tbaa !5
  %1778 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %1777, i32 0, i32 6
  %1779 = load i32, ptr %1778, align 4, !tbaa !20
  %1780 = icmp ne i32 %1779, 1053
  br i1 %1780, label %1781, label %1797

1781:                                             ; preds = %1776
  %1782 = load ptr, ptr %6, align 8, !tbaa !5
  %1783 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %1782, i32 0, i32 6
  %1784 = load i32, ptr %1783, align 4, !tbaa !20
  %1785 = icmp ne i32 %1784, 1008
  br i1 %1785, label %1786, label %1797

1786:                                             ; preds = %1781
  %1787 = load ptr, ptr %6, align 8, !tbaa !5
  %1788 = load ptr, ptr %9, align 8, !tbaa !5
  %1789 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1788, i32 0, i32 128
  %1790 = load i8, ptr %1789, align 4, !tbaa !11
  %1791 = load i32, ptr %60, align 4, !tbaa !9
  %1792 = load i32, ptr %60, align 4, !tbaa !9
  %1793 = load i32, ptr %35, align 4, !tbaa !9
  %1794 = load i32, ptr %36, align 4, !tbaa !9
  %1795 = load i32, ptr %39, align 4, !tbaa !9
  %1796 = load i32, ptr %40, align 4, !tbaa !9
  call void @libxsmm_generator_vcvtneps2bf16_avx512_preppedstack(ptr noundef %1787, i8 noundef signext %1790, i32 noundef %1791, i32 noundef %1792, i32 noundef %1793, i32 noundef %1794, i32 noundef %1795, i32 noundef %1796, i32 noundef 0)
  br label %1804

1797:                                             ; preds = %1781, %1776, %1771
  %1798 = load ptr, ptr %6, align 8, !tbaa !5
  %1799 = load ptr, ptr %9, align 8, !tbaa !5
  %1800 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1799, i32 0, i32 128
  %1801 = load i8, ptr %1800, align 4, !tbaa !11
  %1802 = load i32, ptr %60, align 4, !tbaa !9
  %1803 = load i32, ptr %60, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_2reg(ptr noundef %1798, i32 noundef 537273970, i8 noundef signext %1801, i32 noundef %1802, i32 noundef %1803)
  br label %1804

1804:                                             ; preds = %1797, %1786
  br label %1805

1805:                                             ; preds = %1804, %1767
  br label %1806

1806:                                             ; preds = %1805, %1747
  br label %1807

1807:                                             ; preds = %1806, %1729
  br label %1808

1808:                                             ; preds = %1807, %1714
  %1809 = load ptr, ptr %6, align 8, !tbaa !5
  %1810 = load i32, ptr %46, align 4, !tbaa !9
  %1811 = load ptr, ptr %8, align 8, !tbaa !5
  %1812 = getelementptr inbounds %struct.libxsmm_mateltwise_gp_reg_mapping_struct, ptr %1811, i32 0, i32 17
  %1813 = load i32, ptr %1812, align 4, !tbaa !27
  %1814 = load i8, ptr %43, align 1, !tbaa !13
  %1815 = load i32, ptr %60, align 4, !tbaa !9
  %1816 = load i32, ptr %62, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_unified_vec_move(ptr noundef %1809, i32 noundef %1810, i32 noundef %1813, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %1814, i32 noundef %1815, i32 noundef 1, i32 noundef %1816, i32 noundef 1)
  br label %1817

1817:                                             ; preds = %1808, %1616
  %1818 = load i32, ptr %14, align 4, !tbaa !9
  %1819 = icmp ugt i32 %1818, 1
  br i1 %1819, label %1820, label %1874

1820:                                             ; preds = %1817
  %1821 = load ptr, ptr %6, align 8, !tbaa !5
  %1822 = load ptr, ptr %9, align 8, !tbaa !5
  %1823 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1822, i32 0, i32 10
  %1824 = load i32, ptr %1823, align 4, !tbaa !37
  %1825 = load ptr, ptr %8, align 8, !tbaa !5
  %1826 = getelementptr inbounds %struct.libxsmm_mateltwise_gp_reg_mapping_struct, ptr %1825, i32 0, i32 1
  %1827 = load i32, ptr %1826, align 4, !tbaa !24
  %1828 = load ptr, ptr %10, align 8, !tbaa !5
  %1829 = getelementptr inbounds %struct.libxsmm_meltw_descriptor, ptr %1828, i32 0, i32 2
  %1830 = load i32, ptr %1829, align 1, !tbaa !23
  %1831 = zext i32 %1830 to i64
  %1832 = load ptr, ptr %9, align 8, !tbaa !5
  %1833 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1832, i32 0, i32 2
  %1834 = load i32, ptr %1833, align 4, !tbaa !34
  %1835 = zext i32 %1834 to i64
  %1836 = mul nsw i64 %1831, %1835
  call void @libxsmm_x86_instruction_alu_imm(ptr noundef %1821, i32 noundef %1824, i32 noundef %1827, i64 noundef %1836)
  %1837 = load i32, ptr %24, align 4, !tbaa !9
  %1838 = icmp ugt i32 %1837, 0
  br i1 %1838, label %1839, label %1851

1839:                                             ; preds = %1820
  %1840 = load ptr, ptr %6, align 8, !tbaa !5
  %1841 = load ptr, ptr %9, align 8, !tbaa !5
  %1842 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1841, i32 0, i32 10
  %1843 = load i32, ptr %1842, align 4, !tbaa !37
  %1844 = load ptr, ptr %8, align 8, !tbaa !5
  %1845 = getelementptr inbounds %struct.libxsmm_mateltwise_gp_reg_mapping_struct, ptr %1844, i32 0, i32 16
  %1846 = load i32, ptr %1845, align 4, !tbaa !26
  %1847 = load ptr, ptr %9, align 8, !tbaa !5
  %1848 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1847, i32 0, i32 5
  %1849 = load i32, ptr %1848, align 4, !tbaa !33
  %1850 = zext i32 %1849 to i64
  call void @libxsmm_x86_instruction_alu_imm(ptr noundef %1840, i32 noundef %1843, i32 noundef %1846, i64 noundef %1850)
  br label %1851

1851:                                             ; preds = %1839, %1820
  %1852 = load i32, ptr %23, align 4, !tbaa !9
  %1853 = icmp ugt i32 %1852, 0
  br i1 %1853, label %1854, label %1866

1854:                                             ; preds = %1851
  %1855 = load ptr, ptr %6, align 8, !tbaa !5
  %1856 = load ptr, ptr %9, align 8, !tbaa !5
  %1857 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1856, i32 0, i32 10
  %1858 = load i32, ptr %1857, align 4, !tbaa !37
  %1859 = load ptr, ptr %8, align 8, !tbaa !5
  %1860 = getelementptr inbounds %struct.libxsmm_mateltwise_gp_reg_mapping_struct, ptr %1859, i32 0, i32 17
  %1861 = load i32, ptr %1860, align 4, !tbaa !27
  %1862 = load ptr, ptr %9, align 8, !tbaa !5
  %1863 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1862, i32 0, i32 5
  %1864 = load i32, ptr %1863, align 4, !tbaa !33
  %1865 = zext i32 %1864 to i64
  call void @libxsmm_x86_instruction_alu_imm(ptr noundef %1855, i32 noundef %1858, i32 noundef %1861, i64 noundef %1865)
  br label %1866

1866:                                             ; preds = %1854, %1851
  %1867 = load ptr, ptr %6, align 8, !tbaa !5
  %1868 = load ptr, ptr %7, align 8, !tbaa !5
  %1869 = load ptr, ptr %9, align 8, !tbaa !5
  %1870 = load ptr, ptr %8, align 8, !tbaa !5
  %1871 = getelementptr inbounds %struct.libxsmm_mateltwise_gp_reg_mapping_struct, ptr %1870, i32 0, i32 25
  %1872 = load i32, ptr %1871, align 4, !tbaa !29
  %1873 = load i32, ptr %14, align 4, !tbaa !9
  call void @libxsmm_generator_mateltwise_footer_n_loop(ptr noundef %1867, ptr noundef %1868, ptr noundef %1869, i32 noundef %1872, i32 noundef %1873)
  br label %1874

1874:                                             ; preds = %1866, %1817
  %1875 = load ptr, ptr %10, align 8, !tbaa !5
  %1876 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %1875, i32 noundef 3)
  %1877 = icmp eq i32 4, %1876
  br i1 %1877, label %1878, label %1880

1878:                                             ; preds = %1874
  %1879 = load ptr, ptr %6, align 8, !tbaa !5
  call void @libxsmm_generator_vcvtneps2bf8_avx512_clean_stack(ptr noundef %1879, i32 noundef 0)
  br label %1914

1880:                                             ; preds = %1874
  %1881 = load ptr, ptr %10, align 8, !tbaa !5
  %1882 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %1881, i32 noundef 3)
  %1883 = icmp eq i32 2, %1882
  br i1 %1883, label %1884, label %1902

1884:                                             ; preds = %1880
  %1885 = load ptr, ptr %6, align 8, !tbaa !5
  %1886 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %1885, i32 0, i32 6
  %1887 = load i32, ptr %1886, align 4, !tbaa !20
  %1888 = icmp ult i32 %1887, 1103
  br i1 %1888, label %1889, label %1901

1889:                                             ; preds = %1884
  %1890 = load ptr, ptr %6, align 8, !tbaa !5
  %1891 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %1890, i32 0, i32 6
  %1892 = load i32, ptr %1891, align 4, !tbaa !20
  %1893 = icmp ne i32 %1892, 1053
  br i1 %1893, label %1894, label %1901

1894:                                             ; preds = %1889
  %1895 = load ptr, ptr %6, align 8, !tbaa !5
  %1896 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %1895, i32 0, i32 6
  %1897 = load i32, ptr %1896, align 4, !tbaa !20
  %1898 = icmp ne i32 %1897, 1008
  br i1 %1898, label %1899, label %1901

1899:                                             ; preds = %1894
  %1900 = load ptr, ptr %6, align 8, !tbaa !5
  call void @libxsmm_generator_vcvtneps2bf16_avx512_clean_stack(ptr noundef %1900, i32 noundef 0)
  br label %1901

1901:                                             ; preds = %1899, %1894, %1889, %1884
  br label %1913

1902:                                             ; preds = %1880
  %1903 = load ptr, ptr %10, align 8, !tbaa !5
  %1904 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %1903, i32 noundef 0)
  %1905 = icmp eq i32 5, %1904
  br i1 %1905, label %1910, label %1906

1906:                                             ; preds = %1902
  %1907 = load ptr, ptr %10, align 8, !tbaa !5
  %1908 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %1907, i32 noundef 3)
  %1909 = icmp eq i32 5, %1908
  br i1 %1909, label %1910, label %1912

1910:                                             ; preds = %1906, %1902
  %1911 = load ptr, ptr %6, align 8, !tbaa !5
  call void @libxsmm_generator_vcvt_hf8_tofrom_f32_avx512_clean_stack(ptr noundef %1911, i32 noundef 0)
  br label %1912

1912:                                             ; preds = %1910, %1906
  br label %1913

1913:                                             ; preds = %1912, %1901
  br label %1914

1914:                                             ; preds = %1913, %1878
  store i32 1, ptr %57, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #3
  br label %6742

1915:                                             ; preds = %399
  %1916 = load ptr, ptr %10, align 8, !tbaa !5
  %1917 = getelementptr inbounds %struct.libxsmm_meltw_descriptor, ptr %1916, i32 0, i32 0
  %1918 = load i32, ptr %1917, align 1, !tbaa !22
  store i32 %1918, ptr %13, align 4, !tbaa !9
  %1919 = load ptr, ptr %10, align 8, !tbaa !5
  %1920 = getelementptr inbounds %struct.libxsmm_meltw_descriptor, ptr %1919, i32 0, i32 1
  %1921 = load i32, ptr %1920, align 1, !tbaa !32
  store i32 %1921, ptr %14, align 4, !tbaa !9
  %1922 = load i32, ptr %13, align 4, !tbaa !9
  %1923 = load i32, ptr %29, align 4, !tbaa !9
  %1924 = urem i32 %1922, %1923
  %1925 = icmp eq i32 %1924, 0
  %1926 = zext i1 %1925 to i64
  %1927 = select i1 %1925, i32 0, i32 1
  store i32 %1927, ptr %18, align 4, !tbaa !9
  %1928 = load i32, ptr %14, align 4, !tbaa !9
  %1929 = load i32, ptr %29, align 4, !tbaa !9
  %1930 = urem i32 %1928, %1929
  %1931 = icmp eq i32 %1930, 0
  %1932 = zext i1 %1931 to i64
  %1933 = select i1 %1931, i32 0, i32 1
  store i32 %1933, ptr %19, align 4, !tbaa !9
  %1934 = load i32, ptr %13, align 4, !tbaa !9
  %1935 = load i32, ptr %29, align 4, !tbaa !9
  %1936 = add i32 %1934, %1935
  %1937 = sub i32 %1936, 1
  %1938 = load i32, ptr %29, align 4, !tbaa !9
  %1939 = udiv i32 %1937, %1938
  store i32 %1939, ptr %15, align 4, !tbaa !9
  %1940 = load i32, ptr %14, align 4, !tbaa !9
  %1941 = load i32, ptr %29, align 4, !tbaa !9
  %1942 = add i32 %1940, %1941
  %1943 = sub i32 %1942, 1
  %1944 = load i32, ptr %29, align 4, !tbaa !9
  %1945 = udiv i32 %1943, %1944
  store i32 %1945, ptr %16, align 4, !tbaa !9
  %1946 = load i32, ptr %14, align 4, !tbaa !9
  %1947 = load i32, ptr %29, align 4, !tbaa !9
  %1948 = urem i32 %1946, %1947
  %1949 = icmp eq i32 %1948, 0
  br i1 %1949, label %1950, label %1952

1950:                                             ; preds = %1915
  %1951 = load i32, ptr %16, align 4, !tbaa !9
  br label %1955

1952:                                             ; preds = %1915
  %1953 = load i32, ptr %16, align 4, !tbaa !9
  %1954 = sub i32 %1953, 1
  br label %1955

1955:                                             ; preds = %1952, %1950
  %1956 = phi i32 [ %1951, %1950 ], [ %1954, %1952 ]
  store i32 %1956, ptr %17, align 4, !tbaa !9
  %1957 = load i32, ptr %18, align 4, !tbaa !9
  %1958 = icmp eq i32 %1957, 1
  br i1 %1958, label %1959, label %1967

1959:                                             ; preds = %1955
  %1960 = load i32, ptr %29, align 4, !tbaa !9
  %1961 = load i32, ptr %13, align 4, !tbaa !9
  %1962 = load i32, ptr %29, align 4, !tbaa !9
  %1963 = urem i32 %1961, %1962
  %1964 = sub i32 %1960, %1963
  store i32 %1964, ptr %20, align 4, !tbaa !9
  %1965 = load ptr, ptr %6, align 8, !tbaa !5
  %1966 = load i32, ptr %20, align 4, !tbaa !9
  call void @libxsmm_generator_initialize_avx512_mask(ptr noundef %1965, i32 noundef 0, i32 noundef 1, i32 noundef %1966, i32 noundef 1)
  br label %1967

1967:                                             ; preds = %1959, %1955
  %1968 = load i32, ptr %19, align 4, !tbaa !9
  %1969 = icmp eq i32 %1968, 1
  br i1 %1969, label %1970, label %1978

1970:                                             ; preds = %1967
  %1971 = load i32, ptr %29, align 4, !tbaa !9
  %1972 = load i32, ptr %14, align 4, !tbaa !9
  %1973 = load i32, ptr %29, align 4, !tbaa !9
  %1974 = urem i32 %1972, %1973
  %1975 = sub i32 %1971, %1974
  store i32 %1975, ptr %21, align 4, !tbaa !9
  %1976 = load ptr, ptr %6, align 8, !tbaa !5
  %1977 = load i32, ptr %21, align 4, !tbaa !9
  call void @libxsmm_generator_initialize_avx512_mask(ptr noundef %1976, i32 noundef 0, i32 noundef 2, i32 noundef %1977, i32 noundef 1)
  br label %1978

1978:                                             ; preds = %1970, %1967
  %1979 = load ptr, ptr %10, align 8, !tbaa !5
  %1980 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %1979, i32 noundef 3)
  %1981 = icmp eq i32 4, %1980
  br i1 %1981, label %1982, label %1984

1982:                                             ; preds = %1978
  %1983 = load ptr, ptr %6, align 8, !tbaa !5
  call void @libxsmm_generator_vcvtneps2bf8_avx512_prep_stack(ptr noundef %1983, i32 noundef 0)
  br label %2018

1984:                                             ; preds = %1978
  %1985 = load ptr, ptr %10, align 8, !tbaa !5
  %1986 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %1985, i32 noundef 3)
  %1987 = icmp eq i32 2, %1986
  br i1 %1987, label %1988, label %2006

1988:                                             ; preds = %1984
  %1989 = load ptr, ptr %6, align 8, !tbaa !5
  %1990 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %1989, i32 0, i32 6
  %1991 = load i32, ptr %1990, align 4, !tbaa !20
  %1992 = icmp ult i32 %1991, 1103
  br i1 %1992, label %1993, label %2005

1993:                                             ; preds = %1988
  %1994 = load ptr, ptr %6, align 8, !tbaa !5
  %1995 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %1994, i32 0, i32 6
  %1996 = load i32, ptr %1995, align 4, !tbaa !20
  %1997 = icmp ne i32 %1996, 1053
  br i1 %1997, label %1998, label %2005

1998:                                             ; preds = %1993
  %1999 = load ptr, ptr %6, align 8, !tbaa !5
  %2000 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %1999, i32 0, i32 6
  %2001 = load i32, ptr %2000, align 4, !tbaa !20
  %2002 = icmp ne i32 %2001, 1008
  br i1 %2002, label %2003, label %2005

2003:                                             ; preds = %1998
  %2004 = load ptr, ptr %6, align 8, !tbaa !5
  call void @libxsmm_generator_vcvtneps2bf16_avx512_prep_stack(ptr noundef %2004, i32 noundef 0)
  br label %2005

2005:                                             ; preds = %2003, %1998, %1993, %1988
  br label %2017

2006:                                             ; preds = %1984
  %2007 = load ptr, ptr %10, align 8, !tbaa !5
  %2008 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %2007, i32 noundef 0)
  %2009 = icmp eq i32 5, %2008
  br i1 %2009, label %2014, label %2010

2010:                                             ; preds = %2006
  %2011 = load ptr, ptr %10, align 8, !tbaa !5
  %2012 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %2011, i32 noundef 3)
  %2013 = icmp eq i32 5, %2012
  br i1 %2013, label %2014, label %2016

2014:                                             ; preds = %2010, %2006
  %2015 = load ptr, ptr %6, align 8, !tbaa !5
  call void @libxsmm_generator_vcvt_hf8_tofrom_f32_avx512_prep_stack(ptr noundef %2015, i32 noundef 0)
  br label %2016

2016:                                             ; preds = %2014, %2010
  br label %2017

2017:                                             ; preds = %2016, %2005
  br label %2018

2018:                                             ; preds = %2017, %1982
  %2019 = load i32, ptr %14, align 4, !tbaa !9
  %2020 = icmp ne i32 %2019, 1
  br i1 %2020, label %2021, label %2051

2021:                                             ; preds = %2018
  %2022 = load ptr, ptr %6, align 8, !tbaa !5
  %2023 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %2022, i32 0, i32 6
  %2024 = load i32, ptr %2023, align 4, !tbaa !20
  %2025 = icmp ult i32 %2024, 1101
  br i1 %2025, label %2026, label %2028

2026:                                             ; preds = %2021
  %2027 = load ptr, ptr %6, align 8, !tbaa !5
  call void @libxsmm_x86_instruction_alu_imm(ptr noundef %2027, i32 noundef -1568407413, i32 noundef 0, i64 noundef 240)
  br label %2030

2028:                                             ; preds = %2021
  %2029 = load ptr, ptr %6, align 8, !tbaa !5
  call void @libxsmm_x86_instruction_alu_imm(ptr noundef %2029, i32 noundef -1568407413, i32 noundef 0, i64 noundef 65280)
  br label %2030

2030:                                             ; preds = %2028, %2026
  %2031 = load ptr, ptr %6, align 8, !tbaa !5
  call void @libxsmm_x86_instruction_mask_move(ptr noundef %2031, i32 noundef -1610346094, i32 noundef 0, i32 noundef 7)
  %2032 = load i32, ptr %18, align 4, !tbaa !9
  %2033 = icmp ugt i32 %2032, 0
  br i1 %2033, label %2034, label %2050

2034:                                             ; preds = %2030
  %2035 = load i32, ptr %50, align 4, !tbaa !9
  %2036 = icmp ugt i32 %2035, 0
  br i1 %2036, label %2040, label %2037

2037:                                             ; preds = %2034
  %2038 = load i32, ptr %52, align 4, !tbaa !9
  %2039 = icmp ugt i32 %2038, 0
  br i1 %2039, label %2040, label %2050

2040:                                             ; preds = %2037, %2034
  %2041 = load ptr, ptr %6, align 8, !tbaa !5
  %2042 = load ptr, ptr %9, align 8, !tbaa !5
  %2043 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2042, i32 0, i32 128
  %2044 = load i8, ptr %2043, align 4, !tbaa !11
  %2045 = load i32, ptr %27, align 4, !tbaa !9
  %2046 = load i32, ptr %52, align 4, !tbaa !9
  %2047 = icmp ugt i32 %2046, 0
  %2048 = zext i1 %2047 to i64
  %2049 = select i1 %2047, i32 1, i32 0
  call void @libxsmm_generator_load_vreg_infinity(ptr noundef %2041, i8 noundef zeroext %2044, i32 noundef 0, i32 noundef %2045, i32 noundef %2049)
  br label %2050

2050:                                             ; preds = %2040, %2037, %2030
  br label %2051

2051:                                             ; preds = %2050, %2018
  %2052 = load i32, ptr %17, align 4, !tbaa !9
  %2053 = icmp uge i32 %2052, 1
  br i1 %2053, label %2054, label %4144

2054:                                             ; preds = %2051
  %2055 = load i32, ptr %17, align 4, !tbaa !9
  %2056 = icmp ugt i32 %2055, 1
  br i1 %2056, label %2057, label %2064

2057:                                             ; preds = %2054
  %2058 = load ptr, ptr %6, align 8, !tbaa !5
  %2059 = load ptr, ptr %7, align 8, !tbaa !5
  %2060 = load ptr, ptr %9, align 8, !tbaa !5
  %2061 = load ptr, ptr %8, align 8, !tbaa !5
  %2062 = getelementptr inbounds %struct.libxsmm_mateltwise_gp_reg_mapping_struct, ptr %2061, i32 0, i32 25
  %2063 = load i32, ptr %2062, align 4, !tbaa !29
  call void @libxsmm_generator_mateltwise_header_n_loop(ptr noundef %2058, ptr noundef %2059, ptr noundef %2060, i32 noundef %2063)
  br label %2064

2064:                                             ; preds = %2057, %2054
  store i32 0, ptr %12, align 4, !tbaa !9
  br label %2065

2065:                                             ; preds = %4065, %2064
  %2066 = load i32, ptr %12, align 4, !tbaa !9
  %2067 = load i32, ptr %15, align 4, !tbaa !9
  %2068 = icmp ult i32 %2066, %2067
  br i1 %2068, label %2069, label %4068

2069:                                             ; preds = %2065
  store i32 0, ptr %11, align 4, !tbaa !9
  br label %2070

2070:                                             ; preds = %2205, %2069
  %2071 = load i32, ptr %11, align 4, !tbaa !9
  %2072 = load i32, ptr %29, align 4, !tbaa !9
  %2073 = icmp ult i32 %2071, %2072
  br i1 %2073, label %2074, label %2208

2074:                                             ; preds = %2070
  %2075 = load ptr, ptr %6, align 8, !tbaa !5
  %2076 = load ptr, ptr %9, align 8, !tbaa !5
  %2077 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2076, i32 0, i32 0
  %2078 = load i32, ptr %2077, align 4, !tbaa !40
  %2079 = load ptr, ptr %10, align 8, !tbaa !5
  %2080 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %2079, i32 noundef 3)
  %2081 = icmp eq i32 4, %2080
  br i1 %2081, label %2086, label %2082

2082:                                             ; preds = %2074
  %2083 = load ptr, ptr %10, align 8, !tbaa !5
  %2084 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %2083, i32 noundef 3)
  %2085 = icmp eq i32 5, %2084
  br i1 %2085, label %2086, label %2100

2086:                                             ; preds = %2082, %2074
  %2087 = load ptr, ptr %6, align 8, !tbaa !5
  %2088 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %2087, i32 0, i32 6
  %2089 = load i32, ptr %2088, align 4, !tbaa !20
  %2090 = icmp ult i32 %2089, 1101
  br i1 %2090, label %2091, label %2100

2091:                                             ; preds = %2086
  %2092 = load i32, ptr %18, align 4, !tbaa !9
  %2093 = icmp ugt i32 %2092, 0
  br i1 %2093, label %2094, label %2099

2094:                                             ; preds = %2091
  %2095 = load i32, ptr %12, align 4, !tbaa !9
  %2096 = load i32, ptr %15, align 4, !tbaa !9
  %2097 = sub i32 %2096, 1
  %2098 = icmp eq i32 %2095, %2097
  br i1 %2098, label %2100, label %2099

2099:                                             ; preds = %2094, %2091
  br label %2102

2100:                                             ; preds = %2094, %2086, %2082
  %2101 = load i32, ptr %45, align 4, !tbaa !9
  br label %2102

2102:                                             ; preds = %2100, %2099
  %2103 = phi i32 [ 545725200, %2099 ], [ %2101, %2100 ]
  %2104 = load ptr, ptr %8, align 8, !tbaa !5
  %2105 = getelementptr inbounds %struct.libxsmm_mateltwise_gp_reg_mapping_struct, ptr %2104, i32 0, i32 1
  %2106 = load i32, ptr %2105, align 4, !tbaa !24
  %2107 = load i32, ptr %12, align 4, !tbaa !9
  %2108 = load i32, ptr %29, align 4, !tbaa !9
  %2109 = mul i32 %2107, %2108
  %2110 = load i32, ptr %11, align 4, !tbaa !9
  %2111 = load ptr, ptr %10, align 8, !tbaa !5
  %2112 = getelementptr inbounds %struct.libxsmm_meltw_descriptor, ptr %2111, i32 0, i32 2
  %2113 = load i32, ptr %2112, align 1, !tbaa !23
  %2114 = mul i32 %2110, %2113
  %2115 = add i32 %2109, %2114
  %2116 = load ptr, ptr %9, align 8, !tbaa !5
  %2117 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2116, i32 0, i32 2
  %2118 = load i32, ptr %2117, align 4, !tbaa !34
  %2119 = mul i32 %2115, %2118
  %2120 = load i8, ptr %42, align 1, !tbaa !13
  %2121 = load i32, ptr %11, align 4, !tbaa !9
  %2122 = load i32, ptr %12, align 4, !tbaa !9
  %2123 = load i32, ptr %15, align 4, !tbaa !9
  %2124 = sub i32 %2123, 1
  %2125 = icmp eq i32 %2122, %2124
  br i1 %2125, label %2126, label %2128

2126:                                             ; preds = %2102
  %2127 = load i32, ptr %18, align 4, !tbaa !9
  br label %2129

2128:                                             ; preds = %2102
  br label %2129

2129:                                             ; preds = %2128, %2126
  %2130 = phi i32 [ %2127, %2126 ], [ 0, %2128 ]
  call void @libxsmm_x86_instruction_vec_move(ptr noundef %2075, i32 noundef %2078, i32 noundef %2103, i32 noundef %2106, i32 noundef 127, i32 noundef 0, i32 noundef %2119, i8 noundef signext %2120, i32 noundef %2121, i32 noundef %2130, i32 noundef 1, i32 noundef 0)
  %2131 = load ptr, ptr %10, align 8, !tbaa !5
  %2132 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %2131, i32 noundef 0)
  %2133 = icmp eq i32 4, %2132
  br i1 %2133, label %2134, label %2141

2134:                                             ; preds = %2129
  %2135 = load ptr, ptr %6, align 8, !tbaa !5
  %2136 = load ptr, ptr %9, align 8, !tbaa !5
  %2137 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2136, i32 0, i32 128
  %2138 = load i8, ptr %2137, align 4, !tbaa !11
  %2139 = load i32, ptr %11, align 4, !tbaa !9
  %2140 = load i32, ptr %11, align 4, !tbaa !9
  call void @libxsmm_generator_cvtbf8ps_avx512(ptr noundef %2135, i8 noundef signext %2138, i32 noundef %2139, i32 noundef %2140)
  br label %2181

2141:                                             ; preds = %2129
  %2142 = load ptr, ptr %10, align 8, !tbaa !5
  %2143 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %2142, i32 noundef 0)
  %2144 = icmp eq i32 5, %2143
  br i1 %2144, label %2145, label %2156

2145:                                             ; preds = %2141
  %2146 = load ptr, ptr %6, align 8, !tbaa !5
  %2147 = load ptr, ptr %9, align 8, !tbaa !5
  %2148 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2147, i32 0, i32 128
  %2149 = load i8, ptr %2148, align 4, !tbaa !11
  %2150 = load i32, ptr %11, align 4, !tbaa !9
  %2151 = load i32, ptr %11, align 4, !tbaa !9
  %2152 = load i32, ptr %35, align 4, !tbaa !9
  %2153 = load i32, ptr %36, align 4, !tbaa !9
  %2154 = load i32, ptr %39, align 4, !tbaa !9
  %2155 = load i32, ptr %40, align 4, !tbaa !9
  call void @libxsmm_generator_vcvthf8_to_f32_avx512_preppedstack(ptr noundef %2146, i8 noundef signext %2149, i32 noundef %2150, i32 noundef %2151, i32 noundef %2152, i32 noundef %2153, i32 noundef %2154, i32 noundef %2155)
  br label %2180

2156:                                             ; preds = %2141
  %2157 = load ptr, ptr %10, align 8, !tbaa !5
  %2158 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %2157, i32 noundef 0)
  %2159 = icmp eq i32 3, %2158
  br i1 %2159, label %2160, label %2167

2160:                                             ; preds = %2156
  %2161 = load ptr, ptr %6, align 8, !tbaa !5
  %2162 = load ptr, ptr %9, align 8, !tbaa !5
  %2163 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2162, i32 0, i32 128
  %2164 = load i8, ptr %2163, align 4, !tbaa !11
  %2165 = load i32, ptr %11, align 4, !tbaa !9
  %2166 = load i32, ptr %11, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_2reg(ptr noundef %2161, i32 noundef 537208083, i8 noundef signext %2164, i32 noundef %2165, i32 noundef %2166)
  br label %2179

2167:                                             ; preds = %2156
  %2168 = load ptr, ptr %10, align 8, !tbaa !5
  %2169 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %2168, i32 noundef 0)
  %2170 = icmp eq i32 2, %2169
  br i1 %2170, label %2171, label %2178

2171:                                             ; preds = %2167
  %2172 = load ptr, ptr %6, align 8, !tbaa !5
  %2173 = load ptr, ptr %9, align 8, !tbaa !5
  %2174 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2173, i32 0, i32 128
  %2175 = load i8, ptr %2174, align 4, !tbaa !11
  %2176 = load i32, ptr %11, align 4, !tbaa !9
  %2177 = load i32, ptr %11, align 4, !tbaa !9
  call void @libxsmm_generator_cvtbf16ps_sse_avx2_avx512(ptr noundef %2172, i8 noundef signext %2175, i32 noundef %2176, i32 noundef %2177)
  br label %2178

2178:                                             ; preds = %2171, %2167
  br label %2179

2179:                                             ; preds = %2178, %2160
  br label %2180

2180:                                             ; preds = %2179, %2145
  br label %2181

2181:                                             ; preds = %2180, %2134
  %2182 = load i32, ptr %50, align 4, !tbaa !9
  %2183 = icmp ugt i32 %2182, 0
  br i1 %2183, label %2187, label %2184

2184:                                             ; preds = %2181
  %2185 = load i32, ptr %52, align 4, !tbaa !9
  %2186 = icmp ugt i32 %2185, 0
  br i1 %2186, label %2187, label %2204

2187:                                             ; preds = %2184, %2181
  %2188 = load i32, ptr %18, align 4, !tbaa !9
  %2189 = icmp ugt i32 %2188, 0
  br i1 %2189, label %2190, label %2204

2190:                                             ; preds = %2187
  %2191 = load i32, ptr %12, align 4, !tbaa !9
  %2192 = load i32, ptr %15, align 4, !tbaa !9
  %2193 = sub i32 %2192, 1
  %2194 = icmp eq i32 %2191, %2193
  br i1 %2194, label %2195, label %2204

2195:                                             ; preds = %2190
  %2196 = load ptr, ptr %6, align 8, !tbaa !5
  %2197 = load ptr, ptr %9, align 8, !tbaa !5
  %2198 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2197, i32 0, i32 128
  %2199 = load i8, ptr %2198, align 4, !tbaa !11
  %2200 = load i32, ptr %11, align 4, !tbaa !9
  %2201 = load i32, ptr %27, align 4, !tbaa !9
  %2202 = load i32, ptr %11, align 4, !tbaa !9
  %2203 = load i32, ptr %18, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_mask(ptr noundef %2196, i32 noundef -268097947, i8 noundef signext %2199, i32 noundef %2200, i32 noundef %2201, i32 noundef %2202, i32 noundef %2203, i32 noundef 0)
  br label %2204

2204:                                             ; preds = %2195, %2190, %2187, %2184
  br label %2205

2205:                                             ; preds = %2204
  %2206 = load i32, ptr %11, align 4, !tbaa !9
  %2207 = add i32 %2206, 1
  store i32 %2207, ptr %11, align 4, !tbaa !9
  br label %2070, !llvm.loop !41

2208:                                             ; preds = %2070
  %2209 = load i32, ptr %29, align 4, !tbaa !9
  store i32 %2209, ptr %11, align 4, !tbaa !9
  br label %2210

2210:                                             ; preds = %2221, %2208
  %2211 = load i32, ptr %11, align 4, !tbaa !9
  %2212 = icmp ult i32 %2211, 16
  br i1 %2212, label %2213, label %2224

2213:                                             ; preds = %2210
  %2214 = load ptr, ptr %6, align 8, !tbaa !5
  %2215 = load ptr, ptr %9, align 8, !tbaa !5
  %2216 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2215, i32 0, i32 128
  %2217 = load i8, ptr %2216, align 4, !tbaa !11
  %2218 = load i32, ptr %11, align 4, !tbaa !9
  %2219 = load i32, ptr %11, align 4, !tbaa !9
  %2220 = load i32, ptr %11, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %2214, i32 noundef 805574231, i8 noundef signext %2217, i32 noundef %2218, i32 noundef %2219, i32 noundef %2220)
  br label %2221

2221:                                             ; preds = %2213
  %2222 = load i32, ptr %11, align 4, !tbaa !9
  %2223 = add i32 %2222, 1
  store i32 %2223, ptr %11, align 4, !tbaa !9
  br label %2210, !llvm.loop !42

2224:                                             ; preds = %2210
  %2225 = load i32, ptr %24, align 4, !tbaa !9
  %2226 = icmp ugt i32 %2225, 0
  br i1 %2226, label %2227, label %2237

2227:                                             ; preds = %2224
  %2228 = load ptr, ptr %6, align 8, !tbaa !5
  %2229 = load ptr, ptr %9, align 8, !tbaa !5
  %2230 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2229, i32 0, i32 128
  %2231 = load i8, ptr %2230, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg_mask(ptr noundef %2228, i32 noundef -268097947, i8 noundef signext %2231, i32 noundef 4, i32 noundef 0, i32 noundef 16, i32 noundef 7, i32 noundef 0)
  %2232 = load ptr, ptr %6, align 8, !tbaa !5
  %2233 = load ptr, ptr %9, align 8, !tbaa !5
  %2234 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2233, i32 0, i32 128
  %2235 = load i8, ptr %2234, align 4, !tbaa !11
  %2236 = load i32, ptr %34, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %2232, i32 noundef -259181021, i8 noundef signext %2235, i32 noundef 4, i32 noundef 0, i32 noundef 17, i32 noundef %2236)
  br label %2237

2237:                                             ; preds = %2227, %2224
  %2238 = load i32, ptr %23, align 4, !tbaa !9
  %2239 = icmp ugt i32 %2238, 0
  br i1 %2239, label %2240, label %2258

2240:                                             ; preds = %2237
  %2241 = load ptr, ptr %6, align 8, !tbaa !5
  %2242 = load ptr, ptr %9, align 8, !tbaa !5
  %2243 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2242, i32 0, i32 128
  %2244 = load i8, ptr %2243, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %2241, i32 noundef 805574233, i8 noundef signext %2244, i32 noundef 0, i32 noundef 0, i32 noundef 18)
  %2245 = load ptr, ptr %6, align 8, !tbaa !5
  %2246 = load ptr, ptr %9, align 8, !tbaa !5
  %2247 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2246, i32 0, i32 128
  %2248 = load i8, ptr %2247, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %2245, i32 noundef 805574233, i8 noundef signext %2248, i32 noundef 4, i32 noundef 4, i32 noundef 19)
  %2249 = load ptr, ptr %6, align 8, !tbaa !5
  %2250 = load ptr, ptr %9, align 8, !tbaa !5
  %2251 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2250, i32 0, i32 128
  %2252 = load i8, ptr %2251, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg_mask(ptr noundef %2249, i32 noundef -268097947, i8 noundef signext %2252, i32 noundef 19, i32 noundef 18, i32 noundef 20, i32 noundef 7, i32 noundef 0)
  %2253 = load ptr, ptr %6, align 8, !tbaa !5
  %2254 = load ptr, ptr %9, align 8, !tbaa !5
  %2255 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2254, i32 0, i32 128
  %2256 = load i8, ptr %2255, align 4, !tbaa !11
  %2257 = load i32, ptr %34, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %2253, i32 noundef -259181021, i8 noundef signext %2256, i32 noundef 19, i32 noundef 18, i32 noundef 21, i32 noundef %2257)
  br label %2258

2258:                                             ; preds = %2240, %2237
  %2259 = load i32, ptr %24, align 4, !tbaa !9
  %2260 = icmp ugt i32 %2259, 0
  br i1 %2260, label %2261, label %2267

2261:                                             ; preds = %2258
  %2262 = load ptr, ptr %6, align 8, !tbaa !5
  %2263 = load i32, ptr %25, align 4, !tbaa !9
  %2264 = load ptr, ptr %9, align 8, !tbaa !5
  %2265 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2264, i32 0, i32 128
  %2266 = load i8, ptr %2265, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %2262, i32 noundef %2263, i8 noundef signext %2266, i32 noundef 16, i32 noundef 17, i32 noundef 0)
  br label %2267

2267:                                             ; preds = %2261, %2258
  %2268 = load i32, ptr %23, align 4, !tbaa !9
  %2269 = icmp ugt i32 %2268, 0
  br i1 %2269, label %2270, label %2276

2270:                                             ; preds = %2267
  %2271 = load ptr, ptr %6, align 8, !tbaa !5
  %2272 = load i32, ptr %25, align 4, !tbaa !9
  %2273 = load ptr, ptr %9, align 8, !tbaa !5
  %2274 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2273, i32 0, i32 128
  %2275 = load i8, ptr %2274, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %2271, i32 noundef %2272, i8 noundef signext %2275, i32 noundef 20, i32 noundef 21, i32 noundef 24)
  br label %2276

2276:                                             ; preds = %2270, %2267
  %2277 = load i32, ptr %24, align 4, !tbaa !9
  %2278 = icmp ugt i32 %2277, 0
  br i1 %2278, label %2279, label %2289

2279:                                             ; preds = %2276
  %2280 = load ptr, ptr %6, align 8, !tbaa !5
  %2281 = load ptr, ptr %9, align 8, !tbaa !5
  %2282 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2281, i32 0, i32 128
  %2283 = load i8, ptr %2282, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg_mask(ptr noundef %2280, i32 noundef -268097947, i8 noundef signext %2283, i32 noundef 12, i32 noundef 8, i32 noundef 16, i32 noundef 7, i32 noundef 0)
  %2284 = load ptr, ptr %6, align 8, !tbaa !5
  %2285 = load ptr, ptr %9, align 8, !tbaa !5
  %2286 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2285, i32 0, i32 128
  %2287 = load i8, ptr %2286, align 4, !tbaa !11
  %2288 = load i32, ptr %34, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %2284, i32 noundef -259181021, i8 noundef signext %2287, i32 noundef 12, i32 noundef 8, i32 noundef 17, i32 noundef %2288)
  br label %2289

2289:                                             ; preds = %2279, %2276
  %2290 = load i32, ptr %23, align 4, !tbaa !9
  %2291 = icmp ugt i32 %2290, 0
  br i1 %2291, label %2292, label %2310

2292:                                             ; preds = %2289
  %2293 = load ptr, ptr %6, align 8, !tbaa !5
  %2294 = load ptr, ptr %9, align 8, !tbaa !5
  %2295 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2294, i32 0, i32 128
  %2296 = load i8, ptr %2295, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %2293, i32 noundef 805574233, i8 noundef signext %2296, i32 noundef 8, i32 noundef 8, i32 noundef 18)
  %2297 = load ptr, ptr %6, align 8, !tbaa !5
  %2298 = load ptr, ptr %9, align 8, !tbaa !5
  %2299 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2298, i32 0, i32 128
  %2300 = load i8, ptr %2299, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %2297, i32 noundef 805574233, i8 noundef signext %2300, i32 noundef 12, i32 noundef 12, i32 noundef 19)
  %2301 = load ptr, ptr %6, align 8, !tbaa !5
  %2302 = load ptr, ptr %9, align 8, !tbaa !5
  %2303 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2302, i32 0, i32 128
  %2304 = load i8, ptr %2303, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg_mask(ptr noundef %2301, i32 noundef -268097947, i8 noundef signext %2304, i32 noundef 19, i32 noundef 18, i32 noundef 20, i32 noundef 7, i32 noundef 0)
  %2305 = load ptr, ptr %6, align 8, !tbaa !5
  %2306 = load ptr, ptr %9, align 8, !tbaa !5
  %2307 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2306, i32 0, i32 128
  %2308 = load i8, ptr %2307, align 4, !tbaa !11
  %2309 = load i32, ptr %34, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %2305, i32 noundef -259181021, i8 noundef signext %2308, i32 noundef 19, i32 noundef 18, i32 noundef 21, i32 noundef %2309)
  br label %2310

2310:                                             ; preds = %2292, %2289
  %2311 = load i32, ptr %24, align 4, !tbaa !9
  %2312 = icmp ugt i32 %2311, 0
  br i1 %2312, label %2313, label %2319

2313:                                             ; preds = %2310
  %2314 = load ptr, ptr %6, align 8, !tbaa !5
  %2315 = load i32, ptr %25, align 4, !tbaa !9
  %2316 = load ptr, ptr %9, align 8, !tbaa !5
  %2317 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2316, i32 0, i32 128
  %2318 = load i8, ptr %2317, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %2314, i32 noundef %2315, i8 noundef signext %2318, i32 noundef 16, i32 noundef 17, i32 noundef 8)
  br label %2319

2319:                                             ; preds = %2313, %2310
  %2320 = load i32, ptr %23, align 4, !tbaa !9
  %2321 = icmp ugt i32 %2320, 0
  br i1 %2321, label %2322, label %2328

2322:                                             ; preds = %2319
  %2323 = load ptr, ptr %6, align 8, !tbaa !5
  %2324 = load i32, ptr %25, align 4, !tbaa !9
  %2325 = load ptr, ptr %9, align 8, !tbaa !5
  %2326 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2325, i32 0, i32 128
  %2327 = load i8, ptr %2326, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %2323, i32 noundef %2324, i8 noundef signext %2327, i32 noundef 20, i32 noundef 21, i32 noundef 28)
  br label %2328

2328:                                             ; preds = %2322, %2319
  %2329 = load i32, ptr %24, align 4, !tbaa !9
  %2330 = icmp ugt i32 %2329, 0
  br i1 %2330, label %2331, label %2341

2331:                                             ; preds = %2328
  %2332 = load ptr, ptr %6, align 8, !tbaa !5
  %2333 = load ptr, ptr %9, align 8, !tbaa !5
  %2334 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2333, i32 0, i32 128
  %2335 = load i8, ptr %2334, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg_mask(ptr noundef %2332, i32 noundef -268097947, i8 noundef signext %2335, i32 noundef 5, i32 noundef 1, i32 noundef 16, i32 noundef 7, i32 noundef 0)
  %2336 = load ptr, ptr %6, align 8, !tbaa !5
  %2337 = load ptr, ptr %9, align 8, !tbaa !5
  %2338 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2337, i32 0, i32 128
  %2339 = load i8, ptr %2338, align 4, !tbaa !11
  %2340 = load i32, ptr %34, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %2336, i32 noundef -259181021, i8 noundef signext %2339, i32 noundef 5, i32 noundef 1, i32 noundef 17, i32 noundef %2340)
  br label %2341

2341:                                             ; preds = %2331, %2328
  %2342 = load i32, ptr %23, align 4, !tbaa !9
  %2343 = icmp ugt i32 %2342, 0
  br i1 %2343, label %2344, label %2362

2344:                                             ; preds = %2341
  %2345 = load ptr, ptr %6, align 8, !tbaa !5
  %2346 = load ptr, ptr %9, align 8, !tbaa !5
  %2347 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2346, i32 0, i32 128
  %2348 = load i8, ptr %2347, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %2345, i32 noundef 805574233, i8 noundef signext %2348, i32 noundef 1, i32 noundef 1, i32 noundef 18)
  %2349 = load ptr, ptr %6, align 8, !tbaa !5
  %2350 = load ptr, ptr %9, align 8, !tbaa !5
  %2351 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2350, i32 0, i32 128
  %2352 = load i8, ptr %2351, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %2349, i32 noundef 805574233, i8 noundef signext %2352, i32 noundef 5, i32 noundef 5, i32 noundef 19)
  %2353 = load ptr, ptr %6, align 8, !tbaa !5
  %2354 = load ptr, ptr %9, align 8, !tbaa !5
  %2355 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2354, i32 0, i32 128
  %2356 = load i8, ptr %2355, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg_mask(ptr noundef %2353, i32 noundef -268097947, i8 noundef signext %2356, i32 noundef 19, i32 noundef 18, i32 noundef 20, i32 noundef 7, i32 noundef 0)
  %2357 = load ptr, ptr %6, align 8, !tbaa !5
  %2358 = load ptr, ptr %9, align 8, !tbaa !5
  %2359 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2358, i32 0, i32 128
  %2360 = load i8, ptr %2359, align 4, !tbaa !11
  %2361 = load i32, ptr %34, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %2357, i32 noundef -259181021, i8 noundef signext %2360, i32 noundef 19, i32 noundef 18, i32 noundef 21, i32 noundef %2361)
  br label %2362

2362:                                             ; preds = %2344, %2341
  %2363 = load i32, ptr %24, align 4, !tbaa !9
  %2364 = icmp ugt i32 %2363, 0
  br i1 %2364, label %2365, label %2371

2365:                                             ; preds = %2362
  %2366 = load ptr, ptr %6, align 8, !tbaa !5
  %2367 = load i32, ptr %25, align 4, !tbaa !9
  %2368 = load ptr, ptr %9, align 8, !tbaa !5
  %2369 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2368, i32 0, i32 128
  %2370 = load i8, ptr %2369, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %2366, i32 noundef %2367, i8 noundef signext %2370, i32 noundef 16, i32 noundef 17, i32 noundef 1)
  br label %2371

2371:                                             ; preds = %2365, %2362
  %2372 = load i32, ptr %23, align 4, !tbaa !9
  %2373 = icmp ugt i32 %2372, 0
  br i1 %2373, label %2374, label %2380

2374:                                             ; preds = %2371
  %2375 = load ptr, ptr %6, align 8, !tbaa !5
  %2376 = load i32, ptr %25, align 4, !tbaa !9
  %2377 = load ptr, ptr %9, align 8, !tbaa !5
  %2378 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2377, i32 0, i32 128
  %2379 = load i8, ptr %2378, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %2375, i32 noundef %2376, i8 noundef signext %2379, i32 noundef 20, i32 noundef 21, i32 noundef 25)
  br label %2380

2380:                                             ; preds = %2374, %2371
  %2381 = load i32, ptr %24, align 4, !tbaa !9
  %2382 = icmp ugt i32 %2381, 0
  br i1 %2382, label %2383, label %2393

2383:                                             ; preds = %2380
  %2384 = load ptr, ptr %6, align 8, !tbaa !5
  %2385 = load ptr, ptr %9, align 8, !tbaa !5
  %2386 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2385, i32 0, i32 128
  %2387 = load i8, ptr %2386, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg_mask(ptr noundef %2384, i32 noundef -268097947, i8 noundef signext %2387, i32 noundef 13, i32 noundef 9, i32 noundef 16, i32 noundef 7, i32 noundef 0)
  %2388 = load ptr, ptr %6, align 8, !tbaa !5
  %2389 = load ptr, ptr %9, align 8, !tbaa !5
  %2390 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2389, i32 0, i32 128
  %2391 = load i8, ptr %2390, align 4, !tbaa !11
  %2392 = load i32, ptr %34, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %2388, i32 noundef -259181021, i8 noundef signext %2391, i32 noundef 13, i32 noundef 9, i32 noundef 17, i32 noundef %2392)
  br label %2393

2393:                                             ; preds = %2383, %2380
  %2394 = load i32, ptr %23, align 4, !tbaa !9
  %2395 = icmp ugt i32 %2394, 0
  br i1 %2395, label %2396, label %2414

2396:                                             ; preds = %2393
  %2397 = load ptr, ptr %6, align 8, !tbaa !5
  %2398 = load ptr, ptr %9, align 8, !tbaa !5
  %2399 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2398, i32 0, i32 128
  %2400 = load i8, ptr %2399, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %2397, i32 noundef 805574233, i8 noundef signext %2400, i32 noundef 9, i32 noundef 9, i32 noundef 18)
  %2401 = load ptr, ptr %6, align 8, !tbaa !5
  %2402 = load ptr, ptr %9, align 8, !tbaa !5
  %2403 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2402, i32 0, i32 128
  %2404 = load i8, ptr %2403, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %2401, i32 noundef 805574233, i8 noundef signext %2404, i32 noundef 13, i32 noundef 13, i32 noundef 19)
  %2405 = load ptr, ptr %6, align 8, !tbaa !5
  %2406 = load ptr, ptr %9, align 8, !tbaa !5
  %2407 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2406, i32 0, i32 128
  %2408 = load i8, ptr %2407, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg_mask(ptr noundef %2405, i32 noundef -268097947, i8 noundef signext %2408, i32 noundef 19, i32 noundef 18, i32 noundef 20, i32 noundef 7, i32 noundef 0)
  %2409 = load ptr, ptr %6, align 8, !tbaa !5
  %2410 = load ptr, ptr %9, align 8, !tbaa !5
  %2411 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2410, i32 0, i32 128
  %2412 = load i8, ptr %2411, align 4, !tbaa !11
  %2413 = load i32, ptr %34, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %2409, i32 noundef -259181021, i8 noundef signext %2412, i32 noundef 19, i32 noundef 18, i32 noundef 21, i32 noundef %2413)
  br label %2414

2414:                                             ; preds = %2396, %2393
  %2415 = load i32, ptr %24, align 4, !tbaa !9
  %2416 = icmp ugt i32 %2415, 0
  br i1 %2416, label %2417, label %2423

2417:                                             ; preds = %2414
  %2418 = load ptr, ptr %6, align 8, !tbaa !5
  %2419 = load i32, ptr %25, align 4, !tbaa !9
  %2420 = load ptr, ptr %9, align 8, !tbaa !5
  %2421 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2420, i32 0, i32 128
  %2422 = load i8, ptr %2421, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %2418, i32 noundef %2419, i8 noundef signext %2422, i32 noundef 16, i32 noundef 17, i32 noundef 9)
  br label %2423

2423:                                             ; preds = %2417, %2414
  %2424 = load i32, ptr %23, align 4, !tbaa !9
  %2425 = icmp ugt i32 %2424, 0
  br i1 %2425, label %2426, label %2432

2426:                                             ; preds = %2423
  %2427 = load ptr, ptr %6, align 8, !tbaa !5
  %2428 = load i32, ptr %25, align 4, !tbaa !9
  %2429 = load ptr, ptr %9, align 8, !tbaa !5
  %2430 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2429, i32 0, i32 128
  %2431 = load i8, ptr %2430, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %2427, i32 noundef %2428, i8 noundef signext %2431, i32 noundef 20, i32 noundef 21, i32 noundef 29)
  br label %2432

2432:                                             ; preds = %2426, %2423
  %2433 = load i32, ptr %24, align 4, !tbaa !9
  %2434 = icmp ugt i32 %2433, 0
  br i1 %2434, label %2435, label %2445

2435:                                             ; preds = %2432
  %2436 = load ptr, ptr %6, align 8, !tbaa !5
  %2437 = load ptr, ptr %9, align 8, !tbaa !5
  %2438 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2437, i32 0, i32 128
  %2439 = load i8, ptr %2438, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg_mask(ptr noundef %2436, i32 noundef -268097947, i8 noundef signext %2439, i32 noundef 6, i32 noundef 2, i32 noundef 16, i32 noundef 7, i32 noundef 0)
  %2440 = load ptr, ptr %6, align 8, !tbaa !5
  %2441 = load ptr, ptr %9, align 8, !tbaa !5
  %2442 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2441, i32 0, i32 128
  %2443 = load i8, ptr %2442, align 4, !tbaa !11
  %2444 = load i32, ptr %34, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %2440, i32 noundef -259181021, i8 noundef signext %2443, i32 noundef 6, i32 noundef 2, i32 noundef 17, i32 noundef %2444)
  br label %2445

2445:                                             ; preds = %2435, %2432
  %2446 = load i32, ptr %23, align 4, !tbaa !9
  %2447 = icmp ugt i32 %2446, 0
  br i1 %2447, label %2448, label %2466

2448:                                             ; preds = %2445
  %2449 = load ptr, ptr %6, align 8, !tbaa !5
  %2450 = load ptr, ptr %9, align 8, !tbaa !5
  %2451 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2450, i32 0, i32 128
  %2452 = load i8, ptr %2451, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %2449, i32 noundef 805574233, i8 noundef signext %2452, i32 noundef 2, i32 noundef 2, i32 noundef 18)
  %2453 = load ptr, ptr %6, align 8, !tbaa !5
  %2454 = load ptr, ptr %9, align 8, !tbaa !5
  %2455 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2454, i32 0, i32 128
  %2456 = load i8, ptr %2455, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %2453, i32 noundef 805574233, i8 noundef signext %2456, i32 noundef 6, i32 noundef 6, i32 noundef 19)
  %2457 = load ptr, ptr %6, align 8, !tbaa !5
  %2458 = load ptr, ptr %9, align 8, !tbaa !5
  %2459 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2458, i32 0, i32 128
  %2460 = load i8, ptr %2459, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg_mask(ptr noundef %2457, i32 noundef -268097947, i8 noundef signext %2460, i32 noundef 19, i32 noundef 18, i32 noundef 20, i32 noundef 7, i32 noundef 0)
  %2461 = load ptr, ptr %6, align 8, !tbaa !5
  %2462 = load ptr, ptr %9, align 8, !tbaa !5
  %2463 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2462, i32 0, i32 128
  %2464 = load i8, ptr %2463, align 4, !tbaa !11
  %2465 = load i32, ptr %34, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %2461, i32 noundef -259181021, i8 noundef signext %2464, i32 noundef 19, i32 noundef 18, i32 noundef 21, i32 noundef %2465)
  br label %2466

2466:                                             ; preds = %2448, %2445
  %2467 = load i32, ptr %24, align 4, !tbaa !9
  %2468 = icmp ugt i32 %2467, 0
  br i1 %2468, label %2469, label %2475

2469:                                             ; preds = %2466
  %2470 = load ptr, ptr %6, align 8, !tbaa !5
  %2471 = load i32, ptr %25, align 4, !tbaa !9
  %2472 = load ptr, ptr %9, align 8, !tbaa !5
  %2473 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2472, i32 0, i32 128
  %2474 = load i8, ptr %2473, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %2470, i32 noundef %2471, i8 noundef signext %2474, i32 noundef 16, i32 noundef 17, i32 noundef 2)
  br label %2475

2475:                                             ; preds = %2469, %2466
  %2476 = load i32, ptr %23, align 4, !tbaa !9
  %2477 = icmp ugt i32 %2476, 0
  br i1 %2477, label %2478, label %2484

2478:                                             ; preds = %2475
  %2479 = load ptr, ptr %6, align 8, !tbaa !5
  %2480 = load i32, ptr %25, align 4, !tbaa !9
  %2481 = load ptr, ptr %9, align 8, !tbaa !5
  %2482 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2481, i32 0, i32 128
  %2483 = load i8, ptr %2482, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %2479, i32 noundef %2480, i8 noundef signext %2483, i32 noundef 20, i32 noundef 21, i32 noundef 26)
  br label %2484

2484:                                             ; preds = %2478, %2475
  %2485 = load i32, ptr %24, align 4, !tbaa !9
  %2486 = icmp ugt i32 %2485, 0
  br i1 %2486, label %2487, label %2497

2487:                                             ; preds = %2484
  %2488 = load ptr, ptr %6, align 8, !tbaa !5
  %2489 = load ptr, ptr %9, align 8, !tbaa !5
  %2490 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2489, i32 0, i32 128
  %2491 = load i8, ptr %2490, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg_mask(ptr noundef %2488, i32 noundef -268097947, i8 noundef signext %2491, i32 noundef 14, i32 noundef 10, i32 noundef 16, i32 noundef 7, i32 noundef 0)
  %2492 = load ptr, ptr %6, align 8, !tbaa !5
  %2493 = load ptr, ptr %9, align 8, !tbaa !5
  %2494 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2493, i32 0, i32 128
  %2495 = load i8, ptr %2494, align 4, !tbaa !11
  %2496 = load i32, ptr %34, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %2492, i32 noundef -259181021, i8 noundef signext %2495, i32 noundef 14, i32 noundef 10, i32 noundef 17, i32 noundef %2496)
  br label %2497

2497:                                             ; preds = %2487, %2484
  %2498 = load i32, ptr %23, align 4, !tbaa !9
  %2499 = icmp ugt i32 %2498, 0
  br i1 %2499, label %2500, label %2518

2500:                                             ; preds = %2497
  %2501 = load ptr, ptr %6, align 8, !tbaa !5
  %2502 = load ptr, ptr %9, align 8, !tbaa !5
  %2503 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2502, i32 0, i32 128
  %2504 = load i8, ptr %2503, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %2501, i32 noundef 805574233, i8 noundef signext %2504, i32 noundef 10, i32 noundef 10, i32 noundef 18)
  %2505 = load ptr, ptr %6, align 8, !tbaa !5
  %2506 = load ptr, ptr %9, align 8, !tbaa !5
  %2507 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2506, i32 0, i32 128
  %2508 = load i8, ptr %2507, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %2505, i32 noundef 805574233, i8 noundef signext %2508, i32 noundef 14, i32 noundef 14, i32 noundef 19)
  %2509 = load ptr, ptr %6, align 8, !tbaa !5
  %2510 = load ptr, ptr %9, align 8, !tbaa !5
  %2511 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2510, i32 0, i32 128
  %2512 = load i8, ptr %2511, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg_mask(ptr noundef %2509, i32 noundef -268097947, i8 noundef signext %2512, i32 noundef 19, i32 noundef 18, i32 noundef 20, i32 noundef 7, i32 noundef 0)
  %2513 = load ptr, ptr %6, align 8, !tbaa !5
  %2514 = load ptr, ptr %9, align 8, !tbaa !5
  %2515 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2514, i32 0, i32 128
  %2516 = load i8, ptr %2515, align 4, !tbaa !11
  %2517 = load i32, ptr %34, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %2513, i32 noundef -259181021, i8 noundef signext %2516, i32 noundef 19, i32 noundef 18, i32 noundef 21, i32 noundef %2517)
  br label %2518

2518:                                             ; preds = %2500, %2497
  %2519 = load i32, ptr %24, align 4, !tbaa !9
  %2520 = icmp ugt i32 %2519, 0
  br i1 %2520, label %2521, label %2527

2521:                                             ; preds = %2518
  %2522 = load ptr, ptr %6, align 8, !tbaa !5
  %2523 = load i32, ptr %25, align 4, !tbaa !9
  %2524 = load ptr, ptr %9, align 8, !tbaa !5
  %2525 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2524, i32 0, i32 128
  %2526 = load i8, ptr %2525, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %2522, i32 noundef %2523, i8 noundef signext %2526, i32 noundef 16, i32 noundef 17, i32 noundef 10)
  br label %2527

2527:                                             ; preds = %2521, %2518
  %2528 = load i32, ptr %23, align 4, !tbaa !9
  %2529 = icmp ugt i32 %2528, 0
  br i1 %2529, label %2530, label %2536

2530:                                             ; preds = %2527
  %2531 = load ptr, ptr %6, align 8, !tbaa !5
  %2532 = load i32, ptr %25, align 4, !tbaa !9
  %2533 = load ptr, ptr %9, align 8, !tbaa !5
  %2534 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2533, i32 0, i32 128
  %2535 = load i8, ptr %2534, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %2531, i32 noundef %2532, i8 noundef signext %2535, i32 noundef 20, i32 noundef 21, i32 noundef 30)
  br label %2536

2536:                                             ; preds = %2530, %2527
  %2537 = load i32, ptr %24, align 4, !tbaa !9
  %2538 = icmp ugt i32 %2537, 0
  br i1 %2538, label %2539, label %2549

2539:                                             ; preds = %2536
  %2540 = load ptr, ptr %6, align 8, !tbaa !5
  %2541 = load ptr, ptr %9, align 8, !tbaa !5
  %2542 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2541, i32 0, i32 128
  %2543 = load i8, ptr %2542, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg_mask(ptr noundef %2540, i32 noundef -268097947, i8 noundef signext %2543, i32 noundef 7, i32 noundef 3, i32 noundef 16, i32 noundef 7, i32 noundef 0)
  %2544 = load ptr, ptr %6, align 8, !tbaa !5
  %2545 = load ptr, ptr %9, align 8, !tbaa !5
  %2546 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2545, i32 0, i32 128
  %2547 = load i8, ptr %2546, align 4, !tbaa !11
  %2548 = load i32, ptr %34, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %2544, i32 noundef -259181021, i8 noundef signext %2547, i32 noundef 7, i32 noundef 3, i32 noundef 17, i32 noundef %2548)
  br label %2549

2549:                                             ; preds = %2539, %2536
  %2550 = load i32, ptr %23, align 4, !tbaa !9
  %2551 = icmp ugt i32 %2550, 0
  br i1 %2551, label %2552, label %2570

2552:                                             ; preds = %2549
  %2553 = load ptr, ptr %6, align 8, !tbaa !5
  %2554 = load ptr, ptr %9, align 8, !tbaa !5
  %2555 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2554, i32 0, i32 128
  %2556 = load i8, ptr %2555, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %2553, i32 noundef 805574233, i8 noundef signext %2556, i32 noundef 3, i32 noundef 3, i32 noundef 18)
  %2557 = load ptr, ptr %6, align 8, !tbaa !5
  %2558 = load ptr, ptr %9, align 8, !tbaa !5
  %2559 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2558, i32 0, i32 128
  %2560 = load i8, ptr %2559, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %2557, i32 noundef 805574233, i8 noundef signext %2560, i32 noundef 7, i32 noundef 7, i32 noundef 19)
  %2561 = load ptr, ptr %6, align 8, !tbaa !5
  %2562 = load ptr, ptr %9, align 8, !tbaa !5
  %2563 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2562, i32 0, i32 128
  %2564 = load i8, ptr %2563, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg_mask(ptr noundef %2561, i32 noundef -268097947, i8 noundef signext %2564, i32 noundef 19, i32 noundef 18, i32 noundef 20, i32 noundef 7, i32 noundef 0)
  %2565 = load ptr, ptr %6, align 8, !tbaa !5
  %2566 = load ptr, ptr %9, align 8, !tbaa !5
  %2567 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2566, i32 0, i32 128
  %2568 = load i8, ptr %2567, align 4, !tbaa !11
  %2569 = load i32, ptr %34, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %2565, i32 noundef -259181021, i8 noundef signext %2568, i32 noundef 19, i32 noundef 18, i32 noundef 21, i32 noundef %2569)
  br label %2570

2570:                                             ; preds = %2552, %2549
  %2571 = load i32, ptr %24, align 4, !tbaa !9
  %2572 = icmp ugt i32 %2571, 0
  br i1 %2572, label %2573, label %2579

2573:                                             ; preds = %2570
  %2574 = load ptr, ptr %6, align 8, !tbaa !5
  %2575 = load i32, ptr %25, align 4, !tbaa !9
  %2576 = load ptr, ptr %9, align 8, !tbaa !5
  %2577 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2576, i32 0, i32 128
  %2578 = load i8, ptr %2577, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %2574, i32 noundef %2575, i8 noundef signext %2578, i32 noundef 16, i32 noundef 17, i32 noundef 3)
  br label %2579

2579:                                             ; preds = %2573, %2570
  %2580 = load i32, ptr %23, align 4, !tbaa !9
  %2581 = icmp ugt i32 %2580, 0
  br i1 %2581, label %2582, label %2588

2582:                                             ; preds = %2579
  %2583 = load ptr, ptr %6, align 8, !tbaa !5
  %2584 = load i32, ptr %25, align 4, !tbaa !9
  %2585 = load ptr, ptr %9, align 8, !tbaa !5
  %2586 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2585, i32 0, i32 128
  %2587 = load i8, ptr %2586, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %2583, i32 noundef %2584, i8 noundef signext %2587, i32 noundef 20, i32 noundef 21, i32 noundef 27)
  br label %2588

2588:                                             ; preds = %2582, %2579
  %2589 = load i32, ptr %24, align 4, !tbaa !9
  %2590 = icmp ugt i32 %2589, 0
  br i1 %2590, label %2591, label %2601

2591:                                             ; preds = %2588
  %2592 = load ptr, ptr %6, align 8, !tbaa !5
  %2593 = load ptr, ptr %9, align 8, !tbaa !5
  %2594 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2593, i32 0, i32 128
  %2595 = load i8, ptr %2594, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg_mask(ptr noundef %2592, i32 noundef -268097947, i8 noundef signext %2595, i32 noundef 15, i32 noundef 11, i32 noundef 16, i32 noundef 7, i32 noundef 0)
  %2596 = load ptr, ptr %6, align 8, !tbaa !5
  %2597 = load ptr, ptr %9, align 8, !tbaa !5
  %2598 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2597, i32 0, i32 128
  %2599 = load i8, ptr %2598, align 4, !tbaa !11
  %2600 = load i32, ptr %34, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %2596, i32 noundef -259181021, i8 noundef signext %2599, i32 noundef 15, i32 noundef 11, i32 noundef 17, i32 noundef %2600)
  br label %2601

2601:                                             ; preds = %2591, %2588
  %2602 = load i32, ptr %23, align 4, !tbaa !9
  %2603 = icmp ugt i32 %2602, 0
  br i1 %2603, label %2604, label %2622

2604:                                             ; preds = %2601
  %2605 = load ptr, ptr %6, align 8, !tbaa !5
  %2606 = load ptr, ptr %9, align 8, !tbaa !5
  %2607 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2606, i32 0, i32 128
  %2608 = load i8, ptr %2607, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %2605, i32 noundef 805574233, i8 noundef signext %2608, i32 noundef 11, i32 noundef 11, i32 noundef 18)
  %2609 = load ptr, ptr %6, align 8, !tbaa !5
  %2610 = load ptr, ptr %9, align 8, !tbaa !5
  %2611 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2610, i32 0, i32 128
  %2612 = load i8, ptr %2611, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %2609, i32 noundef 805574233, i8 noundef signext %2612, i32 noundef 15, i32 noundef 15, i32 noundef 19)
  %2613 = load ptr, ptr %6, align 8, !tbaa !5
  %2614 = load ptr, ptr %9, align 8, !tbaa !5
  %2615 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2614, i32 0, i32 128
  %2616 = load i8, ptr %2615, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg_mask(ptr noundef %2613, i32 noundef -268097947, i8 noundef signext %2616, i32 noundef 19, i32 noundef 18, i32 noundef 20, i32 noundef 7, i32 noundef 0)
  %2617 = load ptr, ptr %6, align 8, !tbaa !5
  %2618 = load ptr, ptr %9, align 8, !tbaa !5
  %2619 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2618, i32 0, i32 128
  %2620 = load i8, ptr %2619, align 4, !tbaa !11
  %2621 = load i32, ptr %34, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %2617, i32 noundef -259181021, i8 noundef signext %2620, i32 noundef 19, i32 noundef 18, i32 noundef 21, i32 noundef %2621)
  br label %2622

2622:                                             ; preds = %2604, %2601
  %2623 = load i32, ptr %24, align 4, !tbaa !9
  %2624 = icmp ugt i32 %2623, 0
  br i1 %2624, label %2625, label %2631

2625:                                             ; preds = %2622
  %2626 = load ptr, ptr %6, align 8, !tbaa !5
  %2627 = load i32, ptr %25, align 4, !tbaa !9
  %2628 = load ptr, ptr %9, align 8, !tbaa !5
  %2629 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2628, i32 0, i32 128
  %2630 = load i8, ptr %2629, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %2626, i32 noundef %2627, i8 noundef signext %2630, i32 noundef 16, i32 noundef 17, i32 noundef 11)
  br label %2631

2631:                                             ; preds = %2625, %2622
  %2632 = load i32, ptr %23, align 4, !tbaa !9
  %2633 = icmp ugt i32 %2632, 0
  br i1 %2633, label %2634, label %2640

2634:                                             ; preds = %2631
  %2635 = load ptr, ptr %6, align 8, !tbaa !5
  %2636 = load i32, ptr %25, align 4, !tbaa !9
  %2637 = load ptr, ptr %9, align 8, !tbaa !5
  %2638 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2637, i32 0, i32 128
  %2639 = load i8, ptr %2638, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %2635, i32 noundef %2636, i8 noundef signext %2639, i32 noundef 20, i32 noundef 21, i32 noundef 31)
  br label %2640

2640:                                             ; preds = %2634, %2631
  %2641 = load ptr, ptr %6, align 8, !tbaa !5
  %2642 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %2641, i32 0, i32 6
  %2643 = load i32, ptr %2642, align 4, !tbaa !20
  %2644 = icmp uge i32 %2643, 1101
  br i1 %2644, label %2645, label %2782

2645:                                             ; preds = %2640
  %2646 = load i32, ptr %24, align 4, !tbaa !9
  %2647 = icmp ugt i32 %2646, 0
  br i1 %2647, label %2648, label %2662

2648:                                             ; preds = %2645
  %2649 = load ptr, ptr %6, align 8, !tbaa !5
  %2650 = load ptr, ptr %9, align 8, !tbaa !5
  %2651 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2650, i32 0, i32 128
  %2652 = load i8, ptr %2651, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %2649, i32 noundef -259181021, i8 noundef signext %2652, i32 noundef 8, i32 noundef 0, i32 noundef 16, i32 noundef 136)
  %2653 = load ptr, ptr %6, align 8, !tbaa !5
  %2654 = load ptr, ptr %9, align 8, !tbaa !5
  %2655 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2654, i32 0, i32 128
  %2656 = load i8, ptr %2655, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %2653, i32 noundef -259181021, i8 noundef signext %2656, i32 noundef 8, i32 noundef 0, i32 noundef 17, i32 noundef 221)
  %2657 = load ptr, ptr %6, align 8, !tbaa !5
  %2658 = load i32, ptr %25, align 4, !tbaa !9
  %2659 = load ptr, ptr %9, align 8, !tbaa !5
  %2660 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2659, i32 0, i32 128
  %2661 = load i8, ptr %2660, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %2657, i32 noundef %2658, i8 noundef signext %2661, i32 noundef 16, i32 noundef 17, i32 noundef 0)
  br label %2662

2662:                                             ; preds = %2648, %2645
  %2663 = load i32, ptr %23, align 4, !tbaa !9
  %2664 = icmp ugt i32 %2663, 0
  br i1 %2664, label %2665, label %2679

2665:                                             ; preds = %2662
  %2666 = load ptr, ptr %6, align 8, !tbaa !5
  %2667 = load ptr, ptr %9, align 8, !tbaa !5
  %2668 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2667, i32 0, i32 128
  %2669 = load i8, ptr %2668, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %2666, i32 noundef -259181021, i8 noundef signext %2669, i32 noundef 28, i32 noundef 24, i32 noundef 20, i32 noundef 136)
  %2670 = load ptr, ptr %6, align 8, !tbaa !5
  %2671 = load ptr, ptr %9, align 8, !tbaa !5
  %2672 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2671, i32 0, i32 128
  %2673 = load i8, ptr %2672, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %2670, i32 noundef -259181021, i8 noundef signext %2673, i32 noundef 28, i32 noundef 24, i32 noundef 21, i32 noundef 221)
  %2674 = load ptr, ptr %6, align 8, !tbaa !5
  %2675 = load i32, ptr %25, align 4, !tbaa !9
  %2676 = load ptr, ptr %9, align 8, !tbaa !5
  %2677 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2676, i32 0, i32 128
  %2678 = load i8, ptr %2677, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %2674, i32 noundef %2675, i8 noundef signext %2678, i32 noundef 20, i32 noundef 21, i32 noundef 24)
  br label %2679

2679:                                             ; preds = %2665, %2662
  %2680 = load i32, ptr %24, align 4, !tbaa !9
  %2681 = icmp ugt i32 %2680, 0
  br i1 %2681, label %2682, label %2696

2682:                                             ; preds = %2679
  %2683 = load ptr, ptr %6, align 8, !tbaa !5
  %2684 = load ptr, ptr %9, align 8, !tbaa !5
  %2685 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2684, i32 0, i32 128
  %2686 = load i8, ptr %2685, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %2683, i32 noundef -259181021, i8 noundef signext %2686, i32 noundef 9, i32 noundef 1, i32 noundef 16, i32 noundef 136)
  %2687 = load ptr, ptr %6, align 8, !tbaa !5
  %2688 = load ptr, ptr %9, align 8, !tbaa !5
  %2689 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2688, i32 0, i32 128
  %2690 = load i8, ptr %2689, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %2687, i32 noundef -259181021, i8 noundef signext %2690, i32 noundef 9, i32 noundef 1, i32 noundef 17, i32 noundef 221)
  %2691 = load ptr, ptr %6, align 8, !tbaa !5
  %2692 = load i32, ptr %25, align 4, !tbaa !9
  %2693 = load ptr, ptr %9, align 8, !tbaa !5
  %2694 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2693, i32 0, i32 128
  %2695 = load i8, ptr %2694, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %2691, i32 noundef %2692, i8 noundef signext %2695, i32 noundef 16, i32 noundef 17, i32 noundef 1)
  br label %2696

2696:                                             ; preds = %2682, %2679
  %2697 = load i32, ptr %23, align 4, !tbaa !9
  %2698 = icmp ugt i32 %2697, 0
  br i1 %2698, label %2699, label %2713

2699:                                             ; preds = %2696
  %2700 = load ptr, ptr %6, align 8, !tbaa !5
  %2701 = load ptr, ptr %9, align 8, !tbaa !5
  %2702 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2701, i32 0, i32 128
  %2703 = load i8, ptr %2702, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %2700, i32 noundef -259181021, i8 noundef signext %2703, i32 noundef 29, i32 noundef 25, i32 noundef 20, i32 noundef 136)
  %2704 = load ptr, ptr %6, align 8, !tbaa !5
  %2705 = load ptr, ptr %9, align 8, !tbaa !5
  %2706 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2705, i32 0, i32 128
  %2707 = load i8, ptr %2706, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %2704, i32 noundef -259181021, i8 noundef signext %2707, i32 noundef 29, i32 noundef 25, i32 noundef 21, i32 noundef 221)
  %2708 = load ptr, ptr %6, align 8, !tbaa !5
  %2709 = load i32, ptr %25, align 4, !tbaa !9
  %2710 = load ptr, ptr %9, align 8, !tbaa !5
  %2711 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2710, i32 0, i32 128
  %2712 = load i8, ptr %2711, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %2708, i32 noundef %2709, i8 noundef signext %2712, i32 noundef 20, i32 noundef 21, i32 noundef 25)
  br label %2713

2713:                                             ; preds = %2699, %2696
  %2714 = load i32, ptr %24, align 4, !tbaa !9
  %2715 = icmp ugt i32 %2714, 0
  br i1 %2715, label %2716, label %2730

2716:                                             ; preds = %2713
  %2717 = load ptr, ptr %6, align 8, !tbaa !5
  %2718 = load ptr, ptr %9, align 8, !tbaa !5
  %2719 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2718, i32 0, i32 128
  %2720 = load i8, ptr %2719, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %2717, i32 noundef -259181021, i8 noundef signext %2720, i32 noundef 10, i32 noundef 2, i32 noundef 16, i32 noundef 136)
  %2721 = load ptr, ptr %6, align 8, !tbaa !5
  %2722 = load ptr, ptr %9, align 8, !tbaa !5
  %2723 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2722, i32 0, i32 128
  %2724 = load i8, ptr %2723, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %2721, i32 noundef -259181021, i8 noundef signext %2724, i32 noundef 10, i32 noundef 2, i32 noundef 17, i32 noundef 221)
  %2725 = load ptr, ptr %6, align 8, !tbaa !5
  %2726 = load i32, ptr %25, align 4, !tbaa !9
  %2727 = load ptr, ptr %9, align 8, !tbaa !5
  %2728 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2727, i32 0, i32 128
  %2729 = load i8, ptr %2728, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %2725, i32 noundef %2726, i8 noundef signext %2729, i32 noundef 16, i32 noundef 17, i32 noundef 2)
  br label %2730

2730:                                             ; preds = %2716, %2713
  %2731 = load i32, ptr %23, align 4, !tbaa !9
  %2732 = icmp ugt i32 %2731, 0
  br i1 %2732, label %2733, label %2747

2733:                                             ; preds = %2730
  %2734 = load ptr, ptr %6, align 8, !tbaa !5
  %2735 = load ptr, ptr %9, align 8, !tbaa !5
  %2736 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2735, i32 0, i32 128
  %2737 = load i8, ptr %2736, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %2734, i32 noundef -259181021, i8 noundef signext %2737, i32 noundef 30, i32 noundef 26, i32 noundef 20, i32 noundef 136)
  %2738 = load ptr, ptr %6, align 8, !tbaa !5
  %2739 = load ptr, ptr %9, align 8, !tbaa !5
  %2740 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2739, i32 0, i32 128
  %2741 = load i8, ptr %2740, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %2738, i32 noundef -259181021, i8 noundef signext %2741, i32 noundef 30, i32 noundef 26, i32 noundef 21, i32 noundef 221)
  %2742 = load ptr, ptr %6, align 8, !tbaa !5
  %2743 = load i32, ptr %25, align 4, !tbaa !9
  %2744 = load ptr, ptr %9, align 8, !tbaa !5
  %2745 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2744, i32 0, i32 128
  %2746 = load i8, ptr %2745, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %2742, i32 noundef %2743, i8 noundef signext %2746, i32 noundef 20, i32 noundef 21, i32 noundef 26)
  br label %2747

2747:                                             ; preds = %2733, %2730
  %2748 = load i32, ptr %24, align 4, !tbaa !9
  %2749 = icmp ugt i32 %2748, 0
  br i1 %2749, label %2750, label %2764

2750:                                             ; preds = %2747
  %2751 = load ptr, ptr %6, align 8, !tbaa !5
  %2752 = load ptr, ptr %9, align 8, !tbaa !5
  %2753 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2752, i32 0, i32 128
  %2754 = load i8, ptr %2753, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %2751, i32 noundef -259181021, i8 noundef signext %2754, i32 noundef 11, i32 noundef 3, i32 noundef 16, i32 noundef 136)
  %2755 = load ptr, ptr %6, align 8, !tbaa !5
  %2756 = load ptr, ptr %9, align 8, !tbaa !5
  %2757 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2756, i32 0, i32 128
  %2758 = load i8, ptr %2757, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %2755, i32 noundef -259181021, i8 noundef signext %2758, i32 noundef 11, i32 noundef 3, i32 noundef 17, i32 noundef 221)
  %2759 = load ptr, ptr %6, align 8, !tbaa !5
  %2760 = load i32, ptr %25, align 4, !tbaa !9
  %2761 = load ptr, ptr %9, align 8, !tbaa !5
  %2762 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2761, i32 0, i32 128
  %2763 = load i8, ptr %2762, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %2759, i32 noundef %2760, i8 noundef signext %2763, i32 noundef 16, i32 noundef 17, i32 noundef 3)
  br label %2764

2764:                                             ; preds = %2750, %2747
  %2765 = load i32, ptr %23, align 4, !tbaa !9
  %2766 = icmp ugt i32 %2765, 0
  br i1 %2766, label %2767, label %2781

2767:                                             ; preds = %2764
  %2768 = load ptr, ptr %6, align 8, !tbaa !5
  %2769 = load ptr, ptr %9, align 8, !tbaa !5
  %2770 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2769, i32 0, i32 128
  %2771 = load i8, ptr %2770, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %2768, i32 noundef -259181021, i8 noundef signext %2771, i32 noundef 31, i32 noundef 27, i32 noundef 20, i32 noundef 136)
  %2772 = load ptr, ptr %6, align 8, !tbaa !5
  %2773 = load ptr, ptr %9, align 8, !tbaa !5
  %2774 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2773, i32 0, i32 128
  %2775 = load i8, ptr %2774, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %2772, i32 noundef -259181021, i8 noundef signext %2775, i32 noundef 31, i32 noundef 27, i32 noundef 21, i32 noundef 221)
  %2776 = load ptr, ptr %6, align 8, !tbaa !5
  %2777 = load i32, ptr %25, align 4, !tbaa !9
  %2778 = load ptr, ptr %9, align 8, !tbaa !5
  %2779 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2778, i32 0, i32 128
  %2780 = load i8, ptr %2779, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %2776, i32 noundef %2777, i8 noundef signext %2780, i32 noundef 20, i32 noundef 21, i32 noundef 27)
  br label %2781

2781:                                             ; preds = %2767, %2764
  br label %2782

2782:                                             ; preds = %2781, %2640
  %2783 = load i32, ptr %24, align 4, !tbaa !9
  %2784 = icmp ugt i32 %2783, 0
  br i1 %2784, label %2785, label %2799

2785:                                             ; preds = %2782
  %2786 = load ptr, ptr %6, align 8, !tbaa !5
  %2787 = load ptr, ptr %9, align 8, !tbaa !5
  %2788 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2787, i32 0, i32 128
  %2789 = load i8, ptr %2788, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %2786, i32 noundef 806098630, i8 noundef signext %2789, i32 noundef 1, i32 noundef 0, i32 noundef 16, i32 noundef 68)
  %2790 = load ptr, ptr %6, align 8, !tbaa !5
  %2791 = load ptr, ptr %9, align 8, !tbaa !5
  %2792 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2791, i32 0, i32 128
  %2793 = load i8, ptr %2792, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %2790, i32 noundef 806098630, i8 noundef signext %2793, i32 noundef 1, i32 noundef 0, i32 noundef 17, i32 noundef 238)
  %2794 = load ptr, ptr %6, align 8, !tbaa !5
  %2795 = load i32, ptr %25, align 4, !tbaa !9
  %2796 = load ptr, ptr %9, align 8, !tbaa !5
  %2797 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2796, i32 0, i32 128
  %2798 = load i8, ptr %2797, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %2794, i32 noundef %2795, i8 noundef signext %2798, i32 noundef 16, i32 noundef 17, i32 noundef 0)
  br label %2799

2799:                                             ; preds = %2785, %2782
  %2800 = load i32, ptr %23, align 4, !tbaa !9
  %2801 = icmp ugt i32 %2800, 0
  br i1 %2801, label %2802, label %2816

2802:                                             ; preds = %2799
  %2803 = load ptr, ptr %6, align 8, !tbaa !5
  %2804 = load ptr, ptr %9, align 8, !tbaa !5
  %2805 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2804, i32 0, i32 128
  %2806 = load i8, ptr %2805, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %2803, i32 noundef 806098630, i8 noundef signext %2806, i32 noundef 25, i32 noundef 24, i32 noundef 20, i32 noundef 68)
  %2807 = load ptr, ptr %6, align 8, !tbaa !5
  %2808 = load ptr, ptr %9, align 8, !tbaa !5
  %2809 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2808, i32 0, i32 128
  %2810 = load i8, ptr %2809, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %2807, i32 noundef 806098630, i8 noundef signext %2810, i32 noundef 25, i32 noundef 24, i32 noundef 21, i32 noundef 238)
  %2811 = load ptr, ptr %6, align 8, !tbaa !5
  %2812 = load i32, ptr %25, align 4, !tbaa !9
  %2813 = load ptr, ptr %9, align 8, !tbaa !5
  %2814 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2813, i32 0, i32 128
  %2815 = load i8, ptr %2814, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %2811, i32 noundef %2812, i8 noundef signext %2815, i32 noundef 20, i32 noundef 21, i32 noundef 24)
  br label %2816

2816:                                             ; preds = %2802, %2799
  %2817 = load i32, ptr %24, align 4, !tbaa !9
  %2818 = icmp ugt i32 %2817, 0
  br i1 %2818, label %2819, label %2833

2819:                                             ; preds = %2816
  %2820 = load ptr, ptr %6, align 8, !tbaa !5
  %2821 = load ptr, ptr %9, align 8, !tbaa !5
  %2822 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2821, i32 0, i32 128
  %2823 = load i8, ptr %2822, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %2820, i32 noundef 806098630, i8 noundef signext %2823, i32 noundef 3, i32 noundef 2, i32 noundef 16, i32 noundef 68)
  %2824 = load ptr, ptr %6, align 8, !tbaa !5
  %2825 = load ptr, ptr %9, align 8, !tbaa !5
  %2826 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2825, i32 0, i32 128
  %2827 = load i8, ptr %2826, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %2824, i32 noundef 806098630, i8 noundef signext %2827, i32 noundef 3, i32 noundef 2, i32 noundef 17, i32 noundef 238)
  %2828 = load ptr, ptr %6, align 8, !tbaa !5
  %2829 = load i32, ptr %25, align 4, !tbaa !9
  %2830 = load ptr, ptr %9, align 8, !tbaa !5
  %2831 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2830, i32 0, i32 128
  %2832 = load i8, ptr %2831, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %2828, i32 noundef %2829, i8 noundef signext %2832, i32 noundef 16, i32 noundef 17, i32 noundef 2)
  br label %2833

2833:                                             ; preds = %2819, %2816
  %2834 = load i32, ptr %23, align 4, !tbaa !9
  %2835 = icmp ugt i32 %2834, 0
  br i1 %2835, label %2836, label %2850

2836:                                             ; preds = %2833
  %2837 = load ptr, ptr %6, align 8, !tbaa !5
  %2838 = load ptr, ptr %9, align 8, !tbaa !5
  %2839 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2838, i32 0, i32 128
  %2840 = load i8, ptr %2839, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %2837, i32 noundef 806098630, i8 noundef signext %2840, i32 noundef 27, i32 noundef 26, i32 noundef 20, i32 noundef 68)
  %2841 = load ptr, ptr %6, align 8, !tbaa !5
  %2842 = load ptr, ptr %9, align 8, !tbaa !5
  %2843 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2842, i32 0, i32 128
  %2844 = load i8, ptr %2843, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %2841, i32 noundef 806098630, i8 noundef signext %2844, i32 noundef 27, i32 noundef 26, i32 noundef 21, i32 noundef 238)
  %2845 = load ptr, ptr %6, align 8, !tbaa !5
  %2846 = load i32, ptr %25, align 4, !tbaa !9
  %2847 = load ptr, ptr %9, align 8, !tbaa !5
  %2848 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2847, i32 0, i32 128
  %2849 = load i8, ptr %2848, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %2845, i32 noundef %2846, i8 noundef signext %2849, i32 noundef 20, i32 noundef 21, i32 noundef 26)
  br label %2850

2850:                                             ; preds = %2836, %2833
  %2851 = load i32, ptr %24, align 4, !tbaa !9
  %2852 = icmp ugt i32 %2851, 0
  br i1 %2852, label %2853, label %3457

2853:                                             ; preds = %2850
  %2854 = load ptr, ptr %6, align 8, !tbaa !5
  %2855 = load ptr, ptr %9, align 8, !tbaa !5
  %2856 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2855, i32 0, i32 128
  %2857 = load i8, ptr %2856, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %2854, i32 noundef 806098630, i8 noundef signext %2857, i32 noundef 2, i32 noundef 0, i32 noundef 16, i32 noundef 136)
  %2858 = load ptr, ptr %6, align 8, !tbaa !5
  %2859 = load ptr, ptr %9, align 8, !tbaa !5
  %2860 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2859, i32 0, i32 128
  %2861 = load i8, ptr %2860, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %2858, i32 noundef 806098630, i8 noundef signext %2861, i32 noundef 2, i32 noundef 0, i32 noundef 17, i32 noundef 221)
  %2862 = load ptr, ptr %6, align 8, !tbaa !5
  %2863 = load i32, ptr %25, align 4, !tbaa !9
  %2864 = load ptr, ptr %9, align 8, !tbaa !5
  %2865 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2864, i32 0, i32 128
  %2866 = load i8, ptr %2865, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %2862, i32 noundef %2863, i8 noundef signext %2866, i32 noundef 16, i32 noundef 17, i32 noundef 0)
  %2867 = load i32, ptr %12, align 4, !tbaa !9
  %2868 = icmp eq i32 %2867, 0
  br i1 %2868, label %2869, label %3010

2869:                                             ; preds = %2853
  %2870 = load i32, ptr %53, align 4, !tbaa !9
  %2871 = icmp eq i32 %2870, 0
  br i1 %2871, label %2872, label %3010

2872:                                             ; preds = %2869
  %2873 = load ptr, ptr %10, align 8, !tbaa !5
  %2874 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %2873, i32 noundef 3)
  %2875 = icmp eq i32 4, %2874
  br i1 %2875, label %2876, label %2889

2876:                                             ; preds = %2872
  %2877 = load ptr, ptr %6, align 8, !tbaa !5
  %2878 = load ptr, ptr %9, align 8, !tbaa !5
  %2879 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2878, i32 0, i32 0
  %2880 = load i32, ptr %2879, align 4, !tbaa !40
  %2881 = load i32, ptr %56, align 4, !tbaa !9
  %2882 = load ptr, ptr %9, align 8, !tbaa !5
  %2883 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2882, i32 0, i32 128
  %2884 = load i8, ptr %2883, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_move(ptr noundef %2877, i32 noundef %2880, i32 noundef 537138704, i32 noundef %2881, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %2884, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 1)
  %2885 = load ptr, ptr %6, align 8, !tbaa !5
  %2886 = load ptr, ptr %9, align 8, !tbaa !5
  %2887 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2886, i32 0, i32 128
  %2888 = load i8, ptr %2887, align 4, !tbaa !11
  call void @libxsmm_generator_vcvtneps2bf8_avx512_preppedstack(ptr noundef %2885, i8 noundef signext %2888, i32 noundef 0, i32 noundef 0, i32 noundef 3, i32 noundef 4, i32 noundef 3, i32 noundef 4, i32 noundef 0, i32 noundef 0)
  br label %2984

2889:                                             ; preds = %2872
  %2890 = load ptr, ptr %10, align 8, !tbaa !5
  %2891 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %2890, i32 noundef 3)
  %2892 = icmp eq i32 5, %2891
  br i1 %2892, label %2893, label %2913

2893:                                             ; preds = %2889
  %2894 = load ptr, ptr %6, align 8, !tbaa !5
  %2895 = load ptr, ptr %9, align 8, !tbaa !5
  %2896 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2895, i32 0, i32 0
  %2897 = load i32, ptr %2896, align 4, !tbaa !40
  %2898 = load i32, ptr %56, align 4, !tbaa !9
  %2899 = load ptr, ptr %9, align 8, !tbaa !5
  %2900 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2899, i32 0, i32 128
  %2901 = load i8, ptr %2900, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_move(ptr noundef %2894, i32 noundef %2897, i32 noundef 537138704, i32 noundef %2898, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %2901, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 1)
  %2902 = load ptr, ptr %6, align 8, !tbaa !5
  %2903 = load ptr, ptr %9, align 8, !tbaa !5
  %2904 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2903, i32 0, i32 128
  %2905 = load i8, ptr %2904, align 4, !tbaa !11
  %2906 = load i32, ptr %35, align 4, !tbaa !9
  %2907 = load i32, ptr %36, align 4, !tbaa !9
  %2908 = load i32, ptr %37, align 4, !tbaa !9
  %2909 = load i32, ptr %38, align 4, !tbaa !9
  %2910 = load i32, ptr %39, align 4, !tbaa !9
  %2911 = load i32, ptr %40, align 4, !tbaa !9
  %2912 = load i32, ptr %41, align 4, !tbaa !9
  call void @libxsmm_generator_vcvtf32_to_hf8_avx512_preppedstack(ptr noundef %2902, i8 noundef signext %2905, i32 noundef 0, i32 noundef 0, i32 noundef %2906, i32 noundef %2907, i32 noundef %2908, i32 noundef %2909, i32 noundef %2910, i32 noundef %2911, i32 noundef %2912)
  br label %2983

2913:                                             ; preds = %2889
  %2914 = load ptr, ptr %10, align 8, !tbaa !5
  %2915 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %2914, i32 noundef 3)
  %2916 = icmp eq i32 3, %2915
  br i1 %2916, label %2917, label %2943

2917:                                             ; preds = %2913
  %2918 = load ptr, ptr %6, align 8, !tbaa !5
  %2919 = load ptr, ptr %9, align 8, !tbaa !5
  %2920 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2919, i32 0, i32 0
  %2921 = load i32, ptr %2920, align 4, !tbaa !40
  %2922 = load i32, ptr %56, align 4, !tbaa !9
  %2923 = load ptr, ptr %9, align 8, !tbaa !5
  %2924 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2923, i32 0, i32 128
  %2925 = load i8, ptr %2924, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_move(ptr noundef %2918, i32 noundef %2921, i32 noundef 537138704, i32 noundef %2922, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %2925, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 1)
  %2926 = load ptr, ptr %6, align 8, !tbaa !5
  %2927 = load ptr, ptr %9, align 8, !tbaa !5
  %2928 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2927, i32 0, i32 128
  %2929 = load i8, ptr %2928, align 4, !tbaa !11
  %2930 = load ptr, ptr %6, align 8, !tbaa !5
  %2931 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %2930, i32 0, i32 6
  %2932 = load i32, ptr %2931, align 4, !tbaa !20
  %2933 = icmp ult i32 %2932, 1101
  %2934 = zext i1 %2933 to i64
  %2935 = select i1 %2933, i32 0, i32 1
  %2936 = load ptr, ptr %6, align 8, !tbaa !5
  %2937 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %2936, i32 0, i32 6
  %2938 = load i32, ptr %2937, align 4, !tbaa !20
  %2939 = icmp ult i32 %2938, 1101
  %2940 = zext i1 %2939 to i64
  %2941 = select i1 %2939, i32 0, i32 1
  %2942 = trunc i32 %2941 to i8
  call void @libxsmm_x86_instruction_vec_compute_2reg_mask_sae_imm8(ptr noundef %2926, i32 noundef 671954205, i8 noundef signext %2929, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef %2935, i8 noundef zeroext %2942, i32 noundef 0)
  br label %2982

2943:                                             ; preds = %2913
  %2944 = load ptr, ptr %10, align 8, !tbaa !5
  %2945 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %2944, i32 noundef 3)
  %2946 = icmp eq i32 2, %2945
  br i1 %2946, label %2947, label %2981

2947:                                             ; preds = %2943
  %2948 = load ptr, ptr %6, align 8, !tbaa !5
  %2949 = load ptr, ptr %9, align 8, !tbaa !5
  %2950 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2949, i32 0, i32 0
  %2951 = load i32, ptr %2950, align 4, !tbaa !40
  %2952 = load i32, ptr %56, align 4, !tbaa !9
  %2953 = load ptr, ptr %9, align 8, !tbaa !5
  %2954 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2953, i32 0, i32 128
  %2955 = load i8, ptr %2954, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_move(ptr noundef %2948, i32 noundef %2951, i32 noundef 537138704, i32 noundef %2952, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %2955, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 1)
  %2956 = load ptr, ptr %6, align 8, !tbaa !5
  %2957 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %2956, i32 0, i32 6
  %2958 = load i32, ptr %2957, align 4, !tbaa !20
  %2959 = icmp ult i32 %2958, 1103
  br i1 %2959, label %2960, label %2975

2960:                                             ; preds = %2947
  %2961 = load ptr, ptr %6, align 8, !tbaa !5
  %2962 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %2961, i32 0, i32 6
  %2963 = load i32, ptr %2962, align 4, !tbaa !20
  %2964 = icmp ne i32 %2963, 1053
  br i1 %2964, label %2965, label %2975

2965:                                             ; preds = %2960
  %2966 = load ptr, ptr %6, align 8, !tbaa !5
  %2967 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %2966, i32 0, i32 6
  %2968 = load i32, ptr %2967, align 4, !tbaa !20
  %2969 = icmp ne i32 %2968, 1008
  br i1 %2969, label %2970, label %2975

2970:                                             ; preds = %2965
  %2971 = load ptr, ptr %6, align 8, !tbaa !5
  %2972 = load ptr, ptr %9, align 8, !tbaa !5
  %2973 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2972, i32 0, i32 128
  %2974 = load i8, ptr %2973, align 4, !tbaa !11
  call void @libxsmm_generator_vcvtneps2bf16_avx512_preppedstack(ptr noundef %2971, i8 noundef signext %2974, i32 noundef 0, i32 noundef 0, i32 noundef 3, i32 noundef 4, i32 noundef 3, i32 noundef 4, i32 noundef 0)
  br label %2980

2975:                                             ; preds = %2965, %2960, %2947
  %2976 = load ptr, ptr %6, align 8, !tbaa !5
  %2977 = load ptr, ptr %9, align 8, !tbaa !5
  %2978 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2977, i32 0, i32 128
  %2979 = load i8, ptr %2978, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_2reg(ptr noundef %2976, i32 noundef 537273970, i8 noundef signext %2979, i32 noundef 0, i32 noundef 0)
  br label %2980

2980:                                             ; preds = %2975, %2970
  br label %2981

2981:                                             ; preds = %2980, %2943
  br label %2982

2982:                                             ; preds = %2981, %2917
  br label %2983

2983:                                             ; preds = %2982, %2893
  br label %2984

2984:                                             ; preds = %2983, %2876
  %2985 = load ptr, ptr %6, align 8, !tbaa !5
  %2986 = load ptr, ptr %9, align 8, !tbaa !5
  %2987 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %2986, i32 0, i32 0
  %2988 = load i32, ptr %2987, align 4, !tbaa !40
  %2989 = load ptr, ptr %10, align 8, !tbaa !5
  %2990 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %2989, i32 noundef 3)
  %2991 = icmp eq i32 4, %2990
  br i1 %2991, label %2996, label %2992

2992:                                             ; preds = %2984
  %2993 = load ptr, ptr %10, align 8, !tbaa !5
  %2994 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %2993, i32 noundef 3)
  %2995 = icmp eq i32 5, %2994
  br i1 %2995, label %2996, label %3002

2996:                                             ; preds = %2992, %2984
  %2997 = load ptr, ptr %6, align 8, !tbaa !5
  %2998 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %2997, i32 0, i32 6
  %2999 = load i32, ptr %2998, align 4, !tbaa !20
  %3000 = icmp ult i32 %2999, 1101
  br i1 %3000, label %3001, label %3002

3001:                                             ; preds = %2996
  br label %3004

3002:                                             ; preds = %2996, %2992
  %3003 = load i32, ptr %46, align 4, !tbaa !9
  br label %3004

3004:                                             ; preds = %3002, %3001
  %3005 = phi i32 [ 545725200, %3001 ], [ %3003, %3002 ]
  %3006 = load ptr, ptr %8, align 8, !tbaa !5
  %3007 = getelementptr inbounds %struct.libxsmm_mateltwise_gp_reg_mapping_struct, ptr %3006, i32 0, i32 16
  %3008 = load i32, ptr %3007, align 4, !tbaa !26
  %3009 = load i8, ptr %43, align 1, !tbaa !13
  call void @libxsmm_x86_instruction_vec_move(ptr noundef %2985, i32 noundef %2988, i32 noundef %3005, i32 noundef %3008, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %3009, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 1)
  br label %3456

3010:                                             ; preds = %2869, %2853
  %3011 = load i32, ptr %12, align 4, !tbaa !9
  %3012 = icmp eq i32 %3011, 0
  br i1 %3012, label %3013, label %3227

3013:                                             ; preds = %3010
  %3014 = load i32, ptr %53, align 4, !tbaa !9
  %3015 = icmp ugt i32 %3014, 0
  br i1 %3015, label %3016, label %3227

3016:                                             ; preds = %3013
  %3017 = load ptr, ptr %6, align 8, !tbaa !5
  %3018 = load ptr, ptr %9, align 8, !tbaa !5
  %3019 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %3018, i32 0, i32 0
  %3020 = load i32, ptr %3019, align 4, !tbaa !40
  %3021 = load ptr, ptr %10, align 8, !tbaa !5
  %3022 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %3021, i32 noundef 3)
  %3023 = icmp eq i32 4, %3022
  br i1 %3023, label %3028, label %3024

3024:                                             ; preds = %3016
  %3025 = load ptr, ptr %10, align 8, !tbaa !5
  %3026 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %3025, i32 noundef 3)
  %3027 = icmp eq i32 5, %3026
  br i1 %3027, label %3028, label %3034

3028:                                             ; preds = %3024, %3016
  %3029 = load ptr, ptr %6, align 8, !tbaa !5
  %3030 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %3029, i32 0, i32 6
  %3031 = load i32, ptr %3030, align 4, !tbaa !20
  %3032 = icmp ult i32 %3031, 1101
  br i1 %3032, label %3033, label %3034

3033:                                             ; preds = %3028
  br label %3036

3034:                                             ; preds = %3028, %3024
  %3035 = load i32, ptr %46, align 4, !tbaa !9
  br label %3036

3036:                                             ; preds = %3034, %3033
  %3037 = phi i32 [ 545725200, %3033 ], [ %3035, %3034 ]
  %3038 = load ptr, ptr %8, align 8, !tbaa !5
  %3039 = getelementptr inbounds %struct.libxsmm_mateltwise_gp_reg_mapping_struct, ptr %3038, i32 0, i32 16
  %3040 = load i32, ptr %3039, align 4, !tbaa !26
  %3041 = load i8, ptr %43, align 1, !tbaa !13
  call void @libxsmm_x86_instruction_vec_move(ptr noundef %3017, i32 noundef %3020, i32 noundef %3037, i32 noundef %3040, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %3041, i32 noundef 3, i32 noundef 0, i32 noundef 1, i32 noundef 0)
  %3042 = load ptr, ptr %10, align 8, !tbaa !5
  %3043 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %3042, i32 noundef 3)
  %3044 = icmp eq i32 4, %3043
  br i1 %3044, label %3045, label %3050

3045:                                             ; preds = %3036
  %3046 = load ptr, ptr %6, align 8, !tbaa !5
  %3047 = load ptr, ptr %9, align 8, !tbaa !5
  %3048 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %3047, i32 0, i32 128
  %3049 = load i8, ptr %3048, align 4, !tbaa !11
  call void @libxsmm_generator_cvtbf8ps_avx512(ptr noundef %3046, i8 noundef signext %3049, i32 noundef 3, i32 noundef 3)
  br label %3084

3050:                                             ; preds = %3036
  %3051 = load ptr, ptr %10, align 8, !tbaa !5
  %3052 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %3051, i32 noundef 3)
  %3053 = icmp eq i32 5, %3052
  br i1 %3053, label %3054, label %3063

3054:                                             ; preds = %3050
  %3055 = load ptr, ptr %6, align 8, !tbaa !5
  %3056 = load ptr, ptr %9, align 8, !tbaa !5
  %3057 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %3056, i32 0, i32 128
  %3058 = load i8, ptr %3057, align 4, !tbaa !11
  %3059 = load i32, ptr %35, align 4, !tbaa !9
  %3060 = load i32, ptr %36, align 4, !tbaa !9
  %3061 = load i32, ptr %39, align 4, !tbaa !9
  %3062 = load i32, ptr %40, align 4, !tbaa !9
  call void @libxsmm_generator_vcvthf8_to_f32_avx512_preppedstack(ptr noundef %3055, i8 noundef signext %3058, i32 noundef 3, i32 noundef 3, i32 noundef %3059, i32 noundef %3060, i32 noundef %3061, i32 noundef %3062)
  br label %3083

3063:                                             ; preds = %3050
  %3064 = load ptr, ptr %10, align 8, !tbaa !5
  %3065 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %3064, i32 noundef 3)
  %3066 = icmp eq i32 3, %3065
  br i1 %3066, label %3067, label %3072

3067:                                             ; preds = %3063
  %3068 = load ptr, ptr %6, align 8, !tbaa !5
  %3069 = load ptr, ptr %9, align 8, !tbaa !5
  %3070 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %3069, i32 0, i32 128
  %3071 = load i8, ptr %3070, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_2reg(ptr noundef %3068, i32 noundef 537208083, i8 noundef signext %3071, i32 noundef 3, i32 noundef 3)
  br label %3082

3072:                                             ; preds = %3063
  %3073 = load ptr, ptr %10, align 8, !tbaa !5
  %3074 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %3073, i32 noundef 3)
  %3075 = icmp eq i32 2, %3074
  br i1 %3075, label %3076, label %3081

3076:                                             ; preds = %3072
  %3077 = load ptr, ptr %6, align 8, !tbaa !5
  %3078 = load ptr, ptr %9, align 8, !tbaa !5
  %3079 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %3078, i32 0, i32 128
  %3080 = load i8, ptr %3079, align 4, !tbaa !11
  call void @libxsmm_generator_cvtbf16ps_sse_avx2_avx512(ptr noundef %3077, i8 noundef signext %3080, i32 noundef 3, i32 noundef 3)
  br label %3081

3081:                                             ; preds = %3076, %3072
  br label %3082

3082:                                             ; preds = %3081, %3067
  br label %3083

3083:                                             ; preds = %3082, %3054
  br label %3084

3084:                                             ; preds = %3083, %3045
  %3085 = load ptr, ptr %6, align 8, !tbaa !5
  %3086 = load i32, ptr %25, align 4, !tbaa !9
  %3087 = load ptr, ptr %9, align 8, !tbaa !5
  %3088 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %3087, i32 0, i32 128
  %3089 = load i8, ptr %3088, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %3085, i32 noundef %3086, i8 noundef signext %3089, i32 noundef 3, i32 noundef 0, i32 noundef 0)
  %3090 = load ptr, ptr %10, align 8, !tbaa !5
  %3091 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %3090, i32 noundef 3)
  %3092 = icmp eq i32 4, %3091
  br i1 %3092, label %3093, label %3106

3093:                                             ; preds = %3084
  %3094 = load ptr, ptr %6, align 8, !tbaa !5
  %3095 = load ptr, ptr %9, align 8, !tbaa !5
  %3096 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %3095, i32 0, i32 0
  %3097 = load i32, ptr %3096, align 4, !tbaa !40
  %3098 = load i32, ptr %56, align 4, !tbaa !9
  %3099 = load ptr, ptr %9, align 8, !tbaa !5
  %3100 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %3099, i32 0, i32 128
  %3101 = load i8, ptr %3100, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_move(ptr noundef %3094, i32 noundef %3097, i32 noundef 537138704, i32 noundef %3098, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %3101, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 1)
  %3102 = load ptr, ptr %6, align 8, !tbaa !5
  %3103 = load ptr, ptr %9, align 8, !tbaa !5
  %3104 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %3103, i32 0, i32 128
  %3105 = load i8, ptr %3104, align 4, !tbaa !11
  call void @libxsmm_generator_vcvtneps2bf8_avx512_preppedstack(ptr noundef %3102, i8 noundef signext %3105, i32 noundef 0, i32 noundef 0, i32 noundef 3, i32 noundef 4, i32 noundef 3, i32 noundef 4, i32 noundef 0, i32 noundef 0)
  br label %3201

3106:                                             ; preds = %3084
  %3107 = load ptr, ptr %10, align 8, !tbaa !5
  %3108 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %3107, i32 noundef 3)
  %3109 = icmp eq i32 5, %3108
  br i1 %3109, label %3110, label %3130

3110:                                             ; preds = %3106
  %3111 = load ptr, ptr %6, align 8, !tbaa !5
  %3112 = load ptr, ptr %9, align 8, !tbaa !5
  %3113 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %3112, i32 0, i32 0
  %3114 = load i32, ptr %3113, align 4, !tbaa !40
  %3115 = load i32, ptr %56, align 4, !tbaa !9
  %3116 = load ptr, ptr %9, align 8, !tbaa !5
  %3117 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %3116, i32 0, i32 128
  %3118 = load i8, ptr %3117, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_move(ptr noundef %3111, i32 noundef %3114, i32 noundef 537138704, i32 noundef %3115, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %3118, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 1)
  %3119 = load ptr, ptr %6, align 8, !tbaa !5
  %3120 = load ptr, ptr %9, align 8, !tbaa !5
  %3121 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %3120, i32 0, i32 128
  %3122 = load i8, ptr %3121, align 4, !tbaa !11
  %3123 = load i32, ptr %35, align 4, !tbaa !9
  %3124 = load i32, ptr %36, align 4, !tbaa !9
  %3125 = load i32, ptr %37, align 4, !tbaa !9
  %3126 = load i32, ptr %38, align 4, !tbaa !9
  %3127 = load i32, ptr %39, align 4, !tbaa !9
  %3128 = load i32, ptr %40, align 4, !tbaa !9
  %3129 = load i32, ptr %41, align 4, !tbaa !9
  call void @libxsmm_generator_vcvtf32_to_hf8_avx512_preppedstack(ptr noundef %3119, i8 noundef signext %3122, i32 noundef 0, i32 noundef 0, i32 noundef %3123, i32 noundef %3124, i32 noundef %3125, i32 noundef %3126, i32 noundef %3127, i32 noundef %3128, i32 noundef %3129)
  br label %3200

3130:                                             ; preds = %3106
  %3131 = load ptr, ptr %10, align 8, !tbaa !5
  %3132 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %3131, i32 noundef 3)
  %3133 = icmp eq i32 3, %3132
  br i1 %3133, label %3134, label %3160

3134:                                             ; preds = %3130
  %3135 = load ptr, ptr %6, align 8, !tbaa !5
  %3136 = load ptr, ptr %9, align 8, !tbaa !5
  %3137 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %3136, i32 0, i32 0
  %3138 = load i32, ptr %3137, align 4, !tbaa !40
  %3139 = load i32, ptr %56, align 4, !tbaa !9
  %3140 = load ptr, ptr %9, align 8, !tbaa !5
  %3141 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %3140, i32 0, i32 128
  %3142 = load i8, ptr %3141, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_move(ptr noundef %3135, i32 noundef %3138, i32 noundef 537138704, i32 noundef %3139, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %3142, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 1)
  %3143 = load ptr, ptr %6, align 8, !tbaa !5
  %3144 = load ptr, ptr %9, align 8, !tbaa !5
  %3145 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %3144, i32 0, i32 128
  %3146 = load i8, ptr %3145, align 4, !tbaa !11
  %3147 = load ptr, ptr %6, align 8, !tbaa !5
  %3148 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %3147, i32 0, i32 6
  %3149 = load i32, ptr %3148, align 4, !tbaa !20
  %3150 = icmp ult i32 %3149, 1101
  %3151 = zext i1 %3150 to i64
  %3152 = select i1 %3150, i32 0, i32 1
  %3153 = load ptr, ptr %6, align 8, !tbaa !5
  %3154 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %3153, i32 0, i32 6
  %3155 = load i32, ptr %3154, align 4, !tbaa !20
  %3156 = icmp ult i32 %3155, 1101
  %3157 = zext i1 %3156 to i64
  %3158 = select i1 %3156, i32 0, i32 1
  %3159 = trunc i32 %3158 to i8
  call void @libxsmm_x86_instruction_vec_compute_2reg_mask_sae_imm8(ptr noundef %3143, i32 noundef 671954205, i8 noundef signext %3146, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef %3152, i8 noundef zeroext %3159, i32 noundef 0)
  br label %3199

3160:                                             ; preds = %3130
  %3161 = load ptr, ptr %10, align 8, !tbaa !5
  %3162 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %3161, i32 noundef 3)
  %3163 = icmp eq i32 2, %3162
  br i1 %3163, label %3164, label %3198

3164:                                             ; preds = %3160
  %3165 = load ptr, ptr %6, align 8, !tbaa !5
  %3166 = load ptr, ptr %9, align 8, !tbaa !5
  %3167 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %3166, i32 0, i32 0
  %3168 = load i32, ptr %3167, align 4, !tbaa !40
  %3169 = load i32, ptr %56, align 4, !tbaa !9
  %3170 = load ptr, ptr %9, align 8, !tbaa !5
  %3171 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %3170, i32 0, i32 128
  %3172 = load i8, ptr %3171, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_move(ptr noundef %3165, i32 noundef %3168, i32 noundef 537138704, i32 noundef %3169, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %3172, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 1)
  %3173 = load ptr, ptr %6, align 8, !tbaa !5
  %3174 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %3173, i32 0, i32 6
  %3175 = load i32, ptr %3174, align 4, !tbaa !20
  %3176 = icmp ult i32 %3175, 1103
  br i1 %3176, label %3177, label %3192

3177:                                             ; preds = %3164
  %3178 = load ptr, ptr %6, align 8, !tbaa !5
  %3179 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %3178, i32 0, i32 6
  %3180 = load i32, ptr %3179, align 4, !tbaa !20
  %3181 = icmp ne i32 %3180, 1053
  br i1 %3181, label %3182, label %3192

3182:                                             ; preds = %3177
  %3183 = load ptr, ptr %6, align 8, !tbaa !5
  %3184 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %3183, i32 0, i32 6
  %3185 = load i32, ptr %3184, align 4, !tbaa !20
  %3186 = icmp ne i32 %3185, 1008
  br i1 %3186, label %3187, label %3192

3187:                                             ; preds = %3182
  %3188 = load ptr, ptr %6, align 8, !tbaa !5
  %3189 = load ptr, ptr %9, align 8, !tbaa !5
  %3190 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %3189, i32 0, i32 128
  %3191 = load i8, ptr %3190, align 4, !tbaa !11
  call void @libxsmm_generator_vcvtneps2bf16_avx512_preppedstack(ptr noundef %3188, i8 noundef signext %3191, i32 noundef 0, i32 noundef 0, i32 noundef 3, i32 noundef 4, i32 noundef 3, i32 noundef 4, i32 noundef 0)
  br label %3197

3192:                                             ; preds = %3182, %3177, %3164
  %3193 = load ptr, ptr %6, align 8, !tbaa !5
  %3194 = load ptr, ptr %9, align 8, !tbaa !5
  %3195 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %3194, i32 0, i32 128
  %3196 = load i8, ptr %3195, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_2reg(ptr noundef %3193, i32 noundef 537273970, i8 noundef signext %3196, i32 noundef 0, i32 noundef 0)
  br label %3197

3197:                                             ; preds = %3192, %3187
  br label %3198

3198:                                             ; preds = %3197, %3160
  br label %3199

3199:                                             ; preds = %3198, %3134
  br label %3200

3200:                                             ; preds = %3199, %3110
  br label %3201

3201:                                             ; preds = %3200, %3093
  %3202 = load ptr, ptr %6, align 8, !tbaa !5
  %3203 = load ptr, ptr %9, align 8, !tbaa !5
  %3204 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %3203, i32 0, i32 0
  %3205 = load i32, ptr %3204, align 4, !tbaa !40
  %3206 = load ptr, ptr %10, align 8, !tbaa !5
  %3207 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %3206, i32 noundef 3)
  %3208 = icmp eq i32 4, %3207
  br i1 %3208, label %3213, label %3209

3209:                                             ; preds = %3201
  %3210 = load ptr, ptr %10, align 8, !tbaa !5
  %3211 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %3210, i32 noundef 3)
  %3212 = icmp eq i32 5, %3211
  br i1 %3212, label %3213, label %3219

3213:                                             ; preds = %3209, %3201
  %3214 = load ptr, ptr %6, align 8, !tbaa !5
  %3215 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %3214, i32 0, i32 6
  %3216 = load i32, ptr %3215, align 4, !tbaa !20
  %3217 = icmp ult i32 %3216, 1101
  br i1 %3217, label %3218, label %3219

3218:                                             ; preds = %3213
  br label %3221

3219:                                             ; preds = %3213, %3209
  %3220 = load i32, ptr %46, align 4, !tbaa !9
  br label %3221

3221:                                             ; preds = %3219, %3218
  %3222 = phi i32 [ 545725200, %3218 ], [ %3220, %3219 ]
  %3223 = load ptr, ptr %8, align 8, !tbaa !5
  %3224 = getelementptr inbounds %struct.libxsmm_mateltwise_gp_reg_mapping_struct, ptr %3223, i32 0, i32 16
  %3225 = load i32, ptr %3224, align 4, !tbaa !26
  %3226 = load i8, ptr %43, align 1, !tbaa !13
  call void @libxsmm_x86_instruction_vec_move(ptr noundef %3202, i32 noundef %3205, i32 noundef %3222, i32 noundef %3225, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %3226, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 1)
  br label %3455

3227:                                             ; preds = %3013, %3010
  %3228 = load i32, ptr %12, align 4, !tbaa !9
  %3229 = load i32, ptr %15, align 4, !tbaa !9
  %3230 = sub i32 %3229, 1
  %3231 = icmp eq i32 %3228, %3230
  br i1 %3231, label %3232, label %3378

3232:                                             ; preds = %3227
  %3233 = load ptr, ptr %10, align 8, !tbaa !5
  %3234 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %3233, i32 noundef 3)
  %3235 = icmp eq i32 3, %3234
  br i1 %3235, label %3248, label %3236

3236:                                             ; preds = %3232
  %3237 = load ptr, ptr %10, align 8, !tbaa !5
  %3238 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %3237, i32 noundef 3)
  %3239 = icmp eq i32 2, %3238
  br i1 %3239, label %3248, label %3240

3240:                                             ; preds = %3236
  %3241 = load ptr, ptr %10, align 8, !tbaa !5
  %3242 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %3241, i32 noundef 3)
  %3243 = icmp eq i32 5, %3242
  br i1 %3243, label %3248, label %3244

3244:                                             ; preds = %3240
  %3245 = load ptr, ptr %10, align 8, !tbaa !5
  %3246 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %3245, i32 noundef 3)
  %3247 = icmp eq i32 4, %3246
  br i1 %3247, label %3248, label %3257

3248:                                             ; preds = %3244, %3240, %3236, %3232
  %3249 = load ptr, ptr %6, align 8, !tbaa !5
  %3250 = load ptr, ptr %9, align 8, !tbaa !5
  %3251 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %3250, i32 0, i32 0
  %3252 = load i32, ptr %3251, align 4, !tbaa !40
  %3253 = load i32, ptr %56, align 4, !tbaa !9
  %3254 = load ptr, ptr %9, align 8, !tbaa !5
  %3255 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %3254, i32 0, i32 128
  %3256 = load i8, ptr %3255, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_move(ptr noundef %3249, i32 noundef %3252, i32 noundef 537138704, i32 noundef %3253, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %3256, i32 noundef 1, i32 noundef 0, i32 noundef 1, i32 noundef 0)
  br label %3267

3257:                                             ; preds = %3244
  %3258 = load ptr, ptr %6, align 8, !tbaa !5
  %3259 = load ptr, ptr %9, align 8, !tbaa !5
  %3260 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %3259, i32 0, i32 0
  %3261 = load i32, ptr %3260, align 4, !tbaa !40
  %3262 = load i32, ptr %46, align 4, !tbaa !9
  %3263 = load ptr, ptr %8, align 8, !tbaa !5
  %3264 = getelementptr inbounds %struct.libxsmm_mateltwise_gp_reg_mapping_struct, ptr %3263, i32 0, i32 16
  %3265 = load i32, ptr %3264, align 4, !tbaa !26
  %3266 = load i8, ptr %43, align 1, !tbaa !13
  call void @libxsmm_x86_instruction_vec_move(ptr noundef %3258, i32 noundef %3261, i32 noundef %3262, i32 noundef %3265, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %3266, i32 noundef 1, i32 noundef 0, i32 noundef 1, i32 noundef 0)
  br label %3267

3267:                                             ; preds = %3257, %3248
  %3268 = load ptr, ptr %6, align 8, !tbaa !5
  %3269 = load i32, ptr %25, align 4, !tbaa !9
  %3270 = load ptr, ptr %9, align 8, !tbaa !5
  %3271 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %3270, i32 0, i32 128
  %3272 = load i8, ptr %3271, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %3268, i32 noundef %3269, i8 noundef signext %3272, i32 noundef 1, i32 noundef 0, i32 noundef 0)
  %3273 = load ptr, ptr %10, align 8, !tbaa !5
  %3274 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %3273, i32 noundef 3)
  %3275 = icmp eq i32 4, %3274
  br i1 %3275, label %3276, label %3281

3276:                                             ; preds = %3267
  %3277 = load ptr, ptr %6, align 8, !tbaa !5
  %3278 = load ptr, ptr %9, align 8, !tbaa !5
  %3279 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %3278, i32 0, i32 128
  %3280 = load i8, ptr %3279, align 4, !tbaa !11
  call void @libxsmm_generator_vcvtneps2bf8_avx512_preppedstack(ptr noundef %3277, i8 noundef signext %3280, i32 noundef 0, i32 noundef 0, i32 noundef 3, i32 noundef 4, i32 noundef 3, i32 noundef 4, i32 noundef 0, i32 noundef 0)
  br label %3352

3281:                                             ; preds = %3267
  %3282 = load ptr, ptr %10, align 8, !tbaa !5
  %3283 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %3282, i32 noundef 3)
  %3284 = icmp eq i32 5, %3283
  br i1 %3284, label %3285, label %3297

3285:                                             ; preds = %3281
  %3286 = load ptr, ptr %6, align 8, !tbaa !5
  %3287 = load ptr, ptr %9, align 8, !tbaa !5
  %3288 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %3287, i32 0, i32 128
  %3289 = load i8, ptr %3288, align 4, !tbaa !11
  %3290 = load i32, ptr %35, align 4, !tbaa !9
  %3291 = load i32, ptr %36, align 4, !tbaa !9
  %3292 = load i32, ptr %37, align 4, !tbaa !9
  %3293 = load i32, ptr %38, align 4, !tbaa !9
  %3294 = load i32, ptr %39, align 4, !tbaa !9
  %3295 = load i32, ptr %40, align 4, !tbaa !9
  %3296 = load i32, ptr %41, align 4, !tbaa !9
  call void @libxsmm_generator_vcvtf32_to_hf8_avx512_preppedstack(ptr noundef %3286, i8 noundef signext %3289, i32 noundef 0, i32 noundef 0, i32 noundef %3290, i32 noundef %3291, i32 noundef %3292, i32 noundef %3293, i32 noundef %3294, i32 noundef %3295, i32 noundef %3296)
  br label %3351

3297:                                             ; preds = %3281
  %3298 = load ptr, ptr %10, align 8, !tbaa !5
  %3299 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %3298, i32 noundef 3)
  %3300 = icmp eq i32 3, %3299
  br i1 %3300, label %3301, label %3319

3301:                                             ; preds = %3297
  %3302 = load ptr, ptr %6, align 8, !tbaa !5
  %3303 = load ptr, ptr %9, align 8, !tbaa !5
  %3304 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %3303, i32 0, i32 128
  %3305 = load i8, ptr %3304, align 4, !tbaa !11
  %3306 = load ptr, ptr %6, align 8, !tbaa !5
  %3307 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %3306, i32 0, i32 6
  %3308 = load i32, ptr %3307, align 4, !tbaa !20
  %3309 = icmp ult i32 %3308, 1101
  %3310 = zext i1 %3309 to i64
  %3311 = select i1 %3309, i32 0, i32 1
  %3312 = load ptr, ptr %6, align 8, !tbaa !5
  %3313 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %3312, i32 0, i32 6
  %3314 = load i32, ptr %3313, align 4, !tbaa !20
  %3315 = icmp ult i32 %3314, 1101
  %3316 = zext i1 %3315 to i64
  %3317 = select i1 %3315, i32 0, i32 1
  %3318 = trunc i32 %3317 to i8
  call void @libxsmm_x86_instruction_vec_compute_2reg_mask_sae_imm8(ptr noundef %3302, i32 noundef 671954205, i8 noundef signext %3305, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef %3311, i8 noundef zeroext %3318, i32 noundef 0)
  br label %3350

3319:                                             ; preds = %3297
  %3320 = load ptr, ptr %10, align 8, !tbaa !5
  %3321 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %3320, i32 noundef 3)
  %3322 = icmp eq i32 2, %3321
  br i1 %3322, label %3323, label %3349

3323:                                             ; preds = %3319
  %3324 = load ptr, ptr %6, align 8, !tbaa !5
  %3325 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %3324, i32 0, i32 6
  %3326 = load i32, ptr %3325, align 4, !tbaa !20
  %3327 = icmp ult i32 %3326, 1103
  br i1 %3327, label %3328, label %3343

3328:                                             ; preds = %3323
  %3329 = load ptr, ptr %6, align 8, !tbaa !5
  %3330 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %3329, i32 0, i32 6
  %3331 = load i32, ptr %3330, align 4, !tbaa !20
  %3332 = icmp ne i32 %3331, 1053
  br i1 %3332, label %3333, label %3343

3333:                                             ; preds = %3328
  %3334 = load ptr, ptr %6, align 8, !tbaa !5
  %3335 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %3334, i32 0, i32 6
  %3336 = load i32, ptr %3335, align 4, !tbaa !20
  %3337 = icmp ne i32 %3336, 1008
  br i1 %3337, label %3338, label %3343

3338:                                             ; preds = %3333
  %3339 = load ptr, ptr %6, align 8, !tbaa !5
  %3340 = load ptr, ptr %9, align 8, !tbaa !5
  %3341 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %3340, i32 0, i32 128
  %3342 = load i8, ptr %3341, align 4, !tbaa !11
  call void @libxsmm_generator_vcvtneps2bf16_avx512_preppedstack(ptr noundef %3339, i8 noundef signext %3342, i32 noundef 0, i32 noundef 0, i32 noundef 3, i32 noundef 4, i32 noundef 3, i32 noundef 4, i32 noundef 0)
  br label %3348

3343:                                             ; preds = %3333, %3328, %3323
  %3344 = load ptr, ptr %6, align 8, !tbaa !5
  %3345 = load ptr, ptr %9, align 8, !tbaa !5
  %3346 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %3345, i32 0, i32 128
  %3347 = load i8, ptr %3346, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_2reg(ptr noundef %3344, i32 noundef 537273970, i8 noundef signext %3347, i32 noundef 0, i32 noundef 0)
  br label %3348

3348:                                             ; preds = %3343, %3338
  br label %3349

3349:                                             ; preds = %3348, %3319
  br label %3350

3350:                                             ; preds = %3349, %3301
  br label %3351

3351:                                             ; preds = %3350, %3285
  br label %3352

3352:                                             ; preds = %3351, %3276
  %3353 = load ptr, ptr %6, align 8, !tbaa !5
  %3354 = load ptr, ptr %9, align 8, !tbaa !5
  %3355 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %3354, i32 0, i32 0
  %3356 = load i32, ptr %3355, align 4, !tbaa !40
  %3357 = load ptr, ptr %10, align 8, !tbaa !5
  %3358 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %3357, i32 noundef 3)
  %3359 = icmp eq i32 4, %3358
  br i1 %3359, label %3364, label %3360

3360:                                             ; preds = %3352
  %3361 = load ptr, ptr %10, align 8, !tbaa !5
  %3362 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %3361, i32 noundef 3)
  %3363 = icmp eq i32 5, %3362
  br i1 %3363, label %3364, label %3370

3364:                                             ; preds = %3360, %3352
  %3365 = load ptr, ptr %6, align 8, !tbaa !5
  %3366 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %3365, i32 0, i32 6
  %3367 = load i32, ptr %3366, align 4, !tbaa !20
  %3368 = icmp ult i32 %3367, 1101
  br i1 %3368, label %3369, label %3370

3369:                                             ; preds = %3364
  br label %3372

3370:                                             ; preds = %3364, %3360
  %3371 = load i32, ptr %46, align 4, !tbaa !9
  br label %3372

3372:                                             ; preds = %3370, %3369
  %3373 = phi i32 [ 545725200, %3369 ], [ %3371, %3370 ]
  %3374 = load ptr, ptr %8, align 8, !tbaa !5
  %3375 = getelementptr inbounds %struct.libxsmm_mateltwise_gp_reg_mapping_struct, ptr %3374, i32 0, i32 16
  %3376 = load i32, ptr %3375, align 4, !tbaa !26
  %3377 = load i8, ptr %43, align 1, !tbaa !13
  call void @libxsmm_x86_instruction_vec_move(ptr noundef %3353, i32 noundef %3356, i32 noundef %3373, i32 noundef %3376, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %3377, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 1)
  br label %3454

3378:                                             ; preds = %3227
  %3379 = load ptr, ptr %10, align 8, !tbaa !5
  %3380 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %3379, i32 noundef 3)
  %3381 = icmp eq i32 3, %3380
  br i1 %3381, label %3394, label %3382

3382:                                             ; preds = %3378
  %3383 = load ptr, ptr %10, align 8, !tbaa !5
  %3384 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %3383, i32 noundef 3)
  %3385 = icmp eq i32 2, %3384
  br i1 %3385, label %3394, label %3386

3386:                                             ; preds = %3382
  %3387 = load ptr, ptr %10, align 8, !tbaa !5
  %3388 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %3387, i32 noundef 3)
  %3389 = icmp eq i32 5, %3388
  br i1 %3389, label %3394, label %3390

3390:                                             ; preds = %3386
  %3391 = load ptr, ptr %10, align 8, !tbaa !5
  %3392 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %3391, i32 noundef 3)
  %3393 = icmp eq i32 4, %3392
  br i1 %3393, label %3394, label %3403

3394:                                             ; preds = %3390, %3386, %3382, %3378
  %3395 = load ptr, ptr %6, align 8, !tbaa !5
  %3396 = load ptr, ptr %9, align 8, !tbaa !5
  %3397 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %3396, i32 0, i32 0
  %3398 = load i32, ptr %3397, align 4, !tbaa !40
  %3399 = load i32, ptr %56, align 4, !tbaa !9
  %3400 = load ptr, ptr %9, align 8, !tbaa !5
  %3401 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %3400, i32 0, i32 128
  %3402 = load i8, ptr %3401, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_move(ptr noundef %3395, i32 noundef %3398, i32 noundef 537138704, i32 noundef %3399, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %3402, i32 noundef 1, i32 noundef 0, i32 noundef 1, i32 noundef 0)
  br label %3413

3403:                                             ; preds = %3390
  %3404 = load ptr, ptr %6, align 8, !tbaa !5
  %3405 = load ptr, ptr %9, align 8, !tbaa !5
  %3406 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %3405, i32 0, i32 0
  %3407 = load i32, ptr %3406, align 4, !tbaa !40
  %3408 = load i32, ptr %46, align 4, !tbaa !9
  %3409 = load ptr, ptr %8, align 8, !tbaa !5
  %3410 = getelementptr inbounds %struct.libxsmm_mateltwise_gp_reg_mapping_struct, ptr %3409, i32 0, i32 16
  %3411 = load i32, ptr %3410, align 4, !tbaa !26
  %3412 = load i8, ptr %43, align 1, !tbaa !13
  call void @libxsmm_x86_instruction_vec_move(ptr noundef %3404, i32 noundef %3407, i32 noundef %3408, i32 noundef %3411, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %3412, i32 noundef 1, i32 noundef 0, i32 noundef 1, i32 noundef 0)
  br label %3413

3413:                                             ; preds = %3403, %3394
  %3414 = load ptr, ptr %6, align 8, !tbaa !5
  %3415 = load i32, ptr %25, align 4, !tbaa !9
  %3416 = load ptr, ptr %9, align 8, !tbaa !5
  %3417 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %3416, i32 0, i32 128
  %3418 = load i8, ptr %3417, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %3414, i32 noundef %3415, i8 noundef signext %3418, i32 noundef 1, i32 noundef 0, i32 noundef 0)
  %3419 = load ptr, ptr %10, align 8, !tbaa !5
  %3420 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %3419, i32 noundef 3)
  %3421 = icmp eq i32 3, %3420
  br i1 %3421, label %3434, label %3422

3422:                                             ; preds = %3413
  %3423 = load ptr, ptr %10, align 8, !tbaa !5
  %3424 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %3423, i32 noundef 3)
  %3425 = icmp eq i32 2, %3424
  br i1 %3425, label %3434, label %3426

3426:                                             ; preds = %3422
  %3427 = load ptr, ptr %10, align 8, !tbaa !5
  %3428 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %3427, i32 noundef 3)
  %3429 = icmp eq i32 5, %3428
  br i1 %3429, label %3434, label %3430

3430:                                             ; preds = %3426
  %3431 = load ptr, ptr %10, align 8, !tbaa !5
  %3432 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %3431, i32 noundef 3)
  %3433 = icmp eq i32 4, %3432
  br i1 %3433, label %3434, label %3443

3434:                                             ; preds = %3430, %3426, %3422, %3413
  %3435 = load ptr, ptr %6, align 8, !tbaa !5
  %3436 = load ptr, ptr %9, align 8, !tbaa !5
  %3437 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %3436, i32 0, i32 0
  %3438 = load i32, ptr %3437, align 4, !tbaa !40
  %3439 = load i32, ptr %56, align 4, !tbaa !9
  %3440 = load ptr, ptr %9, align 8, !tbaa !5
  %3441 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %3440, i32 0, i32 128
  %3442 = load i8, ptr %3441, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_move(ptr noundef %3435, i32 noundef %3438, i32 noundef 537138704, i32 noundef %3439, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %3442, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 1)
  br label %3453

3443:                                             ; preds = %3430
  %3444 = load ptr, ptr %6, align 8, !tbaa !5
  %3445 = load ptr, ptr %9, align 8, !tbaa !5
  %3446 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %3445, i32 0, i32 0
  %3447 = load i32, ptr %3446, align 4, !tbaa !40
  %3448 = load i32, ptr %46, align 4, !tbaa !9
  %3449 = load ptr, ptr %8, align 8, !tbaa !5
  %3450 = getelementptr inbounds %struct.libxsmm_mateltwise_gp_reg_mapping_struct, ptr %3449, i32 0, i32 16
  %3451 = load i32, ptr %3450, align 4, !tbaa !26
  %3452 = load i8, ptr %43, align 1, !tbaa !13
  call void @libxsmm_x86_instruction_vec_move(ptr noundef %3444, i32 noundef %3447, i32 noundef %3448, i32 noundef %3451, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %3452, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 1)
  br label %3453

3453:                                             ; preds = %3443, %3434
  br label %3454

3454:                                             ; preds = %3453, %3372
  br label %3455

3455:                                             ; preds = %3454, %3221
  br label %3456

3456:                                             ; preds = %3455, %3004
  br label %3457

3457:                                             ; preds = %3456, %2850
  %3458 = load i32, ptr %23, align 4, !tbaa !9
  %3459 = icmp ugt i32 %3458, 0
  br i1 %3459, label %3460, label %4064

3460:                                             ; preds = %3457
  %3461 = load ptr, ptr %6, align 8, !tbaa !5
  %3462 = load ptr, ptr %9, align 8, !tbaa !5
  %3463 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %3462, i32 0, i32 128
  %3464 = load i8, ptr %3463, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %3461, i32 noundef 806098630, i8 noundef signext %3464, i32 noundef 26, i32 noundef 24, i32 noundef 20, i32 noundef 136)
  %3465 = load ptr, ptr %6, align 8, !tbaa !5
  %3466 = load ptr, ptr %9, align 8, !tbaa !5
  %3467 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %3466, i32 0, i32 128
  %3468 = load i8, ptr %3467, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %3465, i32 noundef 806098630, i8 noundef signext %3468, i32 noundef 26, i32 noundef 24, i32 noundef 21, i32 noundef 221)
  %3469 = load ptr, ptr %6, align 8, !tbaa !5
  %3470 = load i32, ptr %25, align 4, !tbaa !9
  %3471 = load ptr, ptr %9, align 8, !tbaa !5
  %3472 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %3471, i32 0, i32 128
  %3473 = load i8, ptr %3472, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %3469, i32 noundef %3470, i8 noundef signext %3473, i32 noundef 20, i32 noundef 21, i32 noundef 24)
  %3474 = load i32, ptr %12, align 4, !tbaa !9
  %3475 = icmp eq i32 %3474, 0
  br i1 %3475, label %3476, label %3617

3476:                                             ; preds = %3460
  %3477 = load i32, ptr %53, align 4, !tbaa !9
  %3478 = icmp eq i32 %3477, 0
  br i1 %3478, label %3479, label %3617

3479:                                             ; preds = %3476
  %3480 = load ptr, ptr %10, align 8, !tbaa !5
  %3481 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %3480, i32 noundef 3)
  %3482 = icmp eq i32 4, %3481
  br i1 %3482, label %3483, label %3496

3483:                                             ; preds = %3479
  %3484 = load ptr, ptr %6, align 8, !tbaa !5
  %3485 = load ptr, ptr %9, align 8, !tbaa !5
  %3486 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %3485, i32 0, i32 0
  %3487 = load i32, ptr %3486, align 4, !tbaa !40
  %3488 = load i32, ptr %56, align 4, !tbaa !9
  %3489 = load ptr, ptr %9, align 8, !tbaa !5
  %3490 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %3489, i32 0, i32 128
  %3491 = load i8, ptr %3490, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_move(ptr noundef %3484, i32 noundef %3487, i32 noundef 537138704, i32 noundef %3488, i32 noundef 127, i32 noundef 0, i32 noundef 64, i8 noundef signext %3491, i32 noundef 24, i32 noundef 0, i32 noundef 0, i32 noundef 1)
  %3492 = load ptr, ptr %6, align 8, !tbaa !5
  %3493 = load ptr, ptr %9, align 8, !tbaa !5
  %3494 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %3493, i32 0, i32 128
  %3495 = load i8, ptr %3494, align 4, !tbaa !11
  call void @libxsmm_generator_vcvtneps2bf8_avx512_preppedstack(ptr noundef %3492, i8 noundef signext %3495, i32 noundef 24, i32 noundef 24, i32 noundef 25, i32 noundef 26, i32 noundef 3, i32 noundef 4, i32 noundef 0, i32 noundef 0)
  br label %3591

3496:                                             ; preds = %3479
  %3497 = load ptr, ptr %10, align 8, !tbaa !5
  %3498 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %3497, i32 noundef 3)
  %3499 = icmp eq i32 5, %3498
  br i1 %3499, label %3500, label %3520

3500:                                             ; preds = %3496
  %3501 = load ptr, ptr %6, align 8, !tbaa !5
  %3502 = load ptr, ptr %9, align 8, !tbaa !5
  %3503 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %3502, i32 0, i32 0
  %3504 = load i32, ptr %3503, align 4, !tbaa !40
  %3505 = load i32, ptr %56, align 4, !tbaa !9
  %3506 = load ptr, ptr %9, align 8, !tbaa !5
  %3507 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %3506, i32 0, i32 128
  %3508 = load i8, ptr %3507, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_move(ptr noundef %3501, i32 noundef %3504, i32 noundef 537138704, i32 noundef %3505, i32 noundef 127, i32 noundef 0, i32 noundef 64, i8 noundef signext %3508, i32 noundef 24, i32 noundef 0, i32 noundef 0, i32 noundef 1)
  %3509 = load ptr, ptr %6, align 8, !tbaa !5
  %3510 = load ptr, ptr %9, align 8, !tbaa !5
  %3511 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %3510, i32 0, i32 128
  %3512 = load i8, ptr %3511, align 4, !tbaa !11
  %3513 = load i32, ptr %35, align 4, !tbaa !9
  %3514 = load i32, ptr %36, align 4, !tbaa !9
  %3515 = load i32, ptr %37, align 4, !tbaa !9
  %3516 = load i32, ptr %38, align 4, !tbaa !9
  %3517 = load i32, ptr %39, align 4, !tbaa !9
  %3518 = load i32, ptr %40, align 4, !tbaa !9
  %3519 = load i32, ptr %41, align 4, !tbaa !9
  call void @libxsmm_generator_vcvtf32_to_hf8_avx512_preppedstack(ptr noundef %3509, i8 noundef signext %3512, i32 noundef 24, i32 noundef 24, i32 noundef %3513, i32 noundef %3514, i32 noundef %3515, i32 noundef %3516, i32 noundef %3517, i32 noundef %3518, i32 noundef %3519)
  br label %3590

3520:                                             ; preds = %3496
  %3521 = load ptr, ptr %10, align 8, !tbaa !5
  %3522 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %3521, i32 noundef 3)
  %3523 = icmp eq i32 3, %3522
  br i1 %3523, label %3524, label %3550

3524:                                             ; preds = %3520
  %3525 = load ptr, ptr %6, align 8, !tbaa !5
  %3526 = load ptr, ptr %9, align 8, !tbaa !5
  %3527 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %3526, i32 0, i32 0
  %3528 = load i32, ptr %3527, align 4, !tbaa !40
  %3529 = load i32, ptr %56, align 4, !tbaa !9
  %3530 = load ptr, ptr %9, align 8, !tbaa !5
  %3531 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %3530, i32 0, i32 128
  %3532 = load i8, ptr %3531, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_move(ptr noundef %3525, i32 noundef %3528, i32 noundef 537138704, i32 noundef %3529, i32 noundef 127, i32 noundef 0, i32 noundef 64, i8 noundef signext %3532, i32 noundef 24, i32 noundef 0, i32 noundef 0, i32 noundef 1)
  %3533 = load ptr, ptr %6, align 8, !tbaa !5
  %3534 = load ptr, ptr %9, align 8, !tbaa !5
  %3535 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %3534, i32 0, i32 128
  %3536 = load i8, ptr %3535, align 4, !tbaa !11
  %3537 = load ptr, ptr %6, align 8, !tbaa !5
  %3538 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %3537, i32 0, i32 6
  %3539 = load i32, ptr %3538, align 4, !tbaa !20
  %3540 = icmp ult i32 %3539, 1101
  %3541 = zext i1 %3540 to i64
  %3542 = select i1 %3540, i32 0, i32 1
  %3543 = load ptr, ptr %6, align 8, !tbaa !5
  %3544 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %3543, i32 0, i32 6
  %3545 = load i32, ptr %3544, align 4, !tbaa !20
  %3546 = icmp ult i32 %3545, 1101
  %3547 = zext i1 %3546 to i64
  %3548 = select i1 %3546, i32 0, i32 1
  %3549 = trunc i32 %3548 to i8
  call void @libxsmm_x86_instruction_vec_compute_2reg_mask_sae_imm8(ptr noundef %3533, i32 noundef 671954205, i8 noundef signext %3536, i32 noundef 24, i32 noundef 24, i32 noundef 0, i32 noundef %3542, i8 noundef zeroext %3549, i32 noundef 0)
  br label %3589

3550:                                             ; preds = %3520
  %3551 = load ptr, ptr %10, align 8, !tbaa !5
  %3552 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %3551, i32 noundef 3)
  %3553 = icmp eq i32 2, %3552
  br i1 %3553, label %3554, label %3588

3554:                                             ; preds = %3550
  %3555 = load ptr, ptr %6, align 8, !tbaa !5
  %3556 = load ptr, ptr %9, align 8, !tbaa !5
  %3557 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %3556, i32 0, i32 0
  %3558 = load i32, ptr %3557, align 4, !tbaa !40
  %3559 = load i32, ptr %56, align 4, !tbaa !9
  %3560 = load ptr, ptr %9, align 8, !tbaa !5
  %3561 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %3560, i32 0, i32 128
  %3562 = load i8, ptr %3561, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_move(ptr noundef %3555, i32 noundef %3558, i32 noundef 537138704, i32 noundef %3559, i32 noundef 127, i32 noundef 0, i32 noundef 64, i8 noundef signext %3562, i32 noundef 24, i32 noundef 0, i32 noundef 0, i32 noundef 1)
  %3563 = load ptr, ptr %6, align 8, !tbaa !5
  %3564 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %3563, i32 0, i32 6
  %3565 = load i32, ptr %3564, align 4, !tbaa !20
  %3566 = icmp ult i32 %3565, 1103
  br i1 %3566, label %3567, label %3582

3567:                                             ; preds = %3554
  %3568 = load ptr, ptr %6, align 8, !tbaa !5
  %3569 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %3568, i32 0, i32 6
  %3570 = load i32, ptr %3569, align 4, !tbaa !20
  %3571 = icmp ne i32 %3570, 1053
  br i1 %3571, label %3572, label %3582

3572:                                             ; preds = %3567
  %3573 = load ptr, ptr %6, align 8, !tbaa !5
  %3574 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %3573, i32 0, i32 6
  %3575 = load i32, ptr %3574, align 4, !tbaa !20
  %3576 = icmp ne i32 %3575, 1008
  br i1 %3576, label %3577, label %3582

3577:                                             ; preds = %3572
  %3578 = load ptr, ptr %6, align 8, !tbaa !5
  %3579 = load ptr, ptr %9, align 8, !tbaa !5
  %3580 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %3579, i32 0, i32 128
  %3581 = load i8, ptr %3580, align 4, !tbaa !11
  call void @libxsmm_generator_vcvtneps2bf16_avx512_preppedstack(ptr noundef %3578, i8 noundef signext %3581, i32 noundef 24, i32 noundef 24, i32 noundef 25, i32 noundef 26, i32 noundef 3, i32 noundef 4, i32 noundef 0)
  br label %3587

3582:                                             ; preds = %3572, %3567, %3554
  %3583 = load ptr, ptr %6, align 8, !tbaa !5
  %3584 = load ptr, ptr %9, align 8, !tbaa !5
  %3585 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %3584, i32 0, i32 128
  %3586 = load i8, ptr %3585, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_2reg(ptr noundef %3583, i32 noundef 537273970, i8 noundef signext %3586, i32 noundef 24, i32 noundef 24)
  br label %3587

3587:                                             ; preds = %3582, %3577
  br label %3588

3588:                                             ; preds = %3587, %3550
  br label %3589

3589:                                             ; preds = %3588, %3524
  br label %3590

3590:                                             ; preds = %3589, %3500
  br label %3591

3591:                                             ; preds = %3590, %3483
  %3592 = load ptr, ptr %6, align 8, !tbaa !5
  %3593 = load ptr, ptr %9, align 8, !tbaa !5
  %3594 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %3593, i32 0, i32 0
  %3595 = load i32, ptr %3594, align 4, !tbaa !40
  %3596 = load ptr, ptr %10, align 8, !tbaa !5
  %3597 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %3596, i32 noundef 3)
  %3598 = icmp eq i32 4, %3597
  br i1 %3598, label %3603, label %3599

3599:                                             ; preds = %3591
  %3600 = load ptr, ptr %10, align 8, !tbaa !5
  %3601 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %3600, i32 noundef 3)
  %3602 = icmp eq i32 5, %3601
  br i1 %3602, label %3603, label %3609

3603:                                             ; preds = %3599, %3591
  %3604 = load ptr, ptr %6, align 8, !tbaa !5
  %3605 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %3604, i32 0, i32 6
  %3606 = load i32, ptr %3605, align 4, !tbaa !20
  %3607 = icmp ult i32 %3606, 1101
  br i1 %3607, label %3608, label %3609

3608:                                             ; preds = %3603
  br label %3611

3609:                                             ; preds = %3603, %3599
  %3610 = load i32, ptr %46, align 4, !tbaa !9
  br label %3611

3611:                                             ; preds = %3609, %3608
  %3612 = phi i32 [ 545725200, %3608 ], [ %3610, %3609 ]
  %3613 = load ptr, ptr %8, align 8, !tbaa !5
  %3614 = getelementptr inbounds %struct.libxsmm_mateltwise_gp_reg_mapping_struct, ptr %3613, i32 0, i32 17
  %3615 = load i32, ptr %3614, align 4, !tbaa !27
  %3616 = load i8, ptr %43, align 1, !tbaa !13
  call void @libxsmm_x86_instruction_vec_move(ptr noundef %3592, i32 noundef %3595, i32 noundef %3612, i32 noundef %3615, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %3616, i32 noundef 24, i32 noundef 0, i32 noundef 0, i32 noundef 1)
  br label %4063

3617:                                             ; preds = %3476, %3460
  %3618 = load i32, ptr %12, align 4, !tbaa !9
  %3619 = icmp eq i32 %3618, 0
  br i1 %3619, label %3620, label %3834

3620:                                             ; preds = %3617
  %3621 = load i32, ptr %53, align 4, !tbaa !9
  %3622 = icmp ugt i32 %3621, 0
  br i1 %3622, label %3623, label %3834

3623:                                             ; preds = %3620
  %3624 = load ptr, ptr %6, align 8, !tbaa !5
  %3625 = load ptr, ptr %9, align 8, !tbaa !5
  %3626 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %3625, i32 0, i32 0
  %3627 = load i32, ptr %3626, align 4, !tbaa !40
  %3628 = load ptr, ptr %10, align 8, !tbaa !5
  %3629 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %3628, i32 noundef 3)
  %3630 = icmp eq i32 4, %3629
  br i1 %3630, label %3635, label %3631

3631:                                             ; preds = %3623
  %3632 = load ptr, ptr %10, align 8, !tbaa !5
  %3633 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %3632, i32 noundef 3)
  %3634 = icmp eq i32 5, %3633
  br i1 %3634, label %3635, label %3641

3635:                                             ; preds = %3631, %3623
  %3636 = load ptr, ptr %6, align 8, !tbaa !5
  %3637 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %3636, i32 0, i32 6
  %3638 = load i32, ptr %3637, align 4, !tbaa !20
  %3639 = icmp ult i32 %3638, 1101
  br i1 %3639, label %3640, label %3641

3640:                                             ; preds = %3635
  br label %3643

3641:                                             ; preds = %3635, %3631
  %3642 = load i32, ptr %46, align 4, !tbaa !9
  br label %3643

3643:                                             ; preds = %3641, %3640
  %3644 = phi i32 [ 545725200, %3640 ], [ %3642, %3641 ]
  %3645 = load ptr, ptr %8, align 8, !tbaa !5
  %3646 = getelementptr inbounds %struct.libxsmm_mateltwise_gp_reg_mapping_struct, ptr %3645, i32 0, i32 17
  %3647 = load i32, ptr %3646, align 4, !tbaa !27
  %3648 = load i8, ptr %43, align 1, !tbaa !13
  call void @libxsmm_x86_instruction_vec_move(ptr noundef %3624, i32 noundef %3627, i32 noundef %3644, i32 noundef %3647, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %3648, i32 noundef 25, i32 noundef 0, i32 noundef 1, i32 noundef 0)
  %3649 = load ptr, ptr %10, align 8, !tbaa !5
  %3650 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %3649, i32 noundef 3)
  %3651 = icmp eq i32 4, %3650
  br i1 %3651, label %3652, label %3657

3652:                                             ; preds = %3643
  %3653 = load ptr, ptr %6, align 8, !tbaa !5
  %3654 = load ptr, ptr %9, align 8, !tbaa !5
  %3655 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %3654, i32 0, i32 128
  %3656 = load i8, ptr %3655, align 4, !tbaa !11
  call void @libxsmm_generator_cvtbf8ps_avx512(ptr noundef %3653, i8 noundef signext %3656, i32 noundef 25, i32 noundef 25)
  br label %3691

3657:                                             ; preds = %3643
  %3658 = load ptr, ptr %10, align 8, !tbaa !5
  %3659 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %3658, i32 noundef 3)
  %3660 = icmp eq i32 5, %3659
  br i1 %3660, label %3661, label %3670

3661:                                             ; preds = %3657
  %3662 = load ptr, ptr %6, align 8, !tbaa !5
  %3663 = load ptr, ptr %9, align 8, !tbaa !5
  %3664 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %3663, i32 0, i32 128
  %3665 = load i8, ptr %3664, align 4, !tbaa !11
  %3666 = load i32, ptr %35, align 4, !tbaa !9
  %3667 = load i32, ptr %36, align 4, !tbaa !9
  %3668 = load i32, ptr %39, align 4, !tbaa !9
  %3669 = load i32, ptr %40, align 4, !tbaa !9
  call void @libxsmm_generator_vcvthf8_to_f32_avx512_preppedstack(ptr noundef %3662, i8 noundef signext %3665, i32 noundef 25, i32 noundef 25, i32 noundef %3666, i32 noundef %3667, i32 noundef %3668, i32 noundef %3669)
  br label %3690

3670:                                             ; preds = %3657
  %3671 = load ptr, ptr %10, align 8, !tbaa !5
  %3672 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %3671, i32 noundef 3)
  %3673 = icmp eq i32 3, %3672
  br i1 %3673, label %3674, label %3679

3674:                                             ; preds = %3670
  %3675 = load ptr, ptr %6, align 8, !tbaa !5
  %3676 = load ptr, ptr %9, align 8, !tbaa !5
  %3677 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %3676, i32 0, i32 128
  %3678 = load i8, ptr %3677, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_2reg(ptr noundef %3675, i32 noundef 537208083, i8 noundef signext %3678, i32 noundef 25, i32 noundef 25)
  br label %3689

3679:                                             ; preds = %3670
  %3680 = load ptr, ptr %10, align 8, !tbaa !5
  %3681 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %3680, i32 noundef 3)
  %3682 = icmp eq i32 2, %3681
  br i1 %3682, label %3683, label %3688

3683:                                             ; preds = %3679
  %3684 = load ptr, ptr %6, align 8, !tbaa !5
  %3685 = load ptr, ptr %9, align 8, !tbaa !5
  %3686 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %3685, i32 0, i32 128
  %3687 = load i8, ptr %3686, align 4, !tbaa !11
  call void @libxsmm_generator_cvtbf16ps_sse_avx2_avx512(ptr noundef %3684, i8 noundef signext %3687, i32 noundef 25, i32 noundef 25)
  br label %3688

3688:                                             ; preds = %3683, %3679
  br label %3689

3689:                                             ; preds = %3688, %3674
  br label %3690

3690:                                             ; preds = %3689, %3661
  br label %3691

3691:                                             ; preds = %3690, %3652
  %3692 = load ptr, ptr %6, align 8, !tbaa !5
  %3693 = load i32, ptr %25, align 4, !tbaa !9
  %3694 = load ptr, ptr %9, align 8, !tbaa !5
  %3695 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %3694, i32 0, i32 128
  %3696 = load i8, ptr %3695, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %3692, i32 noundef %3693, i8 noundef signext %3696, i32 noundef 25, i32 noundef 24, i32 noundef 24)
  %3697 = load ptr, ptr %10, align 8, !tbaa !5
  %3698 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %3697, i32 noundef 3)
  %3699 = icmp eq i32 4, %3698
  br i1 %3699, label %3700, label %3713

3700:                                             ; preds = %3691
  %3701 = load ptr, ptr %6, align 8, !tbaa !5
  %3702 = load ptr, ptr %9, align 8, !tbaa !5
  %3703 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %3702, i32 0, i32 0
  %3704 = load i32, ptr %3703, align 4, !tbaa !40
  %3705 = load i32, ptr %56, align 4, !tbaa !9
  %3706 = load ptr, ptr %9, align 8, !tbaa !5
  %3707 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %3706, i32 0, i32 128
  %3708 = load i8, ptr %3707, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_move(ptr noundef %3701, i32 noundef %3704, i32 noundef 537138704, i32 noundef %3705, i32 noundef 127, i32 noundef 0, i32 noundef 64, i8 noundef signext %3708, i32 noundef 24, i32 noundef 0, i32 noundef 0, i32 noundef 1)
  %3709 = load ptr, ptr %6, align 8, !tbaa !5
  %3710 = load ptr, ptr %9, align 8, !tbaa !5
  %3711 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %3710, i32 0, i32 128
  %3712 = load i8, ptr %3711, align 4, !tbaa !11
  call void @libxsmm_generator_vcvtneps2bf8_avx512_preppedstack(ptr noundef %3709, i8 noundef signext %3712, i32 noundef 24, i32 noundef 24, i32 noundef 25, i32 noundef 26, i32 noundef 3, i32 noundef 4, i32 noundef 0, i32 noundef 0)
  br label %3808

3713:                                             ; preds = %3691
  %3714 = load ptr, ptr %10, align 8, !tbaa !5
  %3715 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %3714, i32 noundef 3)
  %3716 = icmp eq i32 5, %3715
  br i1 %3716, label %3717, label %3737

3717:                                             ; preds = %3713
  %3718 = load ptr, ptr %6, align 8, !tbaa !5
  %3719 = load ptr, ptr %9, align 8, !tbaa !5
  %3720 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %3719, i32 0, i32 0
  %3721 = load i32, ptr %3720, align 4, !tbaa !40
  %3722 = load i32, ptr %56, align 4, !tbaa !9
  %3723 = load ptr, ptr %9, align 8, !tbaa !5
  %3724 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %3723, i32 0, i32 128
  %3725 = load i8, ptr %3724, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_move(ptr noundef %3718, i32 noundef %3721, i32 noundef 537138704, i32 noundef %3722, i32 noundef 127, i32 noundef 0, i32 noundef 64, i8 noundef signext %3725, i32 noundef 24, i32 noundef 0, i32 noundef 0, i32 noundef 1)
  %3726 = load ptr, ptr %6, align 8, !tbaa !5
  %3727 = load ptr, ptr %9, align 8, !tbaa !5
  %3728 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %3727, i32 0, i32 128
  %3729 = load i8, ptr %3728, align 4, !tbaa !11
  %3730 = load i32, ptr %35, align 4, !tbaa !9
  %3731 = load i32, ptr %36, align 4, !tbaa !9
  %3732 = load i32, ptr %37, align 4, !tbaa !9
  %3733 = load i32, ptr %38, align 4, !tbaa !9
  %3734 = load i32, ptr %39, align 4, !tbaa !9
  %3735 = load i32, ptr %40, align 4, !tbaa !9
  %3736 = load i32, ptr %41, align 4, !tbaa !9
  call void @libxsmm_generator_vcvtf32_to_hf8_avx512_preppedstack(ptr noundef %3726, i8 noundef signext %3729, i32 noundef 24, i32 noundef 24, i32 noundef %3730, i32 noundef %3731, i32 noundef %3732, i32 noundef %3733, i32 noundef %3734, i32 noundef %3735, i32 noundef %3736)
  br label %3807

3737:                                             ; preds = %3713
  %3738 = load ptr, ptr %10, align 8, !tbaa !5
  %3739 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %3738, i32 noundef 3)
  %3740 = icmp eq i32 3, %3739
  br i1 %3740, label %3741, label %3767

3741:                                             ; preds = %3737
  %3742 = load ptr, ptr %6, align 8, !tbaa !5
  %3743 = load ptr, ptr %9, align 8, !tbaa !5
  %3744 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %3743, i32 0, i32 0
  %3745 = load i32, ptr %3744, align 4, !tbaa !40
  %3746 = load i32, ptr %56, align 4, !tbaa !9
  %3747 = load ptr, ptr %9, align 8, !tbaa !5
  %3748 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %3747, i32 0, i32 128
  %3749 = load i8, ptr %3748, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_move(ptr noundef %3742, i32 noundef %3745, i32 noundef 537138704, i32 noundef %3746, i32 noundef 127, i32 noundef 0, i32 noundef 64, i8 noundef signext %3749, i32 noundef 24, i32 noundef 0, i32 noundef 0, i32 noundef 1)
  %3750 = load ptr, ptr %6, align 8, !tbaa !5
  %3751 = load ptr, ptr %9, align 8, !tbaa !5
  %3752 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %3751, i32 0, i32 128
  %3753 = load i8, ptr %3752, align 4, !tbaa !11
  %3754 = load ptr, ptr %6, align 8, !tbaa !5
  %3755 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %3754, i32 0, i32 6
  %3756 = load i32, ptr %3755, align 4, !tbaa !20
  %3757 = icmp ult i32 %3756, 1101
  %3758 = zext i1 %3757 to i64
  %3759 = select i1 %3757, i32 0, i32 1
  %3760 = load ptr, ptr %6, align 8, !tbaa !5
  %3761 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %3760, i32 0, i32 6
  %3762 = load i32, ptr %3761, align 4, !tbaa !20
  %3763 = icmp ult i32 %3762, 1101
  %3764 = zext i1 %3763 to i64
  %3765 = select i1 %3763, i32 0, i32 1
  %3766 = trunc i32 %3765 to i8
  call void @libxsmm_x86_instruction_vec_compute_2reg_mask_sae_imm8(ptr noundef %3750, i32 noundef 671954205, i8 noundef signext %3753, i32 noundef 24, i32 noundef 24, i32 noundef 0, i32 noundef %3759, i8 noundef zeroext %3766, i32 noundef 0)
  br label %3806

3767:                                             ; preds = %3737
  %3768 = load ptr, ptr %10, align 8, !tbaa !5
  %3769 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %3768, i32 noundef 3)
  %3770 = icmp eq i32 2, %3769
  br i1 %3770, label %3771, label %3805

3771:                                             ; preds = %3767
  %3772 = load ptr, ptr %6, align 8, !tbaa !5
  %3773 = load ptr, ptr %9, align 8, !tbaa !5
  %3774 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %3773, i32 0, i32 0
  %3775 = load i32, ptr %3774, align 4, !tbaa !40
  %3776 = load i32, ptr %56, align 4, !tbaa !9
  %3777 = load ptr, ptr %9, align 8, !tbaa !5
  %3778 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %3777, i32 0, i32 128
  %3779 = load i8, ptr %3778, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_move(ptr noundef %3772, i32 noundef %3775, i32 noundef 537138704, i32 noundef %3776, i32 noundef 127, i32 noundef 0, i32 noundef 64, i8 noundef signext %3779, i32 noundef 24, i32 noundef 0, i32 noundef 0, i32 noundef 1)
  %3780 = load ptr, ptr %6, align 8, !tbaa !5
  %3781 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %3780, i32 0, i32 6
  %3782 = load i32, ptr %3781, align 4, !tbaa !20
  %3783 = icmp ult i32 %3782, 1103
  br i1 %3783, label %3784, label %3799

3784:                                             ; preds = %3771
  %3785 = load ptr, ptr %6, align 8, !tbaa !5
  %3786 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %3785, i32 0, i32 6
  %3787 = load i32, ptr %3786, align 4, !tbaa !20
  %3788 = icmp ne i32 %3787, 1053
  br i1 %3788, label %3789, label %3799

3789:                                             ; preds = %3784
  %3790 = load ptr, ptr %6, align 8, !tbaa !5
  %3791 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %3790, i32 0, i32 6
  %3792 = load i32, ptr %3791, align 4, !tbaa !20
  %3793 = icmp ne i32 %3792, 1008
  br i1 %3793, label %3794, label %3799

3794:                                             ; preds = %3789
  %3795 = load ptr, ptr %6, align 8, !tbaa !5
  %3796 = load ptr, ptr %9, align 8, !tbaa !5
  %3797 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %3796, i32 0, i32 128
  %3798 = load i8, ptr %3797, align 4, !tbaa !11
  call void @libxsmm_generator_vcvtneps2bf16_avx512_preppedstack(ptr noundef %3795, i8 noundef signext %3798, i32 noundef 24, i32 noundef 24, i32 noundef 25, i32 noundef 26, i32 noundef 3, i32 noundef 4, i32 noundef 0)
  br label %3804

3799:                                             ; preds = %3789, %3784, %3771
  %3800 = load ptr, ptr %6, align 8, !tbaa !5
  %3801 = load ptr, ptr %9, align 8, !tbaa !5
  %3802 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %3801, i32 0, i32 128
  %3803 = load i8, ptr %3802, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_2reg(ptr noundef %3800, i32 noundef 537273970, i8 noundef signext %3803, i32 noundef 24, i32 noundef 24)
  br label %3804

3804:                                             ; preds = %3799, %3794
  br label %3805

3805:                                             ; preds = %3804, %3767
  br label %3806

3806:                                             ; preds = %3805, %3741
  br label %3807

3807:                                             ; preds = %3806, %3717
  br label %3808

3808:                                             ; preds = %3807, %3700
  %3809 = load ptr, ptr %6, align 8, !tbaa !5
  %3810 = load ptr, ptr %9, align 8, !tbaa !5
  %3811 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %3810, i32 0, i32 0
  %3812 = load i32, ptr %3811, align 4, !tbaa !40
  %3813 = load ptr, ptr %10, align 8, !tbaa !5
  %3814 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %3813, i32 noundef 3)
  %3815 = icmp eq i32 4, %3814
  br i1 %3815, label %3820, label %3816

3816:                                             ; preds = %3808
  %3817 = load ptr, ptr %10, align 8, !tbaa !5
  %3818 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %3817, i32 noundef 3)
  %3819 = icmp eq i32 5, %3818
  br i1 %3819, label %3820, label %3826

3820:                                             ; preds = %3816, %3808
  %3821 = load ptr, ptr %6, align 8, !tbaa !5
  %3822 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %3821, i32 0, i32 6
  %3823 = load i32, ptr %3822, align 4, !tbaa !20
  %3824 = icmp ult i32 %3823, 1101
  br i1 %3824, label %3825, label %3826

3825:                                             ; preds = %3820
  br label %3828

3826:                                             ; preds = %3820, %3816
  %3827 = load i32, ptr %46, align 4, !tbaa !9
  br label %3828

3828:                                             ; preds = %3826, %3825
  %3829 = phi i32 [ 545725200, %3825 ], [ %3827, %3826 ]
  %3830 = load ptr, ptr %8, align 8, !tbaa !5
  %3831 = getelementptr inbounds %struct.libxsmm_mateltwise_gp_reg_mapping_struct, ptr %3830, i32 0, i32 17
  %3832 = load i32, ptr %3831, align 4, !tbaa !27
  %3833 = load i8, ptr %43, align 1, !tbaa !13
  call void @libxsmm_x86_instruction_vec_move(ptr noundef %3809, i32 noundef %3812, i32 noundef %3829, i32 noundef %3832, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %3833, i32 noundef 24, i32 noundef 0, i32 noundef 0, i32 noundef 1)
  br label %4062

3834:                                             ; preds = %3620, %3617
  %3835 = load i32, ptr %12, align 4, !tbaa !9
  %3836 = load i32, ptr %15, align 4, !tbaa !9
  %3837 = sub i32 %3836, 1
  %3838 = icmp eq i32 %3835, %3837
  br i1 %3838, label %3839, label %3985

3839:                                             ; preds = %3834
  %3840 = load ptr, ptr %10, align 8, !tbaa !5
  %3841 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %3840, i32 noundef 3)
  %3842 = icmp eq i32 3, %3841
  br i1 %3842, label %3855, label %3843

3843:                                             ; preds = %3839
  %3844 = load ptr, ptr %10, align 8, !tbaa !5
  %3845 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %3844, i32 noundef 3)
  %3846 = icmp eq i32 2, %3845
  br i1 %3846, label %3855, label %3847

3847:                                             ; preds = %3843
  %3848 = load ptr, ptr %10, align 8, !tbaa !5
  %3849 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %3848, i32 noundef 3)
  %3850 = icmp eq i32 5, %3849
  br i1 %3850, label %3855, label %3851

3851:                                             ; preds = %3847
  %3852 = load ptr, ptr %10, align 8, !tbaa !5
  %3853 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %3852, i32 noundef 3)
  %3854 = icmp eq i32 4, %3853
  br i1 %3854, label %3855, label %3864

3855:                                             ; preds = %3851, %3847, %3843, %3839
  %3856 = load ptr, ptr %6, align 8, !tbaa !5
  %3857 = load ptr, ptr %9, align 8, !tbaa !5
  %3858 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %3857, i32 0, i32 0
  %3859 = load i32, ptr %3858, align 4, !tbaa !40
  %3860 = load i32, ptr %56, align 4, !tbaa !9
  %3861 = load ptr, ptr %9, align 8, !tbaa !5
  %3862 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %3861, i32 0, i32 128
  %3863 = load i8, ptr %3862, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_move(ptr noundef %3856, i32 noundef %3859, i32 noundef 537138704, i32 noundef %3860, i32 noundef 127, i32 noundef 0, i32 noundef 64, i8 noundef signext %3863, i32 noundef 25, i32 noundef 0, i32 noundef 1, i32 noundef 0)
  br label %3874

3864:                                             ; preds = %3851
  %3865 = load ptr, ptr %6, align 8, !tbaa !5
  %3866 = load ptr, ptr %9, align 8, !tbaa !5
  %3867 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %3866, i32 0, i32 0
  %3868 = load i32, ptr %3867, align 4, !tbaa !40
  %3869 = load i32, ptr %46, align 4, !tbaa !9
  %3870 = load ptr, ptr %8, align 8, !tbaa !5
  %3871 = getelementptr inbounds %struct.libxsmm_mateltwise_gp_reg_mapping_struct, ptr %3870, i32 0, i32 17
  %3872 = load i32, ptr %3871, align 4, !tbaa !27
  %3873 = load i8, ptr %43, align 1, !tbaa !13
  call void @libxsmm_x86_instruction_vec_move(ptr noundef %3865, i32 noundef %3868, i32 noundef %3869, i32 noundef %3872, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %3873, i32 noundef 25, i32 noundef 0, i32 noundef 1, i32 noundef 0)
  br label %3874

3874:                                             ; preds = %3864, %3855
  %3875 = load ptr, ptr %6, align 8, !tbaa !5
  %3876 = load i32, ptr %25, align 4, !tbaa !9
  %3877 = load ptr, ptr %9, align 8, !tbaa !5
  %3878 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %3877, i32 0, i32 128
  %3879 = load i8, ptr %3878, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %3875, i32 noundef %3876, i8 noundef signext %3879, i32 noundef 25, i32 noundef 24, i32 noundef 24)
  %3880 = load ptr, ptr %10, align 8, !tbaa !5
  %3881 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %3880, i32 noundef 3)
  %3882 = icmp eq i32 4, %3881
  br i1 %3882, label %3883, label %3888

3883:                                             ; preds = %3874
  %3884 = load ptr, ptr %6, align 8, !tbaa !5
  %3885 = load ptr, ptr %9, align 8, !tbaa !5
  %3886 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %3885, i32 0, i32 128
  %3887 = load i8, ptr %3886, align 4, !tbaa !11
  call void @libxsmm_generator_vcvtneps2bf8_avx512_preppedstack(ptr noundef %3884, i8 noundef signext %3887, i32 noundef 24, i32 noundef 24, i32 noundef 25, i32 noundef 26, i32 noundef 3, i32 noundef 4, i32 noundef 0, i32 noundef 0)
  br label %3959

3888:                                             ; preds = %3874
  %3889 = load ptr, ptr %10, align 8, !tbaa !5
  %3890 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %3889, i32 noundef 3)
  %3891 = icmp eq i32 5, %3890
  br i1 %3891, label %3892, label %3904

3892:                                             ; preds = %3888
  %3893 = load ptr, ptr %6, align 8, !tbaa !5
  %3894 = load ptr, ptr %9, align 8, !tbaa !5
  %3895 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %3894, i32 0, i32 128
  %3896 = load i8, ptr %3895, align 4, !tbaa !11
  %3897 = load i32, ptr %35, align 4, !tbaa !9
  %3898 = load i32, ptr %36, align 4, !tbaa !9
  %3899 = load i32, ptr %37, align 4, !tbaa !9
  %3900 = load i32, ptr %38, align 4, !tbaa !9
  %3901 = load i32, ptr %39, align 4, !tbaa !9
  %3902 = load i32, ptr %40, align 4, !tbaa !9
  %3903 = load i32, ptr %41, align 4, !tbaa !9
  call void @libxsmm_generator_vcvtf32_to_hf8_avx512_preppedstack(ptr noundef %3893, i8 noundef signext %3896, i32 noundef 24, i32 noundef 24, i32 noundef %3897, i32 noundef %3898, i32 noundef %3899, i32 noundef %3900, i32 noundef %3901, i32 noundef %3902, i32 noundef %3903)
  br label %3958

3904:                                             ; preds = %3888
  %3905 = load ptr, ptr %10, align 8, !tbaa !5
  %3906 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %3905, i32 noundef 3)
  %3907 = icmp eq i32 3, %3906
  br i1 %3907, label %3908, label %3926

3908:                                             ; preds = %3904
  %3909 = load ptr, ptr %6, align 8, !tbaa !5
  %3910 = load ptr, ptr %9, align 8, !tbaa !5
  %3911 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %3910, i32 0, i32 128
  %3912 = load i8, ptr %3911, align 4, !tbaa !11
  %3913 = load ptr, ptr %6, align 8, !tbaa !5
  %3914 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %3913, i32 0, i32 6
  %3915 = load i32, ptr %3914, align 4, !tbaa !20
  %3916 = icmp ult i32 %3915, 1101
  %3917 = zext i1 %3916 to i64
  %3918 = select i1 %3916, i32 0, i32 1
  %3919 = load ptr, ptr %6, align 8, !tbaa !5
  %3920 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %3919, i32 0, i32 6
  %3921 = load i32, ptr %3920, align 4, !tbaa !20
  %3922 = icmp ult i32 %3921, 1101
  %3923 = zext i1 %3922 to i64
  %3924 = select i1 %3922, i32 0, i32 1
  %3925 = trunc i32 %3924 to i8
  call void @libxsmm_x86_instruction_vec_compute_2reg_mask_sae_imm8(ptr noundef %3909, i32 noundef 671954205, i8 noundef signext %3912, i32 noundef 24, i32 noundef 24, i32 noundef 0, i32 noundef %3918, i8 noundef zeroext %3925, i32 noundef 0)
  br label %3957

3926:                                             ; preds = %3904
  %3927 = load ptr, ptr %10, align 8, !tbaa !5
  %3928 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %3927, i32 noundef 3)
  %3929 = icmp eq i32 2, %3928
  br i1 %3929, label %3930, label %3956

3930:                                             ; preds = %3926
  %3931 = load ptr, ptr %6, align 8, !tbaa !5
  %3932 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %3931, i32 0, i32 6
  %3933 = load i32, ptr %3932, align 4, !tbaa !20
  %3934 = icmp ult i32 %3933, 1103
  br i1 %3934, label %3935, label %3950

3935:                                             ; preds = %3930
  %3936 = load ptr, ptr %6, align 8, !tbaa !5
  %3937 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %3936, i32 0, i32 6
  %3938 = load i32, ptr %3937, align 4, !tbaa !20
  %3939 = icmp ne i32 %3938, 1053
  br i1 %3939, label %3940, label %3950

3940:                                             ; preds = %3935
  %3941 = load ptr, ptr %6, align 8, !tbaa !5
  %3942 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %3941, i32 0, i32 6
  %3943 = load i32, ptr %3942, align 4, !tbaa !20
  %3944 = icmp ne i32 %3943, 1008
  br i1 %3944, label %3945, label %3950

3945:                                             ; preds = %3940
  %3946 = load ptr, ptr %6, align 8, !tbaa !5
  %3947 = load ptr, ptr %9, align 8, !tbaa !5
  %3948 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %3947, i32 0, i32 128
  %3949 = load i8, ptr %3948, align 4, !tbaa !11
  call void @libxsmm_generator_vcvtneps2bf16_avx512_preppedstack(ptr noundef %3946, i8 noundef signext %3949, i32 noundef 24, i32 noundef 24, i32 noundef 25, i32 noundef 26, i32 noundef 3, i32 noundef 4, i32 noundef 0)
  br label %3955

3950:                                             ; preds = %3940, %3935, %3930
  %3951 = load ptr, ptr %6, align 8, !tbaa !5
  %3952 = load ptr, ptr %9, align 8, !tbaa !5
  %3953 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %3952, i32 0, i32 128
  %3954 = load i8, ptr %3953, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_2reg(ptr noundef %3951, i32 noundef 537273970, i8 noundef signext %3954, i32 noundef 24, i32 noundef 24)
  br label %3955

3955:                                             ; preds = %3950, %3945
  br label %3956

3956:                                             ; preds = %3955, %3926
  br label %3957

3957:                                             ; preds = %3956, %3908
  br label %3958

3958:                                             ; preds = %3957, %3892
  br label %3959

3959:                                             ; preds = %3958, %3883
  %3960 = load ptr, ptr %6, align 8, !tbaa !5
  %3961 = load ptr, ptr %9, align 8, !tbaa !5
  %3962 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %3961, i32 0, i32 0
  %3963 = load i32, ptr %3962, align 4, !tbaa !40
  %3964 = load ptr, ptr %10, align 8, !tbaa !5
  %3965 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %3964, i32 noundef 3)
  %3966 = icmp eq i32 4, %3965
  br i1 %3966, label %3971, label %3967

3967:                                             ; preds = %3959
  %3968 = load ptr, ptr %10, align 8, !tbaa !5
  %3969 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %3968, i32 noundef 3)
  %3970 = icmp eq i32 5, %3969
  br i1 %3970, label %3971, label %3977

3971:                                             ; preds = %3967, %3959
  %3972 = load ptr, ptr %6, align 8, !tbaa !5
  %3973 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %3972, i32 0, i32 6
  %3974 = load i32, ptr %3973, align 4, !tbaa !20
  %3975 = icmp ult i32 %3974, 1101
  br i1 %3975, label %3976, label %3977

3976:                                             ; preds = %3971
  br label %3979

3977:                                             ; preds = %3971, %3967
  %3978 = load i32, ptr %46, align 4, !tbaa !9
  br label %3979

3979:                                             ; preds = %3977, %3976
  %3980 = phi i32 [ 545725200, %3976 ], [ %3978, %3977 ]
  %3981 = load ptr, ptr %8, align 8, !tbaa !5
  %3982 = getelementptr inbounds %struct.libxsmm_mateltwise_gp_reg_mapping_struct, ptr %3981, i32 0, i32 17
  %3983 = load i32, ptr %3982, align 4, !tbaa !27
  %3984 = load i8, ptr %43, align 1, !tbaa !13
  call void @libxsmm_x86_instruction_vec_move(ptr noundef %3960, i32 noundef %3963, i32 noundef %3980, i32 noundef %3983, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %3984, i32 noundef 24, i32 noundef 0, i32 noundef 0, i32 noundef 1)
  br label %4061

3985:                                             ; preds = %3834
  %3986 = load ptr, ptr %10, align 8, !tbaa !5
  %3987 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %3986, i32 noundef 3)
  %3988 = icmp eq i32 3, %3987
  br i1 %3988, label %4001, label %3989

3989:                                             ; preds = %3985
  %3990 = load ptr, ptr %10, align 8, !tbaa !5
  %3991 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %3990, i32 noundef 3)
  %3992 = icmp eq i32 2, %3991
  br i1 %3992, label %4001, label %3993

3993:                                             ; preds = %3989
  %3994 = load ptr, ptr %10, align 8, !tbaa !5
  %3995 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %3994, i32 noundef 3)
  %3996 = icmp eq i32 5, %3995
  br i1 %3996, label %4001, label %3997

3997:                                             ; preds = %3993
  %3998 = load ptr, ptr %10, align 8, !tbaa !5
  %3999 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %3998, i32 noundef 3)
  %4000 = icmp eq i32 4, %3999
  br i1 %4000, label %4001, label %4010

4001:                                             ; preds = %3997, %3993, %3989, %3985
  %4002 = load ptr, ptr %6, align 8, !tbaa !5
  %4003 = load ptr, ptr %9, align 8, !tbaa !5
  %4004 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %4003, i32 0, i32 0
  %4005 = load i32, ptr %4004, align 4, !tbaa !40
  %4006 = load i32, ptr %56, align 4, !tbaa !9
  %4007 = load ptr, ptr %9, align 8, !tbaa !5
  %4008 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %4007, i32 0, i32 128
  %4009 = load i8, ptr %4008, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_move(ptr noundef %4002, i32 noundef %4005, i32 noundef 537138704, i32 noundef %4006, i32 noundef 127, i32 noundef 0, i32 noundef 64, i8 noundef signext %4009, i32 noundef 25, i32 noundef 0, i32 noundef 1, i32 noundef 0)
  br label %4020

4010:                                             ; preds = %3997
  %4011 = load ptr, ptr %6, align 8, !tbaa !5
  %4012 = load ptr, ptr %9, align 8, !tbaa !5
  %4013 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %4012, i32 0, i32 0
  %4014 = load i32, ptr %4013, align 4, !tbaa !40
  %4015 = load i32, ptr %46, align 4, !tbaa !9
  %4016 = load ptr, ptr %8, align 8, !tbaa !5
  %4017 = getelementptr inbounds %struct.libxsmm_mateltwise_gp_reg_mapping_struct, ptr %4016, i32 0, i32 17
  %4018 = load i32, ptr %4017, align 4, !tbaa !27
  %4019 = load i8, ptr %43, align 1, !tbaa !13
  call void @libxsmm_x86_instruction_vec_move(ptr noundef %4011, i32 noundef %4014, i32 noundef %4015, i32 noundef %4018, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %4019, i32 noundef 25, i32 noundef 0, i32 noundef 1, i32 noundef 0)
  br label %4020

4020:                                             ; preds = %4010, %4001
  %4021 = load ptr, ptr %6, align 8, !tbaa !5
  %4022 = load i32, ptr %25, align 4, !tbaa !9
  %4023 = load ptr, ptr %9, align 8, !tbaa !5
  %4024 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %4023, i32 0, i32 128
  %4025 = load i8, ptr %4024, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %4021, i32 noundef %4022, i8 noundef signext %4025, i32 noundef 25, i32 noundef 24, i32 noundef 24)
  %4026 = load ptr, ptr %10, align 8, !tbaa !5
  %4027 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %4026, i32 noundef 3)
  %4028 = icmp eq i32 3, %4027
  br i1 %4028, label %4041, label %4029

4029:                                             ; preds = %4020
  %4030 = load ptr, ptr %10, align 8, !tbaa !5
  %4031 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %4030, i32 noundef 3)
  %4032 = icmp eq i32 2, %4031
  br i1 %4032, label %4041, label %4033

4033:                                             ; preds = %4029
  %4034 = load ptr, ptr %10, align 8, !tbaa !5
  %4035 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %4034, i32 noundef 3)
  %4036 = icmp eq i32 5, %4035
  br i1 %4036, label %4041, label %4037

4037:                                             ; preds = %4033
  %4038 = load ptr, ptr %10, align 8, !tbaa !5
  %4039 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %4038, i32 noundef 3)
  %4040 = icmp eq i32 4, %4039
  br i1 %4040, label %4041, label %4050

4041:                                             ; preds = %4037, %4033, %4029, %4020
  %4042 = load ptr, ptr %6, align 8, !tbaa !5
  %4043 = load ptr, ptr %9, align 8, !tbaa !5
  %4044 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %4043, i32 0, i32 0
  %4045 = load i32, ptr %4044, align 4, !tbaa !40
  %4046 = load i32, ptr %56, align 4, !tbaa !9
  %4047 = load ptr, ptr %9, align 8, !tbaa !5
  %4048 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %4047, i32 0, i32 128
  %4049 = load i8, ptr %4048, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_move(ptr noundef %4042, i32 noundef %4045, i32 noundef 537138704, i32 noundef %4046, i32 noundef 127, i32 noundef 0, i32 noundef 64, i8 noundef signext %4049, i32 noundef 24, i32 noundef 0, i32 noundef 0, i32 noundef 1)
  br label %4060

4050:                                             ; preds = %4037
  %4051 = load ptr, ptr %6, align 8, !tbaa !5
  %4052 = load ptr, ptr %9, align 8, !tbaa !5
  %4053 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %4052, i32 0, i32 0
  %4054 = load i32, ptr %4053, align 4, !tbaa !40
  %4055 = load i32, ptr %46, align 4, !tbaa !9
  %4056 = load ptr, ptr %8, align 8, !tbaa !5
  %4057 = getelementptr inbounds %struct.libxsmm_mateltwise_gp_reg_mapping_struct, ptr %4056, i32 0, i32 17
  %4058 = load i32, ptr %4057, align 4, !tbaa !27
  %4059 = load i8, ptr %43, align 1, !tbaa !13
  call void @libxsmm_x86_instruction_vec_move(ptr noundef %4051, i32 noundef %4054, i32 noundef %4055, i32 noundef %4058, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %4059, i32 noundef 24, i32 noundef 0, i32 noundef 0, i32 noundef 1)
  br label %4060

4060:                                             ; preds = %4050, %4041
  br label %4061

4061:                                             ; preds = %4060, %3979
  br label %4062

4062:                                             ; preds = %4061, %3828
  br label %4063

4063:                                             ; preds = %4062, %3611
  br label %4064

4064:                                             ; preds = %4063, %3457
  br label %4065

4065:                                             ; preds = %4064
  %4066 = load i32, ptr %12, align 4, !tbaa !9
  %4067 = add i32 %4066, 1
  store i32 %4067, ptr %12, align 4, !tbaa !9
  br label %2065, !llvm.loop !43

4068:                                             ; preds = %2065
  %4069 = load i32, ptr %17, align 4, !tbaa !9
  %4070 = icmp ugt i32 %4069, 1
  br i1 %4070, label %4076, label %4071

4071:                                             ; preds = %4068
  %4072 = load i32, ptr %14, align 4, !tbaa !9
  %4073 = load i32, ptr %29, align 4, !tbaa !9
  %4074 = urem i32 %4072, %4073
  %4075 = icmp ne i32 %4074, 0
  br i1 %4075, label %4076, label %4132

4076:                                             ; preds = %4071, %4068
  %4077 = load ptr, ptr %6, align 8, !tbaa !5
  %4078 = load ptr, ptr %9, align 8, !tbaa !5
  %4079 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %4078, i32 0, i32 10
  %4080 = load i32, ptr %4079, align 4, !tbaa !37
  %4081 = load ptr, ptr %8, align 8, !tbaa !5
  %4082 = getelementptr inbounds %struct.libxsmm_mateltwise_gp_reg_mapping_struct, ptr %4081, i32 0, i32 1
  %4083 = load i32, ptr %4082, align 4, !tbaa !24
  %4084 = load i32, ptr %29, align 4, !tbaa !9
  %4085 = zext i32 %4084 to i64
  %4086 = load ptr, ptr %10, align 8, !tbaa !5
  %4087 = getelementptr inbounds %struct.libxsmm_meltw_descriptor, ptr %4086, i32 0, i32 2
  %4088 = load i32, ptr %4087, align 1, !tbaa !23
  %4089 = zext i32 %4088 to i64
  %4090 = mul nsw i64 %4085, %4089
  %4091 = load ptr, ptr %9, align 8, !tbaa !5
  %4092 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %4091, i32 0, i32 2
  %4093 = load i32, ptr %4092, align 4, !tbaa !34
  %4094 = zext i32 %4093 to i64
  %4095 = mul nsw i64 %4090, %4094
  call void @libxsmm_x86_instruction_alu_imm(ptr noundef %4077, i32 noundef %4080, i32 noundef %4083, i64 noundef %4095)
  %4096 = load i32, ptr %24, align 4, !tbaa !9
  %4097 = icmp ugt i32 %4096, 0
  br i1 %4097, label %4098, label %4113

4098:                                             ; preds = %4076
  %4099 = load ptr, ptr %6, align 8, !tbaa !5
  %4100 = load ptr, ptr %9, align 8, !tbaa !5
  %4101 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %4100, i32 0, i32 10
  %4102 = load i32, ptr %4101, align 4, !tbaa !37
  %4103 = load ptr, ptr %8, align 8, !tbaa !5
  %4104 = getelementptr inbounds %struct.libxsmm_mateltwise_gp_reg_mapping_struct, ptr %4103, i32 0, i32 16
  %4105 = load i32, ptr %4104, align 4, !tbaa !26
  %4106 = load i32, ptr %29, align 4, !tbaa !9
  %4107 = zext i32 %4106 to i64
  %4108 = load ptr, ptr %9, align 8, !tbaa !5
  %4109 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %4108, i32 0, i32 5
  %4110 = load i32, ptr %4109, align 4, !tbaa !33
  %4111 = zext i32 %4110 to i64
  %4112 = mul nsw i64 %4107, %4111
  call void @libxsmm_x86_instruction_alu_imm(ptr noundef %4099, i32 noundef %4102, i32 noundef %4105, i64 noundef %4112)
  br label %4113

4113:                                             ; preds = %4098, %4076
  %4114 = load i32, ptr %23, align 4, !tbaa !9
  %4115 = icmp ugt i32 %4114, 0
  br i1 %4115, label %4116, label %4131

4116:                                             ; preds = %4113
  %4117 = load ptr, ptr %6, align 8, !tbaa !5
  %4118 = load ptr, ptr %9, align 8, !tbaa !5
  %4119 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %4118, i32 0, i32 10
  %4120 = load i32, ptr %4119, align 4, !tbaa !37
  %4121 = load ptr, ptr %8, align 8, !tbaa !5
  %4122 = getelementptr inbounds %struct.libxsmm_mateltwise_gp_reg_mapping_struct, ptr %4121, i32 0, i32 17
  %4123 = load i32, ptr %4122, align 4, !tbaa !27
  %4124 = load i32, ptr %29, align 4, !tbaa !9
  %4125 = zext i32 %4124 to i64
  %4126 = load ptr, ptr %9, align 8, !tbaa !5
  %4127 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %4126, i32 0, i32 5
  %4128 = load i32, ptr %4127, align 4, !tbaa !33
  %4129 = zext i32 %4128 to i64
  %4130 = mul nsw i64 %4125, %4129
  call void @libxsmm_x86_instruction_alu_imm(ptr noundef %4117, i32 noundef %4120, i32 noundef %4123, i64 noundef %4130)
  br label %4131

4131:                                             ; preds = %4116, %4113
  br label %4132

4132:                                             ; preds = %4131, %4071
  %4133 = load i32, ptr %17, align 4, !tbaa !9
  %4134 = icmp ugt i32 %4133, 1
  br i1 %4134, label %4135, label %4143

4135:                                             ; preds = %4132
  %4136 = load ptr, ptr %6, align 8, !tbaa !5
  %4137 = load ptr, ptr %7, align 8, !tbaa !5
  %4138 = load ptr, ptr %9, align 8, !tbaa !5
  %4139 = load ptr, ptr %8, align 8, !tbaa !5
  %4140 = getelementptr inbounds %struct.libxsmm_mateltwise_gp_reg_mapping_struct, ptr %4139, i32 0, i32 25
  %4141 = load i32, ptr %4140, align 4, !tbaa !29
  %4142 = load i32, ptr %17, align 4, !tbaa !9
  call void @libxsmm_generator_mateltwise_footer_n_loop(ptr noundef %4136, ptr noundef %4137, ptr noundef %4138, i32 noundef %4141, i32 noundef %4142)
  br label %4143

4143:                                             ; preds = %4135, %4132
  br label %4144

4144:                                             ; preds = %4143, %2051
  %4145 = load i32, ptr %14, align 4, !tbaa !9
  %4146 = load i32, ptr %29, align 4, !tbaa !9
  %4147 = urem i32 %4145, %4146
  store i32 %4147, ptr %22, align 4, !tbaa !9
  store i32 0, ptr %12, align 4, !tbaa !9
  %4148 = load i32, ptr %14, align 4, !tbaa !9
  %4149 = icmp eq i32 %4148, 1
  br i1 %4149, label %4150, label %4781

4150:                                             ; preds = %4144
  call void @llvm.lifetime.start.p0(i64 4, ptr %75) #3
  store i32 2, ptr %75, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %76) #3
  store i32 3, ptr %76, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %77) #3
  store i32 3, ptr %27, align 4, !tbaa !9
  %4151 = load i32, ptr %24, align 4, !tbaa !9
  %4152 = icmp ugt i32 %4151, 0
  br i1 %4152, label %4153, label %4285

4153:                                             ; preds = %4150
  %4154 = load i32, ptr %49, align 4, !tbaa !9
  %4155 = icmp ugt i32 %4154, 0
  br i1 %4155, label %4156, label %4164

4156:                                             ; preds = %4153
  %4157 = load ptr, ptr %6, align 8, !tbaa !5
  %4158 = load ptr, ptr %9, align 8, !tbaa !5
  %4159 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %4158, i32 0, i32 128
  %4160 = load i8, ptr %4159, align 4, !tbaa !11
  %4161 = load i32, ptr %75, align 4, !tbaa !9
  %4162 = load i32, ptr %75, align 4, !tbaa !9
  %4163 = load i32, ptr %75, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %4157, i32 noundef 805574231, i8 noundef signext %4160, i32 noundef %4161, i32 noundef %4162, i32 noundef %4163)
  br label %4284

4164:                                             ; preds = %4153
  %4165 = load i32, ptr %50, align 4, !tbaa !9
  %4166 = icmp ugt i32 %4165, 0
  br i1 %4166, label %4170, label %4167

4167:                                             ; preds = %4164
  %4168 = load i32, ptr %52, align 4, !tbaa !9
  %4169 = icmp ugt i32 %4168, 0
  br i1 %4169, label %4170, label %4283

4170:                                             ; preds = %4167, %4164
  %4171 = load i32, ptr %18, align 4, !tbaa !9
  %4172 = icmp ugt i32 %4171, 0
  br i1 %4172, label %4173, label %4189

4173:                                             ; preds = %4170
  %4174 = load i32, ptr %50, align 4, !tbaa !9
  %4175 = icmp ugt i32 %4174, 0
  br i1 %4175, label %4179, label %4176

4176:                                             ; preds = %4173
  %4177 = load i32, ptr %52, align 4, !tbaa !9
  %4178 = icmp ugt i32 %4177, 0
  br i1 %4178, label %4179, label %4189

4179:                                             ; preds = %4176, %4173
  %4180 = load ptr, ptr %6, align 8, !tbaa !5
  %4181 = load ptr, ptr %9, align 8, !tbaa !5
  %4182 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %4181, i32 0, i32 128
  %4183 = load i8, ptr %4182, align 4, !tbaa !11
  %4184 = load i32, ptr %27, align 4, !tbaa !9
  %4185 = load i32, ptr %52, align 4, !tbaa !9
  %4186 = icmp ugt i32 %4185, 0
  %4187 = zext i1 %4186 to i64
  %4188 = select i1 %4186, i32 1, i32 0
  call void @libxsmm_generator_load_vreg_infinity(ptr noundef %4180, i8 noundef zeroext %4183, i32 noundef 0, i32 noundef %4184, i32 noundef %4188)
  br label %4189

4189:                                             ; preds = %4179, %4176, %4170
  %4190 = load ptr, ptr %6, align 8, !tbaa !5
  %4191 = load ptr, ptr %9, align 8, !tbaa !5
  %4192 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %4191, i32 0, i32 0
  %4193 = load i32, ptr %4192, align 4, !tbaa !40
  %4194 = load i32, ptr %45, align 4, !tbaa !9
  %4195 = load ptr, ptr %8, align 8, !tbaa !5
  %4196 = getelementptr inbounds %struct.libxsmm_mateltwise_gp_reg_mapping_struct, ptr %4195, i32 0, i32 1
  %4197 = load i32, ptr %4196, align 4, !tbaa !24
  %4198 = load i8, ptr %42, align 1, !tbaa !13
  %4199 = load i32, ptr %75, align 4, !tbaa !9
  %4200 = load i32, ptr %12, align 4, !tbaa !9
  %4201 = load i32, ptr %15, align 4, !tbaa !9
  %4202 = sub i32 %4201, 1
  %4203 = icmp eq i32 %4200, %4202
  br i1 %4203, label %4204, label %4206

4204:                                             ; preds = %4189
  %4205 = load i32, ptr %18, align 4, !tbaa !9
  br label %4207

4206:                                             ; preds = %4189
  br label %4207

4207:                                             ; preds = %4206, %4204
  %4208 = phi i32 [ %4205, %4204 ], [ 0, %4206 ]
  call void @libxsmm_x86_instruction_vec_move(ptr noundef %4190, i32 noundef %4193, i32 noundef %4194, i32 noundef %4197, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %4198, i32 noundef %4199, i32 noundef %4208, i32 noundef 1, i32 noundef 0)
  %4209 = load ptr, ptr %10, align 8, !tbaa !5
  %4210 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %4209, i32 noundef 0)
  %4211 = icmp eq i32 4, %4210
  br i1 %4211, label %4212, label %4219

4212:                                             ; preds = %4207
  %4213 = load ptr, ptr %6, align 8, !tbaa !5
  %4214 = load ptr, ptr %9, align 8, !tbaa !5
  %4215 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %4214, i32 0, i32 128
  %4216 = load i8, ptr %4215, align 4, !tbaa !11
  %4217 = load i32, ptr %75, align 4, !tbaa !9
  %4218 = load i32, ptr %75, align 4, !tbaa !9
  call void @libxsmm_generator_cvtbf8ps_avx512(ptr noundef %4213, i8 noundef signext %4216, i32 noundef %4217, i32 noundef %4218)
  br label %4259

4219:                                             ; preds = %4207
  %4220 = load ptr, ptr %10, align 8, !tbaa !5
  %4221 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %4220, i32 noundef 0)
  %4222 = icmp eq i32 5, %4221
  br i1 %4222, label %4223, label %4234

4223:                                             ; preds = %4219
  %4224 = load ptr, ptr %6, align 8, !tbaa !5
  %4225 = load ptr, ptr %9, align 8, !tbaa !5
  %4226 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %4225, i32 0, i32 128
  %4227 = load i8, ptr %4226, align 4, !tbaa !11
  %4228 = load i32, ptr %75, align 4, !tbaa !9
  %4229 = load i32, ptr %75, align 4, !tbaa !9
  %4230 = load i32, ptr %35, align 4, !tbaa !9
  %4231 = load i32, ptr %36, align 4, !tbaa !9
  %4232 = load i32, ptr %39, align 4, !tbaa !9
  %4233 = load i32, ptr %40, align 4, !tbaa !9
  call void @libxsmm_generator_vcvthf8_to_f32_avx512_preppedstack(ptr noundef %4224, i8 noundef signext %4227, i32 noundef %4228, i32 noundef %4229, i32 noundef %4230, i32 noundef %4231, i32 noundef %4232, i32 noundef %4233)
  br label %4258

4234:                                             ; preds = %4219
  %4235 = load ptr, ptr %10, align 8, !tbaa !5
  %4236 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %4235, i32 noundef 0)
  %4237 = icmp eq i32 3, %4236
  br i1 %4237, label %4238, label %4245

4238:                                             ; preds = %4234
  %4239 = load ptr, ptr %6, align 8, !tbaa !5
  %4240 = load ptr, ptr %9, align 8, !tbaa !5
  %4241 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %4240, i32 0, i32 128
  %4242 = load i8, ptr %4241, align 4, !tbaa !11
  %4243 = load i32, ptr %75, align 4, !tbaa !9
  %4244 = load i32, ptr %75, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_2reg(ptr noundef %4239, i32 noundef 537208083, i8 noundef signext %4242, i32 noundef %4243, i32 noundef %4244)
  br label %4257

4245:                                             ; preds = %4234
  %4246 = load ptr, ptr %10, align 8, !tbaa !5
  %4247 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %4246, i32 noundef 0)
  %4248 = icmp eq i32 2, %4247
  br i1 %4248, label %4249, label %4256

4249:                                             ; preds = %4245
  %4250 = load ptr, ptr %6, align 8, !tbaa !5
  %4251 = load ptr, ptr %9, align 8, !tbaa !5
  %4252 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %4251, i32 0, i32 128
  %4253 = load i8, ptr %4252, align 4, !tbaa !11
  %4254 = load i32, ptr %75, align 4, !tbaa !9
  %4255 = load i32, ptr %75, align 4, !tbaa !9
  call void @libxsmm_generator_cvtbf16ps_sse_avx2_avx512(ptr noundef %4250, i8 noundef signext %4253, i32 noundef %4254, i32 noundef %4255)
  br label %4256

4256:                                             ; preds = %4249, %4245
  br label %4257

4257:                                             ; preds = %4256, %4238
  br label %4258

4258:                                             ; preds = %4257, %4223
  br label %4259

4259:                                             ; preds = %4258, %4212
  %4260 = load i32, ptr %50, align 4, !tbaa !9
  %4261 = icmp ugt i32 %4260, 0
  br i1 %4261, label %4265, label %4262

4262:                                             ; preds = %4259
  %4263 = load i32, ptr %52, align 4, !tbaa !9
  %4264 = icmp ugt i32 %4263, 0
  br i1 %4264, label %4265, label %4282

4265:                                             ; preds = %4262, %4259
  %4266 = load i32, ptr %18, align 4, !tbaa !9
  %4267 = icmp ugt i32 %4266, 0
  br i1 %4267, label %4268, label %4282

4268:                                             ; preds = %4265
  %4269 = load i32, ptr %12, align 4, !tbaa !9
  %4270 = load i32, ptr %15, align 4, !tbaa !9
  %4271 = sub i32 %4270, 1
  %4272 = icmp eq i32 %4269, %4271
  br i1 %4272, label %4273, label %4282

4273:                                             ; preds = %4268
  %4274 = load ptr, ptr %6, align 8, !tbaa !5
  %4275 = load ptr, ptr %9, align 8, !tbaa !5
  %4276 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %4275, i32 0, i32 128
  %4277 = load i8, ptr %4276, align 4, !tbaa !11
  %4278 = load i32, ptr %75, align 4, !tbaa !9
  %4279 = load i32, ptr %27, align 4, !tbaa !9
  %4280 = load i32, ptr %75, align 4, !tbaa !9
  %4281 = load i32, ptr %18, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_mask(ptr noundef %4274, i32 noundef -268097947, i8 noundef signext %4277, i32 noundef %4278, i32 noundef %4279, i32 noundef %4280, i32 noundef %4281, i32 noundef 0)
  br label %4282

4282:                                             ; preds = %4273, %4268, %4265, %4262
  br label %4283

4283:                                             ; preds = %4282, %4167
  br label %4284

4284:                                             ; preds = %4283, %4156
  br label %4285

4285:                                             ; preds = %4284, %4150
  %4286 = load i32, ptr %23, align 4, !tbaa !9
  %4287 = icmp ugt i32 %4286, 0
  br i1 %4287, label %4288, label %4296

4288:                                             ; preds = %4285
  %4289 = load ptr, ptr %6, align 8, !tbaa !5
  %4290 = load ptr, ptr %9, align 8, !tbaa !5
  %4291 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %4290, i32 0, i32 128
  %4292 = load i8, ptr %4291, align 4, !tbaa !11
  %4293 = load i32, ptr %76, align 4, !tbaa !9
  %4294 = load i32, ptr %76, align 4, !tbaa !9
  %4295 = load i32, ptr %76, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %4289, i32 noundef 805574231, i8 noundef signext %4292, i32 noundef %4293, i32 noundef %4294, i32 noundef %4295)
  br label %4296

4296:                                             ; preds = %4288, %4285
  store i32 0, ptr %12, align 4, !tbaa !9
  br label %4297

4297:                                             ; preds = %4428, %4296
  %4298 = load i32, ptr %12, align 4, !tbaa !9
  %4299 = load i32, ptr %15, align 4, !tbaa !9
  %4300 = icmp ult i32 %4298, %4299
  br i1 %4300, label %4301, label %4431

4301:                                             ; preds = %4297
  %4302 = load i32, ptr %12, align 4, !tbaa !9
  %4303 = urem i32 %4302, 28
  %4304 = add i32 %4303, 4
  store i32 %4304, ptr %77, align 4, !tbaa !9
  %4305 = load ptr, ptr %6, align 8, !tbaa !5
  %4306 = load ptr, ptr %9, align 8, !tbaa !5
  %4307 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %4306, i32 0, i32 0
  %4308 = load i32, ptr %4307, align 4, !tbaa !40
  %4309 = load i32, ptr %45, align 4, !tbaa !9
  %4310 = load ptr, ptr %8, align 8, !tbaa !5
  %4311 = getelementptr inbounds %struct.libxsmm_mateltwise_gp_reg_mapping_struct, ptr %4310, i32 0, i32 1
  %4312 = load i32, ptr %4311, align 4, !tbaa !24
  %4313 = load i32, ptr %12, align 4, !tbaa !9
  %4314 = load i32, ptr %29, align 4, !tbaa !9
  %4315 = mul i32 %4313, %4314
  %4316 = load ptr, ptr %9, align 8, !tbaa !5
  %4317 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %4316, i32 0, i32 2
  %4318 = load i32, ptr %4317, align 4, !tbaa !34
  %4319 = mul i32 %4315, %4318
  %4320 = load i8, ptr %42, align 1, !tbaa !13
  %4321 = load i32, ptr %77, align 4, !tbaa !9
  %4322 = load i32, ptr %12, align 4, !tbaa !9
  %4323 = load i32, ptr %15, align 4, !tbaa !9
  %4324 = sub i32 %4323, 1
  %4325 = icmp eq i32 %4322, %4324
  br i1 %4325, label %4326, label %4328

4326:                                             ; preds = %4301
  %4327 = load i32, ptr %18, align 4, !tbaa !9
  br label %4329

4328:                                             ; preds = %4301
  br label %4329

4329:                                             ; preds = %4328, %4326
  %4330 = phi i32 [ %4327, %4326 ], [ 0, %4328 ]
  call void @libxsmm_x86_instruction_vec_move(ptr noundef %4305, i32 noundef %4308, i32 noundef %4309, i32 noundef %4312, i32 noundef 127, i32 noundef 0, i32 noundef %4319, i8 noundef signext %4320, i32 noundef %4321, i32 noundef %4330, i32 noundef 1, i32 noundef 0)
  %4331 = load ptr, ptr %10, align 8, !tbaa !5
  %4332 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %4331, i32 noundef 0)
  %4333 = icmp eq i32 4, %4332
  br i1 %4333, label %4334, label %4341

4334:                                             ; preds = %4329
  %4335 = load ptr, ptr %6, align 8, !tbaa !5
  %4336 = load ptr, ptr %9, align 8, !tbaa !5
  %4337 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %4336, i32 0, i32 128
  %4338 = load i8, ptr %4337, align 4, !tbaa !11
  %4339 = load i32, ptr %77, align 4, !tbaa !9
  %4340 = load i32, ptr %77, align 4, !tbaa !9
  call void @libxsmm_generator_cvtbf8ps_avx512(ptr noundef %4335, i8 noundef signext %4338, i32 noundef %4339, i32 noundef %4340)
  br label %4381

4341:                                             ; preds = %4329
  %4342 = load ptr, ptr %10, align 8, !tbaa !5
  %4343 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %4342, i32 noundef 0)
  %4344 = icmp eq i32 5, %4343
  br i1 %4344, label %4345, label %4356

4345:                                             ; preds = %4341
  %4346 = load ptr, ptr %6, align 8, !tbaa !5
  %4347 = load ptr, ptr %9, align 8, !tbaa !5
  %4348 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %4347, i32 0, i32 128
  %4349 = load i8, ptr %4348, align 4, !tbaa !11
  %4350 = load i32, ptr %77, align 4, !tbaa !9
  %4351 = load i32, ptr %77, align 4, !tbaa !9
  %4352 = load i32, ptr %35, align 4, !tbaa !9
  %4353 = load i32, ptr %36, align 4, !tbaa !9
  %4354 = load i32, ptr %39, align 4, !tbaa !9
  %4355 = load i32, ptr %40, align 4, !tbaa !9
  call void @libxsmm_generator_vcvthf8_to_f32_avx512_preppedstack(ptr noundef %4346, i8 noundef signext %4349, i32 noundef %4350, i32 noundef %4351, i32 noundef %4352, i32 noundef %4353, i32 noundef %4354, i32 noundef %4355)
  br label %4380

4356:                                             ; preds = %4341
  %4357 = load ptr, ptr %10, align 8, !tbaa !5
  %4358 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %4357, i32 noundef 0)
  %4359 = icmp eq i32 3, %4358
  br i1 %4359, label %4360, label %4367

4360:                                             ; preds = %4356
  %4361 = load ptr, ptr %6, align 8, !tbaa !5
  %4362 = load ptr, ptr %9, align 8, !tbaa !5
  %4363 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %4362, i32 0, i32 128
  %4364 = load i8, ptr %4363, align 4, !tbaa !11
  %4365 = load i32, ptr %77, align 4, !tbaa !9
  %4366 = load i32, ptr %77, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_2reg(ptr noundef %4361, i32 noundef 537208083, i8 noundef signext %4364, i32 noundef %4365, i32 noundef %4366)
  br label %4379

4367:                                             ; preds = %4356
  %4368 = load ptr, ptr %10, align 8, !tbaa !5
  %4369 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %4368, i32 noundef 0)
  %4370 = icmp eq i32 2, %4369
  br i1 %4370, label %4371, label %4378

4371:                                             ; preds = %4367
  %4372 = load ptr, ptr %6, align 8, !tbaa !5
  %4373 = load ptr, ptr %9, align 8, !tbaa !5
  %4374 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %4373, i32 0, i32 128
  %4375 = load i8, ptr %4374, align 4, !tbaa !11
  %4376 = load i32, ptr %77, align 4, !tbaa !9
  %4377 = load i32, ptr %77, align 4, !tbaa !9
  call void @libxsmm_generator_cvtbf16ps_sse_avx2_avx512(ptr noundef %4372, i8 noundef signext %4375, i32 noundef %4376, i32 noundef %4377)
  br label %4378

4378:                                             ; preds = %4371, %4367
  br label %4379

4379:                                             ; preds = %4378, %4360
  br label %4380

4380:                                             ; preds = %4379, %4345
  br label %4381

4381:                                             ; preds = %4380, %4334
  %4382 = load i32, ptr %50, align 4, !tbaa !9
  %4383 = icmp ugt i32 %4382, 0
  br i1 %4383, label %4387, label %4384

4384:                                             ; preds = %4381
  %4385 = load i32, ptr %52, align 4, !tbaa !9
  %4386 = icmp ugt i32 %4385, 0
  br i1 %4386, label %4387, label %4404

4387:                                             ; preds = %4384, %4381
  %4388 = load i32, ptr %12, align 4, !tbaa !9
  %4389 = load i32, ptr %15, align 4, !tbaa !9
  %4390 = sub i32 %4389, 1
  %4391 = icmp eq i32 %4388, %4390
  br i1 %4391, label %4392, label %4404

4392:                                             ; preds = %4387
  %4393 = load i32, ptr %18, align 4, !tbaa !9
  %4394 = icmp ugt i32 %4393, 0
  br i1 %4394, label %4395, label %4404

4395:                                             ; preds = %4392
  %4396 = load ptr, ptr %6, align 8, !tbaa !5
  %4397 = load ptr, ptr %9, align 8, !tbaa !5
  %4398 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %4397, i32 0, i32 128
  %4399 = load i8, ptr %4398, align 4, !tbaa !11
  %4400 = load i32, ptr %77, align 4, !tbaa !9
  %4401 = load i32, ptr %27, align 4, !tbaa !9
  %4402 = load i32, ptr %77, align 4, !tbaa !9
  %4403 = load i32, ptr %18, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_mask(ptr noundef %4396, i32 noundef -268097947, i8 noundef signext %4399, i32 noundef %4400, i32 noundef %4401, i32 noundef %4402, i32 noundef %4403, i32 noundef 0)
  br label %4404

4404:                                             ; preds = %4395, %4392, %4387, %4384
  %4405 = load i32, ptr %24, align 4, !tbaa !9
  %4406 = icmp ugt i32 %4405, 0
  br i1 %4406, label %4407, label %4416

4407:                                             ; preds = %4404
  %4408 = load ptr, ptr %6, align 8, !tbaa !5
  %4409 = load i32, ptr %25, align 4, !tbaa !9
  %4410 = load ptr, ptr %9, align 8, !tbaa !5
  %4411 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %4410, i32 0, i32 128
  %4412 = load i8, ptr %4411, align 4, !tbaa !11
  %4413 = load i32, ptr %77, align 4, !tbaa !9
  %4414 = load i32, ptr %75, align 4, !tbaa !9
  %4415 = load i32, ptr %75, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %4408, i32 noundef %4409, i8 noundef signext %4412, i32 noundef %4413, i32 noundef %4414, i32 noundef %4415)
  br label %4416

4416:                                             ; preds = %4407, %4404
  %4417 = load i32, ptr %23, align 4, !tbaa !9
  %4418 = icmp ugt i32 %4417, 0
  br i1 %4418, label %4419, label %4427

4419:                                             ; preds = %4416
  %4420 = load ptr, ptr %6, align 8, !tbaa !5
  %4421 = load ptr, ptr %9, align 8, !tbaa !5
  %4422 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %4421, i32 0, i32 128
  %4423 = load i8, ptr %4422, align 4, !tbaa !11
  %4424 = load i32, ptr %77, align 4, !tbaa !9
  %4425 = load i32, ptr %77, align 4, !tbaa !9
  %4426 = load i32, ptr %76, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %4420, i32 noundef 805643960, i8 noundef signext %4423, i32 noundef %4424, i32 noundef %4425, i32 noundef %4426)
  br label %4427

4427:                                             ; preds = %4419, %4416
  br label %4428

4428:                                             ; preds = %4427
  %4429 = load i32, ptr %12, align 4, !tbaa !9
  %4430 = add i32 %4429, 1
  store i32 %4430, ptr %12, align 4, !tbaa !9
  br label %4297, !llvm.loop !44

4431:                                             ; preds = %4297
  %4432 = load i32, ptr %24, align 4, !tbaa !9
  %4433 = icmp ugt i32 %4432, 0
  br i1 %4433, label %4434, label %4608

4434:                                             ; preds = %4431
  %4435 = load ptr, ptr %6, align 8, !tbaa !5
  %4436 = load i32, ptr %25, align 4, !tbaa !9
  %4437 = load i32, ptr %75, align 4, !tbaa !9
  call void @libxsmm_generator_hinstrps_avx512(ptr noundef %4435, i32 noundef %4436, i32 noundef %4437, i32 noundef 0, i32 noundef 1)
  %4438 = load i32, ptr %53, align 4, !tbaa !9
  %4439 = icmp ugt i32 %4438, 0
  br i1 %4439, label %4440, label %4507

4440:                                             ; preds = %4434
  %4441 = load ptr, ptr %6, align 8, !tbaa !5
  %4442 = load i32, ptr %46, align 4, !tbaa !9
  %4443 = load ptr, ptr %8, align 8, !tbaa !5
  %4444 = getelementptr inbounds %struct.libxsmm_mateltwise_gp_reg_mapping_struct, ptr %4443, i32 0, i32 16
  %4445 = load i32, ptr %4444, align 4, !tbaa !26
  %4446 = load i8, ptr %43, align 1, !tbaa !13
  %4447 = load i32, ptr %28, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_unified_vec_move(ptr noundef %4441, i32 noundef %4442, i32 noundef %4445, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %4446, i32 noundef %4447, i32 noundef 1, i32 noundef 2, i32 noundef 0)
  %4448 = load ptr, ptr %10, align 8, !tbaa !5
  %4449 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %4448, i32 noundef 3)
  %4450 = icmp eq i32 4, %4449
  br i1 %4450, label %4451, label %4458

4451:                                             ; preds = %4440
  %4452 = load ptr, ptr %6, align 8, !tbaa !5
  %4453 = load ptr, ptr %9, align 8, !tbaa !5
  %4454 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %4453, i32 0, i32 128
  %4455 = load i8, ptr %4454, align 4, !tbaa !11
  %4456 = load i32, ptr %28, align 4, !tbaa !9
  %4457 = load i32, ptr %28, align 4, !tbaa !9
  call void @libxsmm_generator_cvtbf8ps_avx512(ptr noundef %4452, i8 noundef signext %4455, i32 noundef %4456, i32 noundef %4457)
  br label %4498

4458:                                             ; preds = %4440
  %4459 = load ptr, ptr %10, align 8, !tbaa !5
  %4460 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %4459, i32 noundef 3)
  %4461 = icmp eq i32 5, %4460
  br i1 %4461, label %4462, label %4473

4462:                                             ; preds = %4458
  %4463 = load ptr, ptr %6, align 8, !tbaa !5
  %4464 = load ptr, ptr %9, align 8, !tbaa !5
  %4465 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %4464, i32 0, i32 128
  %4466 = load i8, ptr %4465, align 4, !tbaa !11
  %4467 = load i32, ptr %28, align 4, !tbaa !9
  %4468 = load i32, ptr %28, align 4, !tbaa !9
  %4469 = load i32, ptr %35, align 4, !tbaa !9
  %4470 = load i32, ptr %36, align 4, !tbaa !9
  %4471 = load i32, ptr %39, align 4, !tbaa !9
  %4472 = load i32, ptr %40, align 4, !tbaa !9
  call void @libxsmm_generator_vcvthf8_to_f32_avx512_preppedstack(ptr noundef %4463, i8 noundef signext %4466, i32 noundef %4467, i32 noundef %4468, i32 noundef %4469, i32 noundef %4470, i32 noundef %4471, i32 noundef %4472)
  br label %4497

4473:                                             ; preds = %4458
  %4474 = load ptr, ptr %10, align 8, !tbaa !5
  %4475 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %4474, i32 noundef 3)
  %4476 = icmp eq i32 3, %4475
  br i1 %4476, label %4477, label %4484

4477:                                             ; preds = %4473
  %4478 = load ptr, ptr %6, align 8, !tbaa !5
  %4479 = load ptr, ptr %9, align 8, !tbaa !5
  %4480 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %4479, i32 0, i32 128
  %4481 = load i8, ptr %4480, align 4, !tbaa !11
  %4482 = load i32, ptr %28, align 4, !tbaa !9
  %4483 = load i32, ptr %28, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_2reg(ptr noundef %4478, i32 noundef 537208083, i8 noundef signext %4481, i32 noundef %4482, i32 noundef %4483)
  br label %4496

4484:                                             ; preds = %4473
  %4485 = load ptr, ptr %10, align 8, !tbaa !5
  %4486 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %4485, i32 noundef 3)
  %4487 = icmp eq i32 2, %4486
  br i1 %4487, label %4488, label %4495

4488:                                             ; preds = %4484
  %4489 = load ptr, ptr %6, align 8, !tbaa !5
  %4490 = load ptr, ptr %9, align 8, !tbaa !5
  %4491 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %4490, i32 0, i32 128
  %4492 = load i8, ptr %4491, align 4, !tbaa !11
  %4493 = load i32, ptr %28, align 4, !tbaa !9
  %4494 = load i32, ptr %28, align 4, !tbaa !9
  call void @libxsmm_generator_cvtbf16ps_sse_avx2_avx512(ptr noundef %4489, i8 noundef signext %4492, i32 noundef %4493, i32 noundef %4494)
  br label %4495

4495:                                             ; preds = %4488, %4484
  br label %4496

4496:                                             ; preds = %4495, %4477
  br label %4497

4497:                                             ; preds = %4496, %4462
  br label %4498

4498:                                             ; preds = %4497, %4451
  %4499 = load ptr, ptr %6, align 8, !tbaa !5
  %4500 = load i32, ptr %25, align 4, !tbaa !9
  %4501 = load ptr, ptr %9, align 8, !tbaa !5
  %4502 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %4501, i32 0, i32 128
  %4503 = load i8, ptr %4502, align 4, !tbaa !11
  %4504 = load i32, ptr %28, align 4, !tbaa !9
  %4505 = load i32, ptr %75, align 4, !tbaa !9
  %4506 = load i32, ptr %75, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %4499, i32 noundef %4500, i8 noundef signext %4503, i32 noundef %4504, i32 noundef %4505, i32 noundef %4506)
  br label %4507

4507:                                             ; preds = %4498, %4434
  %4508 = load ptr, ptr %10, align 8, !tbaa !5
  %4509 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %4508, i32 noundef 3)
  %4510 = icmp eq i32 4, %4509
  br i1 %4510, label %4511, label %4518

4511:                                             ; preds = %4507
  %4512 = load ptr, ptr %6, align 8, !tbaa !5
  %4513 = load ptr, ptr %9, align 8, !tbaa !5
  %4514 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %4513, i32 0, i32 128
  %4515 = load i8, ptr %4514, align 4, !tbaa !11
  %4516 = load i32, ptr %75, align 4, !tbaa !9
  %4517 = load i32, ptr %75, align 4, !tbaa !9
  call void @libxsmm_generator_vcvtneps2bf8_avx512_preppedstack(ptr noundef %4512, i8 noundef signext %4515, i32 noundef %4516, i32 noundef %4517, i32 noundef 0, i32 noundef 1, i32 noundef 3, i32 noundef 4, i32 noundef 0, i32 noundef 0)
  br label %4597

4518:                                             ; preds = %4507
  %4519 = load ptr, ptr %10, align 8, !tbaa !5
  %4520 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %4519, i32 noundef 3)
  %4521 = icmp eq i32 5, %4520
  br i1 %4521, label %4522, label %4536

4522:                                             ; preds = %4518
  %4523 = load ptr, ptr %6, align 8, !tbaa !5
  %4524 = load ptr, ptr %9, align 8, !tbaa !5
  %4525 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %4524, i32 0, i32 128
  %4526 = load i8, ptr %4525, align 4, !tbaa !11
  %4527 = load i32, ptr %75, align 4, !tbaa !9
  %4528 = load i32, ptr %75, align 4, !tbaa !9
  %4529 = load i32, ptr %35, align 4, !tbaa !9
  %4530 = load i32, ptr %36, align 4, !tbaa !9
  %4531 = load i32, ptr %37, align 4, !tbaa !9
  %4532 = load i32, ptr %38, align 4, !tbaa !9
  %4533 = load i32, ptr %39, align 4, !tbaa !9
  %4534 = load i32, ptr %40, align 4, !tbaa !9
  %4535 = load i32, ptr %41, align 4, !tbaa !9
  call void @libxsmm_generator_vcvtf32_to_hf8_avx512_preppedstack(ptr noundef %4523, i8 noundef signext %4526, i32 noundef %4527, i32 noundef %4528, i32 noundef %4529, i32 noundef %4530, i32 noundef %4531, i32 noundef %4532, i32 noundef %4533, i32 noundef %4534, i32 noundef %4535)
  br label %4596

4536:                                             ; preds = %4518
  %4537 = load ptr, ptr %10, align 8, !tbaa !5
  %4538 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %4537, i32 noundef 3)
  %4539 = icmp eq i32 3, %4538
  br i1 %4539, label %4540, label %4560

4540:                                             ; preds = %4536
  %4541 = load ptr, ptr %6, align 8, !tbaa !5
  %4542 = load ptr, ptr %9, align 8, !tbaa !5
  %4543 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %4542, i32 0, i32 128
  %4544 = load i8, ptr %4543, align 4, !tbaa !11
  %4545 = load i32, ptr %75, align 4, !tbaa !9
  %4546 = load i32, ptr %75, align 4, !tbaa !9
  %4547 = load ptr, ptr %6, align 8, !tbaa !5
  %4548 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %4547, i32 0, i32 6
  %4549 = load i32, ptr %4548, align 4, !tbaa !20
  %4550 = icmp ult i32 %4549, 1101
  %4551 = zext i1 %4550 to i64
  %4552 = select i1 %4550, i32 0, i32 1
  %4553 = load ptr, ptr %6, align 8, !tbaa !5
  %4554 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %4553, i32 0, i32 6
  %4555 = load i32, ptr %4554, align 4, !tbaa !20
  %4556 = icmp ult i32 %4555, 1101
  %4557 = zext i1 %4556 to i64
  %4558 = select i1 %4556, i32 0, i32 1
  %4559 = trunc i32 %4558 to i8
  call void @libxsmm_x86_instruction_vec_compute_2reg_mask_sae_imm8(ptr noundef %4541, i32 noundef 671954205, i8 noundef signext %4544, i32 noundef %4545, i32 noundef %4546, i32 noundef 0, i32 noundef %4552, i8 noundef zeroext %4559, i32 noundef 0)
  br label %4595

4560:                                             ; preds = %4536
  %4561 = load ptr, ptr %10, align 8, !tbaa !5
  %4562 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %4561, i32 noundef 3)
  %4563 = icmp eq i32 2, %4562
  br i1 %4563, label %4564, label %4594

4564:                                             ; preds = %4560
  %4565 = load ptr, ptr %6, align 8, !tbaa !5
  %4566 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %4565, i32 0, i32 6
  %4567 = load i32, ptr %4566, align 4, !tbaa !20
  %4568 = icmp ult i32 %4567, 1103
  br i1 %4568, label %4569, label %4586

4569:                                             ; preds = %4564
  %4570 = load ptr, ptr %6, align 8, !tbaa !5
  %4571 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %4570, i32 0, i32 6
  %4572 = load i32, ptr %4571, align 4, !tbaa !20
  %4573 = icmp ne i32 %4572, 1053
  br i1 %4573, label %4574, label %4586

4574:                                             ; preds = %4569
  %4575 = load ptr, ptr %6, align 8, !tbaa !5
  %4576 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %4575, i32 0, i32 6
  %4577 = load i32, ptr %4576, align 4, !tbaa !20
  %4578 = icmp ne i32 %4577, 1008
  br i1 %4578, label %4579, label %4586

4579:                                             ; preds = %4574
  %4580 = load ptr, ptr %6, align 8, !tbaa !5
  %4581 = load ptr, ptr %9, align 8, !tbaa !5
  %4582 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %4581, i32 0, i32 128
  %4583 = load i8, ptr %4582, align 4, !tbaa !11
  %4584 = load i32, ptr %75, align 4, !tbaa !9
  %4585 = load i32, ptr %75, align 4, !tbaa !9
  call void @libxsmm_generator_vcvtneps2bf16_avx512_preppedstack(ptr noundef %4580, i8 noundef signext %4583, i32 noundef %4584, i32 noundef %4585, i32 noundef 0, i32 noundef 1, i32 noundef 3, i32 noundef 4, i32 noundef 0)
  br label %4593

4586:                                             ; preds = %4574, %4569, %4564
  %4587 = load ptr, ptr %6, align 8, !tbaa !5
  %4588 = load ptr, ptr %9, align 8, !tbaa !5
  %4589 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %4588, i32 0, i32 128
  %4590 = load i8, ptr %4589, align 4, !tbaa !11
  %4591 = load i32, ptr %75, align 4, !tbaa !9
  %4592 = load i32, ptr %75, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_2reg(ptr noundef %4587, i32 noundef 537273970, i8 noundef signext %4590, i32 noundef %4591, i32 noundef %4592)
  br label %4593

4593:                                             ; preds = %4586, %4579
  br label %4594

4594:                                             ; preds = %4593, %4560
  br label %4595

4595:                                             ; preds = %4594, %4540
  br label %4596

4596:                                             ; preds = %4595, %4522
  br label %4597

4597:                                             ; preds = %4596, %4511
  %4598 = load ptr, ptr %6, align 8, !tbaa !5
  %4599 = load ptr, ptr %9, align 8, !tbaa !5
  %4600 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %4599, i32 0, i32 0
  %4601 = load i32, ptr %4600, align 4, !tbaa !40
  %4602 = load i32, ptr %46, align 4, !tbaa !9
  %4603 = load ptr, ptr %8, align 8, !tbaa !5
  %4604 = getelementptr inbounds %struct.libxsmm_mateltwise_gp_reg_mapping_struct, ptr %4603, i32 0, i32 16
  %4605 = load i32, ptr %4604, align 4, !tbaa !26
  %4606 = load i8, ptr %43, align 1, !tbaa !13
  %4607 = load i32, ptr %75, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_move(ptr noundef %4598, i32 noundef %4601, i32 noundef %4602, i32 noundef %4605, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %4606, i32 noundef %4607, i32 noundef 2, i32 noundef 0, i32 noundef 1)
  br label %4608

4608:                                             ; preds = %4597, %4431
  %4609 = load i32, ptr %23, align 4, !tbaa !9
  %4610 = icmp ugt i32 %4609, 0
  br i1 %4610, label %4611, label %4780

4611:                                             ; preds = %4608
  %4612 = load ptr, ptr %6, align 8, !tbaa !5
  %4613 = load i32, ptr %25, align 4, !tbaa !9
  %4614 = load i32, ptr %76, align 4, !tbaa !9
  call void @libxsmm_generator_hinstrps_avx512(ptr noundef %4612, i32 noundef %4613, i32 noundef %4614, i32 noundef 0, i32 noundef 1)
  %4615 = load i32, ptr %53, align 4, !tbaa !9
  %4616 = icmp ugt i32 %4615, 0
  br i1 %4616, label %4617, label %4684

4617:                                             ; preds = %4611
  %4618 = load ptr, ptr %6, align 8, !tbaa !5
  %4619 = load i32, ptr %46, align 4, !tbaa !9
  %4620 = load ptr, ptr %8, align 8, !tbaa !5
  %4621 = getelementptr inbounds %struct.libxsmm_mateltwise_gp_reg_mapping_struct, ptr %4620, i32 0, i32 17
  %4622 = load i32, ptr %4621, align 4, !tbaa !27
  %4623 = load i8, ptr %43, align 1, !tbaa !13
  %4624 = load i32, ptr %28, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_unified_vec_move(ptr noundef %4618, i32 noundef %4619, i32 noundef %4622, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %4623, i32 noundef %4624, i32 noundef 1, i32 noundef 2, i32 noundef 0)
  %4625 = load ptr, ptr %10, align 8, !tbaa !5
  %4626 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %4625, i32 noundef 3)
  %4627 = icmp eq i32 4, %4626
  br i1 %4627, label %4628, label %4635

4628:                                             ; preds = %4617
  %4629 = load ptr, ptr %6, align 8, !tbaa !5
  %4630 = load ptr, ptr %9, align 8, !tbaa !5
  %4631 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %4630, i32 0, i32 128
  %4632 = load i8, ptr %4631, align 4, !tbaa !11
  %4633 = load i32, ptr %28, align 4, !tbaa !9
  %4634 = load i32, ptr %28, align 4, !tbaa !9
  call void @libxsmm_generator_cvtbf8ps_avx512(ptr noundef %4629, i8 noundef signext %4632, i32 noundef %4633, i32 noundef %4634)
  br label %4675

4635:                                             ; preds = %4617
  %4636 = load ptr, ptr %10, align 8, !tbaa !5
  %4637 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %4636, i32 noundef 3)
  %4638 = icmp eq i32 5, %4637
  br i1 %4638, label %4639, label %4650

4639:                                             ; preds = %4635
  %4640 = load ptr, ptr %6, align 8, !tbaa !5
  %4641 = load ptr, ptr %9, align 8, !tbaa !5
  %4642 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %4641, i32 0, i32 128
  %4643 = load i8, ptr %4642, align 4, !tbaa !11
  %4644 = load i32, ptr %28, align 4, !tbaa !9
  %4645 = load i32, ptr %28, align 4, !tbaa !9
  %4646 = load i32, ptr %35, align 4, !tbaa !9
  %4647 = load i32, ptr %36, align 4, !tbaa !9
  %4648 = load i32, ptr %39, align 4, !tbaa !9
  %4649 = load i32, ptr %40, align 4, !tbaa !9
  call void @libxsmm_generator_vcvthf8_to_f32_avx512_preppedstack(ptr noundef %4640, i8 noundef signext %4643, i32 noundef %4644, i32 noundef %4645, i32 noundef %4646, i32 noundef %4647, i32 noundef %4648, i32 noundef %4649)
  br label %4674

4650:                                             ; preds = %4635
  %4651 = load ptr, ptr %10, align 8, !tbaa !5
  %4652 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %4651, i32 noundef 3)
  %4653 = icmp eq i32 3, %4652
  br i1 %4653, label %4654, label %4661

4654:                                             ; preds = %4650
  %4655 = load ptr, ptr %6, align 8, !tbaa !5
  %4656 = load ptr, ptr %9, align 8, !tbaa !5
  %4657 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %4656, i32 0, i32 128
  %4658 = load i8, ptr %4657, align 4, !tbaa !11
  %4659 = load i32, ptr %28, align 4, !tbaa !9
  %4660 = load i32, ptr %28, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_2reg(ptr noundef %4655, i32 noundef 537208083, i8 noundef signext %4658, i32 noundef %4659, i32 noundef %4660)
  br label %4673

4661:                                             ; preds = %4650
  %4662 = load ptr, ptr %10, align 8, !tbaa !5
  %4663 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %4662, i32 noundef 3)
  %4664 = icmp eq i32 2, %4663
  br i1 %4664, label %4665, label %4672

4665:                                             ; preds = %4661
  %4666 = load ptr, ptr %6, align 8, !tbaa !5
  %4667 = load ptr, ptr %9, align 8, !tbaa !5
  %4668 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %4667, i32 0, i32 128
  %4669 = load i8, ptr %4668, align 4, !tbaa !11
  %4670 = load i32, ptr %28, align 4, !tbaa !9
  %4671 = load i32, ptr %28, align 4, !tbaa !9
  call void @libxsmm_generator_cvtbf16ps_sse_avx2_avx512(ptr noundef %4666, i8 noundef signext %4669, i32 noundef %4670, i32 noundef %4671)
  br label %4672

4672:                                             ; preds = %4665, %4661
  br label %4673

4673:                                             ; preds = %4672, %4654
  br label %4674

4674:                                             ; preds = %4673, %4639
  br label %4675

4675:                                             ; preds = %4674, %4628
  %4676 = load ptr, ptr %6, align 8, !tbaa !5
  %4677 = load i32, ptr %25, align 4, !tbaa !9
  %4678 = load ptr, ptr %9, align 8, !tbaa !5
  %4679 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %4678, i32 0, i32 128
  %4680 = load i8, ptr %4679, align 4, !tbaa !11
  %4681 = load i32, ptr %28, align 4, !tbaa !9
  %4682 = load i32, ptr %76, align 4, !tbaa !9
  %4683 = load i32, ptr %76, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %4676, i32 noundef %4677, i8 noundef signext %4680, i32 noundef %4681, i32 noundef %4682, i32 noundef %4683)
  br label %4684

4684:                                             ; preds = %4675, %4611
  %4685 = load ptr, ptr %10, align 8, !tbaa !5
  %4686 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %4685, i32 noundef 3)
  %4687 = icmp eq i32 4, %4686
  br i1 %4687, label %4688, label %4695

4688:                                             ; preds = %4684
  %4689 = load ptr, ptr %6, align 8, !tbaa !5
  %4690 = load ptr, ptr %9, align 8, !tbaa !5
  %4691 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %4690, i32 0, i32 128
  %4692 = load i8, ptr %4691, align 4, !tbaa !11
  %4693 = load i32, ptr %76, align 4, !tbaa !9
  %4694 = load i32, ptr %76, align 4, !tbaa !9
  call void @libxsmm_generator_vcvtneps2bf8_avx512_preppedstack(ptr noundef %4689, i8 noundef signext %4692, i32 noundef %4693, i32 noundef %4694, i32 noundef 0, i32 noundef 1, i32 noundef 3, i32 noundef 4, i32 noundef 0, i32 noundef 0)
  br label %4769

4695:                                             ; preds = %4684
  %4696 = load ptr, ptr %10, align 8, !tbaa !5
  %4697 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %4696, i32 noundef 3)
  %4698 = icmp eq i32 5, %4697
  br i1 %4698, label %4699, label %4713

4699:                                             ; preds = %4695
  %4700 = load ptr, ptr %6, align 8, !tbaa !5
  %4701 = load ptr, ptr %9, align 8, !tbaa !5
  %4702 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %4701, i32 0, i32 128
  %4703 = load i8, ptr %4702, align 4, !tbaa !11
  %4704 = load i32, ptr %76, align 4, !tbaa !9
  %4705 = load i32, ptr %76, align 4, !tbaa !9
  %4706 = load i32, ptr %35, align 4, !tbaa !9
  %4707 = load i32, ptr %36, align 4, !tbaa !9
  %4708 = load i32, ptr %37, align 4, !tbaa !9
  %4709 = load i32, ptr %38, align 4, !tbaa !9
  %4710 = load i32, ptr %39, align 4, !tbaa !9
  %4711 = load i32, ptr %40, align 4, !tbaa !9
  %4712 = load i32, ptr %41, align 4, !tbaa !9
  call void @libxsmm_generator_vcvtf32_to_hf8_avx512_preppedstack(ptr noundef %4700, i8 noundef signext %4703, i32 noundef %4704, i32 noundef %4705, i32 noundef %4706, i32 noundef %4707, i32 noundef %4708, i32 noundef %4709, i32 noundef %4710, i32 noundef %4711, i32 noundef %4712)
  br label %4768

4713:                                             ; preds = %4695
  %4714 = load ptr, ptr %10, align 8, !tbaa !5
  %4715 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %4714, i32 noundef 3)
  %4716 = icmp eq i32 3, %4715
  br i1 %4716, label %4717, label %4737

4717:                                             ; preds = %4713
  %4718 = load ptr, ptr %6, align 8, !tbaa !5
  %4719 = load ptr, ptr %9, align 8, !tbaa !5
  %4720 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %4719, i32 0, i32 128
  %4721 = load i8, ptr %4720, align 4, !tbaa !11
  %4722 = load i32, ptr %76, align 4, !tbaa !9
  %4723 = load i32, ptr %76, align 4, !tbaa !9
  %4724 = load ptr, ptr %6, align 8, !tbaa !5
  %4725 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %4724, i32 0, i32 6
  %4726 = load i32, ptr %4725, align 4, !tbaa !20
  %4727 = icmp ult i32 %4726, 1101
  %4728 = zext i1 %4727 to i64
  %4729 = select i1 %4727, i32 0, i32 1
  %4730 = load ptr, ptr %6, align 8, !tbaa !5
  %4731 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %4730, i32 0, i32 6
  %4732 = load i32, ptr %4731, align 4, !tbaa !20
  %4733 = icmp ult i32 %4732, 1101
  %4734 = zext i1 %4733 to i64
  %4735 = select i1 %4733, i32 0, i32 1
  %4736 = trunc i32 %4735 to i8
  call void @libxsmm_x86_instruction_vec_compute_2reg_mask_sae_imm8(ptr noundef %4718, i32 noundef 671954205, i8 noundef signext %4721, i32 noundef %4722, i32 noundef %4723, i32 noundef 0, i32 noundef %4729, i8 noundef zeroext %4736, i32 noundef 0)
  br label %4767

4737:                                             ; preds = %4713
  %4738 = load ptr, ptr %10, align 8, !tbaa !5
  %4739 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %4738, i32 noundef 3)
  %4740 = icmp eq i32 2, %4739
  br i1 %4740, label %4741, label %4766

4741:                                             ; preds = %4737
  %4742 = load ptr, ptr %6, align 8, !tbaa !5
  %4743 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %4742, i32 0, i32 6
  %4744 = load i32, ptr %4743, align 4, !tbaa !20
  %4745 = icmp ult i32 %4744, 1103
  br i1 %4745, label %4746, label %4758

4746:                                             ; preds = %4741
  %4747 = load ptr, ptr %6, align 8, !tbaa !5
  %4748 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %4747, i32 0, i32 6
  %4749 = load i32, ptr %4748, align 4, !tbaa !20
  %4750 = icmp ne i32 %4749, 1053
  br i1 %4750, label %4751, label %4758

4751:                                             ; preds = %4746
  %4752 = load ptr, ptr %6, align 8, !tbaa !5
  %4753 = load ptr, ptr %9, align 8, !tbaa !5
  %4754 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %4753, i32 0, i32 128
  %4755 = load i8, ptr %4754, align 4, !tbaa !11
  %4756 = load i32, ptr %76, align 4, !tbaa !9
  %4757 = load i32, ptr %76, align 4, !tbaa !9
  call void @libxsmm_generator_vcvtneps2bf16_avx512_preppedstack(ptr noundef %4752, i8 noundef signext %4755, i32 noundef %4756, i32 noundef %4757, i32 noundef 0, i32 noundef 1, i32 noundef 3, i32 noundef 4, i32 noundef 0)
  br label %4765

4758:                                             ; preds = %4746, %4741
  %4759 = load ptr, ptr %6, align 8, !tbaa !5
  %4760 = load ptr, ptr %9, align 8, !tbaa !5
  %4761 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %4760, i32 0, i32 128
  %4762 = load i8, ptr %4761, align 4, !tbaa !11
  %4763 = load i32, ptr %76, align 4, !tbaa !9
  %4764 = load i32, ptr %76, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_2reg(ptr noundef %4759, i32 noundef 537273970, i8 noundef signext %4762, i32 noundef %4763, i32 noundef %4764)
  br label %4765

4765:                                             ; preds = %4758, %4751
  br label %4766

4766:                                             ; preds = %4765, %4737
  br label %4767

4767:                                             ; preds = %4766, %4717
  br label %4768

4768:                                             ; preds = %4767, %4699
  br label %4769

4769:                                             ; preds = %4768, %4688
  %4770 = load ptr, ptr %6, align 8, !tbaa !5
  %4771 = load ptr, ptr %9, align 8, !tbaa !5
  %4772 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %4771, i32 0, i32 0
  %4773 = load i32, ptr %4772, align 4, !tbaa !40
  %4774 = load i32, ptr %46, align 4, !tbaa !9
  %4775 = load ptr, ptr %8, align 8, !tbaa !5
  %4776 = getelementptr inbounds %struct.libxsmm_mateltwise_gp_reg_mapping_struct, ptr %4775, i32 0, i32 17
  %4777 = load i32, ptr %4776, align 4, !tbaa !27
  %4778 = load i8, ptr %43, align 1, !tbaa !13
  %4779 = load i32, ptr %76, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_move(ptr noundef %4770, i32 noundef %4773, i32 noundef %4774, i32 noundef %4777, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %4778, i32 noundef %4779, i32 noundef 2, i32 noundef 0, i32 noundef 1)
  br label %4780

4780:                                             ; preds = %4769, %4608
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #3
  br label %6701

4781:                                             ; preds = %4144
  %4782 = load i32, ptr %22, align 4, !tbaa !9
  %4783 = icmp ne i32 %4782, 0
  br i1 %4783, label %4784, label %6700

4784:                                             ; preds = %4781
  store i32 0, ptr %12, align 4, !tbaa !9
  br label %4785

4785:                                             ; preds = %6696, %4784
  %4786 = load i32, ptr %12, align 4, !tbaa !9
  %4787 = load i32, ptr %15, align 4, !tbaa !9
  %4788 = icmp ult i32 %4786, %4787
  br i1 %4788, label %4789, label %6699

4789:                                             ; preds = %4785
  store i32 0, ptr %11, align 4, !tbaa !9
  br label %4790

4790:                                             ; preds = %4925, %4789
  %4791 = load i32, ptr %11, align 4, !tbaa !9
  %4792 = load i32, ptr %22, align 4, !tbaa !9
  %4793 = icmp ult i32 %4791, %4792
  br i1 %4793, label %4794, label %4928

4794:                                             ; preds = %4790
  %4795 = load ptr, ptr %6, align 8, !tbaa !5
  %4796 = load ptr, ptr %9, align 8, !tbaa !5
  %4797 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %4796, i32 0, i32 0
  %4798 = load i32, ptr %4797, align 4, !tbaa !40
  %4799 = load ptr, ptr %10, align 8, !tbaa !5
  %4800 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %4799, i32 noundef 0)
  %4801 = icmp eq i32 4, %4800
  br i1 %4801, label %4806, label %4802

4802:                                             ; preds = %4794
  %4803 = load ptr, ptr %10, align 8, !tbaa !5
  %4804 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %4803, i32 noundef 0)
  %4805 = icmp eq i32 5, %4804
  br i1 %4805, label %4806, label %4820

4806:                                             ; preds = %4802, %4794
  %4807 = load ptr, ptr %6, align 8, !tbaa !5
  %4808 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %4807, i32 0, i32 6
  %4809 = load i32, ptr %4808, align 4, !tbaa !20
  %4810 = icmp ult i32 %4809, 1101
  br i1 %4810, label %4811, label %4820

4811:                                             ; preds = %4806
  %4812 = load i32, ptr %18, align 4, !tbaa !9
  %4813 = icmp ugt i32 %4812, 0
  br i1 %4813, label %4814, label %4819

4814:                                             ; preds = %4811
  %4815 = load i32, ptr %12, align 4, !tbaa !9
  %4816 = load i32, ptr %15, align 4, !tbaa !9
  %4817 = sub i32 %4816, 1
  %4818 = icmp eq i32 %4815, %4817
  br i1 %4818, label %4820, label %4819

4819:                                             ; preds = %4814, %4811
  br label %4822

4820:                                             ; preds = %4814, %4806, %4802
  %4821 = load i32, ptr %45, align 4, !tbaa !9
  br label %4822

4822:                                             ; preds = %4820, %4819
  %4823 = phi i32 [ 545725200, %4819 ], [ %4821, %4820 ]
  %4824 = load ptr, ptr %8, align 8, !tbaa !5
  %4825 = getelementptr inbounds %struct.libxsmm_mateltwise_gp_reg_mapping_struct, ptr %4824, i32 0, i32 1
  %4826 = load i32, ptr %4825, align 4, !tbaa !24
  %4827 = load i32, ptr %12, align 4, !tbaa !9
  %4828 = load i32, ptr %29, align 4, !tbaa !9
  %4829 = mul i32 %4827, %4828
  %4830 = load i32, ptr %11, align 4, !tbaa !9
  %4831 = load ptr, ptr %10, align 8, !tbaa !5
  %4832 = getelementptr inbounds %struct.libxsmm_meltw_descriptor, ptr %4831, i32 0, i32 2
  %4833 = load i32, ptr %4832, align 1, !tbaa !23
  %4834 = mul i32 %4830, %4833
  %4835 = add i32 %4829, %4834
  %4836 = load ptr, ptr %9, align 8, !tbaa !5
  %4837 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %4836, i32 0, i32 2
  %4838 = load i32, ptr %4837, align 4, !tbaa !34
  %4839 = mul i32 %4835, %4838
  %4840 = load i8, ptr %42, align 1, !tbaa !13
  %4841 = load i32, ptr %11, align 4, !tbaa !9
  %4842 = load i32, ptr %12, align 4, !tbaa !9
  %4843 = load i32, ptr %15, align 4, !tbaa !9
  %4844 = sub i32 %4843, 1
  %4845 = icmp eq i32 %4842, %4844
  br i1 %4845, label %4846, label %4848

4846:                                             ; preds = %4822
  %4847 = load i32, ptr %18, align 4, !tbaa !9
  br label %4849

4848:                                             ; preds = %4822
  br label %4849

4849:                                             ; preds = %4848, %4846
  %4850 = phi i32 [ %4847, %4846 ], [ 0, %4848 ]
  call void @libxsmm_x86_instruction_vec_move(ptr noundef %4795, i32 noundef %4798, i32 noundef %4823, i32 noundef %4826, i32 noundef 127, i32 noundef 0, i32 noundef %4839, i8 noundef signext %4840, i32 noundef %4841, i32 noundef %4850, i32 noundef 1, i32 noundef 0)
  %4851 = load ptr, ptr %10, align 8, !tbaa !5
  %4852 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %4851, i32 noundef 0)
  %4853 = icmp eq i32 4, %4852
  br i1 %4853, label %4854, label %4861

4854:                                             ; preds = %4849
  %4855 = load ptr, ptr %6, align 8, !tbaa !5
  %4856 = load ptr, ptr %9, align 8, !tbaa !5
  %4857 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %4856, i32 0, i32 128
  %4858 = load i8, ptr %4857, align 4, !tbaa !11
  %4859 = load i32, ptr %11, align 4, !tbaa !9
  %4860 = load i32, ptr %11, align 4, !tbaa !9
  call void @libxsmm_generator_cvtbf8ps_avx512(ptr noundef %4855, i8 noundef signext %4858, i32 noundef %4859, i32 noundef %4860)
  br label %4901

4861:                                             ; preds = %4849
  %4862 = load ptr, ptr %10, align 8, !tbaa !5
  %4863 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %4862, i32 noundef 0)
  %4864 = icmp eq i32 5, %4863
  br i1 %4864, label %4865, label %4876

4865:                                             ; preds = %4861
  %4866 = load ptr, ptr %6, align 8, !tbaa !5
  %4867 = load ptr, ptr %9, align 8, !tbaa !5
  %4868 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %4867, i32 0, i32 128
  %4869 = load i8, ptr %4868, align 4, !tbaa !11
  %4870 = load i32, ptr %11, align 4, !tbaa !9
  %4871 = load i32, ptr %11, align 4, !tbaa !9
  %4872 = load i32, ptr %35, align 4, !tbaa !9
  %4873 = load i32, ptr %36, align 4, !tbaa !9
  %4874 = load i32, ptr %39, align 4, !tbaa !9
  %4875 = load i32, ptr %40, align 4, !tbaa !9
  call void @libxsmm_generator_vcvthf8_to_f32_avx512_preppedstack(ptr noundef %4866, i8 noundef signext %4869, i32 noundef %4870, i32 noundef %4871, i32 noundef %4872, i32 noundef %4873, i32 noundef %4874, i32 noundef %4875)
  br label %4900

4876:                                             ; preds = %4861
  %4877 = load ptr, ptr %10, align 8, !tbaa !5
  %4878 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %4877, i32 noundef 0)
  %4879 = icmp eq i32 3, %4878
  br i1 %4879, label %4880, label %4887

4880:                                             ; preds = %4876
  %4881 = load ptr, ptr %6, align 8, !tbaa !5
  %4882 = load ptr, ptr %9, align 8, !tbaa !5
  %4883 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %4882, i32 0, i32 128
  %4884 = load i8, ptr %4883, align 4, !tbaa !11
  %4885 = load i32, ptr %11, align 4, !tbaa !9
  %4886 = load i32, ptr %11, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_2reg(ptr noundef %4881, i32 noundef 537208083, i8 noundef signext %4884, i32 noundef %4885, i32 noundef %4886)
  br label %4899

4887:                                             ; preds = %4876
  %4888 = load ptr, ptr %10, align 8, !tbaa !5
  %4889 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %4888, i32 noundef 0)
  %4890 = icmp eq i32 2, %4889
  br i1 %4890, label %4891, label %4898

4891:                                             ; preds = %4887
  %4892 = load ptr, ptr %6, align 8, !tbaa !5
  %4893 = load ptr, ptr %9, align 8, !tbaa !5
  %4894 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %4893, i32 0, i32 128
  %4895 = load i8, ptr %4894, align 4, !tbaa !11
  %4896 = load i32, ptr %11, align 4, !tbaa !9
  %4897 = load i32, ptr %11, align 4, !tbaa !9
  call void @libxsmm_generator_cvtbf16ps_sse_avx2_avx512(ptr noundef %4892, i8 noundef signext %4895, i32 noundef %4896, i32 noundef %4897)
  br label %4898

4898:                                             ; preds = %4891, %4887
  br label %4899

4899:                                             ; preds = %4898, %4880
  br label %4900

4900:                                             ; preds = %4899, %4865
  br label %4901

4901:                                             ; preds = %4900, %4854
  %4902 = load i32, ptr %50, align 4, !tbaa !9
  %4903 = icmp ugt i32 %4902, 0
  br i1 %4903, label %4907, label %4904

4904:                                             ; preds = %4901
  %4905 = load i32, ptr %52, align 4, !tbaa !9
  %4906 = icmp ugt i32 %4905, 0
  br i1 %4906, label %4907, label %4924

4907:                                             ; preds = %4904, %4901
  %4908 = load i32, ptr %18, align 4, !tbaa !9
  %4909 = icmp ugt i32 %4908, 0
  br i1 %4909, label %4910, label %4924

4910:                                             ; preds = %4907
  %4911 = load i32, ptr %12, align 4, !tbaa !9
  %4912 = load i32, ptr %15, align 4, !tbaa !9
  %4913 = sub i32 %4912, 1
  %4914 = icmp eq i32 %4911, %4913
  br i1 %4914, label %4915, label %4924

4915:                                             ; preds = %4910
  %4916 = load ptr, ptr %6, align 8, !tbaa !5
  %4917 = load ptr, ptr %9, align 8, !tbaa !5
  %4918 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %4917, i32 0, i32 128
  %4919 = load i8, ptr %4918, align 4, !tbaa !11
  %4920 = load i32, ptr %11, align 4, !tbaa !9
  %4921 = load i32, ptr %27, align 4, !tbaa !9
  %4922 = load i32, ptr %11, align 4, !tbaa !9
  %4923 = load i32, ptr %18, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_mask(ptr noundef %4916, i32 noundef -268097947, i8 noundef signext %4919, i32 noundef %4920, i32 noundef %4921, i32 noundef %4922, i32 noundef %4923, i32 noundef 0)
  br label %4924

4924:                                             ; preds = %4915, %4910, %4907, %4904
  br label %4925

4925:                                             ; preds = %4924
  %4926 = load i32, ptr %11, align 4, !tbaa !9
  %4927 = add i32 %4926, 1
  store i32 %4927, ptr %11, align 4, !tbaa !9
  br label %4790, !llvm.loop !45

4928:                                             ; preds = %4790
  %4929 = load i32, ptr %22, align 4, !tbaa !9
  store i32 %4929, ptr %11, align 4, !tbaa !9
  br label %4930

4930:                                             ; preds = %4964, %4928
  %4931 = load i32, ptr %11, align 4, !tbaa !9
  %4932 = load i32, ptr %29, align 4, !tbaa !9
  %4933 = icmp ult i32 %4931, %4932
  br i1 %4933, label %4934, label %4967

4934:                                             ; preds = %4930
  %4935 = load i32, ptr %50, align 4, !tbaa !9
  %4936 = icmp ugt i32 %4935, 0
  br i1 %4936, label %4940, label %4937

4937:                                             ; preds = %4934
  %4938 = load i32, ptr %52, align 4, !tbaa !9
  %4939 = icmp ugt i32 %4938, 0
  br i1 %4939, label %4940, label %4955

4940:                                             ; preds = %4937, %4934
  %4941 = load i32, ptr %18, align 4, !tbaa !9
  %4942 = icmp ugt i32 %4941, 0
  br i1 %4942, label %4943, label %4955

4943:                                             ; preds = %4940
  %4944 = load i32, ptr %12, align 4, !tbaa !9
  %4945 = load i32, ptr %15, align 4, !tbaa !9
  %4946 = sub i32 %4945, 1
  %4947 = icmp eq i32 %4944, %4946
  br i1 %4947, label %4948, label %4955

4948:                                             ; preds = %4943
  %4949 = load ptr, ptr %6, align 8, !tbaa !5
  %4950 = load ptr, ptr %9, align 8, !tbaa !5
  %4951 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %4950, i32 0, i32 128
  %4952 = load i8, ptr %4951, align 4, !tbaa !11
  %4953 = load i32, ptr %27, align 4, !tbaa !9
  %4954 = load i32, ptr %11, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_2reg(ptr noundef %4949, i32 noundef 537138704, i8 noundef signext %4952, i32 noundef %4953, i32 noundef %4954)
  br label %4963

4955:                                             ; preds = %4943, %4940, %4937
  %4956 = load ptr, ptr %6, align 8, !tbaa !5
  %4957 = load ptr, ptr %9, align 8, !tbaa !5
  %4958 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %4957, i32 0, i32 128
  %4959 = load i8, ptr %4958, align 4, !tbaa !11
  %4960 = load i32, ptr %11, align 4, !tbaa !9
  %4961 = load i32, ptr %11, align 4, !tbaa !9
  %4962 = load i32, ptr %11, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %4956, i32 noundef 805574231, i8 noundef signext %4959, i32 noundef %4960, i32 noundef %4961, i32 noundef %4962)
  br label %4963

4963:                                             ; preds = %4955, %4948
  br label %4964

4964:                                             ; preds = %4963
  %4965 = load i32, ptr %11, align 4, !tbaa !9
  %4966 = add i32 %4965, 1
  store i32 %4966, ptr %11, align 4, !tbaa !9
  br label %4930, !llvm.loop !46

4967:                                             ; preds = %4930
  %4968 = load i32, ptr %24, align 4, !tbaa !9
  %4969 = icmp ugt i32 %4968, 0
  br i1 %4969, label %4970, label %4980

4970:                                             ; preds = %4967
  %4971 = load ptr, ptr %6, align 8, !tbaa !5
  %4972 = load ptr, ptr %9, align 8, !tbaa !5
  %4973 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %4972, i32 0, i32 128
  %4974 = load i8, ptr %4973, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg_mask(ptr noundef %4971, i32 noundef -268097947, i8 noundef signext %4974, i32 noundef 4, i32 noundef 0, i32 noundef 16, i32 noundef 7, i32 noundef 0)
  %4975 = load ptr, ptr %6, align 8, !tbaa !5
  %4976 = load ptr, ptr %9, align 8, !tbaa !5
  %4977 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %4976, i32 0, i32 128
  %4978 = load i8, ptr %4977, align 4, !tbaa !11
  %4979 = load i32, ptr %34, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %4975, i32 noundef -259181021, i8 noundef signext %4978, i32 noundef 4, i32 noundef 0, i32 noundef 17, i32 noundef %4979)
  br label %4980

4980:                                             ; preds = %4970, %4967
  %4981 = load i32, ptr %23, align 4, !tbaa !9
  %4982 = icmp ugt i32 %4981, 0
  br i1 %4982, label %4983, label %5001

4983:                                             ; preds = %4980
  %4984 = load ptr, ptr %6, align 8, !tbaa !5
  %4985 = load ptr, ptr %9, align 8, !tbaa !5
  %4986 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %4985, i32 0, i32 128
  %4987 = load i8, ptr %4986, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %4984, i32 noundef 805574233, i8 noundef signext %4987, i32 noundef 0, i32 noundef 0, i32 noundef 18)
  %4988 = load ptr, ptr %6, align 8, !tbaa !5
  %4989 = load ptr, ptr %9, align 8, !tbaa !5
  %4990 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %4989, i32 0, i32 128
  %4991 = load i8, ptr %4990, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %4988, i32 noundef 805574233, i8 noundef signext %4991, i32 noundef 4, i32 noundef 4, i32 noundef 19)
  %4992 = load ptr, ptr %6, align 8, !tbaa !5
  %4993 = load ptr, ptr %9, align 8, !tbaa !5
  %4994 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %4993, i32 0, i32 128
  %4995 = load i8, ptr %4994, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg_mask(ptr noundef %4992, i32 noundef -268097947, i8 noundef signext %4995, i32 noundef 19, i32 noundef 18, i32 noundef 20, i32 noundef 7, i32 noundef 0)
  %4996 = load ptr, ptr %6, align 8, !tbaa !5
  %4997 = load ptr, ptr %9, align 8, !tbaa !5
  %4998 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %4997, i32 0, i32 128
  %4999 = load i8, ptr %4998, align 4, !tbaa !11
  %5000 = load i32, ptr %34, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %4996, i32 noundef -259181021, i8 noundef signext %4999, i32 noundef 19, i32 noundef 18, i32 noundef 21, i32 noundef %5000)
  br label %5001

5001:                                             ; preds = %4983, %4980
  %5002 = load i32, ptr %24, align 4, !tbaa !9
  %5003 = icmp ugt i32 %5002, 0
  br i1 %5003, label %5004, label %5010

5004:                                             ; preds = %5001
  %5005 = load ptr, ptr %6, align 8, !tbaa !5
  %5006 = load i32, ptr %25, align 4, !tbaa !9
  %5007 = load ptr, ptr %9, align 8, !tbaa !5
  %5008 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5007, i32 0, i32 128
  %5009 = load i8, ptr %5008, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %5005, i32 noundef %5006, i8 noundef signext %5009, i32 noundef 16, i32 noundef 17, i32 noundef 0)
  br label %5010

5010:                                             ; preds = %5004, %5001
  %5011 = load i32, ptr %23, align 4, !tbaa !9
  %5012 = icmp ugt i32 %5011, 0
  br i1 %5012, label %5013, label %5019

5013:                                             ; preds = %5010
  %5014 = load ptr, ptr %6, align 8, !tbaa !5
  %5015 = load i32, ptr %25, align 4, !tbaa !9
  %5016 = load ptr, ptr %9, align 8, !tbaa !5
  %5017 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5016, i32 0, i32 128
  %5018 = load i8, ptr %5017, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %5014, i32 noundef %5015, i8 noundef signext %5018, i32 noundef 20, i32 noundef 21, i32 noundef 24)
  br label %5019

5019:                                             ; preds = %5013, %5010
  %5020 = load i32, ptr %22, align 4, !tbaa !9
  %5021 = icmp ugt i32 %5020, 7
  br i1 %5021, label %5022, label %5075

5022:                                             ; preds = %5019
  %5023 = load i32, ptr %24, align 4, !tbaa !9
  %5024 = icmp ugt i32 %5023, 0
  br i1 %5024, label %5025, label %5035

5025:                                             ; preds = %5022
  %5026 = load ptr, ptr %6, align 8, !tbaa !5
  %5027 = load ptr, ptr %9, align 8, !tbaa !5
  %5028 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5027, i32 0, i32 128
  %5029 = load i8, ptr %5028, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg_mask(ptr noundef %5026, i32 noundef -268097947, i8 noundef signext %5029, i32 noundef 12, i32 noundef 8, i32 noundef 16, i32 noundef 7, i32 noundef 0)
  %5030 = load ptr, ptr %6, align 8, !tbaa !5
  %5031 = load ptr, ptr %9, align 8, !tbaa !5
  %5032 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5031, i32 0, i32 128
  %5033 = load i8, ptr %5032, align 4, !tbaa !11
  %5034 = load i32, ptr %34, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %5030, i32 noundef -259181021, i8 noundef signext %5033, i32 noundef 12, i32 noundef 8, i32 noundef 17, i32 noundef %5034)
  br label %5035

5035:                                             ; preds = %5025, %5022
  %5036 = load i32, ptr %23, align 4, !tbaa !9
  %5037 = icmp ugt i32 %5036, 0
  br i1 %5037, label %5038, label %5056

5038:                                             ; preds = %5035
  %5039 = load ptr, ptr %6, align 8, !tbaa !5
  %5040 = load ptr, ptr %9, align 8, !tbaa !5
  %5041 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5040, i32 0, i32 128
  %5042 = load i8, ptr %5041, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %5039, i32 noundef 805574233, i8 noundef signext %5042, i32 noundef 8, i32 noundef 8, i32 noundef 18)
  %5043 = load ptr, ptr %6, align 8, !tbaa !5
  %5044 = load ptr, ptr %9, align 8, !tbaa !5
  %5045 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5044, i32 0, i32 128
  %5046 = load i8, ptr %5045, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %5043, i32 noundef 805574233, i8 noundef signext %5046, i32 noundef 12, i32 noundef 12, i32 noundef 19)
  %5047 = load ptr, ptr %6, align 8, !tbaa !5
  %5048 = load ptr, ptr %9, align 8, !tbaa !5
  %5049 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5048, i32 0, i32 128
  %5050 = load i8, ptr %5049, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg_mask(ptr noundef %5047, i32 noundef -268097947, i8 noundef signext %5050, i32 noundef 19, i32 noundef 18, i32 noundef 20, i32 noundef 7, i32 noundef 0)
  %5051 = load ptr, ptr %6, align 8, !tbaa !5
  %5052 = load ptr, ptr %9, align 8, !tbaa !5
  %5053 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5052, i32 0, i32 128
  %5054 = load i8, ptr %5053, align 4, !tbaa !11
  %5055 = load i32, ptr %34, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %5051, i32 noundef -259181021, i8 noundef signext %5054, i32 noundef 19, i32 noundef 18, i32 noundef 21, i32 noundef %5055)
  br label %5056

5056:                                             ; preds = %5038, %5035
  %5057 = load i32, ptr %24, align 4, !tbaa !9
  %5058 = icmp ugt i32 %5057, 0
  br i1 %5058, label %5059, label %5065

5059:                                             ; preds = %5056
  %5060 = load ptr, ptr %6, align 8, !tbaa !5
  %5061 = load i32, ptr %25, align 4, !tbaa !9
  %5062 = load ptr, ptr %9, align 8, !tbaa !5
  %5063 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5062, i32 0, i32 128
  %5064 = load i8, ptr %5063, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %5060, i32 noundef %5061, i8 noundef signext %5064, i32 noundef 16, i32 noundef 17, i32 noundef 8)
  br label %5065

5065:                                             ; preds = %5059, %5056
  %5066 = load i32, ptr %23, align 4, !tbaa !9
  %5067 = icmp ugt i32 %5066, 0
  br i1 %5067, label %5068, label %5074

5068:                                             ; preds = %5065
  %5069 = load ptr, ptr %6, align 8, !tbaa !5
  %5070 = load i32, ptr %25, align 4, !tbaa !9
  %5071 = load ptr, ptr %9, align 8, !tbaa !5
  %5072 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5071, i32 0, i32 128
  %5073 = load i8, ptr %5072, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %5069, i32 noundef %5070, i8 noundef signext %5073, i32 noundef 20, i32 noundef 21, i32 noundef 28)
  br label %5074

5074:                                             ; preds = %5068, %5065
  br label %5075

5075:                                             ; preds = %5074, %5019
  %5076 = load i32, ptr %24, align 4, !tbaa !9
  %5077 = icmp ugt i32 %5076, 0
  br i1 %5077, label %5078, label %5088

5078:                                             ; preds = %5075
  %5079 = load ptr, ptr %6, align 8, !tbaa !5
  %5080 = load ptr, ptr %9, align 8, !tbaa !5
  %5081 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5080, i32 0, i32 128
  %5082 = load i8, ptr %5081, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg_mask(ptr noundef %5079, i32 noundef -268097947, i8 noundef signext %5082, i32 noundef 5, i32 noundef 1, i32 noundef 16, i32 noundef 7, i32 noundef 0)
  %5083 = load ptr, ptr %6, align 8, !tbaa !5
  %5084 = load ptr, ptr %9, align 8, !tbaa !5
  %5085 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5084, i32 0, i32 128
  %5086 = load i8, ptr %5085, align 4, !tbaa !11
  %5087 = load i32, ptr %34, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %5083, i32 noundef -259181021, i8 noundef signext %5086, i32 noundef 5, i32 noundef 1, i32 noundef 17, i32 noundef %5087)
  br label %5088

5088:                                             ; preds = %5078, %5075
  %5089 = load i32, ptr %23, align 4, !tbaa !9
  %5090 = icmp ugt i32 %5089, 0
  br i1 %5090, label %5091, label %5109

5091:                                             ; preds = %5088
  %5092 = load ptr, ptr %6, align 8, !tbaa !5
  %5093 = load ptr, ptr %9, align 8, !tbaa !5
  %5094 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5093, i32 0, i32 128
  %5095 = load i8, ptr %5094, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %5092, i32 noundef 805574233, i8 noundef signext %5095, i32 noundef 1, i32 noundef 1, i32 noundef 18)
  %5096 = load ptr, ptr %6, align 8, !tbaa !5
  %5097 = load ptr, ptr %9, align 8, !tbaa !5
  %5098 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5097, i32 0, i32 128
  %5099 = load i8, ptr %5098, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %5096, i32 noundef 805574233, i8 noundef signext %5099, i32 noundef 5, i32 noundef 5, i32 noundef 19)
  %5100 = load ptr, ptr %6, align 8, !tbaa !5
  %5101 = load ptr, ptr %9, align 8, !tbaa !5
  %5102 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5101, i32 0, i32 128
  %5103 = load i8, ptr %5102, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg_mask(ptr noundef %5100, i32 noundef -268097947, i8 noundef signext %5103, i32 noundef 19, i32 noundef 18, i32 noundef 20, i32 noundef 7, i32 noundef 0)
  %5104 = load ptr, ptr %6, align 8, !tbaa !5
  %5105 = load ptr, ptr %9, align 8, !tbaa !5
  %5106 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5105, i32 0, i32 128
  %5107 = load i8, ptr %5106, align 4, !tbaa !11
  %5108 = load i32, ptr %34, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %5104, i32 noundef -259181021, i8 noundef signext %5107, i32 noundef 19, i32 noundef 18, i32 noundef 21, i32 noundef %5108)
  br label %5109

5109:                                             ; preds = %5091, %5088
  %5110 = load i32, ptr %24, align 4, !tbaa !9
  %5111 = icmp ugt i32 %5110, 0
  br i1 %5111, label %5112, label %5118

5112:                                             ; preds = %5109
  %5113 = load ptr, ptr %6, align 8, !tbaa !5
  %5114 = load i32, ptr %25, align 4, !tbaa !9
  %5115 = load ptr, ptr %9, align 8, !tbaa !5
  %5116 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5115, i32 0, i32 128
  %5117 = load i8, ptr %5116, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %5113, i32 noundef %5114, i8 noundef signext %5117, i32 noundef 16, i32 noundef 17, i32 noundef 1)
  br label %5118

5118:                                             ; preds = %5112, %5109
  %5119 = load i32, ptr %23, align 4, !tbaa !9
  %5120 = icmp ugt i32 %5119, 0
  br i1 %5120, label %5121, label %5127

5121:                                             ; preds = %5118
  %5122 = load ptr, ptr %6, align 8, !tbaa !5
  %5123 = load i32, ptr %25, align 4, !tbaa !9
  %5124 = load ptr, ptr %9, align 8, !tbaa !5
  %5125 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5124, i32 0, i32 128
  %5126 = load i8, ptr %5125, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %5122, i32 noundef %5123, i8 noundef signext %5126, i32 noundef 20, i32 noundef 21, i32 noundef 25)
  br label %5127

5127:                                             ; preds = %5121, %5118
  %5128 = load i32, ptr %22, align 4, !tbaa !9
  %5129 = icmp ugt i32 %5128, 8
  br i1 %5129, label %5130, label %5183

5130:                                             ; preds = %5127
  %5131 = load i32, ptr %24, align 4, !tbaa !9
  %5132 = icmp ugt i32 %5131, 0
  br i1 %5132, label %5133, label %5143

5133:                                             ; preds = %5130
  %5134 = load ptr, ptr %6, align 8, !tbaa !5
  %5135 = load ptr, ptr %9, align 8, !tbaa !5
  %5136 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5135, i32 0, i32 128
  %5137 = load i8, ptr %5136, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg_mask(ptr noundef %5134, i32 noundef -268097947, i8 noundef signext %5137, i32 noundef 13, i32 noundef 9, i32 noundef 16, i32 noundef 7, i32 noundef 0)
  %5138 = load ptr, ptr %6, align 8, !tbaa !5
  %5139 = load ptr, ptr %9, align 8, !tbaa !5
  %5140 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5139, i32 0, i32 128
  %5141 = load i8, ptr %5140, align 4, !tbaa !11
  %5142 = load i32, ptr %34, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %5138, i32 noundef -259181021, i8 noundef signext %5141, i32 noundef 13, i32 noundef 9, i32 noundef 17, i32 noundef %5142)
  br label %5143

5143:                                             ; preds = %5133, %5130
  %5144 = load i32, ptr %23, align 4, !tbaa !9
  %5145 = icmp ugt i32 %5144, 0
  br i1 %5145, label %5146, label %5164

5146:                                             ; preds = %5143
  %5147 = load ptr, ptr %6, align 8, !tbaa !5
  %5148 = load ptr, ptr %9, align 8, !tbaa !5
  %5149 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5148, i32 0, i32 128
  %5150 = load i8, ptr %5149, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %5147, i32 noundef 805574233, i8 noundef signext %5150, i32 noundef 9, i32 noundef 9, i32 noundef 18)
  %5151 = load ptr, ptr %6, align 8, !tbaa !5
  %5152 = load ptr, ptr %9, align 8, !tbaa !5
  %5153 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5152, i32 0, i32 128
  %5154 = load i8, ptr %5153, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %5151, i32 noundef 805574233, i8 noundef signext %5154, i32 noundef 13, i32 noundef 13, i32 noundef 19)
  %5155 = load ptr, ptr %6, align 8, !tbaa !5
  %5156 = load ptr, ptr %9, align 8, !tbaa !5
  %5157 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5156, i32 0, i32 128
  %5158 = load i8, ptr %5157, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg_mask(ptr noundef %5155, i32 noundef -268097947, i8 noundef signext %5158, i32 noundef 19, i32 noundef 18, i32 noundef 20, i32 noundef 7, i32 noundef 0)
  %5159 = load ptr, ptr %6, align 8, !tbaa !5
  %5160 = load ptr, ptr %9, align 8, !tbaa !5
  %5161 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5160, i32 0, i32 128
  %5162 = load i8, ptr %5161, align 4, !tbaa !11
  %5163 = load i32, ptr %34, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %5159, i32 noundef -259181021, i8 noundef signext %5162, i32 noundef 19, i32 noundef 18, i32 noundef 21, i32 noundef %5163)
  br label %5164

5164:                                             ; preds = %5146, %5143
  %5165 = load i32, ptr %24, align 4, !tbaa !9
  %5166 = icmp ugt i32 %5165, 0
  br i1 %5166, label %5167, label %5173

5167:                                             ; preds = %5164
  %5168 = load ptr, ptr %6, align 8, !tbaa !5
  %5169 = load i32, ptr %25, align 4, !tbaa !9
  %5170 = load ptr, ptr %9, align 8, !tbaa !5
  %5171 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5170, i32 0, i32 128
  %5172 = load i8, ptr %5171, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %5168, i32 noundef %5169, i8 noundef signext %5172, i32 noundef 16, i32 noundef 17, i32 noundef 9)
  br label %5173

5173:                                             ; preds = %5167, %5164
  %5174 = load i32, ptr %23, align 4, !tbaa !9
  %5175 = icmp ugt i32 %5174, 0
  br i1 %5175, label %5176, label %5182

5176:                                             ; preds = %5173
  %5177 = load ptr, ptr %6, align 8, !tbaa !5
  %5178 = load i32, ptr %25, align 4, !tbaa !9
  %5179 = load ptr, ptr %9, align 8, !tbaa !5
  %5180 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5179, i32 0, i32 128
  %5181 = load i8, ptr %5180, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %5177, i32 noundef %5178, i8 noundef signext %5181, i32 noundef 20, i32 noundef 21, i32 noundef 29)
  br label %5182

5182:                                             ; preds = %5176, %5173
  br label %5183

5183:                                             ; preds = %5182, %5127
  %5184 = load i32, ptr %24, align 4, !tbaa !9
  %5185 = icmp ugt i32 %5184, 0
  br i1 %5185, label %5186, label %5196

5186:                                             ; preds = %5183
  %5187 = load ptr, ptr %6, align 8, !tbaa !5
  %5188 = load ptr, ptr %9, align 8, !tbaa !5
  %5189 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5188, i32 0, i32 128
  %5190 = load i8, ptr %5189, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg_mask(ptr noundef %5187, i32 noundef -268097947, i8 noundef signext %5190, i32 noundef 6, i32 noundef 2, i32 noundef 16, i32 noundef 7, i32 noundef 0)
  %5191 = load ptr, ptr %6, align 8, !tbaa !5
  %5192 = load ptr, ptr %9, align 8, !tbaa !5
  %5193 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5192, i32 0, i32 128
  %5194 = load i8, ptr %5193, align 4, !tbaa !11
  %5195 = load i32, ptr %34, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %5191, i32 noundef -259181021, i8 noundef signext %5194, i32 noundef 6, i32 noundef 2, i32 noundef 17, i32 noundef %5195)
  br label %5196

5196:                                             ; preds = %5186, %5183
  %5197 = load i32, ptr %23, align 4, !tbaa !9
  %5198 = icmp ugt i32 %5197, 0
  br i1 %5198, label %5199, label %5217

5199:                                             ; preds = %5196
  %5200 = load ptr, ptr %6, align 8, !tbaa !5
  %5201 = load ptr, ptr %9, align 8, !tbaa !5
  %5202 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5201, i32 0, i32 128
  %5203 = load i8, ptr %5202, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %5200, i32 noundef 805574233, i8 noundef signext %5203, i32 noundef 2, i32 noundef 2, i32 noundef 18)
  %5204 = load ptr, ptr %6, align 8, !tbaa !5
  %5205 = load ptr, ptr %9, align 8, !tbaa !5
  %5206 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5205, i32 0, i32 128
  %5207 = load i8, ptr %5206, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %5204, i32 noundef 805574233, i8 noundef signext %5207, i32 noundef 6, i32 noundef 6, i32 noundef 19)
  %5208 = load ptr, ptr %6, align 8, !tbaa !5
  %5209 = load ptr, ptr %9, align 8, !tbaa !5
  %5210 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5209, i32 0, i32 128
  %5211 = load i8, ptr %5210, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg_mask(ptr noundef %5208, i32 noundef -268097947, i8 noundef signext %5211, i32 noundef 19, i32 noundef 18, i32 noundef 20, i32 noundef 7, i32 noundef 0)
  %5212 = load ptr, ptr %6, align 8, !tbaa !5
  %5213 = load ptr, ptr %9, align 8, !tbaa !5
  %5214 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5213, i32 0, i32 128
  %5215 = load i8, ptr %5214, align 4, !tbaa !11
  %5216 = load i32, ptr %34, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %5212, i32 noundef -259181021, i8 noundef signext %5215, i32 noundef 19, i32 noundef 18, i32 noundef 21, i32 noundef %5216)
  br label %5217

5217:                                             ; preds = %5199, %5196
  %5218 = load i32, ptr %24, align 4, !tbaa !9
  %5219 = icmp ugt i32 %5218, 0
  br i1 %5219, label %5220, label %5226

5220:                                             ; preds = %5217
  %5221 = load ptr, ptr %6, align 8, !tbaa !5
  %5222 = load i32, ptr %25, align 4, !tbaa !9
  %5223 = load ptr, ptr %9, align 8, !tbaa !5
  %5224 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5223, i32 0, i32 128
  %5225 = load i8, ptr %5224, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %5221, i32 noundef %5222, i8 noundef signext %5225, i32 noundef 16, i32 noundef 17, i32 noundef 2)
  br label %5226

5226:                                             ; preds = %5220, %5217
  %5227 = load i32, ptr %23, align 4, !tbaa !9
  %5228 = icmp ugt i32 %5227, 0
  br i1 %5228, label %5229, label %5235

5229:                                             ; preds = %5226
  %5230 = load ptr, ptr %6, align 8, !tbaa !5
  %5231 = load i32, ptr %25, align 4, !tbaa !9
  %5232 = load ptr, ptr %9, align 8, !tbaa !5
  %5233 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5232, i32 0, i32 128
  %5234 = load i8, ptr %5233, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %5230, i32 noundef %5231, i8 noundef signext %5234, i32 noundef 20, i32 noundef 21, i32 noundef 26)
  br label %5235

5235:                                             ; preds = %5229, %5226
  %5236 = load i32, ptr %22, align 4, !tbaa !9
  %5237 = icmp ugt i32 %5236, 9
  br i1 %5237, label %5238, label %5291

5238:                                             ; preds = %5235
  %5239 = load i32, ptr %24, align 4, !tbaa !9
  %5240 = icmp ugt i32 %5239, 0
  br i1 %5240, label %5241, label %5251

5241:                                             ; preds = %5238
  %5242 = load ptr, ptr %6, align 8, !tbaa !5
  %5243 = load ptr, ptr %9, align 8, !tbaa !5
  %5244 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5243, i32 0, i32 128
  %5245 = load i8, ptr %5244, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg_mask(ptr noundef %5242, i32 noundef -268097947, i8 noundef signext %5245, i32 noundef 14, i32 noundef 10, i32 noundef 16, i32 noundef 7, i32 noundef 0)
  %5246 = load ptr, ptr %6, align 8, !tbaa !5
  %5247 = load ptr, ptr %9, align 8, !tbaa !5
  %5248 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5247, i32 0, i32 128
  %5249 = load i8, ptr %5248, align 4, !tbaa !11
  %5250 = load i32, ptr %34, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %5246, i32 noundef -259181021, i8 noundef signext %5249, i32 noundef 14, i32 noundef 10, i32 noundef 17, i32 noundef %5250)
  br label %5251

5251:                                             ; preds = %5241, %5238
  %5252 = load i32, ptr %23, align 4, !tbaa !9
  %5253 = icmp ugt i32 %5252, 0
  br i1 %5253, label %5254, label %5272

5254:                                             ; preds = %5251
  %5255 = load ptr, ptr %6, align 8, !tbaa !5
  %5256 = load ptr, ptr %9, align 8, !tbaa !5
  %5257 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5256, i32 0, i32 128
  %5258 = load i8, ptr %5257, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %5255, i32 noundef 805574233, i8 noundef signext %5258, i32 noundef 10, i32 noundef 10, i32 noundef 18)
  %5259 = load ptr, ptr %6, align 8, !tbaa !5
  %5260 = load ptr, ptr %9, align 8, !tbaa !5
  %5261 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5260, i32 0, i32 128
  %5262 = load i8, ptr %5261, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %5259, i32 noundef 805574233, i8 noundef signext %5262, i32 noundef 14, i32 noundef 14, i32 noundef 19)
  %5263 = load ptr, ptr %6, align 8, !tbaa !5
  %5264 = load ptr, ptr %9, align 8, !tbaa !5
  %5265 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5264, i32 0, i32 128
  %5266 = load i8, ptr %5265, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg_mask(ptr noundef %5263, i32 noundef -268097947, i8 noundef signext %5266, i32 noundef 19, i32 noundef 18, i32 noundef 20, i32 noundef 7, i32 noundef 0)
  %5267 = load ptr, ptr %6, align 8, !tbaa !5
  %5268 = load ptr, ptr %9, align 8, !tbaa !5
  %5269 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5268, i32 0, i32 128
  %5270 = load i8, ptr %5269, align 4, !tbaa !11
  %5271 = load i32, ptr %34, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %5267, i32 noundef -259181021, i8 noundef signext %5270, i32 noundef 19, i32 noundef 18, i32 noundef 21, i32 noundef %5271)
  br label %5272

5272:                                             ; preds = %5254, %5251
  %5273 = load i32, ptr %24, align 4, !tbaa !9
  %5274 = icmp ugt i32 %5273, 0
  br i1 %5274, label %5275, label %5281

5275:                                             ; preds = %5272
  %5276 = load ptr, ptr %6, align 8, !tbaa !5
  %5277 = load i32, ptr %25, align 4, !tbaa !9
  %5278 = load ptr, ptr %9, align 8, !tbaa !5
  %5279 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5278, i32 0, i32 128
  %5280 = load i8, ptr %5279, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %5276, i32 noundef %5277, i8 noundef signext %5280, i32 noundef 16, i32 noundef 17, i32 noundef 10)
  br label %5281

5281:                                             ; preds = %5275, %5272
  %5282 = load i32, ptr %23, align 4, !tbaa !9
  %5283 = icmp ugt i32 %5282, 0
  br i1 %5283, label %5284, label %5290

5284:                                             ; preds = %5281
  %5285 = load ptr, ptr %6, align 8, !tbaa !5
  %5286 = load i32, ptr %25, align 4, !tbaa !9
  %5287 = load ptr, ptr %9, align 8, !tbaa !5
  %5288 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5287, i32 0, i32 128
  %5289 = load i8, ptr %5288, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %5285, i32 noundef %5286, i8 noundef signext %5289, i32 noundef 20, i32 noundef 21, i32 noundef 30)
  br label %5290

5290:                                             ; preds = %5284, %5281
  br label %5291

5291:                                             ; preds = %5290, %5235
  %5292 = load i32, ptr %24, align 4, !tbaa !9
  %5293 = icmp ugt i32 %5292, 0
  br i1 %5293, label %5294, label %5304

5294:                                             ; preds = %5291
  %5295 = load ptr, ptr %6, align 8, !tbaa !5
  %5296 = load ptr, ptr %9, align 8, !tbaa !5
  %5297 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5296, i32 0, i32 128
  %5298 = load i8, ptr %5297, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg_mask(ptr noundef %5295, i32 noundef -268097947, i8 noundef signext %5298, i32 noundef 7, i32 noundef 3, i32 noundef 16, i32 noundef 7, i32 noundef 0)
  %5299 = load ptr, ptr %6, align 8, !tbaa !5
  %5300 = load ptr, ptr %9, align 8, !tbaa !5
  %5301 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5300, i32 0, i32 128
  %5302 = load i8, ptr %5301, align 4, !tbaa !11
  %5303 = load i32, ptr %34, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %5299, i32 noundef -259181021, i8 noundef signext %5302, i32 noundef 7, i32 noundef 3, i32 noundef 17, i32 noundef %5303)
  br label %5304

5304:                                             ; preds = %5294, %5291
  %5305 = load i32, ptr %23, align 4, !tbaa !9
  %5306 = icmp ugt i32 %5305, 0
  br i1 %5306, label %5307, label %5325

5307:                                             ; preds = %5304
  %5308 = load ptr, ptr %6, align 8, !tbaa !5
  %5309 = load ptr, ptr %9, align 8, !tbaa !5
  %5310 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5309, i32 0, i32 128
  %5311 = load i8, ptr %5310, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %5308, i32 noundef 805574233, i8 noundef signext %5311, i32 noundef 3, i32 noundef 3, i32 noundef 18)
  %5312 = load ptr, ptr %6, align 8, !tbaa !5
  %5313 = load ptr, ptr %9, align 8, !tbaa !5
  %5314 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5313, i32 0, i32 128
  %5315 = load i8, ptr %5314, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %5312, i32 noundef 805574233, i8 noundef signext %5315, i32 noundef 7, i32 noundef 7, i32 noundef 19)
  %5316 = load ptr, ptr %6, align 8, !tbaa !5
  %5317 = load ptr, ptr %9, align 8, !tbaa !5
  %5318 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5317, i32 0, i32 128
  %5319 = load i8, ptr %5318, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg_mask(ptr noundef %5316, i32 noundef -268097947, i8 noundef signext %5319, i32 noundef 19, i32 noundef 18, i32 noundef 20, i32 noundef 7, i32 noundef 0)
  %5320 = load ptr, ptr %6, align 8, !tbaa !5
  %5321 = load ptr, ptr %9, align 8, !tbaa !5
  %5322 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5321, i32 0, i32 128
  %5323 = load i8, ptr %5322, align 4, !tbaa !11
  %5324 = load i32, ptr %34, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %5320, i32 noundef -259181021, i8 noundef signext %5323, i32 noundef 19, i32 noundef 18, i32 noundef 21, i32 noundef %5324)
  br label %5325

5325:                                             ; preds = %5307, %5304
  %5326 = load i32, ptr %24, align 4, !tbaa !9
  %5327 = icmp ugt i32 %5326, 0
  br i1 %5327, label %5328, label %5334

5328:                                             ; preds = %5325
  %5329 = load ptr, ptr %6, align 8, !tbaa !5
  %5330 = load i32, ptr %25, align 4, !tbaa !9
  %5331 = load ptr, ptr %9, align 8, !tbaa !5
  %5332 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5331, i32 0, i32 128
  %5333 = load i8, ptr %5332, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %5329, i32 noundef %5330, i8 noundef signext %5333, i32 noundef 16, i32 noundef 17, i32 noundef 3)
  br label %5334

5334:                                             ; preds = %5328, %5325
  %5335 = load i32, ptr %23, align 4, !tbaa !9
  %5336 = icmp ugt i32 %5335, 0
  br i1 %5336, label %5337, label %5343

5337:                                             ; preds = %5334
  %5338 = load ptr, ptr %6, align 8, !tbaa !5
  %5339 = load i32, ptr %25, align 4, !tbaa !9
  %5340 = load ptr, ptr %9, align 8, !tbaa !5
  %5341 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5340, i32 0, i32 128
  %5342 = load i8, ptr %5341, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %5338, i32 noundef %5339, i8 noundef signext %5342, i32 noundef 20, i32 noundef 21, i32 noundef 27)
  br label %5343

5343:                                             ; preds = %5337, %5334
  %5344 = load i32, ptr %22, align 4, !tbaa !9
  %5345 = icmp ugt i32 %5344, 10
  br i1 %5345, label %5346, label %5399

5346:                                             ; preds = %5343
  %5347 = load i32, ptr %24, align 4, !tbaa !9
  %5348 = icmp ugt i32 %5347, 0
  br i1 %5348, label %5349, label %5359

5349:                                             ; preds = %5346
  %5350 = load ptr, ptr %6, align 8, !tbaa !5
  %5351 = load ptr, ptr %9, align 8, !tbaa !5
  %5352 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5351, i32 0, i32 128
  %5353 = load i8, ptr %5352, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg_mask(ptr noundef %5350, i32 noundef -268097947, i8 noundef signext %5353, i32 noundef 15, i32 noundef 11, i32 noundef 16, i32 noundef 7, i32 noundef 0)
  %5354 = load ptr, ptr %6, align 8, !tbaa !5
  %5355 = load ptr, ptr %9, align 8, !tbaa !5
  %5356 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5355, i32 0, i32 128
  %5357 = load i8, ptr %5356, align 4, !tbaa !11
  %5358 = load i32, ptr %34, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %5354, i32 noundef -259181021, i8 noundef signext %5357, i32 noundef 15, i32 noundef 11, i32 noundef 17, i32 noundef %5358)
  br label %5359

5359:                                             ; preds = %5349, %5346
  %5360 = load i32, ptr %23, align 4, !tbaa !9
  %5361 = icmp ugt i32 %5360, 0
  br i1 %5361, label %5362, label %5380

5362:                                             ; preds = %5359
  %5363 = load ptr, ptr %6, align 8, !tbaa !5
  %5364 = load ptr, ptr %9, align 8, !tbaa !5
  %5365 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5364, i32 0, i32 128
  %5366 = load i8, ptr %5365, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %5363, i32 noundef 805574233, i8 noundef signext %5366, i32 noundef 11, i32 noundef 11, i32 noundef 18)
  %5367 = load ptr, ptr %6, align 8, !tbaa !5
  %5368 = load ptr, ptr %9, align 8, !tbaa !5
  %5369 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5368, i32 0, i32 128
  %5370 = load i8, ptr %5369, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %5367, i32 noundef 805574233, i8 noundef signext %5370, i32 noundef 15, i32 noundef 15, i32 noundef 19)
  %5371 = load ptr, ptr %6, align 8, !tbaa !5
  %5372 = load ptr, ptr %9, align 8, !tbaa !5
  %5373 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5372, i32 0, i32 128
  %5374 = load i8, ptr %5373, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg_mask(ptr noundef %5371, i32 noundef -268097947, i8 noundef signext %5374, i32 noundef 19, i32 noundef 18, i32 noundef 20, i32 noundef 7, i32 noundef 0)
  %5375 = load ptr, ptr %6, align 8, !tbaa !5
  %5376 = load ptr, ptr %9, align 8, !tbaa !5
  %5377 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5376, i32 0, i32 128
  %5378 = load i8, ptr %5377, align 4, !tbaa !11
  %5379 = load i32, ptr %34, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %5375, i32 noundef -259181021, i8 noundef signext %5378, i32 noundef 19, i32 noundef 18, i32 noundef 21, i32 noundef %5379)
  br label %5380

5380:                                             ; preds = %5362, %5359
  %5381 = load i32, ptr %24, align 4, !tbaa !9
  %5382 = icmp ugt i32 %5381, 0
  br i1 %5382, label %5383, label %5389

5383:                                             ; preds = %5380
  %5384 = load ptr, ptr %6, align 8, !tbaa !5
  %5385 = load i32, ptr %25, align 4, !tbaa !9
  %5386 = load ptr, ptr %9, align 8, !tbaa !5
  %5387 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5386, i32 0, i32 128
  %5388 = load i8, ptr %5387, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %5384, i32 noundef %5385, i8 noundef signext %5388, i32 noundef 16, i32 noundef 17, i32 noundef 11)
  br label %5389

5389:                                             ; preds = %5383, %5380
  %5390 = load i32, ptr %23, align 4, !tbaa !9
  %5391 = icmp ugt i32 %5390, 0
  br i1 %5391, label %5392, label %5398

5392:                                             ; preds = %5389
  %5393 = load ptr, ptr %6, align 8, !tbaa !5
  %5394 = load i32, ptr %25, align 4, !tbaa !9
  %5395 = load ptr, ptr %9, align 8, !tbaa !5
  %5396 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5395, i32 0, i32 128
  %5397 = load i8, ptr %5396, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %5393, i32 noundef %5394, i8 noundef signext %5397, i32 noundef 20, i32 noundef 21, i32 noundef 31)
  br label %5398

5398:                                             ; preds = %5392, %5389
  br label %5399

5399:                                             ; preds = %5398, %5343
  %5400 = load ptr, ptr %6, align 8, !tbaa !5
  %5401 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %5400, i32 0, i32 6
  %5402 = load i32, ptr %5401, align 4, !tbaa !20
  %5403 = icmp uge i32 %5402, 1101
  br i1 %5403, label %5404, label %5541

5404:                                             ; preds = %5399
  %5405 = load i32, ptr %24, align 4, !tbaa !9
  %5406 = icmp ugt i32 %5405, 0
  br i1 %5406, label %5407, label %5421

5407:                                             ; preds = %5404
  %5408 = load ptr, ptr %6, align 8, !tbaa !5
  %5409 = load ptr, ptr %9, align 8, !tbaa !5
  %5410 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5409, i32 0, i32 128
  %5411 = load i8, ptr %5410, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %5408, i32 noundef -259181021, i8 noundef signext %5411, i32 noundef 8, i32 noundef 0, i32 noundef 16, i32 noundef 136)
  %5412 = load ptr, ptr %6, align 8, !tbaa !5
  %5413 = load ptr, ptr %9, align 8, !tbaa !5
  %5414 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5413, i32 0, i32 128
  %5415 = load i8, ptr %5414, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %5412, i32 noundef -259181021, i8 noundef signext %5415, i32 noundef 8, i32 noundef 0, i32 noundef 17, i32 noundef 221)
  %5416 = load ptr, ptr %6, align 8, !tbaa !5
  %5417 = load i32, ptr %25, align 4, !tbaa !9
  %5418 = load ptr, ptr %9, align 8, !tbaa !5
  %5419 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5418, i32 0, i32 128
  %5420 = load i8, ptr %5419, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %5416, i32 noundef %5417, i8 noundef signext %5420, i32 noundef 16, i32 noundef 17, i32 noundef 0)
  br label %5421

5421:                                             ; preds = %5407, %5404
  %5422 = load i32, ptr %23, align 4, !tbaa !9
  %5423 = icmp ugt i32 %5422, 0
  br i1 %5423, label %5424, label %5438

5424:                                             ; preds = %5421
  %5425 = load ptr, ptr %6, align 8, !tbaa !5
  %5426 = load ptr, ptr %9, align 8, !tbaa !5
  %5427 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5426, i32 0, i32 128
  %5428 = load i8, ptr %5427, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %5425, i32 noundef -259181021, i8 noundef signext %5428, i32 noundef 28, i32 noundef 24, i32 noundef 20, i32 noundef 136)
  %5429 = load ptr, ptr %6, align 8, !tbaa !5
  %5430 = load ptr, ptr %9, align 8, !tbaa !5
  %5431 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5430, i32 0, i32 128
  %5432 = load i8, ptr %5431, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %5429, i32 noundef -259181021, i8 noundef signext %5432, i32 noundef 28, i32 noundef 24, i32 noundef 21, i32 noundef 221)
  %5433 = load ptr, ptr %6, align 8, !tbaa !5
  %5434 = load i32, ptr %25, align 4, !tbaa !9
  %5435 = load ptr, ptr %9, align 8, !tbaa !5
  %5436 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5435, i32 0, i32 128
  %5437 = load i8, ptr %5436, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %5433, i32 noundef %5434, i8 noundef signext %5437, i32 noundef 20, i32 noundef 21, i32 noundef 24)
  br label %5438

5438:                                             ; preds = %5424, %5421
  %5439 = load i32, ptr %24, align 4, !tbaa !9
  %5440 = icmp ugt i32 %5439, 0
  br i1 %5440, label %5441, label %5455

5441:                                             ; preds = %5438
  %5442 = load ptr, ptr %6, align 8, !tbaa !5
  %5443 = load ptr, ptr %9, align 8, !tbaa !5
  %5444 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5443, i32 0, i32 128
  %5445 = load i8, ptr %5444, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %5442, i32 noundef -259181021, i8 noundef signext %5445, i32 noundef 9, i32 noundef 1, i32 noundef 16, i32 noundef 136)
  %5446 = load ptr, ptr %6, align 8, !tbaa !5
  %5447 = load ptr, ptr %9, align 8, !tbaa !5
  %5448 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5447, i32 0, i32 128
  %5449 = load i8, ptr %5448, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %5446, i32 noundef -259181021, i8 noundef signext %5449, i32 noundef 9, i32 noundef 1, i32 noundef 17, i32 noundef 221)
  %5450 = load ptr, ptr %6, align 8, !tbaa !5
  %5451 = load i32, ptr %25, align 4, !tbaa !9
  %5452 = load ptr, ptr %9, align 8, !tbaa !5
  %5453 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5452, i32 0, i32 128
  %5454 = load i8, ptr %5453, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %5450, i32 noundef %5451, i8 noundef signext %5454, i32 noundef 16, i32 noundef 17, i32 noundef 1)
  br label %5455

5455:                                             ; preds = %5441, %5438
  %5456 = load i32, ptr %23, align 4, !tbaa !9
  %5457 = icmp ugt i32 %5456, 0
  br i1 %5457, label %5458, label %5472

5458:                                             ; preds = %5455
  %5459 = load ptr, ptr %6, align 8, !tbaa !5
  %5460 = load ptr, ptr %9, align 8, !tbaa !5
  %5461 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5460, i32 0, i32 128
  %5462 = load i8, ptr %5461, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %5459, i32 noundef -259181021, i8 noundef signext %5462, i32 noundef 29, i32 noundef 25, i32 noundef 20, i32 noundef 136)
  %5463 = load ptr, ptr %6, align 8, !tbaa !5
  %5464 = load ptr, ptr %9, align 8, !tbaa !5
  %5465 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5464, i32 0, i32 128
  %5466 = load i8, ptr %5465, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %5463, i32 noundef -259181021, i8 noundef signext %5466, i32 noundef 29, i32 noundef 25, i32 noundef 21, i32 noundef 221)
  %5467 = load ptr, ptr %6, align 8, !tbaa !5
  %5468 = load i32, ptr %25, align 4, !tbaa !9
  %5469 = load ptr, ptr %9, align 8, !tbaa !5
  %5470 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5469, i32 0, i32 128
  %5471 = load i8, ptr %5470, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %5467, i32 noundef %5468, i8 noundef signext %5471, i32 noundef 20, i32 noundef 21, i32 noundef 25)
  br label %5472

5472:                                             ; preds = %5458, %5455
  %5473 = load i32, ptr %24, align 4, !tbaa !9
  %5474 = icmp ugt i32 %5473, 0
  br i1 %5474, label %5475, label %5489

5475:                                             ; preds = %5472
  %5476 = load ptr, ptr %6, align 8, !tbaa !5
  %5477 = load ptr, ptr %9, align 8, !tbaa !5
  %5478 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5477, i32 0, i32 128
  %5479 = load i8, ptr %5478, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %5476, i32 noundef -259181021, i8 noundef signext %5479, i32 noundef 10, i32 noundef 2, i32 noundef 16, i32 noundef 136)
  %5480 = load ptr, ptr %6, align 8, !tbaa !5
  %5481 = load ptr, ptr %9, align 8, !tbaa !5
  %5482 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5481, i32 0, i32 128
  %5483 = load i8, ptr %5482, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %5480, i32 noundef -259181021, i8 noundef signext %5483, i32 noundef 10, i32 noundef 2, i32 noundef 17, i32 noundef 221)
  %5484 = load ptr, ptr %6, align 8, !tbaa !5
  %5485 = load i32, ptr %25, align 4, !tbaa !9
  %5486 = load ptr, ptr %9, align 8, !tbaa !5
  %5487 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5486, i32 0, i32 128
  %5488 = load i8, ptr %5487, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %5484, i32 noundef %5485, i8 noundef signext %5488, i32 noundef 16, i32 noundef 17, i32 noundef 2)
  br label %5489

5489:                                             ; preds = %5475, %5472
  %5490 = load i32, ptr %23, align 4, !tbaa !9
  %5491 = icmp ugt i32 %5490, 0
  br i1 %5491, label %5492, label %5506

5492:                                             ; preds = %5489
  %5493 = load ptr, ptr %6, align 8, !tbaa !5
  %5494 = load ptr, ptr %9, align 8, !tbaa !5
  %5495 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5494, i32 0, i32 128
  %5496 = load i8, ptr %5495, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %5493, i32 noundef -259181021, i8 noundef signext %5496, i32 noundef 30, i32 noundef 26, i32 noundef 20, i32 noundef 136)
  %5497 = load ptr, ptr %6, align 8, !tbaa !5
  %5498 = load ptr, ptr %9, align 8, !tbaa !5
  %5499 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5498, i32 0, i32 128
  %5500 = load i8, ptr %5499, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %5497, i32 noundef -259181021, i8 noundef signext %5500, i32 noundef 30, i32 noundef 26, i32 noundef 21, i32 noundef 221)
  %5501 = load ptr, ptr %6, align 8, !tbaa !5
  %5502 = load i32, ptr %25, align 4, !tbaa !9
  %5503 = load ptr, ptr %9, align 8, !tbaa !5
  %5504 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5503, i32 0, i32 128
  %5505 = load i8, ptr %5504, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %5501, i32 noundef %5502, i8 noundef signext %5505, i32 noundef 20, i32 noundef 21, i32 noundef 26)
  br label %5506

5506:                                             ; preds = %5492, %5489
  %5507 = load i32, ptr %24, align 4, !tbaa !9
  %5508 = icmp ugt i32 %5507, 0
  br i1 %5508, label %5509, label %5523

5509:                                             ; preds = %5506
  %5510 = load ptr, ptr %6, align 8, !tbaa !5
  %5511 = load ptr, ptr %9, align 8, !tbaa !5
  %5512 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5511, i32 0, i32 128
  %5513 = load i8, ptr %5512, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %5510, i32 noundef -259181021, i8 noundef signext %5513, i32 noundef 11, i32 noundef 3, i32 noundef 16, i32 noundef 136)
  %5514 = load ptr, ptr %6, align 8, !tbaa !5
  %5515 = load ptr, ptr %9, align 8, !tbaa !5
  %5516 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5515, i32 0, i32 128
  %5517 = load i8, ptr %5516, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %5514, i32 noundef -259181021, i8 noundef signext %5517, i32 noundef 11, i32 noundef 3, i32 noundef 17, i32 noundef 221)
  %5518 = load ptr, ptr %6, align 8, !tbaa !5
  %5519 = load i32, ptr %25, align 4, !tbaa !9
  %5520 = load ptr, ptr %9, align 8, !tbaa !5
  %5521 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5520, i32 0, i32 128
  %5522 = load i8, ptr %5521, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %5518, i32 noundef %5519, i8 noundef signext %5522, i32 noundef 16, i32 noundef 17, i32 noundef 3)
  br label %5523

5523:                                             ; preds = %5509, %5506
  %5524 = load i32, ptr %23, align 4, !tbaa !9
  %5525 = icmp ugt i32 %5524, 0
  br i1 %5525, label %5526, label %5540

5526:                                             ; preds = %5523
  %5527 = load ptr, ptr %6, align 8, !tbaa !5
  %5528 = load ptr, ptr %9, align 8, !tbaa !5
  %5529 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5528, i32 0, i32 128
  %5530 = load i8, ptr %5529, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %5527, i32 noundef -259181021, i8 noundef signext %5530, i32 noundef 31, i32 noundef 27, i32 noundef 20, i32 noundef 136)
  %5531 = load ptr, ptr %6, align 8, !tbaa !5
  %5532 = load ptr, ptr %9, align 8, !tbaa !5
  %5533 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5532, i32 0, i32 128
  %5534 = load i8, ptr %5533, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %5531, i32 noundef -259181021, i8 noundef signext %5534, i32 noundef 31, i32 noundef 27, i32 noundef 21, i32 noundef 221)
  %5535 = load ptr, ptr %6, align 8, !tbaa !5
  %5536 = load i32, ptr %25, align 4, !tbaa !9
  %5537 = load ptr, ptr %9, align 8, !tbaa !5
  %5538 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5537, i32 0, i32 128
  %5539 = load i8, ptr %5538, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %5535, i32 noundef %5536, i8 noundef signext %5539, i32 noundef 20, i32 noundef 21, i32 noundef 27)
  br label %5540

5540:                                             ; preds = %5526, %5523
  br label %5541

5541:                                             ; preds = %5540, %5399
  %5542 = load i32, ptr %24, align 4, !tbaa !9
  %5543 = icmp ugt i32 %5542, 0
  br i1 %5543, label %5544, label %5558

5544:                                             ; preds = %5541
  %5545 = load ptr, ptr %6, align 8, !tbaa !5
  %5546 = load ptr, ptr %9, align 8, !tbaa !5
  %5547 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5546, i32 0, i32 128
  %5548 = load i8, ptr %5547, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %5545, i32 noundef 806098630, i8 noundef signext %5548, i32 noundef 1, i32 noundef 0, i32 noundef 16, i32 noundef 68)
  %5549 = load ptr, ptr %6, align 8, !tbaa !5
  %5550 = load ptr, ptr %9, align 8, !tbaa !5
  %5551 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5550, i32 0, i32 128
  %5552 = load i8, ptr %5551, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %5549, i32 noundef 806098630, i8 noundef signext %5552, i32 noundef 1, i32 noundef 0, i32 noundef 17, i32 noundef 238)
  %5553 = load ptr, ptr %6, align 8, !tbaa !5
  %5554 = load i32, ptr %25, align 4, !tbaa !9
  %5555 = load ptr, ptr %9, align 8, !tbaa !5
  %5556 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5555, i32 0, i32 128
  %5557 = load i8, ptr %5556, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %5553, i32 noundef %5554, i8 noundef signext %5557, i32 noundef 16, i32 noundef 17, i32 noundef 0)
  br label %5558

5558:                                             ; preds = %5544, %5541
  %5559 = load i32, ptr %23, align 4, !tbaa !9
  %5560 = icmp ugt i32 %5559, 0
  br i1 %5560, label %5561, label %5575

5561:                                             ; preds = %5558
  %5562 = load ptr, ptr %6, align 8, !tbaa !5
  %5563 = load ptr, ptr %9, align 8, !tbaa !5
  %5564 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5563, i32 0, i32 128
  %5565 = load i8, ptr %5564, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %5562, i32 noundef 806098630, i8 noundef signext %5565, i32 noundef 25, i32 noundef 24, i32 noundef 20, i32 noundef 68)
  %5566 = load ptr, ptr %6, align 8, !tbaa !5
  %5567 = load ptr, ptr %9, align 8, !tbaa !5
  %5568 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5567, i32 0, i32 128
  %5569 = load i8, ptr %5568, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %5566, i32 noundef 806098630, i8 noundef signext %5569, i32 noundef 25, i32 noundef 24, i32 noundef 21, i32 noundef 238)
  %5570 = load ptr, ptr %6, align 8, !tbaa !5
  %5571 = load i32, ptr %25, align 4, !tbaa !9
  %5572 = load ptr, ptr %9, align 8, !tbaa !5
  %5573 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5572, i32 0, i32 128
  %5574 = load i8, ptr %5573, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %5570, i32 noundef %5571, i8 noundef signext %5574, i32 noundef 20, i32 noundef 21, i32 noundef 24)
  br label %5575

5575:                                             ; preds = %5561, %5558
  %5576 = load i32, ptr %24, align 4, !tbaa !9
  %5577 = icmp ugt i32 %5576, 0
  br i1 %5577, label %5578, label %5592

5578:                                             ; preds = %5575
  %5579 = load ptr, ptr %6, align 8, !tbaa !5
  %5580 = load ptr, ptr %9, align 8, !tbaa !5
  %5581 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5580, i32 0, i32 128
  %5582 = load i8, ptr %5581, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %5579, i32 noundef 806098630, i8 noundef signext %5582, i32 noundef 3, i32 noundef 2, i32 noundef 16, i32 noundef 68)
  %5583 = load ptr, ptr %6, align 8, !tbaa !5
  %5584 = load ptr, ptr %9, align 8, !tbaa !5
  %5585 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5584, i32 0, i32 128
  %5586 = load i8, ptr %5585, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %5583, i32 noundef 806098630, i8 noundef signext %5586, i32 noundef 3, i32 noundef 2, i32 noundef 17, i32 noundef 238)
  %5587 = load ptr, ptr %6, align 8, !tbaa !5
  %5588 = load i32, ptr %25, align 4, !tbaa !9
  %5589 = load ptr, ptr %9, align 8, !tbaa !5
  %5590 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5589, i32 0, i32 128
  %5591 = load i8, ptr %5590, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %5587, i32 noundef %5588, i8 noundef signext %5591, i32 noundef 16, i32 noundef 17, i32 noundef 2)
  br label %5592

5592:                                             ; preds = %5578, %5575
  %5593 = load i32, ptr %23, align 4, !tbaa !9
  %5594 = icmp ugt i32 %5593, 0
  br i1 %5594, label %5595, label %5609

5595:                                             ; preds = %5592
  %5596 = load ptr, ptr %6, align 8, !tbaa !5
  %5597 = load ptr, ptr %9, align 8, !tbaa !5
  %5598 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5597, i32 0, i32 128
  %5599 = load i8, ptr %5598, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %5596, i32 noundef 806098630, i8 noundef signext %5599, i32 noundef 27, i32 noundef 26, i32 noundef 20, i32 noundef 68)
  %5600 = load ptr, ptr %6, align 8, !tbaa !5
  %5601 = load ptr, ptr %9, align 8, !tbaa !5
  %5602 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5601, i32 0, i32 128
  %5603 = load i8, ptr %5602, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %5600, i32 noundef 806098630, i8 noundef signext %5603, i32 noundef 27, i32 noundef 26, i32 noundef 21, i32 noundef 238)
  %5604 = load ptr, ptr %6, align 8, !tbaa !5
  %5605 = load i32, ptr %25, align 4, !tbaa !9
  %5606 = load ptr, ptr %9, align 8, !tbaa !5
  %5607 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5606, i32 0, i32 128
  %5608 = load i8, ptr %5607, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %5604, i32 noundef %5605, i8 noundef signext %5608, i32 noundef 20, i32 noundef 21, i32 noundef 26)
  br label %5609

5609:                                             ; preds = %5595, %5592
  %5610 = load i32, ptr %24, align 4, !tbaa !9
  %5611 = icmp ugt i32 %5610, 0
  br i1 %5611, label %5612, label %6152

5612:                                             ; preds = %5609
  %5613 = load ptr, ptr %6, align 8, !tbaa !5
  %5614 = load ptr, ptr %9, align 8, !tbaa !5
  %5615 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5614, i32 0, i32 128
  %5616 = load i8, ptr %5615, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %5613, i32 noundef 806098630, i8 noundef signext %5616, i32 noundef 2, i32 noundef 0, i32 noundef 16, i32 noundef 136)
  %5617 = load ptr, ptr %6, align 8, !tbaa !5
  %5618 = load ptr, ptr %9, align 8, !tbaa !5
  %5619 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5618, i32 0, i32 128
  %5620 = load i8, ptr %5619, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %5617, i32 noundef 806098630, i8 noundef signext %5620, i32 noundef 2, i32 noundef 0, i32 noundef 17, i32 noundef 221)
  %5621 = load ptr, ptr %6, align 8, !tbaa !5
  %5622 = load i32, ptr %25, align 4, !tbaa !9
  %5623 = load ptr, ptr %9, align 8, !tbaa !5
  %5624 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5623, i32 0, i32 128
  %5625 = load i8, ptr %5624, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %5621, i32 noundef %5622, i8 noundef signext %5625, i32 noundef 16, i32 noundef 17, i32 noundef 0)
  %5626 = load i32, ptr %12, align 4, !tbaa !9
  %5627 = icmp eq i32 %5626, 0
  br i1 %5627, label %5628, label %5753

5628:                                             ; preds = %5612
  %5629 = load i32, ptr %53, align 4, !tbaa !9
  %5630 = icmp eq i32 %5629, 0
  br i1 %5630, label %5631, label %5753

5631:                                             ; preds = %5628
  %5632 = load ptr, ptr %10, align 8, !tbaa !5
  %5633 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %5632, i32 noundef 3)
  %5634 = icmp eq i32 4, %5633
  br i1 %5634, label %5635, label %5648

5635:                                             ; preds = %5631
  %5636 = load ptr, ptr %6, align 8, !tbaa !5
  %5637 = load ptr, ptr %9, align 8, !tbaa !5
  %5638 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5637, i32 0, i32 0
  %5639 = load i32, ptr %5638, align 4, !tbaa !40
  %5640 = load i32, ptr %56, align 4, !tbaa !9
  %5641 = load ptr, ptr %9, align 8, !tbaa !5
  %5642 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5641, i32 0, i32 128
  %5643 = load i8, ptr %5642, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_move(ptr noundef %5636, i32 noundef %5639, i32 noundef 537138704, i32 noundef %5640, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %5643, i32 noundef 0, i32 noundef 2, i32 noundef 0, i32 noundef 1)
  %5644 = load ptr, ptr %6, align 8, !tbaa !5
  %5645 = load ptr, ptr %9, align 8, !tbaa !5
  %5646 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5645, i32 0, i32 128
  %5647 = load i8, ptr %5646, align 4, !tbaa !11
  call void @libxsmm_generator_vcvtneps2bf8_avx512_preppedstack(ptr noundef %5644, i8 noundef signext %5647, i32 noundef 0, i32 noundef 0, i32 noundef 3, i32 noundef 4, i32 noundef 3, i32 noundef 4, i32 noundef 0, i32 noundef 0)
  br label %5743

5648:                                             ; preds = %5631
  %5649 = load ptr, ptr %10, align 8, !tbaa !5
  %5650 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %5649, i32 noundef 3)
  %5651 = icmp eq i32 5, %5650
  br i1 %5651, label %5652, label %5672

5652:                                             ; preds = %5648
  %5653 = load ptr, ptr %6, align 8, !tbaa !5
  %5654 = load ptr, ptr %9, align 8, !tbaa !5
  %5655 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5654, i32 0, i32 0
  %5656 = load i32, ptr %5655, align 4, !tbaa !40
  %5657 = load i32, ptr %56, align 4, !tbaa !9
  %5658 = load ptr, ptr %9, align 8, !tbaa !5
  %5659 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5658, i32 0, i32 128
  %5660 = load i8, ptr %5659, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_move(ptr noundef %5653, i32 noundef %5656, i32 noundef 537138704, i32 noundef %5657, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %5660, i32 noundef 0, i32 noundef 2, i32 noundef 0, i32 noundef 1)
  %5661 = load ptr, ptr %6, align 8, !tbaa !5
  %5662 = load ptr, ptr %9, align 8, !tbaa !5
  %5663 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5662, i32 0, i32 128
  %5664 = load i8, ptr %5663, align 4, !tbaa !11
  %5665 = load i32, ptr %35, align 4, !tbaa !9
  %5666 = load i32, ptr %36, align 4, !tbaa !9
  %5667 = load i32, ptr %37, align 4, !tbaa !9
  %5668 = load i32, ptr %38, align 4, !tbaa !9
  %5669 = load i32, ptr %39, align 4, !tbaa !9
  %5670 = load i32, ptr %40, align 4, !tbaa !9
  %5671 = load i32, ptr %41, align 4, !tbaa !9
  call void @libxsmm_generator_vcvtf32_to_hf8_avx512_preppedstack(ptr noundef %5661, i8 noundef signext %5664, i32 noundef 0, i32 noundef 0, i32 noundef %5665, i32 noundef %5666, i32 noundef %5667, i32 noundef %5668, i32 noundef %5669, i32 noundef %5670, i32 noundef %5671)
  br label %5742

5672:                                             ; preds = %5648
  %5673 = load ptr, ptr %10, align 8, !tbaa !5
  %5674 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %5673, i32 noundef 3)
  %5675 = icmp eq i32 3, %5674
  br i1 %5675, label %5676, label %5702

5676:                                             ; preds = %5672
  %5677 = load ptr, ptr %6, align 8, !tbaa !5
  %5678 = load ptr, ptr %9, align 8, !tbaa !5
  %5679 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5678, i32 0, i32 0
  %5680 = load i32, ptr %5679, align 4, !tbaa !40
  %5681 = load i32, ptr %56, align 4, !tbaa !9
  %5682 = load ptr, ptr %9, align 8, !tbaa !5
  %5683 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5682, i32 0, i32 128
  %5684 = load i8, ptr %5683, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_move(ptr noundef %5677, i32 noundef %5680, i32 noundef 537138704, i32 noundef %5681, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %5684, i32 noundef 0, i32 noundef 2, i32 noundef 0, i32 noundef 1)
  %5685 = load ptr, ptr %6, align 8, !tbaa !5
  %5686 = load ptr, ptr %9, align 8, !tbaa !5
  %5687 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5686, i32 0, i32 128
  %5688 = load i8, ptr %5687, align 4, !tbaa !11
  %5689 = load ptr, ptr %6, align 8, !tbaa !5
  %5690 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %5689, i32 0, i32 6
  %5691 = load i32, ptr %5690, align 4, !tbaa !20
  %5692 = icmp ult i32 %5691, 1101
  %5693 = zext i1 %5692 to i64
  %5694 = select i1 %5692, i32 0, i32 1
  %5695 = load ptr, ptr %6, align 8, !tbaa !5
  %5696 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %5695, i32 0, i32 6
  %5697 = load i32, ptr %5696, align 4, !tbaa !20
  %5698 = icmp ult i32 %5697, 1101
  %5699 = zext i1 %5698 to i64
  %5700 = select i1 %5698, i32 0, i32 1
  %5701 = trunc i32 %5700 to i8
  call void @libxsmm_x86_instruction_vec_compute_2reg_mask_sae_imm8(ptr noundef %5685, i32 noundef 671954205, i8 noundef signext %5688, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef %5694, i8 noundef zeroext %5701, i32 noundef 0)
  br label %5741

5702:                                             ; preds = %5672
  %5703 = load ptr, ptr %10, align 8, !tbaa !5
  %5704 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %5703, i32 noundef 3)
  %5705 = icmp eq i32 2, %5704
  br i1 %5705, label %5706, label %5740

5706:                                             ; preds = %5702
  %5707 = load ptr, ptr %6, align 8, !tbaa !5
  %5708 = load ptr, ptr %9, align 8, !tbaa !5
  %5709 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5708, i32 0, i32 0
  %5710 = load i32, ptr %5709, align 4, !tbaa !40
  %5711 = load i32, ptr %56, align 4, !tbaa !9
  %5712 = load ptr, ptr %9, align 8, !tbaa !5
  %5713 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5712, i32 0, i32 128
  %5714 = load i8, ptr %5713, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_move(ptr noundef %5707, i32 noundef %5710, i32 noundef 537138704, i32 noundef %5711, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %5714, i32 noundef 0, i32 noundef 2, i32 noundef 0, i32 noundef 1)
  %5715 = load ptr, ptr %6, align 8, !tbaa !5
  %5716 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %5715, i32 0, i32 6
  %5717 = load i32, ptr %5716, align 4, !tbaa !20
  %5718 = icmp ult i32 %5717, 1103
  br i1 %5718, label %5719, label %5734

5719:                                             ; preds = %5706
  %5720 = load ptr, ptr %6, align 8, !tbaa !5
  %5721 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %5720, i32 0, i32 6
  %5722 = load i32, ptr %5721, align 4, !tbaa !20
  %5723 = icmp ne i32 %5722, 1053
  br i1 %5723, label %5724, label %5734

5724:                                             ; preds = %5719
  %5725 = load ptr, ptr %6, align 8, !tbaa !5
  %5726 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %5725, i32 0, i32 6
  %5727 = load i32, ptr %5726, align 4, !tbaa !20
  %5728 = icmp ne i32 %5727, 1008
  br i1 %5728, label %5729, label %5734

5729:                                             ; preds = %5724
  %5730 = load ptr, ptr %6, align 8, !tbaa !5
  %5731 = load ptr, ptr %9, align 8, !tbaa !5
  %5732 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5731, i32 0, i32 128
  %5733 = load i8, ptr %5732, align 4, !tbaa !11
  call void @libxsmm_generator_vcvtneps2bf16_avx512_preppedstack(ptr noundef %5730, i8 noundef signext %5733, i32 noundef 0, i32 noundef 0, i32 noundef 3, i32 noundef 4, i32 noundef 3, i32 noundef 4, i32 noundef 0)
  br label %5739

5734:                                             ; preds = %5724, %5719, %5706
  %5735 = load ptr, ptr %6, align 8, !tbaa !5
  %5736 = load ptr, ptr %9, align 8, !tbaa !5
  %5737 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5736, i32 0, i32 128
  %5738 = load i8, ptr %5737, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_2reg(ptr noundef %5735, i32 noundef 537273970, i8 noundef signext %5738, i32 noundef 0, i32 noundef 0)
  br label %5739

5739:                                             ; preds = %5734, %5729
  br label %5740

5740:                                             ; preds = %5739, %5702
  br label %5741

5741:                                             ; preds = %5740, %5676
  br label %5742

5742:                                             ; preds = %5741, %5652
  br label %5743

5743:                                             ; preds = %5742, %5635
  %5744 = load ptr, ptr %6, align 8, !tbaa !5
  %5745 = load ptr, ptr %9, align 8, !tbaa !5
  %5746 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5745, i32 0, i32 0
  %5747 = load i32, ptr %5746, align 4, !tbaa !40
  %5748 = load i32, ptr %46, align 4, !tbaa !9
  %5749 = load ptr, ptr %8, align 8, !tbaa !5
  %5750 = getelementptr inbounds %struct.libxsmm_mateltwise_gp_reg_mapping_struct, ptr %5749, i32 0, i32 16
  %5751 = load i32, ptr %5750, align 4, !tbaa !26
  %5752 = load i8, ptr %43, align 1, !tbaa !13
  call void @libxsmm_x86_instruction_vec_move(ptr noundef %5744, i32 noundef %5747, i32 noundef %5748, i32 noundef %5751, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %5752, i32 noundef 0, i32 noundef 2, i32 noundef 0, i32 noundef 1)
  br label %6151

5753:                                             ; preds = %5628, %5612
  %5754 = load i32, ptr %12, align 4, !tbaa !9
  %5755 = icmp eq i32 %5754, 0
  br i1 %5755, label %5756, label %5938

5756:                                             ; preds = %5753
  %5757 = load i32, ptr %53, align 4, !tbaa !9
  %5758 = icmp ugt i32 %5757, 0
  br i1 %5758, label %5759, label %5938

5759:                                             ; preds = %5756
  %5760 = load ptr, ptr %6, align 8, !tbaa !5
  %5761 = load ptr, ptr %9, align 8, !tbaa !5
  %5762 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5761, i32 0, i32 0
  %5763 = load i32, ptr %5762, align 4, !tbaa !40
  %5764 = load i32, ptr %46, align 4, !tbaa !9
  %5765 = load ptr, ptr %8, align 8, !tbaa !5
  %5766 = getelementptr inbounds %struct.libxsmm_mateltwise_gp_reg_mapping_struct, ptr %5765, i32 0, i32 16
  %5767 = load i32, ptr %5766, align 4, !tbaa !26
  %5768 = load i8, ptr %43, align 1, !tbaa !13
  call void @libxsmm_x86_instruction_vec_move(ptr noundef %5760, i32 noundef %5763, i32 noundef %5764, i32 noundef %5767, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %5768, i32 noundef 3, i32 noundef 2, i32 noundef 1, i32 noundef 0)
  %5769 = load ptr, ptr %10, align 8, !tbaa !5
  %5770 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %5769, i32 noundef 3)
  %5771 = icmp eq i32 4, %5770
  br i1 %5771, label %5772, label %5777

5772:                                             ; preds = %5759
  %5773 = load ptr, ptr %6, align 8, !tbaa !5
  %5774 = load ptr, ptr %9, align 8, !tbaa !5
  %5775 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5774, i32 0, i32 128
  %5776 = load i8, ptr %5775, align 4, !tbaa !11
  call void @libxsmm_generator_cvtbf8ps_avx512(ptr noundef %5773, i8 noundef signext %5776, i32 noundef 3, i32 noundef 3)
  br label %5811

5777:                                             ; preds = %5759
  %5778 = load ptr, ptr %10, align 8, !tbaa !5
  %5779 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %5778, i32 noundef 3)
  %5780 = icmp eq i32 5, %5779
  br i1 %5780, label %5781, label %5790

5781:                                             ; preds = %5777
  %5782 = load ptr, ptr %6, align 8, !tbaa !5
  %5783 = load ptr, ptr %9, align 8, !tbaa !5
  %5784 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5783, i32 0, i32 128
  %5785 = load i8, ptr %5784, align 4, !tbaa !11
  %5786 = load i32, ptr %35, align 4, !tbaa !9
  %5787 = load i32, ptr %36, align 4, !tbaa !9
  %5788 = load i32, ptr %39, align 4, !tbaa !9
  %5789 = load i32, ptr %40, align 4, !tbaa !9
  call void @libxsmm_generator_vcvthf8_to_f32_avx512_preppedstack(ptr noundef %5782, i8 noundef signext %5785, i32 noundef 3, i32 noundef 3, i32 noundef %5786, i32 noundef %5787, i32 noundef %5788, i32 noundef %5789)
  br label %5810

5790:                                             ; preds = %5777
  %5791 = load ptr, ptr %10, align 8, !tbaa !5
  %5792 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %5791, i32 noundef 3)
  %5793 = icmp eq i32 3, %5792
  br i1 %5793, label %5794, label %5799

5794:                                             ; preds = %5790
  %5795 = load ptr, ptr %6, align 8, !tbaa !5
  %5796 = load ptr, ptr %9, align 8, !tbaa !5
  %5797 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5796, i32 0, i32 128
  %5798 = load i8, ptr %5797, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_2reg(ptr noundef %5795, i32 noundef 537208083, i8 noundef signext %5798, i32 noundef 3, i32 noundef 3)
  br label %5809

5799:                                             ; preds = %5790
  %5800 = load ptr, ptr %10, align 8, !tbaa !5
  %5801 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %5800, i32 noundef 3)
  %5802 = icmp eq i32 2, %5801
  br i1 %5802, label %5803, label %5808

5803:                                             ; preds = %5799
  %5804 = load ptr, ptr %6, align 8, !tbaa !5
  %5805 = load ptr, ptr %9, align 8, !tbaa !5
  %5806 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5805, i32 0, i32 128
  %5807 = load i8, ptr %5806, align 4, !tbaa !11
  call void @libxsmm_generator_cvtbf16ps_sse_avx2_avx512(ptr noundef %5804, i8 noundef signext %5807, i32 noundef 3, i32 noundef 3)
  br label %5808

5808:                                             ; preds = %5803, %5799
  br label %5809

5809:                                             ; preds = %5808, %5794
  br label %5810

5810:                                             ; preds = %5809, %5781
  br label %5811

5811:                                             ; preds = %5810, %5772
  %5812 = load ptr, ptr %6, align 8, !tbaa !5
  %5813 = load i32, ptr %25, align 4, !tbaa !9
  %5814 = load ptr, ptr %9, align 8, !tbaa !5
  %5815 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5814, i32 0, i32 128
  %5816 = load i8, ptr %5815, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %5812, i32 noundef %5813, i8 noundef signext %5816, i32 noundef 3, i32 noundef 0, i32 noundef 0)
  %5817 = load ptr, ptr %10, align 8, !tbaa !5
  %5818 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %5817, i32 noundef 3)
  %5819 = icmp eq i32 4, %5818
  br i1 %5819, label %5820, label %5833

5820:                                             ; preds = %5811
  %5821 = load ptr, ptr %6, align 8, !tbaa !5
  %5822 = load ptr, ptr %9, align 8, !tbaa !5
  %5823 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5822, i32 0, i32 0
  %5824 = load i32, ptr %5823, align 4, !tbaa !40
  %5825 = load i32, ptr %56, align 4, !tbaa !9
  %5826 = load ptr, ptr %9, align 8, !tbaa !5
  %5827 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5826, i32 0, i32 128
  %5828 = load i8, ptr %5827, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_move(ptr noundef %5821, i32 noundef %5824, i32 noundef 537138704, i32 noundef %5825, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %5828, i32 noundef 0, i32 noundef 2, i32 noundef 0, i32 noundef 1)
  %5829 = load ptr, ptr %6, align 8, !tbaa !5
  %5830 = load ptr, ptr %9, align 8, !tbaa !5
  %5831 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5830, i32 0, i32 128
  %5832 = load i8, ptr %5831, align 4, !tbaa !11
  call void @libxsmm_generator_vcvtneps2bf8_avx512_preppedstack(ptr noundef %5829, i8 noundef signext %5832, i32 noundef 0, i32 noundef 0, i32 noundef 3, i32 noundef 4, i32 noundef 3, i32 noundef 4, i32 noundef 0, i32 noundef 0)
  br label %5928

5833:                                             ; preds = %5811
  %5834 = load ptr, ptr %10, align 8, !tbaa !5
  %5835 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %5834, i32 noundef 3)
  %5836 = icmp eq i32 5, %5835
  br i1 %5836, label %5837, label %5857

5837:                                             ; preds = %5833
  %5838 = load ptr, ptr %6, align 8, !tbaa !5
  %5839 = load ptr, ptr %9, align 8, !tbaa !5
  %5840 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5839, i32 0, i32 0
  %5841 = load i32, ptr %5840, align 4, !tbaa !40
  %5842 = load i32, ptr %56, align 4, !tbaa !9
  %5843 = load ptr, ptr %9, align 8, !tbaa !5
  %5844 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5843, i32 0, i32 128
  %5845 = load i8, ptr %5844, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_move(ptr noundef %5838, i32 noundef %5841, i32 noundef 537138704, i32 noundef %5842, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %5845, i32 noundef 0, i32 noundef 2, i32 noundef 0, i32 noundef 1)
  %5846 = load ptr, ptr %6, align 8, !tbaa !5
  %5847 = load ptr, ptr %9, align 8, !tbaa !5
  %5848 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5847, i32 0, i32 128
  %5849 = load i8, ptr %5848, align 4, !tbaa !11
  %5850 = load i32, ptr %35, align 4, !tbaa !9
  %5851 = load i32, ptr %36, align 4, !tbaa !9
  %5852 = load i32, ptr %37, align 4, !tbaa !9
  %5853 = load i32, ptr %38, align 4, !tbaa !9
  %5854 = load i32, ptr %39, align 4, !tbaa !9
  %5855 = load i32, ptr %40, align 4, !tbaa !9
  %5856 = load i32, ptr %41, align 4, !tbaa !9
  call void @libxsmm_generator_vcvtf32_to_hf8_avx512_preppedstack(ptr noundef %5846, i8 noundef signext %5849, i32 noundef 0, i32 noundef 0, i32 noundef %5850, i32 noundef %5851, i32 noundef %5852, i32 noundef %5853, i32 noundef %5854, i32 noundef %5855, i32 noundef %5856)
  br label %5927

5857:                                             ; preds = %5833
  %5858 = load ptr, ptr %10, align 8, !tbaa !5
  %5859 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %5858, i32 noundef 3)
  %5860 = icmp eq i32 3, %5859
  br i1 %5860, label %5861, label %5887

5861:                                             ; preds = %5857
  %5862 = load ptr, ptr %6, align 8, !tbaa !5
  %5863 = load ptr, ptr %9, align 8, !tbaa !5
  %5864 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5863, i32 0, i32 0
  %5865 = load i32, ptr %5864, align 4, !tbaa !40
  %5866 = load i32, ptr %56, align 4, !tbaa !9
  %5867 = load ptr, ptr %9, align 8, !tbaa !5
  %5868 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5867, i32 0, i32 128
  %5869 = load i8, ptr %5868, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_move(ptr noundef %5862, i32 noundef %5865, i32 noundef 537138704, i32 noundef %5866, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %5869, i32 noundef 0, i32 noundef 2, i32 noundef 0, i32 noundef 1)
  %5870 = load ptr, ptr %6, align 8, !tbaa !5
  %5871 = load ptr, ptr %9, align 8, !tbaa !5
  %5872 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5871, i32 0, i32 128
  %5873 = load i8, ptr %5872, align 4, !tbaa !11
  %5874 = load ptr, ptr %6, align 8, !tbaa !5
  %5875 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %5874, i32 0, i32 6
  %5876 = load i32, ptr %5875, align 4, !tbaa !20
  %5877 = icmp ult i32 %5876, 1101
  %5878 = zext i1 %5877 to i64
  %5879 = select i1 %5877, i32 0, i32 1
  %5880 = load ptr, ptr %6, align 8, !tbaa !5
  %5881 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %5880, i32 0, i32 6
  %5882 = load i32, ptr %5881, align 4, !tbaa !20
  %5883 = icmp ult i32 %5882, 1101
  %5884 = zext i1 %5883 to i64
  %5885 = select i1 %5883, i32 0, i32 1
  %5886 = trunc i32 %5885 to i8
  call void @libxsmm_x86_instruction_vec_compute_2reg_mask_sae_imm8(ptr noundef %5870, i32 noundef 671954205, i8 noundef signext %5873, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef %5879, i8 noundef zeroext %5886, i32 noundef 0)
  br label %5926

5887:                                             ; preds = %5857
  %5888 = load ptr, ptr %10, align 8, !tbaa !5
  %5889 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %5888, i32 noundef 3)
  %5890 = icmp eq i32 2, %5889
  br i1 %5890, label %5891, label %5925

5891:                                             ; preds = %5887
  %5892 = load ptr, ptr %6, align 8, !tbaa !5
  %5893 = load ptr, ptr %9, align 8, !tbaa !5
  %5894 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5893, i32 0, i32 0
  %5895 = load i32, ptr %5894, align 4, !tbaa !40
  %5896 = load i32, ptr %56, align 4, !tbaa !9
  %5897 = load ptr, ptr %9, align 8, !tbaa !5
  %5898 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5897, i32 0, i32 128
  %5899 = load i8, ptr %5898, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_move(ptr noundef %5892, i32 noundef %5895, i32 noundef 537138704, i32 noundef %5896, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %5899, i32 noundef 0, i32 noundef 2, i32 noundef 0, i32 noundef 1)
  %5900 = load ptr, ptr %6, align 8, !tbaa !5
  %5901 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %5900, i32 0, i32 6
  %5902 = load i32, ptr %5901, align 4, !tbaa !20
  %5903 = icmp ult i32 %5902, 1103
  br i1 %5903, label %5904, label %5919

5904:                                             ; preds = %5891
  %5905 = load ptr, ptr %6, align 8, !tbaa !5
  %5906 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %5905, i32 0, i32 6
  %5907 = load i32, ptr %5906, align 4, !tbaa !20
  %5908 = icmp ne i32 %5907, 1053
  br i1 %5908, label %5909, label %5919

5909:                                             ; preds = %5904
  %5910 = load ptr, ptr %6, align 8, !tbaa !5
  %5911 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %5910, i32 0, i32 6
  %5912 = load i32, ptr %5911, align 4, !tbaa !20
  %5913 = icmp ne i32 %5912, 1008
  br i1 %5913, label %5914, label %5919

5914:                                             ; preds = %5909
  %5915 = load ptr, ptr %6, align 8, !tbaa !5
  %5916 = load ptr, ptr %9, align 8, !tbaa !5
  %5917 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5916, i32 0, i32 128
  %5918 = load i8, ptr %5917, align 4, !tbaa !11
  call void @libxsmm_generator_vcvtneps2bf16_avx512_preppedstack(ptr noundef %5915, i8 noundef signext %5918, i32 noundef 0, i32 noundef 0, i32 noundef 3, i32 noundef 4, i32 noundef 3, i32 noundef 4, i32 noundef 0)
  br label %5924

5919:                                             ; preds = %5909, %5904, %5891
  %5920 = load ptr, ptr %6, align 8, !tbaa !5
  %5921 = load ptr, ptr %9, align 8, !tbaa !5
  %5922 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5921, i32 0, i32 128
  %5923 = load i8, ptr %5922, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_2reg(ptr noundef %5920, i32 noundef 537273970, i8 noundef signext %5923, i32 noundef 0, i32 noundef 0)
  br label %5924

5924:                                             ; preds = %5919, %5914
  br label %5925

5925:                                             ; preds = %5924, %5887
  br label %5926

5926:                                             ; preds = %5925, %5861
  br label %5927

5927:                                             ; preds = %5926, %5837
  br label %5928

5928:                                             ; preds = %5927, %5820
  %5929 = load ptr, ptr %6, align 8, !tbaa !5
  %5930 = load ptr, ptr %9, align 8, !tbaa !5
  %5931 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5930, i32 0, i32 0
  %5932 = load i32, ptr %5931, align 4, !tbaa !40
  %5933 = load i32, ptr %46, align 4, !tbaa !9
  %5934 = load ptr, ptr %8, align 8, !tbaa !5
  %5935 = getelementptr inbounds %struct.libxsmm_mateltwise_gp_reg_mapping_struct, ptr %5934, i32 0, i32 16
  %5936 = load i32, ptr %5935, align 4, !tbaa !26
  %5937 = load i8, ptr %43, align 1, !tbaa !13
  call void @libxsmm_x86_instruction_vec_move(ptr noundef %5929, i32 noundef %5932, i32 noundef %5933, i32 noundef %5936, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %5937, i32 noundef 0, i32 noundef 2, i32 noundef 0, i32 noundef 1)
  br label %6150

5938:                                             ; preds = %5756, %5753
  %5939 = load i32, ptr %12, align 4, !tbaa !9
  %5940 = load i32, ptr %15, align 4, !tbaa !9
  %5941 = sub i32 %5940, 1
  %5942 = icmp eq i32 %5939, %5941
  br i1 %5942, label %5943, label %6073

5943:                                             ; preds = %5938
  %5944 = load ptr, ptr %10, align 8, !tbaa !5
  %5945 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %5944, i32 noundef 3)
  %5946 = icmp eq i32 3, %5945
  br i1 %5946, label %5959, label %5947

5947:                                             ; preds = %5943
  %5948 = load ptr, ptr %10, align 8, !tbaa !5
  %5949 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %5948, i32 noundef 3)
  %5950 = icmp eq i32 2, %5949
  br i1 %5950, label %5959, label %5951

5951:                                             ; preds = %5947
  %5952 = load ptr, ptr %10, align 8, !tbaa !5
  %5953 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %5952, i32 noundef 3)
  %5954 = icmp eq i32 5, %5953
  br i1 %5954, label %5959, label %5955

5955:                                             ; preds = %5951
  %5956 = load ptr, ptr %10, align 8, !tbaa !5
  %5957 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %5956, i32 noundef 3)
  %5958 = icmp eq i32 4, %5957
  br i1 %5958, label %5959, label %5968

5959:                                             ; preds = %5955, %5951, %5947, %5943
  %5960 = load ptr, ptr %6, align 8, !tbaa !5
  %5961 = load ptr, ptr %9, align 8, !tbaa !5
  %5962 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5961, i32 0, i32 0
  %5963 = load i32, ptr %5962, align 4, !tbaa !40
  %5964 = load i32, ptr %56, align 4, !tbaa !9
  %5965 = load ptr, ptr %9, align 8, !tbaa !5
  %5966 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5965, i32 0, i32 128
  %5967 = load i8, ptr %5966, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_move(ptr noundef %5960, i32 noundef %5963, i32 noundef 537138704, i32 noundef %5964, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %5967, i32 noundef 1, i32 noundef 2, i32 noundef 1, i32 noundef 0)
  br label %5978

5968:                                             ; preds = %5955
  %5969 = load ptr, ptr %6, align 8, !tbaa !5
  %5970 = load ptr, ptr %9, align 8, !tbaa !5
  %5971 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5970, i32 0, i32 0
  %5972 = load i32, ptr %5971, align 4, !tbaa !40
  %5973 = load i32, ptr %46, align 4, !tbaa !9
  %5974 = load ptr, ptr %8, align 8, !tbaa !5
  %5975 = getelementptr inbounds %struct.libxsmm_mateltwise_gp_reg_mapping_struct, ptr %5974, i32 0, i32 16
  %5976 = load i32, ptr %5975, align 4, !tbaa !26
  %5977 = load i8, ptr %43, align 1, !tbaa !13
  call void @libxsmm_x86_instruction_vec_move(ptr noundef %5969, i32 noundef %5972, i32 noundef %5973, i32 noundef %5976, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %5977, i32 noundef 1, i32 noundef 2, i32 noundef 1, i32 noundef 0)
  br label %5978

5978:                                             ; preds = %5968, %5959
  %5979 = load ptr, ptr %6, align 8, !tbaa !5
  %5980 = load i32, ptr %25, align 4, !tbaa !9
  %5981 = load ptr, ptr %9, align 8, !tbaa !5
  %5982 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5981, i32 0, i32 128
  %5983 = load i8, ptr %5982, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %5979, i32 noundef %5980, i8 noundef signext %5983, i32 noundef 1, i32 noundef 0, i32 noundef 0)
  %5984 = load ptr, ptr %10, align 8, !tbaa !5
  %5985 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %5984, i32 noundef 3)
  %5986 = icmp eq i32 4, %5985
  br i1 %5986, label %5987, label %5992

5987:                                             ; preds = %5978
  %5988 = load ptr, ptr %6, align 8, !tbaa !5
  %5989 = load ptr, ptr %9, align 8, !tbaa !5
  %5990 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5989, i32 0, i32 128
  %5991 = load i8, ptr %5990, align 4, !tbaa !11
  call void @libxsmm_generator_vcvtneps2bf8_avx512_preppedstack(ptr noundef %5988, i8 noundef signext %5991, i32 noundef 0, i32 noundef 0, i32 noundef 3, i32 noundef 4, i32 noundef 3, i32 noundef 4, i32 noundef 0, i32 noundef 0)
  br label %6063

5992:                                             ; preds = %5978
  %5993 = load ptr, ptr %10, align 8, !tbaa !5
  %5994 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %5993, i32 noundef 3)
  %5995 = icmp eq i32 5, %5994
  br i1 %5995, label %5996, label %6008

5996:                                             ; preds = %5992
  %5997 = load ptr, ptr %6, align 8, !tbaa !5
  %5998 = load ptr, ptr %9, align 8, !tbaa !5
  %5999 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %5998, i32 0, i32 128
  %6000 = load i8, ptr %5999, align 4, !tbaa !11
  %6001 = load i32, ptr %35, align 4, !tbaa !9
  %6002 = load i32, ptr %36, align 4, !tbaa !9
  %6003 = load i32, ptr %37, align 4, !tbaa !9
  %6004 = load i32, ptr %38, align 4, !tbaa !9
  %6005 = load i32, ptr %39, align 4, !tbaa !9
  %6006 = load i32, ptr %40, align 4, !tbaa !9
  %6007 = load i32, ptr %41, align 4, !tbaa !9
  call void @libxsmm_generator_vcvtf32_to_hf8_avx512_preppedstack(ptr noundef %5997, i8 noundef signext %6000, i32 noundef 0, i32 noundef 0, i32 noundef %6001, i32 noundef %6002, i32 noundef %6003, i32 noundef %6004, i32 noundef %6005, i32 noundef %6006, i32 noundef %6007)
  br label %6062

6008:                                             ; preds = %5992
  %6009 = load ptr, ptr %10, align 8, !tbaa !5
  %6010 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %6009, i32 noundef 3)
  %6011 = icmp eq i32 3, %6010
  br i1 %6011, label %6012, label %6030

6012:                                             ; preds = %6008
  %6013 = load ptr, ptr %6, align 8, !tbaa !5
  %6014 = load ptr, ptr %9, align 8, !tbaa !5
  %6015 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %6014, i32 0, i32 128
  %6016 = load i8, ptr %6015, align 4, !tbaa !11
  %6017 = load ptr, ptr %6, align 8, !tbaa !5
  %6018 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %6017, i32 0, i32 6
  %6019 = load i32, ptr %6018, align 4, !tbaa !20
  %6020 = icmp ult i32 %6019, 1101
  %6021 = zext i1 %6020 to i64
  %6022 = select i1 %6020, i32 0, i32 1
  %6023 = load ptr, ptr %6, align 8, !tbaa !5
  %6024 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %6023, i32 0, i32 6
  %6025 = load i32, ptr %6024, align 4, !tbaa !20
  %6026 = icmp ult i32 %6025, 1101
  %6027 = zext i1 %6026 to i64
  %6028 = select i1 %6026, i32 0, i32 1
  %6029 = trunc i32 %6028 to i8
  call void @libxsmm_x86_instruction_vec_compute_2reg_mask_sae_imm8(ptr noundef %6013, i32 noundef 671954205, i8 noundef signext %6016, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef %6022, i8 noundef zeroext %6029, i32 noundef 0)
  br label %6061

6030:                                             ; preds = %6008
  %6031 = load ptr, ptr %10, align 8, !tbaa !5
  %6032 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %6031, i32 noundef 3)
  %6033 = icmp eq i32 2, %6032
  br i1 %6033, label %6034, label %6060

6034:                                             ; preds = %6030
  %6035 = load ptr, ptr %6, align 8, !tbaa !5
  %6036 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %6035, i32 0, i32 6
  %6037 = load i32, ptr %6036, align 4, !tbaa !20
  %6038 = icmp ult i32 %6037, 1103
  br i1 %6038, label %6039, label %6054

6039:                                             ; preds = %6034
  %6040 = load ptr, ptr %6, align 8, !tbaa !5
  %6041 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %6040, i32 0, i32 6
  %6042 = load i32, ptr %6041, align 4, !tbaa !20
  %6043 = icmp ne i32 %6042, 1053
  br i1 %6043, label %6044, label %6054

6044:                                             ; preds = %6039
  %6045 = load ptr, ptr %6, align 8, !tbaa !5
  %6046 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %6045, i32 0, i32 6
  %6047 = load i32, ptr %6046, align 4, !tbaa !20
  %6048 = icmp ne i32 %6047, 1008
  br i1 %6048, label %6049, label %6054

6049:                                             ; preds = %6044
  %6050 = load ptr, ptr %6, align 8, !tbaa !5
  %6051 = load ptr, ptr %9, align 8, !tbaa !5
  %6052 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %6051, i32 0, i32 128
  %6053 = load i8, ptr %6052, align 4, !tbaa !11
  call void @libxsmm_generator_vcvtneps2bf16_avx512_preppedstack(ptr noundef %6050, i8 noundef signext %6053, i32 noundef 0, i32 noundef 0, i32 noundef 3, i32 noundef 4, i32 noundef 3, i32 noundef 4, i32 noundef 0)
  br label %6059

6054:                                             ; preds = %6044, %6039, %6034
  %6055 = load ptr, ptr %6, align 8, !tbaa !5
  %6056 = load ptr, ptr %9, align 8, !tbaa !5
  %6057 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %6056, i32 0, i32 128
  %6058 = load i8, ptr %6057, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_2reg(ptr noundef %6055, i32 noundef 537273970, i8 noundef signext %6058, i32 noundef 0, i32 noundef 0)
  br label %6059

6059:                                             ; preds = %6054, %6049
  br label %6060

6060:                                             ; preds = %6059, %6030
  br label %6061

6061:                                             ; preds = %6060, %6012
  br label %6062

6062:                                             ; preds = %6061, %5996
  br label %6063

6063:                                             ; preds = %6062, %5987
  %6064 = load ptr, ptr %6, align 8, !tbaa !5
  %6065 = load ptr, ptr %9, align 8, !tbaa !5
  %6066 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %6065, i32 0, i32 0
  %6067 = load i32, ptr %6066, align 4, !tbaa !40
  %6068 = load i32, ptr %46, align 4, !tbaa !9
  %6069 = load ptr, ptr %8, align 8, !tbaa !5
  %6070 = getelementptr inbounds %struct.libxsmm_mateltwise_gp_reg_mapping_struct, ptr %6069, i32 0, i32 16
  %6071 = load i32, ptr %6070, align 4, !tbaa !26
  %6072 = load i8, ptr %43, align 1, !tbaa !13
  call void @libxsmm_x86_instruction_vec_move(ptr noundef %6064, i32 noundef %6067, i32 noundef %6068, i32 noundef %6071, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %6072, i32 noundef 0, i32 noundef 2, i32 noundef 0, i32 noundef 1)
  br label %6149

6073:                                             ; preds = %5938
  %6074 = load ptr, ptr %10, align 8, !tbaa !5
  %6075 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %6074, i32 noundef 3)
  %6076 = icmp eq i32 3, %6075
  br i1 %6076, label %6089, label %6077

6077:                                             ; preds = %6073
  %6078 = load ptr, ptr %10, align 8, !tbaa !5
  %6079 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %6078, i32 noundef 3)
  %6080 = icmp eq i32 2, %6079
  br i1 %6080, label %6089, label %6081

6081:                                             ; preds = %6077
  %6082 = load ptr, ptr %10, align 8, !tbaa !5
  %6083 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %6082, i32 noundef 3)
  %6084 = icmp eq i32 5, %6083
  br i1 %6084, label %6089, label %6085

6085:                                             ; preds = %6081
  %6086 = load ptr, ptr %10, align 8, !tbaa !5
  %6087 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %6086, i32 noundef 3)
  %6088 = icmp eq i32 4, %6087
  br i1 %6088, label %6089, label %6098

6089:                                             ; preds = %6085, %6081, %6077, %6073
  %6090 = load ptr, ptr %6, align 8, !tbaa !5
  %6091 = load ptr, ptr %9, align 8, !tbaa !5
  %6092 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %6091, i32 0, i32 0
  %6093 = load i32, ptr %6092, align 4, !tbaa !40
  %6094 = load i32, ptr %56, align 4, !tbaa !9
  %6095 = load ptr, ptr %9, align 8, !tbaa !5
  %6096 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %6095, i32 0, i32 128
  %6097 = load i8, ptr %6096, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_move(ptr noundef %6090, i32 noundef %6093, i32 noundef 537138704, i32 noundef %6094, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %6097, i32 noundef 1, i32 noundef 2, i32 noundef 1, i32 noundef 0)
  br label %6108

6098:                                             ; preds = %6085
  %6099 = load ptr, ptr %6, align 8, !tbaa !5
  %6100 = load ptr, ptr %9, align 8, !tbaa !5
  %6101 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %6100, i32 0, i32 0
  %6102 = load i32, ptr %6101, align 4, !tbaa !40
  %6103 = load i32, ptr %46, align 4, !tbaa !9
  %6104 = load ptr, ptr %8, align 8, !tbaa !5
  %6105 = getelementptr inbounds %struct.libxsmm_mateltwise_gp_reg_mapping_struct, ptr %6104, i32 0, i32 16
  %6106 = load i32, ptr %6105, align 4, !tbaa !26
  %6107 = load i8, ptr %43, align 1, !tbaa !13
  call void @libxsmm_x86_instruction_vec_move(ptr noundef %6099, i32 noundef %6102, i32 noundef %6103, i32 noundef %6106, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %6107, i32 noundef 1, i32 noundef 2, i32 noundef 1, i32 noundef 0)
  br label %6108

6108:                                             ; preds = %6098, %6089
  %6109 = load ptr, ptr %6, align 8, !tbaa !5
  %6110 = load i32, ptr %25, align 4, !tbaa !9
  %6111 = load ptr, ptr %9, align 8, !tbaa !5
  %6112 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %6111, i32 0, i32 128
  %6113 = load i8, ptr %6112, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %6109, i32 noundef %6110, i8 noundef signext %6113, i32 noundef 1, i32 noundef 0, i32 noundef 0)
  %6114 = load ptr, ptr %10, align 8, !tbaa !5
  %6115 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %6114, i32 noundef 3)
  %6116 = icmp eq i32 3, %6115
  br i1 %6116, label %6129, label %6117

6117:                                             ; preds = %6108
  %6118 = load ptr, ptr %10, align 8, !tbaa !5
  %6119 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %6118, i32 noundef 3)
  %6120 = icmp eq i32 2, %6119
  br i1 %6120, label %6129, label %6121

6121:                                             ; preds = %6117
  %6122 = load ptr, ptr %10, align 8, !tbaa !5
  %6123 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %6122, i32 noundef 3)
  %6124 = icmp eq i32 5, %6123
  br i1 %6124, label %6129, label %6125

6125:                                             ; preds = %6121
  %6126 = load ptr, ptr %10, align 8, !tbaa !5
  %6127 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %6126, i32 noundef 3)
  %6128 = icmp eq i32 4, %6127
  br i1 %6128, label %6129, label %6138

6129:                                             ; preds = %6125, %6121, %6117, %6108
  %6130 = load ptr, ptr %6, align 8, !tbaa !5
  %6131 = load ptr, ptr %9, align 8, !tbaa !5
  %6132 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %6131, i32 0, i32 0
  %6133 = load i32, ptr %6132, align 4, !tbaa !40
  %6134 = load i32, ptr %56, align 4, !tbaa !9
  %6135 = load ptr, ptr %9, align 8, !tbaa !5
  %6136 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %6135, i32 0, i32 128
  %6137 = load i8, ptr %6136, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_move(ptr noundef %6130, i32 noundef %6133, i32 noundef 537138704, i32 noundef %6134, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %6137, i32 noundef 0, i32 noundef 2, i32 noundef 0, i32 noundef 1)
  br label %6148

6138:                                             ; preds = %6125
  %6139 = load ptr, ptr %6, align 8, !tbaa !5
  %6140 = load ptr, ptr %9, align 8, !tbaa !5
  %6141 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %6140, i32 0, i32 0
  %6142 = load i32, ptr %6141, align 4, !tbaa !40
  %6143 = load i32, ptr %46, align 4, !tbaa !9
  %6144 = load ptr, ptr %8, align 8, !tbaa !5
  %6145 = getelementptr inbounds %struct.libxsmm_mateltwise_gp_reg_mapping_struct, ptr %6144, i32 0, i32 16
  %6146 = load i32, ptr %6145, align 4, !tbaa !26
  %6147 = load i8, ptr %43, align 1, !tbaa !13
  call void @libxsmm_x86_instruction_vec_move(ptr noundef %6139, i32 noundef %6142, i32 noundef %6143, i32 noundef %6146, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %6147, i32 noundef 0, i32 noundef 2, i32 noundef 0, i32 noundef 1)
  br label %6148

6148:                                             ; preds = %6138, %6129
  br label %6149

6149:                                             ; preds = %6148, %6063
  br label %6150

6150:                                             ; preds = %6149, %5928
  br label %6151

6151:                                             ; preds = %6150, %5743
  br label %6152

6152:                                             ; preds = %6151, %5609
  %6153 = load i32, ptr %23, align 4, !tbaa !9
  %6154 = icmp ugt i32 %6153, 0
  br i1 %6154, label %6155, label %6695

6155:                                             ; preds = %6152
  %6156 = load ptr, ptr %6, align 8, !tbaa !5
  %6157 = load ptr, ptr %9, align 8, !tbaa !5
  %6158 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %6157, i32 0, i32 128
  %6159 = load i8, ptr %6158, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %6156, i32 noundef 806098630, i8 noundef signext %6159, i32 noundef 26, i32 noundef 24, i32 noundef 20, i32 noundef 136)
  %6160 = load ptr, ptr %6, align 8, !tbaa !5
  %6161 = load ptr, ptr %9, align 8, !tbaa !5
  %6162 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %6161, i32 0, i32 128
  %6163 = load i8, ptr %6162, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %6160, i32 noundef 806098630, i8 noundef signext %6163, i32 noundef 26, i32 noundef 24, i32 noundef 21, i32 noundef 221)
  %6164 = load ptr, ptr %6, align 8, !tbaa !5
  %6165 = load i32, ptr %25, align 4, !tbaa !9
  %6166 = load ptr, ptr %9, align 8, !tbaa !5
  %6167 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %6166, i32 0, i32 128
  %6168 = load i8, ptr %6167, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %6164, i32 noundef %6165, i8 noundef signext %6168, i32 noundef 20, i32 noundef 21, i32 noundef 24)
  %6169 = load i32, ptr %12, align 4, !tbaa !9
  %6170 = icmp eq i32 %6169, 0
  br i1 %6170, label %6171, label %6296

6171:                                             ; preds = %6155
  %6172 = load i32, ptr %53, align 4, !tbaa !9
  %6173 = icmp eq i32 %6172, 0
  br i1 %6173, label %6174, label %6296

6174:                                             ; preds = %6171
  %6175 = load ptr, ptr %10, align 8, !tbaa !5
  %6176 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %6175, i32 noundef 3)
  %6177 = icmp eq i32 4, %6176
  br i1 %6177, label %6178, label %6191

6178:                                             ; preds = %6174
  %6179 = load ptr, ptr %6, align 8, !tbaa !5
  %6180 = load ptr, ptr %9, align 8, !tbaa !5
  %6181 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %6180, i32 0, i32 0
  %6182 = load i32, ptr %6181, align 4, !tbaa !40
  %6183 = load i32, ptr %56, align 4, !tbaa !9
  %6184 = load ptr, ptr %9, align 8, !tbaa !5
  %6185 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %6184, i32 0, i32 128
  %6186 = load i8, ptr %6185, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_move(ptr noundef %6179, i32 noundef %6182, i32 noundef 537138704, i32 noundef %6183, i32 noundef 127, i32 noundef 0, i32 noundef 64, i8 noundef signext %6186, i32 noundef 24, i32 noundef 2, i32 noundef 0, i32 noundef 1)
  %6187 = load ptr, ptr %6, align 8, !tbaa !5
  %6188 = load ptr, ptr %9, align 8, !tbaa !5
  %6189 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %6188, i32 0, i32 128
  %6190 = load i8, ptr %6189, align 4, !tbaa !11
  call void @libxsmm_generator_vcvtneps2bf8_avx512_preppedstack(ptr noundef %6187, i8 noundef signext %6190, i32 noundef 24, i32 noundef 24, i32 noundef 25, i32 noundef 26, i32 noundef 3, i32 noundef 4, i32 noundef 0, i32 noundef 0)
  br label %6286

6191:                                             ; preds = %6174
  %6192 = load ptr, ptr %10, align 8, !tbaa !5
  %6193 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %6192, i32 noundef 3)
  %6194 = icmp eq i32 5, %6193
  br i1 %6194, label %6195, label %6215

6195:                                             ; preds = %6191
  %6196 = load ptr, ptr %6, align 8, !tbaa !5
  %6197 = load ptr, ptr %9, align 8, !tbaa !5
  %6198 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %6197, i32 0, i32 0
  %6199 = load i32, ptr %6198, align 4, !tbaa !40
  %6200 = load i32, ptr %56, align 4, !tbaa !9
  %6201 = load ptr, ptr %9, align 8, !tbaa !5
  %6202 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %6201, i32 0, i32 128
  %6203 = load i8, ptr %6202, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_move(ptr noundef %6196, i32 noundef %6199, i32 noundef 537138704, i32 noundef %6200, i32 noundef 127, i32 noundef 0, i32 noundef 64, i8 noundef signext %6203, i32 noundef 24, i32 noundef 2, i32 noundef 0, i32 noundef 1)
  %6204 = load ptr, ptr %6, align 8, !tbaa !5
  %6205 = load ptr, ptr %9, align 8, !tbaa !5
  %6206 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %6205, i32 0, i32 128
  %6207 = load i8, ptr %6206, align 4, !tbaa !11
  %6208 = load i32, ptr %35, align 4, !tbaa !9
  %6209 = load i32, ptr %36, align 4, !tbaa !9
  %6210 = load i32, ptr %37, align 4, !tbaa !9
  %6211 = load i32, ptr %38, align 4, !tbaa !9
  %6212 = load i32, ptr %39, align 4, !tbaa !9
  %6213 = load i32, ptr %40, align 4, !tbaa !9
  %6214 = load i32, ptr %41, align 4, !tbaa !9
  call void @libxsmm_generator_vcvtf32_to_hf8_avx512_preppedstack(ptr noundef %6204, i8 noundef signext %6207, i32 noundef 24, i32 noundef 24, i32 noundef %6208, i32 noundef %6209, i32 noundef %6210, i32 noundef %6211, i32 noundef %6212, i32 noundef %6213, i32 noundef %6214)
  br label %6285

6215:                                             ; preds = %6191
  %6216 = load ptr, ptr %10, align 8, !tbaa !5
  %6217 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %6216, i32 noundef 3)
  %6218 = icmp eq i32 3, %6217
  br i1 %6218, label %6219, label %6245

6219:                                             ; preds = %6215
  %6220 = load ptr, ptr %6, align 8, !tbaa !5
  %6221 = load ptr, ptr %9, align 8, !tbaa !5
  %6222 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %6221, i32 0, i32 0
  %6223 = load i32, ptr %6222, align 4, !tbaa !40
  %6224 = load i32, ptr %56, align 4, !tbaa !9
  %6225 = load ptr, ptr %9, align 8, !tbaa !5
  %6226 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %6225, i32 0, i32 128
  %6227 = load i8, ptr %6226, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_move(ptr noundef %6220, i32 noundef %6223, i32 noundef 537138704, i32 noundef %6224, i32 noundef 127, i32 noundef 0, i32 noundef 64, i8 noundef signext %6227, i32 noundef 24, i32 noundef 2, i32 noundef 0, i32 noundef 1)
  %6228 = load ptr, ptr %6, align 8, !tbaa !5
  %6229 = load ptr, ptr %9, align 8, !tbaa !5
  %6230 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %6229, i32 0, i32 128
  %6231 = load i8, ptr %6230, align 4, !tbaa !11
  %6232 = load ptr, ptr %6, align 8, !tbaa !5
  %6233 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %6232, i32 0, i32 6
  %6234 = load i32, ptr %6233, align 4, !tbaa !20
  %6235 = icmp ult i32 %6234, 1101
  %6236 = zext i1 %6235 to i64
  %6237 = select i1 %6235, i32 0, i32 1
  %6238 = load ptr, ptr %6, align 8, !tbaa !5
  %6239 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %6238, i32 0, i32 6
  %6240 = load i32, ptr %6239, align 4, !tbaa !20
  %6241 = icmp ult i32 %6240, 1101
  %6242 = zext i1 %6241 to i64
  %6243 = select i1 %6241, i32 0, i32 1
  %6244 = trunc i32 %6243 to i8
  call void @libxsmm_x86_instruction_vec_compute_2reg_mask_sae_imm8(ptr noundef %6228, i32 noundef 671954205, i8 noundef signext %6231, i32 noundef 24, i32 noundef 24, i32 noundef 0, i32 noundef %6237, i8 noundef zeroext %6244, i32 noundef 0)
  br label %6284

6245:                                             ; preds = %6215
  %6246 = load ptr, ptr %10, align 8, !tbaa !5
  %6247 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %6246, i32 noundef 3)
  %6248 = icmp eq i32 2, %6247
  br i1 %6248, label %6249, label %6283

6249:                                             ; preds = %6245
  %6250 = load ptr, ptr %6, align 8, !tbaa !5
  %6251 = load ptr, ptr %9, align 8, !tbaa !5
  %6252 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %6251, i32 0, i32 0
  %6253 = load i32, ptr %6252, align 4, !tbaa !40
  %6254 = load i32, ptr %56, align 4, !tbaa !9
  %6255 = load ptr, ptr %9, align 8, !tbaa !5
  %6256 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %6255, i32 0, i32 128
  %6257 = load i8, ptr %6256, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_move(ptr noundef %6250, i32 noundef %6253, i32 noundef 537138704, i32 noundef %6254, i32 noundef 127, i32 noundef 0, i32 noundef 64, i8 noundef signext %6257, i32 noundef 24, i32 noundef 2, i32 noundef 0, i32 noundef 1)
  %6258 = load ptr, ptr %6, align 8, !tbaa !5
  %6259 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %6258, i32 0, i32 6
  %6260 = load i32, ptr %6259, align 4, !tbaa !20
  %6261 = icmp ult i32 %6260, 1103
  br i1 %6261, label %6262, label %6277

6262:                                             ; preds = %6249
  %6263 = load ptr, ptr %6, align 8, !tbaa !5
  %6264 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %6263, i32 0, i32 6
  %6265 = load i32, ptr %6264, align 4, !tbaa !20
  %6266 = icmp ne i32 %6265, 1053
  br i1 %6266, label %6267, label %6277

6267:                                             ; preds = %6262
  %6268 = load ptr, ptr %6, align 8, !tbaa !5
  %6269 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %6268, i32 0, i32 6
  %6270 = load i32, ptr %6269, align 4, !tbaa !20
  %6271 = icmp ne i32 %6270, 1008
  br i1 %6271, label %6272, label %6277

6272:                                             ; preds = %6267
  %6273 = load ptr, ptr %6, align 8, !tbaa !5
  %6274 = load ptr, ptr %9, align 8, !tbaa !5
  %6275 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %6274, i32 0, i32 128
  %6276 = load i8, ptr %6275, align 4, !tbaa !11
  call void @libxsmm_generator_vcvtneps2bf16_avx512_preppedstack(ptr noundef %6273, i8 noundef signext %6276, i32 noundef 24, i32 noundef 24, i32 noundef 25, i32 noundef 26, i32 noundef 3, i32 noundef 4, i32 noundef 0)
  br label %6282

6277:                                             ; preds = %6267, %6262, %6249
  %6278 = load ptr, ptr %6, align 8, !tbaa !5
  %6279 = load ptr, ptr %9, align 8, !tbaa !5
  %6280 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %6279, i32 0, i32 128
  %6281 = load i8, ptr %6280, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_2reg(ptr noundef %6278, i32 noundef 537273970, i8 noundef signext %6281, i32 noundef 24, i32 noundef 24)
  br label %6282

6282:                                             ; preds = %6277, %6272
  br label %6283

6283:                                             ; preds = %6282, %6245
  br label %6284

6284:                                             ; preds = %6283, %6219
  br label %6285

6285:                                             ; preds = %6284, %6195
  br label %6286

6286:                                             ; preds = %6285, %6178
  %6287 = load ptr, ptr %6, align 8, !tbaa !5
  %6288 = load ptr, ptr %9, align 8, !tbaa !5
  %6289 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %6288, i32 0, i32 0
  %6290 = load i32, ptr %6289, align 4, !tbaa !40
  %6291 = load i32, ptr %46, align 4, !tbaa !9
  %6292 = load ptr, ptr %8, align 8, !tbaa !5
  %6293 = getelementptr inbounds %struct.libxsmm_mateltwise_gp_reg_mapping_struct, ptr %6292, i32 0, i32 17
  %6294 = load i32, ptr %6293, align 4, !tbaa !27
  %6295 = load i8, ptr %43, align 1, !tbaa !13
  call void @libxsmm_x86_instruction_vec_move(ptr noundef %6287, i32 noundef %6290, i32 noundef %6291, i32 noundef %6294, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %6295, i32 noundef 24, i32 noundef 2, i32 noundef 0, i32 noundef 1)
  br label %6694

6296:                                             ; preds = %6171, %6155
  %6297 = load i32, ptr %12, align 4, !tbaa !9
  %6298 = icmp eq i32 %6297, 0
  br i1 %6298, label %6299, label %6481

6299:                                             ; preds = %6296
  %6300 = load i32, ptr %53, align 4, !tbaa !9
  %6301 = icmp ugt i32 %6300, 0
  br i1 %6301, label %6302, label %6481

6302:                                             ; preds = %6299
  %6303 = load ptr, ptr %6, align 8, !tbaa !5
  %6304 = load ptr, ptr %9, align 8, !tbaa !5
  %6305 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %6304, i32 0, i32 0
  %6306 = load i32, ptr %6305, align 4, !tbaa !40
  %6307 = load i32, ptr %46, align 4, !tbaa !9
  %6308 = load ptr, ptr %8, align 8, !tbaa !5
  %6309 = getelementptr inbounds %struct.libxsmm_mateltwise_gp_reg_mapping_struct, ptr %6308, i32 0, i32 17
  %6310 = load i32, ptr %6309, align 4, !tbaa !27
  %6311 = load i8, ptr %43, align 1, !tbaa !13
  call void @libxsmm_x86_instruction_vec_move(ptr noundef %6303, i32 noundef %6306, i32 noundef %6307, i32 noundef %6310, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %6311, i32 noundef 25, i32 noundef 2, i32 noundef 1, i32 noundef 0)
  %6312 = load ptr, ptr %10, align 8, !tbaa !5
  %6313 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %6312, i32 noundef 3)
  %6314 = icmp eq i32 4, %6313
  br i1 %6314, label %6315, label %6320

6315:                                             ; preds = %6302
  %6316 = load ptr, ptr %6, align 8, !tbaa !5
  %6317 = load ptr, ptr %9, align 8, !tbaa !5
  %6318 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %6317, i32 0, i32 128
  %6319 = load i8, ptr %6318, align 4, !tbaa !11
  call void @libxsmm_generator_cvtbf8ps_avx512(ptr noundef %6316, i8 noundef signext %6319, i32 noundef 25, i32 noundef 25)
  br label %6354

6320:                                             ; preds = %6302
  %6321 = load ptr, ptr %10, align 8, !tbaa !5
  %6322 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %6321, i32 noundef 3)
  %6323 = icmp eq i32 5, %6322
  br i1 %6323, label %6324, label %6333

6324:                                             ; preds = %6320
  %6325 = load ptr, ptr %6, align 8, !tbaa !5
  %6326 = load ptr, ptr %9, align 8, !tbaa !5
  %6327 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %6326, i32 0, i32 128
  %6328 = load i8, ptr %6327, align 4, !tbaa !11
  %6329 = load i32, ptr %35, align 4, !tbaa !9
  %6330 = load i32, ptr %36, align 4, !tbaa !9
  %6331 = load i32, ptr %39, align 4, !tbaa !9
  %6332 = load i32, ptr %40, align 4, !tbaa !9
  call void @libxsmm_generator_vcvthf8_to_f32_avx512_preppedstack(ptr noundef %6325, i8 noundef signext %6328, i32 noundef 25, i32 noundef 25, i32 noundef %6329, i32 noundef %6330, i32 noundef %6331, i32 noundef %6332)
  br label %6353

6333:                                             ; preds = %6320
  %6334 = load ptr, ptr %10, align 8, !tbaa !5
  %6335 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %6334, i32 noundef 3)
  %6336 = icmp eq i32 3, %6335
  br i1 %6336, label %6337, label %6342

6337:                                             ; preds = %6333
  %6338 = load ptr, ptr %6, align 8, !tbaa !5
  %6339 = load ptr, ptr %9, align 8, !tbaa !5
  %6340 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %6339, i32 0, i32 128
  %6341 = load i8, ptr %6340, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_2reg(ptr noundef %6338, i32 noundef 537208083, i8 noundef signext %6341, i32 noundef 25, i32 noundef 25)
  br label %6352

6342:                                             ; preds = %6333
  %6343 = load ptr, ptr %10, align 8, !tbaa !5
  %6344 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %6343, i32 noundef 3)
  %6345 = icmp eq i32 2, %6344
  br i1 %6345, label %6346, label %6351

6346:                                             ; preds = %6342
  %6347 = load ptr, ptr %6, align 8, !tbaa !5
  %6348 = load ptr, ptr %9, align 8, !tbaa !5
  %6349 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %6348, i32 0, i32 128
  %6350 = load i8, ptr %6349, align 4, !tbaa !11
  call void @libxsmm_generator_cvtbf16ps_sse_avx2_avx512(ptr noundef %6347, i8 noundef signext %6350, i32 noundef 25, i32 noundef 25)
  br label %6351

6351:                                             ; preds = %6346, %6342
  br label %6352

6352:                                             ; preds = %6351, %6337
  br label %6353

6353:                                             ; preds = %6352, %6324
  br label %6354

6354:                                             ; preds = %6353, %6315
  %6355 = load ptr, ptr %6, align 8, !tbaa !5
  %6356 = load i32, ptr %25, align 4, !tbaa !9
  %6357 = load ptr, ptr %9, align 8, !tbaa !5
  %6358 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %6357, i32 0, i32 128
  %6359 = load i8, ptr %6358, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %6355, i32 noundef %6356, i8 noundef signext %6359, i32 noundef 25, i32 noundef 24, i32 noundef 24)
  %6360 = load ptr, ptr %10, align 8, !tbaa !5
  %6361 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %6360, i32 noundef 3)
  %6362 = icmp eq i32 4, %6361
  br i1 %6362, label %6363, label %6376

6363:                                             ; preds = %6354
  %6364 = load ptr, ptr %6, align 8, !tbaa !5
  %6365 = load ptr, ptr %9, align 8, !tbaa !5
  %6366 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %6365, i32 0, i32 0
  %6367 = load i32, ptr %6366, align 4, !tbaa !40
  %6368 = load i32, ptr %56, align 4, !tbaa !9
  %6369 = load ptr, ptr %9, align 8, !tbaa !5
  %6370 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %6369, i32 0, i32 128
  %6371 = load i8, ptr %6370, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_move(ptr noundef %6364, i32 noundef %6367, i32 noundef 537138704, i32 noundef %6368, i32 noundef 127, i32 noundef 0, i32 noundef 64, i8 noundef signext %6371, i32 noundef 24, i32 noundef 2, i32 noundef 0, i32 noundef 1)
  %6372 = load ptr, ptr %6, align 8, !tbaa !5
  %6373 = load ptr, ptr %9, align 8, !tbaa !5
  %6374 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %6373, i32 0, i32 128
  %6375 = load i8, ptr %6374, align 4, !tbaa !11
  call void @libxsmm_generator_vcvtneps2bf8_avx512_preppedstack(ptr noundef %6372, i8 noundef signext %6375, i32 noundef 24, i32 noundef 24, i32 noundef 25, i32 noundef 26, i32 noundef 3, i32 noundef 4, i32 noundef 0, i32 noundef 0)
  br label %6471

6376:                                             ; preds = %6354
  %6377 = load ptr, ptr %10, align 8, !tbaa !5
  %6378 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %6377, i32 noundef 3)
  %6379 = icmp eq i32 5, %6378
  br i1 %6379, label %6380, label %6400

6380:                                             ; preds = %6376
  %6381 = load ptr, ptr %6, align 8, !tbaa !5
  %6382 = load ptr, ptr %9, align 8, !tbaa !5
  %6383 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %6382, i32 0, i32 0
  %6384 = load i32, ptr %6383, align 4, !tbaa !40
  %6385 = load i32, ptr %56, align 4, !tbaa !9
  %6386 = load ptr, ptr %9, align 8, !tbaa !5
  %6387 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %6386, i32 0, i32 128
  %6388 = load i8, ptr %6387, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_move(ptr noundef %6381, i32 noundef %6384, i32 noundef 537138704, i32 noundef %6385, i32 noundef 127, i32 noundef 0, i32 noundef 64, i8 noundef signext %6388, i32 noundef 24, i32 noundef 2, i32 noundef 0, i32 noundef 1)
  %6389 = load ptr, ptr %6, align 8, !tbaa !5
  %6390 = load ptr, ptr %9, align 8, !tbaa !5
  %6391 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %6390, i32 0, i32 128
  %6392 = load i8, ptr %6391, align 4, !tbaa !11
  %6393 = load i32, ptr %35, align 4, !tbaa !9
  %6394 = load i32, ptr %36, align 4, !tbaa !9
  %6395 = load i32, ptr %37, align 4, !tbaa !9
  %6396 = load i32, ptr %38, align 4, !tbaa !9
  %6397 = load i32, ptr %39, align 4, !tbaa !9
  %6398 = load i32, ptr %40, align 4, !tbaa !9
  %6399 = load i32, ptr %41, align 4, !tbaa !9
  call void @libxsmm_generator_vcvtf32_to_hf8_avx512_preppedstack(ptr noundef %6389, i8 noundef signext %6392, i32 noundef 24, i32 noundef 24, i32 noundef %6393, i32 noundef %6394, i32 noundef %6395, i32 noundef %6396, i32 noundef %6397, i32 noundef %6398, i32 noundef %6399)
  br label %6470

6400:                                             ; preds = %6376
  %6401 = load ptr, ptr %10, align 8, !tbaa !5
  %6402 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %6401, i32 noundef 3)
  %6403 = icmp eq i32 3, %6402
  br i1 %6403, label %6404, label %6430

6404:                                             ; preds = %6400
  %6405 = load ptr, ptr %6, align 8, !tbaa !5
  %6406 = load ptr, ptr %9, align 8, !tbaa !5
  %6407 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %6406, i32 0, i32 0
  %6408 = load i32, ptr %6407, align 4, !tbaa !40
  %6409 = load i32, ptr %56, align 4, !tbaa !9
  %6410 = load ptr, ptr %9, align 8, !tbaa !5
  %6411 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %6410, i32 0, i32 128
  %6412 = load i8, ptr %6411, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_move(ptr noundef %6405, i32 noundef %6408, i32 noundef 537138704, i32 noundef %6409, i32 noundef 127, i32 noundef 0, i32 noundef 64, i8 noundef signext %6412, i32 noundef 24, i32 noundef 2, i32 noundef 0, i32 noundef 1)
  %6413 = load ptr, ptr %6, align 8, !tbaa !5
  %6414 = load ptr, ptr %9, align 8, !tbaa !5
  %6415 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %6414, i32 0, i32 128
  %6416 = load i8, ptr %6415, align 4, !tbaa !11
  %6417 = load ptr, ptr %6, align 8, !tbaa !5
  %6418 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %6417, i32 0, i32 6
  %6419 = load i32, ptr %6418, align 4, !tbaa !20
  %6420 = icmp ult i32 %6419, 1101
  %6421 = zext i1 %6420 to i64
  %6422 = select i1 %6420, i32 0, i32 1
  %6423 = load ptr, ptr %6, align 8, !tbaa !5
  %6424 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %6423, i32 0, i32 6
  %6425 = load i32, ptr %6424, align 4, !tbaa !20
  %6426 = icmp ult i32 %6425, 1101
  %6427 = zext i1 %6426 to i64
  %6428 = select i1 %6426, i32 0, i32 1
  %6429 = trunc i32 %6428 to i8
  call void @libxsmm_x86_instruction_vec_compute_2reg_mask_sae_imm8(ptr noundef %6413, i32 noundef 671954205, i8 noundef signext %6416, i32 noundef 24, i32 noundef 24, i32 noundef 0, i32 noundef %6422, i8 noundef zeroext %6429, i32 noundef 0)
  br label %6469

6430:                                             ; preds = %6400
  %6431 = load ptr, ptr %10, align 8, !tbaa !5
  %6432 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %6431, i32 noundef 3)
  %6433 = icmp eq i32 2, %6432
  br i1 %6433, label %6434, label %6468

6434:                                             ; preds = %6430
  %6435 = load ptr, ptr %6, align 8, !tbaa !5
  %6436 = load ptr, ptr %9, align 8, !tbaa !5
  %6437 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %6436, i32 0, i32 0
  %6438 = load i32, ptr %6437, align 4, !tbaa !40
  %6439 = load i32, ptr %56, align 4, !tbaa !9
  %6440 = load ptr, ptr %9, align 8, !tbaa !5
  %6441 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %6440, i32 0, i32 128
  %6442 = load i8, ptr %6441, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_move(ptr noundef %6435, i32 noundef %6438, i32 noundef 537138704, i32 noundef %6439, i32 noundef 127, i32 noundef 0, i32 noundef 64, i8 noundef signext %6442, i32 noundef 24, i32 noundef 2, i32 noundef 0, i32 noundef 1)
  %6443 = load ptr, ptr %6, align 8, !tbaa !5
  %6444 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %6443, i32 0, i32 6
  %6445 = load i32, ptr %6444, align 4, !tbaa !20
  %6446 = icmp ult i32 %6445, 1103
  br i1 %6446, label %6447, label %6462

6447:                                             ; preds = %6434
  %6448 = load ptr, ptr %6, align 8, !tbaa !5
  %6449 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %6448, i32 0, i32 6
  %6450 = load i32, ptr %6449, align 4, !tbaa !20
  %6451 = icmp ne i32 %6450, 1053
  br i1 %6451, label %6452, label %6462

6452:                                             ; preds = %6447
  %6453 = load ptr, ptr %6, align 8, !tbaa !5
  %6454 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %6453, i32 0, i32 6
  %6455 = load i32, ptr %6454, align 4, !tbaa !20
  %6456 = icmp ne i32 %6455, 1008
  br i1 %6456, label %6457, label %6462

6457:                                             ; preds = %6452
  %6458 = load ptr, ptr %6, align 8, !tbaa !5
  %6459 = load ptr, ptr %9, align 8, !tbaa !5
  %6460 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %6459, i32 0, i32 128
  %6461 = load i8, ptr %6460, align 4, !tbaa !11
  call void @libxsmm_generator_vcvtneps2bf16_avx512_preppedstack(ptr noundef %6458, i8 noundef signext %6461, i32 noundef 24, i32 noundef 24, i32 noundef 25, i32 noundef 26, i32 noundef 3, i32 noundef 4, i32 noundef 0)
  br label %6467

6462:                                             ; preds = %6452, %6447, %6434
  %6463 = load ptr, ptr %6, align 8, !tbaa !5
  %6464 = load ptr, ptr %9, align 8, !tbaa !5
  %6465 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %6464, i32 0, i32 128
  %6466 = load i8, ptr %6465, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_2reg(ptr noundef %6463, i32 noundef 537273970, i8 noundef signext %6466, i32 noundef 24, i32 noundef 24)
  br label %6467

6467:                                             ; preds = %6462, %6457
  br label %6468

6468:                                             ; preds = %6467, %6430
  br label %6469

6469:                                             ; preds = %6468, %6404
  br label %6470

6470:                                             ; preds = %6469, %6380
  br label %6471

6471:                                             ; preds = %6470, %6363
  %6472 = load ptr, ptr %6, align 8, !tbaa !5
  %6473 = load ptr, ptr %9, align 8, !tbaa !5
  %6474 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %6473, i32 0, i32 0
  %6475 = load i32, ptr %6474, align 4, !tbaa !40
  %6476 = load i32, ptr %46, align 4, !tbaa !9
  %6477 = load ptr, ptr %8, align 8, !tbaa !5
  %6478 = getelementptr inbounds %struct.libxsmm_mateltwise_gp_reg_mapping_struct, ptr %6477, i32 0, i32 17
  %6479 = load i32, ptr %6478, align 4, !tbaa !27
  %6480 = load i8, ptr %43, align 1, !tbaa !13
  call void @libxsmm_x86_instruction_vec_move(ptr noundef %6472, i32 noundef %6475, i32 noundef %6476, i32 noundef %6479, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %6480, i32 noundef 24, i32 noundef 2, i32 noundef 0, i32 noundef 1)
  br label %6693

6481:                                             ; preds = %6299, %6296
  %6482 = load i32, ptr %12, align 4, !tbaa !9
  %6483 = load i32, ptr %15, align 4, !tbaa !9
  %6484 = sub i32 %6483, 1
  %6485 = icmp eq i32 %6482, %6484
  br i1 %6485, label %6486, label %6616

6486:                                             ; preds = %6481
  %6487 = load ptr, ptr %10, align 8, !tbaa !5
  %6488 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %6487, i32 noundef 3)
  %6489 = icmp eq i32 3, %6488
  br i1 %6489, label %6502, label %6490

6490:                                             ; preds = %6486
  %6491 = load ptr, ptr %10, align 8, !tbaa !5
  %6492 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %6491, i32 noundef 3)
  %6493 = icmp eq i32 2, %6492
  br i1 %6493, label %6502, label %6494

6494:                                             ; preds = %6490
  %6495 = load ptr, ptr %10, align 8, !tbaa !5
  %6496 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %6495, i32 noundef 3)
  %6497 = icmp eq i32 5, %6496
  br i1 %6497, label %6502, label %6498

6498:                                             ; preds = %6494
  %6499 = load ptr, ptr %10, align 8, !tbaa !5
  %6500 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %6499, i32 noundef 3)
  %6501 = icmp eq i32 4, %6500
  br i1 %6501, label %6502, label %6511

6502:                                             ; preds = %6498, %6494, %6490, %6486
  %6503 = load ptr, ptr %6, align 8, !tbaa !5
  %6504 = load ptr, ptr %9, align 8, !tbaa !5
  %6505 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %6504, i32 0, i32 0
  %6506 = load i32, ptr %6505, align 4, !tbaa !40
  %6507 = load i32, ptr %56, align 4, !tbaa !9
  %6508 = load ptr, ptr %9, align 8, !tbaa !5
  %6509 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %6508, i32 0, i32 128
  %6510 = load i8, ptr %6509, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_move(ptr noundef %6503, i32 noundef %6506, i32 noundef 537138704, i32 noundef %6507, i32 noundef 127, i32 noundef 0, i32 noundef 64, i8 noundef signext %6510, i32 noundef 25, i32 noundef 2, i32 noundef 1, i32 noundef 0)
  br label %6521

6511:                                             ; preds = %6498
  %6512 = load ptr, ptr %6, align 8, !tbaa !5
  %6513 = load ptr, ptr %9, align 8, !tbaa !5
  %6514 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %6513, i32 0, i32 0
  %6515 = load i32, ptr %6514, align 4, !tbaa !40
  %6516 = load i32, ptr %46, align 4, !tbaa !9
  %6517 = load ptr, ptr %8, align 8, !tbaa !5
  %6518 = getelementptr inbounds %struct.libxsmm_mateltwise_gp_reg_mapping_struct, ptr %6517, i32 0, i32 17
  %6519 = load i32, ptr %6518, align 4, !tbaa !27
  %6520 = load i8, ptr %43, align 1, !tbaa !13
  call void @libxsmm_x86_instruction_vec_move(ptr noundef %6512, i32 noundef %6515, i32 noundef %6516, i32 noundef %6519, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %6520, i32 noundef 25, i32 noundef 2, i32 noundef 1, i32 noundef 0)
  br label %6521

6521:                                             ; preds = %6511, %6502
  %6522 = load ptr, ptr %6, align 8, !tbaa !5
  %6523 = load i32, ptr %25, align 4, !tbaa !9
  %6524 = load ptr, ptr %9, align 8, !tbaa !5
  %6525 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %6524, i32 0, i32 128
  %6526 = load i8, ptr %6525, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %6522, i32 noundef %6523, i8 noundef signext %6526, i32 noundef 25, i32 noundef 24, i32 noundef 24)
  %6527 = load ptr, ptr %10, align 8, !tbaa !5
  %6528 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %6527, i32 noundef 3)
  %6529 = icmp eq i32 4, %6528
  br i1 %6529, label %6530, label %6535

6530:                                             ; preds = %6521
  %6531 = load ptr, ptr %6, align 8, !tbaa !5
  %6532 = load ptr, ptr %9, align 8, !tbaa !5
  %6533 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %6532, i32 0, i32 128
  %6534 = load i8, ptr %6533, align 4, !tbaa !11
  call void @libxsmm_generator_vcvtneps2bf8_avx512_preppedstack(ptr noundef %6531, i8 noundef signext %6534, i32 noundef 24, i32 noundef 24, i32 noundef 25, i32 noundef 26, i32 noundef 3, i32 noundef 4, i32 noundef 0, i32 noundef 0)
  br label %6606

6535:                                             ; preds = %6521
  %6536 = load ptr, ptr %10, align 8, !tbaa !5
  %6537 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %6536, i32 noundef 3)
  %6538 = icmp eq i32 5, %6537
  br i1 %6538, label %6539, label %6551

6539:                                             ; preds = %6535
  %6540 = load ptr, ptr %6, align 8, !tbaa !5
  %6541 = load ptr, ptr %9, align 8, !tbaa !5
  %6542 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %6541, i32 0, i32 128
  %6543 = load i8, ptr %6542, align 4, !tbaa !11
  %6544 = load i32, ptr %35, align 4, !tbaa !9
  %6545 = load i32, ptr %36, align 4, !tbaa !9
  %6546 = load i32, ptr %37, align 4, !tbaa !9
  %6547 = load i32, ptr %38, align 4, !tbaa !9
  %6548 = load i32, ptr %39, align 4, !tbaa !9
  %6549 = load i32, ptr %40, align 4, !tbaa !9
  %6550 = load i32, ptr %41, align 4, !tbaa !9
  call void @libxsmm_generator_vcvtf32_to_hf8_avx512_preppedstack(ptr noundef %6540, i8 noundef signext %6543, i32 noundef 24, i32 noundef 24, i32 noundef %6544, i32 noundef %6545, i32 noundef %6546, i32 noundef %6547, i32 noundef %6548, i32 noundef %6549, i32 noundef %6550)
  br label %6605

6551:                                             ; preds = %6535
  %6552 = load ptr, ptr %10, align 8, !tbaa !5
  %6553 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %6552, i32 noundef 3)
  %6554 = icmp eq i32 3, %6553
  br i1 %6554, label %6555, label %6573

6555:                                             ; preds = %6551
  %6556 = load ptr, ptr %6, align 8, !tbaa !5
  %6557 = load ptr, ptr %9, align 8, !tbaa !5
  %6558 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %6557, i32 0, i32 128
  %6559 = load i8, ptr %6558, align 4, !tbaa !11
  %6560 = load ptr, ptr %6, align 8, !tbaa !5
  %6561 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %6560, i32 0, i32 6
  %6562 = load i32, ptr %6561, align 4, !tbaa !20
  %6563 = icmp ult i32 %6562, 1101
  %6564 = zext i1 %6563 to i64
  %6565 = select i1 %6563, i32 0, i32 1
  %6566 = load ptr, ptr %6, align 8, !tbaa !5
  %6567 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %6566, i32 0, i32 6
  %6568 = load i32, ptr %6567, align 4, !tbaa !20
  %6569 = icmp ult i32 %6568, 1101
  %6570 = zext i1 %6569 to i64
  %6571 = select i1 %6569, i32 0, i32 1
  %6572 = trunc i32 %6571 to i8
  call void @libxsmm_x86_instruction_vec_compute_2reg_mask_sae_imm8(ptr noundef %6556, i32 noundef 671954205, i8 noundef signext %6559, i32 noundef 24, i32 noundef 24, i32 noundef 0, i32 noundef %6565, i8 noundef zeroext %6572, i32 noundef 0)
  br label %6604

6573:                                             ; preds = %6551
  %6574 = load ptr, ptr %10, align 8, !tbaa !5
  %6575 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %6574, i32 noundef 3)
  %6576 = icmp eq i32 2, %6575
  br i1 %6576, label %6577, label %6603

6577:                                             ; preds = %6573
  %6578 = load ptr, ptr %6, align 8, !tbaa !5
  %6579 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %6578, i32 0, i32 6
  %6580 = load i32, ptr %6579, align 4, !tbaa !20
  %6581 = icmp ult i32 %6580, 1103
  br i1 %6581, label %6582, label %6597

6582:                                             ; preds = %6577
  %6583 = load ptr, ptr %6, align 8, !tbaa !5
  %6584 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %6583, i32 0, i32 6
  %6585 = load i32, ptr %6584, align 4, !tbaa !20
  %6586 = icmp ne i32 %6585, 1053
  br i1 %6586, label %6587, label %6597

6587:                                             ; preds = %6582
  %6588 = load ptr, ptr %6, align 8, !tbaa !5
  %6589 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %6588, i32 0, i32 6
  %6590 = load i32, ptr %6589, align 4, !tbaa !20
  %6591 = icmp ne i32 %6590, 1008
  br i1 %6591, label %6592, label %6597

6592:                                             ; preds = %6587
  %6593 = load ptr, ptr %6, align 8, !tbaa !5
  %6594 = load ptr, ptr %9, align 8, !tbaa !5
  %6595 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %6594, i32 0, i32 128
  %6596 = load i8, ptr %6595, align 4, !tbaa !11
  call void @libxsmm_generator_vcvtneps2bf16_avx512_preppedstack(ptr noundef %6593, i8 noundef signext %6596, i32 noundef 24, i32 noundef 24, i32 noundef 25, i32 noundef 26, i32 noundef 3, i32 noundef 4, i32 noundef 0)
  br label %6602

6597:                                             ; preds = %6587, %6582, %6577
  %6598 = load ptr, ptr %6, align 8, !tbaa !5
  %6599 = load ptr, ptr %9, align 8, !tbaa !5
  %6600 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %6599, i32 0, i32 128
  %6601 = load i8, ptr %6600, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_2reg(ptr noundef %6598, i32 noundef 537273970, i8 noundef signext %6601, i32 noundef 24, i32 noundef 24)
  br label %6602

6602:                                             ; preds = %6597, %6592
  br label %6603

6603:                                             ; preds = %6602, %6573
  br label %6604

6604:                                             ; preds = %6603, %6555
  br label %6605

6605:                                             ; preds = %6604, %6539
  br label %6606

6606:                                             ; preds = %6605, %6530
  %6607 = load ptr, ptr %6, align 8, !tbaa !5
  %6608 = load ptr, ptr %9, align 8, !tbaa !5
  %6609 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %6608, i32 0, i32 0
  %6610 = load i32, ptr %6609, align 4, !tbaa !40
  %6611 = load i32, ptr %46, align 4, !tbaa !9
  %6612 = load ptr, ptr %8, align 8, !tbaa !5
  %6613 = getelementptr inbounds %struct.libxsmm_mateltwise_gp_reg_mapping_struct, ptr %6612, i32 0, i32 17
  %6614 = load i32, ptr %6613, align 4, !tbaa !27
  %6615 = load i8, ptr %43, align 1, !tbaa !13
  call void @libxsmm_x86_instruction_vec_move(ptr noundef %6607, i32 noundef %6610, i32 noundef %6611, i32 noundef %6614, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %6615, i32 noundef 24, i32 noundef 2, i32 noundef 0, i32 noundef 1)
  br label %6692

6616:                                             ; preds = %6481
  %6617 = load ptr, ptr %10, align 8, !tbaa !5
  %6618 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %6617, i32 noundef 3)
  %6619 = icmp eq i32 3, %6618
  br i1 %6619, label %6632, label %6620

6620:                                             ; preds = %6616
  %6621 = load ptr, ptr %10, align 8, !tbaa !5
  %6622 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %6621, i32 noundef 3)
  %6623 = icmp eq i32 2, %6622
  br i1 %6623, label %6632, label %6624

6624:                                             ; preds = %6620
  %6625 = load ptr, ptr %10, align 8, !tbaa !5
  %6626 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %6625, i32 noundef 3)
  %6627 = icmp eq i32 5, %6626
  br i1 %6627, label %6632, label %6628

6628:                                             ; preds = %6624
  %6629 = load ptr, ptr %10, align 8, !tbaa !5
  %6630 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %6629, i32 noundef 3)
  %6631 = icmp eq i32 4, %6630
  br i1 %6631, label %6632, label %6641

6632:                                             ; preds = %6628, %6624, %6620, %6616
  %6633 = load ptr, ptr %6, align 8, !tbaa !5
  %6634 = load ptr, ptr %9, align 8, !tbaa !5
  %6635 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %6634, i32 0, i32 0
  %6636 = load i32, ptr %6635, align 4, !tbaa !40
  %6637 = load i32, ptr %56, align 4, !tbaa !9
  %6638 = load ptr, ptr %9, align 8, !tbaa !5
  %6639 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %6638, i32 0, i32 128
  %6640 = load i8, ptr %6639, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_move(ptr noundef %6633, i32 noundef %6636, i32 noundef 537138704, i32 noundef %6637, i32 noundef 127, i32 noundef 0, i32 noundef 64, i8 noundef signext %6640, i32 noundef 25, i32 noundef 2, i32 noundef 1, i32 noundef 0)
  br label %6651

6641:                                             ; preds = %6628
  %6642 = load ptr, ptr %6, align 8, !tbaa !5
  %6643 = load ptr, ptr %9, align 8, !tbaa !5
  %6644 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %6643, i32 0, i32 0
  %6645 = load i32, ptr %6644, align 4, !tbaa !40
  %6646 = load i32, ptr %46, align 4, !tbaa !9
  %6647 = load ptr, ptr %8, align 8, !tbaa !5
  %6648 = getelementptr inbounds %struct.libxsmm_mateltwise_gp_reg_mapping_struct, ptr %6647, i32 0, i32 17
  %6649 = load i32, ptr %6648, align 4, !tbaa !27
  %6650 = load i8, ptr %43, align 1, !tbaa !13
  call void @libxsmm_x86_instruction_vec_move(ptr noundef %6642, i32 noundef %6645, i32 noundef %6646, i32 noundef %6649, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %6650, i32 noundef 25, i32 noundef 2, i32 noundef 1, i32 noundef 0)
  br label %6651

6651:                                             ; preds = %6641, %6632
  %6652 = load ptr, ptr %6, align 8, !tbaa !5
  %6653 = load i32, ptr %25, align 4, !tbaa !9
  %6654 = load ptr, ptr %9, align 8, !tbaa !5
  %6655 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %6654, i32 0, i32 128
  %6656 = load i8, ptr %6655, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %6652, i32 noundef %6653, i8 noundef signext %6656, i32 noundef 25, i32 noundef 24, i32 noundef 24)
  %6657 = load ptr, ptr %10, align 8, !tbaa !5
  %6658 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %6657, i32 noundef 3)
  %6659 = icmp eq i32 3, %6658
  br i1 %6659, label %6672, label %6660

6660:                                             ; preds = %6651
  %6661 = load ptr, ptr %10, align 8, !tbaa !5
  %6662 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %6661, i32 noundef 3)
  %6663 = icmp eq i32 2, %6662
  br i1 %6663, label %6672, label %6664

6664:                                             ; preds = %6660
  %6665 = load ptr, ptr %10, align 8, !tbaa !5
  %6666 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %6665, i32 noundef 3)
  %6667 = icmp eq i32 5, %6666
  br i1 %6667, label %6672, label %6668

6668:                                             ; preds = %6664
  %6669 = load ptr, ptr %10, align 8, !tbaa !5
  %6670 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %6669, i32 noundef 3)
  %6671 = icmp eq i32 4, %6670
  br i1 %6671, label %6672, label %6681

6672:                                             ; preds = %6668, %6664, %6660, %6651
  %6673 = load ptr, ptr %6, align 8, !tbaa !5
  %6674 = load ptr, ptr %9, align 8, !tbaa !5
  %6675 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %6674, i32 0, i32 0
  %6676 = load i32, ptr %6675, align 4, !tbaa !40
  %6677 = load i32, ptr %56, align 4, !tbaa !9
  %6678 = load ptr, ptr %9, align 8, !tbaa !5
  %6679 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %6678, i32 0, i32 128
  %6680 = load i8, ptr %6679, align 4, !tbaa !11
  call void @libxsmm_x86_instruction_vec_move(ptr noundef %6673, i32 noundef %6676, i32 noundef 537138704, i32 noundef %6677, i32 noundef 127, i32 noundef 0, i32 noundef 64, i8 noundef signext %6680, i32 noundef 24, i32 noundef 2, i32 noundef 0, i32 noundef 1)
  br label %6691

6681:                                             ; preds = %6668
  %6682 = load ptr, ptr %6, align 8, !tbaa !5
  %6683 = load ptr, ptr %9, align 8, !tbaa !5
  %6684 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %6683, i32 0, i32 0
  %6685 = load i32, ptr %6684, align 4, !tbaa !40
  %6686 = load i32, ptr %46, align 4, !tbaa !9
  %6687 = load ptr, ptr %8, align 8, !tbaa !5
  %6688 = getelementptr inbounds %struct.libxsmm_mateltwise_gp_reg_mapping_struct, ptr %6687, i32 0, i32 17
  %6689 = load i32, ptr %6688, align 4, !tbaa !27
  %6690 = load i8, ptr %43, align 1, !tbaa !13
  call void @libxsmm_x86_instruction_vec_move(ptr noundef %6682, i32 noundef %6685, i32 noundef %6686, i32 noundef %6689, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %6690, i32 noundef 24, i32 noundef 2, i32 noundef 0, i32 noundef 1)
  br label %6691

6691:                                             ; preds = %6681, %6672
  br label %6692

6692:                                             ; preds = %6691, %6606
  br label %6693

6693:                                             ; preds = %6692, %6471
  br label %6694

6694:                                             ; preds = %6693, %6286
  br label %6695

6695:                                             ; preds = %6694, %6152
  br label %6696

6696:                                             ; preds = %6695
  %6697 = load i32, ptr %12, align 4, !tbaa !9
  %6698 = add i32 %6697, 1
  store i32 %6698, ptr %12, align 4, !tbaa !9
  br label %4785, !llvm.loop !47

6699:                                             ; preds = %4785
  br label %6700

6700:                                             ; preds = %6699, %4781
  br label %6701

6701:                                             ; preds = %6700, %4780
  %6702 = load ptr, ptr %10, align 8, !tbaa !5
  %6703 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %6702, i32 noundef 3)
  %6704 = icmp eq i32 4, %6703
  br i1 %6704, label %6705, label %6707

6705:                                             ; preds = %6701
  %6706 = load ptr, ptr %6, align 8, !tbaa !5
  call void @libxsmm_generator_vcvtneps2bf8_avx512_clean_stack(ptr noundef %6706, i32 noundef 0)
  br label %6741

6707:                                             ; preds = %6701
  %6708 = load ptr, ptr %10, align 8, !tbaa !5
  %6709 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %6708, i32 noundef 3)
  %6710 = icmp eq i32 2, %6709
  br i1 %6710, label %6711, label %6729

6711:                                             ; preds = %6707
  %6712 = load ptr, ptr %6, align 8, !tbaa !5
  %6713 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %6712, i32 0, i32 6
  %6714 = load i32, ptr %6713, align 4, !tbaa !20
  %6715 = icmp ult i32 %6714, 1103
  br i1 %6715, label %6716, label %6728

6716:                                             ; preds = %6711
  %6717 = load ptr, ptr %6, align 8, !tbaa !5
  %6718 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %6717, i32 0, i32 6
  %6719 = load i32, ptr %6718, align 4, !tbaa !20
  %6720 = icmp ne i32 %6719, 1053
  br i1 %6720, label %6721, label %6728

6721:                                             ; preds = %6716
  %6722 = load ptr, ptr %6, align 8, !tbaa !5
  %6723 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %6722, i32 0, i32 6
  %6724 = load i32, ptr %6723, align 4, !tbaa !20
  %6725 = icmp ne i32 %6724, 1008
  br i1 %6725, label %6726, label %6728

6726:                                             ; preds = %6721
  %6727 = load ptr, ptr %6, align 8, !tbaa !5
  call void @libxsmm_generator_vcvtneps2bf16_avx512_clean_stack(ptr noundef %6727, i32 noundef 0)
  br label %6728

6728:                                             ; preds = %6726, %6721, %6716, %6711
  br label %6740

6729:                                             ; preds = %6707
  %6730 = load ptr, ptr %10, align 8, !tbaa !5
  %6731 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %6730, i32 noundef 0)
  %6732 = icmp eq i32 5, %6731
  br i1 %6732, label %6737, label %6733

6733:                                             ; preds = %6729
  %6734 = load ptr, ptr %10, align 8, !tbaa !5
  %6735 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %6734, i32 noundef 3)
  %6736 = icmp eq i32 5, %6735
  br i1 %6736, label %6737, label %6739

6737:                                             ; preds = %6733, %6729
  %6738 = load ptr, ptr %6, align 8, !tbaa !5
  call void @libxsmm_generator_vcvt_hf8_tofrom_f32_avx512_clean_stack(ptr noundef %6738, i32 noundef 0)
  br label %6739

6739:                                             ; preds = %6737, %6733
  br label %6740

6740:                                             ; preds = %6739, %6728
  br label %6741

6741:                                             ; preds = %6740, %6705
  store i32 0, ptr %57, align 4
  br label %6742

6742:                                             ; preds = %6741, %1914, %307, %286, %219
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %44) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %43) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %42) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #3
  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
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #3
  %6743 = load i32, ptr %57, align 4
  switch i32 %6743, label %6745 [
    i32 0, label %6744
    i32 1, label %6744
  ]

6744:                                             ; preds = %6742, %6742
  ret void

6745:                                             ; preds = %6742
  unreachable
}

declare void @libxsmm_generator_meltw_getval_stack_var(ptr noundef, i32 noundef, i32 noundef) #2

declare void @libxsmm_generator_load_vreg_infinity_double(ptr noundef, i8 noundef zeroext, i32 noundef, i32 noundef, i32 noundef) #2

declare void @libxsmm_generator_load_vreg_infinity(ptr noundef, i8 noundef zeroext, i32 noundef, i32 noundef, i32 noundef) #2

declare void @libxsmm_generator_hinstrpd_avx_avx512(ptr noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef) #2

declare void @libxsmm_generator_hinstrps_avx512(ptr noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef) #2

declare void @libxsmm_generator_hinstrps_avx(ptr noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef) #2

declare void @libxsmm_x86_instruction_mask_move(ptr noundef, i32 noundef, i32 noundef, i32 noundef) #2

declare void @libxsmm_x86_instruction_vec_compute_3reg_mask(ptr noundef, i32 noundef, i8 noundef signext, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef) #2

declare void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef, i32 noundef, i8 noundef signext, i32 noundef, i32 noundef, i32 noundef, i32 noundef) #2

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


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

@.str = external hidden unnamed_addr constant [94 x i8], align 1
@libxsmm_ninit = external local_unnamed_addr global i32, align 4
@libxsmm_verbosity = external local_unnamed_addr global i32, align 4
@.str.10 = external hidden unnamed_addr constant [69 x i8], align 1
@__func__.libxsmm_generator_reduce_rows_avx512_microkernel = external hidden unnamed_addr constant [49 x i8], align 1

; Function Attrs: nounwind uwtable
declare dso_local void @libxsmm_generator_reduce_set_lp_vlen_vname_vmove_x86(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #0

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

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

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

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

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

declare void @libxsmm_generator_initialize_avx_mask(ptr noundef, i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #2

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

declare void @libxsmm_generator_mateltwise_header_n_loop(ptr noundef, ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #2

declare void @libxsmm_x86_instruction_unified_vec_move(ptr noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i8 noundef signext, i32 noundef, i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #2

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

declare void @libxsmm_generator_mateltwise_footer_n_loop(ptr noundef, ptr noundef, ptr noundef, i32 noundef, i32 noundef) local_unnamed_addr #2

declare void @libxsmm_generator_vcvt_hf8_tofrom_f32_avx512_prep_stack(ptr noundef, i32 noundef) local_unnamed_addr #2

declare void @libxsmm_generator_initialize_avx512_mask(ptr noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #2

declare void @libxsmm_generator_vcvtneps2bf8_avx512_prep_stack(ptr noundef, i32 noundef) local_unnamed_addr #2

declare void @libxsmm_generator_vcvtneps2bf16_avx512_prep_stack(ptr noundef, i32 noundef) local_unnamed_addr #2

declare void @libxsmm_x86_instruction_vec_move(ptr noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i8 noundef signext, i32 noundef, i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #2

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

declare void @libxsmm_generator_cvtbf8ps_avx512(ptr noundef, i8 noundef signext, i32 noundef, i32 noundef) local_unnamed_addr #2

declare void @libxsmm_generator_vcvthf8_to_f32_avx512_preppedstack(ptr noundef, i8 noundef signext, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #2

declare void @libxsmm_generator_vcvtneps2bf8_avx512_preppedstack(ptr noundef, i8 noundef signext, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #2

declare void @libxsmm_generator_vcvtf32_to_hf8_avx512_preppedstack(ptr noundef, i8 noundef signext, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #2

declare void @libxsmm_generator_vcvtneps2bf16_avx512_preppedstack(ptr noundef, i8 noundef signext, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #2

declare void @libxsmm_x86_instruction_vec_compute_2reg_mask_sae_imm8(ptr noundef, i32 noundef, i8 noundef signext, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i8 noundef zeroext, i32 noundef) local_unnamed_addr #2

declare void @libxsmm_generator_vcvtneps2bf8_avx512_clean_stack(ptr noundef, i32 noundef) local_unnamed_addr #2

declare void @libxsmm_generator_vcvtneps2bf16_avx512_clean_stack(ptr noundef, i32 noundef) local_unnamed_addr #2

declare void @libxsmm_generator_vcvt_hf8_tofrom_f32_avx512_clean_stack(ptr noundef, i32 noundef) local_unnamed_addr #2

; Function Attrs: nofree nounwind
declare noundef i32 @printf(ptr nocapture noundef readonly, ...) local_unnamed_addr #3

declare void @libxsmm_generator_load_vreg_signmask(ptr noundef, i8 noundef zeroext, i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #2

declare void @libxsmm_x86_instruction_alu_reg(ptr noundef, i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #2

declare void @libxsmm_generator_mateltwise_header_m_loop(ptr noundef, ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #2

declare void @libxsmm_generator_cvtbf16ps_sse_avx2_avx512(ptr noundef, i8 noundef signext, i32 noundef, i32 noundef) local_unnamed_addr #2

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 #2

declare void @libxsmm_generator_mateltwise_footer_m_loop(ptr noundef, ptr noundef, ptr noundef, i32 noundef, i32 noundef) local_unnamed_addr #2

; Function Attrs: nounwind uwtable
define dso_local void @libxsmm_generator_reduce_rows_avx512_microkernel(ptr noundef %0, ptr noundef %1, ptr nocapture noundef %2, ptr noundef %3, ptr noundef %4) local_unnamed_addr #0 {
switch.edge:
  %5 = alloca i32, align 4
  %6 = alloca i8, align 1
  %7 = alloca i8, align 1
  %8 = alloca i32, align 4
  %9 = alloca i32, align 4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %5) #4
  store i32 16, ptr %5, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %6) #4
  %10 = getelementptr inbounds i8, ptr %3, i64 512
  %11 = load i8, ptr %10, align 4, !tbaa !9
  store i8 %11, ptr %6, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %7) #4
  store i8 %11, ptr %7, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %8) #4
  %12 = getelementptr inbounds i8, ptr %3, i64 24
  %13 = load i32, ptr %12, align 4, !tbaa !12
  store i32 %13, ptr %8, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %9) #4
  %14 = getelementptr inbounds i8, ptr %3, i64 36
  %15 = load i32, ptr %14, align 4, !tbaa !13
  store i32 %15, ptr %9, align 4, !tbaa !5
  %16 = getelementptr inbounds i8, ptr %4, i64 29
  %17 = load i16, ptr %16, align 1, !tbaa !14
  %switch.tableidx = add i16 %17, -18
  %18 = icmp ult i16 %switch.tableidx, 53
  %switch.cast = zext nneg i16 %switch.tableidx to i53
  %switch.downshift = lshr i53 -2251799813685235, %switch.cast
  %switch.masked = trunc i53 %switch.downshift to i1
  %19 = select i1 %18, i1 %switch.masked, i1 false
  %.off2984 = add i16 %17, -18
  %switch2985 = icmp ult i16 %.off2984, 3
  %20 = icmp eq i16 %17, 21
  %21 = icmp eq i16 %17, 70
  %22 = icmp eq i16 %17, 69
  %23 = zext i1 %22 to i32
  %24 = getelementptr inbounds i8, ptr %4, i64 27
  %25 = load i16, ptr %24, align 1, !tbaa !17
  %26 = and i16 %25, 64
  %27 = icmp ne i16 %26, 0
  call void @libxsmm_generator_reduce_set_lp_vlen_vname_vmove_x86(ptr noundef %0, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef nonnull %5, ptr noundef nonnull %6, ptr noundef nonnull %7, ptr noundef nonnull %8, ptr noundef nonnull %9)
  %28 = getelementptr inbounds i8, ptr %0, i64 28
  %29 = load i32, ptr %28, align 4, !tbaa !18
  %30 = add i32 %29, -1006
  %or.cond2788 = icmp ult i32 %30, 95
  %.02690 = select i1 %or.cond2788, i32 1, i32 78
  %31 = load i32, ptr %4, align 1, !tbaa !21
  %32 = getelementptr inbounds i8, ptr %4, i64 8
  %33 = load i32, ptr %32, align 1, !tbaa !22
  %34 = icmp ugt i32 %31, %33
  br i1 %34, label %35, label %40

35:                                               ; preds = %switch.edge
  %36 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !5
  %37 = icmp ugt i32 %36, 1
  %38 = load i32, ptr @libxsmm_verbosity, align 4
  %39 = select i1 %37, i32 %38, i32 1
  call void @libxsmm_handle_error(ptr noundef nonnull %0, i32 noundef 90007, ptr noundef nonnull @__func__.libxsmm_generator_reduce_rows_avx512_microkernel, ptr noundef nonnull @.str, i32 noundef 1599, i32 noundef %39) #4
  br label %2395

40:                                               ; preds = %switch.edge
  br i1 %switch2985, label %59, label %41

41:                                               ; preds = %40
  switch i16 %17, label %49 [
    i16 70, label %42
    i16 21, label %42
  ]

42:                                               ; preds = %41, %41
  %43 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 4) #4
  %44 = icmp eq i32 %43, 0
  %45 = load i32, ptr %28, align 4, !tbaa !18
  %46 = icmp ugt i32 %45, 1050
  br i1 %44, label %47, label %48

47:                                               ; preds = %42
  %.2791 = select i1 %46, i32 -259180976, i32 814028507
  br label %.thread3072

48:                                               ; preds = %42
  %.2792 = select i1 %46, i32 -267569584, i32 814028507
  br label %.thread3072

49:                                               ; preds = %41
  br i1 %22, label %50, label %53

50:                                               ; preds = %49
  %51 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 4) #4
  %52 = icmp eq i32 %51, 0
  %.2793 = select i1 %52, i32 814028381, i32 805573981
  br label %.thread3072

53:                                               ; preds = %49
  %54 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.10)
  %55 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !5
  %56 = icmp ugt i32 %55, 1
  %57 = load i32, ptr @libxsmm_verbosity, align 4
  %58 = select i1 %56, i32 %57, i32 1
  call void @libxsmm_handle_error(ptr noundef nonnull %0, i32 noundef 90000, ptr noundef nonnull @__func__.libxsmm_generator_reduce_rows_avx512_microkernel, ptr noundef nonnull @.str, i32 noundef 1646, i32 noundef %58) #4
  br label %2395

59:                                               ; preds = %40
  %60 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 4) #4
  %61 = icmp eq i32 %60, 0
  %.2790 = select i1 %61, i32 814028376, i32 805574232
  br label %.thread3072

.thread3072:                                      ; preds = %59, %47, %48, %50
  %.026703079 = phi i32 [ %.2790, %59 ], [ %.2793, %50 ], [ 805574239, %48 ], [ 814028383, %47 ]
  %.026843077 = phi i32 [ 0, %59 ], [ 0, %50 ], [ %.2792, %48 ], [ %.2791, %47 ]
  %62 = getelementptr inbounds i8, ptr %2, i64 4
  store i32 8, ptr %62, align 4, !tbaa !23
  %63 = getelementptr inbounds i8, ptr %2, i64 64
  store i32 9, ptr %63, align 4, !tbaa !25
  %64 = getelementptr inbounds i8, ptr %2, i64 68
  store i32 10, ptr %64, align 4, !tbaa !26
  %65 = getelementptr inbounds i8, ptr %2, i64 96
  store i32 11, ptr %65, align 4, !tbaa !27
  %66 = getelementptr inbounds i8, ptr %2, i64 100
  store i32 0, ptr %66, align 4, !tbaa !28
  call void @libxsmm_generator_meltw_getval_stack_var(ptr noundef nonnull %0, i32 noundef 13, i32 noundef 1) #4
  %67 = getelementptr inbounds i8, ptr %3, i64 56
  %68 = load i32, ptr %67, align 4, !tbaa !29
  %69 = load i32, ptr %2, align 4, !tbaa !30
  %70 = load i32, ptr %62, align 4, !tbaa !23
  call void @libxsmm_x86_instruction_alu_mem(ptr noundef nonnull %0, i32 noundef %68, i32 noundef %69, i32 noundef 127, i32 noundef 0, i32 noundef 32, i32 noundef %70, i32 noundef 0) #4
  %71 = load i32, ptr %67, align 4, !tbaa !29
  %72 = load i32, ptr %2, align 4, !tbaa !30
  br i1 %19, label %73, label %86

73:                                               ; preds = %.thread3072
  %74 = load i32, ptr %63, align 4, !tbaa !25
  call void @libxsmm_x86_instruction_alu_mem(ptr noundef nonnull %0, i32 noundef %71, i32 noundef %72, i32 noundef 127, i32 noundef 0, i32 noundef 80, i32 noundef %74, i32 noundef 0) #4
  %.off = add nsw i16 %17, -19
  %switch = icmp ult i16 %.off, 2
  br i1 %switch, label %75, label %88

75:                                               ; preds = %73
  %76 = getelementptr inbounds i8, ptr %4, i64 4
  %77 = load i32, ptr %76, align 1, !tbaa !31
  %78 = getelementptr inbounds i8, ptr %3, i64 20
  %79 = load i32, ptr %78, align 4, !tbaa !32
  %80 = mul i32 %79, %77
  %81 = load i32, ptr %67, align 4, !tbaa !29
  %82 = load i32, ptr %63, align 4, !tbaa !25
  %83 = load i32, ptr %64, align 4, !tbaa !26
  call void @libxsmm_x86_instruction_alu_reg(ptr noundef nonnull %0, i32 noundef %81, i32 noundef %82, i32 noundef %83) #4
  %84 = load i32, ptr %64, align 4, !tbaa !26
  %85 = zext i32 %80 to i64
  call void @libxsmm_x86_instruction_alu_imm(ptr noundef nonnull %0, i32 noundef 30000, i32 noundef %84, i64 noundef %85) #4
  br label %88

86:                                               ; preds = %.thread3072
  %87 = load i32, ptr %64, align 4, !tbaa !26
  call void @libxsmm_x86_instruction_alu_mem(ptr noundef nonnull %0, i32 noundef %71, i32 noundef %72, i32 noundef 127, i32 noundef 0, i32 noundef 80, i32 noundef %87, i32 noundef 0) #4
  br label %88

88:                                               ; preds = %73, %75, %86
  %89 = load i32, ptr %4, align 1, !tbaa !21
  %90 = icmp ugt i32 %89, 255
  %or.cond7 = or i1 %21, %90
  br i1 %or.cond7, label %97, label %91

91:                                               ; preds = %88
  %92 = load i32, ptr %28, align 4, !tbaa !18
  %93 = icmp ult i32 %92, 1051
  br i1 %93, label %97, label %94

94:                                               ; preds = %91
  %95 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 4) #4
  %96 = icmp eq i32 %95, 0
  br i1 %96, label %97, label %627

97:                                               ; preds = %94, %91, %88
  %98 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 4) #4
  %99 = icmp eq i32 %98, 0
  %.2794 = select i1 %99, i32 4, i32 8
  store i32 %.2794, ptr %5, align 4, !tbaa !5
  %100 = load i32, ptr %28, align 4, !tbaa !18
  %101 = icmp ugt i32 %100, 1050
  br i1 %101, label %102, label %.thread

102:                                              ; preds = %97
  %103 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 4) #4
  %104 = icmp eq i32 %103, 0
  %105 = load i32, ptr %28, align 4, !tbaa !18
  br i1 %104, label %106, label %109

106:                                              ; preds = %102
  %107 = icmp ugt i32 %105, 1100
  br i1 %107, label %108, label %.thread

108:                                              ; preds = %106
  store i32 8, ptr %5, align 4, !tbaa !5
  br label %.thread

109:                                              ; preds = %102
  %110 = icmp ugt i32 %105, 1050
  br i1 %110, label %111, label %.thread

111:                                              ; preds = %109
  %112 = load i32, ptr %4, align 1, !tbaa !21
  %113 = icmp ugt i32 %112, 255
  %or.cond9 = or i1 %21, %113
  br i1 %or.cond9, label %114, label %.thread

114:                                              ; preds = %111
  %115 = icmp ugt i32 %105, 1100
  br i1 %115, label %116, label %117

116:                                              ; preds = %114
  store i32 16, ptr %5, align 4, !tbaa !5
  br label %.thread

117:                                              ; preds = %114
  store i32 8, ptr %5, align 4, !tbaa !5
  br label %.thread

.thread:                                          ; preds = %97, %109, %111, %117, %116, %108, %106
  %118 = phi i32 [ %105, %108 ], [ %105, %106 ], [ %105, %116 ], [ %105, %117 ], [ %105, %111 ], [ %105, %109 ], [ %100, %97 ]
  %.02699 = phi i32 [ 6, %108 ], [ 6, %106 ], [ 7, %116 ], [ 7, %117 ], [ 6, %111 ], [ 6, %109 ], [ 6, %97 ]
  %.02698 = phi i32 [ 5, %108 ], [ 5, %106 ], [ 6, %116 ], [ 6, %117 ], [ 5, %111 ], [ 5, %109 ], [ 5, %97 ]
  %.02697 = phi i32 [ 4, %108 ], [ 4, %106 ], [ 5, %116 ], [ 5, %117 ], [ 4, %111 ], [ 4, %109 ], [ 4, %97 ]
  %.02696 = phi i8 [ %11, %108 ], [ %11, %106 ], [ 122, %116 ], [ 121, %117 ], [ %11, %111 ], [ %11, %109 ], [ %11, %97 ]
  %.02695 = phi i32 [ 27, %108 ], [ 27, %106 ], [ 29, %116 ], [ 29, %117 ], [ 27, %111 ], [ 27, %109 ], [ 27, %97 ]
  %.02693 = phi i32 [ 31, %108 ], [ 31, %106 ], [ 30, %116 ], [ 30, %117 ], [ 31, %111 ], [ 31, %109 ], [ 31, %97 ]
  %.02691 = phi i32 [ 30, %108 ], [ 30, %106 ], [ 31, %116 ], [ 31, %117 ], [ 30, %111 ], [ 30, %109 ], [ 30, %97 ]
  %.02683 = phi i32 [ 31, %108 ], [ 31, %106 ], [ 27, %116 ], [ 27, %117 ], [ 15, %111 ], [ 15, %109 ], [ 15, %97 ]
  %.02682 = phi i32 [ 30, %108 ], [ 30, %106 ], [ 26, %116 ], [ 26, %117 ], [ 14, %111 ], [ 14, %109 ], [ 14, %97 ]
  %.02676 = phi i32 [ 30, %108 ], [ 30, %106 ], [ 26, %116 ], [ 26, %117 ], [ 13, %111 ], [ 13, %109 ], [ 13, %97 ]
  %119 = phi i1 [ true, %108 ], [ true, %106 ], [ false, %116 ], [ false, %117 ], [ false, %111 ], [ false, %109 ], [ false, %97 ]
  %120 = phi i1 [ false, %108 ], [ false, %106 ], [ true, %116 ], [ true, %117 ], [ false, %111 ], [ false, %109 ], [ false, %97 ]
  %121 = load i32, ptr %4, align 1, !tbaa !21
  %122 = getelementptr inbounds i8, ptr %4, i64 4
  %123 = load i32, ptr %122, align 1, !tbaa !31
  %124 = load i32, ptr %5, align 4, !tbaa !5
  %125 = urem i32 %121, %124
  %126 = icmp ne i32 %125, 0
  %127 = add i32 %121, -1
  %128 = add i32 %127, %124
  %129 = udiv i32 %128, %124
  %130 = icmp ugt i32 %129, 16
  br i1 %130, label %131, label %138

131:                                              ; preds = %.thread
  %132 = lshr i32 %129, 4
  %133 = and i32 %129, 15
  %134 = icmp eq i32 %133, 0
  %or.cond11 = and i1 %126, %134
  br i1 %or.cond11, label %.thread2987, label %139

.thread2987:                                      ; preds = %131
  %135 = add nsw i32 %132, -1
  %136 = shl nuw i32 %135, 4
  %137 = sub i32 %129, %136
  br label %140

138:                                              ; preds = %.thread
  %not.3032 = xor i1 %126, true
  %spec.select2795 = zext i1 %not.3032 to i32
  %spec.select2796 = select i1 %126, i32 %129, i32 0
  br label %139

139:                                              ; preds = %138, %131
  %.02689 = phi i32 [ %132, %131 ], [ %spec.select2795, %138 ]
  %.02688 = phi i32 [ %133, %131 ], [ %spec.select2796, %138 ]
  %.02687 = phi i32 [ 16, %131 ], [ %129, %138 ]
  br i1 %126, label %140, label %152

140:                                              ; preds = %.thread2987, %139
  %.026872999 = phi i32 [ 16, %.thread2987 ], [ %.02687, %139 ]
  %.026882996 = phi i32 [ %137, %.thread2987 ], [ %.02688, %139 ]
  %.026892993 = phi i32 [ %135, %.thread2987 ], [ %.02689, %139 ]
  switch i16 %17, label %.thread3000 [
    i16 70, label %141
    i16 69, label %141
    i16 21, label %141
  ]

141:                                              ; preds = %140, %140, %140
  %142 = add nsw i32 %.02676, -1
  %143 = icmp ult i32 %118, 1051
  %or.cond3087 = select i1 %21, i1 %143, i1 false
  %144 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 4) #4
  %145 = icmp eq i32 %144, 0
  br i1 %or.cond3087, label %146, label %149

146:                                              ; preds = %141
  br i1 %145, label %147, label %148

147:                                              ; preds = %146
  call void @libxsmm_generator_load_vreg_signmask(ptr noundef nonnull %0, i8 noundef zeroext %.02696, i32 noundef 0, i32 noundef %142, i32 noundef 0) #4
  br label %.thread3000

148:                                              ; preds = %146
  call void @libxsmm_generator_load_vreg_signmask(ptr noundef nonnull %0, i8 noundef zeroext %.02696, i32 noundef 0, i32 noundef %142, i32 noundef 1) #4
  br label %.thread3000

149:                                              ; preds = %141
  br i1 %145, label %150, label %151

150:                                              ; preds = %149
  call void @libxsmm_generator_load_vreg_infinity_double(ptr noundef nonnull %0, i8 noundef zeroext %.02696, i32 noundef 0, i32 noundef %142, i32 noundef %23) #4
  br label %.thread3000

151:                                              ; preds = %149
  call void @libxsmm_generator_load_vreg_infinity(ptr noundef nonnull %0, i8 noundef zeroext %.02696, i32 noundef 0, i32 noundef %142, i32 noundef %23) #4
  br label %.thread3000

152:                                              ; preds = %139
  br i1 %21, label %153, label %.thread3000

153:                                              ; preds = %152
  %154 = add nsw i32 %.02676, -1
  %155 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 4) #4
  %156 = icmp eq i32 %155, 0
  br i1 %156, label %157, label %158

157:                                              ; preds = %153
  call void @libxsmm_generator_load_vreg_signmask(ptr noundef nonnull %0, i8 noundef zeroext %.02696, i32 noundef 0, i32 noundef %154, i32 noundef 0) #4
  br label %.thread3000

158:                                              ; preds = %153
  call void @libxsmm_generator_load_vreg_signmask(ptr noundef nonnull %0, i8 noundef zeroext %.02696, i32 noundef 0, i32 noundef %154, i32 noundef 1) #4
  br label %.thread3000

.thread3000:                                      ; preds = %140, %152, %158, %157, %148, %147, %151, %150
  %.026872997 = phi i32 [ %.026872999, %147 ], [ %.026872999, %148 ], [ %.026872999, %150 ], [ %.026872999, %151 ], [ %.02687, %157 ], [ %.02687, %158 ], [ %.02687, %152 ], [ %.026872999, %140 ]
  %.026882994 = phi i32 [ %.026882996, %147 ], [ %.026882996, %148 ], [ %.026882996, %150 ], [ %.026882996, %151 ], [ %.02688, %157 ], [ %.02688, %158 ], [ %.02688, %152 ], [ %.026882996, %140 ]
  %.026892991 = phi i32 [ %.026892993, %147 ], [ %.026892993, %148 ], [ %.026892993, %150 ], [ %.026892993, %151 ], [ %.02689, %157 ], [ %.02689, %158 ], [ %.02689, %152 ], [ %.026892993, %140 ]
  %.02685 = phi i32 [ %142, %147 ], [ %142, %148 ], [ %142, %150 ], [ %142, %151 ], [ %154, %157 ], [ %154, %158 ], [ 24, %152 ], [ 24, %140 ]
  %.12677 = phi i32 [ %142, %147 ], [ %142, %148 ], [ %142, %150 ], [ %142, %151 ], [ %154, %157 ], [ %154, %158 ], [ %.02676, %152 ], [ %.02676, %140 ]
  %159 = add nsw i32 %.12677, -1
  %.22678 = select i1 %27, i32 %159, i32 %.12677
  %160 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %161 = icmp eq i32 %160, 4
  br i1 %161, label %162, label %163

162:                                              ; preds = %.thread3000
  call void @libxsmm_generator_vcvtneps2bf8_avx512_prep_stack(ptr noundef nonnull %0, i32 noundef 0) #4
  br label %177

163:                                              ; preds = %.thread3000
  %164 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %165 = icmp eq i32 %164, 2
  br i1 %165, label %166, label %170

166:                                              ; preds = %163
  %167 = load i32, ptr %28, align 4, !tbaa !18
  %.fr3033 = freeze i32 %167
  %168 = icmp ugt i32 %.fr3033, 1102
  br i1 %168, label %177, label %switch.early.test

switch.early.test:                                ; preds = %166
  switch i32 %.fr3033, label %169 [
    i32 1053, label %177
    i32 1008, label %177
  ]

169:                                              ; preds = %switch.early.test
  call void @libxsmm_generator_vcvtneps2bf16_avx512_prep_stack(ptr noundef nonnull %0, i32 noundef 0) #4
  br label %177

170:                                              ; preds = %163
  %171 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 0) #4
  %172 = icmp eq i32 %171, 5
  br i1 %172, label %176, label %173

173:                                              ; preds = %170
  %174 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %175 = icmp eq i32 %174, 5
  br i1 %175, label %176, label %177

176:                                              ; preds = %173, %170
  call void @libxsmm_generator_vcvt_hf8_tofrom_f32_avx512_prep_stack(ptr noundef nonnull %0, i32 noundef 0) #4
  br label %177

177:                                              ; preds = %switch.early.test, %switch.early.test, %166, %169, %176, %173, %162
  br i1 %120, label %178, label %181

178:                                              ; preds = %177
  %179 = load i32, ptr %5, align 4, !tbaa !5
  %180 = add i32 %179, -1
  call void @libxsmm_generator_initialize_avx512_mask(ptr noundef nonnull %0, i32 noundef 0, i32 noundef 1, i32 noundef %180, i32 noundef 1) #4
  br label %197

181:                                              ; preds = %177
  %182 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %183 = icmp eq i32 %182, 2
  br i1 %183, label %184, label %187

184:                                              ; preds = %181
  %185 = add nsw i32 %.22678, -1
  %186 = add nsw i32 %.22678, -2
  br label %197

187:                                              ; preds = %181
  %188 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %189 = icmp eq i32 %188, 3
  br i1 %189, label %197, label %190

190:                                              ; preds = %187
  br i1 %119, label %191, label %195

191:                                              ; preds = %190
  %192 = load i32, ptr %5, align 4, !tbaa !5
  %193 = add i32 %192, -1
  %194 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  call void @libxsmm_generator_initialize_avx512_mask(ptr noundef nonnull %0, i32 noundef 0, i32 noundef 1, i32 noundef %193, i32 noundef %194) #4
  br label %197

195:                                              ; preds = %190
  %196 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  call void @libxsmm_generator_initialize_avx_mask(ptr noundef nonnull %0, i32 noundef 13, i32 noundef 1, i32 noundef %196) #4
  br label %197

197:                                              ; preds = %187, %184, %191, %195, %178
  %.12694 = phi i32 [ %.02693, %178 ], [ %186, %184 ], [ %.02693, %191 ], [ %.02693, %195 ], [ %.02693, %187 ]
  %.12692 = phi i32 [ %.02691, %178 ], [ %185, %184 ], [ %.02691, %191 ], [ %.02691, %195 ], [ %.02691, %187 ]
  %.02681 = phi i32 [ 1, %178 ], [ 1, %184 ], [ 1, %191 ], [ 13, %195 ], [ 1, %187 ]
  %.32679 = phi i32 [ %.22678, %178 ], [ %186, %184 ], [ %.22678, %191 ], [ %.22678, %195 ], [ %.22678, %187 ]
  br i1 %126, label %198, label %217

198:                                              ; preds = %197
  %or.cond19 = or i1 %119, %120
  br i1 %or.cond19, label %199, label %204

199:                                              ; preds = %198
  %200 = load i32, ptr %5, align 4, !tbaa !5
  %201 = urem i32 %121, %200
  %202 = sub i32 %200, %201
  %not. = xor i1 %119, true
  %203 = zext i1 %not. to i32
  call void @libxsmm_generator_initialize_avx512_mask(ptr noundef nonnull %0, i32 noundef 0, i32 noundef 2, i32 noundef %202, i32 noundef %203) #4
  br label %217

204:                                              ; preds = %198
  %205 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 4) #4
  %206 = add nsw i32 %.32679, -1
  %207 = load i32, ptr %5, align 4, !tbaa !5
  %208 = urem i32 %121, %207
  call void @libxsmm_generator_initialize_avx_mask(ptr noundef nonnull %0, i32 noundef %206, i32 noundef %208, i32 noundef %205) #4
  %209 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 0) #4
  %210 = icmp eq i32 %209, 2
  br i1 %210, label %214, label %211

211:                                              ; preds = %204
  %212 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 0) #4
  %213 = icmp eq i32 %212, 3
  br i1 %213, label %214, label %217

214:                                              ; preds = %211, %204
  %215 = load i32, ptr %5, align 4, !tbaa !5
  %216 = urem i32 %121, %215
  br label %217

217:                                              ; preds = %214, %211, %199, %197
  %.42680 = phi i32 [ %.32679, %199 ], [ %.32679, %197 ], [ %206, %211 ], [ %206, %214 ]
  %.02675 = phi i32 [ 2, %199 ], [ 0, %197 ], [ %206, %211 ], [ %206, %214 ]
  %.12674 = phi i32 [ 2, %199 ], [ 0, %197 ], [ %206, %211 ], [ %216, %214 ]
  %218 = icmp ugt i32 %123, 1
  br i1 %218, label %219, label %221

219:                                              ; preds = %217
  %220 = load i32, ptr %66, align 4, !tbaa !28
  call void @libxsmm_generator_mateltwise_header_n_loop(ptr noundef nonnull %0, ptr noundef %1, ptr noundef nonnull %3, i32 noundef %220) #4
  br label %221

221:                                              ; preds = %219, %217
  br i1 %19, label %222, label %275

222:                                              ; preds = %221
  switch i16 %17, label %.thread3004 [
    i16 70, label %223
    i16 20, label %223
    i16 19, label %223
    i16 18, label %223
    i16 69, label %225
    i16 21, label %225
  ]

223:                                              ; preds = %222, %222, %222, %222
  %224 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef nonnull %0, i32 noundef 805574231, i8 noundef signext %224, i32 noundef %.02683, i32 noundef %.02683, i32 noundef %.02683) #4
  br label %275

225:                                              ; preds = %222, %222
  %226 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 0) #4
  %227 = icmp eq i32 %226, 4
  br i1 %227, label %231, label %228

228:                                              ; preds = %225
  %229 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 0) #4
  %230 = icmp eq i32 %229, 5
  br i1 %230, label %231, label %235

231:                                              ; preds = %228, %225
  %232 = load i32, ptr %28, align 4, !tbaa !18
  %233 = icmp ugt i32 %232, 1100
  %234 = icmp eq i32 %129, 1
  %or.cond25 = and i1 %126, %234
  %or.cond2798 = or i1 %or.cond25, %233
  br i1 %or.cond2798, label %235, label %237

235:                                              ; preds = %231, %228
  %236 = load i32, ptr %8, align 4, !tbaa !5
  br label %237

237:                                              ; preds = %231, %235
  %238 = phi i32 [ %236, %235 ], [ 545725200, %231 ]
  %239 = load i32, ptr %62, align 4, !tbaa !23
  %240 = load i8, ptr %6, align 1, !tbaa !11
  %241 = icmp eq i32 %129, 1
  %242 = and i1 %126, %241
  %243 = zext i1 %242 to i32
  %244 = select i1 %242, i32 %.12674, i32 0
  call void @libxsmm_x86_instruction_unified_vec_move(ptr noundef nonnull %0, i32 noundef %238, i32 noundef %239, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %240, i32 noundef %.02683, i32 noundef %243, i32 noundef %244, i32 noundef 0) #4
  %245 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 0) #4
  %246 = icmp eq i32 %245, 4
  br i1 %246, label %247, label %249

247:                                              ; preds = %237
  %248 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_generator_cvtbf8ps_avx512(ptr noundef nonnull %0, i8 noundef signext %248, i32 noundef %.02683, i32 noundef %.02683) #4
  br label %264

249:                                              ; preds = %237
  %250 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 0) #4
  %251 = icmp eq i32 %250, 5
  br i1 %251, label %252, label %254

252:                                              ; preds = %249
  %253 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_generator_vcvthf8_to_f32_avx512_preppedstack(ptr noundef nonnull %0, i8 noundef signext %253, i32 noundef %.02683, i32 noundef %.02683, i32 noundef %.12692, i32 noundef %.12694, i32 noundef %.02699, i32 noundef %.02698) #4
  br label %264

254:                                              ; preds = %249
  %255 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 0) #4
  %256 = icmp eq i32 %255, 3
  br i1 %256, label %257, label %259

257:                                              ; preds = %254
  %258 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_2reg(ptr noundef nonnull %0, i32 noundef 537208083, i8 noundef signext %258, i32 noundef %.02683, i32 noundef %.02683) #4
  br label %264

259:                                              ; preds = %254
  %260 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 0) #4
  %261 = icmp eq i32 %260, 2
  br i1 %261, label %262, label %264

262:                                              ; preds = %259
  %263 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_generator_cvtbf16ps_sse_avx2_avx512(ptr noundef nonnull %0, i8 noundef signext %263, i32 noundef %.02683, i32 noundef %.02683) #4
  br label %264

264:                                              ; preds = %252, %259, %262, %257, %247
  br i1 %242, label %265, label %.thread3004

265:                                              ; preds = %264
  %or.cond31 = or i1 %119, %120
  %266 = shl nuw nsw i32 %.02675, 4
  %267 = select i1 %or.cond31, i32 0, i32 %266
  %268 = select i1 %or.cond31, i32 %.02675, i32 0
  %.mux = select i1 %119, i32 -259709340, i32 -268097947
  br i1 %or.cond31, label %273, label %269

269:                                              ; preds = %265
  %270 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 4) #4
  %271 = icmp eq i32 %270, 0
  %272 = select i1 %271, i32 1879912523, i32 1879912522
  br label %273

273:                                              ; preds = %265, %269
  %274 = phi i32 [ %.mux, %265 ], [ %272, %269 ]
  call void @libxsmm_x86_instruction_vec_compute_3reg_mask_sae_imm8(ptr noundef nonnull %0, i32 noundef %274, i8 noundef signext %.02696, i32 noundef %.02683, i32 noundef %.02685, i32 noundef %.02683, i32 noundef %268, i32 noundef 0, i8 noundef zeroext 0, i32 noundef %267) #4
  br label %.thread3004

275:                                              ; preds = %223, %221
  %.off2856 = add nsw i16 %17, -19
  %switch2857 = icmp ult i16 %.off2856, 2
  br i1 %switch2857, label %276, label %.thread3004

276:                                              ; preds = %275
  %277 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef nonnull %0, i32 noundef 805574231, i8 noundef signext %277, i32 noundef %.02682, i32 noundef %.02682, i32 noundef %.02682) #4
  br label %.thread3004

.thread3004:                                      ; preds = %273, %264, %222, %275, %276
  %switch28573007 = phi i1 [ false, %275 ], [ true, %276 ], [ false, %222 ], [ false, %264 ], [ false, %273 ]
  %.not2776 = icmp eq i32 %.026892991, 0
  br i1 %.not2776, label %351, label %278

278:                                              ; preds = %.thread3004
  %279 = load i32, ptr %65, align 4, !tbaa !27
  call void @libxsmm_generator_mateltwise_header_m_loop(ptr noundef nonnull %0, ptr noundef %1, ptr noundef nonnull %3, i32 noundef %279) #4
  %.not3067 = icmp eq i32 %.026872997, 0
  br i1 %.not3067, label %._crit_edge3059, label %.lr.ph3058

.lr.ph3058:                                       ; preds = %278
  %280 = getelementptr inbounds i8, ptr %3, i64 8
  br label %281

281:                                              ; preds = %.lr.ph3058, %337
  %.026643056 = phi i32 [ 0, %.lr.ph3058 ], [ %338, %337 ]
  %282 = urem i32 %.026643056, %.42680
  %283 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 0) #4
  %284 = icmp eq i32 %283, 4
  br i1 %284, label %288, label %285

285:                                              ; preds = %281
  %286 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 0) #4
  %287 = icmp eq i32 %286, 5
  br i1 %287, label %288, label %291

288:                                              ; preds = %285, %281
  %289 = load i32, ptr %28, align 4, !tbaa !18
  %290 = icmp ult i32 %289, 1101
  br i1 %290, label %293, label %291

291:                                              ; preds = %288, %285
  %292 = load i32, ptr %8, align 4, !tbaa !5
  br label %293

293:                                              ; preds = %288, %291
  %294 = phi i32 [ %292, %291 ], [ 545725200, %288 ]
  %295 = load i32, ptr %62, align 4, !tbaa !23
  %296 = load i32, ptr %5, align 4, !tbaa !5
  %297 = mul i32 %296, %.026643056
  %298 = load i32, ptr %280, align 4, !tbaa !33
  %299 = mul i32 %297, %298
  %300 = load i8, ptr %6, align 1, !tbaa !11
  call void @libxsmm_x86_instruction_unified_vec_move(ptr noundef %0, i32 noundef %294, i32 noundef %295, i32 noundef 127, i32 noundef 0, i32 noundef %299, i8 noundef signext %300, i32 noundef %282, i32 noundef 0, i32 noundef 0, i32 noundef 0) #4
  %301 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 0) #4
  %302 = icmp eq i32 %301, 4
  br i1 %302, label %303, label %305

303:                                              ; preds = %293
  %304 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_generator_cvtbf8ps_avx512(ptr noundef %0, i8 noundef signext %304, i32 noundef %282, i32 noundef %282) #4
  br label %320

305:                                              ; preds = %293
  %306 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 0) #4
  %307 = icmp eq i32 %306, 5
  br i1 %307, label %308, label %310

308:                                              ; preds = %305
  %309 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_generator_vcvthf8_to_f32_avx512_preppedstack(ptr noundef %0, i8 noundef signext %309, i32 noundef %282, i32 noundef %282, i32 noundef %.12692, i32 noundef %.12694, i32 noundef %.02699, i32 noundef %.02698) #4
  br label %320

310:                                              ; preds = %305
  %311 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 0) #4
  %312 = icmp eq i32 %311, 3
  br i1 %312, label %313, label %315

313:                                              ; preds = %310
  %314 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_2reg(ptr noundef %0, i32 noundef 537208083, i8 noundef signext %314, i32 noundef %282, i32 noundef %282) #4
  br label %320

315:                                              ; preds = %310
  %316 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 0) #4
  %317 = icmp eq i32 %316, 2
  br i1 %317, label %318, label %320

318:                                              ; preds = %315
  %319 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_generator_cvtbf16ps_sse_avx2_avx512(ptr noundef %0, i8 noundef signext %319, i32 noundef %282, i32 noundef %282) #4
  br label %320

320:                                              ; preds = %308, %315, %318, %313, %303
  br i1 %19, label %321, label %331

321:                                              ; preds = %320
  %322 = load i32, ptr %28, align 4, !tbaa !18
  %323 = icmp ugt i32 %322, 1050
  %or.cond35 = and i1 %21, %323
  br i1 %or.cond35, label %324, label %326

324:                                              ; preds = %321
  %325 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_mask_sae_imm8(ptr noundef nonnull %0, i32 noundef %.026843077, i8 noundef signext %325, i32 noundef %282, i32 noundef %.02683, i32 noundef %.02683, i32 noundef 0, i32 noundef 0, i8 noundef zeroext 0, i32 noundef 3) #4
  br label %331

326:                                              ; preds = %321
  br i1 %21, label %327, label %329

327:                                              ; preds = %326
  %328 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef nonnull %0, i32 noundef %.026843077, i8 noundef signext %328, i32 noundef %282, i32 noundef %.02685, i32 noundef %282) #4
  br label %329

329:                                              ; preds = %327, %326
  %330 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef nonnull %0, i32 noundef %.026703079, i8 noundef signext %330, i32 noundef %282, i32 noundef %.02683, i32 noundef %.02683) #4
  br label %331

331:                                              ; preds = %324, %329, %320
  br i1 %switch28573007, label %332, label %337

332:                                              ; preds = %331
  %333 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 4) #4
  %334 = icmp eq i32 %333, 0
  %335 = select i1 %334, i32 814032568, i32 805643960
  %336 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %0, i32 noundef %335, i8 noundef signext %336, i32 noundef %282, i32 noundef %282, i32 noundef %.02682) #4
  br label %337

337:                                              ; preds = %331, %332
  %338 = add nuw nsw i32 %.026643056, 1
  %exitcond3070.not = icmp eq i32 %338, %.026872997
  br i1 %exitcond3070.not, label %._crit_edge3059, label %281, !llvm.loop !34

._crit_edge3059:                                  ; preds = %337, %278
  %339 = getelementptr inbounds i8, ptr %3, i64 40
  %340 = load i32, ptr %339, align 4, !tbaa !36
  %341 = load i32, ptr %62, align 4, !tbaa !23
  %342 = zext nneg i32 %.026872997 to i64
  %343 = load i32, ptr %5, align 4, !tbaa !5
  %344 = zext i32 %343 to i64
  %345 = mul nuw nsw i64 %344, %342
  %346 = getelementptr inbounds i8, ptr %3, i64 8
  %347 = load i32, ptr %346, align 4, !tbaa !33
  %348 = zext i32 %347 to i64
  %349 = mul nuw nsw i64 %345, %348
  call void @libxsmm_x86_instruction_alu_imm(ptr noundef %0, i32 noundef %340, i32 noundef %341, i64 noundef %349) #4
  %350 = load i32, ptr %65, align 4, !tbaa !27
  call void @libxsmm_generator_mateltwise_footer_m_loop(ptr noundef %0, ptr noundef %1, ptr noundef nonnull %3, i32 noundef %350, i32 noundef %.026892991) #4
  br label %351

351:                                              ; preds = %._crit_edge3059, %.thread3004
  %.not2777 = icmp eq i32 %.026882994, 0
  br i1 %.not2777, label %.loopexit, label %.preheader

.preheader:                                       ; preds = %351
  %352 = add i32 %.026882994, -1
  %353 = getelementptr inbounds i8, ptr %3, i64 8
  %or.cond37 = or i1 %20, %22
  %or.cond39 = and i1 %or.cond37, %126
  %or.cond41 = or i1 %119, %120
  %354 = shl i32 %.02675, 4
  %355 = select i1 %or.cond41, i32 0, i32 %354
  %356 = select i1 %or.cond41, i32 %.02675, i32 0
  %.mux2805 = select i1 %119, i32 -259709340, i32 -268097947
  br label %357

357:                                              ; preds = %.preheader, %425
  %.126653060 = phi i32 [ 0, %.preheader ], [ %426, %425 ]
  %358 = urem i32 %.126653060, %.42680
  %359 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 0) #4
  %360 = icmp eq i32 %359, 4
  br i1 %360, label %364, label %361

361:                                              ; preds = %357
  %362 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 0) #4
  %363 = icmp eq i32 %362, 5
  br i1 %363, label %364, label %368

364:                                              ; preds = %361, %357
  %365 = load i32, ptr %28, align 4, !tbaa !18
  %366 = icmp ugt i32 %365, 1100
  %367 = icmp eq i32 %.126653060, %352
  %or.cond2800 = select i1 %126, i1 %367, i1 false
  %or.cond = select i1 %366, i1 true, i1 %or.cond2800
  br i1 %or.cond, label %368, label %370

368:                                              ; preds = %364, %361
  %369 = load i32, ptr %8, align 4, !tbaa !5
  br label %370

370:                                              ; preds = %364, %368
  %371 = phi i32 [ %369, %368 ], [ 545725200, %364 ]
  %372 = load i32, ptr %62, align 4, !tbaa !23
  %373 = load i32, ptr %5, align 4, !tbaa !5
  %374 = mul i32 %373, %.126653060
  %375 = load i32, ptr %353, align 4, !tbaa !33
  %376 = mul i32 %374, %375
  %377 = load i8, ptr %6, align 1, !tbaa !11
  %378 = icmp eq i32 %.126653060, %352
  %379 = select i1 %126, i1 %378, i1 false
  %380 = zext i1 %379 to i32
  %spec.select2801 = select i1 %379, i32 %.12674, i32 0
  call void @libxsmm_x86_instruction_unified_vec_move(ptr noundef %0, i32 noundef %371, i32 noundef %372, i32 noundef 127, i32 noundef 0, i32 noundef %376, i8 noundef signext %377, i32 noundef %358, i32 noundef %380, i32 noundef %spec.select2801, i32 noundef 0) #4
  %381 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 0) #4
  %382 = icmp eq i32 %381, 4
  br i1 %382, label %383, label %385

383:                                              ; preds = %370
  %384 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_generator_cvtbf8ps_avx512(ptr noundef %0, i8 noundef signext %384, i32 noundef %358, i32 noundef %358) #4
  br label %400

385:                                              ; preds = %370
  %386 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 0) #4
  %387 = icmp eq i32 %386, 5
  br i1 %387, label %388, label %390

388:                                              ; preds = %385
  %389 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_generator_vcvthf8_to_f32_avx512_preppedstack(ptr noundef %0, i8 noundef signext %389, i32 noundef %358, i32 noundef %358, i32 noundef %.12692, i32 noundef %.12694, i32 noundef %.02699, i32 noundef %.02698) #4
  br label %400

390:                                              ; preds = %385
  %391 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 0) #4
  %392 = icmp eq i32 %391, 3
  br i1 %392, label %393, label %395

393:                                              ; preds = %390
  %394 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_2reg(ptr noundef %0, i32 noundef 537208083, i8 noundef signext %394, i32 noundef %358, i32 noundef %358) #4
  br label %400

395:                                              ; preds = %390
  %396 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 0) #4
  %397 = icmp eq i32 %396, 2
  br i1 %397, label %398, label %400

398:                                              ; preds = %395
  %399 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_generator_cvtbf16ps_sse_avx2_avx512(ptr noundef %0, i8 noundef signext %399, i32 noundef %358, i32 noundef %358) #4
  br label %400

400:                                              ; preds = %388, %395, %398, %393, %383
  %401 = select i1 %or.cond39, i1 %378, i1 false
  br i1 %401, label %402, label %408

402:                                              ; preds = %400
  br i1 %or.cond41, label %.thread3010, label %403

403:                                              ; preds = %402
  %404 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 4) #4
  %405 = icmp eq i32 %404, 0
  %406 = select i1 %405, i32 1879912523, i32 1879912522
  br label %.thread3010

.thread3010:                                      ; preds = %402, %403
  %407 = phi i32 [ %.mux2805, %402 ], [ %406, %403 ]
  call void @libxsmm_x86_instruction_vec_compute_3reg_mask_sae_imm8(ptr noundef %0, i32 noundef %407, i8 noundef signext %.02696, i32 noundef %358, i32 noundef %.02685, i32 noundef %358, i32 noundef %356, i32 noundef 0, i8 noundef zeroext 0, i32 noundef %355) #4
  br label %416

408:                                              ; preds = %400
  %409 = load i32, ptr %28, align 4, !tbaa !18
  %410 = icmp ugt i32 %409, 1050
  %or.cond45 = and i1 %21, %410
  br i1 %or.cond45, label %411, label %413

411:                                              ; preds = %408
  %412 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_mask_sae_imm8(ptr noundef nonnull %0, i32 noundef %.026843077, i8 noundef signext %412, i32 noundef %358, i32 noundef %.02683, i32 noundef %.02683, i32 noundef 0, i32 noundef 0, i8 noundef zeroext 0, i32 noundef 3) #4
  br label %419

413:                                              ; preds = %408
  br i1 %21, label %414, label %416

414:                                              ; preds = %413
  %415 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef nonnull %0, i32 noundef %.026843077, i8 noundef signext %415, i32 noundef %358, i32 noundef %.02685, i32 noundef %358) #4
  br label %416

416:                                              ; preds = %.thread3010, %414, %413
  br i1 %19, label %417, label %419

417:                                              ; preds = %416
  %418 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %0, i32 noundef %.026703079, i8 noundef signext %418, i32 noundef %358, i32 noundef %.02683, i32 noundef %.02683) #4
  br label %419

419:                                              ; preds = %416, %417, %411
  br i1 %switch28573007, label %420, label %425

420:                                              ; preds = %419
  %421 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 4) #4
  %422 = icmp eq i32 %421, 0
  %423 = select i1 %422, i32 814032568, i32 805643960
  %424 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %0, i32 noundef %423, i8 noundef signext %424, i32 noundef %358, i32 noundef %358, i32 noundef %.02682) #4
  br label %425

425:                                              ; preds = %419, %420
  %426 = add nuw i32 %.126653060, 1
  %exitcond3071.not = icmp eq i32 %426, %.026882994
  br i1 %exitcond3071.not, label %.loopexit, label %357, !llvm.loop !37

.loopexit:                                        ; preds = %425, %351
  br i1 %.not2776, label %441, label %427

427:                                              ; preds = %.loopexit
  %428 = getelementptr inbounds i8, ptr %3, i64 44
  %429 = load i32, ptr %428, align 4, !tbaa !38
  %430 = load i32, ptr %62, align 4, !tbaa !23
  %431 = zext nneg i32 %.026872997 to i64
  %432 = zext nneg i32 %.026892991 to i64
  %433 = mul nuw nsw i64 %432, %431
  %434 = load i32, ptr %5, align 4, !tbaa !5
  %435 = zext i32 %434 to i64
  %436 = mul nuw nsw i64 %433, %435
  %437 = getelementptr inbounds i8, ptr %3, i64 8
  %438 = load i32, ptr %437, align 4, !tbaa !33
  %439 = zext i32 %438 to i64
  %440 = mul nuw nsw i64 %436, %439
  call void @libxsmm_x86_instruction_alu_imm(ptr noundef %0, i32 noundef %429, i32 noundef %430, i64 noundef %440) #4
  br label %441

441:                                              ; preds = %427, %.loopexit
  br i1 %19, label %442, label %516

442:                                              ; preds = %441
  %443 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 4) #4
  %444 = icmp eq i32 %443, 0
  br i1 %444, label %445, label %446

445:                                              ; preds = %442
  call void @libxsmm_generator_hinstrpd_avx_avx512(ptr noundef %0, i32 noundef %.026703079, i32 noundef %.02683, i32 noundef 0, i32 noundef 1) #4
  br label %449

446:                                              ; preds = %442
  br i1 %120, label %447, label %448

447:                                              ; preds = %446
  call void @libxsmm_generator_hinstrps_avx512(ptr noundef %0, i32 noundef %.026703079, i32 noundef %.02683, i32 noundef 0, i32 noundef 1) #4
  br label %449

448:                                              ; preds = %446
  call void @libxsmm_generator_hinstrps_avx(ptr noundef %0, i32 noundef %.026703079, i32 noundef %.02683, i32 noundef 0, i32 noundef 1) #4
  br label %449

449:                                              ; preds = %447, %448, %445
  br i1 %27, label %450, label %483

450:                                              ; preds = %449
  %451 = load i32, ptr %9, align 4, !tbaa !5
  %452 = load i32, ptr %63, align 4, !tbaa !25
  %453 = load i8, ptr %7, align 1, !tbaa !11
  call void @libxsmm_x86_instruction_unified_vec_move(ptr noundef %0, i32 noundef %451, i32 noundef %452, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %453, i32 noundef %159, i32 noundef 1, i32 noundef %.02681, i32 noundef 0) #4
  %454 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 0) #4
  %455 = icmp eq i32 %454, 4
  br i1 %455, label %456, label %458

456:                                              ; preds = %450
  %457 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_generator_cvtbf8ps_avx512(ptr noundef %0, i8 noundef signext %457, i32 noundef %159, i32 noundef %159) #4
  br label %473

458:                                              ; preds = %450
  %459 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 0) #4
  %460 = icmp eq i32 %459, 5
  br i1 %460, label %461, label %463

461:                                              ; preds = %458
  %462 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_generator_vcvthf8_to_f32_avx512_preppedstack(ptr noundef %0, i8 noundef signext %462, i32 noundef %159, i32 noundef %159, i32 noundef %.12692, i32 noundef %.12694, i32 noundef %.02699, i32 noundef %.02698) #4
  br label %473

463:                                              ; preds = %458
  %464 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 0) #4
  %465 = icmp eq i32 %464, 3
  br i1 %465, label %466, label %468

466:                                              ; preds = %463
  %467 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_2reg(ptr noundef %0, i32 noundef 537208083, i8 noundef signext %467, i32 noundef %159, i32 noundef %159) #4
  br label %473

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

471:                                              ; preds = %468
  %472 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_generator_cvtbf16ps_sse_avx2_avx512(ptr noundef %0, i8 noundef signext %472, i32 noundef %159, i32 noundef %159) #4
  br label %473

473:                                              ; preds = %461, %468, %471, %466, %456
  %474 = load i32, ptr %28, align 4, !tbaa !18
  %475 = icmp ugt i32 %474, 1050
  %or.cond47 = and i1 %21, %475
  br i1 %or.cond47, label %476, label %478

476:                                              ; preds = %473
  %477 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_mask_sae_imm8(ptr noundef nonnull %0, i32 noundef %.026843077, i8 noundef signext %477, i32 noundef %159, i32 noundef %.02683, i32 noundef %.02683, i32 noundef 0, i32 noundef 0, i8 noundef zeroext 0, i32 noundef 3) #4
  br label %483

478:                                              ; preds = %473
  br i1 %21, label %479, label %481

479:                                              ; preds = %478
  %480 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef nonnull %0, i32 noundef %.026843077, i8 noundef signext %480, i32 noundef %159, i32 noundef %.02685, i32 noundef %159) #4
  br label %481

481:                                              ; preds = %479, %478
  %482 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef nonnull %0, i32 noundef %.026703079, i8 noundef signext %482, i32 noundef %159, i32 noundef %.02683, i32 noundef %.02683) #4
  br label %483

483:                                              ; preds = %476, %481, %449
  %484 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %485 = icmp eq i32 %484, 4
  br i1 %485, label %486, label %488

486:                                              ; preds = %483
  %487 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_generator_vcvtneps2bf8_avx512_preppedstack(ptr noundef %0, i8 noundef signext %487, i32 noundef %.02683, i32 noundef %.02683, i32 noundef %.12692, i32 noundef %.12694, i32 noundef %.02699, i32 noundef %.02698, i32 noundef 0, i32 noundef 0) #4
  br label %512

488:                                              ; preds = %483
  %489 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %490 = icmp eq i32 %489, 5
  br i1 %490, label %491, label %493

491:                                              ; preds = %488
  %492 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_generator_vcvtf32_to_hf8_avx512_preppedstack(ptr noundef %0, i8 noundef signext %492, i32 noundef %.02683, i32 noundef %.02683, i32 noundef %.12692, i32 noundef %.12694, i32 noundef %.02695, i32 noundef 28, i32 noundef %.02699, i32 noundef %.02698, i32 noundef %.02697) #4
  br label %512

493:                                              ; preds = %488
  %494 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %495 = icmp eq i32 %494, 3
  br i1 %495, label %496, label %502

496:                                              ; preds = %493
  %497 = load i8, ptr %10, align 4, !tbaa !9
  %498 = load i32, ptr %28, align 4, !tbaa !18
  %499 = icmp ugt i32 %498, 1100
  %500 = zext i1 %499 to i32
  %501 = zext i1 %499 to i8
  call void @libxsmm_x86_instruction_vec_compute_2reg_mask_sae_imm8(ptr noundef %0, i32 noundef 671954205, i8 noundef signext %497, i32 noundef %.02683, i32 noundef %.02683, i32 noundef 0, i32 noundef %500, i8 noundef zeroext %501, i32 noundef 0) #4
  br label %512

502:                                              ; preds = %493
  %503 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %504 = icmp eq i32 %503, 2
  br i1 %504, label %505, label %512

505:                                              ; preds = %502
  %506 = load i32, ptr %28, align 4, !tbaa !18
  %.fr3034 = freeze i32 %506
  %507 = icmp ugt i32 %.fr3034, 1102
  br i1 %507, label %510, label %switch.early.test2862

switch.early.test2862:                            ; preds = %505
  switch i32 %.fr3034, label %508 [
    i32 1053, label %510
    i32 1008, label %510
  ]

508:                                              ; preds = %switch.early.test2862
  %509 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_generator_vcvtneps2bf16_avx512_preppedstack(ptr noundef nonnull %0, i8 noundef signext %509, i32 noundef %.02683, i32 noundef %.02683, i32 noundef %.12692, i32 noundef %.12694, i32 noundef %.02699, i32 noundef %.02698, i32 noundef 0) #4
  br label %512

510:                                              ; preds = %switch.early.test2862, %switch.early.test2862, %505
  %511 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_2reg(ptr noundef nonnull %0, i32 noundef 537273970, i8 noundef signext %511, i32 noundef %.02683, i32 noundef %.02683) #4
  br label %512

512:                                              ; preds = %491, %502, %510, %508, %496, %486
  %513 = load i32, ptr %9, align 4, !tbaa !5
  %514 = load i32, ptr %63, align 4, !tbaa !25
  %515 = load i8, ptr %7, align 1, !tbaa !11
  call void @libxsmm_x86_instruction_unified_vec_move(ptr noundef %0, i32 noundef %513, i32 noundef %514, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %515, i32 noundef %.02683, i32 noundef 1, i32 noundef %.02681, i32 noundef 1) #4
  br label %516

516:                                              ; preds = %512, %441
  br i1 %switch28573007, label %517, label %583

517:                                              ; preds = %516
  %518 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 4) #4
  %519 = icmp eq i32 %518, 0
  br i1 %519, label %520, label %521

520:                                              ; preds = %517
  call void @libxsmm_generator_hinstrpd_avx_avx512(ptr noundef %0, i32 noundef %.026703079, i32 noundef %.02682, i32 noundef 0, i32 noundef 1) #4
  br label %524

521:                                              ; preds = %517
  br i1 %120, label %522, label %523

522:                                              ; preds = %521
  call void @libxsmm_generator_hinstrps_avx512(ptr noundef %0, i32 noundef %.026703079, i32 noundef %.02682, i32 noundef 0, i32 noundef 1) #4
  br label %524

523:                                              ; preds = %521
  call void @libxsmm_generator_hinstrps_avx(ptr noundef %0, i32 noundef %.026703079, i32 noundef %.02682, i32 noundef 0, i32 noundef 1) #4
  br label %524

524:                                              ; preds = %522, %523, %520
  br i1 %27, label %525, label %550

525:                                              ; preds = %524
  %526 = load i32, ptr %9, align 4, !tbaa !5
  %527 = load i32, ptr %64, align 4, !tbaa !26
  %528 = load i8, ptr %7, align 1, !tbaa !11
  call void @libxsmm_x86_instruction_unified_vec_move(ptr noundef %0, i32 noundef %526, i32 noundef %527, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %528, i32 noundef %159, i32 noundef 1, i32 noundef %.02681, i32 noundef 0) #4
  %529 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 0) #4
  %530 = icmp eq i32 %529, 4
  br i1 %530, label %531, label %533

531:                                              ; preds = %525
  %532 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_generator_cvtbf8ps_avx512(ptr noundef %0, i8 noundef signext %532, i32 noundef %159, i32 noundef %159) #4
  br label %548

533:                                              ; preds = %525
  %534 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 0) #4
  %535 = icmp eq i32 %534, 5
  br i1 %535, label %536, label %538

536:                                              ; preds = %533
  %537 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_generator_vcvthf8_to_f32_avx512_preppedstack(ptr noundef %0, i8 noundef signext %537, i32 noundef %159, i32 noundef %159, i32 noundef %.12692, i32 noundef %.12694, i32 noundef %.02699, i32 noundef %.02698) #4
  br label %548

538:                                              ; preds = %533
  %539 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 0) #4
  %540 = icmp eq i32 %539, 3
  br i1 %540, label %541, label %543

541:                                              ; preds = %538
  %542 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_2reg(ptr noundef %0, i32 noundef 537208083, i8 noundef signext %542, i32 noundef %159, i32 noundef %159) #4
  br label %548

543:                                              ; preds = %538
  %544 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 0) #4
  %545 = icmp eq i32 %544, 2
  br i1 %545, label %546, label %548

546:                                              ; preds = %543
  %547 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_generator_cvtbf16ps_sse_avx2_avx512(ptr noundef %0, i8 noundef signext %547, i32 noundef %159, i32 noundef %159) #4
  br label %548

548:                                              ; preds = %536, %543, %546, %541, %531
  %549 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %0, i32 noundef %.026703079, i8 noundef signext %549, i32 noundef %159, i32 noundef %.02682, i32 noundef %.02682) #4
  br label %550

550:                                              ; preds = %548, %524
  %551 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %552 = icmp eq i32 %551, 4
  br i1 %552, label %553, label %555

553:                                              ; preds = %550
  %554 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_generator_vcvtneps2bf8_avx512_preppedstack(ptr noundef %0, i8 noundef signext %554, i32 noundef %.02682, i32 noundef %.02682, i32 noundef %.12692, i32 noundef %.12694, i32 noundef %.02699, i32 noundef %.02698, i32 noundef 0, i32 noundef 0) #4
  br label %579

555:                                              ; preds = %550
  %556 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %557 = icmp eq i32 %556, 5
  br i1 %557, label %558, label %560

558:                                              ; preds = %555
  %559 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_generator_vcvtf32_to_hf8_avx512_preppedstack(ptr noundef %0, i8 noundef signext %559, i32 noundef %.02682, i32 noundef %.02682, i32 noundef %.12692, i32 noundef %.12694, i32 noundef %.02695, i32 noundef 28, i32 noundef %.02699, i32 noundef %.02698, i32 noundef %.02697) #4
  br label %579

560:                                              ; preds = %555
  %561 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %562 = icmp eq i32 %561, 3
  br i1 %562, label %563, label %569

563:                                              ; preds = %560
  %564 = load i8, ptr %10, align 4, !tbaa !9
  %565 = load i32, ptr %28, align 4, !tbaa !18
  %566 = icmp ugt i32 %565, 1100
  %567 = zext i1 %566 to i32
  %568 = zext i1 %566 to i8
  call void @libxsmm_x86_instruction_vec_compute_2reg_mask_sae_imm8(ptr noundef %0, i32 noundef 671954205, i8 noundef signext %564, i32 noundef %.02682, i32 noundef %.02682, i32 noundef 0, i32 noundef %567, i8 noundef zeroext %568, i32 noundef 0) #4
  br label %579

569:                                              ; preds = %560
  %570 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %571 = icmp eq i32 %570, 2
  br i1 %571, label %572, label %579

572:                                              ; preds = %569
  %573 = load i32, ptr %28, align 4, !tbaa !18
  %.fr3035 = freeze i32 %573
  %574 = icmp ugt i32 %.fr3035, 1102
  br i1 %574, label %577, label %switch.early.test2865

switch.early.test2865:                            ; preds = %572
  switch i32 %.fr3035, label %575 [
    i32 1053, label %577
    i32 1008, label %577
  ]

575:                                              ; preds = %switch.early.test2865
  %576 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_generator_vcvtneps2bf16_avx512_preppedstack(ptr noundef nonnull %0, i8 noundef signext %576, i32 noundef %.02682, i32 noundef %.02682, i32 noundef %.12692, i32 noundef %.12694, i32 noundef %.02699, i32 noundef %.02698, i32 noundef 0) #4
  br label %579

577:                                              ; preds = %switch.early.test2865, %switch.early.test2865, %572
  %578 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_2reg(ptr noundef nonnull %0, i32 noundef 537273970, i8 noundef signext %578, i32 noundef %.02682, i32 noundef %.02682) #4
  br label %579

579:                                              ; preds = %558, %569, %577, %575, %563, %553
  %580 = load i32, ptr %9, align 4, !tbaa !5
  %581 = load i32, ptr %64, align 4, !tbaa !26
  %582 = load i8, ptr %7, align 1, !tbaa !11
  call void @libxsmm_x86_instruction_unified_vec_move(ptr noundef %0, i32 noundef %580, i32 noundef %581, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %582, i32 noundef %.02682, i32 noundef 1, i32 noundef %.02681, i32 noundef 1) #4
  br label %583

583:                                              ; preds = %516, %579
  br i1 %218, label %584, label %609

584:                                              ; preds = %583
  %585 = getelementptr inbounds i8, ptr %3, i64 40
  %586 = load i32, ptr %585, align 4, !tbaa !36
  %587 = load i32, ptr %62, align 4, !tbaa !23
  %588 = load i32, ptr %32, align 1, !tbaa !22
  %589 = zext i32 %588 to i64
  %590 = getelementptr inbounds i8, ptr %3, i64 8
  %591 = load i32, ptr %590, align 4, !tbaa !33
  %592 = zext i32 %591 to i64
  %593 = mul nuw nsw i64 %592, %589
  call void @libxsmm_x86_instruction_alu_imm(ptr noundef %0, i32 noundef %586, i32 noundef %587, i64 noundef %593) #4
  br i1 %19, label %594, label %600

594:                                              ; preds = %584
  %595 = load i32, ptr %585, align 4, !tbaa !36
  %596 = load i32, ptr %63, align 4, !tbaa !25
  %597 = getelementptr inbounds i8, ptr %3, i64 20
  %598 = load i32, ptr %597, align 4, !tbaa !32
  %599 = zext i32 %598 to i64
  call void @libxsmm_x86_instruction_alu_imm(ptr noundef %0, i32 noundef %595, i32 noundef %596, i64 noundef %599) #4
  br label %600

600:                                              ; preds = %594, %584
  br i1 %switch28573007, label %601, label %607

601:                                              ; preds = %600
  %602 = load i32, ptr %585, align 4, !tbaa !36
  %603 = load i32, ptr %64, align 4, !tbaa !26
  %604 = getelementptr inbounds i8, ptr %3, i64 20
  %605 = load i32, ptr %604, align 4, !tbaa !32
  %606 = zext i32 %605 to i64
  call void @libxsmm_x86_instruction_alu_imm(ptr noundef %0, i32 noundef %602, i32 noundef %603, i64 noundef %606) #4
  br label %607

607:                                              ; preds = %600, %601
  %608 = load i32, ptr %66, align 4, !tbaa !28
  call void @libxsmm_generator_mateltwise_footer_n_loop(ptr noundef %0, ptr noundef %1, ptr noundef nonnull %3, i32 noundef %608, i32 noundef %123) #4
  br label %609

609:                                              ; preds = %607, %583
  %610 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %611 = icmp eq i32 %610, 4
  br i1 %611, label %612, label %613

612:                                              ; preds = %609
  call void @libxsmm_generator_vcvtneps2bf8_avx512_clean_stack(ptr noundef %0, i32 noundef 0) #4
  br label %2395

613:                                              ; preds = %609
  %614 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %615 = icmp eq i32 %614, 2
  br i1 %615, label %616, label %620

616:                                              ; preds = %613
  %617 = load i32, ptr %28, align 4, !tbaa !18
  %.fr3036 = freeze i32 %617
  %618 = icmp ugt i32 %.fr3036, 1102
  br i1 %618, label %2395, label %switch.early.test2868

switch.early.test2868:                            ; preds = %616
  switch i32 %.fr3036, label %619 [
    i32 1053, label %2395
    i32 1008, label %2395
  ]

619:                                              ; preds = %switch.early.test2868
  call void @libxsmm_generator_vcvtneps2bf16_avx512_clean_stack(ptr noundef nonnull %0, i32 noundef 0) #4
  br label %2395

620:                                              ; preds = %613
  %621 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 0) #4
  %622 = icmp eq i32 %621, 5
  br i1 %622, label %626, label %623

623:                                              ; preds = %620
  %624 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %625 = icmp eq i32 %624, 5
  br i1 %625, label %626, label %2395

626:                                              ; preds = %623, %620
  call void @libxsmm_generator_vcvt_hf8_tofrom_f32_avx512_clean_stack(ptr noundef %0, i32 noundef 0) #4
  br label %2395

627:                                              ; preds = %94
  %628 = load i32, ptr %4, align 1, !tbaa !21
  %629 = getelementptr inbounds i8, ptr %4, i64 4
  %630 = load i32, ptr %629, align 1, !tbaa !31
  %631 = load i32, ptr %5, align 4, !tbaa !5
  %632 = urem i32 %628, %631
  %633 = icmp ne i32 %632, 0
  %634 = zext i1 %633 to i32
  %635 = urem i32 %630, %631
  %636 = icmp ne i32 %635, 0
  %637 = add i32 %631, -1
  %638 = add i32 %637, %628
  %639 = udiv i32 %638, %631
  %640 = add i32 %637, %630
  %641 = udiv i32 %640, %631
  %642 = sext i1 %636 to i32
  %643 = add i32 %641, %642
  br i1 %633, label %644, label %646

644:                                              ; preds = %627
  %645 = sub i32 %631, %632
  call void @libxsmm_generator_initialize_avx512_mask(ptr noundef nonnull %0, i32 noundef 0, i32 noundef 1, i32 noundef %645, i32 noundef 1) #4
  br label %646

646:                                              ; preds = %644, %627
  br i1 %636, label %647, label %651

647:                                              ; preds = %646
  %648 = load i32, ptr %5, align 4, !tbaa !5
  %649 = urem i32 %630, %648
  %650 = sub i32 %648, %649
  call void @libxsmm_generator_initialize_avx512_mask(ptr noundef nonnull %0, i32 noundef 0, i32 noundef 2, i32 noundef %650, i32 noundef 1) #4
  br label %651

651:                                              ; preds = %647, %646
  %652 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %653 = icmp eq i32 %652, 4
  br i1 %653, label %654, label %655

654:                                              ; preds = %651
  call void @libxsmm_generator_vcvtneps2bf8_avx512_prep_stack(ptr noundef nonnull %0, i32 noundef 0) #4
  br label %669

655:                                              ; preds = %651
  %656 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %657 = icmp eq i32 %656, 2
  br i1 %657, label %658, label %662

658:                                              ; preds = %655
  %659 = load i32, ptr %28, align 4, !tbaa !18
  %.fr = freeze i32 %659
  %660 = icmp ugt i32 %.fr, 1102
  br i1 %660, label %669, label %switch.early.test2869

switch.early.test2869:                            ; preds = %658
  switch i32 %.fr, label %661 [
    i32 1053, label %669
    i32 1008, label %669
  ]

661:                                              ; preds = %switch.early.test2869
  call void @libxsmm_generator_vcvtneps2bf16_avx512_prep_stack(ptr noundef nonnull %0, i32 noundef 0) #4
  br label %669

662:                                              ; preds = %655
  %663 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 0) #4
  %664 = icmp eq i32 %663, 5
  br i1 %664, label %668, label %665

665:                                              ; preds = %662
  %666 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %667 = icmp eq i32 %666, 5
  br i1 %667, label %668, label %669

668:                                              ; preds = %665, %662
  call void @libxsmm_generator_vcvt_hf8_tofrom_f32_avx512_prep_stack(ptr noundef nonnull %0, i32 noundef 0) #4
  br label %669

669:                                              ; preds = %switch.early.test2869, %switch.early.test2869, %658, %661, %668, %665, %654
  %.not2740 = icmp eq i32 %630, 1
  br i1 %.not2740, label %676, label %670

670:                                              ; preds = %669
  %671 = load i32, ptr %28, align 4, !tbaa !18
  %672 = icmp ult i32 %671, 1101
  %. = select i1 %672, i64 240, i64 65280
  call void @libxsmm_x86_instruction_alu_imm(ptr noundef nonnull %0, i32 noundef -1568407413, i32 noundef 0, i64 noundef %.) #4
  call void @libxsmm_x86_instruction_mask_move(ptr noundef nonnull %0, i32 noundef -1610346094, i32 noundef 0, i32 noundef 7) #4
  br i1 %633, label %673, label %676

673:                                              ; preds = %670
  switch i16 %17, label %676 [
    i16 69, label %674
    i16 21, label %674
  ]

674:                                              ; preds = %673, %673
  %675 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_generator_load_vreg_infinity(ptr noundef nonnull %0, i8 noundef zeroext %675, i32 noundef 0, i32 noundef 24, i32 noundef %23) #4
  br label %676

676:                                              ; preds = %673, %670, %674, %669
  %.not2741 = icmp eq i32 %643, 0
  br i1 %.not2741, label %.thread3011, label %677

677:                                              ; preds = %676
  %.not2742 = icmp eq i32 %643, 1
  br i1 %.not2742, label %680, label %678

678:                                              ; preds = %677
  %679 = load i32, ptr %66, align 4, !tbaa !28
  call void @libxsmm_generator_mateltwise_header_n_loop(ptr noundef nonnull %0, ptr noundef %1, ptr noundef nonnull %3, i32 noundef %679) #4
  br label %680

680:                                              ; preds = %678, %677
  %.not3065 = icmp ugt i32 %631, %638
  br i1 %.not3065, label %._crit_edge3047, label %.preheader3042.lr.ph

.preheader3042.lr.ph:                             ; preds = %680
  %681 = add i32 %639, -1
  %682 = getelementptr inbounds i8, ptr %3, i64 8
  %or.cond51 = or i1 %20, %22
  %or.cond53 = and i1 %or.cond51, %633
  %.off2870 = add nsw i16 %17, -19
  %switch2871 = icmp ult i16 %.off2870, 2
  %683 = icmp eq i16 %26, 0
  br label %.preheader3042

.preheader3042:                                   ; preds = %.preheader3042.lr.ph, %1441
  %.226663046 = phi i32 [ 0, %.preheader3042.lr.ph ], [ %1442, %1441 ]
  %684 = load i32, ptr %5, align 4, !tbaa !5
  %.not3066 = icmp eq i32 %684, 0
  br i1 %.not3066, label %.lr.ph3045.preheader, label %.lr.ph

.lr.ph:                                           ; preds = %.preheader3042
  %685 = icmp eq i32 %.226663046, %681
  %or.cond2815 = and i1 %633, %685
  %686 = select i1 %685, i32 %634, i32 0
  %brmerge2817.not = and i1 %or.cond53, %685
  br label %688

.preheader3041:                                   ; preds = %733
  %687 = icmp ult i32 %735, 16
  br i1 %687, label %.lr.ph3045.preheader, label %._crit_edge

.lr.ph3045.preheader:                             ; preds = %.preheader3042, %.preheader3041
  %.13044.ph = phi i32 [ 0, %.preheader3042 ], [ %735, %.preheader3041 ]
  br label %.lr.ph3045

688:                                              ; preds = %.lr.ph, %733
  %.03043 = phi i32 [ 0, %.lr.ph ], [ %734, %733 ]
  %689 = load i32, ptr %3, align 4, !tbaa !39
  %690 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %691 = icmp eq i32 %690, 4
  br i1 %691, label %695, label %692

692:                                              ; preds = %688
  %693 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %694 = icmp eq i32 %693, 5
  br i1 %694, label %695, label %698

695:                                              ; preds = %692, %688
  %696 = load i32, ptr %28, align 4, !tbaa !18
  %697 = icmp ugt i32 %696, 1100
  %brmerge = or i1 %697, %or.cond2815
  br i1 %brmerge, label %698, label %700

698:                                              ; preds = %695, %692
  %699 = load i32, ptr %8, align 4, !tbaa !5
  br label %700

700:                                              ; preds = %695, %698
  %701 = phi i32 [ %699, %698 ], [ 545725200, %695 ]
  %702 = load i32, ptr %62, align 4, !tbaa !23
  %703 = load i32, ptr %5, align 4, !tbaa !5
  %704 = mul i32 %703, %.226663046
  %705 = load i32, ptr %32, align 1, !tbaa !22
  %706 = mul i32 %705, %.03043
  %707 = add i32 %706, %704
  %708 = load i32, ptr %682, align 4, !tbaa !33
  %709 = mul i32 %707, %708
  %710 = load i8, ptr %6, align 1, !tbaa !11
  call void @libxsmm_x86_instruction_vec_move(ptr noundef %0, i32 noundef %689, i32 noundef %701, i32 noundef %702, i32 noundef 127, i32 noundef 0, i32 noundef %709, i8 noundef signext %710, i32 noundef %.03043, i32 noundef %686, i32 noundef 1, i32 noundef 0) #4
  %711 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 0) #4
  %712 = icmp eq i32 %711, 4
  br i1 %712, label %713, label %715

713:                                              ; preds = %700
  %714 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_generator_cvtbf8ps_avx512(ptr noundef %0, i8 noundef signext %714, i32 noundef %.03043, i32 noundef %.03043) #4
  br label %730

715:                                              ; preds = %700
  %716 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 0) #4
  %717 = icmp eq i32 %716, 5
  br i1 %717, label %718, label %720

718:                                              ; preds = %715
  %719 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_generator_vcvthf8_to_f32_avx512_preppedstack(ptr noundef %0, i8 noundef signext %719, i32 noundef %.03043, i32 noundef %.03043, i32 noundef 30, i32 noundef 31, i32 noundef 6, i32 noundef 5) #4
  br label %730

720:                                              ; preds = %715
  %721 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 0) #4
  %722 = icmp eq i32 %721, 3
  br i1 %722, label %723, label %725

723:                                              ; preds = %720
  %724 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_2reg(ptr noundef %0, i32 noundef 537208083, i8 noundef signext %724, i32 noundef %.03043, i32 noundef %.03043) #4
  br label %730

725:                                              ; preds = %720
  %726 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 0) #4
  %727 = icmp eq i32 %726, 2
  br i1 %727, label %728, label %730

728:                                              ; preds = %725
  %729 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_generator_cvtbf16ps_sse_avx2_avx512(ptr noundef %0, i8 noundef signext %729, i32 noundef %.03043, i32 noundef %.03043) #4
  br label %730

730:                                              ; preds = %718, %725, %728, %723, %713
  br i1 %brmerge2817.not, label %731, label %733

731:                                              ; preds = %730
  %732 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_mask(ptr noundef %0, i32 noundef -268097947, i8 noundef signext %732, i32 noundef %.03043, i32 noundef 24, i32 noundef %.03043, i32 noundef 1, i32 noundef 0) #4
  br label %733

733:                                              ; preds = %730, %731
  %734 = add nuw i32 %.03043, 1
  %735 = load i32, ptr %5, align 4, !tbaa !5
  %736 = icmp ult i32 %734, %735
  br i1 %736, label %688, label %.preheader3041, !llvm.loop !40

.lr.ph3045:                                       ; preds = %.lr.ph3045.preheader, %.lr.ph3045
  %.13044 = phi i32 [ %738, %.lr.ph3045 ], [ %.13044.ph, %.lr.ph3045.preheader ]
  %737 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %0, i32 noundef 805574231, i8 noundef signext %737, i32 noundef %.13044, i32 noundef %.13044, i32 noundef %.13044) #4
  %738 = add i32 %.13044, 1
  %exitcond.not = icmp eq i32 %738, 16
  br i1 %exitcond.not, label %._crit_edge, label %.lr.ph3045, !llvm.loop !41

._crit_edge:                                      ; preds = %.lr.ph3045, %.preheader3041
  br i1 %19, label %739, label %742

739:                                              ; preds = %._crit_edge
  %740 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_mask(ptr noundef %0, i32 noundef -268097947, i8 noundef signext %740, i32 noundef 4, i32 noundef 0, i32 noundef 16, i32 noundef 7, i32 noundef 0) #4
  %741 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %0, i32 noundef -259181021, i8 noundef signext %741, i32 noundef 4, i32 noundef 0, i32 noundef 17, i32 noundef %.02690) #4
  br label %742

742:                                              ; preds = %739, %._crit_edge
  br i1 %switch2871, label %743, label %748

743:                                              ; preds = %742
  %744 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %0, i32 noundef 805574233, i8 noundef signext %744, i32 noundef 0, i32 noundef 0, i32 noundef 18) #4
  %745 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %0, i32 noundef 805574233, i8 noundef signext %745, i32 noundef 4, i32 noundef 4, i32 noundef 19) #4
  %746 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_mask(ptr noundef %0, i32 noundef -268097947, i8 noundef signext %746, i32 noundef 19, i32 noundef 18, i32 noundef 20, i32 noundef 7, i32 noundef 0) #4
  %747 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %0, i32 noundef -259181021, i8 noundef signext %747, i32 noundef 19, i32 noundef 18, i32 noundef 21, i32 noundef %.02690) #4
  br label %748

748:                                              ; preds = %742, %743
  br i1 %19, label %749, label %751

749:                                              ; preds = %748
  %750 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %0, i32 noundef %.026703079, i8 noundef signext %750, i32 noundef 16, i32 noundef 17, i32 noundef 0) #4
  br label %751

751:                                              ; preds = %749, %748
  br i1 %switch2871, label %752, label %754

752:                                              ; preds = %751
  %753 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %0, i32 noundef %.026703079, i8 noundef signext %753, i32 noundef 20, i32 noundef 21, i32 noundef 24) #4
  br label %754

754:                                              ; preds = %751, %752
  br i1 %19, label %755, label %758

755:                                              ; preds = %754
  %756 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_mask(ptr noundef %0, i32 noundef -268097947, i8 noundef signext %756, i32 noundef 12, i32 noundef 8, i32 noundef 16, i32 noundef 7, i32 noundef 0) #4
  %757 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %0, i32 noundef -259181021, i8 noundef signext %757, i32 noundef 12, i32 noundef 8, i32 noundef 17, i32 noundef %.02690) #4
  br label %758

758:                                              ; preds = %755, %754
  br i1 %switch2871, label %759, label %764

759:                                              ; preds = %758
  %760 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %0, i32 noundef 805574233, i8 noundef signext %760, i32 noundef 8, i32 noundef 8, i32 noundef 18) #4
  %761 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %0, i32 noundef 805574233, i8 noundef signext %761, i32 noundef 12, i32 noundef 12, i32 noundef 19) #4
  %762 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_mask(ptr noundef %0, i32 noundef -268097947, i8 noundef signext %762, i32 noundef 19, i32 noundef 18, i32 noundef 20, i32 noundef 7, i32 noundef 0) #4
  %763 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %0, i32 noundef -259181021, i8 noundef signext %763, i32 noundef 19, i32 noundef 18, i32 noundef 21, i32 noundef %.02690) #4
  br label %764

764:                                              ; preds = %758, %759
  br i1 %19, label %765, label %767

765:                                              ; preds = %764
  %766 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %0, i32 noundef %.026703079, i8 noundef signext %766, i32 noundef 16, i32 noundef 17, i32 noundef 8) #4
  br label %767

767:                                              ; preds = %765, %764
  br i1 %switch2871, label %768, label %770

768:                                              ; preds = %767
  %769 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %0, i32 noundef %.026703079, i8 noundef signext %769, i32 noundef 20, i32 noundef 21, i32 noundef 28) #4
  br label %770

770:                                              ; preds = %767, %768
  br i1 %19, label %771, label %774

771:                                              ; preds = %770
  %772 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_mask(ptr noundef %0, i32 noundef -268097947, i8 noundef signext %772, i32 noundef 5, i32 noundef 1, i32 noundef 16, i32 noundef 7, i32 noundef 0) #4
  %773 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %0, i32 noundef -259181021, i8 noundef signext %773, i32 noundef 5, i32 noundef 1, i32 noundef 17, i32 noundef %.02690) #4
  br label %774

774:                                              ; preds = %771, %770
  br i1 %switch2871, label %775, label %780

775:                                              ; preds = %774
  %776 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %0, i32 noundef 805574233, i8 noundef signext %776, i32 noundef 1, i32 noundef 1, i32 noundef 18) #4
  %777 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %0, i32 noundef 805574233, i8 noundef signext %777, i32 noundef 5, i32 noundef 5, i32 noundef 19) #4
  %778 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_mask(ptr noundef %0, i32 noundef -268097947, i8 noundef signext %778, i32 noundef 19, i32 noundef 18, i32 noundef 20, i32 noundef 7, i32 noundef 0) #4
  %779 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %0, i32 noundef -259181021, i8 noundef signext %779, i32 noundef 19, i32 noundef 18, i32 noundef 21, i32 noundef %.02690) #4
  br label %780

780:                                              ; preds = %774, %775
  br i1 %19, label %781, label %783

781:                                              ; preds = %780
  %782 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %0, i32 noundef %.026703079, i8 noundef signext %782, i32 noundef 16, i32 noundef 17, i32 noundef 1) #4
  br label %783

783:                                              ; preds = %781, %780
  br i1 %switch2871, label %784, label %786

784:                                              ; preds = %783
  %785 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %0, i32 noundef %.026703079, i8 noundef signext %785, i32 noundef 20, i32 noundef 21, i32 noundef 25) #4
  br label %786

786:                                              ; preds = %783, %784
  br i1 %19, label %787, label %790

787:                                              ; preds = %786
  %788 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_mask(ptr noundef %0, i32 noundef -268097947, i8 noundef signext %788, i32 noundef 13, i32 noundef 9, i32 noundef 16, i32 noundef 7, i32 noundef 0) #4
  %789 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %0, i32 noundef -259181021, i8 noundef signext %789, i32 noundef 13, i32 noundef 9, i32 noundef 17, i32 noundef %.02690) #4
  br label %790

790:                                              ; preds = %787, %786
  br i1 %switch2871, label %791, label %796

791:                                              ; preds = %790
  %792 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %0, i32 noundef 805574233, i8 noundef signext %792, i32 noundef 9, i32 noundef 9, i32 noundef 18) #4
  %793 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %0, i32 noundef 805574233, i8 noundef signext %793, i32 noundef 13, i32 noundef 13, i32 noundef 19) #4
  %794 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_mask(ptr noundef %0, i32 noundef -268097947, i8 noundef signext %794, i32 noundef 19, i32 noundef 18, i32 noundef 20, i32 noundef 7, i32 noundef 0) #4
  %795 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %0, i32 noundef -259181021, i8 noundef signext %795, i32 noundef 19, i32 noundef 18, i32 noundef 21, i32 noundef %.02690) #4
  br label %796

796:                                              ; preds = %790, %791
  br i1 %19, label %797, label %799

797:                                              ; preds = %796
  %798 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %0, i32 noundef %.026703079, i8 noundef signext %798, i32 noundef 16, i32 noundef 17, i32 noundef 9) #4
  br label %799

799:                                              ; preds = %797, %796
  br i1 %switch2871, label %800, label %802

800:                                              ; preds = %799
  %801 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %0, i32 noundef %.026703079, i8 noundef signext %801, i32 noundef 20, i32 noundef 21, i32 noundef 29) #4
  br label %802

802:                                              ; preds = %799, %800
  br i1 %19, label %803, label %806

803:                                              ; preds = %802
  %804 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_mask(ptr noundef %0, i32 noundef -268097947, i8 noundef signext %804, i32 noundef 6, i32 noundef 2, i32 noundef 16, i32 noundef 7, i32 noundef 0) #4
  %805 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %0, i32 noundef -259181021, i8 noundef signext %805, i32 noundef 6, i32 noundef 2, i32 noundef 17, i32 noundef %.02690) #4
  br label %806

806:                                              ; preds = %803, %802
  br i1 %switch2871, label %807, label %812

807:                                              ; preds = %806
  %808 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %0, i32 noundef 805574233, i8 noundef signext %808, i32 noundef 2, i32 noundef 2, i32 noundef 18) #4
  %809 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %0, i32 noundef 805574233, i8 noundef signext %809, i32 noundef 6, i32 noundef 6, i32 noundef 19) #4
  %810 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_mask(ptr noundef %0, i32 noundef -268097947, i8 noundef signext %810, i32 noundef 19, i32 noundef 18, i32 noundef 20, i32 noundef 7, i32 noundef 0) #4
  %811 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %0, i32 noundef -259181021, i8 noundef signext %811, i32 noundef 19, i32 noundef 18, i32 noundef 21, i32 noundef %.02690) #4
  br label %812

812:                                              ; preds = %806, %807
  br i1 %19, label %813, label %815

813:                                              ; preds = %812
  %814 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %0, i32 noundef %.026703079, i8 noundef signext %814, i32 noundef 16, i32 noundef 17, i32 noundef 2) #4
  br label %815

815:                                              ; preds = %813, %812
  br i1 %switch2871, label %816, label %818

816:                                              ; preds = %815
  %817 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %0, i32 noundef %.026703079, i8 noundef signext %817, i32 noundef 20, i32 noundef 21, i32 noundef 26) #4
  br label %818

818:                                              ; preds = %815, %816
  br i1 %19, label %819, label %822

819:                                              ; preds = %818
  %820 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_mask(ptr noundef %0, i32 noundef -268097947, i8 noundef signext %820, i32 noundef 14, i32 noundef 10, i32 noundef 16, i32 noundef 7, i32 noundef 0) #4
  %821 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %0, i32 noundef -259181021, i8 noundef signext %821, i32 noundef 14, i32 noundef 10, i32 noundef 17, i32 noundef %.02690) #4
  br label %822

822:                                              ; preds = %819, %818
  br i1 %switch2871, label %823, label %828

823:                                              ; preds = %822
  %824 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %0, i32 noundef 805574233, i8 noundef signext %824, i32 noundef 10, i32 noundef 10, i32 noundef 18) #4
  %825 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %0, i32 noundef 805574233, i8 noundef signext %825, i32 noundef 14, i32 noundef 14, i32 noundef 19) #4
  %826 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_mask(ptr noundef %0, i32 noundef -268097947, i8 noundef signext %826, i32 noundef 19, i32 noundef 18, i32 noundef 20, i32 noundef 7, i32 noundef 0) #4
  %827 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %0, i32 noundef -259181021, i8 noundef signext %827, i32 noundef 19, i32 noundef 18, i32 noundef 21, i32 noundef %.02690) #4
  br label %828

828:                                              ; preds = %822, %823
  br i1 %19, label %829, label %831

829:                                              ; preds = %828
  %830 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %0, i32 noundef %.026703079, i8 noundef signext %830, i32 noundef 16, i32 noundef 17, i32 noundef 10) #4
  br label %831

831:                                              ; preds = %829, %828
  br i1 %switch2871, label %832, label %834

832:                                              ; preds = %831
  %833 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %0, i32 noundef %.026703079, i8 noundef signext %833, i32 noundef 20, i32 noundef 21, i32 noundef 30) #4
  br label %834

834:                                              ; preds = %831, %832
  br i1 %19, label %835, label %838

835:                                              ; preds = %834
  %836 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_mask(ptr noundef %0, i32 noundef -268097947, i8 noundef signext %836, i32 noundef 7, i32 noundef 3, i32 noundef 16, i32 noundef 7, i32 noundef 0) #4
  %837 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %0, i32 noundef -259181021, i8 noundef signext %837, i32 noundef 7, i32 noundef 3, i32 noundef 17, i32 noundef %.02690) #4
  br label %838

838:                                              ; preds = %835, %834
  br i1 %switch2871, label %839, label %844

839:                                              ; preds = %838
  %840 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %0, i32 noundef 805574233, i8 noundef signext %840, i32 noundef 3, i32 noundef 3, i32 noundef 18) #4
  %841 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %0, i32 noundef 805574233, i8 noundef signext %841, i32 noundef 7, i32 noundef 7, i32 noundef 19) #4
  %842 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_mask(ptr noundef %0, i32 noundef -268097947, i8 noundef signext %842, i32 noundef 19, i32 noundef 18, i32 noundef 20, i32 noundef 7, i32 noundef 0) #4
  %843 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %0, i32 noundef -259181021, i8 noundef signext %843, i32 noundef 19, i32 noundef 18, i32 noundef 21, i32 noundef %.02690) #4
  br label %844

844:                                              ; preds = %838, %839
  br i1 %19, label %845, label %847

845:                                              ; preds = %844
  %846 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %0, i32 noundef %.026703079, i8 noundef signext %846, i32 noundef 16, i32 noundef 17, i32 noundef 3) #4
  br label %847

847:                                              ; preds = %845, %844
  br i1 %switch2871, label %848, label %850

848:                                              ; preds = %847
  %849 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %0, i32 noundef %.026703079, i8 noundef signext %849, i32 noundef 20, i32 noundef 21, i32 noundef 27) #4
  br label %850

850:                                              ; preds = %847, %848
  br i1 %19, label %851, label %854

851:                                              ; preds = %850
  %852 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_mask(ptr noundef %0, i32 noundef -268097947, i8 noundef signext %852, i32 noundef 15, i32 noundef 11, i32 noundef 16, i32 noundef 7, i32 noundef 0) #4
  %853 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %0, i32 noundef -259181021, i8 noundef signext %853, i32 noundef 15, i32 noundef 11, i32 noundef 17, i32 noundef %.02690) #4
  br label %854

854:                                              ; preds = %851, %850
  br i1 %switch2871, label %855, label %860

855:                                              ; preds = %854
  %856 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %0, i32 noundef 805574233, i8 noundef signext %856, i32 noundef 11, i32 noundef 11, i32 noundef 18) #4
  %857 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %0, i32 noundef 805574233, i8 noundef signext %857, i32 noundef 15, i32 noundef 15, i32 noundef 19) #4
  %858 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_mask(ptr noundef %0, i32 noundef -268097947, i8 noundef signext %858, i32 noundef 19, i32 noundef 18, i32 noundef 20, i32 noundef 7, i32 noundef 0) #4
  %859 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %0, i32 noundef -259181021, i8 noundef signext %859, i32 noundef 19, i32 noundef 18, i32 noundef 21, i32 noundef %.02690) #4
  br label %860

860:                                              ; preds = %854, %855
  br i1 %19, label %861, label %863

861:                                              ; preds = %860
  %862 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %0, i32 noundef %.026703079, i8 noundef signext %862, i32 noundef 16, i32 noundef 17, i32 noundef 11) #4
  br label %863

863:                                              ; preds = %861, %860
  br i1 %switch2871, label %864, label %866

864:                                              ; preds = %863
  %865 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %0, i32 noundef %.026703079, i8 noundef signext %865, i32 noundef 20, i32 noundef 21, i32 noundef 31) #4
  br label %866

866:                                              ; preds = %863, %864
  %867 = load i32, ptr %28, align 4, !tbaa !18
  %868 = icmp ugt i32 %867, 1100
  br i1 %868, label %869, label %909

869:                                              ; preds = %866
  br i1 %19, label %870, label %874

870:                                              ; preds = %869
  %871 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef nonnull %0, i32 noundef -259181021, i8 noundef signext %871, i32 noundef 8, i32 noundef 0, i32 noundef 16, i32 noundef 136) #4
  %872 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef nonnull %0, i32 noundef -259181021, i8 noundef signext %872, i32 noundef 8, i32 noundef 0, i32 noundef 17, i32 noundef 221) #4
  %873 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef nonnull %0, i32 noundef %.026703079, i8 noundef signext %873, i32 noundef 16, i32 noundef 17, i32 noundef 0) #4
  br label %874

874:                                              ; preds = %870, %869
  br i1 %switch2871, label %875, label %879

875:                                              ; preds = %874
  %876 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef nonnull %0, i32 noundef -259181021, i8 noundef signext %876, i32 noundef 28, i32 noundef 24, i32 noundef 20, i32 noundef 136) #4
  %877 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef nonnull %0, i32 noundef -259181021, i8 noundef signext %877, i32 noundef 28, i32 noundef 24, i32 noundef 21, i32 noundef 221) #4
  %878 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef nonnull %0, i32 noundef %.026703079, i8 noundef signext %878, i32 noundef 20, i32 noundef 21, i32 noundef 24) #4
  br label %879

879:                                              ; preds = %874, %875
  br i1 %19, label %880, label %884

880:                                              ; preds = %879
  %881 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef nonnull %0, i32 noundef -259181021, i8 noundef signext %881, i32 noundef 9, i32 noundef 1, i32 noundef 16, i32 noundef 136) #4
  %882 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef nonnull %0, i32 noundef -259181021, i8 noundef signext %882, i32 noundef 9, i32 noundef 1, i32 noundef 17, i32 noundef 221) #4
  %883 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef nonnull %0, i32 noundef %.026703079, i8 noundef signext %883, i32 noundef 16, i32 noundef 17, i32 noundef 1) #4
  br label %884

884:                                              ; preds = %880, %879
  br i1 %switch2871, label %885, label %889

885:                                              ; preds = %884
  %886 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef nonnull %0, i32 noundef -259181021, i8 noundef signext %886, i32 noundef 29, i32 noundef 25, i32 noundef 20, i32 noundef 136) #4
  %887 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef nonnull %0, i32 noundef -259181021, i8 noundef signext %887, i32 noundef 29, i32 noundef 25, i32 noundef 21, i32 noundef 221) #4
  %888 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef nonnull %0, i32 noundef %.026703079, i8 noundef signext %888, i32 noundef 20, i32 noundef 21, i32 noundef 25) #4
  br label %889

889:                                              ; preds = %884, %885
  br i1 %19, label %890, label %894

890:                                              ; preds = %889
  %891 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef nonnull %0, i32 noundef -259181021, i8 noundef signext %891, i32 noundef 10, i32 noundef 2, i32 noundef 16, i32 noundef 136) #4
  %892 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef nonnull %0, i32 noundef -259181021, i8 noundef signext %892, i32 noundef 10, i32 noundef 2, i32 noundef 17, i32 noundef 221) #4
  %893 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef nonnull %0, i32 noundef %.026703079, i8 noundef signext %893, i32 noundef 16, i32 noundef 17, i32 noundef 2) #4
  br label %894

894:                                              ; preds = %890, %889
  br i1 %switch2871, label %895, label %899

895:                                              ; preds = %894
  %896 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef nonnull %0, i32 noundef -259181021, i8 noundef signext %896, i32 noundef 30, i32 noundef 26, i32 noundef 20, i32 noundef 136) #4
  %897 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef nonnull %0, i32 noundef -259181021, i8 noundef signext %897, i32 noundef 30, i32 noundef 26, i32 noundef 21, i32 noundef 221) #4
  %898 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef nonnull %0, i32 noundef %.026703079, i8 noundef signext %898, i32 noundef 20, i32 noundef 21, i32 noundef 26) #4
  br label %899

899:                                              ; preds = %894, %895
  br i1 %19, label %900, label %904

900:                                              ; preds = %899
  %901 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef nonnull %0, i32 noundef -259181021, i8 noundef signext %901, i32 noundef 11, i32 noundef 3, i32 noundef 16, i32 noundef 136) #4
  %902 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef nonnull %0, i32 noundef -259181021, i8 noundef signext %902, i32 noundef 11, i32 noundef 3, i32 noundef 17, i32 noundef 221) #4
  %903 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef nonnull %0, i32 noundef %.026703079, i8 noundef signext %903, i32 noundef 16, i32 noundef 17, i32 noundef 3) #4
  br label %904

904:                                              ; preds = %900, %899
  br i1 %switch2871, label %905, label %909

905:                                              ; preds = %904
  %906 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef nonnull %0, i32 noundef -259181021, i8 noundef signext %906, i32 noundef 31, i32 noundef 27, i32 noundef 20, i32 noundef 136) #4
  %907 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef nonnull %0, i32 noundef -259181021, i8 noundef signext %907, i32 noundef 31, i32 noundef 27, i32 noundef 21, i32 noundef 221) #4
  %908 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef nonnull %0, i32 noundef %.026703079, i8 noundef signext %908, i32 noundef 20, i32 noundef 21, i32 noundef 27) #4
  br label %909

909:                                              ; preds = %904, %905, %866
  br i1 %19, label %910, label %914

910:                                              ; preds = %909
  %911 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef nonnull %0, i32 noundef 806098630, i8 noundef signext %911, i32 noundef 1, i32 noundef 0, i32 noundef 16, i32 noundef 68) #4
  %912 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef nonnull %0, i32 noundef 806098630, i8 noundef signext %912, i32 noundef 1, i32 noundef 0, i32 noundef 17, i32 noundef 238) #4
  %913 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef nonnull %0, i32 noundef %.026703079, i8 noundef signext %913, i32 noundef 16, i32 noundef 17, i32 noundef 0) #4
  br label %914

914:                                              ; preds = %910, %909
  br i1 %switch2871, label %915, label %919

915:                                              ; preds = %914
  %916 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef nonnull %0, i32 noundef 806098630, i8 noundef signext %916, i32 noundef 25, i32 noundef 24, i32 noundef 20, i32 noundef 68) #4
  %917 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef nonnull %0, i32 noundef 806098630, i8 noundef signext %917, i32 noundef 25, i32 noundef 24, i32 noundef 21, i32 noundef 238) #4
  %918 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef nonnull %0, i32 noundef %.026703079, i8 noundef signext %918, i32 noundef 20, i32 noundef 21, i32 noundef 24) #4
  br label %919

919:                                              ; preds = %914, %915
  br i1 %19, label %920, label %924

920:                                              ; preds = %919
  %921 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef nonnull %0, i32 noundef 806098630, i8 noundef signext %921, i32 noundef 3, i32 noundef 2, i32 noundef 16, i32 noundef 68) #4
  %922 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef nonnull %0, i32 noundef 806098630, i8 noundef signext %922, i32 noundef 3, i32 noundef 2, i32 noundef 17, i32 noundef 238) #4
  %923 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef nonnull %0, i32 noundef %.026703079, i8 noundef signext %923, i32 noundef 16, i32 noundef 17, i32 noundef 2) #4
  br label %924

924:                                              ; preds = %920, %919
  br i1 %switch2871, label %925, label %929

925:                                              ; preds = %924
  %926 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef nonnull %0, i32 noundef 806098630, i8 noundef signext %926, i32 noundef 27, i32 noundef 26, i32 noundef 20, i32 noundef 68) #4
  %927 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef nonnull %0, i32 noundef 806098630, i8 noundef signext %927, i32 noundef 27, i32 noundef 26, i32 noundef 21, i32 noundef 238) #4
  %928 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef nonnull %0, i32 noundef %.026703079, i8 noundef signext %928, i32 noundef 20, i32 noundef 21, i32 noundef 26) #4
  br label %929

929:                                              ; preds = %924, %925
  br i1 %19, label %930, label %1185

930:                                              ; preds = %929
  %931 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef nonnull %0, i32 noundef 806098630, i8 noundef signext %931, i32 noundef 2, i32 noundef 0, i32 noundef 16, i32 noundef 136) #4
  %932 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef nonnull %0, i32 noundef 806098630, i8 noundef signext %932, i32 noundef 2, i32 noundef 0, i32 noundef 17, i32 noundef 221) #4
  %933 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef nonnull %0, i32 noundef %.026703079, i8 noundef signext %933, i32 noundef 16, i32 noundef 17, i32 noundef 0) #4
  %934 = icmp eq i32 %.226663046, 0
  %or.cond55 = select i1 %934, i1 %683, i1 false
  br i1 %or.cond55, label %935, label %988

935:                                              ; preds = %930
  %936 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %937 = icmp eq i32 %936, 4
  br i1 %937, label %938, label %942

938:                                              ; preds = %935
  %939 = load i32, ptr %3, align 4, !tbaa !39
  %940 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_move(ptr noundef nonnull %0, i32 noundef %939, i32 noundef 537138704, i32 noundef 1, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %940, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 1) #4
  %941 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_generator_vcvtneps2bf8_avx512_preppedstack(ptr noundef nonnull %0, i8 noundef signext %941, i32 noundef 0, i32 noundef 0, i32 noundef 3, i32 noundef 4, i32 noundef 3, i32 noundef 4, i32 noundef 0, i32 noundef 0) #4
  br label %972

942:                                              ; preds = %935
  %943 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %944 = icmp eq i32 %943, 5
  br i1 %944, label %945, label %949

945:                                              ; preds = %942
  %946 = load i32, ptr %3, align 4, !tbaa !39
  %947 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_move(ptr noundef nonnull %0, i32 noundef %946, i32 noundef 537138704, i32 noundef 1, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %947, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 1) #4
  %948 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_generator_vcvtf32_to_hf8_avx512_preppedstack(ptr noundef nonnull %0, i8 noundef signext %948, i32 noundef 0, i32 noundef 0, i32 noundef 30, i32 noundef 31, i32 noundef 27, i32 noundef 28, i32 noundef 6, i32 noundef 5, i32 noundef 4) #4
  br label %972

949:                                              ; preds = %942
  %950 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %951 = icmp eq i32 %950, 3
  br i1 %951, label %952, label %960

952:                                              ; preds = %949
  %953 = load i32, ptr %3, align 4, !tbaa !39
  %954 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_move(ptr noundef nonnull %0, i32 noundef %953, i32 noundef 537138704, i32 noundef 1, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %954, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 1) #4
  %955 = load i8, ptr %10, align 4, !tbaa !9
  %956 = load i32, ptr %28, align 4, !tbaa !18
  %957 = icmp ugt i32 %956, 1100
  %958 = zext i1 %957 to i32
  %959 = zext i1 %957 to i8
  call void @libxsmm_x86_instruction_vec_compute_2reg_mask_sae_imm8(ptr noundef nonnull %0, i32 noundef 671954205, i8 noundef signext %955, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef %958, i8 noundef zeroext %959, i32 noundef 0) #4
  br label %972

960:                                              ; preds = %949
  %961 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %962 = icmp eq i32 %961, 2
  br i1 %962, label %963, label %972

963:                                              ; preds = %960
  %964 = load i32, ptr %3, align 4, !tbaa !39
  %965 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_move(ptr noundef nonnull %0, i32 noundef %964, i32 noundef 537138704, i32 noundef 1, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %965, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 1) #4
  %966 = load i32, ptr %28, align 4, !tbaa !18
  %.fr3020 = freeze i32 %966
  %967 = icmp ugt i32 %.fr3020, 1102
  br i1 %967, label %970, label %switch.early.test2914

switch.early.test2914:                            ; preds = %963
  switch i32 %.fr3020, label %968 [
    i32 1053, label %970
    i32 1008, label %970
  ]

968:                                              ; preds = %switch.early.test2914
  %969 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_generator_vcvtneps2bf16_avx512_preppedstack(ptr noundef nonnull %0, i8 noundef signext %969, i32 noundef 0, i32 noundef 0, i32 noundef 3, i32 noundef 4, i32 noundef 3, i32 noundef 4, i32 noundef 0) #4
  br label %972

970:                                              ; preds = %switch.early.test2914, %switch.early.test2914, %963
  %971 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_2reg(ptr noundef nonnull %0, i32 noundef 537273970, i8 noundef signext %971, i32 noundef 0, i32 noundef 0) #4
  br label %972

972:                                              ; preds = %945, %960, %970, %968, %952, %938
  %973 = load i32, ptr %3, align 4, !tbaa !39
  %974 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %975 = icmp eq i32 %974, 4
  br i1 %975, label %979, label %976

976:                                              ; preds = %972
  %977 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %978 = icmp eq i32 %977, 5
  br i1 %978, label %979, label %982

979:                                              ; preds = %976, %972
  %980 = load i32, ptr %28, align 4, !tbaa !18
  %981 = icmp ult i32 %980, 1101
  br i1 %981, label %984, label %982

982:                                              ; preds = %979, %976
  %983 = load i32, ptr %9, align 4, !tbaa !5
  br label %984

984:                                              ; preds = %979, %982
  %985 = phi i32 [ %983, %982 ], [ 545725200, %979 ]
  %986 = load i32, ptr %63, align 4, !tbaa !25
  %987 = load i8, ptr %7, align 1, !tbaa !11
  call void @libxsmm_x86_instruction_vec_move(ptr noundef nonnull %0, i32 noundef %973, i32 noundef %985, i32 noundef %986, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %987, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 1) #4
  br label %1185

988:                                              ; preds = %930
  %or.cond57 = select i1 %934, i1 %27, i1 false
  br i1 %or.cond57, label %989, label %1078

989:                                              ; preds = %988
  %990 = load i32, ptr %3, align 4, !tbaa !39
  %991 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %992 = icmp eq i32 %991, 4
  br i1 %992, label %996, label %993

993:                                              ; preds = %989
  %994 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %995 = icmp eq i32 %994, 5
  br i1 %995, label %996, label %999

996:                                              ; preds = %993, %989
  %997 = load i32, ptr %28, align 4, !tbaa !18
  %998 = icmp ult i32 %997, 1101
  br i1 %998, label %1001, label %999

999:                                              ; preds = %996, %993
  %1000 = load i32, ptr %9, align 4, !tbaa !5
  br label %1001

1001:                                             ; preds = %996, %999
  %1002 = phi i32 [ %1000, %999 ], [ 545725200, %996 ]
  %1003 = load i32, ptr %63, align 4, !tbaa !25
  %1004 = load i8, ptr %7, align 1, !tbaa !11
  call void @libxsmm_x86_instruction_vec_move(ptr noundef nonnull %0, i32 noundef %990, i32 noundef %1002, i32 noundef %1003, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %1004, i32 noundef 3, i32 noundef 0, i32 noundef 1, i32 noundef 0) #4
  %1005 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %1006 = icmp eq i32 %1005, 4
  br i1 %1006, label %1007, label %1009

1007:                                             ; preds = %1001
  %1008 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_generator_cvtbf8ps_avx512(ptr noundef nonnull %0, i8 noundef signext %1008, i32 noundef 3, i32 noundef 3) #4
  br label %1024

1009:                                             ; preds = %1001
  %1010 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %1011 = icmp eq i32 %1010, 5
  br i1 %1011, label %1012, label %1014

1012:                                             ; preds = %1009
  %1013 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_generator_vcvthf8_to_f32_avx512_preppedstack(ptr noundef nonnull %0, i8 noundef signext %1013, i32 noundef 3, i32 noundef 3, i32 noundef 30, i32 noundef 31, i32 noundef 6, i32 noundef 5) #4
  br label %1024

1014:                                             ; preds = %1009
  %1015 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %1016 = icmp eq i32 %1015, 3
  br i1 %1016, label %1017, label %1019

1017:                                             ; preds = %1014
  %1018 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_2reg(ptr noundef nonnull %0, i32 noundef 537208083, i8 noundef signext %1018, i32 noundef 3, i32 noundef 3) #4
  br label %1024

1019:                                             ; preds = %1014
  %1020 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %1021 = icmp eq i32 %1020, 2
  br i1 %1021, label %1022, label %1024

1022:                                             ; preds = %1019
  %1023 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_generator_cvtbf16ps_sse_avx2_avx512(ptr noundef nonnull %0, i8 noundef signext %1023, i32 noundef 3, i32 noundef 3) #4
  br label %1024

1024:                                             ; preds = %1012, %1019, %1022, %1017, %1007
  %1025 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef nonnull %0, i32 noundef %.026703079, i8 noundef signext %1025, i32 noundef 3, i32 noundef 0, i32 noundef 0) #4
  %1026 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %1027 = icmp eq i32 %1026, 4
  br i1 %1027, label %1028, label %1032

1028:                                             ; preds = %1024
  %1029 = load i32, ptr %3, align 4, !tbaa !39
  %1030 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_move(ptr noundef nonnull %0, i32 noundef %1029, i32 noundef 537138704, i32 noundef 1, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %1030, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 1) #4
  %1031 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_generator_vcvtneps2bf8_avx512_preppedstack(ptr noundef nonnull %0, i8 noundef signext %1031, i32 noundef 0, i32 noundef 0, i32 noundef 3, i32 noundef 4, i32 noundef 3, i32 noundef 4, i32 noundef 0, i32 noundef 0) #4
  br label %1062

1032:                                             ; preds = %1024
  %1033 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %1034 = icmp eq i32 %1033, 5
  br i1 %1034, label %1035, label %1039

1035:                                             ; preds = %1032
  %1036 = load i32, ptr %3, align 4, !tbaa !39
  %1037 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_move(ptr noundef nonnull %0, i32 noundef %1036, i32 noundef 537138704, i32 noundef 1, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %1037, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 1) #4
  %1038 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_generator_vcvtf32_to_hf8_avx512_preppedstack(ptr noundef nonnull %0, i8 noundef signext %1038, i32 noundef 0, i32 noundef 0, i32 noundef 30, i32 noundef 31, i32 noundef 27, i32 noundef 28, i32 noundef 6, i32 noundef 5, i32 noundef 4) #4
  br label %1062

1039:                                             ; preds = %1032
  %1040 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %1041 = icmp eq i32 %1040, 3
  br i1 %1041, label %1042, label %1050

1042:                                             ; preds = %1039
  %1043 = load i32, ptr %3, align 4, !tbaa !39
  %1044 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_move(ptr noundef nonnull %0, i32 noundef %1043, i32 noundef 537138704, i32 noundef 1, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %1044, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 1) #4
  %1045 = load i8, ptr %10, align 4, !tbaa !9
  %1046 = load i32, ptr %28, align 4, !tbaa !18
  %1047 = icmp ugt i32 %1046, 1100
  %1048 = zext i1 %1047 to i32
  %1049 = zext i1 %1047 to i8
  call void @libxsmm_x86_instruction_vec_compute_2reg_mask_sae_imm8(ptr noundef nonnull %0, i32 noundef 671954205, i8 noundef signext %1045, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef %1048, i8 noundef zeroext %1049, i32 noundef 0) #4
  br label %1062

1050:                                             ; preds = %1039
  %1051 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %1052 = icmp eq i32 %1051, 2
  br i1 %1052, label %1053, label %1062

1053:                                             ; preds = %1050
  %1054 = load i32, ptr %3, align 4, !tbaa !39
  %1055 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_move(ptr noundef nonnull %0, i32 noundef %1054, i32 noundef 537138704, i32 noundef 1, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %1055, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 1) #4
  %1056 = load i32, ptr %28, align 4, !tbaa !18
  %.fr3019 = freeze i32 %1056
  %1057 = icmp ugt i32 %.fr3019, 1102
  br i1 %1057, label %1060, label %switch.early.test2915

switch.early.test2915:                            ; preds = %1053
  switch i32 %.fr3019, label %1058 [
    i32 1053, label %1060
    i32 1008, label %1060
  ]

1058:                                             ; preds = %switch.early.test2915
  %1059 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_generator_vcvtneps2bf16_avx512_preppedstack(ptr noundef nonnull %0, i8 noundef signext %1059, i32 noundef 0, i32 noundef 0, i32 noundef 3, i32 noundef 4, i32 noundef 3, i32 noundef 4, i32 noundef 0) #4
  br label %1062

1060:                                             ; preds = %switch.early.test2915, %switch.early.test2915, %1053
  %1061 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_2reg(ptr noundef nonnull %0, i32 noundef 537273970, i8 noundef signext %1061, i32 noundef 0, i32 noundef 0) #4
  br label %1062

1062:                                             ; preds = %1035, %1050, %1060, %1058, %1042, %1028
  %1063 = load i32, ptr %3, align 4, !tbaa !39
  %1064 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %1065 = icmp eq i32 %1064, 4
  br i1 %1065, label %1069, label %1066

1066:                                             ; preds = %1062
  %1067 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %1068 = icmp eq i32 %1067, 5
  br i1 %1068, label %1069, label %1072

1069:                                             ; preds = %1066, %1062
  %1070 = load i32, ptr %28, align 4, !tbaa !18
  %1071 = icmp ult i32 %1070, 1101
  br i1 %1071, label %1074, label %1072

1072:                                             ; preds = %1069, %1066
  %1073 = load i32, ptr %9, align 4, !tbaa !5
  br label %1074

1074:                                             ; preds = %1069, %1072
  %1075 = phi i32 [ %1073, %1072 ], [ 545725200, %1069 ]
  %1076 = load i32, ptr %63, align 4, !tbaa !25
  %1077 = load i8, ptr %7, align 1, !tbaa !11
  call void @libxsmm_x86_instruction_vec_move(ptr noundef nonnull %0, i32 noundef %1063, i32 noundef %1075, i32 noundef %1076, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %1077, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 1) #4
  br label %1185

1078:                                             ; preds = %988
  %1079 = icmp eq i32 %.226663046, %681
  %1080 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %1081 = icmp eq i32 %1080, 3
  br i1 %1079, label %1082, label %1146

1082:                                             ; preds = %1078
  br i1 %1081, label %1092, label %1083

1083:                                             ; preds = %1082
  %1084 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %1085 = icmp eq i32 %1084, 2
  br i1 %1085, label %1092, label %1086

1086:                                             ; preds = %1083
  %1087 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %1088 = icmp eq i32 %1087, 5
  br i1 %1088, label %1092, label %1089

1089:                                             ; preds = %1086
  %1090 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %1091 = icmp eq i32 %1090, 4
  br i1 %1091, label %1092, label %1095

1092:                                             ; preds = %1089, %1086, %1083, %1082
  %1093 = load i32, ptr %3, align 4, !tbaa !39
  %1094 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_move(ptr noundef nonnull %0, i32 noundef %1093, i32 noundef 537138704, i32 noundef 1, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %1094, i32 noundef 1, i32 noundef 0, i32 noundef 1, i32 noundef 0) #4
  br label %1100

1095:                                             ; preds = %1089
  %1096 = load i32, ptr %3, align 4, !tbaa !39
  %1097 = load i32, ptr %9, align 4, !tbaa !5
  %1098 = load i32, ptr %63, align 4, !tbaa !25
  %1099 = load i8, ptr %7, align 1, !tbaa !11
  call void @libxsmm_x86_instruction_vec_move(ptr noundef nonnull %0, i32 noundef %1096, i32 noundef %1097, i32 noundef %1098, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %1099, i32 noundef 1, i32 noundef 0, i32 noundef 1, i32 noundef 0) #4
  br label %1100

1100:                                             ; preds = %1095, %1092
  %1101 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef nonnull %0, i32 noundef %.026703079, i8 noundef signext %1101, i32 noundef 1, i32 noundef 0, i32 noundef 0) #4
  %1102 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %1103 = icmp eq i32 %1102, 4
  br i1 %1103, label %1104, label %1106

1104:                                             ; preds = %1100
  %1105 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_generator_vcvtneps2bf8_avx512_preppedstack(ptr noundef nonnull %0, i8 noundef signext %1105, i32 noundef 0, i32 noundef 0, i32 noundef 3, i32 noundef 4, i32 noundef 3, i32 noundef 4, i32 noundef 0, i32 noundef 0) #4
  br label %1130

1106:                                             ; preds = %1100
  %1107 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %1108 = icmp eq i32 %1107, 5
  br i1 %1108, label %1109, label %1111

1109:                                             ; preds = %1106
  %1110 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_generator_vcvtf32_to_hf8_avx512_preppedstack(ptr noundef nonnull %0, i8 noundef signext %1110, i32 noundef 0, i32 noundef 0, i32 noundef 30, i32 noundef 31, i32 noundef 27, i32 noundef 28, i32 noundef 6, i32 noundef 5, i32 noundef 4) #4
  br label %1130

1111:                                             ; preds = %1106
  %1112 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %1113 = icmp eq i32 %1112, 3
  br i1 %1113, label %1114, label %1120

1114:                                             ; preds = %1111
  %1115 = load i8, ptr %10, align 4, !tbaa !9
  %1116 = load i32, ptr %28, align 4, !tbaa !18
  %1117 = icmp ugt i32 %1116, 1100
  %1118 = zext i1 %1117 to i32
  %1119 = zext i1 %1117 to i8
  call void @libxsmm_x86_instruction_vec_compute_2reg_mask_sae_imm8(ptr noundef nonnull %0, i32 noundef 671954205, i8 noundef signext %1115, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef %1118, i8 noundef zeroext %1119, i32 noundef 0) #4
  br label %1130

1120:                                             ; preds = %1111
  %1121 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %1122 = icmp eq i32 %1121, 2
  br i1 %1122, label %1123, label %1130

1123:                                             ; preds = %1120
  %1124 = load i32, ptr %28, align 4, !tbaa !18
  %.fr3018 = freeze i32 %1124
  %1125 = icmp ugt i32 %.fr3018, 1102
  br i1 %1125, label %1128, label %switch.early.test2916

switch.early.test2916:                            ; preds = %1123
  switch i32 %.fr3018, label %1126 [
    i32 1053, label %1128
    i32 1008, label %1128
  ]

1126:                                             ; preds = %switch.early.test2916
  %1127 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_generator_vcvtneps2bf16_avx512_preppedstack(ptr noundef nonnull %0, i8 noundef signext %1127, i32 noundef 0, i32 noundef 0, i32 noundef 3, i32 noundef 4, i32 noundef 3, i32 noundef 4, i32 noundef 0) #4
  br label %1130

1128:                                             ; preds = %switch.early.test2916, %switch.early.test2916, %1123
  %1129 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_2reg(ptr noundef nonnull %0, i32 noundef 537273970, i8 noundef signext %1129, i32 noundef 0, i32 noundef 0) #4
  br label %1130

1130:                                             ; preds = %1109, %1120, %1128, %1126, %1114, %1104
  %1131 = load i32, ptr %3, align 4, !tbaa !39
  %1132 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %1133 = icmp eq i32 %1132, 4
  br i1 %1133, label %1137, label %1134

1134:                                             ; preds = %1130
  %1135 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %1136 = icmp eq i32 %1135, 5
  br i1 %1136, label %1137, label %1140

1137:                                             ; preds = %1134, %1130
  %1138 = load i32, ptr %28, align 4, !tbaa !18
  %1139 = icmp ult i32 %1138, 1101
  br i1 %1139, label %1142, label %1140

1140:                                             ; preds = %1137, %1134
  %1141 = load i32, ptr %9, align 4, !tbaa !5
  br label %1142

1142:                                             ; preds = %1137, %1140
  %1143 = phi i32 [ %1141, %1140 ], [ 545725200, %1137 ]
  %1144 = load i32, ptr %63, align 4, !tbaa !25
  %1145 = load i8, ptr %7, align 1, !tbaa !11
  call void @libxsmm_x86_instruction_vec_move(ptr noundef nonnull %0, i32 noundef %1131, i32 noundef %1143, i32 noundef %1144, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %1145, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 1) #4
  br label %1185

1146:                                             ; preds = %1078
  br i1 %1081, label %1156, label %1147

1147:                                             ; preds = %1146
  %1148 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %1149 = icmp eq i32 %1148, 2
  br i1 %1149, label %1156, label %1150

1150:                                             ; preds = %1147
  %1151 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %1152 = icmp eq i32 %1151, 5
  br i1 %1152, label %1156, label %1153

1153:                                             ; preds = %1150
  %1154 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %1155 = icmp eq i32 %1154, 4
  br i1 %1155, label %1156, label %1159

1156:                                             ; preds = %1153, %1150, %1147, %1146
  %1157 = load i32, ptr %3, align 4, !tbaa !39
  %1158 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_move(ptr noundef nonnull %0, i32 noundef %1157, i32 noundef 537138704, i32 noundef 1, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %1158, i32 noundef 1, i32 noundef 0, i32 noundef 1, i32 noundef 0) #4
  br label %1164

1159:                                             ; preds = %1153
  %1160 = load i32, ptr %3, align 4, !tbaa !39
  %1161 = load i32, ptr %9, align 4, !tbaa !5
  %1162 = load i32, ptr %63, align 4, !tbaa !25
  %1163 = load i8, ptr %7, align 1, !tbaa !11
  call void @libxsmm_x86_instruction_vec_move(ptr noundef nonnull %0, i32 noundef %1160, i32 noundef %1161, i32 noundef %1162, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %1163, i32 noundef 1, i32 noundef 0, i32 noundef 1, i32 noundef 0) #4
  br label %1164

1164:                                             ; preds = %1159, %1156
  %1165 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef nonnull %0, i32 noundef %.026703079, i8 noundef signext %1165, i32 noundef 1, i32 noundef 0, i32 noundef 0) #4
  %1166 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %1167 = icmp eq i32 %1166, 3
  br i1 %1167, label %1177, label %1168

1168:                                             ; preds = %1164
  %1169 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %1170 = icmp eq i32 %1169, 2
  br i1 %1170, label %1177, label %1171

1171:                                             ; preds = %1168
  %1172 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %1173 = icmp eq i32 %1172, 5
  br i1 %1173, label %1177, label %1174

1174:                                             ; preds = %1171
  %1175 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %1176 = icmp eq i32 %1175, 4
  br i1 %1176, label %1177, label %1180

1177:                                             ; preds = %1174, %1171, %1168, %1164
  %1178 = load i32, ptr %3, align 4, !tbaa !39
  %1179 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_move(ptr noundef nonnull %0, i32 noundef %1178, i32 noundef 537138704, i32 noundef 1, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %1179, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 1) #4
  br label %1185

1180:                                             ; preds = %1174
  %1181 = load i32, ptr %3, align 4, !tbaa !39
  %1182 = load i32, ptr %9, align 4, !tbaa !5
  %1183 = load i32, ptr %63, align 4, !tbaa !25
  %1184 = load i8, ptr %7, align 1, !tbaa !11
  call void @libxsmm_x86_instruction_vec_move(ptr noundef nonnull %0, i32 noundef %1181, i32 noundef %1182, i32 noundef %1183, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %1184, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 1) #4
  br label %1185

1185:                                             ; preds = %984, %1142, %1180, %1177, %1074, %929
  br i1 %switch2871, label %1186, label %1441

1186:                                             ; preds = %1185
  %1187 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef nonnull %0, i32 noundef 806098630, i8 noundef signext %1187, i32 noundef 26, i32 noundef 24, i32 noundef 20, i32 noundef 136) #4
  %1188 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef nonnull %0, i32 noundef 806098630, i8 noundef signext %1188, i32 noundef 26, i32 noundef 24, i32 noundef 21, i32 noundef 221) #4
  %1189 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef nonnull %0, i32 noundef %.026703079, i8 noundef signext %1189, i32 noundef 20, i32 noundef 21, i32 noundef 24) #4
  %1190 = icmp eq i32 %.226663046, 0
  %or.cond59 = select i1 %1190, i1 %683, i1 false
  br i1 %or.cond59, label %1191, label %1244

1191:                                             ; preds = %1186
  %1192 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %1193 = icmp eq i32 %1192, 4
  br i1 %1193, label %1194, label %1198

1194:                                             ; preds = %1191
  %1195 = load i32, ptr %3, align 4, !tbaa !39
  %1196 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_move(ptr noundef nonnull %0, i32 noundef %1195, i32 noundef 537138704, i32 noundef 1, i32 noundef 127, i32 noundef 0, i32 noundef 64, i8 noundef signext %1196, i32 noundef 24, i32 noundef 0, i32 noundef 0, i32 noundef 1) #4
  %1197 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_generator_vcvtneps2bf8_avx512_preppedstack(ptr noundef nonnull %0, i8 noundef signext %1197, i32 noundef 24, i32 noundef 24, i32 noundef 25, i32 noundef 26, i32 noundef 3, i32 noundef 4, i32 noundef 0, i32 noundef 0) #4
  br label %1228

1198:                                             ; preds = %1191
  %1199 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %1200 = icmp eq i32 %1199, 5
  br i1 %1200, label %1201, label %1205

1201:                                             ; preds = %1198
  %1202 = load i32, ptr %3, align 4, !tbaa !39
  %1203 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_move(ptr noundef nonnull %0, i32 noundef %1202, i32 noundef 537138704, i32 noundef 1, i32 noundef 127, i32 noundef 0, i32 noundef 64, i8 noundef signext %1203, i32 noundef 24, i32 noundef 0, i32 noundef 0, i32 noundef 1) #4
  %1204 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_generator_vcvtf32_to_hf8_avx512_preppedstack(ptr noundef nonnull %0, i8 noundef signext %1204, i32 noundef 24, i32 noundef 24, i32 noundef 30, i32 noundef 31, i32 noundef 27, i32 noundef 28, i32 noundef 6, i32 noundef 5, i32 noundef 4) #4
  br label %1228

1205:                                             ; preds = %1198
  %1206 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %1207 = icmp eq i32 %1206, 3
  br i1 %1207, label %1208, label %1216

1208:                                             ; preds = %1205
  %1209 = load i32, ptr %3, align 4, !tbaa !39
  %1210 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_move(ptr noundef nonnull %0, i32 noundef %1209, i32 noundef 537138704, i32 noundef 1, i32 noundef 127, i32 noundef 0, i32 noundef 64, i8 noundef signext %1210, i32 noundef 24, i32 noundef 0, i32 noundef 0, i32 noundef 1) #4
  %1211 = load i8, ptr %10, align 4, !tbaa !9
  %1212 = load i32, ptr %28, align 4, !tbaa !18
  %1213 = icmp ugt i32 %1212, 1100
  %1214 = zext i1 %1213 to i32
  %1215 = zext i1 %1213 to i8
  call void @libxsmm_x86_instruction_vec_compute_2reg_mask_sae_imm8(ptr noundef nonnull %0, i32 noundef 671954205, i8 noundef signext %1211, i32 noundef 24, i32 noundef 24, i32 noundef 0, i32 noundef %1214, i8 noundef zeroext %1215, i32 noundef 0) #4
  br label %1228

1216:                                             ; preds = %1205
  %1217 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %1218 = icmp eq i32 %1217, 2
  br i1 %1218, label %1219, label %1228

1219:                                             ; preds = %1216
  %1220 = load i32, ptr %3, align 4, !tbaa !39
  %1221 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_move(ptr noundef nonnull %0, i32 noundef %1220, i32 noundef 537138704, i32 noundef 1, i32 noundef 127, i32 noundef 0, i32 noundef 64, i8 noundef signext %1221, i32 noundef 24, i32 noundef 0, i32 noundef 0, i32 noundef 1) #4
  %1222 = load i32, ptr %28, align 4, !tbaa !18
  %.fr3023 = freeze i32 %1222
  %1223 = icmp ugt i32 %.fr3023, 1102
  br i1 %1223, label %1226, label %switch.early.test2919

switch.early.test2919:                            ; preds = %1219
  switch i32 %.fr3023, label %1224 [
    i32 1053, label %1226
    i32 1008, label %1226
  ]

1224:                                             ; preds = %switch.early.test2919
  %1225 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_generator_vcvtneps2bf16_avx512_preppedstack(ptr noundef nonnull %0, i8 noundef signext %1225, i32 noundef 24, i32 noundef 24, i32 noundef 25, i32 noundef 26, i32 noundef 3, i32 noundef 4, i32 noundef 0) #4
  br label %1228

1226:                                             ; preds = %switch.early.test2919, %switch.early.test2919, %1219
  %1227 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_2reg(ptr noundef nonnull %0, i32 noundef 537273970, i8 noundef signext %1227, i32 noundef 24, i32 noundef 24) #4
  br label %1228

1228:                                             ; preds = %1201, %1216, %1226, %1224, %1208, %1194
  %1229 = load i32, ptr %3, align 4, !tbaa !39
  %1230 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %1231 = icmp eq i32 %1230, 4
  br i1 %1231, label %1235, label %1232

1232:                                             ; preds = %1228
  %1233 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %1234 = icmp eq i32 %1233, 5
  br i1 %1234, label %1235, label %1238

1235:                                             ; preds = %1232, %1228
  %1236 = load i32, ptr %28, align 4, !tbaa !18
  %1237 = icmp ult i32 %1236, 1101
  br i1 %1237, label %1240, label %1238

1238:                                             ; preds = %1235, %1232
  %1239 = load i32, ptr %9, align 4, !tbaa !5
  br label %1240

1240:                                             ; preds = %1235, %1238
  %1241 = phi i32 [ %1239, %1238 ], [ 545725200, %1235 ]
  %1242 = load i32, ptr %64, align 4, !tbaa !26
  %1243 = load i8, ptr %7, align 1, !tbaa !11
  call void @libxsmm_x86_instruction_vec_move(ptr noundef nonnull %0, i32 noundef %1229, i32 noundef %1241, i32 noundef %1242, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %1243, i32 noundef 24, i32 noundef 0, i32 noundef 0, i32 noundef 1) #4
  br label %1441

1244:                                             ; preds = %1186
  %or.cond61 = select i1 %1190, i1 %27, i1 false
  br i1 %or.cond61, label %1245, label %1334

1245:                                             ; preds = %1244
  %1246 = load i32, ptr %3, align 4, !tbaa !39
  %1247 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %1248 = icmp eq i32 %1247, 4
  br i1 %1248, label %1252, label %1249

1249:                                             ; preds = %1245
  %1250 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %1251 = icmp eq i32 %1250, 5
  br i1 %1251, label %1252, label %1255

1252:                                             ; preds = %1249, %1245
  %1253 = load i32, ptr %28, align 4, !tbaa !18
  %1254 = icmp ult i32 %1253, 1101
  br i1 %1254, label %1257, label %1255

1255:                                             ; preds = %1252, %1249
  %1256 = load i32, ptr %9, align 4, !tbaa !5
  br label %1257

1257:                                             ; preds = %1252, %1255
  %1258 = phi i32 [ %1256, %1255 ], [ 545725200, %1252 ]
  %1259 = load i32, ptr %64, align 4, !tbaa !26
  %1260 = load i8, ptr %7, align 1, !tbaa !11
  call void @libxsmm_x86_instruction_vec_move(ptr noundef nonnull %0, i32 noundef %1246, i32 noundef %1258, i32 noundef %1259, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %1260, i32 noundef 25, i32 noundef 0, i32 noundef 1, i32 noundef 0) #4
  %1261 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %1262 = icmp eq i32 %1261, 4
  br i1 %1262, label %1263, label %1265

1263:                                             ; preds = %1257
  %1264 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_generator_cvtbf8ps_avx512(ptr noundef nonnull %0, i8 noundef signext %1264, i32 noundef 25, i32 noundef 25) #4
  br label %1280

1265:                                             ; preds = %1257
  %1266 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %1267 = icmp eq i32 %1266, 5
  br i1 %1267, label %1268, label %1270

1268:                                             ; preds = %1265
  %1269 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_generator_vcvthf8_to_f32_avx512_preppedstack(ptr noundef nonnull %0, i8 noundef signext %1269, i32 noundef 25, i32 noundef 25, i32 noundef 30, i32 noundef 31, i32 noundef 6, i32 noundef 5) #4
  br label %1280

1270:                                             ; preds = %1265
  %1271 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %1272 = icmp eq i32 %1271, 3
  br i1 %1272, label %1273, label %1275

1273:                                             ; preds = %1270
  %1274 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_2reg(ptr noundef nonnull %0, i32 noundef 537208083, i8 noundef signext %1274, i32 noundef 25, i32 noundef 25) #4
  br label %1280

1275:                                             ; preds = %1270
  %1276 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %1277 = icmp eq i32 %1276, 2
  br i1 %1277, label %1278, label %1280

1278:                                             ; preds = %1275
  %1279 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_generator_cvtbf16ps_sse_avx2_avx512(ptr noundef nonnull %0, i8 noundef signext %1279, i32 noundef 25, i32 noundef 25) #4
  br label %1280

1280:                                             ; preds = %1268, %1275, %1278, %1273, %1263
  %1281 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef nonnull %0, i32 noundef %.026703079, i8 noundef signext %1281, i32 noundef 25, i32 noundef 24, i32 noundef 24) #4
  %1282 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %1283 = icmp eq i32 %1282, 4
  br i1 %1283, label %1284, label %1288

1284:                                             ; preds = %1280
  %1285 = load i32, ptr %3, align 4, !tbaa !39
  %1286 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_move(ptr noundef nonnull %0, i32 noundef %1285, i32 noundef 537138704, i32 noundef 1, i32 noundef 127, i32 noundef 0, i32 noundef 64, i8 noundef signext %1286, i32 noundef 24, i32 noundef 0, i32 noundef 0, i32 noundef 1) #4
  %1287 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_generator_vcvtneps2bf8_avx512_preppedstack(ptr noundef nonnull %0, i8 noundef signext %1287, i32 noundef 24, i32 noundef 24, i32 noundef 25, i32 noundef 26, i32 noundef 3, i32 noundef 4, i32 noundef 0, i32 noundef 0) #4
  br label %1318

1288:                                             ; preds = %1280
  %1289 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %1290 = icmp eq i32 %1289, 5
  br i1 %1290, label %1291, label %1295

1291:                                             ; preds = %1288
  %1292 = load i32, ptr %3, align 4, !tbaa !39
  %1293 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_move(ptr noundef nonnull %0, i32 noundef %1292, i32 noundef 537138704, i32 noundef 1, i32 noundef 127, i32 noundef 0, i32 noundef 64, i8 noundef signext %1293, i32 noundef 24, i32 noundef 0, i32 noundef 0, i32 noundef 1) #4
  %1294 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_generator_vcvtf32_to_hf8_avx512_preppedstack(ptr noundef nonnull %0, i8 noundef signext %1294, i32 noundef 24, i32 noundef 24, i32 noundef 30, i32 noundef 31, i32 noundef 27, i32 noundef 28, i32 noundef 6, i32 noundef 5, i32 noundef 4) #4
  br label %1318

1295:                                             ; preds = %1288
  %1296 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %1297 = icmp eq i32 %1296, 3
  br i1 %1297, label %1298, label %1306

1298:                                             ; preds = %1295
  %1299 = load i32, ptr %3, align 4, !tbaa !39
  %1300 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_move(ptr noundef nonnull %0, i32 noundef %1299, i32 noundef 537138704, i32 noundef 1, i32 noundef 127, i32 noundef 0, i32 noundef 64, i8 noundef signext %1300, i32 noundef 24, i32 noundef 0, i32 noundef 0, i32 noundef 1) #4
  %1301 = load i8, ptr %10, align 4, !tbaa !9
  %1302 = load i32, ptr %28, align 4, !tbaa !18
  %1303 = icmp ugt i32 %1302, 1100
  %1304 = zext i1 %1303 to i32
  %1305 = zext i1 %1303 to i8
  call void @libxsmm_x86_instruction_vec_compute_2reg_mask_sae_imm8(ptr noundef nonnull %0, i32 noundef 671954205, i8 noundef signext %1301, i32 noundef 24, i32 noundef 24, i32 noundef 0, i32 noundef %1304, i8 noundef zeroext %1305, i32 noundef 0) #4
  br label %1318

1306:                                             ; preds = %1295
  %1307 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %1308 = icmp eq i32 %1307, 2
  br i1 %1308, label %1309, label %1318

1309:                                             ; preds = %1306
  %1310 = load i32, ptr %3, align 4, !tbaa !39
  %1311 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_move(ptr noundef nonnull %0, i32 noundef %1310, i32 noundef 537138704, i32 noundef 1, i32 noundef 127, i32 noundef 0, i32 noundef 64, i8 noundef signext %1311, i32 noundef 24, i32 noundef 0, i32 noundef 0, i32 noundef 1) #4
  %1312 = load i32, ptr %28, align 4, !tbaa !18
  %.fr3022 = freeze i32 %1312
  %1313 = icmp ugt i32 %.fr3022, 1102
  br i1 %1313, label %1316, label %switch.early.test2920

switch.early.test2920:                            ; preds = %1309
  switch i32 %.fr3022, label %1314 [
    i32 1053, label %1316
    i32 1008, label %1316
  ]

1314:                                             ; preds = %switch.early.test2920
  %1315 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_generator_vcvtneps2bf16_avx512_preppedstack(ptr noundef nonnull %0, i8 noundef signext %1315, i32 noundef 24, i32 noundef 24, i32 noundef 25, i32 noundef 26, i32 noundef 3, i32 noundef 4, i32 noundef 0) #4
  br label %1318

1316:                                             ; preds = %switch.early.test2920, %switch.early.test2920, %1309
  %1317 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_2reg(ptr noundef nonnull %0, i32 noundef 537273970, i8 noundef signext %1317, i32 noundef 24, i32 noundef 24) #4
  br label %1318

1318:                                             ; preds = %1291, %1306, %1316, %1314, %1298, %1284
  %1319 = load i32, ptr %3, align 4, !tbaa !39
  %1320 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %1321 = icmp eq i32 %1320, 4
  br i1 %1321, label %1325, label %1322

1322:                                             ; preds = %1318
  %1323 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %1324 = icmp eq i32 %1323, 5
  br i1 %1324, label %1325, label %1328

1325:                                             ; preds = %1322, %1318
  %1326 = load i32, ptr %28, align 4, !tbaa !18
  %1327 = icmp ult i32 %1326, 1101
  br i1 %1327, label %1330, label %1328

1328:                                             ; preds = %1325, %1322
  %1329 = load i32, ptr %9, align 4, !tbaa !5
  br label %1330

1330:                                             ; preds = %1325, %1328
  %1331 = phi i32 [ %1329, %1328 ], [ 545725200, %1325 ]
  %1332 = load i32, ptr %64, align 4, !tbaa !26
  %1333 = load i8, ptr %7, align 1, !tbaa !11
  call void @libxsmm_x86_instruction_vec_move(ptr noundef nonnull %0, i32 noundef %1319, i32 noundef %1331, i32 noundef %1332, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %1333, i32 noundef 24, i32 noundef 0, i32 noundef 0, i32 noundef 1) #4
  br label %1441

1334:                                             ; preds = %1244
  %1335 = icmp eq i32 %.226663046, %681
  %1336 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %1337 = icmp eq i32 %1336, 3
  br i1 %1335, label %1338, label %1402

1338:                                             ; preds = %1334
  br i1 %1337, label %1348, label %1339

1339:                                             ; preds = %1338
  %1340 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %1341 = icmp eq i32 %1340, 2
  br i1 %1341, label %1348, label %1342

1342:                                             ; preds = %1339
  %1343 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %1344 = icmp eq i32 %1343, 5
  br i1 %1344, label %1348, label %1345

1345:                                             ; preds = %1342
  %1346 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %1347 = icmp eq i32 %1346, 4
  br i1 %1347, label %1348, label %1351

1348:                                             ; preds = %1345, %1342, %1339, %1338
  %1349 = load i32, ptr %3, align 4, !tbaa !39
  %1350 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_move(ptr noundef nonnull %0, i32 noundef %1349, i32 noundef 537138704, i32 noundef 1, i32 noundef 127, i32 noundef 0, i32 noundef 64, i8 noundef signext %1350, i32 noundef 25, i32 noundef 0, i32 noundef 1, i32 noundef 0) #4
  br label %1356

1351:                                             ; preds = %1345
  %1352 = load i32, ptr %3, align 4, !tbaa !39
  %1353 = load i32, ptr %9, align 4, !tbaa !5
  %1354 = load i32, ptr %64, align 4, !tbaa !26
  %1355 = load i8, ptr %7, align 1, !tbaa !11
  call void @libxsmm_x86_instruction_vec_move(ptr noundef nonnull %0, i32 noundef %1352, i32 noundef %1353, i32 noundef %1354, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %1355, i32 noundef 25, i32 noundef 0, i32 noundef 1, i32 noundef 0) #4
  br label %1356

1356:                                             ; preds = %1351, %1348
  %1357 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef nonnull %0, i32 noundef %.026703079, i8 noundef signext %1357, i32 noundef 25, i32 noundef 24, i32 noundef 24) #4
  %1358 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %1359 = icmp eq i32 %1358, 4
  br i1 %1359, label %1360, label %1362

1360:                                             ; preds = %1356
  %1361 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_generator_vcvtneps2bf8_avx512_preppedstack(ptr noundef nonnull %0, i8 noundef signext %1361, i32 noundef 24, i32 noundef 24, i32 noundef 25, i32 noundef 26, i32 noundef 3, i32 noundef 4, i32 noundef 0, i32 noundef 0) #4
  br label %1386

1362:                                             ; preds = %1356
  %1363 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %1364 = icmp eq i32 %1363, 5
  br i1 %1364, label %1365, label %1367

1365:                                             ; preds = %1362
  %1366 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_generator_vcvtf32_to_hf8_avx512_preppedstack(ptr noundef nonnull %0, i8 noundef signext %1366, i32 noundef 24, i32 noundef 24, i32 noundef 30, i32 noundef 31, i32 noundef 27, i32 noundef 28, i32 noundef 6, i32 noundef 5, i32 noundef 4) #4
  br label %1386

1367:                                             ; preds = %1362
  %1368 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %1369 = icmp eq i32 %1368, 3
  br i1 %1369, label %1370, label %1376

1370:                                             ; preds = %1367
  %1371 = load i8, ptr %10, align 4, !tbaa !9
  %1372 = load i32, ptr %28, align 4, !tbaa !18
  %1373 = icmp ugt i32 %1372, 1100
  %1374 = zext i1 %1373 to i32
  %1375 = zext i1 %1373 to i8
  call void @libxsmm_x86_instruction_vec_compute_2reg_mask_sae_imm8(ptr noundef nonnull %0, i32 noundef 671954205, i8 noundef signext %1371, i32 noundef 24, i32 noundef 24, i32 noundef 0, i32 noundef %1374, i8 noundef zeroext %1375, i32 noundef 0) #4
  br label %1386

1376:                                             ; preds = %1367
  %1377 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %1378 = icmp eq i32 %1377, 2
  br i1 %1378, label %1379, label %1386

1379:                                             ; preds = %1376
  %1380 = load i32, ptr %28, align 4, !tbaa !18
  %.fr3021 = freeze i32 %1380
  %1381 = icmp ugt i32 %.fr3021, 1102
  br i1 %1381, label %1384, label %switch.early.test2921

switch.early.test2921:                            ; preds = %1379
  switch i32 %.fr3021, label %1382 [
    i32 1053, label %1384
    i32 1008, label %1384
  ]

1382:                                             ; preds = %switch.early.test2921
  %1383 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_generator_vcvtneps2bf16_avx512_preppedstack(ptr noundef nonnull %0, i8 noundef signext %1383, i32 noundef 24, i32 noundef 24, i32 noundef 25, i32 noundef 26, i32 noundef 3, i32 noundef 4, i32 noundef 0) #4
  br label %1386

1384:                                             ; preds = %switch.early.test2921, %switch.early.test2921, %1379
  %1385 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_2reg(ptr noundef nonnull %0, i32 noundef 537273970, i8 noundef signext %1385, i32 noundef 24, i32 noundef 24) #4
  br label %1386

1386:                                             ; preds = %1365, %1376, %1384, %1382, %1370, %1360
  %1387 = load i32, ptr %3, align 4, !tbaa !39
  %1388 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %1389 = icmp eq i32 %1388, 4
  br i1 %1389, label %1393, label %1390

1390:                                             ; preds = %1386
  %1391 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %1392 = icmp eq i32 %1391, 5
  br i1 %1392, label %1393, label %1396

1393:                                             ; preds = %1390, %1386
  %1394 = load i32, ptr %28, align 4, !tbaa !18
  %1395 = icmp ult i32 %1394, 1101
  br i1 %1395, label %1398, label %1396

1396:                                             ; preds = %1393, %1390
  %1397 = load i32, ptr %9, align 4, !tbaa !5
  br label %1398

1398:                                             ; preds = %1393, %1396
  %1399 = phi i32 [ %1397, %1396 ], [ 545725200, %1393 ]
  %1400 = load i32, ptr %64, align 4, !tbaa !26
  %1401 = load i8, ptr %7, align 1, !tbaa !11
  call void @libxsmm_x86_instruction_vec_move(ptr noundef nonnull %0, i32 noundef %1387, i32 noundef %1399, i32 noundef %1400, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %1401, i32 noundef 24, i32 noundef 0, i32 noundef 0, i32 noundef 1) #4
  br label %1441

1402:                                             ; preds = %1334
  br i1 %1337, label %1412, label %1403

1403:                                             ; preds = %1402
  %1404 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %1405 = icmp eq i32 %1404, 2
  br i1 %1405, label %1412, label %1406

1406:                                             ; preds = %1403
  %1407 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %1408 = icmp eq i32 %1407, 5
  br i1 %1408, label %1412, label %1409

1409:                                             ; preds = %1406
  %1410 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %1411 = icmp eq i32 %1410, 4
  br i1 %1411, label %1412, label %1415

1412:                                             ; preds = %1409, %1406, %1403, %1402
  %1413 = load i32, ptr %3, align 4, !tbaa !39
  %1414 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_move(ptr noundef nonnull %0, i32 noundef %1413, i32 noundef 537138704, i32 noundef 1, i32 noundef 127, i32 noundef 0, i32 noundef 64, i8 noundef signext %1414, i32 noundef 25, i32 noundef 0, i32 noundef 1, i32 noundef 0) #4
  br label %1420

1415:                                             ; preds = %1409
  %1416 = load i32, ptr %3, align 4, !tbaa !39
  %1417 = load i32, ptr %9, align 4, !tbaa !5
  %1418 = load i32, ptr %64, align 4, !tbaa !26
  %1419 = load i8, ptr %7, align 1, !tbaa !11
  call void @libxsmm_x86_instruction_vec_move(ptr noundef nonnull %0, i32 noundef %1416, i32 noundef %1417, i32 noundef %1418, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %1419, i32 noundef 25, i32 noundef 0, i32 noundef 1, i32 noundef 0) #4
  br label %1420

1420:                                             ; preds = %1415, %1412
  %1421 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef nonnull %0, i32 noundef %.026703079, i8 noundef signext %1421, i32 noundef 25, i32 noundef 24, i32 noundef 24) #4
  %1422 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %1423 = icmp eq i32 %1422, 3
  br i1 %1423, label %1433, label %1424

1424:                                             ; preds = %1420
  %1425 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %1426 = icmp eq i32 %1425, 2
  br i1 %1426, label %1433, label %1427

1427:                                             ; preds = %1424
  %1428 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %1429 = icmp eq i32 %1428, 5
  br i1 %1429, label %1433, label %1430

1430:                                             ; preds = %1427
  %1431 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %1432 = icmp eq i32 %1431, 4
  br i1 %1432, label %1433, label %1436

1433:                                             ; preds = %1430, %1427, %1424, %1420
  %1434 = load i32, ptr %3, align 4, !tbaa !39
  %1435 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_move(ptr noundef nonnull %0, i32 noundef %1434, i32 noundef 537138704, i32 noundef 1, i32 noundef 127, i32 noundef 0, i32 noundef 64, i8 noundef signext %1435, i32 noundef 24, i32 noundef 0, i32 noundef 0, i32 noundef 1) #4
  br label %1441

1436:                                             ; preds = %1430
  %1437 = load i32, ptr %3, align 4, !tbaa !39
  %1438 = load i32, ptr %9, align 4, !tbaa !5
  %1439 = load i32, ptr %64, align 4, !tbaa !26
  %1440 = load i8, ptr %7, align 1, !tbaa !11
  call void @libxsmm_x86_instruction_vec_move(ptr noundef nonnull %0, i32 noundef %1437, i32 noundef %1438, i32 noundef %1439, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %1440, i32 noundef 24, i32 noundef 0, i32 noundef 0, i32 noundef 1) #4
  br label %1441

1441:                                             ; preds = %1185, %1330, %1433, %1436, %1398, %1240
  %1442 = add nuw i32 %.226663046, 1
  %1443 = icmp ult i32 %1442, %639
  br i1 %1443, label %.preheader3042, label %._crit_edge3047, !llvm.loop !42

._crit_edge3047:                                  ; preds = %1441, %680
  %.pre = load i32, ptr %5, align 4, !tbaa !5
  br i1 %.not2742, label %1444, label %1446

1444:                                             ; preds = %._crit_edge3047
  %1445 = urem i32 %630, %.pre
  %.not2743 = icmp eq i32 %1445, 0
  br i1 %.not2743, label %.thread3011, label %1446

1446:                                             ; preds = %1444, %._crit_edge3047
  %1447 = getelementptr inbounds i8, ptr %3, i64 40
  %1448 = load i32, ptr %1447, align 4, !tbaa !36
  %1449 = load i32, ptr %62, align 4, !tbaa !23
  %1450 = zext i32 %.pre to i64
  %1451 = load i32, ptr %32, align 1, !tbaa !22
  %1452 = zext i32 %1451 to i64
  %1453 = mul nuw nsw i64 %1452, %1450
  %1454 = getelementptr inbounds i8, ptr %3, i64 8
  %1455 = load i32, ptr %1454, align 4, !tbaa !33
  %1456 = zext i32 %1455 to i64
  %1457 = mul nuw nsw i64 %1453, %1456
  call void @libxsmm_x86_instruction_alu_imm(ptr noundef nonnull %0, i32 noundef %1448, i32 noundef %1449, i64 noundef %1457) #4
  br i1 %19, label %1458, label %1467

1458:                                             ; preds = %1446
  %1459 = load i32, ptr %1447, align 4, !tbaa !36
  %1460 = load i32, ptr %63, align 4, !tbaa !25
  %1461 = load i32, ptr %5, align 4, !tbaa !5
  %1462 = zext i32 %1461 to i64
  %1463 = getelementptr inbounds i8, ptr %3, i64 20
  %1464 = load i32, ptr %1463, align 4, !tbaa !32
  %1465 = zext i32 %1464 to i64
  %1466 = mul nuw nsw i64 %1465, %1462
  call void @libxsmm_x86_instruction_alu_imm(ptr noundef nonnull %0, i32 noundef %1459, i32 noundef %1460, i64 noundef %1466) #4
  br label %1467

1467:                                             ; preds = %1458, %1446
  %.off2922 = add i16 %17, -19
  %switch2923 = icmp ult i16 %.off2922, 2
  br i1 %switch2923, label %1468, label %1477

1468:                                             ; preds = %1467
  %1469 = load i32, ptr %1447, align 4, !tbaa !36
  %1470 = load i32, ptr %64, align 4, !tbaa !26
  %1471 = load i32, ptr %5, align 4, !tbaa !5
  %1472 = zext i32 %1471 to i64
  %1473 = getelementptr inbounds i8, ptr %3, i64 20
  %1474 = load i32, ptr %1473, align 4, !tbaa !32
  %1475 = zext i32 %1474 to i64
  %1476 = mul nuw nsw i64 %1475, %1472
  call void @libxsmm_x86_instruction_alu_imm(ptr noundef nonnull %0, i32 noundef %1469, i32 noundef %1470, i64 noundef %1476) #4
  br label %1477

1477:                                             ; preds = %1467, %1468
  br i1 %.not2742, label %.thread3011, label %1478

1478:                                             ; preds = %1477
  %1479 = load i32, ptr %66, align 4, !tbaa !28
  call void @libxsmm_generator_mateltwise_footer_n_loop(ptr noundef nonnull %0, ptr noundef %1, ptr noundef nonnull %3, i32 noundef %1479, i32 noundef %643) #4
  br label %.thread3011

.thread3011:                                      ; preds = %1444, %1477, %1478, %676
  %1480 = load i32, ptr %5, align 4, !tbaa !5
  %1481 = urem i32 %630, %1480
  br i1 %.not2740, label %1482, label %1689

1482:                                             ; preds = %.thread3011
  br i1 %19, label %1483, label %1519

1483:                                             ; preds = %1482
  br i1 %switch2985, label %1484, label %1486

1484:                                             ; preds = %1483
  %1485 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %0, i32 noundef 805574231, i8 noundef signext %1485, i32 noundef 2, i32 noundef 2, i32 noundef 2) #4
  br label %1519

1486:                                             ; preds = %1483
  switch i16 %17, label %.thread3013 [
    i16 69, label %1487
    i16 21, label %1487
  ]

1487:                                             ; preds = %1486, %1486
  br i1 %633, label %1488, label %1490

1488:                                             ; preds = %1487
  %1489 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_generator_load_vreg_infinity(ptr noundef %0, i8 noundef zeroext %1489, i32 noundef 0, i32 noundef 3, i32 noundef %23) #4
  br label %1490

1490:                                             ; preds = %1488, %1487
  %1491 = load i32, ptr %3, align 4, !tbaa !39
  %1492 = load i32, ptr %8, align 4, !tbaa !5
  %1493 = load i32, ptr %62, align 4, !tbaa !23
  %1494 = load i8, ptr %6, align 1, !tbaa !11
  %1495 = icmp eq i32 %639, 1
  %1496 = select i1 %1495, i32 %634, i32 0
  call void @libxsmm_x86_instruction_vec_move(ptr noundef %0, i32 noundef %1491, i32 noundef %1492, i32 noundef %1493, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %1494, i32 noundef 2, i32 noundef %1496, i32 noundef 1, i32 noundef 0) #4
  %1497 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 0) #4
  %1498 = icmp eq i32 %1497, 4
  br i1 %1498, label %1499, label %1501

1499:                                             ; preds = %1490
  %1500 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_generator_cvtbf8ps_avx512(ptr noundef %0, i8 noundef signext %1500, i32 noundef 2, i32 noundef 2) #4
  br label %1516

1501:                                             ; preds = %1490
  %1502 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 0) #4
  %1503 = icmp eq i32 %1502, 5
  br i1 %1503, label %1504, label %1506

1504:                                             ; preds = %1501
  %1505 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_generator_vcvthf8_to_f32_avx512_preppedstack(ptr noundef %0, i8 noundef signext %1505, i32 noundef 2, i32 noundef 2, i32 noundef 30, i32 noundef 31, i32 noundef 6, i32 noundef 5) #4
  br label %1516

1506:                                             ; preds = %1501
  %1507 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 0) #4
  %1508 = icmp eq i32 %1507, 3
  br i1 %1508, label %1509, label %1511

1509:                                             ; preds = %1506
  %1510 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_2reg(ptr noundef %0, i32 noundef 537208083, i8 noundef signext %1510, i32 noundef 2, i32 noundef 2) #4
  br label %1516

1511:                                             ; preds = %1506
  %1512 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 0) #4
  %1513 = icmp eq i32 %1512, 2
  br i1 %1513, label %1514, label %1516

1514:                                             ; preds = %1511
  %1515 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_generator_cvtbf16ps_sse_avx2_avx512(ptr noundef %0, i8 noundef signext %1515, i32 noundef 2, i32 noundef 2) #4
  br label %1516

1516:                                             ; preds = %1504, %1511, %1514, %1509, %1499
  %brmerge2832.not = and i1 %633, %1495
  br i1 %brmerge2832.not, label %1517, label %.thread3013

1517:                                             ; preds = %1516
  %1518 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_mask(ptr noundef %0, i32 noundef -268097947, i8 noundef signext %1518, i32 noundef 2, i32 noundef 3, i32 noundef 2, i32 noundef 1, i32 noundef 0) #4
  br label %.thread3013

1519:                                             ; preds = %1484, %1482
  %.off2924 = add i16 %17, -19
  %switch2925 = icmp ult i16 %.off2924, 2
  br i1 %switch2925, label %1520, label %.thread3013

1520:                                             ; preds = %1519
  %1521 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %0, i32 noundef 805574231, i8 noundef signext %1521, i32 noundef 3, i32 noundef 3, i32 noundef 3) #4
  br label %.thread3013

.thread3013:                                      ; preds = %1517, %1486, %1516, %1519, %1520
  %switch29253016 = phi i1 [ false, %1519 ], [ true, %1520 ], [ false, %1516 ], [ false, %1486 ], [ false, %1517 ]
  %.not = icmp ugt i32 %631, %638
  br i1 %.not, label %._crit_edge3055, label %.lr.ph3054

.lr.ph3054:                                       ; preds = %.thread3013
  %1522 = getelementptr inbounds i8, ptr %3, i64 8
  %1523 = add i32 %639, -1
  br label %1524

1524:                                             ; preds = %.lr.ph3054, %1566
  %.326673053 = phi i32 [ 0, %.lr.ph3054 ], [ %1567, %1566 ]
  %1525 = urem i32 %.326673053, 28
  %1526 = add nuw nsw i32 %1525, 4
  %1527 = load i32, ptr %3, align 4, !tbaa !39
  %1528 = load i32, ptr %8, align 4, !tbaa !5
  %1529 = load i32, ptr %62, align 4, !tbaa !23
  %1530 = load i32, ptr %5, align 4, !tbaa !5
  %1531 = mul i32 %1530, %.326673053
  %1532 = load i32, ptr %1522, align 4, !tbaa !33
  %1533 = mul i32 %1531, %1532
  %1534 = load i8, ptr %6, align 1, !tbaa !11
  %1535 = icmp eq i32 %.326673053, %1523
  %1536 = select i1 %1535, i32 %634, i32 0
  call void @libxsmm_x86_instruction_vec_move(ptr noundef %0, i32 noundef %1527, i32 noundef %1528, i32 noundef %1529, i32 noundef 127, i32 noundef 0, i32 noundef %1533, i8 noundef signext %1534, i32 noundef %1526, i32 noundef %1536, i32 noundef 1, i32 noundef 0) #4
  %1537 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 0) #4
  %1538 = icmp eq i32 %1537, 4
  br i1 %1538, label %1539, label %1541

1539:                                             ; preds = %1524
  %1540 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_generator_cvtbf8ps_avx512(ptr noundef %0, i8 noundef signext %1540, i32 noundef %1526, i32 noundef %1526) #4
  br label %1556

1541:                                             ; preds = %1524
  %1542 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 0) #4
  %1543 = icmp eq i32 %1542, 5
  br i1 %1543, label %1544, label %1546

1544:                                             ; preds = %1541
  %1545 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_generator_vcvthf8_to_f32_avx512_preppedstack(ptr noundef %0, i8 noundef signext %1545, i32 noundef %1526, i32 noundef %1526, i32 noundef 30, i32 noundef 31, i32 noundef 6, i32 noundef 5) #4
  br label %1556

1546:                                             ; preds = %1541
  %1547 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 0) #4
  %1548 = icmp eq i32 %1547, 3
  br i1 %1548, label %1549, label %1551

1549:                                             ; preds = %1546
  %1550 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_2reg(ptr noundef %0, i32 noundef 537208083, i8 noundef signext %1550, i32 noundef %1526, i32 noundef %1526) #4
  br label %1556

1551:                                             ; preds = %1546
  %1552 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 0) #4
  %1553 = icmp eq i32 %1552, 2
  br i1 %1553, label %1554, label %1556

1554:                                             ; preds = %1551
  %1555 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_generator_cvtbf16ps_sse_avx2_avx512(ptr noundef %0, i8 noundef signext %1555, i32 noundef %1526, i32 noundef %1526) #4
  br label %1556

1556:                                             ; preds = %1544, %1551, %1554, %1549, %1539
  switch i16 %17, label %1560 [
    i16 69, label %1557
    i16 21, label %1557
  ]

1557:                                             ; preds = %1556, %1556
  %or.cond73 = and i1 %633, %1535
  br i1 %or.cond73, label %1558, label %1560

1558:                                             ; preds = %1557
  %1559 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_mask(ptr noundef %0, i32 noundef -268097947, i8 noundef signext %1559, i32 noundef %1526, i32 noundef 3, i32 noundef %1526, i32 noundef 1, i32 noundef 0) #4
  br label %1560

1560:                                             ; preds = %1556, %1558, %1557
  br i1 %19, label %1561, label %1563

1561:                                             ; preds = %1560
  %1562 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %0, i32 noundef %.026703079, i8 noundef signext %1562, i32 noundef %1526, i32 noundef 2, i32 noundef 2) #4
  br label %1563

1563:                                             ; preds = %1561, %1560
  br i1 %switch29253016, label %1564, label %1566

1564:                                             ; preds = %1563
  %1565 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %0, i32 noundef 805643960, i8 noundef signext %1565, i32 noundef %1526, i32 noundef %1526, i32 noundef 3) #4
  br label %1566

1566:                                             ; preds = %1563, %1564
  %1567 = add nuw i32 %.326673053, 1
  %1568 = icmp ult i32 %1567, %639
  br i1 %1568, label %1524, label %._crit_edge3055, !llvm.loop !43

._crit_edge3055:                                  ; preds = %1566, %.thread3013
  br i1 %19, label %1569, label %1629

1569:                                             ; preds = %._crit_edge3055
  call void @libxsmm_generator_hinstrps_avx512(ptr noundef %0, i32 noundef %.026703079, i32 noundef 2, i32 noundef 0, i32 noundef 1) #4
  br i1 %27, label %1570, label %1595

1570:                                             ; preds = %1569
  %1571 = load i32, ptr %9, align 4, !tbaa !5
  %1572 = load i32, ptr %63, align 4, !tbaa !25
  %1573 = load i8, ptr %7, align 1, !tbaa !11
  call void @libxsmm_x86_instruction_unified_vec_move(ptr noundef %0, i32 noundef %1571, i32 noundef %1572, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %1573, i32 noundef 24, i32 noundef 1, i32 noundef 2, i32 noundef 0) #4
  %1574 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %1575 = icmp eq i32 %1574, 4
  br i1 %1575, label %1576, label %1578

1576:                                             ; preds = %1570
  %1577 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_generator_cvtbf8ps_avx512(ptr noundef %0, i8 noundef signext %1577, i32 noundef 24, i32 noundef 24) #4
  br label %1593

1578:                                             ; preds = %1570
  %1579 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %1580 = icmp eq i32 %1579, 5
  br i1 %1580, label %1581, label %1583

1581:                                             ; preds = %1578
  %1582 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_generator_vcvthf8_to_f32_avx512_preppedstack(ptr noundef %0, i8 noundef signext %1582, i32 noundef 24, i32 noundef 24, i32 noundef 30, i32 noundef 31, i32 noundef 6, i32 noundef 5) #4
  br label %1593

1583:                                             ; preds = %1578
  %1584 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %1585 = icmp eq i32 %1584, 3
  br i1 %1585, label %1586, label %1588

1586:                                             ; preds = %1583
  %1587 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_2reg(ptr noundef %0, i32 noundef 537208083, i8 noundef signext %1587, i32 noundef 24, i32 noundef 24) #4
  br label %1593

1588:                                             ; preds = %1583
  %1589 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %1590 = icmp eq i32 %1589, 2
  br i1 %1590, label %1591, label %1593

1591:                                             ; preds = %1588
  %1592 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_generator_cvtbf16ps_sse_avx2_avx512(ptr noundef %0, i8 noundef signext %1592, i32 noundef 24, i32 noundef 24) #4
  br label %1593

1593:                                             ; preds = %1581, %1588, %1591, %1586, %1576
  %1594 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %0, i32 noundef %.026703079, i8 noundef signext %1594, i32 noundef 24, i32 noundef 2, i32 noundef 2) #4
  br label %1595

1595:                                             ; preds = %1593, %1569
  %1596 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %1597 = icmp eq i32 %1596, 4
  br i1 %1597, label %1598, label %1600

1598:                                             ; preds = %1595
  %1599 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_generator_vcvtneps2bf8_avx512_preppedstack(ptr noundef %0, i8 noundef signext %1599, i32 noundef 2, i32 noundef 2, i32 noundef 0, i32 noundef 1, i32 noundef 3, i32 noundef 4, i32 noundef 0, i32 noundef 0) #4
  br label %1624

1600:                                             ; preds = %1595
  %1601 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %1602 = icmp eq i32 %1601, 5
  br i1 %1602, label %1603, label %1605

1603:                                             ; preds = %1600
  %1604 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_generator_vcvtf32_to_hf8_avx512_preppedstack(ptr noundef %0, i8 noundef signext %1604, i32 noundef 2, i32 noundef 2, i32 noundef 30, i32 noundef 31, i32 noundef 27, i32 noundef 28, i32 noundef 6, i32 noundef 5, i32 noundef 4) #4
  br label %1624

1605:                                             ; preds = %1600
  %1606 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %1607 = icmp eq i32 %1606, 3
  br i1 %1607, label %1608, label %1614

1608:                                             ; preds = %1605
  %1609 = load i8, ptr %10, align 4, !tbaa !9
  %1610 = load i32, ptr %28, align 4, !tbaa !18
  %1611 = icmp ugt i32 %1610, 1100
  %1612 = zext i1 %1611 to i32
  %1613 = zext i1 %1611 to i8
  call void @libxsmm_x86_instruction_vec_compute_2reg_mask_sae_imm8(ptr noundef %0, i32 noundef 671954205, i8 noundef signext %1609, i32 noundef 2, i32 noundef 2, i32 noundef 0, i32 noundef %1612, i8 noundef zeroext %1613, i32 noundef 0) #4
  br label %1624

1614:                                             ; preds = %1605
  %1615 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %1616 = icmp eq i32 %1615, 2
  br i1 %1616, label %1617, label %1624

1617:                                             ; preds = %1614
  %1618 = load i32, ptr %28, align 4, !tbaa !18
  %.fr3030 = freeze i32 %1618
  %1619 = icmp ugt i32 %.fr3030, 1102
  br i1 %1619, label %1622, label %switch.early.test2928

switch.early.test2928:                            ; preds = %1617
  switch i32 %.fr3030, label %1620 [
    i32 1053, label %1622
    i32 1008, label %1622
  ]

1620:                                             ; preds = %switch.early.test2928
  %1621 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_generator_vcvtneps2bf16_avx512_preppedstack(ptr noundef nonnull %0, i8 noundef signext %1621, i32 noundef 2, i32 noundef 2, i32 noundef 0, i32 noundef 1, i32 noundef 3, i32 noundef 4, i32 noundef 0) #4
  br label %1624

1622:                                             ; preds = %switch.early.test2928, %switch.early.test2928, %1617
  %1623 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_2reg(ptr noundef nonnull %0, i32 noundef 537273970, i8 noundef signext %1623, i32 noundef 2, i32 noundef 2) #4
  br label %1624

1624:                                             ; preds = %1603, %1614, %1622, %1620, %1608, %1598
  %1625 = load i32, ptr %3, align 4, !tbaa !39
  %1626 = load i32, ptr %9, align 4, !tbaa !5
  %1627 = load i32, ptr %63, align 4, !tbaa !25
  %1628 = load i8, ptr %7, align 1, !tbaa !11
  call void @libxsmm_x86_instruction_vec_move(ptr noundef %0, i32 noundef %1625, i32 noundef %1626, i32 noundef %1627, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %1628, i32 noundef 2, i32 noundef 2, i32 noundef 0, i32 noundef 1) #4
  br label %1629

1629:                                             ; preds = %1624, %._crit_edge3055
  br i1 %switch29253016, label %1630, label %.loopexit3040

1630:                                             ; preds = %1629
  call void @libxsmm_generator_hinstrps_avx512(ptr noundef %0, i32 noundef %.026703079, i32 noundef 3, i32 noundef 0, i32 noundef 1) #4
  br i1 %27, label %1631, label %1656

1631:                                             ; preds = %1630
  %1632 = load i32, ptr %9, align 4, !tbaa !5
  %1633 = load i32, ptr %64, align 4, !tbaa !26
  %1634 = load i8, ptr %7, align 1, !tbaa !11
  call void @libxsmm_x86_instruction_unified_vec_move(ptr noundef %0, i32 noundef %1632, i32 noundef %1633, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %1634, i32 noundef 24, i32 noundef 1, i32 noundef 2, i32 noundef 0) #4
  %1635 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %1636 = icmp eq i32 %1635, 4
  br i1 %1636, label %1637, label %1639

1637:                                             ; preds = %1631
  %1638 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_generator_cvtbf8ps_avx512(ptr noundef %0, i8 noundef signext %1638, i32 noundef 24, i32 noundef 24) #4
  br label %1654

1639:                                             ; preds = %1631
  %1640 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %1641 = icmp eq i32 %1640, 5
  br i1 %1641, label %1642, label %1644

1642:                                             ; preds = %1639
  %1643 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_generator_vcvthf8_to_f32_avx512_preppedstack(ptr noundef %0, i8 noundef signext %1643, i32 noundef 24, i32 noundef 24, i32 noundef 30, i32 noundef 31, i32 noundef 6, i32 noundef 5) #4
  br label %1654

1644:                                             ; preds = %1639
  %1645 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %1646 = icmp eq i32 %1645, 3
  br i1 %1646, label %1647, label %1649

1647:                                             ; preds = %1644
  %1648 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_2reg(ptr noundef %0, i32 noundef 537208083, i8 noundef signext %1648, i32 noundef 24, i32 noundef 24) #4
  br label %1654

1649:                                             ; preds = %1644
  %1650 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %1651 = icmp eq i32 %1650, 2
  br i1 %1651, label %1652, label %1654

1652:                                             ; preds = %1649
  %1653 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_generator_cvtbf16ps_sse_avx2_avx512(ptr noundef %0, i8 noundef signext %1653, i32 noundef 24, i32 noundef 24) #4
  br label %1654

1654:                                             ; preds = %1642, %1649, %1652, %1647, %1637
  %1655 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %0, i32 noundef %.026703079, i8 noundef signext %1655, i32 noundef 24, i32 noundef 3, i32 noundef 3) #4
  br label %1656

1656:                                             ; preds = %1654, %1630
  %1657 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %1658 = icmp eq i32 %1657, 4
  br i1 %1658, label %1659, label %1661

1659:                                             ; preds = %1656
  %1660 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_generator_vcvtneps2bf8_avx512_preppedstack(ptr noundef %0, i8 noundef signext %1660, i32 noundef 3, i32 noundef 3, i32 noundef 0, i32 noundef 1, i32 noundef 3, i32 noundef 4, i32 noundef 0, i32 noundef 0) #4
  br label %1684

1661:                                             ; preds = %1656
  %1662 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %1663 = icmp eq i32 %1662, 5
  br i1 %1663, label %1664, label %1666

1664:                                             ; preds = %1661
  %1665 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_generator_vcvtf32_to_hf8_avx512_preppedstack(ptr noundef %0, i8 noundef signext %1665, i32 noundef 3, i32 noundef 3, i32 noundef 30, i32 noundef 31, i32 noundef 27, i32 noundef 28, i32 noundef 6, i32 noundef 5, i32 noundef 4) #4
  br label %1684

1666:                                             ; preds = %1661
  %1667 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %1668 = icmp eq i32 %1667, 3
  br i1 %1668, label %1669, label %1675

1669:                                             ; preds = %1666
  %1670 = load i8, ptr %10, align 4, !tbaa !9
  %1671 = load i32, ptr %28, align 4, !tbaa !18
  %1672 = icmp ugt i32 %1671, 1100
  %1673 = zext i1 %1672 to i32
  %1674 = zext i1 %1672 to i8
  call void @libxsmm_x86_instruction_vec_compute_2reg_mask_sae_imm8(ptr noundef %0, i32 noundef 671954205, i8 noundef signext %1670, i32 noundef 3, i32 noundef 3, i32 noundef 0, i32 noundef %1673, i8 noundef zeroext %1674, i32 noundef 0) #4
  br label %1684

1675:                                             ; preds = %1666
  %1676 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %1677 = icmp eq i32 %1676, 2
  br i1 %1677, label %1678, label %1684

1678:                                             ; preds = %1675
  %1679 = load i32, ptr %28, align 4, !tbaa !18
  %1680 = icmp ugt i32 %1679, 1102
  %.not2759 = icmp eq i32 %1679, 1053
  %or.cond2835 = or i1 %1680, %.not2759
  %1681 = load i8, ptr %10, align 4, !tbaa !9
  br i1 %or.cond2835, label %1683, label %1682

1682:                                             ; preds = %1678
  call void @libxsmm_generator_vcvtneps2bf16_avx512_preppedstack(ptr noundef nonnull %0, i8 noundef signext %1681, i32 noundef 3, i32 noundef 3, i32 noundef 0, i32 noundef 1, i32 noundef 3, i32 noundef 4, i32 noundef 0) #4
  br label %1684

1683:                                             ; preds = %1678
  call void @libxsmm_x86_instruction_vec_compute_2reg(ptr noundef nonnull %0, i32 noundef 537273970, i8 noundef signext %1681, i32 noundef 3, i32 noundef 3) #4
  br label %1684

1684:                                             ; preds = %1664, %1675, %1683, %1682, %1669, %1659
  %1685 = load i32, ptr %3, align 4, !tbaa !39
  %1686 = load i32, ptr %9, align 4, !tbaa !5
  %1687 = load i32, ptr %64, align 4, !tbaa !26
  %1688 = load i8, ptr %7, align 1, !tbaa !11
  call void @libxsmm_x86_instruction_vec_move(ptr noundef %0, i32 noundef %1685, i32 noundef %1686, i32 noundef %1687, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %1688, i32 noundef 3, i32 noundef 2, i32 noundef 0, i32 noundef 1) #4
  br label %.loopexit3040

1689:                                             ; preds = %.thread3011
  %.not2744 = icmp ne i32 %1481, 0
  %1690 = icmp ule i32 %631, %638
  %or.cond3064 = and i1 %.not2744, %1690
  br i1 %or.cond3064, label %.preheader3038.lr.ph, label %.loopexit3040

.preheader3038.lr.ph:                             ; preds = %1689
  %1691 = add i32 %639, -1
  %1692 = getelementptr inbounds i8, ptr %3, i64 8
  %or.cond75 = or i1 %20, %22
  %or.cond77 = and i1 %or.cond75, %633
  %.off2931 = add i16 %17, -19
  %switch2932 = icmp ult i16 %.off2931, 2
  %1693 = icmp ugt i32 %1481, 7
  %1694 = icmp ugt i32 %1481, 8
  %1695 = icmp ugt i32 %1481, 9
  %1696 = icmp ugt i32 %1481, 10
  %1697 = icmp eq i16 %26, 0
  br label %.preheader3038

.preheader3038:                                   ; preds = %.preheader3038.lr.ph, %2375
  %.43052 = phi i32 [ 0, %.preheader3038.lr.ph ], [ %2376, %2375 ]
  %1698 = icmp eq i32 %.43052, %1691
  %or.cond2837 = and i1 %633, %1698
  %1699 = select i1 %1698, i32 %634, i32 0
  %brmerge2839.not = and i1 %or.cond77, %1698
  br label %1707

.preheader3037:                                   ; preds = %1752
  %1700 = load i32, ptr %5, align 4, !tbaa !5
  %1701 = icmp ult i32 %1481, %1700
  br i1 %1701, label %.lr.ph3050, label %._crit_edge3051

.lr.ph3050:                                       ; preds = %.preheader3037
  %1702 = and i1 %or.cond75, %1698
  %or.cond2841 = and i1 %633, %1702
  br i1 %or.cond2841, label %.lr.ph3050.split.us, label %.lr.ph3050.split

.lr.ph3050.split.us:                              ; preds = %.lr.ph3050, %.lr.ph3050.split.us
  %.33049.us = phi i32 [ %1704, %.lr.ph3050.split.us ], [ %1481, %.lr.ph3050 ]
  %1703 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_2reg(ptr noundef %0, i32 noundef 537138704, i8 noundef signext %1703, i32 noundef 24, i32 noundef %.33049.us) #4
  %1704 = add nuw i32 %.33049.us, 1
  %1705 = load i32, ptr %5, align 4, !tbaa !5
  %1706 = icmp ult i32 %1704, %1705
  br i1 %1706, label %.lr.ph3050.split.us, label %._crit_edge3051, !llvm.loop !44

1707:                                             ; preds = %.preheader3038, %1752
  %.23048 = phi i32 [ 0, %.preheader3038 ], [ %1753, %1752 ]
  %1708 = load i32, ptr %3, align 4, !tbaa !39
  %1709 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 0) #4
  %1710 = icmp eq i32 %1709, 4
  br i1 %1710, label %1714, label %1711

1711:                                             ; preds = %1707
  %1712 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 0) #4
  %1713 = icmp eq i32 %1712, 5
  br i1 %1713, label %1714, label %1717

1714:                                             ; preds = %1711, %1707
  %1715 = load i32, ptr %28, align 4, !tbaa !18
  %1716 = icmp ugt i32 %1715, 1100
  %brmerge3063 = or i1 %1716, %or.cond2837
  br i1 %brmerge3063, label %1717, label %1719

1717:                                             ; preds = %1714, %1711
  %1718 = load i32, ptr %8, align 4, !tbaa !5
  br label %1719

1719:                                             ; preds = %1714, %1717
  %1720 = phi i32 [ %1718, %1717 ], [ 545725200, %1714 ]
  %1721 = load i32, ptr %62, align 4, !tbaa !23
  %1722 = load i32, ptr %5, align 4, !tbaa !5
  %1723 = mul i32 %1722, %.43052
  %1724 = load i32, ptr %32, align 1, !tbaa !22
  %1725 = mul i32 %1724, %.23048
  %1726 = add i32 %1725, %1723
  %1727 = load i32, ptr %1692, align 4, !tbaa !33
  %1728 = mul i32 %1726, %1727
  %1729 = load i8, ptr %6, align 1, !tbaa !11
  call void @libxsmm_x86_instruction_vec_move(ptr noundef %0, i32 noundef %1708, i32 noundef %1720, i32 noundef %1721, i32 noundef 127, i32 noundef 0, i32 noundef %1728, i8 noundef signext %1729, i32 noundef %.23048, i32 noundef %1699, i32 noundef 1, i32 noundef 0) #4
  %1730 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 0) #4
  %1731 = icmp eq i32 %1730, 4
  br i1 %1731, label %1732, label %1734

1732:                                             ; preds = %1719
  %1733 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_generator_cvtbf8ps_avx512(ptr noundef %0, i8 noundef signext %1733, i32 noundef %.23048, i32 noundef %.23048) #4
  br label %1749

1734:                                             ; preds = %1719
  %1735 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 0) #4
  %1736 = icmp eq i32 %1735, 5
  br i1 %1736, label %1737, label %1739

1737:                                             ; preds = %1734
  %1738 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_generator_vcvthf8_to_f32_avx512_preppedstack(ptr noundef %0, i8 noundef signext %1738, i32 noundef %.23048, i32 noundef %.23048, i32 noundef 30, i32 noundef 31, i32 noundef 6, i32 noundef 5) #4
  br label %1749

1739:                                             ; preds = %1734
  %1740 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 0) #4
  %1741 = icmp eq i32 %1740, 3
  br i1 %1741, label %1742, label %1744

1742:                                             ; preds = %1739
  %1743 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_2reg(ptr noundef %0, i32 noundef 537208083, i8 noundef signext %1743, i32 noundef %.23048, i32 noundef %.23048) #4
  br label %1749

1744:                                             ; preds = %1739
  %1745 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 0) #4
  %1746 = icmp eq i32 %1745, 2
  br i1 %1746, label %1747, label %1749

1747:                                             ; preds = %1744
  %1748 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_generator_cvtbf16ps_sse_avx2_avx512(ptr noundef %0, i8 noundef signext %1748, i32 noundef %.23048, i32 noundef %.23048) #4
  br label %1749

1749:                                             ; preds = %1737, %1744, %1747, %1742, %1732
  br i1 %brmerge2839.not, label %1750, label %1752

1750:                                             ; preds = %1749
  %1751 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_mask(ptr noundef %0, i32 noundef -268097947, i8 noundef signext %1751, i32 noundef %.23048, i32 noundef 24, i32 noundef %.23048, i32 noundef 1, i32 noundef 0) #4
  br label %1752

1752:                                             ; preds = %1749, %1750
  %1753 = add nuw i32 %.23048, 1
  %1754 = icmp ult i32 %1753, %1481
  br i1 %1754, label %1707, label %.preheader3037, !llvm.loop !45

.lr.ph3050.split:                                 ; preds = %.lr.ph3050, %.lr.ph3050.split
  %.33049 = phi i32 [ %1756, %.lr.ph3050.split ], [ %1481, %.lr.ph3050 ]
  %1755 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %0, i32 noundef 805574231, i8 noundef signext %1755, i32 noundef %.33049, i32 noundef %.33049, i32 noundef %.33049) #4
  %1756 = add nuw i32 %.33049, 1
  %1757 = load i32, ptr %5, align 4, !tbaa !5
  %1758 = icmp ult i32 %1756, %1757
  br i1 %1758, label %.lr.ph3050.split, label %._crit_edge3051, !llvm.loop !44

._crit_edge3051:                                  ; preds = %.lr.ph3050.split, %.lr.ph3050.split.us, %.preheader3037
  br i1 %19, label %1759, label %1762

1759:                                             ; preds = %._crit_edge3051
  %1760 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_mask(ptr noundef %0, i32 noundef -268097947, i8 noundef signext %1760, i32 noundef 4, i32 noundef 0, i32 noundef 16, i32 noundef 7, i32 noundef 0) #4
  %1761 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %0, i32 noundef -259181021, i8 noundef signext %1761, i32 noundef 4, i32 noundef 0, i32 noundef 17, i32 noundef %.02690) #4
  br label %1762

1762:                                             ; preds = %1759, %._crit_edge3051
  br i1 %switch2932, label %1763, label %1768

1763:                                             ; preds = %1762
  %1764 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %0, i32 noundef 805574233, i8 noundef signext %1764, i32 noundef 0, i32 noundef 0, i32 noundef 18) #4
  %1765 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %0, i32 noundef 805574233, i8 noundef signext %1765, i32 noundef 4, i32 noundef 4, i32 noundef 19) #4
  %1766 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_mask(ptr noundef %0, i32 noundef -268097947, i8 noundef signext %1766, i32 noundef 19, i32 noundef 18, i32 noundef 20, i32 noundef 7, i32 noundef 0) #4
  %1767 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %0, i32 noundef -259181021, i8 noundef signext %1767, i32 noundef 19, i32 noundef 18, i32 noundef 21, i32 noundef %.02690) #4
  br label %1768

1768:                                             ; preds = %1762, %1763
  br i1 %19, label %1769, label %1771

1769:                                             ; preds = %1768
  %1770 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %0, i32 noundef %.026703079, i8 noundef signext %1770, i32 noundef 16, i32 noundef 17, i32 noundef 0) #4
  br label %1771

1771:                                             ; preds = %1769, %1768
  br i1 %switch2932, label %1772, label %1774

1772:                                             ; preds = %1771
  %1773 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %0, i32 noundef %.026703079, i8 noundef signext %1773, i32 noundef 20, i32 noundef 21, i32 noundef 24) #4
  br label %1774

1774:                                             ; preds = %1771, %1772
  br i1 %1693, label %1775, label %1791

1775:                                             ; preds = %1774
  br i1 %19, label %1776, label %1779

1776:                                             ; preds = %1775
  %1777 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_mask(ptr noundef %0, i32 noundef -268097947, i8 noundef signext %1777, i32 noundef 12, i32 noundef 8, i32 noundef 16, i32 noundef 7, i32 noundef 0) #4
  %1778 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %0, i32 noundef -259181021, i8 noundef signext %1778, i32 noundef 12, i32 noundef 8, i32 noundef 17, i32 noundef %.02690) #4
  br label %1779

1779:                                             ; preds = %1776, %1775
  br i1 %switch2932, label %1780, label %1785

1780:                                             ; preds = %1779
  %1781 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %0, i32 noundef 805574233, i8 noundef signext %1781, i32 noundef 8, i32 noundef 8, i32 noundef 18) #4
  %1782 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %0, i32 noundef 805574233, i8 noundef signext %1782, i32 noundef 12, i32 noundef 12, i32 noundef 19) #4
  %1783 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_mask(ptr noundef %0, i32 noundef -268097947, i8 noundef signext %1783, i32 noundef 19, i32 noundef 18, i32 noundef 20, i32 noundef 7, i32 noundef 0) #4
  %1784 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %0, i32 noundef -259181021, i8 noundef signext %1784, i32 noundef 19, i32 noundef 18, i32 noundef 21, i32 noundef %.02690) #4
  br label %1785

1785:                                             ; preds = %1779, %1780
  br i1 %19, label %1786, label %1788

1786:                                             ; preds = %1785
  %1787 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %0, i32 noundef %.026703079, i8 noundef signext %1787, i32 noundef 16, i32 noundef 17, i32 noundef 8) #4
  br label %1788

1788:                                             ; preds = %1786, %1785
  br i1 %switch2932, label %1789, label %1791

1789:                                             ; preds = %1788
  %1790 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %0, i32 noundef %.026703079, i8 noundef signext %1790, i32 noundef 20, i32 noundef 21, i32 noundef 28) #4
  br label %1791

1791:                                             ; preds = %1788, %1789, %1774
  br i1 %19, label %1792, label %1795

1792:                                             ; preds = %1791
  %1793 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_mask(ptr noundef %0, i32 noundef -268097947, i8 noundef signext %1793, i32 noundef 5, i32 noundef 1, i32 noundef 16, i32 noundef 7, i32 noundef 0) #4
  %1794 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %0, i32 noundef -259181021, i8 noundef signext %1794, i32 noundef 5, i32 noundef 1, i32 noundef 17, i32 noundef %.02690) #4
  br label %1795

1795:                                             ; preds = %1792, %1791
  br i1 %switch2932, label %1796, label %1801

1796:                                             ; preds = %1795
  %1797 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %0, i32 noundef 805574233, i8 noundef signext %1797, i32 noundef 1, i32 noundef 1, i32 noundef 18) #4
  %1798 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %0, i32 noundef 805574233, i8 noundef signext %1798, i32 noundef 5, i32 noundef 5, i32 noundef 19) #4
  %1799 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_mask(ptr noundef %0, i32 noundef -268097947, i8 noundef signext %1799, i32 noundef 19, i32 noundef 18, i32 noundef 20, i32 noundef 7, i32 noundef 0) #4
  %1800 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %0, i32 noundef -259181021, i8 noundef signext %1800, i32 noundef 19, i32 noundef 18, i32 noundef 21, i32 noundef %.02690) #4
  br label %1801

1801:                                             ; preds = %1795, %1796
  br i1 %19, label %1802, label %1804

1802:                                             ; preds = %1801
  %1803 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %0, i32 noundef %.026703079, i8 noundef signext %1803, i32 noundef 16, i32 noundef 17, i32 noundef 1) #4
  br label %1804

1804:                                             ; preds = %1802, %1801
  br i1 %switch2932, label %1805, label %1807

1805:                                             ; preds = %1804
  %1806 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %0, i32 noundef %.026703079, i8 noundef signext %1806, i32 noundef 20, i32 noundef 21, i32 noundef 25) #4
  br label %1807

1807:                                             ; preds = %1804, %1805
  br i1 %1694, label %1808, label %1824

1808:                                             ; preds = %1807
  br i1 %19, label %1809, label %1812

1809:                                             ; preds = %1808
  %1810 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_mask(ptr noundef %0, i32 noundef -268097947, i8 noundef signext %1810, i32 noundef 13, i32 noundef 9, i32 noundef 16, i32 noundef 7, i32 noundef 0) #4
  %1811 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %0, i32 noundef -259181021, i8 noundef signext %1811, i32 noundef 13, i32 noundef 9, i32 noundef 17, i32 noundef %.02690) #4
  br label %1812

1812:                                             ; preds = %1809, %1808
  br i1 %switch2932, label %1813, label %1818

1813:                                             ; preds = %1812
  %1814 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %0, i32 noundef 805574233, i8 noundef signext %1814, i32 noundef 9, i32 noundef 9, i32 noundef 18) #4
  %1815 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %0, i32 noundef 805574233, i8 noundef signext %1815, i32 noundef 13, i32 noundef 13, i32 noundef 19) #4
  %1816 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_mask(ptr noundef %0, i32 noundef -268097947, i8 noundef signext %1816, i32 noundef 19, i32 noundef 18, i32 noundef 20, i32 noundef 7, i32 noundef 0) #4
  %1817 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %0, i32 noundef -259181021, i8 noundef signext %1817, i32 noundef 19, i32 noundef 18, i32 noundef 21, i32 noundef %.02690) #4
  br label %1818

1818:                                             ; preds = %1812, %1813
  br i1 %19, label %1819, label %1821

1819:                                             ; preds = %1818
  %1820 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %0, i32 noundef %.026703079, i8 noundef signext %1820, i32 noundef 16, i32 noundef 17, i32 noundef 9) #4
  br label %1821

1821:                                             ; preds = %1819, %1818
  br i1 %switch2932, label %1822, label %1824

1822:                                             ; preds = %1821
  %1823 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %0, i32 noundef %.026703079, i8 noundef signext %1823, i32 noundef 20, i32 noundef 21, i32 noundef 29) #4
  br label %1824

1824:                                             ; preds = %1821, %1822, %1807
  br i1 %19, label %1825, label %1828

1825:                                             ; preds = %1824
  %1826 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_mask(ptr noundef %0, i32 noundef -268097947, i8 noundef signext %1826, i32 noundef 6, i32 noundef 2, i32 noundef 16, i32 noundef 7, i32 noundef 0) #4
  %1827 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %0, i32 noundef -259181021, i8 noundef signext %1827, i32 noundef 6, i32 noundef 2, i32 noundef 17, i32 noundef %.02690) #4
  br label %1828

1828:                                             ; preds = %1825, %1824
  br i1 %switch2932, label %1829, label %1834

1829:                                             ; preds = %1828
  %1830 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %0, i32 noundef 805574233, i8 noundef signext %1830, i32 noundef 2, i32 noundef 2, i32 noundef 18) #4
  %1831 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %0, i32 noundef 805574233, i8 noundef signext %1831, i32 noundef 6, i32 noundef 6, i32 noundef 19) #4
  %1832 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_mask(ptr noundef %0, i32 noundef -268097947, i8 noundef signext %1832, i32 noundef 19, i32 noundef 18, i32 noundef 20, i32 noundef 7, i32 noundef 0) #4
  %1833 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %0, i32 noundef -259181021, i8 noundef signext %1833, i32 noundef 19, i32 noundef 18, i32 noundef 21, i32 noundef %.02690) #4
  br label %1834

1834:                                             ; preds = %1828, %1829
  br i1 %19, label %1835, label %1837

1835:                                             ; preds = %1834
  %1836 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %0, i32 noundef %.026703079, i8 noundef signext %1836, i32 noundef 16, i32 noundef 17, i32 noundef 2) #4
  br label %1837

1837:                                             ; preds = %1835, %1834
  br i1 %switch2932, label %1838, label %1840

1838:                                             ; preds = %1837
  %1839 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %0, i32 noundef %.026703079, i8 noundef signext %1839, i32 noundef 20, i32 noundef 21, i32 noundef 26) #4
  br label %1840

1840:                                             ; preds = %1837, %1838
  br i1 %1695, label %1841, label %1857

1841:                                             ; preds = %1840
  br i1 %19, label %1842, label %1845

1842:                                             ; preds = %1841
  %1843 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_mask(ptr noundef %0, i32 noundef -268097947, i8 noundef signext %1843, i32 noundef 14, i32 noundef 10, i32 noundef 16, i32 noundef 7, i32 noundef 0) #4
  %1844 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %0, i32 noundef -259181021, i8 noundef signext %1844, i32 noundef 14, i32 noundef 10, i32 noundef 17, i32 noundef %.02690) #4
  br label %1845

1845:                                             ; preds = %1842, %1841
  br i1 %switch2932, label %1846, label %1851

1846:                                             ; preds = %1845
  %1847 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %0, i32 noundef 805574233, i8 noundef signext %1847, i32 noundef 10, i32 noundef 10, i32 noundef 18) #4
  %1848 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %0, i32 noundef 805574233, i8 noundef signext %1848, i32 noundef 14, i32 noundef 14, i32 noundef 19) #4
  %1849 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_mask(ptr noundef %0, i32 noundef -268097947, i8 noundef signext %1849, i32 noundef 19, i32 noundef 18, i32 noundef 20, i32 noundef 7, i32 noundef 0) #4
  %1850 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %0, i32 noundef -259181021, i8 noundef signext %1850, i32 noundef 19, i32 noundef 18, i32 noundef 21, i32 noundef %.02690) #4
  br label %1851

1851:                                             ; preds = %1845, %1846
  br i1 %19, label %1852, label %1854

1852:                                             ; preds = %1851
  %1853 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %0, i32 noundef %.026703079, i8 noundef signext %1853, i32 noundef 16, i32 noundef 17, i32 noundef 10) #4
  br label %1854

1854:                                             ; preds = %1852, %1851
  br i1 %switch2932, label %1855, label %1857

1855:                                             ; preds = %1854
  %1856 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %0, i32 noundef %.026703079, i8 noundef signext %1856, i32 noundef 20, i32 noundef 21, i32 noundef 30) #4
  br label %1857

1857:                                             ; preds = %1854, %1855, %1840
  br i1 %19, label %1858, label %1861

1858:                                             ; preds = %1857
  %1859 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_mask(ptr noundef %0, i32 noundef -268097947, i8 noundef signext %1859, i32 noundef 7, i32 noundef 3, i32 noundef 16, i32 noundef 7, i32 noundef 0) #4
  %1860 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %0, i32 noundef -259181021, i8 noundef signext %1860, i32 noundef 7, i32 noundef 3, i32 noundef 17, i32 noundef %.02690) #4
  br label %1861

1861:                                             ; preds = %1858, %1857
  br i1 %switch2932, label %1862, label %1867

1862:                                             ; preds = %1861
  %1863 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %0, i32 noundef 805574233, i8 noundef signext %1863, i32 noundef 3, i32 noundef 3, i32 noundef 18) #4
  %1864 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %0, i32 noundef 805574233, i8 noundef signext %1864, i32 noundef 7, i32 noundef 7, i32 noundef 19) #4
  %1865 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_mask(ptr noundef %0, i32 noundef -268097947, i8 noundef signext %1865, i32 noundef 19, i32 noundef 18, i32 noundef 20, i32 noundef 7, i32 noundef 0) #4
  %1866 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %0, i32 noundef -259181021, i8 noundef signext %1866, i32 noundef 19, i32 noundef 18, i32 noundef 21, i32 noundef %.02690) #4
  br label %1867

1867:                                             ; preds = %1861, %1862
  br i1 %19, label %1868, label %1870

1868:                                             ; preds = %1867
  %1869 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %0, i32 noundef %.026703079, i8 noundef signext %1869, i32 noundef 16, i32 noundef 17, i32 noundef 3) #4
  br label %1870

1870:                                             ; preds = %1868, %1867
  br i1 %switch2932, label %1871, label %1873

1871:                                             ; preds = %1870
  %1872 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %0, i32 noundef %.026703079, i8 noundef signext %1872, i32 noundef 20, i32 noundef 21, i32 noundef 27) #4
  br label %1873

1873:                                             ; preds = %1870, %1871
  br i1 %1696, label %1874, label %1890

1874:                                             ; preds = %1873
  br i1 %19, label %1875, label %1878

1875:                                             ; preds = %1874
  %1876 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_mask(ptr noundef %0, i32 noundef -268097947, i8 noundef signext %1876, i32 noundef 15, i32 noundef 11, i32 noundef 16, i32 noundef 7, i32 noundef 0) #4
  %1877 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %0, i32 noundef -259181021, i8 noundef signext %1877, i32 noundef 15, i32 noundef 11, i32 noundef 17, i32 noundef %.02690) #4
  br label %1878

1878:                                             ; preds = %1875, %1874
  br i1 %switch2932, label %1879, label %1884

1879:                                             ; preds = %1878
  %1880 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %0, i32 noundef 805574233, i8 noundef signext %1880, i32 noundef 11, i32 noundef 11, i32 noundef 18) #4
  %1881 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %0, i32 noundef 805574233, i8 noundef signext %1881, i32 noundef 15, i32 noundef 15, i32 noundef 19) #4
  %1882 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_mask(ptr noundef %0, i32 noundef -268097947, i8 noundef signext %1882, i32 noundef 19, i32 noundef 18, i32 noundef 20, i32 noundef 7, i32 noundef 0) #4
  %1883 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef %0, i32 noundef -259181021, i8 noundef signext %1883, i32 noundef 19, i32 noundef 18, i32 noundef 21, i32 noundef %.02690) #4
  br label %1884

1884:                                             ; preds = %1878, %1879
  br i1 %19, label %1885, label %1887

1885:                                             ; preds = %1884
  %1886 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %0, i32 noundef %.026703079, i8 noundef signext %1886, i32 noundef 16, i32 noundef 17, i32 noundef 11) #4
  br label %1887

1887:                                             ; preds = %1885, %1884
  br i1 %switch2932, label %1888, label %1890

1888:                                             ; preds = %1887
  %1889 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %0, i32 noundef %.026703079, i8 noundef signext %1889, i32 noundef 20, i32 noundef 21, i32 noundef 31) #4
  br label %1890

1890:                                             ; preds = %1887, %1888, %1873
  %1891 = load i32, ptr %28, align 4, !tbaa !18
  %1892 = icmp ugt i32 %1891, 1100
  br i1 %1892, label %1893, label %1933

1893:                                             ; preds = %1890
  br i1 %19, label %1894, label %1898

1894:                                             ; preds = %1893
  %1895 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef nonnull %0, i32 noundef -259181021, i8 noundef signext %1895, i32 noundef 8, i32 noundef 0, i32 noundef 16, i32 noundef 136) #4
  %1896 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef nonnull %0, i32 noundef -259181021, i8 noundef signext %1896, i32 noundef 8, i32 noundef 0, i32 noundef 17, i32 noundef 221) #4
  %1897 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef nonnull %0, i32 noundef %.026703079, i8 noundef signext %1897, i32 noundef 16, i32 noundef 17, i32 noundef 0) #4
  br label %1898

1898:                                             ; preds = %1894, %1893
  br i1 %switch2932, label %1899, label %1903

1899:                                             ; preds = %1898
  %1900 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef nonnull %0, i32 noundef -259181021, i8 noundef signext %1900, i32 noundef 28, i32 noundef 24, i32 noundef 20, i32 noundef 136) #4
  %1901 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef nonnull %0, i32 noundef -259181021, i8 noundef signext %1901, i32 noundef 28, i32 noundef 24, i32 noundef 21, i32 noundef 221) #4
  %1902 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef nonnull %0, i32 noundef %.026703079, i8 noundef signext %1902, i32 noundef 20, i32 noundef 21, i32 noundef 24) #4
  br label %1903

1903:                                             ; preds = %1898, %1899
  br i1 %19, label %1904, label %1908

1904:                                             ; preds = %1903
  %1905 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef nonnull %0, i32 noundef -259181021, i8 noundef signext %1905, i32 noundef 9, i32 noundef 1, i32 noundef 16, i32 noundef 136) #4
  %1906 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef nonnull %0, i32 noundef -259181021, i8 noundef signext %1906, i32 noundef 9, i32 noundef 1, i32 noundef 17, i32 noundef 221) #4
  %1907 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef nonnull %0, i32 noundef %.026703079, i8 noundef signext %1907, i32 noundef 16, i32 noundef 17, i32 noundef 1) #4
  br label %1908

1908:                                             ; preds = %1904, %1903
  br i1 %switch2932, label %1909, label %1913

1909:                                             ; preds = %1908
  %1910 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef nonnull %0, i32 noundef -259181021, i8 noundef signext %1910, i32 noundef 29, i32 noundef 25, i32 noundef 20, i32 noundef 136) #4
  %1911 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef nonnull %0, i32 noundef -259181021, i8 noundef signext %1911, i32 noundef 29, i32 noundef 25, i32 noundef 21, i32 noundef 221) #4
  %1912 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef nonnull %0, i32 noundef %.026703079, i8 noundef signext %1912, i32 noundef 20, i32 noundef 21, i32 noundef 25) #4
  br label %1913

1913:                                             ; preds = %1908, %1909
  br i1 %19, label %1914, label %1918

1914:                                             ; preds = %1913
  %1915 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef nonnull %0, i32 noundef -259181021, i8 noundef signext %1915, i32 noundef 10, i32 noundef 2, i32 noundef 16, i32 noundef 136) #4
  %1916 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef nonnull %0, i32 noundef -259181021, i8 noundef signext %1916, i32 noundef 10, i32 noundef 2, i32 noundef 17, i32 noundef 221) #4
  %1917 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef nonnull %0, i32 noundef %.026703079, i8 noundef signext %1917, i32 noundef 16, i32 noundef 17, i32 noundef 2) #4
  br label %1918

1918:                                             ; preds = %1914, %1913
  br i1 %switch2932, label %1919, label %1923

1919:                                             ; preds = %1918
  %1920 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef nonnull %0, i32 noundef -259181021, i8 noundef signext %1920, i32 noundef 30, i32 noundef 26, i32 noundef 20, i32 noundef 136) #4
  %1921 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef nonnull %0, i32 noundef -259181021, i8 noundef signext %1921, i32 noundef 30, i32 noundef 26, i32 noundef 21, i32 noundef 221) #4
  %1922 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef nonnull %0, i32 noundef %.026703079, i8 noundef signext %1922, i32 noundef 20, i32 noundef 21, i32 noundef 26) #4
  br label %1923

1923:                                             ; preds = %1918, %1919
  br i1 %19, label %1924, label %1928

1924:                                             ; preds = %1923
  %1925 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef nonnull %0, i32 noundef -259181021, i8 noundef signext %1925, i32 noundef 11, i32 noundef 3, i32 noundef 16, i32 noundef 136) #4
  %1926 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef nonnull %0, i32 noundef -259181021, i8 noundef signext %1926, i32 noundef 11, i32 noundef 3, i32 noundef 17, i32 noundef 221) #4
  %1927 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef nonnull %0, i32 noundef %.026703079, i8 noundef signext %1927, i32 noundef 16, i32 noundef 17, i32 noundef 3) #4
  br label %1928

1928:                                             ; preds = %1924, %1923
  br i1 %switch2932, label %1929, label %1933

1929:                                             ; preds = %1928
  %1930 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef nonnull %0, i32 noundef -259181021, i8 noundef signext %1930, i32 noundef 31, i32 noundef 27, i32 noundef 20, i32 noundef 136) #4
  %1931 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef nonnull %0, i32 noundef -259181021, i8 noundef signext %1931, i32 noundef 31, i32 noundef 27, i32 noundef 21, i32 noundef 221) #4
  %1932 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef nonnull %0, i32 noundef %.026703079, i8 noundef signext %1932, i32 noundef 20, i32 noundef 21, i32 noundef 27) #4
  br label %1933

1933:                                             ; preds = %1928, %1929, %1890
  br i1 %19, label %1934, label %1938

1934:                                             ; preds = %1933
  %1935 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef nonnull %0, i32 noundef 806098630, i8 noundef signext %1935, i32 noundef 1, i32 noundef 0, i32 noundef 16, i32 noundef 68) #4
  %1936 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef nonnull %0, i32 noundef 806098630, i8 noundef signext %1936, i32 noundef 1, i32 noundef 0, i32 noundef 17, i32 noundef 238) #4
  %1937 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef nonnull %0, i32 noundef %.026703079, i8 noundef signext %1937, i32 noundef 16, i32 noundef 17, i32 noundef 0) #4
  br label %1938

1938:                                             ; preds = %1934, %1933
  br i1 %switch2932, label %1939, label %1943

1939:                                             ; preds = %1938
  %1940 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef nonnull %0, i32 noundef 806098630, i8 noundef signext %1940, i32 noundef 25, i32 noundef 24, i32 noundef 20, i32 noundef 68) #4
  %1941 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef nonnull %0, i32 noundef 806098630, i8 noundef signext %1941, i32 noundef 25, i32 noundef 24, i32 noundef 21, i32 noundef 238) #4
  %1942 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef nonnull %0, i32 noundef %.026703079, i8 noundef signext %1942, i32 noundef 20, i32 noundef 21, i32 noundef 24) #4
  br label %1943

1943:                                             ; preds = %1938, %1939
  br i1 %19, label %1944, label %1948

1944:                                             ; preds = %1943
  %1945 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef nonnull %0, i32 noundef 806098630, i8 noundef signext %1945, i32 noundef 3, i32 noundef 2, i32 noundef 16, i32 noundef 68) #4
  %1946 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef nonnull %0, i32 noundef 806098630, i8 noundef signext %1946, i32 noundef 3, i32 noundef 2, i32 noundef 17, i32 noundef 238) #4
  %1947 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef nonnull %0, i32 noundef %.026703079, i8 noundef signext %1947, i32 noundef 16, i32 noundef 17, i32 noundef 2) #4
  br label %1948

1948:                                             ; preds = %1944, %1943
  br i1 %switch2932, label %1949, label %1953

1949:                                             ; preds = %1948
  %1950 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef nonnull %0, i32 noundef 806098630, i8 noundef signext %1950, i32 noundef 27, i32 noundef 26, i32 noundef 20, i32 noundef 68) #4
  %1951 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef nonnull %0, i32 noundef 806098630, i8 noundef signext %1951, i32 noundef 27, i32 noundef 26, i32 noundef 21, i32 noundef 238) #4
  %1952 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef nonnull %0, i32 noundef %.026703079, i8 noundef signext %1952, i32 noundef 20, i32 noundef 21, i32 noundef 26) #4
  br label %1953

1953:                                             ; preds = %1948, %1949
  br i1 %19, label %1954, label %2164

1954:                                             ; preds = %1953
  %1955 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef nonnull %0, i32 noundef 806098630, i8 noundef signext %1955, i32 noundef 2, i32 noundef 0, i32 noundef 16, i32 noundef 136) #4
  %1956 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef nonnull %0, i32 noundef 806098630, i8 noundef signext %1956, i32 noundef 2, i32 noundef 0, i32 noundef 17, i32 noundef 221) #4
  %1957 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef nonnull %0, i32 noundef %.026703079, i8 noundef signext %1957, i32 noundef 16, i32 noundef 17, i32 noundef 0) #4
  %1958 = icmp eq i32 %.43052, 0
  %or.cond83 = select i1 %1958, i1 %1697, i1 false
  br i1 %or.cond83, label %1959, label %2001

1959:                                             ; preds = %1954
  %1960 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %1961 = icmp eq i32 %1960, 4
  br i1 %1961, label %1962, label %1966

1962:                                             ; preds = %1959
  %1963 = load i32, ptr %3, align 4, !tbaa !39
  %1964 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_move(ptr noundef nonnull %0, i32 noundef %1963, i32 noundef 537138704, i32 noundef 1, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %1964, i32 noundef 0, i32 noundef 2, i32 noundef 0, i32 noundef 1) #4
  %1965 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_generator_vcvtneps2bf8_avx512_preppedstack(ptr noundef nonnull %0, i8 noundef signext %1965, i32 noundef 0, i32 noundef 0, i32 noundef 3, i32 noundef 4, i32 noundef 3, i32 noundef 4, i32 noundef 0, i32 noundef 0) #4
  br label %1996

1966:                                             ; preds = %1959
  %1967 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %1968 = icmp eq i32 %1967, 5
  br i1 %1968, label %1969, label %1973

1969:                                             ; preds = %1966
  %1970 = load i32, ptr %3, align 4, !tbaa !39
  %1971 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_move(ptr noundef nonnull %0, i32 noundef %1970, i32 noundef 537138704, i32 noundef 1, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %1971, i32 noundef 0, i32 noundef 2, i32 noundef 0, i32 noundef 1) #4
  %1972 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_generator_vcvtf32_to_hf8_avx512_preppedstack(ptr noundef nonnull %0, i8 noundef signext %1972, i32 noundef 0, i32 noundef 0, i32 noundef 30, i32 noundef 31, i32 noundef 27, i32 noundef 28, i32 noundef 6, i32 noundef 5, i32 noundef 4) #4
  br label %1996

1973:                                             ; preds = %1966
  %1974 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %1975 = icmp eq i32 %1974, 3
  br i1 %1975, label %1976, label %1984

1976:                                             ; preds = %1973
  %1977 = load i32, ptr %3, align 4, !tbaa !39
  %1978 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_move(ptr noundef nonnull %0, i32 noundef %1977, i32 noundef 537138704, i32 noundef 1, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %1978, i32 noundef 0, i32 noundef 2, i32 noundef 0, i32 noundef 1) #4
  %1979 = load i8, ptr %10, align 4, !tbaa !9
  %1980 = load i32, ptr %28, align 4, !tbaa !18
  %1981 = icmp ugt i32 %1980, 1100
  %1982 = zext i1 %1981 to i32
  %1983 = zext i1 %1981 to i8
  call void @libxsmm_x86_instruction_vec_compute_2reg_mask_sae_imm8(ptr noundef nonnull %0, i32 noundef 671954205, i8 noundef signext %1979, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef %1982, i8 noundef zeroext %1983, i32 noundef 0) #4
  br label %1996

1984:                                             ; preds = %1973
  %1985 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %1986 = icmp eq i32 %1985, 2
  br i1 %1986, label %1987, label %1996

1987:                                             ; preds = %1984
  %1988 = load i32, ptr %3, align 4, !tbaa !39
  %1989 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_move(ptr noundef nonnull %0, i32 noundef %1988, i32 noundef 537138704, i32 noundef 1, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %1989, i32 noundef 0, i32 noundef 2, i32 noundef 0, i32 noundef 1) #4
  %1990 = load i32, ptr %28, align 4, !tbaa !18
  %.fr3026 = freeze i32 %1990
  %1991 = icmp ugt i32 %.fr3026, 1102
  br i1 %1991, label %1994, label %switch.early.test2975

switch.early.test2975:                            ; preds = %1987
  switch i32 %.fr3026, label %1992 [
    i32 1053, label %1994
    i32 1008, label %1994
  ]

1992:                                             ; preds = %switch.early.test2975
  %1993 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_generator_vcvtneps2bf16_avx512_preppedstack(ptr noundef nonnull %0, i8 noundef signext %1993, i32 noundef 0, i32 noundef 0, i32 noundef 3, i32 noundef 4, i32 noundef 3, i32 noundef 4, i32 noundef 0) #4
  br label %1996

1994:                                             ; preds = %switch.early.test2975, %switch.early.test2975, %1987
  %1995 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_2reg(ptr noundef nonnull %0, i32 noundef 537273970, i8 noundef signext %1995, i32 noundef 0, i32 noundef 0) #4
  br label %1996

1996:                                             ; preds = %1969, %1984, %1994, %1992, %1976, %1962
  %1997 = load i32, ptr %3, align 4, !tbaa !39
  %1998 = load i32, ptr %9, align 4, !tbaa !5
  %1999 = load i32, ptr %63, align 4, !tbaa !25
  %2000 = load i8, ptr %7, align 1, !tbaa !11
  call void @libxsmm_x86_instruction_vec_move(ptr noundef nonnull %0, i32 noundef %1997, i32 noundef %1998, i32 noundef %1999, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %2000, i32 noundef 0, i32 noundef 2, i32 noundef 0, i32 noundef 1) #4
  br label %2164

2001:                                             ; preds = %1954
  %or.cond85 = select i1 %1958, i1 %27, i1 false
  br i1 %or.cond85, label %2002, label %2069

2002:                                             ; preds = %2001
  %2003 = load i32, ptr %3, align 4, !tbaa !39
  %2004 = load i32, ptr %9, align 4, !tbaa !5
  %2005 = load i32, ptr %63, align 4, !tbaa !25
  %2006 = load i8, ptr %7, align 1, !tbaa !11
  call void @libxsmm_x86_instruction_vec_move(ptr noundef nonnull %0, i32 noundef %2003, i32 noundef %2004, i32 noundef %2005, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %2006, i32 noundef 3, i32 noundef 2, i32 noundef 1, i32 noundef 0) #4
  %2007 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %2008 = icmp eq i32 %2007, 4
  br i1 %2008, label %2009, label %2011

2009:                                             ; preds = %2002
  %2010 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_generator_cvtbf8ps_avx512(ptr noundef nonnull %0, i8 noundef signext %2010, i32 noundef 3, i32 noundef 3) #4
  br label %2026

2011:                                             ; preds = %2002
  %2012 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %2013 = icmp eq i32 %2012, 5
  br i1 %2013, label %2014, label %2016

2014:                                             ; preds = %2011
  %2015 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_generator_vcvthf8_to_f32_avx512_preppedstack(ptr noundef nonnull %0, i8 noundef signext %2015, i32 noundef 3, i32 noundef 3, i32 noundef 30, i32 noundef 31, i32 noundef 6, i32 noundef 5) #4
  br label %2026

2016:                                             ; preds = %2011
  %2017 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %2018 = icmp eq i32 %2017, 3
  br i1 %2018, label %2019, label %2021

2019:                                             ; preds = %2016
  %2020 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_2reg(ptr noundef nonnull %0, i32 noundef 537208083, i8 noundef signext %2020, i32 noundef 3, i32 noundef 3) #4
  br label %2026

2021:                                             ; preds = %2016
  %2022 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %2023 = icmp eq i32 %2022, 2
  br i1 %2023, label %2024, label %2026

2024:                                             ; preds = %2021
  %2025 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_generator_cvtbf16ps_sse_avx2_avx512(ptr noundef nonnull %0, i8 noundef signext %2025, i32 noundef 3, i32 noundef 3) #4
  br label %2026

2026:                                             ; preds = %2014, %2021, %2024, %2019, %2009
  %2027 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef nonnull %0, i32 noundef %.026703079, i8 noundef signext %2027, i32 noundef 3, i32 noundef 0, i32 noundef 0) #4
  %2028 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %2029 = icmp eq i32 %2028, 4
  br i1 %2029, label %2030, label %2034

2030:                                             ; preds = %2026
  %2031 = load i32, ptr %3, align 4, !tbaa !39
  %2032 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_move(ptr noundef nonnull %0, i32 noundef %2031, i32 noundef 537138704, i32 noundef 1, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %2032, i32 noundef 0, i32 noundef 2, i32 noundef 0, i32 noundef 1) #4
  %2033 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_generator_vcvtneps2bf8_avx512_preppedstack(ptr noundef nonnull %0, i8 noundef signext %2033, i32 noundef 0, i32 noundef 0, i32 noundef 3, i32 noundef 4, i32 noundef 3, i32 noundef 4, i32 noundef 0, i32 noundef 0) #4
  br label %2064

2034:                                             ; preds = %2026
  %2035 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %2036 = icmp eq i32 %2035, 5
  br i1 %2036, label %2037, label %2041

2037:                                             ; preds = %2034
  %2038 = load i32, ptr %3, align 4, !tbaa !39
  %2039 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_move(ptr noundef nonnull %0, i32 noundef %2038, i32 noundef 537138704, i32 noundef 1, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %2039, i32 noundef 0, i32 noundef 2, i32 noundef 0, i32 noundef 1) #4
  %2040 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_generator_vcvtf32_to_hf8_avx512_preppedstack(ptr noundef nonnull %0, i8 noundef signext %2040, i32 noundef 0, i32 noundef 0, i32 noundef 30, i32 noundef 31, i32 noundef 27, i32 noundef 28, i32 noundef 6, i32 noundef 5, i32 noundef 4) #4
  br label %2064

2041:                                             ; preds = %2034
  %2042 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %2043 = icmp eq i32 %2042, 3
  br i1 %2043, label %2044, label %2052

2044:                                             ; preds = %2041
  %2045 = load i32, ptr %3, align 4, !tbaa !39
  %2046 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_move(ptr noundef nonnull %0, i32 noundef %2045, i32 noundef 537138704, i32 noundef 1, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %2046, i32 noundef 0, i32 noundef 2, i32 noundef 0, i32 noundef 1) #4
  %2047 = load i8, ptr %10, align 4, !tbaa !9
  %2048 = load i32, ptr %28, align 4, !tbaa !18
  %2049 = icmp ugt i32 %2048, 1100
  %2050 = zext i1 %2049 to i32
  %2051 = zext i1 %2049 to i8
  call void @libxsmm_x86_instruction_vec_compute_2reg_mask_sae_imm8(ptr noundef nonnull %0, i32 noundef 671954205, i8 noundef signext %2047, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef %2050, i8 noundef zeroext %2051, i32 noundef 0) #4
  br label %2064

2052:                                             ; preds = %2041
  %2053 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %2054 = icmp eq i32 %2053, 2
  br i1 %2054, label %2055, label %2064

2055:                                             ; preds = %2052
  %2056 = load i32, ptr %3, align 4, !tbaa !39
  %2057 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_move(ptr noundef nonnull %0, i32 noundef %2056, i32 noundef 537138704, i32 noundef 1, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %2057, i32 noundef 0, i32 noundef 2, i32 noundef 0, i32 noundef 1) #4
  %2058 = load i32, ptr %28, align 4, !tbaa !18
  %.fr3025 = freeze i32 %2058
  %2059 = icmp ugt i32 %.fr3025, 1102
  br i1 %2059, label %2062, label %switch.early.test2976

switch.early.test2976:                            ; preds = %2055
  switch i32 %.fr3025, label %2060 [
    i32 1053, label %2062
    i32 1008, label %2062
  ]

2060:                                             ; preds = %switch.early.test2976
  %2061 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_generator_vcvtneps2bf16_avx512_preppedstack(ptr noundef nonnull %0, i8 noundef signext %2061, i32 noundef 0, i32 noundef 0, i32 noundef 3, i32 noundef 4, i32 noundef 3, i32 noundef 4, i32 noundef 0) #4
  br label %2064

2062:                                             ; preds = %switch.early.test2976, %switch.early.test2976, %2055
  %2063 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_2reg(ptr noundef nonnull %0, i32 noundef 537273970, i8 noundef signext %2063, i32 noundef 0, i32 noundef 0) #4
  br label %2064

2064:                                             ; preds = %2037, %2052, %2062, %2060, %2044, %2030
  %2065 = load i32, ptr %3, align 4, !tbaa !39
  %2066 = load i32, ptr %9, align 4, !tbaa !5
  %2067 = load i32, ptr %63, align 4, !tbaa !25
  %2068 = load i8, ptr %7, align 1, !tbaa !11
  call void @libxsmm_x86_instruction_vec_move(ptr noundef nonnull %0, i32 noundef %2065, i32 noundef %2066, i32 noundef %2067, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %2068, i32 noundef 0, i32 noundef 2, i32 noundef 0, i32 noundef 1) #4
  br label %2164

2069:                                             ; preds = %2001
  %2070 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %2071 = icmp eq i32 %2070, 3
  br i1 %1698, label %2072, label %2125

2072:                                             ; preds = %2069
  br i1 %2071, label %2082, label %2073

2073:                                             ; preds = %2072
  %2074 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %2075 = icmp eq i32 %2074, 2
  br i1 %2075, label %2082, label %2076

2076:                                             ; preds = %2073
  %2077 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %2078 = icmp eq i32 %2077, 5
  br i1 %2078, label %2082, label %2079

2079:                                             ; preds = %2076
  %2080 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %2081 = icmp eq i32 %2080, 4
  br i1 %2081, label %2082, label %2085

2082:                                             ; preds = %2079, %2076, %2073, %2072
  %2083 = load i32, ptr %3, align 4, !tbaa !39
  %2084 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_move(ptr noundef nonnull %0, i32 noundef %2083, i32 noundef 537138704, i32 noundef 1, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %2084, i32 noundef 1, i32 noundef 2, i32 noundef 1, i32 noundef 0) #4
  br label %2090

2085:                                             ; preds = %2079
  %2086 = load i32, ptr %3, align 4, !tbaa !39
  %2087 = load i32, ptr %9, align 4, !tbaa !5
  %2088 = load i32, ptr %63, align 4, !tbaa !25
  %2089 = load i8, ptr %7, align 1, !tbaa !11
  call void @libxsmm_x86_instruction_vec_move(ptr noundef nonnull %0, i32 noundef %2086, i32 noundef %2087, i32 noundef %2088, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %2089, i32 noundef 1, i32 noundef 2, i32 noundef 1, i32 noundef 0) #4
  br label %2090

2090:                                             ; preds = %2085, %2082
  %2091 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef nonnull %0, i32 noundef %.026703079, i8 noundef signext %2091, i32 noundef 1, i32 noundef 0, i32 noundef 0) #4
  %2092 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %2093 = icmp eq i32 %2092, 4
  br i1 %2093, label %2094, label %2096

2094:                                             ; preds = %2090
  %2095 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_generator_vcvtneps2bf8_avx512_preppedstack(ptr noundef nonnull %0, i8 noundef signext %2095, i32 noundef 0, i32 noundef 0, i32 noundef 3, i32 noundef 4, i32 noundef 3, i32 noundef 4, i32 noundef 0, i32 noundef 0) #4
  br label %2120

2096:                                             ; preds = %2090
  %2097 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %2098 = icmp eq i32 %2097, 5
  br i1 %2098, label %2099, label %2101

2099:                                             ; preds = %2096
  %2100 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_generator_vcvtf32_to_hf8_avx512_preppedstack(ptr noundef nonnull %0, i8 noundef signext %2100, i32 noundef 0, i32 noundef 0, i32 noundef 30, i32 noundef 31, i32 noundef 27, i32 noundef 28, i32 noundef 6, i32 noundef 5, i32 noundef 4) #4
  br label %2120

2101:                                             ; preds = %2096
  %2102 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %2103 = icmp eq i32 %2102, 3
  br i1 %2103, label %2104, label %2110

2104:                                             ; preds = %2101
  %2105 = load i8, ptr %10, align 4, !tbaa !9
  %2106 = load i32, ptr %28, align 4, !tbaa !18
  %2107 = icmp ugt i32 %2106, 1100
  %2108 = zext i1 %2107 to i32
  %2109 = zext i1 %2107 to i8
  call void @libxsmm_x86_instruction_vec_compute_2reg_mask_sae_imm8(ptr noundef nonnull %0, i32 noundef 671954205, i8 noundef signext %2105, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef %2108, i8 noundef zeroext %2109, i32 noundef 0) #4
  br label %2120

2110:                                             ; preds = %2101
  %2111 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %2112 = icmp eq i32 %2111, 2
  br i1 %2112, label %2113, label %2120

2113:                                             ; preds = %2110
  %2114 = load i32, ptr %28, align 4, !tbaa !18
  %.fr3024 = freeze i32 %2114
  %2115 = icmp ugt i32 %.fr3024, 1102
  br i1 %2115, label %2118, label %switch.early.test2977

switch.early.test2977:                            ; preds = %2113
  switch i32 %.fr3024, label %2116 [
    i32 1053, label %2118
    i32 1008, label %2118
  ]

2116:                                             ; preds = %switch.early.test2977
  %2117 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_generator_vcvtneps2bf16_avx512_preppedstack(ptr noundef nonnull %0, i8 noundef signext %2117, i32 noundef 0, i32 noundef 0, i32 noundef 3, i32 noundef 4, i32 noundef 3, i32 noundef 4, i32 noundef 0) #4
  br label %2120

2118:                                             ; preds = %switch.early.test2977, %switch.early.test2977, %2113
  %2119 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_2reg(ptr noundef nonnull %0, i32 noundef 537273970, i8 noundef signext %2119, i32 noundef 0, i32 noundef 0) #4
  br label %2120

2120:                                             ; preds = %2099, %2110, %2118, %2116, %2104, %2094
  %2121 = load i32, ptr %3, align 4, !tbaa !39
  %2122 = load i32, ptr %9, align 4, !tbaa !5
  %2123 = load i32, ptr %63, align 4, !tbaa !25
  %2124 = load i8, ptr %7, align 1, !tbaa !11
  call void @libxsmm_x86_instruction_vec_move(ptr noundef nonnull %0, i32 noundef %2121, i32 noundef %2122, i32 noundef %2123, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %2124, i32 noundef 0, i32 noundef 2, i32 noundef 0, i32 noundef 1) #4
  br label %2164

2125:                                             ; preds = %2069
  br i1 %2071, label %2135, label %2126

2126:                                             ; preds = %2125
  %2127 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %2128 = icmp eq i32 %2127, 2
  br i1 %2128, label %2135, label %2129

2129:                                             ; preds = %2126
  %2130 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %2131 = icmp eq i32 %2130, 5
  br i1 %2131, label %2135, label %2132

2132:                                             ; preds = %2129
  %2133 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %2134 = icmp eq i32 %2133, 4
  br i1 %2134, label %2135, label %2138

2135:                                             ; preds = %2132, %2129, %2126, %2125
  %2136 = load i32, ptr %3, align 4, !tbaa !39
  %2137 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_move(ptr noundef nonnull %0, i32 noundef %2136, i32 noundef 537138704, i32 noundef 1, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %2137, i32 noundef 1, i32 noundef 2, i32 noundef 1, i32 noundef 0) #4
  br label %2143

2138:                                             ; preds = %2132
  %2139 = load i32, ptr %3, align 4, !tbaa !39
  %2140 = load i32, ptr %9, align 4, !tbaa !5
  %2141 = load i32, ptr %63, align 4, !tbaa !25
  %2142 = load i8, ptr %7, align 1, !tbaa !11
  call void @libxsmm_x86_instruction_vec_move(ptr noundef nonnull %0, i32 noundef %2139, i32 noundef %2140, i32 noundef %2141, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %2142, i32 noundef 1, i32 noundef 2, i32 noundef 1, i32 noundef 0) #4
  br label %2143

2143:                                             ; preds = %2138, %2135
  %2144 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef nonnull %0, i32 noundef %.026703079, i8 noundef signext %2144, i32 noundef 1, i32 noundef 0, i32 noundef 0) #4
  %2145 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %2146 = icmp eq i32 %2145, 3
  br i1 %2146, label %2156, label %2147

2147:                                             ; preds = %2143
  %2148 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %2149 = icmp eq i32 %2148, 2
  br i1 %2149, label %2156, label %2150

2150:                                             ; preds = %2147
  %2151 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %2152 = icmp eq i32 %2151, 5
  br i1 %2152, label %2156, label %2153

2153:                                             ; preds = %2150
  %2154 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %2155 = icmp eq i32 %2154, 4
  br i1 %2155, label %2156, label %2159

2156:                                             ; preds = %2153, %2150, %2147, %2143
  %2157 = load i32, ptr %3, align 4, !tbaa !39
  %2158 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_move(ptr noundef nonnull %0, i32 noundef %2157, i32 noundef 537138704, i32 noundef 1, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %2158, i32 noundef 0, i32 noundef 2, i32 noundef 0, i32 noundef 1) #4
  br label %2164

2159:                                             ; preds = %2153
  %2160 = load i32, ptr %3, align 4, !tbaa !39
  %2161 = load i32, ptr %9, align 4, !tbaa !5
  %2162 = load i32, ptr %63, align 4, !tbaa !25
  %2163 = load i8, ptr %7, align 1, !tbaa !11
  call void @libxsmm_x86_instruction_vec_move(ptr noundef nonnull %0, i32 noundef %2160, i32 noundef %2161, i32 noundef %2162, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %2163, i32 noundef 0, i32 noundef 2, i32 noundef 0, i32 noundef 1) #4
  br label %2164

2164:                                             ; preds = %1996, %2120, %2159, %2156, %2064, %1953
  br i1 %switch2932, label %2165, label %2375

2165:                                             ; preds = %2164
  %2166 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef nonnull %0, i32 noundef 806098630, i8 noundef signext %2166, i32 noundef 26, i32 noundef 24, i32 noundef 20, i32 noundef 136) #4
  %2167 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef nonnull %0, i32 noundef 806098630, i8 noundef signext %2167, i32 noundef 26, i32 noundef 24, i32 noundef 21, i32 noundef 221) #4
  %2168 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef nonnull %0, i32 noundef %.026703079, i8 noundef signext %2168, i32 noundef 20, i32 noundef 21, i32 noundef 24) #4
  %2169 = icmp eq i32 %.43052, 0
  %or.cond87 = select i1 %2169, i1 %1697, i1 false
  br i1 %or.cond87, label %2170, label %2212

2170:                                             ; preds = %2165
  %2171 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %2172 = icmp eq i32 %2171, 4
  br i1 %2172, label %2173, label %2177

2173:                                             ; preds = %2170
  %2174 = load i32, ptr %3, align 4, !tbaa !39
  %2175 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_move(ptr noundef nonnull %0, i32 noundef %2174, i32 noundef 537138704, i32 noundef 1, i32 noundef 127, i32 noundef 0, i32 noundef 64, i8 noundef signext %2175, i32 noundef 24, i32 noundef 2, i32 noundef 0, i32 noundef 1) #4
  %2176 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_generator_vcvtneps2bf8_avx512_preppedstack(ptr noundef nonnull %0, i8 noundef signext %2176, i32 noundef 24, i32 noundef 24, i32 noundef 25, i32 noundef 26, i32 noundef 3, i32 noundef 4, i32 noundef 0, i32 noundef 0) #4
  br label %2207

2177:                                             ; preds = %2170
  %2178 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %2179 = icmp eq i32 %2178, 5
  br i1 %2179, label %2180, label %2184

2180:                                             ; preds = %2177
  %2181 = load i32, ptr %3, align 4, !tbaa !39
  %2182 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_move(ptr noundef nonnull %0, i32 noundef %2181, i32 noundef 537138704, i32 noundef 1, i32 noundef 127, i32 noundef 0, i32 noundef 64, i8 noundef signext %2182, i32 noundef 24, i32 noundef 2, i32 noundef 0, i32 noundef 1) #4
  %2183 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_generator_vcvtf32_to_hf8_avx512_preppedstack(ptr noundef nonnull %0, i8 noundef signext %2183, i32 noundef 24, i32 noundef 24, i32 noundef 30, i32 noundef 31, i32 noundef 27, i32 noundef 28, i32 noundef 6, i32 noundef 5, i32 noundef 4) #4
  br label %2207

2184:                                             ; preds = %2177
  %2185 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %2186 = icmp eq i32 %2185, 3
  br i1 %2186, label %2187, label %2195

2187:                                             ; preds = %2184
  %2188 = load i32, ptr %3, align 4, !tbaa !39
  %2189 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_move(ptr noundef nonnull %0, i32 noundef %2188, i32 noundef 537138704, i32 noundef 1, i32 noundef 127, i32 noundef 0, i32 noundef 64, i8 noundef signext %2189, i32 noundef 24, i32 noundef 2, i32 noundef 0, i32 noundef 1) #4
  %2190 = load i8, ptr %10, align 4, !tbaa !9
  %2191 = load i32, ptr %28, align 4, !tbaa !18
  %2192 = icmp ugt i32 %2191, 1100
  %2193 = zext i1 %2192 to i32
  %2194 = zext i1 %2192 to i8
  call void @libxsmm_x86_instruction_vec_compute_2reg_mask_sae_imm8(ptr noundef nonnull %0, i32 noundef 671954205, i8 noundef signext %2190, i32 noundef 24, i32 noundef 24, i32 noundef 0, i32 noundef %2193, i8 noundef zeroext %2194, i32 noundef 0) #4
  br label %2207

2195:                                             ; preds = %2184
  %2196 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %2197 = icmp eq i32 %2196, 2
  br i1 %2197, label %2198, label %2207

2198:                                             ; preds = %2195
  %2199 = load i32, ptr %3, align 4, !tbaa !39
  %2200 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_move(ptr noundef nonnull %0, i32 noundef %2199, i32 noundef 537138704, i32 noundef 1, i32 noundef 127, i32 noundef 0, i32 noundef 64, i8 noundef signext %2200, i32 noundef 24, i32 noundef 2, i32 noundef 0, i32 noundef 1) #4
  %2201 = load i32, ptr %28, align 4, !tbaa !18
  %.fr3029 = freeze i32 %2201
  %2202 = icmp ugt i32 %.fr3029, 1102
  br i1 %2202, label %2205, label %switch.early.test2980

switch.early.test2980:                            ; preds = %2198
  switch i32 %.fr3029, label %2203 [
    i32 1053, label %2205
    i32 1008, label %2205
  ]

2203:                                             ; preds = %switch.early.test2980
  %2204 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_generator_vcvtneps2bf16_avx512_preppedstack(ptr noundef nonnull %0, i8 noundef signext %2204, i32 noundef 24, i32 noundef 24, i32 noundef 25, i32 noundef 26, i32 noundef 3, i32 noundef 4, i32 noundef 0) #4
  br label %2207

2205:                                             ; preds = %switch.early.test2980, %switch.early.test2980, %2198
  %2206 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_2reg(ptr noundef nonnull %0, i32 noundef 537273970, i8 noundef signext %2206, i32 noundef 24, i32 noundef 24) #4
  br label %2207

2207:                                             ; preds = %2180, %2195, %2205, %2203, %2187, %2173
  %2208 = load i32, ptr %3, align 4, !tbaa !39
  %2209 = load i32, ptr %9, align 4, !tbaa !5
  %2210 = load i32, ptr %64, align 4, !tbaa !26
  %2211 = load i8, ptr %7, align 1, !tbaa !11
  call void @libxsmm_x86_instruction_vec_move(ptr noundef nonnull %0, i32 noundef %2208, i32 noundef %2209, i32 noundef %2210, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %2211, i32 noundef 24, i32 noundef 2, i32 noundef 0, i32 noundef 1) #4
  br label %2375

2212:                                             ; preds = %2165
  %or.cond89 = select i1 %2169, i1 %27, i1 false
  br i1 %or.cond89, label %2213, label %2280

2213:                                             ; preds = %2212
  %2214 = load i32, ptr %3, align 4, !tbaa !39
  %2215 = load i32, ptr %9, align 4, !tbaa !5
  %2216 = load i32, ptr %64, align 4, !tbaa !26
  %2217 = load i8, ptr %7, align 1, !tbaa !11
  call void @libxsmm_x86_instruction_vec_move(ptr noundef nonnull %0, i32 noundef %2214, i32 noundef %2215, i32 noundef %2216, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %2217, i32 noundef 25, i32 noundef 2, i32 noundef 1, i32 noundef 0) #4
  %2218 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %2219 = icmp eq i32 %2218, 4
  br i1 %2219, label %2220, label %2222

2220:                                             ; preds = %2213
  %2221 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_generator_cvtbf8ps_avx512(ptr noundef nonnull %0, i8 noundef signext %2221, i32 noundef 25, i32 noundef 25) #4
  br label %2237

2222:                                             ; preds = %2213
  %2223 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %2224 = icmp eq i32 %2223, 5
  br i1 %2224, label %2225, label %2227

2225:                                             ; preds = %2222
  %2226 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_generator_vcvthf8_to_f32_avx512_preppedstack(ptr noundef nonnull %0, i8 noundef signext %2226, i32 noundef 25, i32 noundef 25, i32 noundef 30, i32 noundef 31, i32 noundef 6, i32 noundef 5) #4
  br label %2237

2227:                                             ; preds = %2222
  %2228 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %2229 = icmp eq i32 %2228, 3
  br i1 %2229, label %2230, label %2232

2230:                                             ; preds = %2227
  %2231 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_2reg(ptr noundef nonnull %0, i32 noundef 537208083, i8 noundef signext %2231, i32 noundef 25, i32 noundef 25) #4
  br label %2237

2232:                                             ; preds = %2227
  %2233 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %2234 = icmp eq i32 %2233, 2
  br i1 %2234, label %2235, label %2237

2235:                                             ; preds = %2232
  %2236 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_generator_cvtbf16ps_sse_avx2_avx512(ptr noundef nonnull %0, i8 noundef signext %2236, i32 noundef 25, i32 noundef 25) #4
  br label %2237

2237:                                             ; preds = %2225, %2232, %2235, %2230, %2220
  %2238 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef nonnull %0, i32 noundef %.026703079, i8 noundef signext %2238, i32 noundef 25, i32 noundef 24, i32 noundef 24) #4
  %2239 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %2240 = icmp eq i32 %2239, 4
  br i1 %2240, label %2241, label %2245

2241:                                             ; preds = %2237
  %2242 = load i32, ptr %3, align 4, !tbaa !39
  %2243 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_move(ptr noundef nonnull %0, i32 noundef %2242, i32 noundef 537138704, i32 noundef 1, i32 noundef 127, i32 noundef 0, i32 noundef 64, i8 noundef signext %2243, i32 noundef 24, i32 noundef 2, i32 noundef 0, i32 noundef 1) #4
  %2244 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_generator_vcvtneps2bf8_avx512_preppedstack(ptr noundef nonnull %0, i8 noundef signext %2244, i32 noundef 24, i32 noundef 24, i32 noundef 25, i32 noundef 26, i32 noundef 3, i32 noundef 4, i32 noundef 0, i32 noundef 0) #4
  br label %2275

2245:                                             ; preds = %2237
  %2246 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %2247 = icmp eq i32 %2246, 5
  br i1 %2247, label %2248, label %2252

2248:                                             ; preds = %2245
  %2249 = load i32, ptr %3, align 4, !tbaa !39
  %2250 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_move(ptr noundef nonnull %0, i32 noundef %2249, i32 noundef 537138704, i32 noundef 1, i32 noundef 127, i32 noundef 0, i32 noundef 64, i8 noundef signext %2250, i32 noundef 24, i32 noundef 2, i32 noundef 0, i32 noundef 1) #4
  %2251 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_generator_vcvtf32_to_hf8_avx512_preppedstack(ptr noundef nonnull %0, i8 noundef signext %2251, i32 noundef 24, i32 noundef 24, i32 noundef 30, i32 noundef 31, i32 noundef 27, i32 noundef 28, i32 noundef 6, i32 noundef 5, i32 noundef 4) #4
  br label %2275

2252:                                             ; preds = %2245
  %2253 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %2254 = icmp eq i32 %2253, 3
  br i1 %2254, label %2255, label %2263

2255:                                             ; preds = %2252
  %2256 = load i32, ptr %3, align 4, !tbaa !39
  %2257 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_move(ptr noundef nonnull %0, i32 noundef %2256, i32 noundef 537138704, i32 noundef 1, i32 noundef 127, i32 noundef 0, i32 noundef 64, i8 noundef signext %2257, i32 noundef 24, i32 noundef 2, i32 noundef 0, i32 noundef 1) #4
  %2258 = load i8, ptr %10, align 4, !tbaa !9
  %2259 = load i32, ptr %28, align 4, !tbaa !18
  %2260 = icmp ugt i32 %2259, 1100
  %2261 = zext i1 %2260 to i32
  %2262 = zext i1 %2260 to i8
  call void @libxsmm_x86_instruction_vec_compute_2reg_mask_sae_imm8(ptr noundef nonnull %0, i32 noundef 671954205, i8 noundef signext %2258, i32 noundef 24, i32 noundef 24, i32 noundef 0, i32 noundef %2261, i8 noundef zeroext %2262, i32 noundef 0) #4
  br label %2275

2263:                                             ; preds = %2252
  %2264 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %2265 = icmp eq i32 %2264, 2
  br i1 %2265, label %2266, label %2275

2266:                                             ; preds = %2263
  %2267 = load i32, ptr %3, align 4, !tbaa !39
  %2268 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_move(ptr noundef nonnull %0, i32 noundef %2267, i32 noundef 537138704, i32 noundef 1, i32 noundef 127, i32 noundef 0, i32 noundef 64, i8 noundef signext %2268, i32 noundef 24, i32 noundef 2, i32 noundef 0, i32 noundef 1) #4
  %2269 = load i32, ptr %28, align 4, !tbaa !18
  %.fr3028 = freeze i32 %2269
  %2270 = icmp ugt i32 %.fr3028, 1102
  br i1 %2270, label %2273, label %switch.early.test2981

switch.early.test2981:                            ; preds = %2266
  switch i32 %.fr3028, label %2271 [
    i32 1053, label %2273
    i32 1008, label %2273
  ]

2271:                                             ; preds = %switch.early.test2981
  %2272 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_generator_vcvtneps2bf16_avx512_preppedstack(ptr noundef nonnull %0, i8 noundef signext %2272, i32 noundef 24, i32 noundef 24, i32 noundef 25, i32 noundef 26, i32 noundef 3, i32 noundef 4, i32 noundef 0) #4
  br label %2275

2273:                                             ; preds = %switch.early.test2981, %switch.early.test2981, %2266
  %2274 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_2reg(ptr noundef nonnull %0, i32 noundef 537273970, i8 noundef signext %2274, i32 noundef 24, i32 noundef 24) #4
  br label %2275

2275:                                             ; preds = %2248, %2263, %2273, %2271, %2255, %2241
  %2276 = load i32, ptr %3, align 4, !tbaa !39
  %2277 = load i32, ptr %9, align 4, !tbaa !5
  %2278 = load i32, ptr %64, align 4, !tbaa !26
  %2279 = load i8, ptr %7, align 1, !tbaa !11
  call void @libxsmm_x86_instruction_vec_move(ptr noundef nonnull %0, i32 noundef %2276, i32 noundef %2277, i32 noundef %2278, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %2279, i32 noundef 24, i32 noundef 2, i32 noundef 0, i32 noundef 1) #4
  br label %2375

2280:                                             ; preds = %2212
  %2281 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %2282 = icmp eq i32 %2281, 3
  br i1 %1698, label %2283, label %2336

2283:                                             ; preds = %2280
  br i1 %2282, label %2293, label %2284

2284:                                             ; preds = %2283
  %2285 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %2286 = icmp eq i32 %2285, 2
  br i1 %2286, label %2293, label %2287

2287:                                             ; preds = %2284
  %2288 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %2289 = icmp eq i32 %2288, 5
  br i1 %2289, label %2293, label %2290

2290:                                             ; preds = %2287
  %2291 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %2292 = icmp eq i32 %2291, 4
  br i1 %2292, label %2293, label %2296

2293:                                             ; preds = %2290, %2287, %2284, %2283
  %2294 = load i32, ptr %3, align 4, !tbaa !39
  %2295 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_move(ptr noundef nonnull %0, i32 noundef %2294, i32 noundef 537138704, i32 noundef 1, i32 noundef 127, i32 noundef 0, i32 noundef 64, i8 noundef signext %2295, i32 noundef 25, i32 noundef 2, i32 noundef 1, i32 noundef 0) #4
  br label %2301

2296:                                             ; preds = %2290
  %2297 = load i32, ptr %3, align 4, !tbaa !39
  %2298 = load i32, ptr %9, align 4, !tbaa !5
  %2299 = load i32, ptr %64, align 4, !tbaa !26
  %2300 = load i8, ptr %7, align 1, !tbaa !11
  call void @libxsmm_x86_instruction_vec_move(ptr noundef nonnull %0, i32 noundef %2297, i32 noundef %2298, i32 noundef %2299, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %2300, i32 noundef 25, i32 noundef 2, i32 noundef 1, i32 noundef 0) #4
  br label %2301

2301:                                             ; preds = %2296, %2293
  %2302 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef nonnull %0, i32 noundef %.026703079, i8 noundef signext %2302, i32 noundef 25, i32 noundef 24, i32 noundef 24) #4
  %2303 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %2304 = icmp eq i32 %2303, 4
  br i1 %2304, label %2305, label %2307

2305:                                             ; preds = %2301
  %2306 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_generator_vcvtneps2bf8_avx512_preppedstack(ptr noundef nonnull %0, i8 noundef signext %2306, i32 noundef 24, i32 noundef 24, i32 noundef 25, i32 noundef 26, i32 noundef 3, i32 noundef 4, i32 noundef 0, i32 noundef 0) #4
  br label %2331

2307:                                             ; preds = %2301
  %2308 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %2309 = icmp eq i32 %2308, 5
  br i1 %2309, label %2310, label %2312

2310:                                             ; preds = %2307
  %2311 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_generator_vcvtf32_to_hf8_avx512_preppedstack(ptr noundef nonnull %0, i8 noundef signext %2311, i32 noundef 24, i32 noundef 24, i32 noundef 30, i32 noundef 31, i32 noundef 27, i32 noundef 28, i32 noundef 6, i32 noundef 5, i32 noundef 4) #4
  br label %2331

2312:                                             ; preds = %2307
  %2313 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %2314 = icmp eq i32 %2313, 3
  br i1 %2314, label %2315, label %2321

2315:                                             ; preds = %2312
  %2316 = load i8, ptr %10, align 4, !tbaa !9
  %2317 = load i32, ptr %28, align 4, !tbaa !18
  %2318 = icmp ugt i32 %2317, 1100
  %2319 = zext i1 %2318 to i32
  %2320 = zext i1 %2318 to i8
  call void @libxsmm_x86_instruction_vec_compute_2reg_mask_sae_imm8(ptr noundef nonnull %0, i32 noundef 671954205, i8 noundef signext %2316, i32 noundef 24, i32 noundef 24, i32 noundef 0, i32 noundef %2319, i8 noundef zeroext %2320, i32 noundef 0) #4
  br label %2331

2321:                                             ; preds = %2312
  %2322 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %2323 = icmp eq i32 %2322, 2
  br i1 %2323, label %2324, label %2331

2324:                                             ; preds = %2321
  %2325 = load i32, ptr %28, align 4, !tbaa !18
  %.fr3027 = freeze i32 %2325
  %2326 = icmp ugt i32 %.fr3027, 1102
  br i1 %2326, label %2329, label %switch.early.test2982

switch.early.test2982:                            ; preds = %2324
  switch i32 %.fr3027, label %2327 [
    i32 1053, label %2329
    i32 1008, label %2329
  ]

2327:                                             ; preds = %switch.early.test2982
  %2328 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_generator_vcvtneps2bf16_avx512_preppedstack(ptr noundef nonnull %0, i8 noundef signext %2328, i32 noundef 24, i32 noundef 24, i32 noundef 25, i32 noundef 26, i32 noundef 3, i32 noundef 4, i32 noundef 0) #4
  br label %2331

2329:                                             ; preds = %switch.early.test2982, %switch.early.test2982, %2324
  %2330 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_2reg(ptr noundef nonnull %0, i32 noundef 537273970, i8 noundef signext %2330, i32 noundef 24, i32 noundef 24) #4
  br label %2331

2331:                                             ; preds = %2310, %2321, %2329, %2327, %2315, %2305
  %2332 = load i32, ptr %3, align 4, !tbaa !39
  %2333 = load i32, ptr %9, align 4, !tbaa !5
  %2334 = load i32, ptr %64, align 4, !tbaa !26
  %2335 = load i8, ptr %7, align 1, !tbaa !11
  call void @libxsmm_x86_instruction_vec_move(ptr noundef nonnull %0, i32 noundef %2332, i32 noundef %2333, i32 noundef %2334, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %2335, i32 noundef 24, i32 noundef 2, i32 noundef 0, i32 noundef 1) #4
  br label %2375

2336:                                             ; preds = %2280
  br i1 %2282, label %2346, label %2337

2337:                                             ; preds = %2336
  %2338 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %2339 = icmp eq i32 %2338, 2
  br i1 %2339, label %2346, label %2340

2340:                                             ; preds = %2337
  %2341 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %2342 = icmp eq i32 %2341, 5
  br i1 %2342, label %2346, label %2343

2343:                                             ; preds = %2340
  %2344 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %2345 = icmp eq i32 %2344, 4
  br i1 %2345, label %2346, label %2349

2346:                                             ; preds = %2343, %2340, %2337, %2336
  %2347 = load i32, ptr %3, align 4, !tbaa !39
  %2348 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_move(ptr noundef nonnull %0, i32 noundef %2347, i32 noundef 537138704, i32 noundef 1, i32 noundef 127, i32 noundef 0, i32 noundef 64, i8 noundef signext %2348, i32 noundef 25, i32 noundef 2, i32 noundef 1, i32 noundef 0) #4
  br label %2354

2349:                                             ; preds = %2343
  %2350 = load i32, ptr %3, align 4, !tbaa !39
  %2351 = load i32, ptr %9, align 4, !tbaa !5
  %2352 = load i32, ptr %64, align 4, !tbaa !26
  %2353 = load i8, ptr %7, align 1, !tbaa !11
  call void @libxsmm_x86_instruction_vec_move(ptr noundef nonnull %0, i32 noundef %2350, i32 noundef %2351, i32 noundef %2352, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %2353, i32 noundef 25, i32 noundef 2, i32 noundef 1, i32 noundef 0) #4
  br label %2354

2354:                                             ; preds = %2349, %2346
  %2355 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef nonnull %0, i32 noundef %.026703079, i8 noundef signext %2355, i32 noundef 25, i32 noundef 24, i32 noundef 24) #4
  %2356 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %2357 = icmp eq i32 %2356, 3
  br i1 %2357, label %2367, label %2358

2358:                                             ; preds = %2354
  %2359 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %2360 = icmp eq i32 %2359, 2
  br i1 %2360, label %2367, label %2361

2361:                                             ; preds = %2358
  %2362 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %2363 = icmp eq i32 %2362, 5
  br i1 %2363, label %2367, label %2364

2364:                                             ; preds = %2361
  %2365 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %2366 = icmp eq i32 %2365, 4
  br i1 %2366, label %2367, label %2370

2367:                                             ; preds = %2364, %2361, %2358, %2354
  %2368 = load i32, ptr %3, align 4, !tbaa !39
  %2369 = load i8, ptr %10, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_move(ptr noundef nonnull %0, i32 noundef %2368, i32 noundef 537138704, i32 noundef 1, i32 noundef 127, i32 noundef 0, i32 noundef 64, i8 noundef signext %2369, i32 noundef 24, i32 noundef 2, i32 noundef 0, i32 noundef 1) #4
  br label %2375

2370:                                             ; preds = %2364
  %2371 = load i32, ptr %3, align 4, !tbaa !39
  %2372 = load i32, ptr %9, align 4, !tbaa !5
  %2373 = load i32, ptr %64, align 4, !tbaa !26
  %2374 = load i8, ptr %7, align 1, !tbaa !11
  call void @libxsmm_x86_instruction_vec_move(ptr noundef nonnull %0, i32 noundef %2371, i32 noundef %2372, i32 noundef %2373, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext %2374, i32 noundef 24, i32 noundef 2, i32 noundef 0, i32 noundef 1) #4
  br label %2375

2375:                                             ; preds = %2164, %2275, %2367, %2370, %2331, %2207
  %2376 = add nuw i32 %.43052, 1
  %2377 = icmp ult i32 %2376, %639
  br i1 %2377, label %.preheader3038, label %.loopexit3040, !llvm.loop !46

.loopexit3040:                                    ; preds = %2375, %1629, %1684, %1689
  %2378 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %2379 = icmp eq i32 %2378, 4
  br i1 %2379, label %2380, label %2381

2380:                                             ; preds = %.loopexit3040
  call void @libxsmm_generator_vcvtneps2bf8_avx512_clean_stack(ptr noundef %0, i32 noundef 0) #4
  br label %2395

2381:                                             ; preds = %.loopexit3040
  %2382 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %2383 = icmp eq i32 %2382, 2
  br i1 %2383, label %2384, label %2388

2384:                                             ; preds = %2381
  %2385 = load i32, ptr %28, align 4, !tbaa !18
  %.fr3031 = freeze i32 %2385
  %2386 = icmp ugt i32 %.fr3031, 1102
  br i1 %2386, label %2395, label %switch.early.test2983

switch.early.test2983:                            ; preds = %2384
  switch i32 %.fr3031, label %2387 [
    i32 1053, label %2395
    i32 1008, label %2395
  ]

2387:                                             ; preds = %switch.early.test2983
  call void @libxsmm_generator_vcvtneps2bf16_avx512_clean_stack(ptr noundef nonnull %0, i32 noundef 0) #4
  br label %2395

2388:                                             ; preds = %2381
  %2389 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 0) #4
  %2390 = icmp eq i32 %2389, 5
  br i1 %2390, label %2394, label %2391

2391:                                             ; preds = %2388
  %2392 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %4, i32 noundef 3) #4
  %2393 = icmp eq i32 %2392, 5
  br i1 %2393, label %2394, label %2395

2394:                                             ; preds = %2391, %2388
  call void @libxsmm_generator_vcvt_hf8_tofrom_f32_avx512_clean_stack(ptr noundef %0, i32 noundef 0) #4
  br label %2395

2395:                                             ; preds = %switch.early.test2983, %switch.early.test2983, %2384, %switch.early.test2868, %switch.early.test2868, %616, %2380, %2391, %2394, %2387, %612, %623, %626, %619, %53, %35
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %9) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %8) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %7) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %6) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %5) #4
  ret void
}

declare void @libxsmm_generator_meltw_getval_stack_var(ptr noundef, i32 noundef, i32 noundef) local_unnamed_addr #2

declare void @libxsmm_generator_load_vreg_infinity_double(ptr noundef, i8 noundef zeroext, i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #2

declare void @libxsmm_generator_load_vreg_infinity(ptr noundef, i8 noundef zeroext, i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #2

declare void @libxsmm_generator_hinstrpd_avx_avx512(ptr noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #2

declare void @libxsmm_generator_hinstrps_avx512(ptr noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #2

declare void @libxsmm_generator_hinstrps_avx(ptr noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #2

declare void @libxsmm_x86_instruction_mask_move(ptr noundef, i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #2

declare void @libxsmm_x86_instruction_vec_compute_3reg_mask(ptr noundef, i32 noundef, i8 noundef signext, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #2

declare void @libxsmm_x86_instruction_vec_compute_3reg_imm8(ptr noundef, i32 noundef, i8 noundef signext, i32 noundef, i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #2

attributes #0 = { 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 #1 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { "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 = { nofree nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { nounwind }

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

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


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