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

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

%struct.libxsmm_generated_code = type { ptr, i32, i32, i32, i32, i32, i32 }

; Function Attrs: nounwind uwtable
define dso_local void @libxsmm_generator_maskedstore_16bit_sse(ptr noundef %0, i32 noundef %1, i32 noundef %2, i32 noundef %3, i32 noundef %4, i32 noundef %5, i32 noundef %6, i32 noundef %7, i32 noundef %8) #0 {
  %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
  store ptr %0, ptr %10, align 8, !tbaa !5
  store i32 %1, ptr %11, align 4, !tbaa !9
  store i32 %2, ptr %12, align 4, !tbaa !9
  store i32 %3, ptr %13, align 4, !tbaa !9
  store i32 %4, ptr %14, align 4, !tbaa !9
  store i32 %5, ptr %15, align 4, !tbaa !9
  store i32 %6, ptr %16, align 4, !tbaa !9
  store i32 %7, ptr %17, align 4, !tbaa !9
  store i32 %8, ptr %18, align 4, !tbaa !9
  %19 = load i32, ptr %18, align 4, !tbaa !9
  %20 = icmp eq i32 %19, 7
  br i1 %20, label %36, label %21

21:                                               ; preds = %9
  %22 = load i32, ptr %18, align 4, !tbaa !9
  %23 = icmp eq i32 %22, 6
  br i1 %23, label %36, label %24

24:                                               ; preds = %21
  %25 = load i32, ptr %18, align 4, !tbaa !9
  %26 = icmp eq i32 %25, 5
  br i1 %26, label %36, label %27

27:                                               ; preds = %24
  %28 = load i32, ptr %18, align 4, !tbaa !9
  %29 = icmp eq i32 %28, 3
  br i1 %29, label %36, label %30

30:                                               ; preds = %27
  %31 = load i32, ptr %18, align 4, !tbaa !9
  %32 = icmp eq i32 %31, 2
  br i1 %32, label %36, label %33

33:                                               ; preds = %30
  %34 = load i32, ptr %18, align 4, !tbaa !9
  %35 = icmp eq i32 %34, 1
  br i1 %35, label %36, label %62

36:                                               ; preds = %33, %30, %27, %24, %21, %9
  %37 = load i32, ptr %12, align 4, !tbaa !9
  %38 = icmp ne i32 %37, 0
  br i1 %38, label %39, label %53

39:                                               ; preds = %36
  %40 = load ptr, ptr %10, align 8, !tbaa !5
  %41 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %40, i32 0, i32 6
  %42 = load i32, ptr %41, align 4, !tbaa !11
  %43 = icmp ult i32 %42, 1004
  br i1 %43, label %44, label %48

44:                                               ; preds = %39
  %45 = load ptr, ptr %10, align 8, !tbaa !5
  call void @libxsmm_x86_instruction_alu_imm(ptr noundef %45, i32 noundef 30008, i32 noundef 4, i64 noundef 32)
  %46 = load ptr, ptr %10, align 8, !tbaa !5
  %47 = load i32, ptr %11, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_alu_mem(ptr noundef %46, i32 noundef -1568407413, i32 noundef 4, i32 noundef 127, i32 noundef 0, i32 noundef 16, i32 noundef %47, i32 noundef 1)
  br label %52

48:                                               ; preds = %39
  %49 = load ptr, ptr %10, align 8, !tbaa !5
  call void @libxsmm_x86_instruction_alu_imm(ptr noundef %49, i32 noundef 30008, i32 noundef 4, i64 noundef 16)
  %50 = load ptr, ptr %10, align 8, !tbaa !5
  %51 = load i32, ptr %11, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_alu_mem(ptr noundef %50, i32 noundef -1568407413, i32 noundef 4, i32 noundef 127, i32 noundef 0, i32 noundef 0, i32 noundef %51, i32 noundef 1)
  br label %52

52:                                               ; preds = %48, %44
  br label %61

53:                                               ; preds = %36
  %54 = load ptr, ptr %10, align 8, !tbaa !5
  %55 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %54, i32 0, i32 6
  %56 = load i32, ptr %55, align 4, !tbaa !11
  %57 = icmp ult i32 %56, 1004
  br i1 %57, label %58, label %60

58:                                               ; preds = %53
  %59 = load ptr, ptr %10, align 8, !tbaa !5
  call void @libxsmm_x86_instruction_alu_imm(ptr noundef %59, i32 noundef 30008, i32 noundef 4, i64 noundef 16)
  br label %60

60:                                               ; preds = %58, %53
  br label %61

61:                                               ; preds = %60, %52
  br label %62

62:                                               ; preds = %61, %33
  %63 = load i32, ptr %18, align 4, !tbaa !9
  %64 = icmp eq i32 %63, 8
  br i1 %64, label %65, label %75

65:                                               ; preds = %62
  %66 = load ptr, ptr %10, align 8, !tbaa !5
  %67 = load ptr, ptr %10, align 8, !tbaa !5
  %68 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %67, i32 0, i32 6
  %69 = load i32, ptr %68, align 4, !tbaa !11
  %70 = load i32, ptr %14, align 4, !tbaa !9
  %71 = load i32, ptr %15, align 4, !tbaa !9
  %72 = load i32, ptr %16, align 4, !tbaa !9
  %73 = load i32, ptr %17, align 4, !tbaa !9
  %74 = load i32, ptr %13, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_move(ptr noundef %66, i32 noundef %69, i32 noundef -1610346480, i32 noundef %70, i32 noundef %71, i32 noundef %72, i32 noundef %73, i8 noundef signext 120, i32 noundef %74, i32 noundef 0, i32 noundef 0, i32 noundef 1)
  br label %368

75:                                               ; preds = %62
  %76 = load i32, ptr %18, align 4, !tbaa !9
  %77 = icmp eq i32 %76, 7
  br i1 %77, label %78, label %146

78:                                               ; preds = %75
  %79 = load ptr, ptr %10, align 8, !tbaa !5
  %80 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %79, i32 0, i32 6
  %81 = load i32, ptr %80, align 4, !tbaa !11
  %82 = icmp ult i32 %81, 1004
  br i1 %82, label %83, label %115

