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

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

%struct.libxsmm_matequation_kernel_config_struct = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i8, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, [32 x i32], i32, i32, i32, i32, ptr, ptr, i32, i32, i32, [64 x i32], [64 x i32], %struct.libxsmm_mateltwise_kernel_config_struct, %struct.libxsmm_micro_kernel_config }
%struct.libxsmm_mateltwise_kernel_config_struct = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i8 }
%struct.libxsmm_micro_kernel_config = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i8, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, [4 x i32], [4 x i32], [4 x i32], [4 x i32], [4 x i32], [4 x i32], i32, [2 x %struct.libxsmm_blocking_info_t], %struct.libxsmm_tile_config, i32, i32, i32, i32, i32, i32, i32, i32, ptr, i32, i32, i32, i32, ptr, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }
%struct.libxsmm_blocking_info_t = type { i32, [4 x i32], i32, i32 }
%struct.libxsmm_tile_config = type { i8, i16, i8, i16, i8, i16, i8, i16, i8, i16, i8, i16, i8, i16, i8, i16, i8 }
%struct.libxsmm_generated_code = type { ptr, i32, i32, i32, i32, i32, i32 }

@.str.1 = external hidden unnamed_addr constant [95 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [386 x i8], align 1
@__PRETTY_FUNCTION__.libxsmm_generator_mateqn_compute_unary_op_2d_reg_block_aarch64 = external hidden unnamed_addr constant [217 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [391 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [461 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [281 x i8], align 1

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

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

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

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

declare i32 @libxsmm_generator_aarch64_get_sve_type(i8 noundef zeroext) #2

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

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

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

48:                                               ; preds = %7
  %49 = load ptr, ptr %8, align 8, !tbaa !5
  %50 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %49, i32 0, i32 6
  %51 = load i32, ptr %50, align 4, !tbaa !11
  %52 = icmp ule i32 %51, 2999
  br label %53

53:                                               ; preds = %48, %7
  %54 = phi i1 [ false, %7 ], [ %52, %48 ]
  %55 = zext i1 %54 to i32
  %56 = trunc i32 %55 to i8
  store i8 %56, ptr %20, align 1, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #4
  %57 = load i32, ptr %14, align 4, !tbaa !9
  %58 = icmp eq i32 %57, 0
  %59 = zext i1 %58 to i64
  %60 = select i1 %58, i32 8, i32 4
  %61 = trunc i32 %60 to i8
  %62 = call i32 @libxsmm_generator_aarch64_get_sve_type(i8 noundef zeroext %61)
  store i32 %62, ptr %21, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #4
  %63 = load i32, ptr %14, align 4, !tbaa !9
  %64 = icmp eq i32 %63, 0
  %65 = zext i1 %64 to i64
  %66 = select i1 %64, i32 7, i32 5
  store i32 %66, ptr %22, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #4
  store i32 0, ptr %23, align 4, !tbaa !9
  store i32 0, ptr %17, align 4, !tbaa !9
  br label %67

67:                                               ; preds = %1757, %53
  %68 = load i32, ptr %17, align 4, !tbaa !9
  %69 = load i32, ptr %13, align 4, !tbaa !9
  %70 = icmp ult i32 %68, %69
  br i1 %70, label %71, label %1760

71:                                               ; preds = %67
  store i32 0, ptr %16, align 4, !tbaa !9
  br label %72

72:                                               ; preds = %1753, %71
  %73 = load i32, ptr %16, align 4, !tbaa !9
  %74 = load i32, ptr %12, align 4, !tbaa !9
  %75 = icmp ult i32 %73, %74
  br i1 %75, label %76, label %1756

76:                                               ; preds = %72
  %77 = load i32, ptr %15, align 4, !tbaa !9
  %78 = load i32, ptr %17, align 4, !tbaa !9
  %79 = load i32, ptr %12, align 4, !tbaa !9
  %80 = mul i32 %78, %79
  %81 = add i32 %77, %80
  %82 = load i32, ptr %16, align 4, !tbaa !9
  %83 = add i32 %81, %82
  store i32 %83, ptr %18, align 4, !tbaa !9
  %84 = load i32, ptr %10, align 4, !tbaa !9
  %85 = icmp eq i32 %84, 3
  br i1 %85, label %86, label %102

86:                                               ; preds = %76
  %87 = load i8, ptr %20, align 1, !tbaa !13
  %88 = icmp ne i8 %87, 0
  br i1 %88, label %89, label %95

89:                                               ; preds = %86
  %90 = load ptr, ptr %8, align 8, !tbaa !5
  %91 = load i32, ptr %18, align 4, !tbaa !9
  %92 = load i32, ptr %18, align 4, !tbaa !9
  %93 = load i32, ptr %18, align 4, !tbaa !9
  %94 = load i32, ptr %21, align 4, !tbaa !9
  call void @libxsmm_aarch64_instruction_sve_compute(ptr noundef %90, i32 noundef 1694500867, i32 noundef %91, i32 noundef %92, i8 noundef zeroext 0, i32 noundef %93, i32 noundef 0, i32 noundef %94)
  br label %101

95:                                               ; preds = %86
  %96 = load ptr, ptr %8, align 8, !tbaa !5
  %97 = load i32, ptr %18, align 4, !tbaa !9
  %98 = load i32, ptr %18, align 4, !tbaa !9
  %99 = load i32, ptr %18, align 4, !tbaa !9
  %100 = load i32, ptr %22, align 4, !tbaa !9
  call void @libxsmm_aarch64_instruction_asimd_compute(ptr noundef %96, i32 noundef 773905419, i32 noundef %97, i32 noundef %98, i8 noundef zeroext 0, i32 noundef %99, i32 noundef %100)
  br label %101

101:                                              ; preds = %95, %89
  br label %1752

102:                                              ; preds = %76
  %103 = load i32, ptr %10, align 4, !tbaa !9
  %104 = icmp eq i32 %103, 24
  br i1 %104, label %105, label %136

105:                                              ; preds = %102
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #4
  %106 = load i8, ptr %20, align 1, !tbaa !13
  %107 = zext i8 %106 to i32
  %108 = icmp ne i32 %107, 0
  %109 = zext i1 %108 to i64
  %110 = select i1 %108, i32 1694498819, i32 237032459
  store i32 %110, ptr %24, align 4, !tbaa !9
  %111 = load i8, ptr %20, align 1, !tbaa !13
  %112 = icmp ne i8 %111, 0
  br i1 %112, label %113, label %124

113:                                              ; preds = %105
  %114 = load ptr, ptr %8, align 8, !tbaa !5
  %115 = load i32, ptr %24, align 4, !tbaa !9
  %116 = load i32, ptr %18, align 4, !tbaa !9
  %117 = load ptr, ptr %9, align 8, !tbaa !5
  %118 = getelementptr inbounds %struct.libxsmm_matequation_kernel_config_struct, ptr %117, i32 0, i32 45
  %119 = load i32, ptr %118, align 4, !tbaa !14
  %120 = load ptr, ptr %9, align 8, !tbaa !5
  %121 = getelementptr inbounds %struct.libxsmm_matequation_kernel_config_struct, ptr %120, i32 0, i32 45
  %122 = load i32, ptr %121, align 4, !tbaa !14
  %123 = load i32, ptr %21, align 4, !tbaa !9
  call void @libxsmm_aarch64_instruction_sve_compute(ptr noundef %114, i32 noundef %115, i32 noundef %116, i32 noundef %119, i8 noundef zeroext 0, i32 noundef %122, i32 noundef 0, i32 noundef %123)
  br label %135

124:                                              ; preds = %105
  %125 = load ptr, ptr %8, align 8, !tbaa !5
  %126 = load i32, ptr %24, align 4, !tbaa !9
  %127 = load i32, ptr %18, align 4, !tbaa !9
  %128 = load ptr, ptr %9, align 8, !tbaa !5
  %129 = getelementptr inbounds %struct.libxsmm_matequation_kernel_config_struct, ptr %128, i32 0, i32 45
  %130 = load i32, ptr %129, align 4, !tbaa !14
  %131 = load ptr, ptr %9, align 8, !tbaa !5
  %132 = getelementptr inbounds %struct.libxsmm_matequation_kernel_config_struct, ptr %131, i32 0, i32 45
  %133 = load i32, ptr %132, align 4, !tbaa !14
  %134 = load i32, ptr %22, align 4, !tbaa !9
  call void @libxsmm_aarch64_instruction_asimd_compute(ptr noundef %125, i32 noundef %126, i32 noundef %127, i32 noundef %130, i8 noundef zeroext 0, i32 noundef %133, i32 noundef %134)
  br label %135

135:                                              ; preds = %124, %113
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #4
  br label %1751

136:                                              ; preds = %102
  %137 = load i32, ptr %10, align 4, !tbaa !9
  %138 = icmp eq i32 %137, 13
  br i1 %138, label %139, label %155

139:                                              ; preds = %136
  %140 = load i8, ptr %20, align 1, !tbaa !13
  %141 = icmp ne i8 %140, 0
  br i1 %141, label %142, label %149

142:                                              ; preds = %139
  %143 = load ptr, ptr %8, align 8, !tbaa !5
  %144 = load i32, ptr %18, align 4, !tbaa !9
  %145 = load i32, ptr %18, align 4, !tbaa !9
  %146 = load i32, ptr %18, align 4, !tbaa !9
  %147 = load i32, ptr %23, align 4, !tbaa !9
  %148 = load i32, ptr %21, align 4, !tbaa !9
  call void @libxsmm_aarch64_instruction_sve_compute(ptr noundef %143, i32 noundef 69050498, i32 noundef %144, i32 noundef %145, i8 noundef zeroext 0, i32 noundef %146, i32 noundef %147, i32 noundef %148)
  br label %154

149:                                              ; preds = %139
  %150 = load ptr, ptr %8, align 8, !tbaa !5
  %151 = load i32, ptr %18, align 4, !tbaa !9
  %152 = load i32, ptr %18, align 4, !tbaa !9
  %153 = load i32, ptr %22, align 4, !tbaa !9
  call void @libxsmm_aarch64_instruction_asimd_compute(ptr noundef %150, i32 noundef 782301194, i32 noundef %151, i32 noundef 127, i8 noundef zeroext 0, i32 noundef %152, i32 noundef %153)
  br label %154

154:                                              ; preds = %149, %142
  br label %1750

155:                                              ; preds = %136
  %156 = load i32, ptr %10, align 4, !tbaa !9
  %157 = icmp eq i32 %156, 14
  br i1 %157, label %158, label %179

158:                                              ; preds = %155
  %159 = load i8, ptr %20, align 1, !tbaa !13
  %160 = icmp ne i8 %159, 0
  br i1 %160, label %161, label %170

161:                                              ; preds = %158
  %162 = load ptr, ptr %8, align 8, !tbaa !5
  %163 = load i32, ptr %18, align 4, !tbaa !9
  %164 = load ptr, ptr %19, align 8, !tbaa !5
  %165 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %164, i32 0, i32 54
  %166 = load i32, ptr %165, align 4, !tbaa !20
  %167 = load i32, ptr %18, align 4, !tbaa !9
  %168 = load i32, ptr %23, align 4, !tbaa !9
  %169 = load i32, ptr %21, align 4, !tbaa !9
  call void @libxsmm_aarch64_instruction_sve_compute(ptr noundef %162, i32 noundef 1694498819, i32 noundef %163, i32 noundef %166, i8 noundef zeroext 0, i32 noundef %167, i32 noundef %168, i32 noundef %169)
  br label %178

170:                                              ; preds = %158
  %171 = load ptr, ptr %8, align 8, !tbaa !5
  %172 = load i32, ptr %18, align 4, !tbaa !9
  %173 = load ptr, ptr %19, align 8, !tbaa !5
  %174 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %173, i32 0, i32 54
  %175 = load i32, ptr %174, align 4, !tbaa !20
  %176 = load i32, ptr %18, align 4, !tbaa !9
  %177 = load i32, ptr %22, align 4, !tbaa !9
  call void @libxsmm_aarch64_instruction_asimd_compute(ptr noundef %171, i32 noundef 237032459, i32 noundef %172, i32 noundef %175, i8 noundef zeroext 0, i32 noundef %176, i32 noundef %177)
  br label %178

178:                                              ; preds = %170, %161
  br label %1749

179:                                              ; preds = %155
  %180 = load i32, ptr %10, align 4, !tbaa !9
  %181 = icmp eq i32 %180, 15
  br i1 %181, label %182, label %283

182:                                              ; preds = %179
  %183 = load i8, ptr %20, align 1, !tbaa !13
  %184 = icmp ne i8 %183, 0
  br i1 %184, label %185, label %261

185:                                              ; preds = %182
  %186 = call i32 @libxsmm_get_ulp_precision()
  %187 = icmp ne i32 %186, 2
  br i1 %187, label %188, label %253

188:                                              ; preds = %185
  call void @llvm.lifetime.start.p0(i64 1, ptr %25) #4
  %189 = load ptr, ptr %19, align 8, !tbaa !5
  %190 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %189, i32 0, i32 29
  %191 = load i32, ptr %190, align 4, !tbaa !21
  %192 = trunc i32 %191 to i8
  %193 = zext i8 %192 to i32
  %194 = icmp eq i32 0, %193
  br i1 %194, label %202, label %195

195:                                              ; preds = %188
  %196 = load ptr, ptr %19, align 8, !tbaa !5
  %197 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %196, i32 0, i32 29
  %198 = load i32, ptr %197, align 4, !tbaa !21
  %199 = trunc i32 %198 to i8
  %200 = zext i8 %199 to i32
  %201 = icmp slt i32 0, %200
  br i1 %201, label %202, label %226

202:                                              ; preds = %195, %188
  %203 = load ptr, ptr %19, align 8, !tbaa !5
  %204 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %203, i32 0, i32 29
  %205 = load i32, ptr %204, align 4, !tbaa !21
  %206 = zext i32 %205 to i64
  %207 = mul i64 1, %206
  %208 = icmp ult i64 %207, 255
  br i1 %208, label %209, label %215

209:                                              ; preds = %202
  %210 = load ptr, ptr %19, align 8, !tbaa !5
  %211 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %210, i32 0, i32 29
  %212 = load i32, ptr %211, align 4, !tbaa !21
  %213 = zext i32 %212 to i64
  %214 = mul i64 1, %213
  br label %216

215:                                              ; preds = %202
  br label %216

216:                                              ; preds = %215, %209
  %217 = phi i64 [ %214, %209 ], [ 255, %215 ]
  %218 = icmp ule i64 %217, 255
  br i1 %218, label %219, label %226

219:                                              ; preds = %216
  %220 = load ptr, ptr %19, align 8, !tbaa !5
  %221 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %220, i32 0, i32 29
  %222 = load i32, ptr %221, align 4, !tbaa !21
  %223 = uitofp i32 %222 to double
  %224 = fcmp ole double 0.000000e+00, %223
  br i1 %224, label %225, label %226

225:                                              ; preds = %219
  br label %227

226:                                              ; preds = %219, %216, %195
  call void @__assert_fail(ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 731, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_compute_unary_op_2d_reg_block_aarch64) #5
  unreachable

227:                                              ; preds = %225
  %228 = load ptr, ptr %19, align 8, !tbaa !5
  %229 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %228, i32 0, i32 29
  %230 = load i32, ptr %229, align 4, !tbaa !21
  %231 = trunc i32 %230 to i8
  store i8 %231, ptr %25, align 1, !tbaa !13
  %232 = load ptr, ptr %8, align 8, !tbaa !5
  %233 = load i32, ptr %18, align 4, !tbaa !9
  %234 = load i32, ptr %18, align 4, !tbaa !9
  %235 = load i8, ptr %25, align 1, !tbaa !13
  %236 = zext i8 %235 to i32
  %237 = load i32, ptr %23, align 4, !tbaa !9
  %238 = load i32, ptr %21, align 4, !tbaa !9
  call void @libxsmm_aarch64_instruction_sve_compute(ptr noundef %232, i32 noundef 1695428610, i32 noundef %233, i32 noundef %234, i8 noundef zeroext 0, i32 noundef %236, i32 noundef %237, i32 noundef %238)
  %239 = load ptr, ptr %8, align 8, !tbaa !5
  %240 = load i32, ptr %18, align 4, !tbaa !9
  %241 = load i8, ptr %25, align 1, !tbaa !13
  %242 = zext i8 %241 to i32
  %243 = load i32, ptr %18, align 4, !tbaa !9
  %244 = load i32, ptr %23, align 4, !tbaa !9
  %245 = load i32, ptr %21, align 4, !tbaa !9
  call void @libxsmm_aarch64_instruction_sve_compute(ptr noundef %239, i32 noundef 1694504963, i32 noundef %240, i32 noundef %242, i8 noundef zeroext 0, i32 noundef %243, i32 noundef %244, i32 noundef %245)
  %246 = load ptr, ptr %8, align 8, !tbaa !5
  %247 = load i32, ptr %18, align 4, !tbaa !9
  %248 = load i8, ptr %25, align 1, !tbaa !13
  %249 = zext i8 %248 to i32
  %250 = load i32, ptr %18, align 4, !tbaa !9
  %251 = load i32, ptr %23, align 4, !tbaa !9
  %252 = load i32, ptr %21, align 4, !tbaa !9
  call void @libxsmm_aarch64_instruction_sve_compute(ptr noundef %246, i32 noundef 1694500867, i32 noundef %247, i32 noundef %249, i8 noundef zeroext 0, i32 noundef %250, i32 noundef %251, i32 noundef %252)
  call void @llvm.lifetime.end.p0(i64 1, ptr %25) #4
  br label %260

253:                                              ; preds = %185
  %254 = load ptr, ptr %8, align 8, !tbaa !5
  %255 = load i32, ptr %18, align 4, !tbaa !9
  %256 = load i32, ptr %18, align 4, !tbaa !9
  %257 = load i32, ptr %18, align 4, !tbaa !9
  %258 = load i32, ptr %23, align 4, !tbaa !9
  %259 = load i32, ptr %21, align 4, !tbaa !9
  call void @libxsmm_aarch64_instruction_sve_compute(ptr noundef %254, i32 noundef 1695428610, i32 noundef %255, i32 noundef %256, i8 noundef zeroext 0, i32 noundef %257, i32 noundef %258, i32 noundef %259)
  br label %260

260:                                              ; preds = %253, %227
  br label %282

261:                                              ; preds = %182
  %262 = load ptr, ptr %8, align 8, !tbaa !5
  %263 = load i32, ptr %18, align 4, !tbaa !9
  %264 = load ptr, ptr %19, align 8, !tbaa !5
  %265 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %264, i32 0, i32 86
  %266 = load i32, ptr %265, align 4, !tbaa !22
  %267 = load i32, ptr %22, align 4, !tbaa !9
  call void @libxsmm_aarch64_instruction_asimd_compute(ptr noundef %262, i32 noundef 245487626, i32 noundef %263, i32 noundef 127, i8 noundef zeroext 0, i32 noundef %266, i32 noundef %267)
  %268 = load ptr, ptr %8, align 8, !tbaa !5
  %269 = load i32, ptr %18, align 4, !tbaa !9
  %270 = load ptr, ptr %19, align 8, !tbaa !5
  %271 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %270, i32 0, i32 86
  %272 = load i32, ptr %271, align 4, !tbaa !22
  %273 = load i32, ptr %18, align 4, !tbaa !9
  %274 = load i32, ptr %22, align 4, !tbaa !9
  call void @libxsmm_aarch64_instruction_asimd_compute(ptr noundef %268, i32 noundef 237042699, i32 noundef %269, i32 noundef %272, i8 noundef zeroext 0, i32 noundef %273, i32 noundef %274)
  %275 = load ptr, ptr %8, align 8, !tbaa !5
  %276 = load i32, ptr %18, align 4, !tbaa !9
  %277 = load ptr, ptr %19, align 8, !tbaa !5
  %278 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %277, i32 0, i32 86
  %279 = load i32, ptr %278, align 4, !tbaa !22
  %280 = load i32, ptr %18, align 4, !tbaa !9
  %281 = load i32, ptr %22, align 4, !tbaa !9
  call void @libxsmm_aarch64_instruction_asimd_compute(ptr noundef %275, i32 noundef 773905419, i32 noundef %276, i32 noundef %279, i8 noundef zeroext 0, i32 noundef %280, i32 noundef %281)
  br label %282

282:                                              ; preds = %261, %260
  br label %1748

283:                                              ; preds = %179
  %284 = load i32, ptr %10, align 4, !tbaa !9
  %285 = icmp eq i32 %284, 16
  br i1 %285, label %286, label %551

286:                                              ; preds = %283
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #4
  %287 = load i32, ptr %21, align 4, !tbaa !9
  %288 = shl i32 1, %287
  %289 = sub nsw i32 %288, 1
  store i32 %289, ptr %26, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %27) #4
  %290 = load i32, ptr %26, align 4, !tbaa !9
  %291 = trunc i32 %290 to i8
  store i8 %291, ptr %27, align 1, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 1, ptr %28) #4
  %292 = call i32 @libxsmm_get_ulp_precision()
  %293 = icmp eq i32 %292, 2
  br i1 %293, label %294, label %295

294:                                              ; preds = %286
  br label %298

295:                                              ; preds = %286
  %296 = load i8, ptr %27, align 1, !tbaa !13
  %297 = zext i8 %296 to i32
  br label %298

298:                                              ; preds = %295, %294
  %299 = phi i32 [ 0, %294 ], [ %297, %295 ]
  %300 = trunc i32 %299 to i8
  store i8 %300, ptr %28, align 1, !tbaa !13
  %301 = load i8, ptr %20, align 1, !tbaa !13
  %302 = icmp ne i8 %301, 0
  br i1 %302, label %303, label %545

303:                                              ; preds = %298
  call void @llvm.lifetime.start.p0(i64 1, ptr %29) #4
  %304 = load ptr, ptr %19, align 8, !tbaa !5
  %305 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %304, i32 0, i32 29
  %306 = load i32, ptr %305, align 4, !tbaa !21
  %307 = trunc i32 %306 to i8
  %308 = zext i8 %307 to i32
  %309 = icmp eq i32 0, %308
  br i1 %309, label %317, label %310

310:                                              ; preds = %303
  %311 = load ptr, ptr %19, align 8, !tbaa !5
  %312 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %311, i32 0, i32 29
  %313 = load i32, ptr %312, align 4, !tbaa !21
  %314 = trunc i32 %313 to i8
  %315 = zext i8 %314 to i32
  %316 = icmp slt i32 0, %315
  br i1 %316, label %317, label %341

317:                                              ; preds = %310, %303
  %318 = load ptr, ptr %19, align 8, !tbaa !5
  %319 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %318, i32 0, i32 29
  %320 = load i32, ptr %319, align 4, !tbaa !21
  %321 = zext i32 %320 to i64
  %322 = mul i64 1, %321
  %323 = icmp ult i64 %322, 255
  br i1 %323, label %324, label %330

324:                                              ; preds = %317
  %325 = load ptr, ptr %19, align 8, !tbaa !5
  %326 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %325, i32 0, i32 29
  %327 = load i32, ptr %326, align 4, !tbaa !21
  %328 = zext i32 %327 to i64
  %329 = mul i64 1, %328
  br label %331

330:                                              ; preds = %317
  br label %331

331:                                              ; preds = %330, %324
  %332 = phi i64 [ %329, %324 ], [ 255, %330 ]
  %333 = icmp ule i64 %332, 255
  br i1 %333, label %334, label %341

334:                                              ; preds = %331
  %335 = load ptr, ptr %19, align 8, !tbaa !5
  %336 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %335, i32 0, i32 29
  %337 = load i32, ptr %336, align 4, !tbaa !21
  %338 = uitofp i32 %337 to double
  %339 = fcmp ole double 0.000000e+00, %338
  br i1 %339, label %340, label %341

340:                                              ; preds = %334
  br label %342

341:                                              ; preds = %334, %331, %310
  call void @__assert_fail(ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 758, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_compute_unary_op_2d_reg_block_aarch64) #5
  unreachable

342:                                              ; preds = %340
  %343 = load ptr, ptr %19, align 8, !tbaa !5
  %344 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %343, i32 0, i32 29
  %345 = load i32, ptr %344, align 4, !tbaa !21
  %346 = trunc i32 %345 to i8
  store i8 %346, ptr %29, align 1, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 1, ptr %30) #4
  %347 = load ptr, ptr %19, align 8, !tbaa !5
  %348 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %347, i32 0, i32 30
  %349 = load i32, ptr %348, align 4, !tbaa !23
  %350 = trunc i32 %349 to i8
  %351 = zext i8 %350 to i32
  %352 = icmp eq i32 0, %351
  br i1 %352, label %360, label %353

353:                                              ; preds = %342
  %354 = load ptr, ptr %19, align 8, !tbaa !5
  %355 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %354, i32 0, i32 30
  %356 = load i32, ptr %355, align 4, !tbaa !23
  %357 = trunc i32 %356 to i8
  %358 = zext i8 %357 to i32
  %359 = icmp slt i32 0, %358
  br i1 %359, label %360, label %384

360:                                              ; preds = %353, %342
  %361 = load ptr, ptr %19, align 8, !tbaa !5
  %362 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %361, i32 0, i32 30
  %363 = load i32, ptr %362, align 4, !tbaa !23
  %364 = zext i32 %363 to i64
  %365 = mul i64 1, %364
  %366 = icmp ult i64 %365, 255
  br i1 %366, label %367, label %373

367:                                              ; preds = %360
  %368 = load ptr, ptr %19, align 8, !tbaa !5
  %369 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %368, i32 0, i32 30
  %370 = load i32, ptr %369, align 4, !tbaa !23
  %371 = zext i32 %370 to i64
  %372 = mul i64 1, %371
  br label %374

373:                                              ; preds = %360
  br label %374

374:                                              ; preds = %373, %367
  %375 = phi i64 [ %372, %367 ], [ 255, %373 ]
  %376 = icmp ule i64 %375, 255
  br i1 %376, label %377, label %384

377:                                              ; preds = %374
  %378 = load ptr, ptr %19, align 8, !tbaa !5
  %379 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %378, i32 0, i32 30
  %380 = load i32, ptr %379, align 4, !tbaa !23
  %381 = uitofp i32 %380 to double
  %382 = fcmp ole double 0.000000e+00, %381
  br i1 %382, label %383, label %384

383:                                              ; preds = %377
  br label %385

384:                                              ; preds = %377, %374, %353
  call void @__assert_fail(ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 759, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_compute_unary_op_2d_reg_block_aarch64) #5
  unreachable

385:                                              ; preds = %383
  %386 = load ptr, ptr %19, align 8, !tbaa !5
  %387 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %386, i32 0, i32 30
  %388 = load i32, ptr %387, align 4, !tbaa !23
  %389 = trunc i32 %388 to i8
  store i8 %389, ptr %30, align 1, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 1, ptr %31) #4
  %390 = load ptr, ptr %8, align 8, !tbaa !5
  %391 = load i32, ptr %18, align 4, !tbaa !9
  %392 = load i32, ptr %18, align 4, !tbaa !9
  %393 = load i8, ptr %28, align 1, !tbaa !13
  %394 = zext i8 %393 to i32
  %395 = icmp sgt i32 %394, 0
  br i1 %395, label %396, label %399