83:                                               ; preds = %78
  %84 = load ptr, ptr %10, align 8, !tbaa !5
  %85 = load ptr, ptr %10, align 8, !tbaa !5
  %86 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %85, i32 0, i32 6
  %87 = load i32, ptr %86, align 4, !tbaa !11
  %88 = load i32, ptr %13, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_move(ptr noundef %84, i32 noundef %87, i32 noundef -1610346480, i32 noundef 4, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext 120, i32 noundef %88, i32 noundef 0, i32 noundef 0, i32 noundef 1)
  %89 = load ptr, ptr %10, align 8, !tbaa !5
  %90 = load i32, ptr %11, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_alu_mem(ptr noundef %89, i32 noundef -1568407413, i32 noundef 4, i32 noundef 127, i32 noundef 0, i32 noundef 0, i32 noundef %90, i32 noundef 0)
  %91 = load ptr, ptr %10, align 8, !tbaa !5
  %92 = load i32, ptr %14, align 4, !tbaa !9
  %93 = load i32, ptr %15, align 4, !tbaa !9
  %94 = load i32, ptr %16, align 4, !tbaa !9
  %95 = load i32, ptr %17, align 4, !tbaa !9
  %96 = load i32, ptr %11, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_alu_mem(ptr noundef %91, i32 noundef -1568407413, i32 noundef %92, i32 noundef %93, i32 noundef %94, i32 noundef %95, i32 noundef %96, i32 noundef 1)
  %97 = load ptr, ptr %10, align 8, !tbaa !5
  %98 = load i32, ptr %11, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_alu_mem(ptr noundef %97, i32 noundef -1610350453, i32 noundef 4, i32 noundef 127, i32 noundef 0, i32 noundef 8, i32 noundef %98, i32 noundef 0)
  %99 = load ptr, ptr %10, align 8, !tbaa !5
  %100 = load i32, ptr %14, align 4, !tbaa !9
  %101 = load i32, ptr %15, align 4, !tbaa !9
  %102 = load i32, ptr %16, align 4, !tbaa !9
  %103 = load i32, ptr %17, align 4, !tbaa !9
  %104 = add nsw i32 %103, 8
  %105 = load i32, ptr %11, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_alu_mem(ptr noundef %99, i32 noundef -1610350453, i32 noundef %100, i32 noundef %101, i32 noundef %102, i32 noundef %104, i32 noundef %105, i32 noundef 1)
  %106 = load ptr, ptr %10, align 8, !tbaa !5
  %107 = load i32, ptr %11, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_alu_mem(ptr noundef %106, i32 noundef -1610334069, i32 noundef 4, i32 noundef 127, i32 noundef 0, i32 noundef 12, i32 noundef %107, i32 noundef 0)
  %108 = load ptr, ptr %10, align 8, !tbaa !5
  %109 = load i32, ptr %14, align 4, !tbaa !9
  %110 = load i32, ptr %15, align 4, !tbaa !9
  %111 = load i32, ptr %16, align 4, !tbaa !9
  %112 = load i32, ptr %17, align 4, !tbaa !9
  %113 = add nsw i32 %112, 12
  %114 = load i32, ptr %11, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_alu_mem(ptr noundef %108, i32 noundef -1610334069, i32 noundef %109, i32 noundef %110, i32 noundef %111, i32 noundef %113, i32 noundef %114, i32 noundef 1)
  br label %145

115:                                              ; preds = %78
  %116 = load ptr, ptr %10, align 8, !tbaa !5
  %117 = load ptr, ptr %10, align 8, !tbaa !5
  %118 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %117, i32 0, i32 6
  %119 = load i32, ptr %118, align 4, !tbaa !11
  %120 = load i32, ptr %14, align 4, !tbaa !9
  %121 = load i32, ptr %15, align 4, !tbaa !9
  %122 = load i32, ptr %16, align 4, !tbaa !9
  %123 = load i32, ptr %17, align 4, !tbaa !9
  %124 = load i32, ptr %13, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_move(ptr noundef %116, i32 noundef %119, i32 noundef -1610149872, i32 noundef %120, i32 noundef %121, i32 noundef %122, i32 noundef %123, i8 noundef signext 120, i32 noundef %124, i32 noundef 0, i32 noundef 0, i32 noundef 1)
  %125 = load ptr, ptr %10, align 8, !tbaa !5
  %126 = load i32, ptr %13, align 4, !tbaa !9
  %127 = load i32, ptr %11, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_2reg_imm8(ptr noundef %125, i32 noundef -1475530730, i8 noundef signext 120, i32 noundef %126, i32 noundef %127, i32 noundef 2)
  %128 = load ptr, ptr %10, align 8, !tbaa !5
  %129 = load i32, ptr %14, align 4, !tbaa !9
  %130 = load i32, ptr %15, align 4, !tbaa !9
  %131 = load i32, ptr %16, align 4, !tbaa !9
  %132 = load i32, ptr %17, align 4, !tbaa !9
  %133 = add nsw i32 %132, 8
  %134 = load i32, ptr %11, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_alu_mem(ptr noundef %128, i32 noundef -1610350453, i32 noundef %129, i32 noundef %130, i32 noundef %131, i32 noundef %133, i32 noundef %134, i32 noundef 1)
  %135 = load ptr, ptr %10, align 8, !tbaa !5
  %136 = load i32, ptr %13, align 4, !tbaa !9
  %137 = load i32, ptr %11, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_2reg_imm8(ptr noundef %135, i32 noundef -1609756475, i8 noundef signext 120, i32 noundef %136, i32 noundef %137, i32 noundef 6)
  %138 = load ptr, ptr %10, align 8, !tbaa !5
  %139 = load i32, ptr %14, align 4, !tbaa !9
  %140 = load i32, ptr %15, align 4, !tbaa !9
  %141 = load i32, ptr %16, align 4, !tbaa !9
  %142 = load i32, ptr %17, align 4, !tbaa !9
  %143 = add nsw i32 %142, 12
  %144 = load i32, ptr %11, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_alu_mem(ptr noundef %138, i32 noundef -1610334069, i32 noundef %139, i32 noundef %140, i32 noundef %141, i32 noundef %143, i32 noundef %144, i32 noundef 1)
  br label %145

145:                                              ; preds = %115, %83
  br label %367

146:                                              ; preds = %75
  %147 = load i32, ptr %18, align 4, !tbaa !9
  %148 = icmp eq i32 %147, 6
  br i1 %148, label %149, label %198

149:                                              ; preds = %146
  %150 = load ptr, ptr %10, align 8, !tbaa !5
  %151 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %150, i32 0, i32 6
  %152 = load i32, ptr %151, align 4, !tbaa !11
  %153 = icmp ult i32 %152, 1004
  br i1 %153, label %154, label %177

154:                                              ; preds = %149
  %155 = load ptr, ptr %10, align 8, !tbaa !5
  %156 = load ptr, ptr %10, align 8, !tbaa !5
  %157 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %156, i32 0, i32 6
  %158 = load i32, ptr %157, align 4, !tbaa !11
  %159 = load i32, ptr %13, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_move(ptr noundef %155, i32 noundef %158, i32 noundef -1610346480, i32 noundef 4, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext 120, i32 noundef %159, i32 noundef 0, i32 noundef 0, i32 noundef 1)
  %160 = load ptr, ptr %10, align 8, !tbaa !5
  %161 = load i32, ptr %11, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_alu_mem(ptr noundef %160, i32 noundef -1568407413, i32 noundef 4, i32 noundef 127, i32 noundef 0, i32 noundef 0, i32 noundef %161, i32 noundef 0)
  %162 = load ptr, ptr %10, align 8, !tbaa !5
  %163 = load i32, ptr %14, align 4, !tbaa !9
  %164 = load i32, ptr %15, align 4, !tbaa !9
  %165 = load i32, ptr %16, align 4, !tbaa !9
  %166 = load i32, ptr %17, align 4, !tbaa !9
  %167 = load i32, ptr %11, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_alu_mem(ptr noundef %162, i32 noundef -1568407413, i32 noundef %163, i32 noundef %164, i32 noundef %165, i32 noundef %166, i32 noundef %167, i32 noundef 1)
  %168 = load ptr, ptr %10, align 8, !tbaa !5
  %169 = load i32, ptr %11, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_alu_mem(ptr noundef %168, i32 noundef -1610350453, i32 noundef 4, i32 noundef 127, i32 noundef 0, i32 noundef 8, i32 noundef %169, i32 noundef 0)
  %170 = load ptr, ptr %10, align 8, !tbaa !5
  %171 = load i32, ptr %14, align 4, !tbaa !9
  %172 = load i32, ptr %15, align 4, !tbaa !9
  %173 = load i32, ptr %16, align 4, !tbaa !9
  %174 = load i32, ptr %17, align 4, !tbaa !9
  %175 = add nsw i32 %174, 8
  %176 = load i32, ptr %11, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_alu_mem(ptr noundef %170, i32 noundef -1610350453, i32 noundef %171, i32 noundef %172, i32 noundef %173, i32 noundef %175, i32 noundef %176, i32 noundef 1)
  br label %197

177:                                              ; preds = %149
  %178 = load ptr, ptr %10, align 8, !tbaa !5
  %179 = load ptr, ptr %10, align 8, !tbaa !5
  %180 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %179, i32 0, i32 6
  %181 = load i32, ptr %180, align 4, !tbaa !11
  %182 = load i32, ptr %14, align 4, !tbaa !9
  %183 = load i32, ptr %15, align 4, !tbaa !9
  %184 = load i32, ptr %16, align 4, !tbaa !9
  %185 = load i32, ptr %17, align 4, !tbaa !9
  %186 = load i32, ptr %13, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_move(ptr noundef %178, i32 noundef %181, i32 noundef -1610149872, i32 noundef %182, i32 noundef %183, i32 noundef %184, i32 noundef %185, i8 noundef signext 120, i32 noundef %186, i32 noundef 0, i32 noundef 0, i32 noundef 1)
  %187 = load ptr, ptr %10, align 8, !tbaa !5
  %188 = load i32, ptr %13, align 4, !tbaa !9
  %189 = load i32, ptr %11, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_2reg_imm8(ptr noundef %187, i32 noundef -1475530730, i8 noundef signext 120, i32 noundef %188, i32 noundef %189, i32 noundef 2)
  %190 = load ptr, ptr %10, align 8, !tbaa !5
  %191 = load i32, ptr %14, align 4, !tbaa !9
  %192 = load i32, ptr %15, align 4, !tbaa !9
  %193 = load i32, ptr %16, align 4, !tbaa !9
  %194 = load i32, ptr %17, align 4, !tbaa !9
  %195 = add nsw i32 %194, 8
  %196 = load i32, ptr %11, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_alu_mem(ptr noundef %190, i32 noundef -1610350453, i32 noundef %191, i32 noundef %192, i32 noundef %193, i32 noundef %195, i32 noundef %196, i32 noundef 1)
  br label %197

197:                                              ; preds = %177, %154
  br label %366

198:                                              ; preds = %146
  %199 = load i32, ptr %18, align 4, !tbaa !9
  %200 = icmp eq i32 %199, 5
  br i1 %200, label %201, label %250

201:                                              ; preds = %198
  %202 = load ptr, ptr %10, align 8, !tbaa !5
  %203 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %202, i32 0, i32 6
  %204 = load i32, ptr %203, align 4, !tbaa !11
  %205 = icmp ult i32 %204, 1004
  br i1 %205, label %206, label %229

206:                                              ; preds = %201
  %207 = load ptr, ptr %10, align 8, !tbaa !5
  %208 = load ptr, ptr %10, align 8, !tbaa !5
  %209 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %208, i32 0, i32 6
  %210 = load i32, ptr %209, align 4, !tbaa !11
  %211 = load i32, ptr %13, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_move(ptr noundef %207, i32 noundef %210, i32 noundef -1610346480, i32 noundef 4, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext 120, i32 noundef %211, i32 noundef 0, i32 noundef 0, i32 noundef 1)
  %212 = load ptr, ptr %10, align 8, !tbaa !5
  %213 = load i32, ptr %11, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_alu_mem(ptr noundef %212, i32 noundef -1568407413, i32 noundef 4, i32 noundef 127, i32 noundef 0, i32 noundef 0, i32 noundef %213, i32 noundef 0)
  %214 = load ptr, ptr %10, align 8, !tbaa !5
  %215 = load i32, ptr %14, align 4, !tbaa !9
  %216 = load i32, ptr %15, align 4, !tbaa !9
  %217 = load i32, ptr %16, align 4, !tbaa !9
  %218 = load i32, ptr %17, align 4, !tbaa !9
  %219 = load i32, ptr %11, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_alu_mem(ptr noundef %214, i32 noundef -1568407413, i32 noundef %215, i32 noundef %216, i32 noundef %217, i32 noundef %218, i32 noundef %219, i32 noundef 1)
  %220 = load ptr, ptr %10, align 8, !tbaa !5
  %221 = load i32, ptr %11, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_alu_mem(ptr noundef %220, i32 noundef -1610334069, i32 noundef 4, i32 noundef 127, i32 noundef 0, i32 noundef 8, i32 noundef %221, i32 noundef 0)
  %222 = load ptr, ptr %10, align 8, !tbaa !5
  %223 = load i32, ptr %14, align 4, !tbaa !9
  %224 = load i32, ptr %15, align 4, !tbaa !9
  %225 = load i32, ptr %16, align 4, !tbaa !9
  %226 = load i32, ptr %17, align 4, !tbaa !9
  %227 = add nsw i32 %226, 8
  %228 = load i32, ptr %11, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_alu_mem(ptr noundef %222, i32 noundef -1610334069, i32 noundef %223, i32 noundef %224, i32 noundef %225, i32 noundef %227, i32 noundef %228, i32 noundef 1)
  br label %249

229:                                              ; preds = %201
  %230 = load ptr, ptr %10, align 8, !tbaa !5
  %231 = load ptr, ptr %10, align 8, !tbaa !5
  %232 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %231, i32 0, i32 6
  %233 = load i32, ptr %232, align 4, !tbaa !11
  %234 = load i32, ptr %14, align 4, !tbaa !9
  %235 = load i32, ptr %15, align 4, !tbaa !9
  %236 = load i32, ptr %16, align 4, !tbaa !9
  %237 = load i32, ptr %17, align 4, !tbaa !9
  %238 = load i32, ptr %13, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_move(ptr noundef %230, i32 noundef %233, i32 noundef -1610149872, i32 noundef %234, i32 noundef %235, i32 noundef %236, i32 noundef %237, i8 noundef signext 120, i32 noundef %238, i32 noundef 0, i32 noundef 0, i32 noundef 1)
  %239 = load ptr, ptr %10, align 8, !tbaa !5
  %240 = load i32, ptr %13, align 4, !tbaa !9
  %241 = load i32, ptr %11, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_2reg_imm8(ptr noundef %239, i32 noundef -1609756475, i8 noundef signext 120, i32 noundef %240, i32 noundef %241, i32 noundef 4)
  %242 = load ptr, ptr %10, align 8, !tbaa !5
  %243 = load i32, ptr %14, align 4, !tbaa !9
  %244 = load i32, ptr %15, align 4, !tbaa !9
  %245 = load i32, ptr %16, align 4, !tbaa !9
  %246 = load i32, ptr %17, align 4, !tbaa !9
  %247 = add nsw i32 %246, 8
  %248 = load i32, ptr %11, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_alu_mem(ptr noundef %242, i32 noundef -1610334069, i32 noundef %243, i32 noundef %244, i32 noundef %245, i32 noundef %247, i32 noundef %248, i32 noundef 1)
  br label %249