396:                                              ; preds = %385
  %397 = load i8, ptr %29, align 1, !tbaa !13
  %398 = zext i8 %397 to i32
  br label %401

399:                                              ; preds = %385
  %400 = load i32, ptr %18, align 4, !tbaa !9
  br label %401

401:                                              ; preds = %399, %396
  %402 = phi i32 [ %398, %396 ], [ %400, %399 ]
  %403 = load i32, ptr %23, align 4, !tbaa !9
  %404 = load i32, ptr %21, align 4, !tbaa !9
  call void @libxsmm_aarch64_instruction_sve_compute(ptr noundef %390, i32 noundef 1695494146, i32 noundef %391, i32 noundef %392, i8 noundef zeroext 0, i32 noundef %402, i32 noundef %403, i32 noundef %404)
  store i8 0, ptr %31, align 1, !tbaa !13
  br label %405

405:                                              ; preds = %541, %401
  %406 = load i8, ptr %31, align 1, !tbaa !13
  %407 = zext i8 %406 to i32
  %408 = load i8, ptr %28, align 1, !tbaa !13
  %409 = zext i8 %408 to i32
  %410 = icmp slt i32 %407, %409
  br i1 %410, label %411, label %544

411:                                              ; preds = %405
  call void @llvm.lifetime.start.p0(i64 1, ptr %32) #4
  %412 = load i8, ptr %31, align 1, !tbaa !13
  %413 = zext i8 %412 to i32
  %414 = load i8, ptr %28, align 1, !tbaa !13
  %415 = zext i8 %414 to i32
  %416 = sub nsw i32 %415, 1
  %417 = icmp eq i32 %413, %416
  br i1 %417, label %418, label %420

418:                                              ; preds = %411
  %419 = load i32, ptr %18, align 4, !tbaa !9
  br label %423

420:                                              ; preds = %411
  %421 = load i8, ptr %29, align 1, !tbaa !13
  %422 = zext i8 %421 to i32
  br label %423

423:                                              ; preds = %420, %418
  %424 = phi i32 [ %419, %418 ], [ %422, %420 ]
  %425 = trunc i32 %424 to i8
  %426 = zext i8 %425 to i32
  %427 = icmp eq i32 0, %426
  br i1 %427, label %445, label %428

428:                                              ; preds = %423
  %429 = load i8, ptr %31, align 1, !tbaa !13
  %430 = zext i8 %429 to i32
  %431 = load i8, ptr %28, align 1, !tbaa !13
  %432 = zext i8 %431 to i32
  %433 = sub nsw i32 %432, 1
  %434 = icmp eq i32 %430, %433
  br i1 %434, label %435, label %437

435:                                              ; preds = %428
  %436 = load i32, ptr %18, align 4, !tbaa !9
  br label %440

437:                                              ; preds = %428
  %438 = load i8, ptr %29, align 1, !tbaa !13
  %439 = zext i8 %438 to i32
  br label %440

440:                                              ; preds = %437, %435
  %441 = phi i32 [ %436, %435 ], [ %439, %437 ]
  %442 = trunc i32 %441 to i8
  %443 = zext i8 %442 to i32
  %444 = icmp slt i32 0, %443
  br i1 %444, label %445, label %499

445:                                              ; preds = %440, %423
  %446 = load i8, ptr %31, align 1, !tbaa !13
  %447 = zext i8 %446 to i32
  %448 = load i8, ptr %28, align 1, !tbaa !13
  %449 = zext i8 %448 to i32
  %450 = sub nsw i32 %449, 1
  %451 = icmp eq i32 %447, %450
  br i1 %451, label %452, label %454

452:                                              ; preds = %445
  %453 = load i32, ptr %18, align 4, !tbaa !9
  br label %457

454:                                              ; preds = %445
  %455 = load i8, ptr %29, align 1, !tbaa !13
  %456 = zext i8 %455 to i32
  br label %457

457:                                              ; preds = %454, %452
  %458 = phi i32 [ %453, %452 ], [ %456, %454 ]
  %459 = zext i32 %458 to i64
  %460 = mul i64 1, %459
  %461 = icmp ult i64 %460, 255
  br i1 %461, label %462, label %478

462:                                              ; preds = %457
  %463 = load i8, ptr %31, align 1, !tbaa !13
  %464 = zext i8 %463 to i32
  %465 = load i8, ptr %28, align 1, !tbaa !13
  %466 = zext i8 %465 to i32
  %467 = sub nsw i32 %466, 1
  %468 = icmp eq i32 %464, %467
  br i1 %468, label %469, label %471

469:                                              ; preds = %462
  %470 = load i32, ptr %18, align 4, !tbaa !9
  br label %474

471:                                              ; preds = %462
  %472 = load i8, ptr %29, align 1, !tbaa !13
  %473 = zext i8 %472 to i32
  br label %474

474:                                              ; preds = %471, %469
  %475 = phi i32 [ %470, %469 ], [ %473, %471 ]
  %476 = zext i32 %475 to i64
  %477 = mul i64 1, %476
  br label %479

478:                                              ; preds = %457
  br label %479

479:                                              ; preds = %478, %474
  %480 = phi i64 [ %477, %474 ], [ 255, %478 ]
  %481 = icmp ule i64 %480, 255
  br i1 %481, label %482, label %499

482:                                              ; preds = %479
  %483 = load i8, ptr %31, align 1, !tbaa !13
  %484 = zext i8 %483 to i32
  %485 = load i8, ptr %28, align 1, !tbaa !13
  %486 = zext i8 %485 to i32
  %487 = sub nsw i32 %486, 1
  %488 = icmp eq i32 %484, %487
  br i1 %488, label %489, label %491

489:                                              ; preds = %482
  %490 = load i32, ptr %18, align 4, !tbaa !9
  br label %494

491:                                              ; preds = %482
  %492 = load i8, ptr %29, align 1, !tbaa !13
  %493 = zext i8 %492 to i32
  br label %494

494:                                              ; preds = %491, %489
  %495 = phi i32 [ %490, %489 ], [ %493, %491 ]
  %496 = uitofp i32 %495 to double
  %497 = fcmp ole double 0.000000e+00, %496
  br i1 %497, label %498, label %499

498:                                              ; preds = %494
  br label %500

499:                                              ; preds = %494, %479, %440
  call void @__assert_fail(ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 766, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_compute_unary_op_2d_reg_block_aarch64) #5
  unreachable

500:                                              ; preds = %498
  %501 = load i8, ptr %31, align 1, !tbaa !13
  %502 = zext i8 %501 to i32
  %503 = load i8, ptr %28, align 1, !tbaa !13
  %504 = zext i8 %503 to i32
  %505 = sub nsw i32 %504, 1
  %506 = icmp eq i32 %502, %505
  br i1 %506, label %507, label %509

507:                                              ; preds = %500
  %508 = load i32, ptr %18, align 4, !tbaa !9
  br label %512

509:                                              ; preds = %500
  %510 = load i8, ptr %29, align 1, !tbaa !13
  %511 = zext i8 %510 to i32
  br label %512

512:                                              ; preds = %509, %507
  %513 = phi i32 [ %508, %507 ], [ %511, %509 ]
  %514 = trunc i32 %513 to i8
  store i8 %514, ptr %32, align 1, !tbaa !13
  %515 = load ptr, ptr %8, align 8, !tbaa !5
  %516 = load i8, ptr %29, align 1, !tbaa !13
  %517 = zext i8 %516 to i32
  %518 = load i8, ptr %29, align 1, !tbaa !13
  %519 = zext i8 %518 to i32
  %520 = load i8, ptr %30, align 1, !tbaa !13
  %521 = zext i8 %520 to i32
  %522 = load i32, ptr %23, align 4, !tbaa !9
  %523 = load i32, ptr %21, align 4, !tbaa !9
  call void @libxsmm_aarch64_instruction_sve_compute(ptr noundef %515, i32 noundef 1694500867, i32 noundef %517, i32 noundef %519, i8 noundef zeroext 0, i32 noundef %521, i32 noundef %522, i32 noundef %523)
  %524 = load ptr, ptr %8, align 8, !tbaa !5
  %525 = load i32, ptr %18, align 4, !tbaa !9
  %526 = load i8, ptr %30, align 1, !tbaa !13
  %527 = zext i8 %526 to i32
  %528 = load i8, ptr %30, align 1, !tbaa !13
  %529 = zext i8 %528 to i32
  %530 = load i32, ptr %23, align 4, !tbaa !9
  %531 = load i32, ptr %21, align 4, !tbaa !9
  call void @libxsmm_aarch64_instruction_sve_compute(ptr noundef %524, i32 noundef 1694505987, i32 noundef %525, i32 noundef %527, i8 noundef zeroext 0, i32 noundef %529, i32 noundef %530, i32 noundef %531)
  %532 = load ptr, ptr %8, align 8, !tbaa !5
  %533 = load i8, ptr %29, align 1, !tbaa !13
  %534 = zext i8 %533 to i32
  %535 = load i8, ptr %30, align 1, !tbaa !13
  %536 = zext i8 %535 to i32
  %537 = load i8, ptr %32, align 1, !tbaa !13
  %538 = zext i8 %537 to i32
  %539 = load i32, ptr %23, align 4, !tbaa !9
  %540 = load i32, ptr %21, align 4, !tbaa !9
  call void @libxsmm_aarch64_instruction_sve_compute(ptr noundef %532, i32 noundef 1694500867, i32 noundef %534, i32 noundef %536, i8 noundef zeroext 0, i32 noundef %538, i32 noundef %539, i32 noundef %540)
  call void @llvm.lifetime.end.p0(i64 1, ptr %32) #4
  br label %541

541:                                              ; preds = %512
  %542 = load i8, ptr %31, align 1, !tbaa !13
  %543 = add i8 %542, 1
  store i8 %543, ptr %31, align 1, !tbaa !13
  br label %405, !llvm.loop !24

544:                                              ; preds = %405
  call void @llvm.lifetime.end.p0(i64 1, ptr %31) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %30) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %29) #4
  br label %550

545:                                              ; preds = %298
  %546 = load ptr, ptr %8, align 8, !tbaa !5
  %547 = load i32, ptr %18, align 4, !tbaa !9
  %548 = load i32, ptr %18, align 4, !tbaa !9
  %549 = load i32, ptr %22, align 4, !tbaa !9
  call void @libxsmm_aarch64_instruction_asimd_compute(ptr noundef %546, i32 noundef 782358538, i32 noundef %547, i32 noundef 127, i8 noundef zeroext 0, i32 noundef %548, i32 noundef %549)
  br label %550

550:                                              ; preds = %545, %544
  call void @llvm.lifetime.end.p0(i64 1, ptr %28) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %27) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #4
  br label %1747

551:                                              ; preds = %283
  %552 = load i32, ptr %10, align 4, !tbaa !9
  %553 = icmp eq i32 %552, 4
  br i1 %553, label %554, label %880

554:                                              ; preds = %551
  %555 = load i8, ptr %20, align 1, !tbaa !13
  %556 = icmp ne i8 %555, 0
  br i1 %556, label %557, label %874

557:                                              ; preds = %554
  %558 = call i32 @libxsmm_get_ulp_precision()
  %559 = icmp ne i32 %558, 2
  br i1 %559, label %560, label %567

560:                                              ; preds = %557
  %561 = load ptr, ptr %8, align 8, !tbaa !5
  %562 = load i32, ptr %18, align 4, !tbaa !9
  %563 = load i32, ptr %18, align 4, !tbaa !9
  %564 = load i32, ptr %18, align 4, !tbaa !9
  %565 = load i32, ptr %23, align 4, !tbaa !9
  %566 = load i32, ptr %21, align 4, !tbaa !9
  call void @libxsmm_aarch64_instruction_sve_compute(ptr noundef %561, i32 noundef 1695391874, i32 noundef %562, i32 noundef %563, i8 noundef zeroext 0, i32 noundef %564, i32 noundef %565, i32 noundef %566)
  br label %873

567:                                              ; preds = %557
  call void @llvm.lifetime.start.p0(i64 1, ptr %33) #4
  %568 = load ptr, ptr %19, align 8, !tbaa !5
  %569 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %568, i32 0, i32 29
  %570 = load i32, ptr %569, align 4, !tbaa !21
  %571 = trunc i32 %570 to i8
  %572 = zext i8 %571 to i32
  %573 = icmp eq i32 0, %572
  br i1 %573, label %581, label %574

574:                                              ; preds = %567
  %575 = load ptr, ptr %19, align 8, !tbaa !5
  %576 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %575, i32 0, i32 29
  %577 = load i32, ptr %576, align 4, !tbaa !21
  %578 = trunc i32 %577 to i8
  %579 = zext i8 %578 to i32
  %580 = icmp slt i32 0, %579
  br i1 %580, label %581, label %605

581:                                              ; preds = %574, %567
  %582 = load ptr, ptr %19, align 8, !tbaa !5
  %583 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %582, i32 0, i32 29
  %584 = load i32, ptr %583, align 4, !tbaa !21
  %585 = zext i32 %584 to i64
  %586 = mul i64 1, %585
  %587 = icmp ult i64 %586, 255
  br i1 %587, label %588, label %594

588:                                              ; preds = %581
  %589 = load ptr, ptr %19, align 8, !tbaa !5
  %590 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %589, i32 0, i32 29
  %591 = load i32, ptr %590, align 4, !tbaa !21
  %592 = zext i32 %591 to i64
  %593 = mul i64 1, %592
  br label %595

594:                                              ; preds = %581
  br label %595

595:                                              ; preds = %594, %588
  %596 = phi i64 [ %593, %588 ], [ 255, %594 ]
  %597 = icmp ule i64 %596, 255
  br i1 %597, label %598, label %605

598:                                              ; preds = %595
  %599 = load ptr, ptr %19, align 8, !tbaa !5
  %600 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %599, i32 0, i32 29
  %601 = load i32, ptr %600, align 4, !tbaa !21
  %602 = uitofp i32 %601 to double
  %603 = fcmp ole double 0.000000e+00, %602
  br i1 %603, label %604, label %605

604:                                              ; preds = %598
  br label %606

605:                                              ; preds = %598, %595, %574
  call void @__assert_fail(ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 789, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_compute_unary_op_2d_reg_block_aarch64) #5
  unreachable

606:                                              ; preds = %604
  %607 = load ptr, ptr %19, align 8, !tbaa !5
  %608 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %607, i32 0, i32 29
  %609 = load i32, ptr %608, align 4, !tbaa !21
  %610 = trunc i32 %609 to i8
  store i8 %610, ptr %33, align 1, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 1, ptr %34) #4
  store i8 1, ptr %34, align 1, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 1, ptr %35) #4
  %611 = load ptr, ptr %19, align 8, !tbaa !5
  %612 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %611, i32 0, i32 29
  %613 = load i32, ptr %612, align 4, !tbaa !21
  %614 = trunc i32 %613 to i8
  %615 = zext i8 %614 to i32
  %616 = icmp eq i32 0, %615
  br i1 %616, label %624, label %617

617:                                              ; preds = %606
  %618 = load ptr, ptr %19, align 8, !tbaa !5
  %619 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %618, i32 0, i32 29
  %620 = load i32, ptr %619, align 4, !tbaa !21
  %621 = trunc i32 %620 to i8
  %622 = zext i8 %621 to i32
  %623 = icmp slt i32 0, %622
  br i1 %623, label %624, label %648

624:                                              ; preds = %617, %606
  %625 = load ptr, ptr %19, align 8, !tbaa !5
  %626 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %625, i32 0, i32 29
  %627 = load i32, ptr %626, align 4, !tbaa !21
  %628 = zext i32 %627 to i64
  %629 = mul i64 1, %628
  %630 = icmp ult i64 %629, 255
  br i1 %630, label %631, label %637

631:                                              ; preds = %624
  %632 = load ptr, ptr %19, align 8, !tbaa !5
  %633 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %632, i32 0, i32 29
  %634 = load i32, ptr %633, align 4, !tbaa !21
  %635 = zext i32 %634 to i64
  %636 = mul i64 1, %635
  br label %638

637:                                              ; preds = %624
  br label %638

638:                                              ; preds = %637, %631
  %639 = phi i64 [ %636, %631 ], [ 255, %637 ]
  %640 = icmp ule i64 %639, 255
  br i1 %640, label %641, label %648