249:                                              ; preds = %229, %206
  br label %365

250:                                              ; preds = %198
  %251 = load i32, ptr %18, align 4, !tbaa !9
  %252 = icmp eq i32 %251, 4
  br i1 %252, label %253, label %263

253:                                              ; preds = %250
  %254 = load ptr, ptr %10, align 8, !tbaa !5
  %255 = load ptr, ptr %10, align 8, !tbaa !5
  %256 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %255, i32 0, i32 6
  %257 = load i32, ptr %256, align 4, !tbaa !11
  %258 = load i32, ptr %14, align 4, !tbaa !9
  %259 = load i32, ptr %15, align 4, !tbaa !9
  %260 = load i32, ptr %16, align 4, !tbaa !9
  %261 = load i32, ptr %17, align 4, !tbaa !9
  %262 = load i32, ptr %13, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_move(ptr noundef %254, i32 noundef %257, i32 noundef -1610149872, i32 noundef %258, i32 noundef %259, i32 noundef %260, i32 noundef %261, i8 noundef signext 120, i32 noundef %262, i32 noundef 0, i32 noundef 0, i32 noundef 1)
  br label %364

263:                                              ; preds = %250
  %264 = load i32, ptr %18, align 4, !tbaa !9
  %265 = icmp eq i32 %264, 3
  br i1 %265, label %266, label %315

266:                                              ; preds = %263
  %267 = load ptr, ptr %10, align 8, !tbaa !5
  %268 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %267, i32 0, i32 6
  %269 = load i32, ptr %268, align 4, !tbaa !11
  %270 = icmp ult i32 %269, 1004
  br i1 %270, label %271, label %294

271:                                              ; preds = %266
  %272 = load ptr, ptr %10, align 8, !tbaa !5
  %273 = load ptr, ptr %10, align 8, !tbaa !5
  %274 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %273, i32 0, i32 6
  %275 = load i32, ptr %274, align 4, !tbaa !11
  %276 = load i32, ptr %13, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_move(ptr noundef %272, i32 noundef %275, i32 noundef -1610346480, i32 noundef 4, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext 120, i32 noundef %276, i32 noundef 0, i32 noundef 0, i32 noundef 1)
  %277 = load ptr, ptr %10, align 8, !tbaa !5
  %278 = load i32, ptr %11, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_alu_mem(ptr noundef %277, i32 noundef -1610350453, i32 noundef 4, i32 noundef 127, i32 noundef 0, i32 noundef 0, i32 noundef %278, i32 noundef 0)
  %279 = load ptr, ptr %10, align 8, !tbaa !5
  %280 = load i32, ptr %14, align 4, !tbaa !9
  %281 = load i32, ptr %15, align 4, !tbaa !9
  %282 = load i32, ptr %16, align 4, !tbaa !9
  %283 = load i32, ptr %17, align 4, !tbaa !9
  %284 = load i32, ptr %11, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_alu_mem(ptr noundef %279, i32 noundef -1610350453, i32 noundef %280, i32 noundef %281, i32 noundef %282, i32 noundef %283, i32 noundef %284, i32 noundef 1)
  %285 = load ptr, ptr %10, align 8, !tbaa !5
  %286 = load i32, ptr %11, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_alu_mem(ptr noundef %285, i32 noundef -1610334069, i32 noundef 4, i32 noundef 127, i32 noundef 0, i32 noundef 4, i32 noundef %286, i32 noundef 0)
  %287 = load ptr, ptr %10, align 8, !tbaa !5
  %288 = load i32, ptr %14, align 4, !tbaa !9
  %289 = load i32, ptr %15, align 4, !tbaa !9
  %290 = load i32, ptr %16, align 4, !tbaa !9
  %291 = load i32, ptr %17, align 4, !tbaa !9
  %292 = add nsw i32 %291, 4
  %293 = load i32, ptr %11, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_alu_mem(ptr noundef %287, i32 noundef -1610334069, i32 noundef %288, i32 noundef %289, i32 noundef %290, i32 noundef %292, i32 noundef %293, i32 noundef 1)
  br label %314

294:                                              ; preds = %266
  %295 = load ptr, ptr %10, align 8, !tbaa !5
  %296 = load ptr, ptr %10, align 8, !tbaa !5
  %297 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %296, i32 0, i32 6
  %298 = load i32, ptr %297, align 4, !tbaa !11
  %299 = load i32, ptr %14, align 4, !tbaa !9
  %300 = load i32, ptr %15, align 4, !tbaa !9
  %301 = load i32, ptr %16, align 4, !tbaa !9
  %302 = load i32, ptr %17, align 4, !tbaa !9
  %303 = load i32, ptr %13, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_move(ptr noundef %295, i32 noundef %298, i32 noundef -1610215408, i32 noundef %299, i32 noundef %300, i32 noundef %301, i32 noundef %302, i8 noundef signext 120, i32 noundef %303, i32 noundef 0, i32 noundef 0, i32 noundef 1)
  %304 = load ptr, ptr %10, align 8, !tbaa !5
  %305 = load i32, ptr %13, align 4, !tbaa !9
  %306 = load i32, ptr %11, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_2reg_imm8(ptr noundef %304, i32 noundef -1609756475, i8 noundef signext 120, i32 noundef %305, i32 noundef %306, i32 noundef 2)
  %307 = load ptr, ptr %10, align 8, !tbaa !5
  %308 = load i32, ptr %14, align 4, !tbaa !9
  %309 = load i32, ptr %15, align 4, !tbaa !9
  %310 = load i32, ptr %16, align 4, !tbaa !9
  %311 = load i32, ptr %17, align 4, !tbaa !9
  %312 = add nsw i32 %311, 4
  %313 = load i32, ptr %11, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_alu_mem(ptr noundef %307, i32 noundef -1610334069, i32 noundef %308, i32 noundef %309, i32 noundef %310, i32 noundef %312, i32 noundef %313, i32 noundef 1)
  br label %314

314:                                              ; preds = %294, %271
  br label %363

315:                                              ; preds = %263
  %316 = load i32, ptr %18, align 4, !tbaa !9
  %317 = icmp eq i32 %316, 2
  br i1 %317, label %318, label %328

318:                                              ; preds = %315
  %319 = load ptr, ptr %10, align 8, !tbaa !5
  %320 = load ptr, ptr %10, align 8, !tbaa !5
  %321 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %320, i32 0, i32 6
  %322 = load i32, ptr %321, align 4, !tbaa !11
  %323 = load i32, ptr %14, align 4, !tbaa !9
  %324 = load i32, ptr %15, align 4, !tbaa !9
  %325 = load i32, ptr %16, align 4, !tbaa !9
  %326 = load i32, ptr %17, align 4, !tbaa !9
  %327 = load i32, ptr %13, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_move(ptr noundef %319, i32 noundef %322, i32 noundef -1610215408, i32 noundef %323, i32 noundef %324, i32 noundef %325, i32 noundef %326, i8 noundef signext 120, i32 noundef %327, i32 noundef 0, i32 noundef 0, i32 noundef 1)
  br label %362

328:                                              ; preds = %315
  %329 = load i32, ptr %18, align 4, !tbaa !9
  %330 = icmp eq i32 %329, 1
  br i1 %330, label %331, label %361

331:                                              ; preds = %328
  %332 = load ptr, ptr %10, align 8, !tbaa !5
  %333 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %332, i32 0, i32 6
  %334 = load i32, ptr %333, align 4, !tbaa !11
  %335 = icmp ult i32 %334, 1004
  br i1 %335, label %336, label %350

336:                                              ; preds = %331
  %337 = load ptr, ptr %10, align 8, !tbaa !5
  %338 = load ptr, ptr %10, align 8, !tbaa !5
  %339 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %338, i32 0, i32 6
  %340 = load i32, ptr %339, align 4, !tbaa !11
  %341 = load i32, ptr %13, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_move(ptr noundef %337, i32 noundef %340, i32 noundef -1610346480, i32 noundef 4, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext 120, i32 noundef %341, i32 noundef 0, i32 noundef 0, i32 noundef 1)
  %342 = load ptr, ptr %10, align 8, !tbaa !5
  %343 = load i32, ptr %11, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_alu_mem(ptr noundef %342, i32 noundef -1610334069, i32 noundef 4, i32 noundef 127, i32 noundef 0, i32 noundef 0, i32 noundef %343, i32 noundef 0)
  %344 = load ptr, ptr %10, align 8, !tbaa !5
  %345 = load i32, ptr %14, align 4, !tbaa !9
  %346 = load i32, ptr %15, align 4, !tbaa !9
  %347 = load i32, ptr %16, align 4, !tbaa !9
  %348 = load i32, ptr %17, align 4, !tbaa !9
  %349 = load i32, ptr %11, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_alu_mem(ptr noundef %344, i32 noundef -1610334069, i32 noundef %345, i32 noundef %346, i32 noundef %347, i32 noundef %348, i32 noundef %349, i32 noundef 1)
  br label %360

350:                                              ; preds = %331
  %351 = load ptr, ptr %10, align 8, !tbaa !5
  %352 = load i32, ptr %13, align 4, !tbaa !9
  %353 = load i32, ptr %11, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_2reg_imm8(ptr noundef %351, i32 noundef -1609756475, i8 noundef signext 120, i32 noundef %352, i32 noundef %353, i32 noundef 0)
  %354 = load ptr, ptr %10, align 8, !tbaa !5
  %355 = load i32, ptr %14, align 4, !tbaa !9
  %356 = load i32, ptr %15, align 4, !tbaa !9
  %357 = load i32, ptr %16, align 4, !tbaa !9
  %358 = load i32, ptr %17, align 4, !tbaa !9
  %359 = load i32, ptr %11, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_alu_mem(ptr noundef %354, i32 noundef -1610334069, i32 noundef %355, i32 noundef %356, i32 noundef %357, i32 noundef %358, i32 noundef %359, i32 noundef 1)
  br label %360

360:                                              ; preds = %350, %336
  br label %361

361:                                              ; preds = %360, %328
  br label %362

362:                                              ; preds = %361, %318
  br label %363

363:                                              ; preds = %362, %314
  br label %364

364:                                              ; preds = %363, %253
  br label %365

365:                                              ; preds = %364, %249
  br label %366

366:                                              ; preds = %365, %197
  br label %367

367:                                              ; preds = %366, %145
  br label %368

368:                                              ; preds = %367, %65
  %369 = load i32, ptr %18, align 4, !tbaa !9
  %370 = icmp eq i32 %369, 7
  br i1 %370, label %386, label %371

371:                                              ; preds = %368
  %372 = load i32, ptr %18, align 4, !tbaa !9
  %373 = icmp eq i32 %372, 6
  br i1 %373, label %386, label %374

374:                                              ; preds = %371
  %375 = load i32, ptr %18, align 4, !tbaa !9
  %376 = icmp eq i32 %375, 5
  br i1 %376, label %386, label %377

377:                                              ; preds = %374
  %378 = load i32, ptr %18, align 4, !tbaa !9
  %379 = icmp eq i32 %378, 3
  br i1 %379, label %386, label %380

380:                                              ; preds = %377
  %381 = load i32, ptr %18, align 4, !tbaa !9
  %382 = icmp eq i32 %381, 2
  br i1 %382, label %386, label %383

383:                                              ; preds = %380
  %384 = load i32, ptr %18, align 4, !tbaa !9
  %385 = icmp eq i32 %384, 1
  br i1 %385, label %386, label %412

386:                                              ; preds = %383, %380, %377, %374, %371, %368
  %387 = load i32, ptr %12, align 4, !tbaa !9
  %388 = icmp ne i32 %387, 0
  br i1 %388, label %389, label %403

389:                                              ; preds = %386
  %390 = load ptr, ptr %10, align 8, !tbaa !5
  %391 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %390, i32 0, i32 6
  %392 = load i32, ptr %391, align 4, !tbaa !11
  %393 = icmp ult i32 %392, 1004
  br i1 %393, label %394, label %398

394:                                              ; preds = %389
  %395 = load ptr, ptr %10, align 8, !tbaa !5
  %396 = load i32, ptr %11, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_alu_mem(ptr noundef %395, i32 noundef -1568407413, i32 noundef 4, i32 noundef 127, i32 noundef 0, i32 noundef 16, i32 noundef %396, i32 noundef 0)
  %397 = load ptr, ptr %10, align 8, !tbaa !5
  call void @libxsmm_x86_instruction_alu_imm(ptr noundef %397, i32 noundef 30000, i32 noundef 4, i64 noundef 32)
  br label %402

398:                                              ; preds = %389
  %399 = load ptr, ptr %10, align 8, !tbaa !5
  %400 = load i32, ptr %11, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_alu_mem(ptr noundef %399, i32 noundef -1568407413, i32 noundef 4, i32 noundef 127, i32 noundef 0, i32 noundef 0, i32 noundef %400, i32 noundef 0)
  %401 = load ptr, ptr %10, align 8, !tbaa !5
  call void @libxsmm_x86_instruction_alu_imm(ptr noundef %401, i32 noundef 30000, i32 noundef 4, i64 noundef 16)
  br label %402