641:                                              ; preds = %638
  %642 = load ptr, ptr %19, align 8, !tbaa !5
  %643 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %642, i32 0, i32 29
  %644 = load i32, ptr %643, align 4, !tbaa !21
  %645 = uitofp i32 %644 to double
  %646 = fcmp ole double 0.000000e+00, %645
  br i1 %646, label %647, label %648

647:                                              ; preds = %641
  br label %649

648:                                              ; preds = %641, %638, %617
  call void @__assert_fail(ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 795, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_compute_unary_op_2d_reg_block_aarch64) #5
  unreachable

649:                                              ; preds = %647
  %650 = load ptr, ptr %19, align 8, !tbaa !5
  %651 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %650, i32 0, i32 29
  %652 = load i32, ptr %651, align 4, !tbaa !21
  %653 = trunc i32 %652 to i8
  store i8 %653, ptr %35, align 1, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 1, ptr %36) #4
  %654 = load ptr, ptr %19, align 8, !tbaa !5
  %655 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %654, i32 0, i32 30
  %656 = load i32, ptr %655, align 4, !tbaa !23
  %657 = trunc i32 %656 to i8
  %658 = zext i8 %657 to i32
  %659 = icmp eq i32 0, %658
  br i1 %659, label %667, label %660

660:                                              ; preds = %649
  %661 = load ptr, ptr %19, align 8, !tbaa !5
  %662 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %661, i32 0, i32 30
  %663 = load i32, ptr %662, align 4, !tbaa !23
  %664 = trunc i32 %663 to i8
  %665 = zext i8 %664 to i32
  %666 = icmp slt i32 0, %665
  br i1 %666, label %667, label %691

667:                                              ; preds = %660, %649
  %668 = load ptr, ptr %19, align 8, !tbaa !5
  %669 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %668, i32 0, i32 30
  %670 = load i32, ptr %669, align 4, !tbaa !23
  %671 = zext i32 %670 to i64
  %672 = mul i64 1, %671
  %673 = icmp ult i64 %672, 255
  br i1 %673, label %674, label %680

674:                                              ; preds = %667
  %675 = load ptr, ptr %19, align 8, !tbaa !5
  %676 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %675, i32 0, i32 30
  %677 = load i32, ptr %676, align 4, !tbaa !23
  %678 = zext i32 %677 to i64
  %679 = mul i64 1, %678
  br label %681

680:                                              ; preds = %667
  br label %681

681:                                              ; preds = %680, %674
  %682 = phi i64 [ %679, %674 ], [ 255, %680 ]
  %683 = icmp ule i64 %682, 255
  br i1 %683, label %684, label %691

684:                                              ; preds = %681
  %685 = load ptr, ptr %19, align 8, !tbaa !5
  %686 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %685, i32 0, i32 30
  %687 = load i32, ptr %686, align 4, !tbaa !23
  %688 = uitofp i32 %687 to double
  %689 = fcmp ole double 0.000000e+00, %688
  br i1 %689, label %690, label %691

690:                                              ; preds = %684
  br label %692

691:                                              ; preds = %684, %681, %660
  call void @__assert_fail(ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 796, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_compute_unary_op_2d_reg_block_aarch64) #5
  unreachable

692:                                              ; preds = %690
  %693 = load ptr, ptr %19, align 8, !tbaa !5
  %694 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %693, i32 0, i32 30
  %695 = load i32, ptr %694, align 4, !tbaa !23
  %696 = trunc i32 %695 to i8
  store i8 %696, ptr %36, align 1, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 1, ptr %37) #4
  %697 = load ptr, ptr %8, align 8, !tbaa !5
  %698 = load i32, ptr %18, align 4, !tbaa !9
  %699 = load i32, ptr %18, align 4, !tbaa !9
  %700 = load i8, ptr %33, align 1, !tbaa !13
  %701 = zext i8 %700 to i32
  %702 = load i32, ptr %23, align 4, !tbaa !9
  %703 = load i32, ptr %21, align 4, !tbaa !9
  call void @libxsmm_aarch64_instruction_sve_compute(ptr noundef %697, i32 noundef 1695428610, i32 noundef %698, i32 noundef %699, i8 noundef zeroext 0, i32 noundef %701, i32 noundef %702, i32 noundef %703)
  %704 = load ptr, ptr %8, align 8, !tbaa !5
  %705 = load i32, ptr %18, align 4, !tbaa !9
  %706 = load i8, ptr %33, align 1, !tbaa !13
  %707 = zext i8 %706 to i32
  %708 = load i32, ptr %18, align 4, !tbaa !9
  %709 = load i32, ptr %23, align 4, !tbaa !9
  %710 = load i32, ptr %21, align 4, !tbaa !9
  call void @libxsmm_aarch64_instruction_sve_compute(ptr noundef %704, i32 noundef 1694504963, i32 noundef %705, i32 noundef %707, i8 noundef zeroext 0, i32 noundef %708, i32 noundef %709, i32 noundef %710)
  %711 = load ptr, ptr %8, align 8, !tbaa !5
  %712 = load i32, ptr %18, align 4, !tbaa !9
  %713 = load i8, ptr %33, align 1, !tbaa !13
  %714 = zext i8 %713 to i32
  %715 = load i32, ptr %18, align 4, !tbaa !9
  %716 = load i32, ptr %23, align 4, !tbaa !9
  %717 = load i32, ptr %21, align 4, !tbaa !9
  call void @libxsmm_aarch64_instruction_sve_compute(ptr noundef %711, i32 noundef 1694500867, i32 noundef %712, i32 noundef %714, i8 noundef zeroext 0, i32 noundef %715, i32 noundef %716, i32 noundef %717)
  %718 = load ptr, ptr %8, align 8, !tbaa !5
  %719 = load i32, ptr %18, align 4, !tbaa !9
  %720 = load i32, ptr %18, align 4, !tbaa !9
  %721 = load i8, ptr %34, align 1, !tbaa !13
  %722 = zext i8 %721 to i32
  %723 = icmp sgt i32 %722, 0
  br i1 %723, label %724, label %727

724:                                              ; preds = %692
  %725 = load i8, ptr %35, align 1, !tbaa !13
  %726 = zext i8 %725 to i32
  br label %729

727:                                              ; preds = %692
  %728 = load i32, ptr %18, align 4, !tbaa !9
  br label %729

729:                                              ; preds = %727, %724
  %730 = phi i32 [ %726, %724 ], [ %728, %727 ]
  %731 = load i32, ptr %23, align 4, !tbaa !9
  %732 = load i32, ptr %21, align 4, !tbaa !9
  call void @libxsmm_aarch64_instruction_sve_compute(ptr noundef %718, i32 noundef 1695494146, i32 noundef %719, i32 noundef %720, i8 noundef zeroext 0, i32 noundef %730, i32 noundef %731, i32 noundef %732)
  store i8 0, ptr %37, align 1, !tbaa !13
  br label %733

733:                                              ; preds = %869, %729
  %734 = load i8, ptr %37, align 1, !tbaa !13
  %735 = zext i8 %734 to i32
  %736 = load i8, ptr %34, align 1, !tbaa !13
  %737 = zext i8 %736 to i32
  %738 = icmp slt i32 %735, %737
  br i1 %738, label %739, label %872

739:                                              ; preds = %733
  call void @llvm.lifetime.start.p0(i64 1, ptr %38) #4
  %740 = load i8, ptr %37, align 1, !tbaa !13
  %741 = zext i8 %740 to i32
  %742 = load i8, ptr %34, align 1, !tbaa !13
  %743 = zext i8 %742 to i32
  %744 = sub nsw i32 %743, 1
  %745 = icmp eq i32 %741, %744
  br i1 %745, label %746, label %748

746:                                              ; preds = %739
  %747 = load i32, ptr %18, align 4, !tbaa !9
  br label %751

748:                                              ; preds = %739
  %749 = load i8, ptr %35, align 1, !tbaa !13
  %750 = zext i8 %749 to i32
  br label %751

751:                                              ; preds = %748, %746
  %752 = phi i32 [ %747, %746 ], [ %750, %748 ]
  %753 = trunc i32 %752 to i8
  %754 = zext i8 %753 to i32
  %755 = icmp eq i32 0, %754
  br i1 %755, label %773, label %756

756:                                              ; preds = %751
  %757 = load i8, ptr %37, align 1, !tbaa !13
  %758 = zext i8 %757 to i32
  %759 = load i8, ptr %34, align 1, !tbaa !13
  %760 = zext i8 %759 to i32
  %761 = sub nsw i32 %760, 1
  %762 = icmp eq i32 %758, %761
  br i1 %762, label %763, label %765

763:                                              ; preds = %756
  %764 = load i32, ptr %18, align 4, !tbaa !9
  br label %768

765:                                              ; preds = %756
  %766 = load i8, ptr %35, align 1, !tbaa !13
  %767 = zext i8 %766 to i32
  br label %768

768:                                              ; preds = %765, %763
  %769 = phi i32 [ %764, %763 ], [ %767, %765 ]
  %770 = trunc i32 %769 to i8
  %771 = zext i8 %770 to i32
  %772 = icmp slt i32 0, %771
  br i1 %772, label %773, label %827

773:                                              ; preds = %768, %751
  %774 = load i8, ptr %37, align 1, !tbaa !13
  %775 = zext i8 %774 to i32
  %776 = load i8, ptr %34, align 1, !tbaa !13
  %777 = zext i8 %776 to i32
  %778 = sub nsw i32 %777, 1
  %779 = icmp eq i32 %775, %778
  br i1 %779, label %780, label %782

780:                                              ; preds = %773
  %781 = load i32, ptr %18, align 4, !tbaa !9
  br label %785

782:                                              ; preds = %773
  %783 = load i8, ptr %35, align 1, !tbaa !13
  %784 = zext i8 %783 to i32
  br label %785

785:                                              ; preds = %782, %780
  %786 = phi i32 [ %781, %780 ], [ %784, %782 ]
  %787 = zext i32 %786 to i64
  %788 = mul i64 1, %787
  %789 = icmp ult i64 %788, 255
  br i1 %789, label %790, label %806

790:                                              ; preds = %785
  %791 = load i8, ptr %37, align 1, !tbaa !13
  %792 = zext i8 %791 to i32
  %793 = load i8, ptr %34, align 1, !tbaa !13
  %794 = zext i8 %793 to i32
  %795 = sub nsw i32 %794, 1
  %796 = icmp eq i32 %792, %795
  br i1 %796, label %797, label %799

797:                                              ; preds = %790
  %798 = load i32, ptr %18, align 4, !tbaa !9
  br label %802

799:                                              ; preds = %790
  %800 = load i8, ptr %35, align 1, !tbaa !13
  %801 = zext i8 %800 to i32
  br label %802

802:                                              ; preds = %799, %797
  %803 = phi i32 [ %798, %797 ], [ %801, %799 ]
  %804 = zext i32 %803 to i64
  %805 = mul i64 1, %804
  br label %807

806:                                              ; preds = %785
  br label %807

807:                                              ; preds = %806, %802
  %808 = phi i64 [ %805, %802 ], [ 255, %806 ]
  %809 = icmp ule i64 %808, 255
  br i1 %809, label %810, label %827

810:                                              ; preds = %807
  %811 = load i8, ptr %37, align 1, !tbaa !13
  %812 = zext i8 %811 to i32
  %813 = load i8, ptr %34, align 1, !tbaa !13
  %814 = zext i8 %813 to i32
  %815 = sub nsw i32 %814, 1
  %816 = icmp eq i32 %812, %815
  br i1 %816, label %817, label %819

817:                                              ; preds = %810
  %818 = load i32, ptr %18, align 4, !tbaa !9
  br label %822

819:                                              ; preds = %810
  %820 = load i8, ptr %35, align 1, !tbaa !13
  %821 = zext i8 %820 to i32
  br label %822

822:                                              ; preds = %819, %817
  %823 = phi i32 [ %818, %817 ], [ %821, %819 ]
  %824 = uitofp i32 %823 to double
  %825 = fcmp ole double 0.000000e+00, %824
  br i1 %825, label %826, label %827

826:                                              ; preds = %822
  br label %828

827:                                              ; preds = %822, %807, %768
  call void @__assert_fail(ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 810, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_compute_unary_op_2d_reg_block_aarch64) #5
  unreachable

828:                                              ; preds = %826
  %829 = load i8, ptr %37, align 1, !tbaa !13
  %830 = zext i8 %829 to i32
  %831 = load i8, ptr %34, align 1, !tbaa !13
  %832 = zext i8 %831 to i32
  %833 = sub nsw i32 %832, 1
  %834 = icmp eq i32 %830, %833
  br i1 %834, label %835, label %837

835:                                              ; preds = %828
  %836 = load i32, ptr %18, align 4, !tbaa !9
  br label %840

837:                                              ; preds = %828
  %838 = load i8, ptr %35, align 1, !tbaa !13
  %839 = zext i8 %838 to i32
  br label %840

840:                                              ; preds = %837, %835
  %841 = phi i32 [ %836, %835 ], [ %839, %837 ]
  %842 = trunc i32 %841 to i8
  store i8 %842, ptr %38, align 1, !tbaa !13
  %843 = load ptr, ptr %8, align 8, !tbaa !5
  %844 = load i8, ptr %35, align 1, !tbaa !13
  %845 = zext i8 %844 to i32
  %846 = load i8, ptr %35, align 1, !tbaa !13
  %847 = zext i8 %846 to i32
  %848 = load i8, ptr %36, align 1, !tbaa !13
  %849 = zext i8 %848 to i32
  %850 = load i32, ptr %23, align 4, !tbaa !9
  %851 = load i32, ptr %21, align 4, !tbaa !9
  call void @libxsmm_aarch64_instruction_sve_compute(ptr noundef %843, i32 noundef 1694500867, i32 noundef %845, i32 noundef %847, i8 noundef zeroext 0, i32 noundef %849, i32 noundef %850, i32 noundef %851)
  %852 = load ptr, ptr %8, align 8, !tbaa !5
  %853 = load i32, ptr %18, align 4, !tbaa !9
  %854 = load i8, ptr %36, align 1, !tbaa !13
  %855 = zext i8 %854 to i32
  %856 = load i8, ptr %36, align 1, !tbaa !13
  %857 = zext i8 %856 to i32
  %858 = load i32, ptr %23, align 4, !tbaa !9
  %859 = load i32, ptr %21, align 4, !tbaa !9
  call void @libxsmm_aarch64_instruction_sve_compute(ptr noundef %852, i32 noundef 1694505987, i32 noundef %853, i32 noundef %855, i8 noundef zeroext 0, i32 noundef %857, i32 noundef %858, i32 noundef %859)
  %860 = load ptr, ptr %8, align 8, !tbaa !5
  %861 = load i8, ptr %35, align 1, !tbaa !13
  %862 = zext i8 %861 to i32
  %863 = load i8, ptr %36, align 1, !tbaa !13
  %864 = zext i8 %863 to i32
  %865 = load i8, ptr %38, align 1, !tbaa !13
  %866 = zext i8 %865 to i32
  %867 = load i32, ptr %23, align 4, !tbaa !9
  %868 = load i32, ptr %21, align 4, !tbaa !9
  call void @libxsmm_aarch64_instruction_sve_compute(ptr noundef %860, i32 noundef 1694500867, i32 noundef %862, i32 noundef %864, i8 noundef zeroext 0, i32 noundef %866, i32 noundef %867, i32 noundef %868)
  call void @llvm.lifetime.end.p0(i64 1, ptr %38) #4
  br label %869

869:                                              ; preds = %840
  %870 = load i8, ptr %37, align 1, !tbaa !13
  %871 = add i8 %870, 1
  store i8 %871, ptr %37, align 1, !tbaa !13
  br label %733, !llvm.loop !26

872:                                              ; preds = %733
  call void @llvm.lifetime.end.p0(i64 1, ptr %37) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %36) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %35) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %34) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %33) #4
  br label %873

873:                                              ; preds = %872, %560
  br label %879

874:                                              ; preds = %554
  %875 = load ptr, ptr %8, align 8, !tbaa !5
  %876 = load i32, ptr %18, align 4, !tbaa !9
  %877 = load i32, ptr %18, align 4, !tbaa !9
  %878 = load i32, ptr %22, align 4, !tbaa !9
  call void @libxsmm_aarch64_instruction_asimd_compute(ptr noundef %875, i32 noundef 782366730, i32 noundef %876, i32 noundef 127, i8 noundef zeroext 0, i32 noundef %877, i32 noundef %878)
  br label %879

879:                                              ; preds = %874, %873
  br label %1746

880:                                              ; preds = %551
  %881 = load i32, ptr %10, align 4, !tbaa !9
  %882 = icmp eq i32 %881, 17
  br i1 %882, label %883, label %992

883:                                              ; preds = %880
  %884 = load i8, ptr %20, align 1, !tbaa !13
  %885 = icmp ne i8 %884, 0
  br i1 %885, label %886, label %954

886:                                              ; preds = %883
  %887 = load ptr, ptr %8, align 8, !tbaa !5
  %888 = load i32, ptr %18, align 4, !tbaa !9
  %889 = load ptr, ptr %19, align 8, !tbaa !5
  %890 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %889, i32 0, i32 64
  %891 = load i32, ptr %890, align 4, !tbaa !27
  %892 = load ptr, ptr %19, align 8, !tbaa !5
  %893 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %892, i32 0, i32 65
  %894 = load i32, ptr %893, align 4, !tbaa !28
  %895 = load ptr, ptr %19, align 8, !tbaa !5
  %896 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %895, i32 0, i32 36
  %897 = load i32, ptr %896, align 4, !tbaa !29
  %898 = load ptr, ptr %19, align 8, !tbaa !5
  %899 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %898, i32 0, i32 40
  %900 = load i32, ptr %899, align 4, !tbaa !30
  %901 = load ptr, ptr %19, align 8, !tbaa !5
  %902 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %901, i32 0, i32 44
  %903 = load i32, ptr %902, align 4, !tbaa !31
  %904 = load ptr, ptr %19, align 8, !tbaa !5
  %905 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %904, i32 0, i32 51
  %906 = load i32, ptr %905, align 4, !tbaa !32
  %907 = load ptr, ptr %19, align 8, !tbaa !5
  %908 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %907, i32 0, i32 56
  %909 = load i32, ptr %908, align 4, !tbaa !33
  %910 = load ptr, ptr %19, align 8, !tbaa !5
  %911 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %910, i32 0, i32 60
  %912 = load i32, ptr %911, align 4, !tbaa !34
  %913 = load ptr, ptr %19, align 8, !tbaa !5
  %914 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %913, i32 0, i32 66
  %915 = load i32, ptr %914, align 4, !tbaa !35
  %916 = load ptr, ptr %19, align 8, !tbaa !5
  %917 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %916, i32 0, i32 52
  %918 = load i32, ptr %917, align 4, !tbaa !36
  %919 = load ptr, ptr %19, align 8, !tbaa !5
  %920 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %919, i32 0, i32 53
  %921 = load i32, ptr %920, align 4, !tbaa !37
  %922 = load i32, ptr %21, align 4, !tbaa !9
  %923 = load i32, ptr %23, align 4, !tbaa !9
  %924 = trunc i32 %923 to i8
  %925 = zext i8 %924 to i32
  %926 = icmp eq i32 0, %925
  br i1 %926, label %932, label %927

927:                                              ; preds = %886
  %928 = load i32, ptr %23, align 4, !tbaa !9
  %929 = trunc i32 %928 to i8
  %930 = zext i8 %929 to i32
  %931 = icmp slt i32 0, %930
  br i1 %931, label %932, label %950

932:                                              ; preds = %927, %886
  %933 = load i32, ptr %23, align 4, !tbaa !9
  %934 = zext i32 %933 to i64
  %935 = mul i64 1, %934
  %936 = icmp ult i64 %935, 255
  br i1 %936, label %937, label %941

937:                                              ; preds = %932
  %938 = load i32, ptr %23, align 4, !tbaa !9
  %939 = zext i32 %938 to i64
  %940 = mul i64 1, %939
  br label %942

941:                                              ; preds = %932
  br label %942

942:                                              ; preds = %941, %937
  %943 = phi i64 [ %940, %937 ], [ 255, %941 ]
  %944 = icmp ule i64 %943, 255
  br i1 %944, label %945, label %950

945:                                              ; preds = %942
  %946 = load i32, ptr %23, align 4, !tbaa !9
  %947 = uitofp i32 %946 to double
  %948 = fcmp ole double 0.000000e+00, %947
  br i1 %948, label %949, label %950

949:                                              ; preds = %945
  br label %951

950:                                              ; preds = %945, %942, %927
  call void @__assert_fail(ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 840, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_compute_unary_op_2d_reg_block_aarch64) #5
  unreachable

951:                                              ; preds = %949
  %952 = load i32, ptr %23, align 4, !tbaa !9
  %953 = trunc i32 %952 to i8
  call void @libxsmm_generator_exp_ps_3dts_aarch64_sve(ptr noundef %887, i32 noundef %888, i32 noundef %891, i32 noundef %894, i32 noundef %897, i32 noundef %900, i32 noundef %903, i32 noundef %906, i32 noundef %909, i32 noundef %912, i32 noundef %915, i32 noundef %918, i32 noundef %921, i32 noundef %922, i8 noundef zeroext %953)
  br label %991

954:                                              ; preds = %883
  %955 = load ptr, ptr %8, align 8, !tbaa !5
  %956 = load i32, ptr %18, align 4, !tbaa !9
  %957 = load ptr, ptr %19, align 8, !tbaa !5
  %958 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %957, i32 0, i32 64
  %959 = load i32, ptr %958, align 4, !tbaa !27
  %960 = load ptr, ptr %19, align 8, !tbaa !5
  %961 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %960, i32 0, i32 65
  %962 = load i32, ptr %961, align 4, !tbaa !28
  %963 = load ptr, ptr %19, align 8, !tbaa !5
  %964 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %963, i32 0, i32 36
  %965 = load i32, ptr %964, align 4, !tbaa !29
  %966 = load ptr, ptr %19, align 8, !tbaa !5
  %967 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %966, i32 0, i32 40
  %968 = load i32, ptr %967, align 4, !tbaa !30
  %969 = load ptr, ptr %19, align 8, !tbaa !5
  %970 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %969, i32 0, i32 44
  %971 = load i32, ptr %970, align 4, !tbaa !31
  %972 = load ptr, ptr %19, align 8, !tbaa !5
  %973 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %972, i32 0, i32 51
  %974 = load i32, ptr %973, align 4, !tbaa !32
  %975 = load ptr, ptr %19, align 8, !tbaa !5
  %976 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %975, i32 0, i32 56
  %977 = load i32, ptr %976, align 4, !tbaa !33
  %978 = load ptr, ptr %19, align 8, !tbaa !5
  %979 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %978, i32 0, i32 60
  %980 = load i32, ptr %979, align 4, !tbaa !34
  %981 = load ptr, ptr %19, align 8, !tbaa !5
  %982 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %981, i32 0, i32 66
  %983 = load i32, ptr %982, align 4, !tbaa !35
  %984 = load ptr, ptr %19, align 8, !tbaa !5
  %985 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %984, i32 0, i32 52
  %986 = load i32, ptr %985, align 4, !tbaa !36
  %987 = load ptr, ptr %19, align 8, !tbaa !5
  %988 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %987, i32 0, i32 53
  %989 = load i32, ptr %988, align 4, !tbaa !37
  %990 = load i32, ptr %22, align 4, !tbaa !9
  call void @libxsmm_generator_exp_ps_3dts_aarch64_asimd(ptr noundef %955, i32 noundef %956, i32 noundef %959, i32 noundef %962, i32 noundef %965, i32 noundef %968, i32 noundef %971, i32 noundef %974, i32 noundef %977, i32 noundef %980, i32 noundef %983, i32 noundef %986, i32 noundef %989, i32 noundef %990)
  br label %991

991:                                              ; preds = %954, %951
  br label %1745

992:                                              ; preds = %880
  %993 = load i32, ptr %10, align 4, !tbaa !9
  %994 = icmp eq i32 %993, 7
  br i1 %994, label %998, label %995

995:                                              ; preds = %992
  %996 = load i32, ptr %10, align 4, !tbaa !9
  %997 = icmp eq i32 %996, 8
  br i1 %997, label %998, label %1203

998:                                              ; preds = %995, %992
  %999 = load i8, ptr %20, align 1, !tbaa !13
  %1000 = icmp ne i8 %999, 0
  br i1 %1000, label %1001, label %1087

1001:                                             ; preds = %998
  %1002 = load ptr, ptr %8, align 8, !tbaa !5
  %1003 = load i32, ptr %18, align 4, !tbaa !9
  %1004 = load ptr, ptr %19, align 8, !tbaa !5
  %1005 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1004, i32 0, i32 33
  %1006 = load i32, ptr %1005, align 4, !tbaa !38
  %1007 = load ptr, ptr %19, align 8, !tbaa !5
  %1008 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1007, i32 0, i32 34
  %1009 = load i32, ptr %1008, align 4, !tbaa !39
  %1010 = load ptr, ptr %19, align 8, !tbaa !5
  %1011 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1010, i32 0, i32 35
  %1012 = load i32, ptr %1011, align 4, !tbaa !40
  %1013 = load ptr, ptr %19, align 8, !tbaa !5
  %1014 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1013, i32 0, i32 57
  %1015 = load i32, ptr %1014, align 4, !tbaa !41
  %1016 = load ptr, ptr %19, align 8, !tbaa !5
  %1017 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1016, i32 0, i32 58
  %1018 = load i32, ptr %1017, align 4, !tbaa !42
  %1019 = load ptr, ptr %19, align 8, !tbaa !5
  %1020 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1019, i32 0, i32 36
  %1021 = load i32, ptr %1020, align 4, !tbaa !29
  %1022 = load ptr, ptr %19, align 8, !tbaa !5
  %1023 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1022, i32 0, i32 40
  %1024 = load i32, ptr %1023, align 4, !tbaa !30
  %1025 = load ptr, ptr %19, align 8, !tbaa !5
  %1026 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1025, i32 0, i32 44
  %1027 = load i32, ptr %1026, align 4, !tbaa !31
  %1028 = load ptr, ptr %19, align 8, !tbaa !5
  %1029 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1028, i32 0, i32 51
  %1030 = load i32, ptr %1029, align 4, !tbaa !32
  %1031 = load ptr, ptr %19, align 8, !tbaa !5
  %1032 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1031, i32 0, i32 48
  %1033 = load i32, ptr %1032, align 4, !tbaa !43
  %1034 = load ptr, ptr %19, align 8, !tbaa !5
  %1035 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1034, i32 0, i32 49
  %1036 = load i32, ptr %1035, align 4, !tbaa !44
  %1037 = load ptr, ptr %19, align 8, !tbaa !5
  %1038 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1037, i32 0, i32 50
  %1039 = load i32, ptr %1038, align 4, !tbaa !45
  %1040 = load ptr, ptr %19, align 8, !tbaa !5
  %1041 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1040, i32 0, i32 52
  %1042 = load i32, ptr %1041, align 4, !tbaa !36
  %1043 = load ptr, ptr %19, align 8, !tbaa !5
  %1044 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1043, i32 0, i32 53
  %1045 = load i32, ptr %1044, align 4, !tbaa !37
  %1046 = load ptr, ptr %19, align 8, !tbaa !5
  %1047 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1046, i32 0, i32 54
  %1048 = load i32, ptr %1047, align 4, !tbaa !20
  %1049 = load ptr, ptr %19, align 8, !tbaa !5
  %1050 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1049, i32 0, i32 55
  %1051 = load i32, ptr %1050, align 4, !tbaa !46
  %1052 = load ptr, ptr %19, align 8, !tbaa !5
  %1053 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1052, i32 0, i32 86
  %1054 = load i32, ptr %1053, align 4, !tbaa !22
  %1055 = load i32, ptr %21, align 4, !tbaa !9
  %1056 = load i32, ptr %23, align 4, !tbaa !9
  %1057 = trunc i32 %1056 to i8
  %1058 = zext i8 %1057 to i32
  %1059 = icmp eq i32 0, %1058
  br i1 %1059, label %1065, label %1060

1060:                                             ; preds = %1001
  %1061 = load i32, ptr %23, align 4, !tbaa !9
  %1062 = trunc i32 %1061 to i8
  %1063 = zext i8 %1062 to i32
  %1064 = icmp slt i32 0, %1063
  br i1 %1064, label %1065, label %1083

1065:                                             ; preds = %1060, %1001
  %1066 = load i32, ptr %23, align 4, !tbaa !9
  %1067 = zext i32 %1066 to i64
  %1068 = mul i64 1, %1067
  %1069 = icmp ult i64 %1068, 255
  br i1 %1069, label %1070, label %1074

1070:                                             ; preds = %1065
  %1071 = load i32, ptr %23, align 4, !tbaa !9
  %1072 = zext i32 %1071 to i64
  %1073 = mul i64 1, %1072
  br label %1075

1074:                                             ; preds = %1065
  br label %1075

1075:                                             ; preds = %1074, %1070
  %1076 = phi i64 [ %1073, %1070 ], [ 255, %1074 ]
  %1077 = icmp ule i64 %1076, 255
  br i1 %1077, label %1078, label %1083

1078:                                             ; preds = %1075
  %1079 = load i32, ptr %23, align 4, !tbaa !9
  %1080 = uitofp i32 %1079 to double
  %1081 = fcmp ole double 0.000000e+00, %1080
  br i1 %1081, label %1082, label %1083

1082:                                             ; preds = %1078
  br label %1084

1083:                                             ; preds = %1078, %1075, %1060
  call void @__assert_fail(ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 880, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_compute_unary_op_2d_reg_block_aarch64) #5
  unreachable

1084:                                             ; preds = %1082
  %1085 = load i32, ptr %23, align 4, !tbaa !9
  %1086 = trunc i32 %1085 to i8
  call void @libxsmm_generator_tanh_ps_rational_78_aarch64_sve(ptr noundef %1002, i32 noundef %1003, i32 noundef %1006, i32 noundef %1009, i32 noundef %1012, i32 noundef %1015, i32 noundef %1018, i32 noundef %1021, i32 noundef %1024, i32 noundef %1027, i32 noundef %1030, i32 noundef %1033, i32 noundef %1036, i32 noundef %1039, i32 noundef %1042, i32 noundef %1045, i32 noundef %1048, i32 noundef %1051, i32 noundef %1054, i32 noundef %1055, i8 noundef zeroext %1086)
  br label %1142

1087:                                             ; preds = %998
  %1088 = load ptr, ptr %8, align 8, !tbaa !5
  %1089 = load i32, ptr %18, align 4, !tbaa !9
  %1090 = load ptr, ptr %19, align 8, !tbaa !5
  %1091 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1090, i32 0, i32 33
  %1092 = load i32, ptr %1091, align 4, !tbaa !38
  %1093 = load ptr, ptr %19, align 8, !tbaa !5
  %1094 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1093, i32 0, i32 34
  %1095 = load i32, ptr %1094, align 4, !tbaa !39
  %1096 = load ptr, ptr %19, align 8, !tbaa !5
  %1097 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1096, i32 0, i32 35
  %1098 = load i32, ptr %1097, align 4, !tbaa !40
  %1099 = load ptr, ptr %19, align 8, !tbaa !5
  %1100 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1099, i32 0, i32 57
  %1101 = load i32, ptr %1100, align 4, !tbaa !41
  %1102 = load ptr, ptr %19, align 8, !tbaa !5
  %1103 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1102, i32 0, i32 58
  %1104 = load i32, ptr %1103, align 4, !tbaa !42
  %1105 = load ptr, ptr %19, align 8, !tbaa !5
  %1106 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1105, i32 0, i32 36
  %1107 = load i32, ptr %1106, align 4, !tbaa !29
  %1108 = load ptr, ptr %19, align 8, !tbaa !5
  %1109 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1108, i32 0, i32 40
  %1110 = load i32, ptr %1109, align 4, !tbaa !30
  %1111 = load ptr, ptr %19, align 8, !tbaa !5
  %1112 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1111, i32 0, i32 44
  %1113 = load i32, ptr %1112, align 4, !tbaa !31
  %1114 = load ptr, ptr %19, align 8, !tbaa !5
  %1115 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1114, i32 0, i32 51
  %1116 = load i32, ptr %1115, align 4, !tbaa !32
  %1117 = load ptr, ptr %19, align 8, !tbaa !5
  %1118 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1117, i32 0, i32 48
  %1119 = load i32, ptr %1118, align 4, !tbaa !43
  %1120 = load ptr, ptr %19, align 8, !tbaa !5
  %1121 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1120, i32 0, i32 49
  %1122 = load i32, ptr %1121, align 4, !tbaa !44
  %1123 = load ptr, ptr %19, align 8, !tbaa !5
  %1124 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1123, i32 0, i32 50
  %1125 = load i32, ptr %1124, align 4, !tbaa !45
  %1126 = load ptr, ptr %19, align 8, !tbaa !5
  %1127 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1126, i32 0, i32 52
  %1128 = load i32, ptr %1127, align 4, !tbaa !36
  %1129 = load ptr, ptr %19, align 8, !tbaa !5
  %1130 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1129, i32 0, i32 53
  %1131 = load i32, ptr %1130, align 4, !tbaa !37
  %1132 = load ptr, ptr %19, align 8, !tbaa !5
  %1133 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1132, i32 0, i32 54
  %1134 = load i32, ptr %1133, align 4, !tbaa !20
  %1135 = load ptr, ptr %19, align 8, !tbaa !5
  %1136 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1135, i32 0, i32 55
  %1137 = load i32, ptr %1136, align 4, !tbaa !46
  %1138 = load ptr, ptr %19, align 8, !tbaa !5
  %1139 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1138, i32 0, i32 86
  %1140 = load i32, ptr %1139, align 4, !tbaa !22
  %1141 = load i32, ptr %22, align 4, !tbaa !9
  call void @libxsmm_generator_tanh_ps_rational_78_aarch64_asimd(ptr noundef %1088, i32 noundef %1089, i32 noundef %1092, i32 noundef %1095, i32 noundef %1098, i32 noundef %1101, i32 noundef %1104, i32 noundef %1107, i32 noundef %1110, i32 noundef %1113, i32 noundef %1116, i32 noundef %1119, i32 noundef %1122, i32 noundef %1125, i32 noundef %1128, i32 noundef %1131, i32 noundef %1134, i32 noundef %1137, i32 noundef %1140, i32 noundef %1141)
  br label %1142

1142:                                             ; preds = %1087, %1084
  %1143 = load i32, ptr %10, align 4, !tbaa !9
  %1144 = icmp eq i32 %1143, 8
  br i1 %1144, label %1145, label %1202

1145:                                             ; preds = %1142
  %1146 = load i8, ptr %20, align 1, !tbaa !13
  %1147 = icmp ne i8 %1146, 0
  br i1 %1147, label %1148, label %1176

1148:                                             ; preds = %1145
  %1149 = load ptr, ptr %8, align 8, !tbaa !5
  %1150 = load i32, ptr %18, align 4, !tbaa !9
  %1151 = load i32, ptr %18, align 4, !tbaa !9
  %1152 = load ptr, ptr %19, align 8, !tbaa !5
  %1153 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1152, i32 0, i32 86
  %1154 = load i32, ptr %1153, align 4, !tbaa !22
  %1155 = load i32, ptr %23, align 4, !tbaa !9
  %1156 = load i32, ptr %21, align 4, !tbaa !9
  call void @libxsmm_aarch64_instruction_sve_compute(ptr noundef %1149, i32 noundef 1694500867, i32 noundef %1150, i32 noundef %1151, i8 noundef zeroext 0, i32 noundef %1154, i32 noundef %1155, i32 noundef %1156)
  %1157 = load ptr, ptr %8, align 8, !tbaa !5
  %1158 = load ptr, ptr %19, align 8, !tbaa !5
  %1159 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1158, i32 0, i32 86
  %1160 = load i32, ptr %1159, align 4, !tbaa !22
  %1161 = load ptr, ptr %19, align 8, !tbaa !5
  %1162 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1161, i32 0, i32 86
  %1163 = load i32, ptr %1162, align 4, !tbaa !22
  %1164 = load i32, ptr %23, align 4, !tbaa !9
  %1165 = load i32, ptr %21, align 4, !tbaa !9
  call void @libxsmm_aarch64_instruction_sve_compute(ptr noundef %1157, i32 noundef 69050498, i32 noundef %1160, i32 noundef 127, i8 noundef zeroext 0, i32 noundef %1163, i32 noundef %1164, i32 noundef %1165)
  %1166 = load ptr, ptr %8, align 8, !tbaa !5
  %1167 = load ptr, ptr %19, align 8, !tbaa !5
  %1168 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1167, i32 0, i32 86
  %1169 = load i32, ptr %1168, align 4, !tbaa !22
  %1170 = load ptr, ptr %19, align 8, !tbaa !5
  %1171 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1170, i32 0, i32 55
  %1172 = load i32, ptr %1171, align 4, !tbaa !46
  %1173 = load i32, ptr %18, align 4, !tbaa !9
  %1174 = load i32, ptr %23, align 4, !tbaa !9
  %1175 = load i32, ptr %21, align 4, !tbaa !9
  call void @libxsmm_aarch64_instruction_sve_compute(ptr noundef %1166, i32 noundef 1694499843, i32 noundef %1169, i32 noundef %1172, i8 noundef zeroext 0, i32 noundef %1173, i32 noundef %1174, i32 noundef %1175)
  br label %1201

1176:                                             ; preds = %1145
  %1177 = load ptr, ptr %8, align 8, !tbaa !5
  %1178 = load i32, ptr %18, align 4, !tbaa !9
  %1179 = load i32, ptr %18, align 4, !tbaa !9
  %1180 = load ptr, ptr %19, align 8, !tbaa !5
  %1181 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1180, i32 0, i32 86
  %1182 = load i32, ptr %1181, align 4, !tbaa !22
  %1183 = load i32, ptr %22, align 4, !tbaa !9
  call void @libxsmm_aarch64_instruction_asimd_compute(ptr noundef %1177, i32 noundef 773905419, i32 noundef %1178, i32 noundef %1179, i8 noundef zeroext 0, i32 noundef %1182, i32 noundef %1183)
  %1184 = load ptr, ptr %8, align 8, !tbaa !5
  %1185 = load ptr, ptr %19, align 8, !tbaa !5
  %1186 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1185, i32 0, i32 86
  %1187 = load i32, ptr %1186, align 4, !tbaa !22
  %1188 = load ptr, ptr %19, align 8, !tbaa !5
  %1189 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1188, i32 0, i32 86
  %1190 = load i32, ptr %1189, align 4, !tbaa !22
  %1191 = load i32, ptr %22, align 4, !tbaa !9
  call void @libxsmm_aarch64_instruction_asimd_compute(ptr noundef %1184, i32 noundef 782301194, i32 noundef %1187, i32 noundef 127, i8 noundef zeroext 0, i32 noundef %1190, i32 noundef %1191)
  %1192 = load ptr, ptr %8, align 8, !tbaa !5
  %1193 = load ptr, ptr %19, align 8, !tbaa !5
  %1194 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1193, i32 0, i32 86
  %1195 = load i32, ptr %1194, align 4, !tbaa !22
  %1196 = load ptr, ptr %19, align 8, !tbaa !5
  %1197 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1196, i32 0, i32 55
  %1198 = load i32, ptr %1197, align 4, !tbaa !46
  %1199 = load i32, ptr %18, align 4, !tbaa !9
  %1200 = load i32, ptr %22, align 4, !tbaa !9
  call void @libxsmm_aarch64_instruction_asimd_compute(ptr noundef %1192, i32 noundef 245421067, i32 noundef %1195, i32 noundef %1198, i8 noundef zeroext 0, i32 noundef %1199, i32 noundef %1200)
  br label %1201

1201:                                             ; preds = %1176, %1148
  br label %1202

1202:                                             ; preds = %1201, %1142
  br label %1744

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

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

1209:                                             ; preds = %1206, %1203
  %1210 = load i8, ptr %20, align 1, !tbaa !13
  %1211 = icmp ne i8 %1210, 0
  br i1 %1211, label %1212, label %1301

1212:                                             ; preds = %1209
  %1213 = load ptr, ptr %8, align 8, !tbaa !5
  %1214 = load i32, ptr %18, align 4, !tbaa !9
  %1215 = load ptr, ptr %19, align 8, !tbaa !5
  %1216 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1215, i32 0, i32 33
  %1217 = load i32, ptr %1216, align 4, !tbaa !38
  %1218 = load ptr, ptr %19, align 8, !tbaa !5
  %1219 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1218, i32 0, i32 34
  %1220 = load i32, ptr %1219, align 4, !tbaa !39
  %1221 = load ptr, ptr %19, align 8, !tbaa !5
  %1222 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1221, i32 0, i32 35
  %1223 = load i32, ptr %1222, align 4, !tbaa !40
  %1224 = load ptr, ptr %19, align 8, !tbaa !5
  %1225 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1224, i32 0, i32 57
  %1226 = load i32, ptr %1225, align 4, !tbaa !41
  %1227 = load ptr, ptr %19, align 8, !tbaa !5
  %1228 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1227, i32 0, i32 58
  %1229 = load i32, ptr %1228, align 4, !tbaa !42
  %1230 = load ptr, ptr %19, align 8, !tbaa !5
  %1231 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1230, i32 0, i32 36
  %1232 = load i32, ptr %1231, align 4, !tbaa !29
  %1233 = load ptr, ptr %19, align 8, !tbaa !5
  %1234 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1233, i32 0, i32 40
  %1235 = load i32, ptr %1234, align 4, !tbaa !30
  %1236 = load ptr, ptr %19, align 8, !tbaa !5
  %1237 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1236, i32 0, i32 44
  %1238 = load i32, ptr %1237, align 4, !tbaa !31
  %1239 = load ptr, ptr %19, align 8, !tbaa !5
  %1240 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1239, i32 0, i32 51
  %1241 = load i32, ptr %1240, align 4, !tbaa !32
  %1242 = load ptr, ptr %19, align 8, !tbaa !5
  %1243 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1242, i32 0, i32 48
  %1244 = load i32, ptr %1243, align 4, !tbaa !43
  %1245 = load ptr, ptr %19, align 8, !tbaa !5
  %1246 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1245, i32 0, i32 49
  %1247 = load i32, ptr %1246, align 4, !tbaa !44
  %1248 = load ptr, ptr %19, align 8, !tbaa !5
  %1249 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1248, i32 0, i32 50
  %1250 = load i32, ptr %1249, align 4, !tbaa !45
  %1251 = load ptr, ptr %19, align 8, !tbaa !5
  %1252 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1251, i32 0, i32 52
  %1253 = load i32, ptr %1252, align 4, !tbaa !36
  %1254 = load ptr, ptr %19, align 8, !tbaa !5
  %1255 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1254, i32 0, i32 53
  %1256 = load i32, ptr %1255, align 4, !tbaa !37
  %1257 = load ptr, ptr %19, align 8, !tbaa !5
  %1258 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1257, i32 0, i32 54
  %1259 = load i32, ptr %1258, align 4, !tbaa !20
  %1260 = load ptr, ptr %19, align 8, !tbaa !5
  %1261 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1260, i32 0, i32 55
  %1262 = load i32, ptr %1261, align 4, !tbaa !46
  %1263 = load ptr, ptr %19, align 8, !tbaa !5
  %1264 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1263, i32 0, i32 56
  %1265 = load i32, ptr %1264, align 4, !tbaa !33
  %1266 = load ptr, ptr %19, align 8, !tbaa !5
  %1267 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1266, i32 0, i32 86
  %1268 = load i32, ptr %1267, align 4, !tbaa !22
  %1269 = load i32, ptr %21, align 4, !tbaa !9
  %1270 = load i32, ptr %23, align 4, !tbaa !9
  %1271 = trunc i32 %1270 to i8
  %1272 = zext i8 %1271 to i32
  %1273 = icmp eq i32 0, %1272
  br i1 %1273, label %1279, label %1274