402:                                              ; preds = %398, %394
  br label %411

403:                                              ; preds = %386
  %404 = load ptr, ptr %10, align 8, !tbaa !5
  %405 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %404, i32 0, i32 6
  %406 = load i32, ptr %405, align 4, !tbaa !11
  %407 = icmp ult i32 %406, 1004
  br i1 %407, label %408, label %410

408:                                              ; preds = %403
  %409 = load ptr, ptr %10, align 8, !tbaa !5
  call void @libxsmm_x86_instruction_alu_imm(ptr noundef %409, i32 noundef 30000, i32 noundef 4, i64 noundef 16)
  br label %410

410:                                              ; preds = %408, %403
  br label %411

411:                                              ; preds = %410, %402
  br label %412

412:                                              ; preds = %411, %383
  ret void
}

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

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

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

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

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 = { "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" }

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"int", !7, i64 0}
!11 = !{!12, !10, i64 28}
!12 = !{!"libxsmm_generated_code", !6, i64 0, !10, i64 8, !10, i64 12, !10, i64 16, !10, i64 20, !10, i64 24, !10, i64 28}


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

; Function Attrs: nounwind uwtable
define dso_local void @libxsmm_generator_maskedstore_16bit_sse(ptr noundef %0, i32 noundef %1, i32 noundef %2, i32 noundef %3, i32 noundef %4, i32 noundef %5, i32 noundef %6, i32 noundef %7, i32 noundef %8) local_unnamed_addr #0 {
  switch i32 %8, label %78 [
    i32 7, label %10
    i32 6, label %10
    i32 5, label %10
    i32 3, label %10
    i32 2, label %10
    i32 1, label %10
    i32 8, label %20
    i32 4, label %49
  ]

10:                                               ; preds = %9, %9, %9, %9, %9, %9
  %.not = icmp eq i32 %2, 0
  %11 = getelementptr inbounds i8, ptr %0, i64 28
  %12 = load i32, ptr %11, align 4, !tbaa !5
  %13 = icmp ult i32 %12, 1004
  br i1 %.not, label %17, label %14

14:                                               ; preds = %10
  br i1 %13, label %15, label %16

15:                                               ; preds = %14
  tail call void @libxsmm_x86_instruction_alu_imm(ptr noundef nonnull %0, i32 noundef 30008, i32 noundef 4, i64 noundef 32) #2
  tail call void @libxsmm_x86_instruction_alu_mem(ptr noundef nonnull %0, i32 noundef -1568407413, i32 noundef 4, i32 noundef 127, i32 noundef 0, i32 noundef 16, i32 noundef %1, i32 noundef 1) #2
  br label %19

16:                                               ; preds = %14
  tail call void @libxsmm_x86_instruction_alu_imm(ptr noundef nonnull %0, i32 noundef 30008, i32 noundef 4, i64 noundef 16) #2
  tail call void @libxsmm_x86_instruction_alu_mem(ptr noundef nonnull %0, i32 noundef -1568407413, i32 noundef 4, i32 noundef 127, i32 noundef 0, i32 noundef 0, i32 noundef %1, i32 noundef 1) #2
  br label %19

17:                                               ; preds = %10
  br i1 %13, label %18, label %19

18:                                               ; preds = %17
  tail call void @libxsmm_x86_instruction_alu_imm(ptr noundef nonnull %0, i32 noundef 30008, i32 noundef 4, i64 noundef 16) #2
  br label %19

19:                                               ; preds = %16, %15, %18, %17
  switch i32 %8, label %default.unreachable [
    i32 1, label %63
    i32 7, label %23
    i32 6, label %33
    i32 5, label %41
    i32 4, label %49
    i32 3, label %52
    i32 2, label %60
  ]

20:                                               ; preds = %9
  %21 = getelementptr inbounds i8, ptr %0, i64 28
  %22 = load i32, ptr %21, align 4, !tbaa !5
  tail call void @libxsmm_x86_instruction_vec_move(ptr noundef %0, i32 noundef %22, i32 noundef -1610346480, i32 noundef %4, i32 noundef %5, i32 noundef %6, i32 noundef %7, i8 noundef signext 120, i32 noundef %3, i32 noundef 0, i32 noundef 0, i32 noundef 1) #2
  br label %78

23:                                               ; preds = %19
  %24 = getelementptr inbounds i8, ptr %0, i64 28
  %25 = load i32, ptr %24, align 4, !tbaa !5
  %26 = icmp ult i32 %25, 1004
  br i1 %26, label %27, label %30

27:                                               ; preds = %23
  tail call void @libxsmm_x86_instruction_vec_move(ptr noundef nonnull %0, i32 noundef %25, i32 noundef -1610346480, i32 noundef 4, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext 120, i32 noundef %3, i32 noundef 0, i32 noundef 0, i32 noundef 1) #2
  tail call void @libxsmm_x86_instruction_alu_mem(ptr noundef nonnull %0, i32 noundef -1568407413, i32 noundef 4, i32 noundef 127, i32 noundef 0, i32 noundef 0, i32 noundef %1, i32 noundef 0) #2
  tail call void @libxsmm_x86_instruction_alu_mem(ptr noundef nonnull %0, i32 noundef -1568407413, i32 noundef %4, i32 noundef %5, i32 noundef %6, i32 noundef %7, i32 noundef %1, i32 noundef 1) #2
  tail call void @libxsmm_x86_instruction_alu_mem(ptr noundef nonnull %0, i32 noundef -1610350453, i32 noundef 4, i32 noundef 127, i32 noundef 0, i32 noundef 8, i32 noundef %1, i32 noundef 0) #2
  %28 = add nsw i32 %7, 8
  tail call void @libxsmm_x86_instruction_alu_mem(ptr noundef nonnull %0, i32 noundef -1610350453, i32 noundef %4, i32 noundef %5, i32 noundef %6, i32 noundef %28, i32 noundef %1, i32 noundef 1) #2
  tail call void @libxsmm_x86_instruction_alu_mem(ptr noundef nonnull %0, i32 noundef -1610334069, i32 noundef 4, i32 noundef 127, i32 noundef 0, i32 noundef 12, i32 noundef %1, i32 noundef 0) #2
  %29 = add nsw i32 %7, 12
  tail call void @libxsmm_x86_instruction_alu_mem(ptr noundef nonnull %0, i32 noundef -1610334069, i32 noundef %4, i32 noundef %5, i32 noundef %6, i32 noundef %29, i32 noundef %1, i32 noundef 1) #2
  br label %69