1274:                                             ; preds = %1212
  %1275 = load i32, ptr %23, align 4, !tbaa !9
  %1276 = trunc i32 %1275 to i8
  %1277 = zext i8 %1276 to i32
  %1278 = icmp slt i32 0, %1277
  br i1 %1278, label %1279, label %1297

1279:                                             ; preds = %1274, %1212
  %1280 = load i32, ptr %23, align 4, !tbaa !9
  %1281 = zext i32 %1280 to i64
  %1282 = mul i64 1, %1281
  %1283 = icmp ult i64 %1282, 255
  br i1 %1283, label %1284, label %1288

1284:                                             ; preds = %1279
  %1285 = load i32, ptr %23, align 4, !tbaa !9
  %1286 = zext i32 %1285 to i64
  %1287 = mul i64 1, %1286
  br label %1289

1288:                                             ; preds = %1279
  br label %1289

1289:                                             ; preds = %1288, %1284
  %1290 = phi i64 [ %1287, %1284 ], [ 255, %1288 ]
  %1291 = icmp ule i64 %1290, 255
  br i1 %1291, label %1292, label %1297

1292:                                             ; preds = %1289
  %1293 = load i32, ptr %23, align 4, !tbaa !9
  %1294 = uitofp i32 %1293 to double
  %1295 = fcmp ole double 0.000000e+00, %1294
  br i1 %1295, label %1296, label %1297

1296:                                             ; preds = %1292
  br label %1298

1297:                                             ; preds = %1292, %1289, %1274
  call void @__assert_fail(ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 950, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_compute_unary_op_2d_reg_block_aarch64) #5
  unreachable

1298:                                             ; preds = %1296
  %1299 = load i32, ptr %23, align 4, !tbaa !9
  %1300 = trunc i32 %1299 to i8
  call void @libxsmm_generator_sigmoid_ps_rational_78_aarch64_sve(ptr noundef %1213, i32 noundef %1214, i32 noundef %1217, i32 noundef %1220, i32 noundef %1223, i32 noundef %1226, i32 noundef %1229, i32 noundef %1232, i32 noundef %1235, i32 noundef %1238, i32 noundef %1241, i32 noundef %1244, i32 noundef %1247, i32 noundef %1250, i32 noundef %1253, i32 noundef %1256, i32 noundef %1259, i32 noundef %1262, i32 noundef %1265, i32 noundef %1268, i32 noundef %1269, i8 noundef zeroext %1300)
  br label %1359

1301:                                             ; preds = %1209
  %1302 = load ptr, ptr %8, align 8, !tbaa !5
  %1303 = load i32, ptr %18, align 4, !tbaa !9
  %1304 = load ptr, ptr %19, align 8, !tbaa !5
  %1305 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1304, i32 0, i32 33
  %1306 = load i32, ptr %1305, align 4, !tbaa !38
  %1307 = load ptr, ptr %19, align 8, !tbaa !5
  %1308 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1307, i32 0, i32 34
  %1309 = load i32, ptr %1308, align 4, !tbaa !39
  %1310 = load ptr, ptr %19, align 8, !tbaa !5
  %1311 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1310, i32 0, i32 35
  %1312 = load i32, ptr %1311, align 4, !tbaa !40
  %1313 = load ptr, ptr %19, align 8, !tbaa !5
  %1314 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1313, i32 0, i32 57
  %1315 = load i32, ptr %1314, align 4, !tbaa !41
  %1316 = load ptr, ptr %19, align 8, !tbaa !5
  %1317 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1316, i32 0, i32 58
  %1318 = load i32, ptr %1317, align 4, !tbaa !42
  %1319 = load ptr, ptr %19, align 8, !tbaa !5
  %1320 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1319, i32 0, i32 36
  %1321 = load i32, ptr %1320, align 4, !tbaa !29
  %1322 = load ptr, ptr %19, align 8, !tbaa !5
  %1323 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1322, i32 0, i32 40
  %1324 = load i32, ptr %1323, align 4, !tbaa !30
  %1325 = load ptr, ptr %19, align 8, !tbaa !5
  %1326 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1325, i32 0, i32 44
  %1327 = load i32, ptr %1326, align 4, !tbaa !31
  %1328 = load ptr, ptr %19, align 8, !tbaa !5
  %1329 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1328, i32 0, i32 51
  %1330 = load i32, ptr %1329, align 4, !tbaa !32
  %1331 = load ptr, ptr %19, align 8, !tbaa !5
  %1332 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1331, i32 0, i32 48
  %1333 = load i32, ptr %1332, align 4, !tbaa !43
  %1334 = load ptr, ptr %19, align 8, !tbaa !5
  %1335 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1334, i32 0, i32 49
  %1336 = load i32, ptr %1335, align 4, !tbaa !44
  %1337 = load ptr, ptr %19, align 8, !tbaa !5
  %1338 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1337, i32 0, i32 50
  %1339 = load i32, ptr %1338, align 4, !tbaa !45
  %1340 = load ptr, ptr %19, align 8, !tbaa !5
  %1341 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1340, i32 0, i32 52
  %1342 = load i32, ptr %1341, align 4, !tbaa !36
  %1343 = load ptr, ptr %19, align 8, !tbaa !5
  %1344 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1343, i32 0, i32 53
  %1345 = load i32, ptr %1344, align 4, !tbaa !37
  %1346 = load ptr, ptr %19, align 8, !tbaa !5
  %1347 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1346, i32 0, i32 54
  %1348 = load i32, ptr %1347, align 4, !tbaa !20
  %1349 = load ptr, ptr %19, align 8, !tbaa !5
  %1350 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1349, i32 0, i32 55
  %1351 = load i32, ptr %1350, align 4, !tbaa !46
  %1352 = load ptr, ptr %19, align 8, !tbaa !5
  %1353 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1352, i32 0, i32 56
  %1354 = load i32, ptr %1353, align 4, !tbaa !33
  %1355 = load ptr, ptr %19, align 8, !tbaa !5
  %1356 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1355, i32 0, i32 86
  %1357 = load i32, ptr %1356, align 4, !tbaa !22
  %1358 = load i32, ptr %22, align 4, !tbaa !9
  call void @libxsmm_generator_sigmoid_ps_rational_78_aarch64_asimd(ptr noundef %1302, i32 noundef %1303, i32 noundef %1306, i32 noundef %1309, i32 noundef %1312, i32 noundef %1315, i32 noundef %1318, i32 noundef %1321, i32 noundef %1324, i32 noundef %1327, i32 noundef %1330, i32 noundef %1333, i32 noundef %1336, i32 noundef %1339, i32 noundef %1342, i32 noundef %1345, i32 noundef %1348, i32 noundef %1351, i32 noundef %1354, i32 noundef %1357, i32 noundef %1358)
  br label %1359

1359:                                             ; preds = %1301, %1298
  %1360 = load i32, ptr %10, align 4, !tbaa !9
  %1361 = icmp eq i32 %1360, 10
  br i1 %1361, label %1362, label %1402

1362:                                             ; preds = %1359
  %1363 = load i8, ptr %20, align 1, !tbaa !13
  %1364 = icmp ne i8 %1363, 0
  br i1 %1364, label %1365, label %1384

1365:                                             ; preds = %1362
  %1366 = load ptr, ptr %8, align 8, !tbaa !5
  %1367 = load ptr, ptr %19, align 8, !tbaa !5
  %1368 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1367, i32 0, i32 54
  %1369 = load i32, ptr %1368, align 4, !tbaa !20
  %1370 = load i32, ptr %18, align 4, !tbaa !9
  %1371 = load ptr, ptr %19, align 8, !tbaa !5
  %1372 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1371, i32 0, i32 33
  %1373 = load i32, ptr %1372, align 4, !tbaa !38
  %1374 = load i32, ptr %23, align 4, !tbaa !9
  %1375 = load i32, ptr %21, align 4, !tbaa !9
  call void @libxsmm_aarch64_instruction_sve_compute(ptr noundef %1366, i32 noundef 1694499843, i32 noundef %1369, i32 noundef %1370, i8 noundef zeroext 0, i32 noundef %1373, i32 noundef %1374, i32 noundef %1375)
  %1376 = load ptr, ptr %8, align 8, !tbaa !5
  %1377 = load ptr, ptr %19, align 8, !tbaa !5
  %1378 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1377, i32 0, i32 33
  %1379 = load i32, ptr %1378, align 4, !tbaa !38
  %1380 = load i32, ptr %18, align 4, !tbaa !9
  %1381 = load i32, ptr %18, align 4, !tbaa !9
  %1382 = load i32, ptr %23, align 4, !tbaa !9
  %1383 = load i32, ptr %21, align 4, !tbaa !9
  call void @libxsmm_aarch64_instruction_sve_compute(ptr noundef %1376, i32 noundef 1694500867, i32 noundef %1379, i32 noundef %1380, i8 noundef zeroext 0, i32 noundef %1381, i32 noundef %1382, i32 noundef %1383)
  br label %1401

1384:                                             ; preds = %1362
  %1385 = load ptr, ptr %8, align 8, !tbaa !5
  %1386 = load ptr, ptr %19, align 8, !tbaa !5
  %1387 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1386, i32 0, i32 54
  %1388 = load i32, ptr %1387, align 4, !tbaa !20
  %1389 = load i32, ptr %18, align 4, !tbaa !9
  %1390 = load ptr, ptr %19, align 8, !tbaa !5
  %1391 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1390, i32 0, i32 33
  %1392 = load i32, ptr %1391, align 4, !tbaa !38
  %1393 = load i32, ptr %22, align 4, !tbaa !9
  call void @libxsmm_aarch64_instruction_asimd_compute(ptr noundef %1385, i32 noundef 245421067, i32 noundef %1388, i32 noundef %1389, i8 noundef zeroext 0, i32 noundef %1392, i32 noundef %1393)
  %1394 = load ptr, ptr %8, align 8, !tbaa !5
  %1395 = load ptr, ptr %19, align 8, !tbaa !5
  %1396 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1395, i32 0, i32 33
  %1397 = load i32, ptr %1396, align 4, !tbaa !38
  %1398 = load i32, ptr %18, align 4, !tbaa !9
  %1399 = load i32, ptr %18, align 4, !tbaa !9
  %1400 = load i32, ptr %22, align 4, !tbaa !9
  call void @libxsmm_aarch64_instruction_asimd_compute(ptr noundef %1394, i32 noundef 773905419, i32 noundef %1397, i32 noundef %1398, i8 noundef zeroext 0, i32 noundef %1399, i32 noundef %1400)
  br label %1401

1401:                                             ; preds = %1384, %1365
  br label %1402

1402:                                             ; preds = %1401, %1359
  br label %1743

1403:                                             ; preds = %1206
  %1404 = load i32, ptr %10, align 4, !tbaa !9
  %1405 = icmp eq i32 %1404, 11
  br i1 %1405, label %1406, label %1572

1406:                                             ; preds = %1403
  %1407 = load i8, ptr %20, align 1, !tbaa !13
  %1408 = icmp ne i8 %1407, 0
  br i1 %1408, label %1409, label %1519

1409:                                             ; preds = %1406
  %1410 = load ptr, ptr %8, align 8, !tbaa !5
  %1411 = load i32, ptr %18, align 4, !tbaa !9
  %1412 = load ptr, ptr %19, align 8, !tbaa !5
  %1413 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1412, i32 0, i32 70
  %1414 = load i32, ptr %1413, align 4, !tbaa !47
  %1415 = load ptr, ptr %19, align 8, !tbaa !5
  %1416 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1415, i32 0, i32 71
  %1417 = load i32, ptr %1416, align 4, !tbaa !48
  %1418 = load ptr, ptr %19, align 8, !tbaa !5
  %1419 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1418, i32 0, i32 72
  %1420 = load i32, ptr %1419, align 4, !tbaa !49
  %1421 = load ptr, ptr %19, align 8, !tbaa !5
  %1422 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1421, i32 0, i32 73
  %1423 = load i32, ptr %1422, align 4, !tbaa !50
  %1424 = load ptr, ptr %19, align 8, !tbaa !5
  %1425 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1424, i32 0, i32 74
  %1426 = load i32, ptr %1425, align 4, !tbaa !51
  %1427 = load ptr, ptr %19, align 8, !tbaa !5
  %1428 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1427, i32 0, i32 75
  %1429 = load i32, ptr %1428, align 4, !tbaa !52
  %1430 = load ptr, ptr %19, align 8, !tbaa !5
  %1431 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1430, i32 0, i32 76
  %1432 = load i32, ptr %1431, align 4, !tbaa !53
  %1433 = load ptr, ptr %19, align 8, !tbaa !5
  %1434 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1433, i32 0, i32 77
  %1435 = load i32, ptr %1434, align 4, !tbaa !54
  %1436 = load ptr, ptr %19, align 8, !tbaa !5
  %1437 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1436, i32 0, i32 78
  %1438 = load i32, ptr %1437, align 4, !tbaa !55
  %1439 = load ptr, ptr %19, align 8, !tbaa !5
  %1440 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1439, i32 0, i32 79
  %1441 = load i32, ptr %1440, align 4, !tbaa !56
  %1442 = load ptr, ptr %19, align 8, !tbaa !5
  %1443 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1442, i32 0, i32 56
  %1444 = load i32, ptr %1443, align 4, !tbaa !33
  %1445 = load ptr, ptr %19, align 8, !tbaa !5
  %1446 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1445, i32 0, i32 36
  %1447 = load i32, ptr %1446, align 4, !tbaa !29
  %1448 = load ptr, ptr %19, align 8, !tbaa !5
  %1449 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1448, i32 0, i32 37
  %1450 = load i32, ptr %1449, align 4, !tbaa !57
  %1451 = load ptr, ptr %19, align 8, !tbaa !5
  %1452 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1451, i32 0, i32 38
  %1453 = load i32, ptr %1452, align 4, !tbaa !58
  %1454 = load ptr, ptr %19, align 8, !tbaa !5
  %1455 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1454, i32 0, i32 39
  %1456 = load i32, ptr %1455, align 4, !tbaa !59
  %1457 = load ptr, ptr %19, align 8, !tbaa !5
  %1458 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1457, i32 0, i32 40
  %1459 = load i32, ptr %1458, align 4, !tbaa !30
  %1460 = load ptr, ptr %19, align 8, !tbaa !5
  %1461 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1460, i32 0, i32 41
  %1462 = load i32, ptr %1461, align 4, !tbaa !60
  %1463 = load ptr, ptr %19, align 8, !tbaa !5
  %1464 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1463, i32 0, i32 42
  %1465 = load i32, ptr %1464, align 4, !tbaa !61
  %1466 = load ptr, ptr %19, align 8, !tbaa !5
  %1467 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1466, i32 0, i32 43
  %1468 = load i32, ptr %1467, align 4, !tbaa !62
  %1469 = load ptr, ptr %19, align 8, !tbaa !5
  %1470 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1469, i32 0, i32 44
  %1471 = load i32, ptr %1470, align 4, !tbaa !31
  %1472 = load ptr, ptr %19, align 8, !tbaa !5
  %1473 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1472, i32 0, i32 45
  %1474 = load i32, ptr %1473, align 4, !tbaa !63
  %1475 = load ptr, ptr %19, align 8, !tbaa !5
  %1476 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1475, i32 0, i32 46
  %1477 = load i32, ptr %1476, align 4, !tbaa !64
  %1478 = load ptr, ptr %19, align 8, !tbaa !5
  %1479 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1478, i32 0, i32 47
  %1480 = load i32, ptr %1479, align 4, !tbaa !65
  %1481 = load ptr, ptr %19, align 8, !tbaa !5
  %1482 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1481, i32 0, i32 86
  %1483 = load i32, ptr %1482, align 4, !tbaa !22
  %1484 = load ptr, ptr %19, align 8, !tbaa !5
  %1485 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1484, i32 0, i32 87
  %1486 = load i32, ptr %1485, align 4, !tbaa !66
  %1487 = load i32, ptr %21, align 4, !tbaa !9
  %1488 = load i32, ptr %23, align 4, !tbaa !9
  %1489 = trunc i32 %1488 to i8
  %1490 = zext i8 %1489 to i32
  %1491 = icmp eq i32 0, %1490
  br i1 %1491, label %1497, label %1492

1492:                                             ; preds = %1409
  %1493 = load i32, ptr %23, align 4, !tbaa !9
  %1494 = trunc i32 %1493 to i8
  %1495 = zext i8 %1494 to i32
  %1496 = icmp slt i32 0, %1495
  br i1 %1496, label %1497, label %1515

1497:                                             ; preds = %1492, %1409
  %1498 = load i32, ptr %23, align 4, !tbaa !9
  %1499 = zext i32 %1498 to i64
  %1500 = mul i64 1, %1499
  %1501 = icmp ult i64 %1500, 255
  br i1 %1501, label %1502, label %1506

1502:                                             ; preds = %1497
  %1503 = load i32, ptr %23, align 4, !tbaa !9
  %1504 = zext i32 %1503 to i64
  %1505 = mul i64 1, %1504
  br label %1507

1506:                                             ; preds = %1497
  br label %1507

1507:                                             ; preds = %1506, %1502
  %1508 = phi i64 [ %1505, %1502 ], [ 255, %1506 ]
  %1509 = icmp ule i64 %1508, 255
  br i1 %1509, label %1510, label %1515

1510:                                             ; preds = %1507
  %1511 = load i32, ptr %23, align 4, !tbaa !9
  %1512 = uitofp i32 %1511 to double
  %1513 = fcmp ole double 0.000000e+00, %1512
  br i1 %1513, label %1514, label %1515

1514:                                             ; preds = %1510
  br label %1516

1515:                                             ; preds = %1510, %1507, %1492
  call void @__assert_fail(ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 1022, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_compute_unary_op_2d_reg_block_aarch64) #5
  unreachable

1516:                                             ; preds = %1514
  %1517 = load i32, ptr %23, align 4, !tbaa !9
  %1518 = trunc i32 %1517 to i8
  call void @libxsmm_generator_gelu_ps_minimax3_aarch64_sve(ptr noundef %1410, i32 noundef %1411, i32 noundef %1414, i32 noundef %1417, i32 noundef %1420, i32 noundef %1423, i32 noundef %1426, i32 noundef %1429, i32 noundef %1432, i32 noundef %1435, i32 noundef %1438, i32 noundef %1441, i32 noundef %1444, i32 noundef %1447, i32 noundef %1450, i32 noundef %1453, i32 noundef %1456, i32 noundef %1459, i32 noundef %1462, i32 noundef %1465, i32 noundef %1468, i32 noundef %1471, i32 noundef %1474, i32 noundef %1477, i32 noundef %1480, i32 noundef %1483, i32 noundef %1486, i32 noundef %1487, i8 noundef zeroext %1518)
  br label %1571

1519:                                             ; preds = %1406
  %1520 = load ptr, ptr %8, align 8, !tbaa !5
  %1521 = load i32, ptr %18, align 4, !tbaa !9
  %1522 = load ptr, ptr %19, align 8, !tbaa !5
  %1523 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1522, i32 0, i32 70
  %1524 = load i32, ptr %1523, align 4, !tbaa !47
  %1525 = load ptr, ptr %19, align 8, !tbaa !5
  %1526 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1525, i32 0, i32 71
  %1527 = load i32, ptr %1526, align 4, !tbaa !48
  %1528 = load ptr, ptr %19, align 8, !tbaa !5
  %1529 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1528, i32 0, i32 72
  %1530 = load i32, ptr %1529, align 4, !tbaa !49
  %1531 = load ptr, ptr %19, align 8, !tbaa !5
  %1532 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1531, i32 0, i32 73
  %1533 = load i32, ptr %1532, align 4, !tbaa !50
  %1534 = load ptr, ptr %19, align 8, !tbaa !5
  %1535 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1534, i32 0, i32 74
  %1536 = load i32, ptr %1535, align 4, !tbaa !51
  %1537 = load ptr, ptr %19, align 8, !tbaa !5
  %1538 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1537, i32 0, i32 75
  %1539 = load i32, ptr %1538, align 4, !tbaa !52
  %1540 = load ptr, ptr %19, align 8, !tbaa !5
  %1541 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1540, i32 0, i32 76
  %1542 = load i32, ptr %1541, align 4, !tbaa !53
  %1543 = load ptr, ptr %19, align 8, !tbaa !5
  %1544 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1543, i32 0, i32 77
  %1545 = load i32, ptr %1544, align 4, !tbaa !54
  %1546 = load ptr, ptr %19, align 8, !tbaa !5
  %1547 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1546, i32 0, i32 78
  %1548 = load i32, ptr %1547, align 4, !tbaa !55
  %1549 = load ptr, ptr %19, align 8, !tbaa !5
  %1550 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1549, i32 0, i32 79
  %1551 = load i32, ptr %1550, align 4, !tbaa !56
  %1552 = load ptr, ptr %19, align 8, !tbaa !5
  %1553 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1552, i32 0, i32 56
  %1554 = load i32, ptr %1553, align 4, !tbaa !33
  %1555 = load ptr, ptr %19, align 8, !tbaa !5
  %1556 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1555, i32 0, i32 36
  %1557 = load i32, ptr %1556, align 4, !tbaa !29
  %1558 = load ptr, ptr %19, align 8, !tbaa !5
  %1559 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1558, i32 0, i32 40
  %1560 = load i32, ptr %1559, align 4, !tbaa !30
  %1561 = load ptr, ptr %19, align 8, !tbaa !5
  %1562 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1561, i32 0, i32 44
  %1563 = load i32, ptr %1562, align 4, !tbaa !31
  %1564 = load ptr, ptr %19, align 8, !tbaa !5
  %1565 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1564, i32 0, i32 86
  %1566 = load i32, ptr %1565, align 4, !tbaa !22
  %1567 = load ptr, ptr %19, align 8, !tbaa !5
  %1568 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1567, i32 0, i32 87
  %1569 = load i32, ptr %1568, align 4, !tbaa !66
  %1570 = load i32, ptr %22, align 4, !tbaa !9
  call void @libxsmm_generator_gelu_ps_minimax3_aarch64_asimd(ptr noundef %1520, i32 noundef %1521, i32 noundef %1524, i32 noundef %1527, i32 noundef %1530, i32 noundef %1533, i32 noundef %1536, i32 noundef %1539, i32 noundef %1542, i32 noundef %1545, i32 noundef %1548, i32 noundef %1551, i32 noundef %1554, i32 noundef %1557, i32 noundef %1560, i32 noundef %1563, i32 noundef %1566, i32 noundef %1569, i32 noundef %1570)
  br label %1571

1571:                                             ; preds = %1519, %1516
  br label %1742

1572:                                             ; preds = %1403
  %1573 = load i32, ptr %10, align 4, !tbaa !9
  %1574 = icmp eq i32 %1573, 12
  br i1 %1574, label %1575, label %1741

1575:                                             ; preds = %1572
  %1576 = load i8, ptr %20, align 1, !tbaa !13
  %1577 = icmp ne i8 %1576, 0
  br i1 %1577, label %1578, label %1688

1578:                                             ; preds = %1575
  %1579 = load ptr, ptr %8, align 8, !tbaa !5
  %1580 = load i32, ptr %18, align 4, !tbaa !9
  %1581 = load ptr, ptr %19, align 8, !tbaa !5
  %1582 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1581, i32 0, i32 70
  %1583 = load i32, ptr %1582, align 4, !tbaa !47
  %1584 = load ptr, ptr %19, align 8, !tbaa !5
  %1585 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1584, i32 0, i32 71
  %1586 = load i32, ptr %1585, align 4, !tbaa !48
  %1587 = load ptr, ptr %19, align 8, !tbaa !5
  %1588 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1587, i32 0, i32 72
  %1589 = load i32, ptr %1588, align 4, !tbaa !49
  %1590 = load ptr, ptr %19, align 8, !tbaa !5
  %1591 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1590, i32 0, i32 73
  %1592 = load i32, ptr %1591, align 4, !tbaa !50
  %1593 = load ptr, ptr %19, align 8, !tbaa !5
  %1594 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1593, i32 0, i32 74
  %1595 = load i32, ptr %1594, align 4, !tbaa !51
  %1596 = load ptr, ptr %19, align 8, !tbaa !5
  %1597 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1596, i32 0, i32 75
  %1598 = load i32, ptr %1597, align 4, !tbaa !52
  %1599 = load ptr, ptr %19, align 8, !tbaa !5
  %1600 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1599, i32 0, i32 76
  %1601 = load i32, ptr %1600, align 4, !tbaa !53
  %1602 = load ptr, ptr %19, align 8, !tbaa !5
  %1603 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1602, i32 0, i32 77
  %1604 = load i32, ptr %1603, align 4, !tbaa !54
  %1605 = load ptr, ptr %19, align 8, !tbaa !5
  %1606 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1605, i32 0, i32 78
  %1607 = load i32, ptr %1606, align 4, !tbaa !55
  %1608 = load ptr, ptr %19, align 8, !tbaa !5
  %1609 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1608, i32 0, i32 79
  %1610 = load i32, ptr %1609, align 4, !tbaa !56
  %1611 = load ptr, ptr %19, align 8, !tbaa !5
  %1612 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1611, i32 0, i32 56
  %1613 = load i32, ptr %1612, align 4, !tbaa !33
  %1614 = load ptr, ptr %19, align 8, !tbaa !5
  %1615 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1614, i32 0, i32 36
  %1616 = load i32, ptr %1615, align 4, !tbaa !29
  %1617 = load ptr, ptr %19, align 8, !tbaa !5
  %1618 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1617, i32 0, i32 37
  %1619 = load i32, ptr %1618, align 4, !tbaa !57
  %1620 = load ptr, ptr %19, align 8, !tbaa !5
  %1621 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1620, i32 0, i32 38
  %1622 = load i32, ptr %1621, align 4, !tbaa !58
  %1623 = load ptr, ptr %19, align 8, !tbaa !5
  %1624 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1623, i32 0, i32 39
  %1625 = load i32, ptr %1624, align 4, !tbaa !59
  %1626 = load ptr, ptr %19, align 8, !tbaa !5
  %1627 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1626, i32 0, i32 40
  %1628 = load i32, ptr %1627, align 4, !tbaa !30
  %1629 = load ptr, ptr %19, align 8, !tbaa !5
  %1630 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1629, i32 0, i32 41
  %1631 = load i32, ptr %1630, align 4, !tbaa !60
  %1632 = load ptr, ptr %19, align 8, !tbaa !5
  %1633 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1632, i32 0, i32 42
  %1634 = load i32, ptr %1633, align 4, !tbaa !61
  %1635 = load ptr, ptr %19, align 8, !tbaa !5
  %1636 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1635, i32 0, i32 43
  %1637 = load i32, ptr %1636, align 4, !tbaa !62
  %1638 = load ptr, ptr %19, align 8, !tbaa !5
  %1639 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1638, i32 0, i32 44
  %1640 = load i32, ptr %1639, align 4, !tbaa !31
  %1641 = load ptr, ptr %19, align 8, !tbaa !5
  %1642 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1641, i32 0, i32 45
  %1643 = load i32, ptr %1642, align 4, !tbaa !63
  %1644 = load ptr, ptr %19, align 8, !tbaa !5
  %1645 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1644, i32 0, i32 46
  %1646 = load i32, ptr %1645, align 4, !tbaa !64
  %1647 = load ptr, ptr %19, align 8, !tbaa !5
  %1648 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1647, i32 0, i32 47
  %1649 = load i32, ptr %1648, align 4, !tbaa !65
  %1650 = load ptr, ptr %19, align 8, !tbaa !5
  %1651 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1650, i32 0, i32 86
  %1652 = load i32, ptr %1651, align 4, !tbaa !22
  %1653 = load ptr, ptr %19, align 8, !tbaa !5
  %1654 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1653, i32 0, i32 87
  %1655 = load i32, ptr %1654, align 4, !tbaa !66
  %1656 = load i32, ptr %21, align 4, !tbaa !9
  %1657 = load i32, ptr %23, align 4, !tbaa !9
  %1658 = trunc i32 %1657 to i8
  %1659 = zext i8 %1658 to i32
  %1660 = icmp eq i32 0, %1659
  br i1 %1660, label %1666, label %1661

1661:                                             ; preds = %1578
  %1662 = load i32, ptr %23, align 4, !tbaa !9
  %1663 = trunc i32 %1662 to i8
  %1664 = zext i8 %1663 to i32
  %1665 = icmp slt i32 0, %1664
  br i1 %1665, label %1666, label %1684

1666:                                             ; preds = %1661, %1578
  %1667 = load i32, ptr %23, align 4, !tbaa !9
  %1668 = zext i32 %1667 to i64
  %1669 = mul i64 1, %1668
  %1670 = icmp ult i64 %1669, 255
  br i1 %1670, label %1671, label %1675

1671:                                             ; preds = %1666
  %1672 = load i32, ptr %23, align 4, !tbaa !9
  %1673 = zext i32 %1672 to i64
  %1674 = mul i64 1, %1673
  br label %1676

1675:                                             ; preds = %1666
  br label %1676

1676:                                             ; preds = %1675, %1671
  %1677 = phi i64 [ %1674, %1671 ], [ 255, %1675 ]
  %1678 = icmp ule i64 %1677, 255
  br i1 %1678, label %1679, label %1684

1679:                                             ; preds = %1676
  %1680 = load i32, ptr %23, align 4, !tbaa !9
  %1681 = uitofp i32 %1680 to double
  %1682 = fcmp ole double 0.000000e+00, %1681
  br i1 %1682, label %1683, label %1684

1683:                                             ; preds = %1679
  br label %1685

1684:                                             ; preds = %1679, %1676, %1661
  call void @__assert_fail(ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 1073, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_compute_unary_op_2d_reg_block_aarch64) #5
  unreachable

1685:                                             ; preds = %1683
  %1686 = load i32, ptr %23, align 4, !tbaa !9
  %1687 = trunc i32 %1686 to i8
  call void @libxsmm_generator_gelu_inv_ps_minimax3_aarch64_sve(ptr noundef %1579, i32 noundef %1580, i32 noundef %1583, i32 noundef %1586, i32 noundef %1589, i32 noundef %1592, i32 noundef %1595, i32 noundef %1598, i32 noundef %1601, i32 noundef %1604, i32 noundef %1607, i32 noundef %1610, i32 noundef %1613, i32 noundef %1616, i32 noundef %1619, i32 noundef %1622, i32 noundef %1625, i32 noundef %1628, i32 noundef %1631, i32 noundef %1634, i32 noundef %1637, i32 noundef %1640, i32 noundef %1643, i32 noundef %1646, i32 noundef %1649, i32 noundef %1652, i32 noundef %1655, i32 noundef %1656, i8 noundef zeroext %1687)
  br label %1740

1688:                                             ; preds = %1575
  %1689 = load ptr, ptr %8, align 8, !tbaa !5
  %1690 = load i32, ptr %18, align 4, !tbaa !9
  %1691 = load ptr, ptr %19, align 8, !tbaa !5
  %1692 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1691, i32 0, i32 70
  %1693 = load i32, ptr %1692, align 4, !tbaa !47
  %1694 = load ptr, ptr %19, align 8, !tbaa !5
  %1695 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1694, i32 0, i32 71
  %1696 = load i32, ptr %1695, align 4, !tbaa !48
  %1697 = load ptr, ptr %19, align 8, !tbaa !5
  %1698 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1697, i32 0, i32 72
  %1699 = load i32, ptr %1698, align 4, !tbaa !49
  %1700 = load ptr, ptr %19, align 8, !tbaa !5
  %1701 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1700, i32 0, i32 73
  %1702 = load i32, ptr %1701, align 4, !tbaa !50
  %1703 = load ptr, ptr %19, align 8, !tbaa !5
  %1704 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1703, i32 0, i32 74
  %1705 = load i32, ptr %1704, align 4, !tbaa !51
  %1706 = load ptr, ptr %19, align 8, !tbaa !5
  %1707 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1706, i32 0, i32 75
  %1708 = load i32, ptr %1707, align 4, !tbaa !52
  %1709 = load ptr, ptr %19, align 8, !tbaa !5
  %1710 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1709, i32 0, i32 76
  %1711 = load i32, ptr %1710, align 4, !tbaa !53
  %1712 = load ptr, ptr %19, align 8, !tbaa !5
  %1713 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1712, i32 0, i32 77
  %1714 = load i32, ptr %1713, align 4, !tbaa !54
  %1715 = load ptr, ptr %19, align 8, !tbaa !5
  %1716 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1715, i32 0, i32 78
  %1717 = load i32, ptr %1716, align 4, !tbaa !55
  %1718 = load ptr, ptr %19, align 8, !tbaa !5
  %1719 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1718, i32 0, i32 79
  %1720 = load i32, ptr %1719, align 4, !tbaa !56
  %1721 = load ptr, ptr %19, align 8, !tbaa !5
  %1722 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1721, i32 0, i32 56
  %1723 = load i32, ptr %1722, align 4, !tbaa !33
  %1724 = load ptr, ptr %19, align 8, !tbaa !5
  %1725 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1724, i32 0, i32 36
  %1726 = load i32, ptr %1725, align 4, !tbaa !29
  %1727 = load ptr, ptr %19, align 8, !tbaa !5
  %1728 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1727, i32 0, i32 40
  %1729 = load i32, ptr %1728, align 4, !tbaa !30
  %1730 = load ptr, ptr %19, align 8, !tbaa !5
  %1731 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1730, i32 0, i32 44
  %1732 = load i32, ptr %1731, align 4, !tbaa !31
  %1733 = load ptr, ptr %19, align 8, !tbaa !5
  %1734 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1733, i32 0, i32 86
  %1735 = load i32, ptr %1734, align 4, !tbaa !22
  %1736 = load ptr, ptr %19, align 8, !tbaa !5
  %1737 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1736, i32 0, i32 87
  %1738 = load i32, ptr %1737, align 4, !tbaa !66
  %1739 = load i32, ptr %22, align 4, !tbaa !9
  call void @libxsmm_generator_gelu_inv_ps_minimax3_aarch64_asimd(ptr noundef %1689, i32 noundef %1690, i32 noundef %1693, i32 noundef %1696, i32 noundef %1699, i32 noundef %1702, i32 noundef %1705, i32 noundef %1708, i32 noundef %1711, i32 noundef %1714, i32 noundef %1717, i32 noundef %1720, i32 noundef %1723, i32 noundef %1726, i32 noundef %1729, i32 noundef %1732, i32 noundef %1735, i32 noundef %1738, i32 noundef %1739)
  br label %1740

1740:                                             ; preds = %1688, %1685
  br label %1741

1741:                                             ; preds = %1740, %1572
  br label %1742

1742:                                             ; preds = %1741, %1571
  br label %1743

1743:                                             ; preds = %1742, %1402
  br label %1744

1744:                                             ; preds = %1743, %1202
  br label %1745

1745:                                             ; preds = %1744, %991
  br label %1746

1746:                                             ; preds = %1745, %879
  br label %1747

1747:                                             ; preds = %1746, %550
  br label %1748

1748:                                             ; preds = %1747, %282
  br label %1749

1749:                                             ; preds = %1748, %178
  br label %1750

1750:                                             ; preds = %1749, %154
  br label %1751

1751:                                             ; preds = %1750, %135
  br label %1752

1752:                                             ; preds = %1751, %101
  br label %1753

1753:                                             ; preds = %1752
  %1754 = load i32, ptr %16, align 4, !tbaa !9
  %1755 = add i32 %1754, 1
  store i32 %1755, ptr %16, align 4, !tbaa !9
  br label %72, !llvm.loop !67

1756:                                             ; preds = %72
  br label %1757

1757:                                             ; preds = %1756
  %1758 = load i32, ptr %17, align 4, !tbaa !9
  %1759 = add i32 %1758, 1
  store i32 %1759, ptr %17, align 4, !tbaa !9
  br label %67, !llvm.loop !68

1760:                                             ; preds = %67
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %20) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #4
  ret void
}