30:                                               ; preds = %23
  tail call void @libxsmm_x86_instruction_vec_move(ptr noundef nonnull %0, i32 noundef %25, i32 noundef -1610149872, i32 noundef %4, i32 noundef %5, i32 noundef %6, i32 noundef %7, i8 noundef signext 120, i32 noundef %3, i32 noundef 0, i32 noundef 0, i32 noundef 1) #2
  tail call void @libxsmm_x86_instruction_vec_compute_2reg_imm8(ptr noundef nonnull %0, i32 noundef -1475530730, i8 noundef signext 120, i32 noundef %3, i32 noundef %1, i32 noundef 2) #2
  %31 = add nsw i32 %7, 8
  tail call void @libxsmm_x86_instruction_alu_mem(ptr noundef nonnull %0, i32 noundef -1610350453, i32 noundef %4, i32 noundef %5, i32 noundef %6, i32 noundef %31, i32 noundef %1, i32 noundef 1) #2
  tail call void @libxsmm_x86_instruction_vec_compute_2reg_imm8(ptr noundef nonnull %0, i32 noundef -1609756475, i8 noundef signext 120, i32 noundef %3, i32 noundef %1, i32 noundef 6) #2
  %32 = add nsw i32 %7, 12
  tail call void @libxsmm_x86_instruction_alu_mem(ptr noundef nonnull %0, i32 noundef -1610334069, i32 noundef %4, i32 noundef %5, i32 noundef %6, i32 noundef %32, i32 noundef %1, i32 noundef 1) #2
  br label %69

33:                                               ; preds = %19
  %34 = getelementptr inbounds i8, ptr %0, i64 28
  %35 = load i32, ptr %34, align 4, !tbaa !5
  %36 = icmp ult i32 %35, 1004
  br i1 %36, label %37, label %39

37:                                               ; preds = %33
  tail call void @libxsmm_x86_instruction_vec_move(ptr noundef nonnull %0, i32 noundef %35, i32 noundef -1610346480, i32 noundef 4, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext 120, i32 noundef %3, i32 noundef 0, i32 noundef 0, i32 noundef 1) #2
  tail call void @libxsmm_x86_instruction_alu_mem(ptr noundef nonnull %0, i32 noundef -1568407413, i32 noundef 4, i32 noundef 127, i32 noundef 0, i32 noundef 0, i32 noundef %1, i32 noundef 0) #2
  tail call void @libxsmm_x86_instruction_alu_mem(ptr noundef nonnull %0, i32 noundef -1568407413, i32 noundef %4, i32 noundef %5, i32 noundef %6, i32 noundef %7, i32 noundef %1, i32 noundef 1) #2
  tail call void @libxsmm_x86_instruction_alu_mem(ptr noundef nonnull %0, i32 noundef -1610350453, i32 noundef 4, i32 noundef 127, i32 noundef 0, i32 noundef 8, i32 noundef %1, i32 noundef 0) #2
  %38 = add nsw i32 %7, 8
  tail call void @libxsmm_x86_instruction_alu_mem(ptr noundef nonnull %0, i32 noundef -1610350453, i32 noundef %4, i32 noundef %5, i32 noundef %6, i32 noundef %38, i32 noundef %1, i32 noundef 1) #2
  br label %69

39:                                               ; preds = %33
  tail call void @libxsmm_x86_instruction_vec_move(ptr noundef nonnull %0, i32 noundef %35, i32 noundef -1610149872, i32 noundef %4, i32 noundef %5, i32 noundef %6, i32 noundef %7, i8 noundef signext 120, i32 noundef %3, i32 noundef 0, i32 noundef 0, i32 noundef 1) #2
  tail call void @libxsmm_x86_instruction_vec_compute_2reg_imm8(ptr noundef nonnull %0, i32 noundef -1475530730, i8 noundef signext 120, i32 noundef %3, i32 noundef %1, i32 noundef 2) #2
  %40 = add nsw i32 %7, 8
  tail call void @libxsmm_x86_instruction_alu_mem(ptr noundef nonnull %0, i32 noundef -1610350453, i32 noundef %4, i32 noundef %5, i32 noundef %6, i32 noundef %40, i32 noundef %1, i32 noundef 1) #2
  br label %69

41:                                               ; preds = %19
  %42 = getelementptr inbounds i8, ptr %0, i64 28
  %43 = load i32, ptr %42, align 4, !tbaa !5
  %44 = icmp ult i32 %43, 1004
  br i1 %44, label %45, label %47

45:                                               ; preds = %41
  tail call void @libxsmm_x86_instruction_vec_move(ptr noundef nonnull %0, i32 noundef %43, i32 noundef -1610346480, i32 noundef 4, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext 120, i32 noundef %3, i32 noundef 0, i32 noundef 0, i32 noundef 1) #2
  tail call void @libxsmm_x86_instruction_alu_mem(ptr noundef nonnull %0, i32 noundef -1568407413, i32 noundef 4, i32 noundef 127, i32 noundef 0, i32 noundef 0, i32 noundef %1, i32 noundef 0) #2
  tail call void @libxsmm_x86_instruction_alu_mem(ptr noundef nonnull %0, i32 noundef -1568407413, i32 noundef %4, i32 noundef %5, i32 noundef %6, i32 noundef %7, i32 noundef %1, i32 noundef 1) #2
  tail call void @libxsmm_x86_instruction_alu_mem(ptr noundef nonnull %0, i32 noundef -1610334069, i32 noundef 4, i32 noundef 127, i32 noundef 0, i32 noundef 8, i32 noundef %1, i32 noundef 0) #2
  %46 = add nsw i32 %7, 8
  tail call void @libxsmm_x86_instruction_alu_mem(ptr noundef nonnull %0, i32 noundef -1610334069, i32 noundef %4, i32 noundef %5, i32 noundef %6, i32 noundef %46, i32 noundef %1, i32 noundef 1) #2
  br label %69

47:                                               ; preds = %41
  tail call void @libxsmm_x86_instruction_vec_move(ptr noundef nonnull %0, i32 noundef %43, i32 noundef -1610149872, i32 noundef %4, i32 noundef %5, i32 noundef %6, i32 noundef %7, i8 noundef signext 120, i32 noundef %3, i32 noundef 0, i32 noundef 0, i32 noundef 1) #2
  tail call void @libxsmm_x86_instruction_vec_compute_2reg_imm8(ptr noundef nonnull %0, i32 noundef -1609756475, i8 noundef signext 120, i32 noundef %3, i32 noundef %1, i32 noundef 4) #2
  %48 = add nsw i32 %7, 8
  tail call void @libxsmm_x86_instruction_alu_mem(ptr noundef nonnull %0, i32 noundef -1610334069, i32 noundef %4, i32 noundef %5, i32 noundef %6, i32 noundef %48, i32 noundef %1, i32 noundef 1) #2
  br label %69

49:                                               ; preds = %9, %19
  %50 = getelementptr inbounds i8, ptr %0, i64 28
  %51 = load i32, ptr %50, align 4, !tbaa !5
  tail call void @libxsmm_x86_instruction_vec_move(ptr noundef %0, i32 noundef %51, i32 noundef -1610149872, i32 noundef %4, i32 noundef %5, i32 noundef %6, i32 noundef %7, i8 noundef signext 120, i32 noundef %3, i32 noundef 0, i32 noundef 0, i32 noundef 1) #2
  br label %78

52:                                               ; preds = %19
  %53 = getelementptr inbounds i8, ptr %0, i64 28
  %54 = load i32, ptr %53, align 4, !tbaa !5
  %55 = icmp ult i32 %54, 1004
  br i1 %55, label %56, label %58