declare i32 @libxsmm_get_ulp_precision() #2

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

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

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

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

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

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

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

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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"int", !7, i64 0}
!11 = !{!12, !10, i64 28}
!12 = !{!"libxsmm_generated_code", !6, i64 0, !10, i64 8, !10, i64 12, !10, i64 16, !10, i64 20, !10, i64 24, !10, i64 28}
!13 = !{!7, !7, i64 0}
!14 = !{!15, !10, i64 180}
!15 = !{!"libxsmm_matequation_kernel_config_struct", !10, i64 0, !10, i64 4, !10, i64 8, !10, i64 12, !10, i64 16, !10, i64 20, !10, i64 24, !10, i64 28, !10, i64 32, !10, i64 36, !10, i64 40, !10, i64 44, !10, i64 48, !10, i64 52, !10, i64 56, !10, i64 60, !10, i64 64, !10, i64 68, !7, i64 72, !10, i64 76, !10, i64 80, !10, i64 84, !10, i64 88, !10, i64 92, !10, i64 96, !10, i64 100, !10, i64 104, !10, i64 108, !10, i64 112, !10, i64 116, !10, i64 120, !10, i64 124, !10, i64 128, !10, i64 132, !10, i64 136, !10, i64 140, !10, i64 144, !10, i64 148, !10, i64 152, !10, i64 156, !10, i64 160, !10, i64 164, !10, i64 168, !10, i64 172, !10, i64 176, !10, i64 180, !10, i64 184, !7, i64 188, !10, i64 316, !10, i64 320, !10, i64 324, !10, i64 328, !6, i64 336, !6, i64 344, !10, i64 352, !10, i64 356, !10, i64 360, !7, i64 364, !7, i64 620, !16, i64 876, !17, i64 1392}
!16 = !{!"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}
!17 = !{!"libxsmm_micro_kernel_config", !10, i64 0, !10, i64 4, !10, i64 8, !10, i64 12, !10, i64 16, !10, i64 20, !10, i64 24, !10, i64 28, !10, i64 32, !10, i64 36, !10, i64 40, !10, i64 44, !10, i64 48, !10, i64 52, !10, i64 56, !10, i64 60, !10, i64 64, !10, i64 68, !10, i64 72, !10, i64 76, !10, i64 80, !7, i64 84, !10, i64 88, !10, i64 92, !10, i64 96, !10, i64 100, !10, i64 104, !10, i64 108, !10, i64 112, !10, i64 116, !10, i64 120, !10, i64 124, !10, i64 128, !10, i64 132, !10, i64 136, !10, i64 140, !10, i64 144, !10, i64 148, !10, i64 152, !10, i64 156, !10, i64 160, !10, i64 164, !10, i64 168, !10, i64 172, !10, i64 176, !10, i64 180, !10, i64 184, !10, i64 188, !10, i64 192, !10, i64 196, !10, i64 200, !10, i64 204, !10, i64 208, !10, i64 212, !10, i64 216, !10, i64 220, !10, i64 224, !10, i64 228, !10, i64 232, !10, i64 236, !10, i64 240, !10, i64 244, !10, i64 248, !10, i64 252, !10, i64 256, !10, i64 260, !10, i64 264, !10, i64 268, !10, i64 272, !10, i64 276, !10, i64 280, !10, i64 284, !10, i64 288, !10, i64 292, !10, i64 296, !10, i64 300, !10, i64 304, !10, i64 308, !10, i64 312, !10, i64 316, !10, i64 320, !10, i64 324, !10, i64 328, !10, i64 332, !10, i64 336, !10, i64 340, !10, i64 344, !10, i64 348, !10, i64 352, !10, i64 356, !10, i64 360, !7, i64 364, !7, i64 380, !7, i64 396, !7, i64 412, !7, i64 428, !7, i64 444, !10, i64 460, !7, i64 464, !18, i64 520, !10, i64 556, !10, i64 560, !10, i64 564, !10, i64 568, !10, i64 572, !10, i64 576, !10, i64 580, !10, i64 584, !6, i64 592, !10, i64 600, !10, i64 604, !10, i64 608, !10, i64 612, !6, i64 616, !10, i64 624, !10, i64 628, !10, i64 632, !10, i64 636, !10, i64 640, !10, i64 644, !10, i64 648, !10, i64 652, !10, i64 656, !10, i64 660, !10, i64 664, !10, i64 668, !10, i64 672, !10, i64 676, !10, i64 680}
!18 = !{!"libxsmm_tile_config", !7, i64 0, !19, i64 2, !7, i64 4, !19, i64 6, !7, i64 8, !19, i64 10, !7, i64 12, !19, i64 14, !7, i64 16, !19, i64 18, !7, i64 20, !19, i64 22, !7, i64 24, !19, i64 26, !7, i64 28, !19, i64 30, !7, i64 32}
!19 = !{!"short", !7, i64 0}
!20 = !{!16, !10, i64 216}
!21 = !{!16, !10, i64 116}
!22 = !{!16, !10, i64 344}
!23 = !{!16, !10, i64 120}
!24 = distinct !{!24, !25}
!25 = !{!"llvm.loop.mustprogress"}
!26 = distinct !{!26, !25}
!27 = !{!16, !10, i64 256}
!28 = !{!16, !10, i64 260}
!29 = !{!16, !10, i64 144}
!30 = !{!16, !10, i64 160}
!31 = !{!16, !10, i64 176}
!32 = !{!16, !10, i64 204}
!33 = !{!16, !10, i64 224}
!34 = !{!16, !10, i64 240}
!35 = !{!16, !10, i64 264}
!36 = !{!16, !10, i64 208}
!37 = !{!16, !10, i64 212}
!38 = !{!16, !10, i64 132}
!39 = !{!16, !10, i64 136}
!40 = !{!16, !10, i64 140}
!41 = !{!16, !10, i64 228}
!42 = !{!16, !10, i64 232}
!43 = !{!16, !10, i64 192}
!44 = !{!16, !10, i64 196}
!45 = !{!16, !10, i64 200}
!46 = !{!16, !10, i64 220}
!47 = !{!16, !10, i64 280}
!48 = !{!16, !10, i64 284}
!49 = !{!16, !10, i64 288}
!50 = !{!16, !10, i64 292}
!51 = !{!16, !10, i64 296}
!52 = !{!16, !10, i64 300}
!53 = !{!16, !10, i64 304}
!54 = !{!16, !10, i64 308}
!55 = !{!16, !10, i64 312}
!56 = !{!16, !10, i64 316}
!57 = !{!16, !10, i64 148}
!58 = !{!16, !10, i64 152}
!59 = !{!16, !10, i64 156}
!60 = !{!16, !10, i64 164}
!61 = !{!16, !10, i64 168}
!62 = !{!16, !10, i64 172}
!63 = !{!16, !10, i64 180}
!64 = !{!16, !10, i64 184}
!65 = !{!16, !10, i64 188}
!66 = !{!16, !10, i64 348}
!67 = distinct !{!67, !25}
!68 = distinct !{!68, !25}


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

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

declare i32 @libxsmm_generator_aarch64_get_sve_type(i8 noundef zeroext) local_unnamed_addr #0

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

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

; Function Attrs: nounwind uwtable
define dso_local void @libxsmm_generator_mateqn_compute_unary_op_2d_reg_block_aarch64(ptr noundef %0, ptr noundef %1, i32 noundef %2, i32 noundef %3, i32 noundef %4, i32 noundef %5, i32 noundef %6) local_unnamed_addr #1 {
  %8 = tail call i32 @libxsmm_generator_matequation_regblocks_get_start_of_register_block(ptr noundef %1, i32 noundef %3) #2
  %9 = getelementptr inbounds i8, ptr %0, i64 28
  %10 = load i32, ptr %9, align 4, !tbaa !5
  %11 = add i32 %10, -2201
  %spec.select = icmp ult i32 %11, 799
  %12 = icmp eq i32 %6, 0
  %13 = select i1 %12, i8 8, i8 4
  %14 = tail call i32 @libxsmm_generator_aarch64_get_sve_type(i8 noundef zeroext %13) #2
  %15 = select i1 %12, i32 7, i32 5
  %.not = icmp eq i32 %5, 0
  br i1 %.not, label %._crit_edge621, label %.preheader.lr.ph

.preheader.lr.ph:                                 ; preds = %7
  %.not622 = icmp eq i32 %4, 0
  %16 = getelementptr inbounds i8, ptr %1, i64 1132
  %17 = getelementptr inbounds i8, ptr %1, i64 1136
  %18 = getelementptr inbounds i8, ptr %1, i64 1020
  %19 = getelementptr inbounds i8, ptr %1, i64 1036
  %20 = getelementptr inbounds i8, ptr %1, i64 1052
  %21 = getelementptr inbounds i8, ptr %1, i64 1080
  %22 = getelementptr inbounds i8, ptr %1, i64 1100
  %23 = getelementptr inbounds i8, ptr %1, i64 1116
  %24 = getelementptr inbounds i8, ptr %1, i64 1140
  %25 = getelementptr inbounds i8, ptr %1, i64 1084
  %26 = getelementptr inbounds i8, ptr %1, i64 1088
  %27 = getelementptr inbounds i8, ptr %1, i64 992
  %28 = getelementptr inbounds i8, ptr %1, i64 996
  %notmask = shl nsw i32 -1, %14
  %29 = and i32 %notmask, 255
  %30 = getelementptr inbounds i8, ptr %1, i64 1220
  %31 = getelementptr inbounds i8, ptr %1, i64 1092
  %32 = getelementptr inbounds i8, ptr %1, i64 180
  %33 = icmp eq i32 %2, 8
  %34 = add i32 %2, -7
  %or.cond = icmp ult i32 %34, 2
  %35 = icmp eq i32 %2, 10
  %36 = add i32 %2, -9
  %or.cond3 = icmp ult i32 %36, 2
  %37 = getelementptr inbounds i8, ptr %1, i64 1156
  %38 = getelementptr inbounds i8, ptr %1, i64 1160
  %39 = getelementptr inbounds i8, ptr %1, i64 1164
  %40 = getelementptr inbounds i8, ptr %1, i64 1168
  %41 = getelementptr inbounds i8, ptr %1, i64 1172
  %42 = getelementptr inbounds i8, ptr %1, i64 1176
  %43 = getelementptr inbounds i8, ptr %1, i64 1180
  %44 = getelementptr inbounds i8, ptr %1, i64 1184
  %45 = getelementptr inbounds i8, ptr %1, i64 1188
  %46 = getelementptr inbounds i8, ptr %1, i64 1192
  %47 = getelementptr inbounds i8, ptr %1, i64 1224
  %48 = getelementptr inbounds i8, ptr %1, i64 1024
  %49 = getelementptr inbounds i8, ptr %1, i64 1028
  %50 = getelementptr inbounds i8, ptr %1, i64 1032
  %51 = getelementptr inbounds i8, ptr %1, i64 1040
  %52 = getelementptr inbounds i8, ptr %1, i64 1044
  %53 = getelementptr inbounds i8, ptr %1, i64 1048
  %54 = getelementptr inbounds i8, ptr %1, i64 1056
  %55 = getelementptr inbounds i8, ptr %1, i64 1060
  %56 = getelementptr inbounds i8, ptr %1, i64 1064
  %57 = getelementptr inbounds i8, ptr %1, i64 1008
  %58 = getelementptr inbounds i8, ptr %1, i64 1012
  %59 = getelementptr inbounds i8, ptr %1, i64 1016
  %60 = getelementptr inbounds i8, ptr %1, i64 1104
  %61 = getelementptr inbounds i8, ptr %1, i64 1108
  %62 = getelementptr inbounds i8, ptr %1, i64 1068
  %63 = getelementptr inbounds i8, ptr %1, i64 1072
  %64 = getelementptr inbounds i8, ptr %1, i64 1076
  %65 = getelementptr inbounds i8, ptr %1, i64 1096
  br i1 %.not622, label %._crit_edge621, label %.preheader.us.preheader

.preheader.us.preheader:                          ; preds = %.preheader.lr.ph
  %.not612.us628 = icmp eq i32 %29, 255
  %66 = sub nsw i32 254, %29
  br label %.preheader.us

.preheader.us:                                    ; preds = %.preheader.us.preheader, %._crit_edge.us
  %.0596620.us = phi i32 [ %257, %._crit_edge.us ], [ 0, %.preheader.us.preheader ]
  %67 = mul i32 %.0596620.us, %4
  %68 = add i32 %67, %8
  br label %69

69:                                               ; preds = %.preheader.us, %.loopexit.us
  %.0618.us = phi i32 [ 0, %.preheader.us ], [ %256, %.loopexit.us ]
  %70 = add i32 %68, %.0618.us
  switch i32 %2, label %134 [
    i32 3, label %131
    i32 24, label %127
    i32 13, label %124
    i32 14, label %120
    i32 15, label %109
    i32 16, label %95
    i32 4, label %85
    i32 17, label %71
  ]

71:                                               ; preds = %69
  %72 = load i32, ptr %16, align 4, !tbaa !11
  %73 = load i32, ptr %17, align 4, !tbaa !13
  %74 = load i32, ptr %18, align 4, !tbaa !14
  %75 = load i32, ptr %19, align 4, !tbaa !15
  %76 = load i32, ptr %20, align 4, !tbaa !16
  %77 = load i32, ptr %21, align 4, !tbaa !17
  %78 = load i32, ptr %22, align 4, !tbaa !18
  %79 = load i32, ptr %23, align 4, !tbaa !19
  %80 = load i32, ptr %24, align 4, !tbaa !20
  %81 = load i32, ptr %25, align 4, !tbaa !21
  %82 = load i32, ptr %26, align 4, !tbaa !22
  br i1 %spec.select, label %84, label %83

83:                                               ; preds = %71
  tail call void @libxsmm_generator_exp_ps_3dts_aarch64_asimd(ptr noundef %0, i32 noundef %70, i32 noundef %72, i32 noundef %73, i32 noundef %74, i32 noundef %75, i32 noundef %76, i32 noundef %77, i32 noundef %78, i32 noundef %79, i32 noundef %80, i32 noundef %81, i32 noundef %82, i32 noundef %15) #2
  br label %.loopexit.us

84:                                               ; preds = %71
  tail call void @libxsmm_generator_exp_ps_3dts_aarch64_sve(ptr noundef %0, i32 noundef %70, i32 noundef %72, i32 noundef %73, i32 noundef %74, i32 noundef %75, i32 noundef %76, i32 noundef %77, i32 noundef %78, i32 noundef %79, i32 noundef %80, i32 noundef %81, i32 noundef %82, i32 noundef %14, i8 noundef zeroext 0) #2
  br label %.loopexit.us

85:                                               ; preds = %69
  br i1 %spec.select, label %87, label %86

86:                                               ; preds = %85
  tail call void @libxsmm_aarch64_instruction_asimd_compute(ptr noundef %0, i32 noundef 782366730, i32 noundef %70, i32 noundef 127, i8 noundef zeroext 0, i32 noundef %70, i32 noundef %15) #2
  br label %.loopexit.us

87:                                               ; preds = %85
  %88 = tail call i32 @libxsmm_get_ulp_precision() #2
  %.not.us = icmp eq i32 %88, 2
  br i1 %.not.us, label %.critedge.us, label %89

89:                                               ; preds = %87
  tail call void @libxsmm_aarch64_instruction_sve_compute(ptr noundef %0, i32 noundef 1695391874, i32 noundef %70, i32 noundef %70, i8 noundef zeroext 0, i32 noundef %70, i32 noundef 0, i32 noundef %14) #2
  br label %.loopexit.us

.critedge.us:                                     ; preds = %87
  %90 = load i32, ptr %27, align 4, !tbaa !23
  %91 = and i32 %90, 255
  %92 = load i32, ptr %28, align 4, !tbaa !24
  %93 = and i32 %92, 255
  tail call void @libxsmm_aarch64_instruction_sve_compute(ptr noundef %0, i32 noundef 1695428610, i32 noundef %70, i32 noundef %70, i8 noundef zeroext 0, i32 noundef %91, i32 noundef 0, i32 noundef %14) #2
  tail call void @libxsmm_aarch64_instruction_sve_compute(ptr noundef %0, i32 noundef 1694504963, i32 noundef %70, i32 noundef %91, i8 noundef zeroext 0, i32 noundef %70, i32 noundef 0, i32 noundef %14) #2
  tail call void @libxsmm_aarch64_instruction_sve_compute(ptr noundef %0, i32 noundef 1694500867, i32 noundef %70, i32 noundef %91, i8 noundef zeroext 0, i32 noundef %70, i32 noundef 0, i32 noundef %14) #2
  tail call void @libxsmm_aarch64_instruction_sve_compute(ptr noundef %0, i32 noundef 1695494146, i32 noundef %70, i32 noundef %70, i8 noundef zeroext 0, i32 noundef %91, i32 noundef 0, i32 noundef %14) #2
  %94 = and i32 %70, 255
  tail call void @libxsmm_aarch64_instruction_sve_compute(ptr noundef %0, i32 noundef 1694500867, i32 noundef %91, i32 noundef %91, i8 noundef zeroext 0, i32 noundef %93, i32 noundef 0, i32 noundef %14) #2
  tail call void @libxsmm_aarch64_instruction_sve_compute(ptr noundef %0, i32 noundef 1694505987, i32 noundef %70, i32 noundef %93, i8 noundef zeroext 0, i32 noundef %93, i32 noundef 0, i32 noundef %14) #2
  tail call void @libxsmm_aarch64_instruction_sve_compute(ptr noundef %0, i32 noundef 1694500867, i32 noundef %91, i32 noundef %93, i8 noundef zeroext 0, i32 noundef %94, i32 noundef 0, i32 noundef %14) #2
  br label %.loopexit.us

95:                                               ; preds = %69
  %96 = tail call i32 @libxsmm_get_ulp_precision() #2
  br i1 %spec.select, label %98, label %97

97:                                               ; preds = %95
  tail call void @libxsmm_aarch64_instruction_asimd_compute(ptr noundef %0, i32 noundef 782358538, i32 noundef %70, i32 noundef 127, i8 noundef zeroext 0, i32 noundef %70, i32 noundef %15) #2
  br label %.loopexit.us

98:                                               ; preds = %95
  %99 = icmp eq i32 %96, 2
  %100 = load i32, ptr %27, align 4, !tbaa !23
  %101 = and i32 %100, 255
  %102 = load i32, ptr %28, align 4, !tbaa !24
  %103 = and i32 %102, 255
  %.not612.us = select i1 %99, i1 true, i1 %.not612.us628
  %104 = select i1 %.not612.us, i32 %70, i32 %101
  tail call void @libxsmm_aarch64_instruction_sve_compute(ptr noundef %0, i32 noundef 1695494146, i32 noundef %70, i32 noundef %70, i8 noundef zeroext 0, i32 noundef %104, i32 noundef 0, i32 noundef %14) #2
  br i1 %.not612.us, label %.loopexit.us, label %.lr.ph.us

.lr.ph.us:                                        ; preds = %98, %.lr.ph.us
  %indvars.iv = phi i32 [ %indvars.iv.next, %.lr.ph.us ], [ 0, %98 ]
  %105 = icmp eq i32 %66, %indvars.iv
  %106 = select i1 %105, i32 %70, i32 %100
  %107 = and i32 %106, 255
  tail call void @libxsmm_aarch64_instruction_sve_compute(ptr noundef %0, i32 noundef 1694500867, i32 noundef %101, i32 noundef %101, i8 noundef zeroext 0, i32 noundef %103, i32 noundef 0, i32 noundef %14) #2
  tail call void @libxsmm_aarch64_instruction_sve_compute(ptr noundef %0, i32 noundef 1694505987, i32 noundef %70, i32 noundef %103, i8 noundef zeroext 0, i32 noundef %103, i32 noundef 0, i32 noundef %14) #2
  tail call void @libxsmm_aarch64_instruction_sve_compute(ptr noundef %0, i32 noundef 1694500867, i32 noundef %101, i32 noundef %103, i8 noundef zeroext 0, i32 noundef %107, i32 noundef 0, i32 noundef %14) #2
  %indvars.iv.next = add nuw nsw i32 %indvars.iv, 1
  %108 = xor i32 %29, %indvars.iv.next
  %exitcond.not = icmp eq i32 %108, 255
  br i1 %exitcond.not, label %.loopexit.us, label %.lr.ph.us, !llvm.loop !25

109:                                              ; preds = %69
  br i1 %spec.select, label %114, label %110

110:                                              ; preds = %109
  %111 = load i32, ptr %30, align 4, !tbaa !27
  tail call void @libxsmm_aarch64_instruction_asimd_compute(ptr noundef %0, i32 noundef 245487626, i32 noundef %70, i32 noundef 127, i8 noundef zeroext 0, i32 noundef %111, i32 noundef %15) #2
  %112 = load i32, ptr %30, align 4, !tbaa !27
  tail call void @libxsmm_aarch64_instruction_asimd_compute(ptr noundef %0, i32 noundef 237042699, i32 noundef %70, i32 noundef %112, i8 noundef zeroext 0, i32 noundef %70, i32 noundef %15) #2
  %113 = load i32, ptr %30, align 4, !tbaa !27
  tail call void @libxsmm_aarch64_instruction_asimd_compute(ptr noundef %0, i32 noundef 773905419, i32 noundef %70, i32 noundef %113, i8 noundef zeroext 0, i32 noundef %70, i32 noundef %15) #2
  br label %.loopexit.us

114:                                              ; preds = %109
  %115 = tail call i32 @libxsmm_get_ulp_precision() #2
  %.not613.us = icmp eq i32 %115, 2
  br i1 %.not613.us, label %119, label %116

116:                                              ; preds = %114
  %117 = load i32, ptr %27, align 4, !tbaa !23
  %118 = and i32 %117, 255
  tail call void @libxsmm_aarch64_instruction_sve_compute(ptr noundef %0, i32 noundef 1695428610, i32 noundef %70, i32 noundef %70, i8 noundef zeroext 0, i32 noundef %118, i32 noundef 0, i32 noundef %14) #2
  tail call void @libxsmm_aarch64_instruction_sve_compute(ptr noundef %0, i32 noundef 1694504963, i32 noundef %70, i32 noundef %118, i8 noundef zeroext 0, i32 noundef %70, i32 noundef 0, i32 noundef %14) #2
  tail call void @libxsmm_aarch64_instruction_sve_compute(ptr noundef %0, i32 noundef 1694500867, i32 noundef %70, i32 noundef %118, i8 noundef zeroext 0, i32 noundef %70, i32 noundef 0, i32 noundef %14) #2
  br label %.loopexit.us

119:                                              ; preds = %114
  tail call void @libxsmm_aarch64_instruction_sve_compute(ptr noundef %0, i32 noundef 1695428610, i32 noundef %70, i32 noundef %70, i8 noundef zeroext 0, i32 noundef %70, i32 noundef 0, i32 noundef %14) #2
  br label %.loopexit.us

120:                                              ; preds = %69
  %121 = load i32, ptr %31, align 4, !tbaa !28
  br i1 %spec.select, label %123, label %122

122:                                              ; preds = %120
  tail call void @libxsmm_aarch64_instruction_asimd_compute(ptr noundef %0, i32 noundef 237032459, i32 noundef %70, i32 noundef %121, i8 noundef zeroext 0, i32 noundef %70, i32 noundef %15) #2
  br label %.loopexit.us

123:                                              ; preds = %120
  tail call void @libxsmm_aarch64_instruction_sve_compute(ptr noundef %0, i32 noundef 1694498819, i32 noundef %70, i32 noundef %121, i8 noundef zeroext 0, i32 noundef %70, i32 noundef 0, i32 noundef %14) #2
  br label %.loopexit.us

124:                                              ; preds = %69
  br i1 %spec.select, label %126, label %125

125:                                              ; preds = %124
  tail call void @libxsmm_aarch64_instruction_asimd_compute(ptr noundef %0, i32 noundef 782301194, i32 noundef %70, i32 noundef 127, i8 noundef zeroext 0, i32 noundef %70, i32 noundef %15) #2
  br label %.loopexit.us

126:                                              ; preds = %124
  tail call void @libxsmm_aarch64_instruction_sve_compute(ptr noundef %0, i32 noundef 69050498, i32 noundef %70, i32 noundef %70, i8 noundef zeroext 0, i32 noundef %70, i32 noundef 0, i32 noundef %14) #2
  br label %.loopexit.us

127:                                              ; preds = %69
  %128 = load i32, ptr %32, align 4, !tbaa !29
  br i1 %spec.select, label %130, label %129

129:                                              ; preds = %127
  tail call void @libxsmm_aarch64_instruction_asimd_compute(ptr noundef %0, i32 noundef 237032459, i32 noundef %70, i32 noundef %128, i8 noundef zeroext 0, i32 noundef %128, i32 noundef %15) #2
  br label %.loopexit.us

130:                                              ; preds = %127
  tail call void @libxsmm_aarch64_instruction_sve_compute(ptr noundef %0, i32 noundef 1694498819, i32 noundef %70, i32 noundef %128, i8 noundef zeroext 0, i32 noundef %128, i32 noundef 0, i32 noundef %14) #2
  br label %.loopexit.us

131:                                              ; preds = %69
  br i1 %spec.select, label %133, label %132

132:                                              ; preds = %131
  tail call void @libxsmm_aarch64_instruction_asimd_compute(ptr noundef %0, i32 noundef 773905419, i32 noundef %70, i32 noundef %70, i8 noundef zeroext 0, i32 noundef %70, i32 noundef %15) #2
  br label %.loopexit.us

133:                                              ; preds = %131
  tail call void @libxsmm_aarch64_instruction_sve_compute(ptr noundef %0, i32 noundef 1694500867, i32 noundef %70, i32 noundef %70, i8 noundef zeroext 0, i32 noundef %70, i32 noundef 0, i32 noundef %14) #2
  br label %.loopexit.us

134:                                              ; preds = %69
  br i1 %or.cond, label %228, label %135

135:                                              ; preds = %134
  br i1 %or.cond3, label %201, label %136

136:                                              ; preds = %135
  switch i32 %2, label %.loopexit.us [
    i32 11, label %169
    i32 12, label %137
  ]

137:                                              ; preds = %136
  %138 = load i32, ptr %37, align 4, !tbaa !34
  %139 = load i32, ptr %38, align 4, !tbaa !35
  %140 = load i32, ptr %39, align 4, !tbaa !36
  %141 = load i32, ptr %40, align 4, !tbaa !37
  %142 = load i32, ptr %41, align 4, !tbaa !38
  %143 = load i32, ptr %42, align 4, !tbaa !39
  %144 = load i32, ptr %43, align 4, !tbaa !40
  %145 = load i32, ptr %44, align 4, !tbaa !41
  %146 = load i32, ptr %45, align 4, !tbaa !42
  %147 = load i32, ptr %46, align 4, !tbaa !43
  %148 = load i32, ptr %22, align 4, !tbaa !18
  %149 = load i32, ptr %18, align 4, !tbaa !14
  br i1 %spec.select, label %155, label %150

150:                                              ; preds = %137
  %151 = load i32, ptr %19, align 4, !tbaa !15
  %152 = load i32, ptr %20, align 4, !tbaa !16
  %153 = load i32, ptr %30, align 4, !tbaa !27
  %154 = load i32, ptr %47, align 4, !tbaa !44
  tail call void @libxsmm_generator_gelu_inv_ps_minimax3_aarch64_asimd(ptr noundef %0, i32 noundef %70, i32 noundef %138, i32 noundef %139, i32 noundef %140, i32 noundef %141, i32 noundef %142, i32 noundef %143, i32 noundef %144, i32 noundef %145, i32 noundef %146, i32 noundef %147, i32 noundef %148, i32 noundef %149, i32 noundef %151, i32 noundef %152, i32 noundef %153, i32 noundef %154, i32 noundef %15) #2
  br label %.loopexit.us

155:                                              ; preds = %137
  %156 = load i32, ptr %48, align 4, !tbaa !45
  %157 = load i32, ptr %49, align 4, !tbaa !46
  %158 = load i32, ptr %50, align 4, !tbaa !47
  %159 = load i32, ptr %19, align 4, !tbaa !15
  %160 = load i32, ptr %51, align 4, !tbaa !48
  %161 = load i32, ptr %52, align 4, !tbaa !49
  %162 = load i32, ptr %53, align 4, !tbaa !50
  %163 = load i32, ptr %20, align 4, !tbaa !16
  %164 = load i32, ptr %54, align 4, !tbaa !51
  %165 = load i32, ptr %55, align 4, !tbaa !52
  %166 = load i32, ptr %56, align 4, !tbaa !53
  %167 = load i32, ptr %30, align 4, !tbaa !27
  %168 = load i32, ptr %47, align 4, !tbaa !44
  tail call void @libxsmm_generator_gelu_inv_ps_minimax3_aarch64_sve(ptr noundef %0, i32 noundef %70, i32 noundef %138, i32 noundef %139, i32 noundef %140, i32 noundef %141, i32 noundef %142, i32 noundef %143, i32 noundef %144, i32 noundef %145, i32 noundef %146, i32 noundef %147, i32 noundef %148, i32 noundef %149, i32 noundef %156, i32 noundef %157, i32 noundef %158, i32 noundef %159, i32 noundef %160, i32 noundef %161, i32 noundef %162, i32 noundef %163, i32 noundef %164, i32 noundef %165, i32 noundef %166, i32 noundef %167, i32 noundef %168, i32 noundef %14, i8 noundef zeroext 0) #2
  br label %.loopexit.us

169:                                              ; preds = %136
  %170 = load i32, ptr %37, align 4, !tbaa !34
  %171 = load i32, ptr %38, align 4, !tbaa !35
  %172 = load i32, ptr %39, align 4, !tbaa !36
  %173 = load i32, ptr %40, align 4, !tbaa !37
  %174 = load i32, ptr %41, align 4, !tbaa !38
  %175 = load i32, ptr %42, align 4, !tbaa !39
  %176 = load i32, ptr %43, align 4, !tbaa !40
  %177 = load i32, ptr %44, align 4, !tbaa !41
  %178 = load i32, ptr %45, align 4, !tbaa !42
  %179 = load i32, ptr %46, align 4, !tbaa !43
  %180 = load i32, ptr %22, align 4, !tbaa !18
  %181 = load i32, ptr %18, align 4, !tbaa !14
  br i1 %spec.select, label %187, label %182

182:                                              ; preds = %169
  %183 = load i32, ptr %19, align 4, !tbaa !15
  %184 = load i32, ptr %20, align 4, !tbaa !16
  %185 = load i32, ptr %30, align 4, !tbaa !27
  %186 = load i32, ptr %47, align 4, !tbaa !44
  tail call void @libxsmm_generator_gelu_ps_minimax3_aarch64_asimd(ptr noundef %0, i32 noundef %70, i32 noundef %170, i32 noundef %171, i32 noundef %172, i32 noundef %173, i32 noundef %174, i32 noundef %175, i32 noundef %176, i32 noundef %177, i32 noundef %178, i32 noundef %179, i32 noundef %180, i32 noundef %181, i32 noundef %183, i32 noundef %184, i32 noundef %185, i32 noundef %186, i32 noundef %15) #2
  br label %.loopexit.us

187:                                              ; preds = %169
  %188 = load i32, ptr %48, align 4, !tbaa !45
  %189 = load i32, ptr %49, align 4, !tbaa !46
  %190 = load i32, ptr %50, align 4, !tbaa !47
  %191 = load i32, ptr %19, align 4, !tbaa !15
  %192 = load i32, ptr %51, align 4, !tbaa !48
  %193 = load i32, ptr %52, align 4, !tbaa !49
  %194 = load i32, ptr %53, align 4, !tbaa !50
  %195 = load i32, ptr %20, align 4, !tbaa !16
  %196 = load i32, ptr %54, align 4, !tbaa !51
  %197 = load i32, ptr %55, align 4, !tbaa !52
  %198 = load i32, ptr %56, align 4, !tbaa !53
  %199 = load i32, ptr %30, align 4, !tbaa !27
  %200 = load i32, ptr %47, align 4, !tbaa !44
  tail call void @libxsmm_generator_gelu_ps_minimax3_aarch64_sve(ptr noundef %0, i32 noundef %70, i32 noundef %170, i32 noundef %171, i32 noundef %172, i32 noundef %173, i32 noundef %174, i32 noundef %175, i32 noundef %176, i32 noundef %177, i32 noundef %178, i32 noundef %179, i32 noundef %180, i32 noundef %181, i32 noundef %188, i32 noundef %189, i32 noundef %190, i32 noundef %191, i32 noundef %192, i32 noundef %193, i32 noundef %194, i32 noundef %195, i32 noundef %196, i32 noundef %197, i32 noundef %198, i32 noundef %199, i32 noundef %200, i32 noundef %14, i8 noundef zeroext 0) #2
  br label %.loopexit.us

201:                                              ; preds = %135
  %202 = load i32, ptr %57, align 4, !tbaa !54
  %203 = load i32, ptr %58, align 4, !tbaa !55
  %204 = load i32, ptr %59, align 4, !tbaa !56
  %205 = load i32, ptr %60, align 4, !tbaa !57
  %206 = load i32, ptr %61, align 4, !tbaa !58
  %207 = load i32, ptr %18, align 4, !tbaa !14
  %208 = load i32, ptr %19, align 4, !tbaa !15
  %209 = load i32, ptr %20, align 4, !tbaa !16
  %210 = load i32, ptr %21, align 4, !tbaa !17
  %211 = load i32, ptr %62, align 4, !tbaa !59
  %212 = load i32, ptr %63, align 4, !tbaa !60
  %213 = load i32, ptr %64, align 4, !tbaa !61
  %214 = load i32, ptr %25, align 4, !tbaa !21
  %215 = load i32, ptr %26, align 4, !tbaa !22
  %216 = load i32, ptr %31, align 4, !tbaa !28
  %217 = load i32, ptr %65, align 4, !tbaa !62
  %218 = load i32, ptr %22, align 4, !tbaa !18
  %219 = load i32, ptr %30, align 4, !tbaa !27
  br i1 %spec.select, label %223, label %.thread615.us

.thread615.us:                                    ; preds = %201
  tail call void @libxsmm_generator_sigmoid_ps_rational_78_aarch64_asimd(ptr noundef %0, i32 noundef %70, i32 noundef %202, i32 noundef %203, i32 noundef %204, i32 noundef %205, i32 noundef %206, i32 noundef %207, i32 noundef %208, i32 noundef %209, i32 noundef %210, i32 noundef %211, i32 noundef %212, i32 noundef %213, i32 noundef %214, i32 noundef %215, i32 noundef %216, i32 noundef %217, i32 noundef %218, i32 noundef %219, i32 noundef %15) #2
  br i1 %35, label %.thread616.us, label %.loopexit.us

.thread616.us:                                    ; preds = %.thread615.us
  %220 = load i32, ptr %31, align 4, !tbaa !28
  %221 = load i32, ptr %57, align 4, !tbaa !54
  tail call void @libxsmm_aarch64_instruction_asimd_compute(ptr noundef %0, i32 noundef 245421067, i32 noundef %220, i32 noundef %70, i8 noundef zeroext 0, i32 noundef %221, i32 noundef %15) #2
  %222 = load i32, ptr %57, align 4, !tbaa !54
  tail call void @libxsmm_aarch64_instruction_asimd_compute(ptr noundef %0, i32 noundef 773905419, i32 noundef %222, i32 noundef %70, i8 noundef zeroext 0, i32 noundef %70, i32 noundef %15) #2
  br label %.loopexit.us

223:                                              ; preds = %201
  tail call void @libxsmm_generator_sigmoid_ps_rational_78_aarch64_sve(ptr noundef %0, i32 noundef %70, i32 noundef %202, i32 noundef %203, i32 noundef %204, i32 noundef %205, i32 noundef %206, i32 noundef %207, i32 noundef %208, i32 noundef %209, i32 noundef %210, i32 noundef %211, i32 noundef %212, i32 noundef %213, i32 noundef %214, i32 noundef %215, i32 noundef %216, i32 noundef %217, i32 noundef %218, i32 noundef %219, i32 noundef %14, i8 noundef zeroext 0) #2
  br i1 %35, label %224, label %.loopexit.us

224:                                              ; preds = %223
  %225 = load i32, ptr %31, align 4, !tbaa !28
  %226 = load i32, ptr %57, align 4, !tbaa !54
  tail call void @libxsmm_aarch64_instruction_sve_compute(ptr noundef %0, i32 noundef 1694499843, i32 noundef %225, i32 noundef %70, i8 noundef zeroext 0, i32 noundef %226, i32 noundef 0, i32 noundef %14) #2
  %227 = load i32, ptr %57, align 4, !tbaa !54
  tail call void @libxsmm_aarch64_instruction_sve_compute(ptr noundef %0, i32 noundef 1694500867, i32 noundef %227, i32 noundef %70, i8 noundef zeroext 0, i32 noundef %70, i32 noundef 0, i32 noundef %14) #2
  br label %.loopexit.us

228:                                              ; preds = %134
  %229 = load i32, ptr %57, align 4, !tbaa !54
  %230 = load i32, ptr %58, align 4, !tbaa !55
  %231 = load i32, ptr %59, align 4, !tbaa !56
  %232 = load i32, ptr %60, align 4, !tbaa !57
  %233 = load i32, ptr %61, align 4, !tbaa !58
  %234 = load i32, ptr %18, align 4, !tbaa !14
  %235 = load i32, ptr %19, align 4, !tbaa !15
  %236 = load i32, ptr %20, align 4, !tbaa !16
  %237 = load i32, ptr %21, align 4, !tbaa !17
  %238 = load i32, ptr %62, align 4, !tbaa !59
  %239 = load i32, ptr %63, align 4, !tbaa !60
  %240 = load i32, ptr %64, align 4, !tbaa !61
  %241 = load i32, ptr %25, align 4, !tbaa !21
  %242 = load i32, ptr %26, align 4, !tbaa !22
  %243 = load i32, ptr %31, align 4, !tbaa !28
  %244 = load i32, ptr %65, align 4, !tbaa !62
  %245 = load i32, ptr %30, align 4, !tbaa !27
  br i1 %spec.select, label %250, label %.thread.us

.thread.us:                                       ; preds = %228
  tail call void @libxsmm_generator_tanh_ps_rational_78_aarch64_asimd(ptr noundef %0, i32 noundef %70, i32 noundef %229, i32 noundef %230, i32 noundef %231, i32 noundef %232, i32 noundef %233, i32 noundef %234, i32 noundef %235, i32 noundef %236, i32 noundef %237, i32 noundef %238, i32 noundef %239, i32 noundef %240, i32 noundef %241, i32 noundef %242, i32 noundef %243, i32 noundef %244, i32 noundef %245, i32 noundef %15) #2
  br i1 %33, label %.thread614.us, label %.loopexit.us

.thread614.us:                                    ; preds = %.thread.us
  %246 = load i32, ptr %30, align 4, !tbaa !27
  tail call void @libxsmm_aarch64_instruction_asimd_compute(ptr noundef %0, i32 noundef 773905419, i32 noundef %70, i32 noundef %70, i8 noundef zeroext 0, i32 noundef %246, i32 noundef %15) #2
  %247 = load i32, ptr %30, align 4, !tbaa !27
  tail call void @libxsmm_aarch64_instruction_asimd_compute(ptr noundef %0, i32 noundef 782301194, i32 noundef %247, i32 noundef 127, i8 noundef zeroext 0, i32 noundef %247, i32 noundef %15) #2
  %248 = load i32, ptr %30, align 4, !tbaa !27
  %249 = load i32, ptr %65, align 4, !tbaa !62
  tail call void @libxsmm_aarch64_instruction_asimd_compute(ptr noundef %0, i32 noundef 245421067, i32 noundef %248, i32 noundef %249, i8 noundef zeroext 0, i32 noundef %70, i32 noundef %15) #2
  br label %.loopexit.us

250:                                              ; preds = %228
  tail call void @libxsmm_generator_tanh_ps_rational_78_aarch64_sve(ptr noundef %0, i32 noundef %70, i32 noundef %229, i32 noundef %230, i32 noundef %231, i32 noundef %232, i32 noundef %233, i32 noundef %234, i32 noundef %235, i32 noundef %236, i32 noundef %237, i32 noundef %238, i32 noundef %239, i32 noundef %240, i32 noundef %241, i32 noundef %242, i32 noundef %243, i32 noundef %244, i32 noundef %245, i32 noundef %14, i8 noundef zeroext 0) #2
  br i1 %33, label %251, label %.loopexit.us

251:                                              ; preds = %250
  %252 = load i32, ptr %30, align 4, !tbaa !27
  tail call void @libxsmm_aarch64_instruction_sve_compute(ptr noundef %0, i32 noundef 1694500867, i32 noundef %70, i32 noundef %70, i8 noundef zeroext 0, i32 noundef %252, i32 noundef 0, i32 noundef %14) #2
  %253 = load i32, ptr %30, align 4, !tbaa !27
  tail call void @libxsmm_aarch64_instruction_sve_compute(ptr noundef %0, i32 noundef 69050498, i32 noundef %253, i32 noundef 127, i8 noundef zeroext 0, i32 noundef %253, i32 noundef 0, i32 noundef %14) #2
  %254 = load i32, ptr %30, align 4, !tbaa !27
  %255 = load i32, ptr %65, align 4, !tbaa !62
  tail call void @libxsmm_aarch64_instruction_sve_compute(ptr noundef %0, i32 noundef 1694499843, i32 noundef %254, i32 noundef %255, i8 noundef zeroext 0, i32 noundef %70, i32 noundef 0, i32 noundef %14) #2
  br label %.loopexit.us

.loopexit.us:                                     ; preds = %.lr.ph.us, %98, %251, %250, %.thread614.us, %.thread.us, %224, %223, %.thread616.us, %.thread615.us, %187, %182, %155, %150, %136, %133, %132, %130, %129, %126, %125, %123, %122, %119, %116, %110, %97, %.critedge.us, %89, %86, %84, %83
  %256 = add nuw i32 %.0618.us, 1
  %exitcond626.not = icmp eq i32 %256, %4
  br i1 %exitcond626.not, label %._crit_edge.us, label %69, !llvm.loop !63

._crit_edge.us:                                   ; preds = %.loopexit.us
  %257 = add nuw i32 %.0596620.us, 1
  %exitcond627.not = icmp eq i32 %257, %5
  br i1 %exitcond627.not, label %._crit_edge621, label %.preheader.us, !llvm.loop !64

._crit_edge621:                                   ; preds = %._crit_edge.us, %.preheader.lr.ph, %7
  ret void
}

declare i32 @libxsmm_get_ulp_precision() local_unnamed_addr #0

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

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

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

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

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

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

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

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

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

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

attributes #0 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { nounwind }

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !10, i64 28}
!6 = !{!"libxsmm_generated_code", !7, i64 0, !10, i64 8, !10, i64 12, !10, i64 16, !10, i64 20, !10, i64 24, !10, i64 28}
!7 = !{!"any pointer", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C/C++ TBAA"}
!10 = !{!"int", !8, i64 0}
!11 = !{!12, !10, i64 256}
!12 = !{!"libxsmm_mateltwise_kernel_config_struct", !10, i64 0, !10, i64 4, !10, i64 8, !10, i64 12, !10, i64 16, !10, i64 20, !10, i64 24, !10, i64 28, !10, i64 32, !10, i64 36, !10, i64 40, !10, i64 44, !10, i64 48, !10, i64 52, !10, i64 56, !10, i64 60, !10, i64 64, !10, i64 68, !10, i64 72, !10, i64 76, !10, i64 80, !10, i64 84, !10, i64 88, !10, i64 92, !10, i64 96, !10, i64 100, !10, i64 104, !10, i64 108, !10, i64 112, !10, i64 116, !10, i64 120, !10, i64 124, !10, i64 128, !10, i64 132, !10, i64 136, !10, i64 140, !10, i64 144, !10, i64 148, !10, i64 152, !10, i64 156, !10, i64 160, !10, i64 164, !10, i64 168, !10, i64 172, !10, i64 176, !10, i64 180, !10, i64 184, !10, i64 188, !10, i64 192, !10, i64 196, !10, i64 200, !10, i64 204, !10, i64 208, !10, i64 212, !10, i64 216, !10, i64 220, !10, i64 224, !10, i64 228, !10, i64 232, !10, i64 236, !10, i64 240, !10, i64 244, !10, i64 248, !10, i64 252, !10, i64 256, !10, i64 260, !10, i64 264, !10, i64 268, !10, i64 272, !10, i64 276, !10, i64 280, !10, i64 284, !10, i64 288, !10, i64 292, !10, i64 296, !10, i64 300, !10, i64 304, !10, i64 308, !10, i64 312, !10, i64 316, !10, i64 320, !10, i64 324, !10, i64 328, !10, i64 332, !10, i64 336, !10, i64 340, !10, i64 344, !10, i64 348, !10, i64 352, !10, i64 356, !10, i64 360, !10, i64 364, !10, i64 368, !10, i64 372, !10, i64 376, !10, i64 380, !10, i64 384, !10, i64 388, !10, i64 392, !10, i64 396, !10, i64 400, !10, i64 404, !10, i64 408, !10, i64 412, !10, i64 416, !10, i64 420, !10, i64 424, !10, i64 428, !10, i64 432, !10, i64 436, !10, i64 440, !10, i64 444, !10, i64 448, !10, i64 452, !10, i64 456, !10, i64 460, !10, i64 464, !10, i64 468, !10, i64 472, !10, i64 476, !10, i64 480, !10, i64 484, !10, i64 488, !10, i64 492, !10, i64 496, !10, i64 500, !10, i64 504, !10, i64 508, !8, i64 512}
!13 = !{!12, !10, i64 260}
!14 = !{!12, !10, i64 144}
!15 = !{!12, !10, i64 160}
!16 = !{!12, !10, i64 176}
!17 = !{!12, !10, i64 204}
!18 = !{!12, !10, i64 224}
!19 = !{!12, !10, i64 240}
!20 = !{!12, !10, i64 264}
!21 = !{!12, !10, i64 208}
!22 = !{!12, !10, i64 212}
!23 = !{!12, !10, i64 116}
!24 = !{!12, !10, i64 120}
!25 = distinct !{!25, !26}
!26 = !{!"llvm.loop.mustprogress"}
!27 = !{!12, !10, i64 344}
!28 = !{!12, !10, i64 216}
!29 = !{!30, !10, i64 180}
!30 = !{!"libxsmm_matequation_kernel_config_struct", !10, i64 0, !10, i64 4, !10, i64 8, !10, i64 12, !10, i64 16, !10, i64 20, !10, i64 24, !10, i64 28, !10, i64 32, !10, i64 36, !10, i64 40, !10, i64 44, !10, i64 48, !10, i64 52, !10, i64 56, !10, i64 60, !10, i64 64, !10, i64 68, !8, 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, !8, i64 188, !10, i64 316, !10, i64 320, !10, i64 324, !10, i64 328, !7, i64 336, !7, i64 344, !10, i64 352, !10, i64 356, !10, i64 360, !8, i64 364, !8, i64 620, !12, i64 876, !31, i64 1392}
!31 = !{!"libxsmm_micro_kernel_config", !10, i64 0, !10, i64 4, !10, i64 8, !10, i64 12, !10, i64 16, !10, i64 20, !10, i64 24, !10, i64 28, !10, i64 32, !10, i64 36, !10, i64 40, !10, i64 44, !10, i64 48, !10, i64 52, !10, i64 56, !10, i64 60, !10, i64 64, !10, i64 68, !10, i64 72, !10, i64 76, !10, i64 80, !8, 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, !8, i64 364, !8, i64 380, !8, i64 396, !8, i64 412, !8, i64 428, !8, i64 444, !10, i64 460, !8, i64 464, !32, i64 520, !10, i64 556, !10, i64 560, !10, i64 564, !10, i64 568, !10, i64 572, !10, i64 576, !10, i64 580, !10, i64 584, !7, i64 592, !10, i64 600, !10, i64 604, !10, i64 608, !10, i64 612, !7, i64 616, !10, i64 624, !10, i64 628, !10, i64 632, !10, i64 636, !10, i64 640, !10, i64 644, !10, i64 648, !10, i64 652, !10, i64 656, !10, i64 660, !10, i64 664, !10, i64 668, !10, i64 672, !10, i64 676, !10, i64 680}
!32 = !{!"libxsmm_tile_config", !8, i64 0, !33, i64 2, !8, i64 4, !33, i64 6, !8, i64 8, !33, i64 10, !8, i64 12, !33, i64 14, !8, i64 16, !33, i64 18, !8, i64 20, !33, i64 22, !8, i64 24, !33, i64 26, !8, i64 28, !33, i64 30, !8, i64 32}
!33 = !{!"short", !8, i64 0}
!34 = !{!12, !10, i64 280}
!35 = !{!12, !10, i64 284}
!36 = !{!12, !10, i64 288}
!37 = !{!12, !10, i64 292}
!38 = !{!12, !10, i64 296}
!39 = !{!12, !10, i64 300}
!40 = !{!12, !10, i64 304}
!41 = !{!12, !10, i64 308}
!42 = !{!12, !10, i64 312}
!43 = !{!12, !10, i64 316}
!44 = !{!12, !10, i64 348}
!45 = !{!12, !10, i64 148}
!46 = !{!12, !10, i64 152}
!47 = !{!12, !10, i64 156}
!48 = !{!12, !10, i64 164}
!49 = !{!12, !10, i64 168}
!50 = !{!12, !10, i64 172}
!51 = !{!12, !10, i64 180}
!52 = !{!12, !10, i64 184}
!53 = !{!12, !10, i64 188}
!54 = !{!12, !10, i64 132}
!55 = !{!12, !10, i64 136}
!56 = !{!12, !10, i64 140}
!57 = !{!12, !10, i64 228}
!58 = !{!12, !10, i64 232}
!59 = !{!12, !10, i64 192}
!60 = !{!12, !10, i64 196}
!61 = !{!12, !10, i64 200}
!62 = !{!12, !10, i64 220}
!63 = distinct !{!63, !26}
!64 = distinct !{!64, !26}


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