56:                                               ; preds = %52
  tail call void @libxsmm_x86_instruction_vec_move(ptr noundef nonnull %0, i32 noundef %54, i32 noundef -1610346480, i32 noundef 4, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext 120, i32 noundef %3, i32 noundef 0, i32 noundef 0, i32 noundef 1) #2
  tail call void @libxsmm_x86_instruction_alu_mem(ptr noundef nonnull %0, i32 noundef -1610350453, i32 noundef 4, i32 noundef 127, i32 noundef 0, i32 noundef 0, i32 noundef %1, i32 noundef 0) #2
  tail call void @libxsmm_x86_instruction_alu_mem(ptr noundef nonnull %0, i32 noundef -1610350453, i32 noundef %4, i32 noundef %5, i32 noundef %6, i32 noundef %7, i32 noundef %1, i32 noundef 1) #2
  tail call void @libxsmm_x86_instruction_alu_mem(ptr noundef nonnull %0, i32 noundef -1610334069, i32 noundef 4, i32 noundef 127, i32 noundef 0, i32 noundef 4, i32 noundef %1, i32 noundef 0) #2
  %57 = add nsw i32 %7, 4
  tail call void @libxsmm_x86_instruction_alu_mem(ptr noundef nonnull %0, i32 noundef -1610334069, i32 noundef %4, i32 noundef %5, i32 noundef %6, i32 noundef %57, i32 noundef %1, i32 noundef 1) #2
  br label %69

58:                                               ; preds = %52
  tail call void @libxsmm_x86_instruction_vec_move(ptr noundef nonnull %0, i32 noundef %54, i32 noundef -1610215408, i32 noundef %4, i32 noundef %5, i32 noundef %6, i32 noundef %7, i8 noundef signext 120, i32 noundef %3, i32 noundef 0, i32 noundef 0, i32 noundef 1) #2
  tail call void @libxsmm_x86_instruction_vec_compute_2reg_imm8(ptr noundef nonnull %0, i32 noundef -1609756475, i8 noundef signext 120, i32 noundef %3, i32 noundef %1, i32 noundef 2) #2
  %59 = add nsw i32 %7, 4
  tail call void @libxsmm_x86_instruction_alu_mem(ptr noundef nonnull %0, i32 noundef -1610334069, i32 noundef %4, i32 noundef %5, i32 noundef %6, i32 noundef %59, i32 noundef %1, i32 noundef 1) #2
  br label %69

60:                                               ; preds = %19
  %61 = getelementptr inbounds i8, ptr %0, i64 28
  %62 = load i32, ptr %61, align 4, !tbaa !5
  tail call void @libxsmm_x86_instruction_vec_move(ptr noundef nonnull %0, i32 noundef %62, i32 noundef -1610215408, i32 noundef %4, i32 noundef %5, i32 noundef %6, i32 noundef %7, i8 noundef signext 120, i32 noundef %3, i32 noundef 0, i32 noundef 0, i32 noundef 1) #2
  br label %69

63:                                               ; preds = %19
  %64 = getelementptr inbounds i8, ptr %0, i64 28
  %65 = load i32, ptr %64, align 4, !tbaa !5
  %66 = icmp ult i32 %65, 1004
  br i1 %66, label %67, label %68

67:                                               ; preds = %63
  tail call void @libxsmm_x86_instruction_vec_move(ptr noundef nonnull %0, i32 noundef %65, i32 noundef -1610346480, i32 noundef 4, i32 noundef 127, i32 noundef 0, i32 noundef 0, i8 noundef signext 120, i32 noundef %3, i32 noundef 0, i32 noundef 0, i32 noundef 1) #2
  tail call void @libxsmm_x86_instruction_alu_mem(ptr noundef nonnull %0, i32 noundef -1610334069, i32 noundef 4, i32 noundef 127, i32 noundef 0, i32 noundef 0, i32 noundef %1, i32 noundef 0) #2
  tail call void @libxsmm_x86_instruction_alu_mem(ptr noundef nonnull %0, i32 noundef -1610334069, i32 noundef %4, i32 noundef %5, i32 noundef %6, i32 noundef %7, i32 noundef %1, i32 noundef 1) #2
  br label %69

68:                                               ; preds = %63
  tail call void @libxsmm_x86_instruction_vec_compute_2reg_imm8(ptr noundef nonnull %0, i32 noundef -1609756475, i8 noundef signext 120, i32 noundef %3, i32 noundef %1, i32 noundef 0) #2
  tail call void @libxsmm_x86_instruction_alu_mem(ptr noundef nonnull %0, i32 noundef -1610334069, i32 noundef %4, i32 noundef %5, i32 noundef %6, i32 noundef %7, i32 noundef %1, i32 noundef 1) #2
  br label %69

69:                                               ; preds = %30, %27, %47, %45, %58, %56, %68, %67, %60, %37, %39
  %70 = getelementptr inbounds i8, ptr %0, i64 28
  %71 = load i32, ptr %70, align 4, !tbaa !5
  %72 = icmp ult i32 %71, 1004
  br i1 %.not, label %76, label %73

73:                                               ; preds = %69
  br i1 %72, label %74, label %75

74:                                               ; preds = %73
  tail call void @libxsmm_x86_instruction_alu_mem(ptr noundef nonnull %0, i32 noundef -1568407413, i32 noundef 4, i32 noundef 127, i32 noundef 0, i32 noundef 16, i32 noundef %1, i32 noundef 0) #2
  tail call void @libxsmm_x86_instruction_alu_imm(ptr noundef nonnull %0, i32 noundef 30000, i32 noundef 4, i64 noundef 32) #2
  br label %78

75:                                               ; preds = %73
  tail call void @libxsmm_x86_instruction_alu_mem(ptr noundef nonnull %0, i32 noundef -1568407413, i32 noundef 4, i32 noundef 127, i32 noundef 0, i32 noundef 0, i32 noundef %1, i32 noundef 0) #2
  tail call void @libxsmm_x86_instruction_alu_imm(ptr noundef nonnull %0, i32 noundef 30000, i32 noundef 4, i64 noundef 16) #2
  br label %78

76:                                               ; preds = %69
  br i1 %72, label %77, label %78

77:                                               ; preds = %76
  tail call void @libxsmm_x86_instruction_alu_imm(ptr noundef nonnull %0, i32 noundef 30000, i32 noundef 4, i64 noundef 16) #2
  br label %78

default.unreachable:                              ; preds = %19
  unreachable

78:                                               ; preds = %20, %49, %9, %75, %74, %77, %76
  ret void
}

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 #1

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

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 #1

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !10, i64 28}
!6 = !{!"libxsmm_generated_code", !7, i64 0, !10, i64 8, !10, i64 12, !10, i64 16, !10, i64 20, !10, i64 24, !10, i64 28}
!7 = !{!"any pointer", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C/C++ TBAA"}
!10 = !{!"int", !8, i64 0}


; Effective O3 passes: CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,InstCombinePass,JumpThreadingPass,SROAPass,SimplifyCFGPass,TailCallElimPass