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

@.str = external hidden unnamed_addr constant [97 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [281 x i8], align 1
@__PRETTY_FUNCTION__.libxsmm_compute_unary_aarch64_2d_reg_block_op = external hidden unnamed_addr constant [274 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [386 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [391 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [461 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

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

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

declare i32 @libxsmm_generator_aarch64_get_sve_type(i8 noundef zeroext) #1

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

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

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

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

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

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

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

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

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

90:                                               ; preds = %83, %74
  %91 = phi i1 [ false, %74 ], [ %89, %83 ]
  %92 = zext i1 %91 to i64
  %93 = select i1 %91, i32 1, i32 0
  store i32 %93, ptr %26, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %27) #4
  %94 = load ptr, ptr %11, align 8, !tbaa !5
  %95 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %94, i32 0, i32 6
  %96 = load i32, ptr %95, align 4, !tbaa !15
  %97 = icmp uge i32 %96, 2201
  br i1 %97, label %98, label %103

98:                                               ; preds = %90
  %99 = load ptr, ptr %11, align 8, !tbaa !5
  %100 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %99, i32 0, i32 6
  %101 = load i32, ptr %100, align 4, !tbaa !15
  %102 = icmp ule i32 %101, 2999
  br label %103

103:                                              ; preds = %98, %90
  %104 = phi i1 [ false, %90 ], [ %102, %98 ]
  %105 = zext i1 %104 to i32
  %106 = trunc i32 %105 to i8
  store i8 %106, ptr %27, align 1, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 1, ptr %28) #4
  %107 = load i32, ptr %20, align 4, !tbaa !9
  %108 = trunc i32 %107 to i8
  %109 = zext i8 %108 to i32
  %110 = icmp eq i32 0, %109
  br i1 %110, label %116, label %111

111:                                              ; preds = %103
  %112 = load i32, ptr %20, align 4, !tbaa !9
  %113 = trunc i32 %112 to i8
  %114 = zext i8 %113 to i32
  %115 = icmp slt i32 0, %114
  br i1 %115, label %116, label %134

116:                                              ; preds = %111, %103
  %117 = load i32, ptr %20, align 4, !tbaa !9
  %118 = zext i32 %117 to i64
  %119 = mul i64 1, %118
  %120 = icmp ult i64 %119, 255
  br i1 %120, label %121, label %125

121:                                              ; preds = %116
  %122 = load i32, ptr %20, align 4, !tbaa !9
  %123 = zext i32 %122 to i64
  %124 = mul i64 1, %123
  br label %126

125:                                              ; preds = %116
  br label %126

126:                                              ; preds = %125, %121
  %127 = phi i64 [ %124, %121 ], [ 255, %125 ]
  %128 = icmp ule i64 %127, 255
  br i1 %128, label %129, label %134

129:                                              ; preds = %126
  %130 = load i32, ptr %20, align 4, !tbaa !9
  %131 = uitofp i32 %130 to double
  %132 = fcmp ole double 0.000000e+00, %131
  br i1 %132, label %133, label %134

133:                                              ; preds = %129
  br label %135

134:                                              ; preds = %129, %126, %111
  call void @__assert_fail(ptr noundef @.str.7, ptr noundef @.str, i32 noundef 963, ptr noundef @__PRETTY_FUNCTION__.libxsmm_compute_unary_aarch64_2d_reg_block_op) #5
  unreachable

135:                                              ; preds = %133
  %136 = load i32, ptr %20, align 4, !tbaa !9
  %137 = trunc i32 %136 to i8
  store i8 %137, ptr %28, align 1, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 1, ptr %29) #4
  %138 = load ptr, ptr %14, align 8, !tbaa !5
  %139 = getelementptr inbounds %struct.libxsmm_meltw_descriptor, ptr %138, i32 0, i32 10
  %140 = load i16, ptr %139, align 1, !tbaa !18
  %141 = zext i16 %140 to i32
  %142 = icmp ne i32 %141, 3
  br i1 %142, label %143, label %155

143:                                              ; preds = %135
  %144 = load ptr, ptr %14, align 8, !tbaa !5
  %145 = getelementptr inbounds %struct.libxsmm_meltw_descriptor, ptr %144, i32 0, i32 10
  %146 = load i16, ptr %145, align 1, !tbaa !18
  %147 = zext i16 %146 to i32
  %148 = icmp ne i32 %147, 15
  br i1 %148, label %149, label %155

149:                                              ; preds = %143
  %150 = load ptr, ptr %14, align 8, !tbaa !5
  %151 = getelementptr inbounds %struct.libxsmm_meltw_descriptor, ptr %150, i32 0, i32 10
  %152 = load i16, ptr %151, align 1, !tbaa !18
  %153 = zext i16 %152 to i32
  %154 = icmp ne i32 %153, 16
  br label %155

155:                                              ; preds = %149, %143, %135
  %156 = phi i1 [ false, %143 ], [ false, %135 ], [ %154, %149 ]
  %157 = zext i1 %156 to i32
  %158 = trunc i32 %157 to i8
  store i8 %158, ptr %29, align 1, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #4
  %159 = load ptr, ptr %14, align 8, !tbaa !5
  %160 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %159, i32 noundef 4)
  %161 = icmp eq i32 0, %160
  br i1 %161, label %162, label %163

162:                                              ; preds = %155
  br label %256

163:                                              ; preds = %155
  %164 = load ptr, ptr %14, align 8, !tbaa !5
  %165 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %164, i32 noundef 4)
  %166 = icmp eq i32 1, %165
  br i1 %166, label %167, label %168

167:                                              ; preds = %163
  br label %254

168:                                              ; preds = %163
  %169 = load ptr, ptr %14, align 8, !tbaa !5
  %170 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %169, i32 noundef 4)
  %171 = icmp eq i32 2, %170
  br i1 %171, label %172, label %173

172:                                              ; preds = %168
  br label %252

173:                                              ; preds = %168
  %174 = load ptr, ptr %14, align 8, !tbaa !5
  %175 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %174, i32 noundef 4)
  %176 = icmp eq i32 3, %175
  br i1 %176, label %177, label %178

177:                                              ; preds = %173
  br label %250

178:                                              ; preds = %173
  %179 = load ptr, ptr %14, align 8, !tbaa !5
  %180 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %179, i32 noundef 4)
  %181 = icmp eq i32 4, %180
  br i1 %181, label %182, label %183

182:                                              ; preds = %178
  br label %248

183:                                              ; preds = %178
  %184 = load ptr, ptr %14, align 8, !tbaa !5
  %185 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %184, i32 noundef 4)
  %186 = icmp eq i32 5, %185
  br i1 %186, label %187, label %188

187:                                              ; preds = %183
  br label %246

188:                                              ; preds = %183
  %189 = load ptr, ptr %14, align 8, !tbaa !5
  %190 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %189, i32 noundef 4)
  %191 = icmp eq i32 6, %190
  br i1 %191, label %192, label %193

192:                                              ; preds = %188
  br label %244

193:                                              ; preds = %188
  %194 = load ptr, ptr %14, align 8, !tbaa !5
  %195 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %194, i32 noundef 4)
  %196 = icmp eq i32 7, %195
  br i1 %196, label %197, label %198

197:                                              ; preds = %193
  br label %242

198:                                              ; preds = %193
  %199 = load ptr, ptr %14, align 8, !tbaa !5
  %200 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %199, i32 noundef 4)
  %201 = icmp eq i32 8, %200
  br i1 %201, label %202, label %203

202:                                              ; preds = %198
  br label %240

203:                                              ; preds = %198
  %204 = load ptr, ptr %14, align 8, !tbaa !5
  %205 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %204, i32 noundef 4)
  %206 = icmp eq i32 9, %205
  br i1 %206, label %207, label %208

207:                                              ; preds = %203
  br label %238

208:                                              ; preds = %203
  %209 = load ptr, ptr %14, align 8, !tbaa !5
  %210 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %209, i32 noundef 4)
  %211 = icmp eq i32 10, %210
  br i1 %211, label %212, label %213

212:                                              ; preds = %208
  br label %236

213:                                              ; preds = %208
  %214 = load ptr, ptr %14, align 8, !tbaa !5
  %215 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %214, i32 noundef 4)
  %216 = icmp eq i32 11, %215
  br i1 %216, label %217, label %218

217:                                              ; preds = %213
  br label %234

218:                                              ; preds = %213
  %219 = load ptr, ptr %14, align 8, !tbaa !5
  %220 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %219, i32 noundef 4)
  %221 = icmp eq i32 12, %220
  br i1 %221, label %222, label %223

222:                                              ; preds = %218
  br label %232

223:                                              ; preds = %218
  %224 = load ptr, ptr %14, align 8, !tbaa !5
  %225 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %224, i32 noundef 4)
  %226 = icmp eq i32 13, %225
  br i1 %226, label %227, label %228

227:                                              ; preds = %223
  br label %230

228:                                              ; preds = %223
  call void @__assert_fail(ptr noundef @.str.3, ptr noundef @.str, i32 noundef 968, ptr noundef @__PRETTY_FUNCTION__.libxsmm_compute_unary_aarch64_2d_reg_block_op) #5
  unreachable

229:                                              ; No predecessors!
  br label %230

230:                                              ; preds = %229, %227
  %231 = phi i32 [ 1, %227 ], [ 0, %229 ]
  br label %232

232:                                              ; preds = %230, %222
  %233 = phi i32 [ 1, %222 ], [ %231, %230 ]
  br label %234

234:                                              ; preds = %232, %217
  %235 = phi i32 [ 2, %217 ], [ %233, %232 ]
  br label %236

236:                                              ; preds = %234, %212
  %237 = phi i32 [ 2, %212 ], [ %235, %234 ]
  br label %238

238:                                              ; preds = %236, %207
  %239 = phi i32 [ 4, %207 ], [ %237, %236 ]
  br label %240

240:                                              ; preds = %238, %202
  %241 = phi i32 [ 4, %202 ], [ %239, %238 ]
  br label %242

242:                                              ; preds = %240, %197
  %243 = phi i32 [ 8, %197 ], [ %241, %240 ]
  br label %244

244:                                              ; preds = %242, %192
  %245 = phi i32 [ 8, %192 ], [ %243, %242 ]
  br label %246

246:                                              ; preds = %244, %187
  %247 = phi i32 [ 1, %187 ], [ %245, %244 ]
  br label %248

248:                                              ; preds = %246, %182
  %249 = phi i32 [ 1, %182 ], [ %247, %246 ]
  br label %250

250:                                              ; preds = %248, %177
  %251 = phi i32 [ 2, %177 ], [ %249, %248 ]
  br label %252

252:                                              ; preds = %250, %172
  %253 = phi i32 [ 2, %172 ], [ %251, %250 ]
  br label %254

254:                                              ; preds = %252, %167
  %255 = phi i32 [ 4, %167 ], [ %253, %252 ]
  br label %256

256:                                              ; preds = %254, %162
  %257 = phi i32 [ 8, %162 ], [ %255, %254 ]
  %258 = trunc i32 %257 to i8
  %259 = call i32 @libxsmm_generator_aarch64_get_sve_type(i8 noundef zeroext %258)
  store i32 %259, ptr %30, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #4
  %260 = load ptr, ptr %13, align 8, !tbaa !5
  %261 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %260, i32 0, i32 2
  %262 = load i32, ptr %261, align 4, !tbaa !19
  %263 = icmp eq i32 %262, 4
  %264 = zext i1 %263 to i64
  %265 = select i1 %263, i32 5, i32 7
  store i32 %265, ptr %31, align 4, !tbaa !9
  %266 = load ptr, ptr %12, align 8, !tbaa !5
  %267 = load i32, ptr %15, align 4, !tbaa !9
  %268 = load i32, ptr %19, align 4, !tbaa !9
  %269 = load i8, ptr %29, align 1, !tbaa !17
  %270 = zext i8 %269 to i32
  %271 = icmp ne i32 %270, 0
  br i1 %271, label %272, label %280

272:                                              ; preds = %256
  %273 = load i8, ptr %27, align 1, !tbaa !17
  %274 = zext i8 %273 to i32
  %275 = icmp ne i32 %274, 0
  br i1 %275, label %276, label %280

276:                                              ; preds = %272
  %277 = load ptr, ptr %11, align 8, !tbaa !5
  %278 = load i8, ptr %28, align 1, !tbaa !17
  %279 = zext i8 %278 to i32
  call void @libxsmm_generator_set_p_register_aarch64_sve(ptr noundef %277, i32 noundef %279, i32 noundef -1, i32 noundef 0)
  br label %280

280:                                              ; preds = %276, %272, %256
  store i32 0, ptr %22, align 4, !tbaa !9
  br label %281

281:                                              ; preds = %1880, %280
  %282 = load i32, ptr %22, align 4, !tbaa !9
  %283 = load i32, ptr %18, align 4, !tbaa !9
  %284 = icmp ult i32 %282, %283
  br i1 %284, label %285, label %1883

285:                                              ; preds = %281
  %286 = load i32, ptr %25, align 4, !tbaa !9
  %287 = icmp eq i32 %286, 1
  br i1 %287, label %288, label %292

288:                                              ; preds = %285
  %289 = load i32, ptr %22, align 4, !tbaa !9
  %290 = icmp ugt i32 %289, 0
  br i1 %290, label %291, label %292

291:                                              ; preds = %288
  br label %1880

292:                                              ; preds = %288, %285
  store i32 0, ptr %21, align 4, !tbaa !9
  br label %293

293:                                              ; preds = %1876, %292
  %294 = load i32, ptr %21, align 4, !tbaa !9
  %295 = load i32, ptr %17, align 4, !tbaa !9
  %296 = icmp ult i32 %294, %295
  br i1 %296, label %297, label %1879

297:                                              ; preds = %293
  %298 = load i32, ptr %24, align 4, !tbaa !9
  %299 = icmp eq i32 %298, 1
  br i1 %299, label %300, label %304

300:                                              ; preds = %297
  %301 = load i32, ptr %21, align 4, !tbaa !9
  %302 = icmp ugt i32 %301, 0
  br i1 %302, label %303, label %304

303:                                              ; preds = %300
  br label %1876

304:                                              ; preds = %300, %297
  %305 = load i32, ptr %26, align 4, !tbaa !9
  %306 = icmp eq i32 %305, 1
  br i1 %306, label %307, label %314

307:                                              ; preds = %304
  %308 = load i32, ptr %21, align 4, !tbaa !9
  %309 = icmp ugt i32 %308, 0
  br i1 %309, label %313, label %310

310:                                              ; preds = %307
  %311 = load i32, ptr %22, align 4, !tbaa !9
  %312 = icmp ugt i32 %311, 0
  br i1 %312, label %313, label %314

313:                                              ; preds = %310, %307
  br label %1876

314:                                              ; preds = %310, %304
  %315 = load i32, ptr %16, align 4, !tbaa !9
  %316 = load i32, ptr %22, align 4, !tbaa !9
  %317 = load i32, ptr %17, align 4, !tbaa !9
  %318 = mul i32 %316, %317
  %319 = add i32 %315, %318
  %320 = load i32, ptr %21, align 4, !tbaa !9
  %321 = add i32 %319, %320
  store i32 %321, ptr %23, align 4, !tbaa !9
  %322 = load ptr, ptr %14, align 8, !tbaa !5
  %323 = getelementptr inbounds %struct.libxsmm_meltw_descriptor, ptr %322, i32 0, i32 10
  %324 = load i16, ptr %323, align 1, !tbaa !18
  %325 = zext i16 %324 to i32
  %326 = icmp eq i32 %325, 3
  br i1 %326, label %327, label %345

327:                                              ; preds = %314
  %328 = load i8, ptr %27, align 1, !tbaa !17
  %329 = icmp ne i8 %328, 0
  br i1 %329, label %330, label %338

330:                                              ; preds = %327
  %331 = load ptr, ptr %11, align 8, !tbaa !5
  %332 = load i32, ptr %23, align 4, !tbaa !9
  %333 = load i32, ptr %23, align 4, !tbaa !9
  %334 = load i32, ptr %23, align 4, !tbaa !9
  %335 = load i8, ptr %28, align 1, !tbaa !17
  %336 = zext i8 %335 to i32
  %337 = load i32, ptr %30, align 4, !tbaa !9
  call void @libxsmm_aarch64_instruction_sve_compute(ptr noundef %331, i32 noundef 1694500867, i32 noundef %332, i32 noundef %333, i8 noundef zeroext 0, i32 noundef %334, i32 noundef %336, i32 noundef %337)
  br label %344

338:                                              ; preds = %327
  %339 = load ptr, ptr %11, align 8, !tbaa !5
  %340 = load i32, ptr %23, align 4, !tbaa !9
  %341 = load i32, ptr %23, align 4, !tbaa !9
  %342 = load i32, ptr %23, align 4, !tbaa !9
  %343 = load i32, ptr %31, align 4, !tbaa !9
  call void @libxsmm_aarch64_instruction_asimd_compute(ptr noundef %339, i32 noundef 773905419, i32 noundef %340, i32 noundef %341, i8 noundef zeroext 0, i32 noundef %342, i32 noundef %343)
  br label %344

344:                                              ; preds = %338, %330
  br label %1875

345:                                              ; preds = %314
  %346 = load ptr, ptr %14, align 8, !tbaa !5
  %347 = getelementptr inbounds %struct.libxsmm_meltw_descriptor, ptr %346, i32 0, i32 10
  %348 = load i16, ptr %347, align 1, !tbaa !18
  %349 = zext i16 %348 to i32
  %350 = icmp eq i32 %349, 13
  br i1 %350, label %351, label %368

351:                                              ; preds = %345
  %352 = load i8, ptr %27, align 1, !tbaa !17
  %353 = icmp ne i8 %352, 0
  br i1 %353, label %354, label %362

354:                                              ; preds = %351
  %355 = load ptr, ptr %11, align 8, !tbaa !5
  %356 = load i32, ptr %23, align 4, !tbaa !9
  %357 = load i32, ptr %23, align 4, !tbaa !9
  %358 = load i32, ptr %23, align 4, !tbaa !9
  %359 = load i8, ptr %28, align 1, !tbaa !17
  %360 = zext i8 %359 to i32
  %361 = load i32, ptr %30, align 4, !tbaa !9
  call void @libxsmm_aarch64_instruction_sve_compute(ptr noundef %355, i32 noundef 69050498, i32 noundef %356, i32 noundef %357, i8 noundef zeroext 0, i32 noundef %358, i32 noundef %360, i32 noundef %361)
  br label %367

362:                                              ; preds = %351
  %363 = load ptr, ptr %11, align 8, !tbaa !5
  %364 = load i32, ptr %23, align 4, !tbaa !9
  %365 = load i32, ptr %23, align 4, !tbaa !9
  %366 = load i32, ptr %31, align 4, !tbaa !9
  call void @libxsmm_aarch64_instruction_asimd_compute(ptr noundef %363, i32 noundef 782301194, i32 noundef %364, i32 noundef 127, i8 noundef zeroext 0, i32 noundef %365, i32 noundef %366)
  br label %367

367:                                              ; preds = %362, %354
  br label %1874

368:                                              ; preds = %345
  %369 = load ptr, ptr %14, align 8, !tbaa !5
  %370 = getelementptr inbounds %struct.libxsmm_meltw_descriptor, ptr %369, i32 0, i32 10
  %371 = load i16, ptr %370, align 1, !tbaa !18
  %372 = zext i16 %371 to i32
  %373 = icmp eq i32 %372, 14
  br i1 %373, label %374, label %396

374:                                              ; preds = %368
  %375 = load i8, ptr %27, align 1, !tbaa !17
  %376 = icmp ne i8 %375, 0
  br i1 %376, label %377, label %387

377:                                              ; preds = %374
  %378 = load ptr, ptr %11, align 8, !tbaa !5
  %379 = load i32, ptr %23, align 4, !tbaa !9
  %380 = load ptr, ptr %13, align 8, !tbaa !5
  %381 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %380, i32 0, i32 54
  %382 = load i32, ptr %381, align 4, !tbaa !21
  %383 = load i32, ptr %23, align 4, !tbaa !9
  %384 = load i8, ptr %28, align 1, !tbaa !17
  %385 = zext i8 %384 to i32
  %386 = load i32, ptr %30, align 4, !tbaa !9
  call void @libxsmm_aarch64_instruction_sve_compute(ptr noundef %378, i32 noundef 1694498819, i32 noundef %379, i32 noundef %382, i8 noundef zeroext 0, i32 noundef %383, i32 noundef %385, i32 noundef %386)
  br label %395

387:                                              ; preds = %374
  %388 = load ptr, ptr %11, align 8, !tbaa !5
  %389 = load i32, ptr %23, align 4, !tbaa !9
  %390 = load ptr, ptr %13, align 8, !tbaa !5
  %391 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %390, i32 0, i32 54
  %392 = load i32, ptr %391, align 4, !tbaa !21
  %393 = load i32, ptr %23, align 4, !tbaa !9
  %394 = load i32, ptr %31, align 4, !tbaa !9
  call void @libxsmm_aarch64_instruction_asimd_compute(ptr noundef %388, i32 noundef 237032459, i32 noundef %389, i32 noundef %392, i8 noundef zeroext 0, i32 noundef %393, i32 noundef %394)
  br label %395

395:                                              ; preds = %387, %377
  br label %1873

396:                                              ; preds = %368
  %397 = load ptr, ptr %14, align 8, !tbaa !5
  %398 = getelementptr inbounds %struct.libxsmm_meltw_descriptor, ptr %397, i32 0, i32 10
  %399 = load i16, ptr %398, align 1, !tbaa !18
  %400 = zext i16 %399 to i32
  %401 = icmp eq i32 %400, 15
  br i1 %401, label %402, label %507

402:                                              ; preds = %396
  %403 = load i8, ptr %27, align 1, !tbaa !17
  %404 = icmp ne i8 %403, 0
  br i1 %404, label %405, label %485

405:                                              ; preds = %402
  %406 = call i32 @libxsmm_get_ulp_precision()
  %407 = icmp ne i32 %406, 2
  br i1 %407, label %408, label %476

408:                                              ; preds = %405
  call void @llvm.lifetime.start.p0(i64 1, ptr %32) #4
  %409 = load ptr, ptr %13, align 8, !tbaa !5
  %410 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %409, i32 0, i32 29
  %411 = load i32, ptr %410, align 4, !tbaa !22
  %412 = trunc i32 %411 to i8
  %413 = zext i8 %412 to i32
  %414 = icmp eq i32 0, %413
  br i1 %414, label %422, label %415

415:                                              ; preds = %408
  %416 = load ptr, ptr %13, align 8, !tbaa !5
  %417 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %416, i32 0, i32 29
  %418 = load i32, ptr %417, align 4, !tbaa !22
  %419 = trunc i32 %418 to i8
  %420 = zext i8 %419 to i32
  %421 = icmp slt i32 0, %420
  br i1 %421, label %422, label %446

422:                                              ; preds = %415, %408
  %423 = load ptr, ptr %13, align 8, !tbaa !5
  %424 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %423, i32 0, i32 29
  %425 = load i32, ptr %424, align 4, !tbaa !22
  %426 = zext i32 %425 to i64
  %427 = mul i64 1, %426
  %428 = icmp ult i64 %427, 255
  br i1 %428, label %429, label %435

429:                                              ; preds = %422
  %430 = load ptr, ptr %13, align 8, !tbaa !5
  %431 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %430, i32 0, i32 29
  %432 = load i32, ptr %431, align 4, !tbaa !22
  %433 = zext i32 %432 to i64
  %434 = mul i64 1, %433
  br label %436

435:                                              ; preds = %422
  br label %436

436:                                              ; preds = %435, %429
  %437 = phi i64 [ %434, %429 ], [ 255, %435 ]
  %438 = icmp ule i64 %437, 255
  br i1 %438, label %439, label %446

439:                                              ; preds = %436
  %440 = load ptr, ptr %13, align 8, !tbaa !5
  %441 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %440, i32 0, i32 29
  %442 = load i32, ptr %441, align 4, !tbaa !22
  %443 = uitofp i32 %442 to double
  %444 = fcmp ole double 0.000000e+00, %443
  br i1 %444, label %445, label %446

445:                                              ; preds = %439
  br label %447

446:                                              ; preds = %439, %436, %415
  call void @__assert_fail(ptr noundef @.str.8, ptr noundef @.str, i32 noundef 1026, ptr noundef @__PRETTY_FUNCTION__.libxsmm_compute_unary_aarch64_2d_reg_block_op) #5
  unreachable

447:                                              ; preds = %445
  %448 = load ptr, ptr %13, align 8, !tbaa !5
  %449 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %448, i32 0, i32 29
  %450 = load i32, ptr %449, align 4, !tbaa !22
  %451 = trunc i32 %450 to i8
  store i8 %451, ptr %32, align 1, !tbaa !17
  %452 = load ptr, ptr %11, align 8, !tbaa !5
  %453 = load i32, ptr %23, align 4, !tbaa !9
  %454 = load i32, ptr %23, align 4, !tbaa !9
  %455 = load i8, ptr %32, align 1, !tbaa !17
  %456 = zext i8 %455 to i32
  %457 = load i8, ptr %28, align 1, !tbaa !17
  %458 = zext i8 %457 to i32
  %459 = load i32, ptr %30, align 4, !tbaa !9
  call void @libxsmm_aarch64_instruction_sve_compute(ptr noundef %452, i32 noundef 1695428610, i32 noundef %453, i32 noundef %454, i8 noundef zeroext 0, i32 noundef %456, i32 noundef %458, i32 noundef %459)
  %460 = load ptr, ptr %11, align 8, !tbaa !5
  %461 = load i32, ptr %23, align 4, !tbaa !9
  %462 = load i8, ptr %32, align 1, !tbaa !17
  %463 = zext i8 %462 to i32
  %464 = load i32, ptr %23, align 4, !tbaa !9
  %465 = load i8, ptr %28, align 1, !tbaa !17
  %466 = zext i8 %465 to i32
  %467 = load i32, ptr %30, align 4, !tbaa !9
  call void @libxsmm_aarch64_instruction_sve_compute(ptr noundef %460, i32 noundef 1694504963, i32 noundef %461, i32 noundef %463, i8 noundef zeroext 0, i32 noundef %464, i32 noundef %466, i32 noundef %467)
  %468 = load ptr, ptr %11, align 8, !tbaa !5
  %469 = load i32, ptr %23, align 4, !tbaa !9
  %470 = load i8, ptr %32, align 1, !tbaa !17
  %471 = zext i8 %470 to i32
  %472 = load i32, ptr %23, align 4, !tbaa !9
  %473 = load i8, ptr %28, align 1, !tbaa !17
  %474 = zext i8 %473 to i32
  %475 = load i32, ptr %30, align 4, !tbaa !9
  call void @libxsmm_aarch64_instruction_sve_compute(ptr noundef %468, i32 noundef 1694500867, i32 noundef %469, i32 noundef %471, i8 noundef zeroext 0, i32 noundef %472, i32 noundef %474, i32 noundef %475)
  call void @llvm.lifetime.end.p0(i64 1, ptr %32) #4
  br label %484

476:                                              ; preds = %405
  %477 = load ptr, ptr %11, align 8, !tbaa !5
  %478 = load i32, ptr %23, align 4, !tbaa !9
  %479 = load i32, ptr %23, align 4, !tbaa !9
  %480 = load i32, ptr %23, align 4, !tbaa !9
  %481 = load i8, ptr %28, align 1, !tbaa !17
  %482 = zext i8 %481 to i32
  %483 = load i32, ptr %30, align 4, !tbaa !9
  call void @libxsmm_aarch64_instruction_sve_compute(ptr noundef %477, i32 noundef 1695428610, i32 noundef %478, i32 noundef %479, i8 noundef zeroext 0, i32 noundef %480, i32 noundef %482, i32 noundef %483)
  br label %484

484:                                              ; preds = %476, %447
  br label %506

485:                                              ; preds = %402
  %486 = load ptr, ptr %11, align 8, !tbaa !5
  %487 = load i32, ptr %23, align 4, !tbaa !9
  %488 = load ptr, ptr %13, align 8, !tbaa !5
  %489 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %488, i32 0, i32 86
  %490 = load i32, ptr %489, align 4, !tbaa !23
  %491 = load i32, ptr %31, align 4, !tbaa !9
  call void @libxsmm_aarch64_instruction_asimd_compute(ptr noundef %486, i32 noundef 245487626, i32 noundef %487, i32 noundef 127, i8 noundef zeroext 0, i32 noundef %490, i32 noundef %491)
  %492 = load ptr, ptr %11, align 8, !tbaa !5
  %493 = load i32, ptr %23, align 4, !tbaa !9
  %494 = load ptr, ptr %13, align 8, !tbaa !5
  %495 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %494, i32 0, i32 86
  %496 = load i32, ptr %495, align 4, !tbaa !23
  %497 = load i32, ptr %23, align 4, !tbaa !9
  %498 = load i32, ptr %31, align 4, !tbaa !9
  call void @libxsmm_aarch64_instruction_asimd_compute(ptr noundef %492, i32 noundef 237042699, i32 noundef %493, i32 noundef %496, i8 noundef zeroext 0, i32 noundef %497, i32 noundef %498)
  %499 = load ptr, ptr %11, align 8, !tbaa !5
  %500 = load i32, ptr %23, align 4, !tbaa !9
  %501 = load ptr, ptr %13, align 8, !tbaa !5
  %502 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %501, i32 0, i32 86
  %503 = load i32, ptr %502, align 4, !tbaa !23
  %504 = load i32, ptr %23, align 4, !tbaa !9
  %505 = load i32, ptr %31, align 4, !tbaa !9
  call void @libxsmm_aarch64_instruction_asimd_compute(ptr noundef %499, i32 noundef 773905419, i32 noundef %500, i32 noundef %503, i8 noundef zeroext 0, i32 noundef %504, i32 noundef %505)
  br label %506

506:                                              ; preds = %485, %484
  br label %1872

507:                                              ; preds = %396
  %508 = load ptr, ptr %14, align 8, !tbaa !5
  %509 = getelementptr inbounds %struct.libxsmm_meltw_descriptor, ptr %508, i32 0, i32 10
  %510 = load i16, ptr %509, align 1, !tbaa !18
  %511 = zext i16 %510 to i32
  %512 = icmp eq i32 %511, 16
  br i1 %512, label %513, label %782

513:                                              ; preds = %507
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #4
  %514 = load i32, ptr %30, align 4, !tbaa !9
  %515 = shl i32 1, %514
  %516 = sub nsw i32 %515, 1
  store i32 %516, ptr %33, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %34) #4
  %517 = load i32, ptr %33, align 4, !tbaa !9
  %518 = trunc i32 %517 to i8
  store i8 %518, ptr %34, align 1, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 1, ptr %35) #4
  %519 = call i32 @libxsmm_get_ulp_precision()
  %520 = icmp eq i32 %519, 2
  br i1 %520, label %521, label %522

521:                                              ; preds = %513
  br label %525

522:                                              ; preds = %513
  %523 = load i8, ptr %34, align 1, !tbaa !17
  %524 = zext i8 %523 to i32
  br label %525

525:                                              ; preds = %522, %521
  %526 = phi i32 [ 0, %521 ], [ %524, %522 ]
  %527 = trunc i32 %526 to i8
  store i8 %527, ptr %35, align 1, !tbaa !17
  %528 = load i8, ptr %27, align 1, !tbaa !17
  %529 = icmp ne i8 %528, 0
  br i1 %529, label %530, label %776

530:                                              ; preds = %525
  call void @llvm.lifetime.start.p0(i64 1, ptr %36) #4
  %531 = load ptr, ptr %13, align 8, !tbaa !5
  %532 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %531, i32 0, i32 29
  %533 = load i32, ptr %532, align 4, !tbaa !22
  %534 = trunc i32 %533 to i8
  %535 = zext i8 %534 to i32
  %536 = icmp eq i32 0, %535
  br i1 %536, label %544, label %537

537:                                              ; preds = %530
  %538 = load ptr, ptr %13, align 8, !tbaa !5
  %539 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %538, i32 0, i32 29
  %540 = load i32, ptr %539, align 4, !tbaa !22
  %541 = trunc i32 %540 to i8
  %542 = zext i8 %541 to i32
  %543 = icmp slt i32 0, %542
  br i1 %543, label %544, label %568

544:                                              ; preds = %537, %530
  %545 = load ptr, ptr %13, align 8, !tbaa !5
  %546 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %545, i32 0, i32 29
  %547 = load i32, ptr %546, align 4, !tbaa !22
  %548 = zext i32 %547 to i64
  %549 = mul i64 1, %548
  %550 = icmp ult i64 %549, 255
  br i1 %550, label %551, label %557

551:                                              ; preds = %544
  %552 = load ptr, ptr %13, align 8, !tbaa !5
  %553 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %552, i32 0, i32 29
  %554 = load i32, ptr %553, align 4, !tbaa !22
  %555 = zext i32 %554 to i64
  %556 = mul i64 1, %555
  br label %558

557:                                              ; preds = %544
  br label %558

558:                                              ; preds = %557, %551
  %559 = phi i64 [ %556, %551 ], [ 255, %557 ]
  %560 = icmp ule i64 %559, 255
  br i1 %560, label %561, label %568

561:                                              ; preds = %558
  %562 = load ptr, ptr %13, align 8, !tbaa !5
  %563 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %562, i32 0, i32 29
  %564 = load i32, ptr %563, align 4, !tbaa !22
  %565 = uitofp i32 %564 to double
  %566 = fcmp ole double 0.000000e+00, %565
  br i1 %566, label %567, label %568

567:                                              ; preds = %561
  br label %569

568:                                              ; preds = %561, %558, %537
  call void @__assert_fail(ptr noundef @.str.8, ptr noundef @.str, i32 noundef 1061, ptr noundef @__PRETTY_FUNCTION__.libxsmm_compute_unary_aarch64_2d_reg_block_op) #5
  unreachable

569:                                              ; preds = %567
  %570 = load ptr, ptr %13, align 8, !tbaa !5
  %571 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %570, i32 0, i32 29
  %572 = load i32, ptr %571, align 4, !tbaa !22
  %573 = trunc i32 %572 to i8
  store i8 %573, ptr %36, align 1, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 1, ptr %37) #4
  %574 = load ptr, ptr %13, align 8, !tbaa !5
  %575 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %574, i32 0, i32 30
  %576 = load i32, ptr %575, align 4, !tbaa !24
  %577 = trunc i32 %576 to i8
  %578 = zext i8 %577 to i32
  %579 = icmp eq i32 0, %578
  br i1 %579, label %587, label %580

580:                                              ; preds = %569
  %581 = load ptr, ptr %13, align 8, !tbaa !5
  %582 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %581, i32 0, i32 30
  %583 = load i32, ptr %582, align 4, !tbaa !24
  %584 = trunc i32 %583 to i8
  %585 = zext i8 %584 to i32
  %586 = icmp slt i32 0, %585
  br i1 %586, label %587, label %611

587:                                              ; preds = %580, %569
  %588 = load ptr, ptr %13, align 8, !tbaa !5
  %589 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %588, i32 0, i32 30
  %590 = load i32, ptr %589, align 4, !tbaa !24
  %591 = zext i32 %590 to i64
  %592 = mul i64 1, %591
  %593 = icmp ult i64 %592, 255
  br i1 %593, label %594, label %600

594:                                              ; preds = %587
  %595 = load ptr, ptr %13, align 8, !tbaa !5
  %596 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %595, i32 0, i32 30
  %597 = load i32, ptr %596, align 4, !tbaa !24
  %598 = zext i32 %597 to i64
  %599 = mul i64 1, %598
  br label %601

600:                                              ; preds = %587
  br label %601

601:                                              ; preds = %600, %594
  %602 = phi i64 [ %599, %594 ], [ 255, %600 ]
  %603 = icmp ule i64 %602, 255
  br i1 %603, label %604, label %611

604:                                              ; preds = %601
  %605 = load ptr, ptr %13, align 8, !tbaa !5
  %606 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %605, i32 0, i32 30
  %607 = load i32, ptr %606, align 4, !tbaa !24
  %608 = uitofp i32 %607 to double
  %609 = fcmp ole double 0.000000e+00, %608
  br i1 %609, label %610, label %611

610:                                              ; preds = %604
  br label %612

611:                                              ; preds = %604, %601, %580
  call void @__assert_fail(ptr noundef @.str.9, ptr noundef @.str, i32 noundef 1062, ptr noundef @__PRETTY_FUNCTION__.libxsmm_compute_unary_aarch64_2d_reg_block_op) #5
  unreachable

612:                                              ; preds = %610
  %613 = load ptr, ptr %13, align 8, !tbaa !5
  %614 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %613, i32 0, i32 30
  %615 = load i32, ptr %614, align 4, !tbaa !24
  %616 = trunc i32 %615 to i8
  store i8 %616, ptr %37, align 1, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 1, ptr %38) #4
  %617 = load ptr, ptr %11, align 8, !tbaa !5
  %618 = load i32, ptr %23, align 4, !tbaa !9
  %619 = load i32, ptr %23, align 4, !tbaa !9
  %620 = load i8, ptr %35, align 1, !tbaa !17
  %621 = zext i8 %620 to i32
  %622 = icmp sgt i32 %621, 0
  br i1 %622, label %623, label %626

623:                                              ; preds = %612
  %624 = load i8, ptr %36, align 1, !tbaa !17
  %625 = zext i8 %624 to i32
  br label %628

626:                                              ; preds = %612
  %627 = load i32, ptr %23, align 4, !tbaa !9
  br label %628

628:                                              ; preds = %626, %623
  %629 = phi i32 [ %625, %623 ], [ %627, %626 ]
  %630 = load i8, ptr %28, align 1, !tbaa !17
  %631 = zext i8 %630 to i32
  %632 = load i32, ptr %30, align 4, !tbaa !9
  call void @libxsmm_aarch64_instruction_sve_compute(ptr noundef %617, i32 noundef 1695494146, i32 noundef %618, i32 noundef %619, i8 noundef zeroext 0, i32 noundef %629, i32 noundef %631, i32 noundef %632)
  store i8 0, ptr %38, align 1, !tbaa !17
  br label %633

633:                                              ; preds = %772, %628
  %634 = load i8, ptr %38, align 1, !tbaa !17
  %635 = zext i8 %634 to i32
  %636 = load i8, ptr %35, align 1, !tbaa !17
  %637 = zext i8 %636 to i32
  %638 = icmp slt i32 %635, %637
  br i1 %638, label %639, label %775

639:                                              ; preds = %633
  call void @llvm.lifetime.start.p0(i64 1, ptr %39) #4
  %640 = load i8, ptr %38, align 1, !tbaa !17
  %641 = zext i8 %640 to i32
  %642 = load i8, ptr %35, align 1, !tbaa !17
  %643 = zext i8 %642 to i32
  %644 = sub nsw i32 %643, 1
  %645 = icmp eq i32 %641, %644
  br i1 %645, label %646, label %648

646:                                              ; preds = %639
  %647 = load i32, ptr %23, align 4, !tbaa !9
  br label %651

648:                                              ; preds = %639
  %649 = load i8, ptr %36, align 1, !tbaa !17
  %650 = zext i8 %649 to i32
  br label %651

651:                                              ; preds = %648, %646
  %652 = phi i32 [ %647, %646 ], [ %650, %648 ]
  %653 = trunc i32 %652 to i8
  %654 = zext i8 %653 to i32
  %655 = icmp eq i32 0, %654
  br i1 %655, label %673, label %656

656:                                              ; preds = %651
  %657 = load i8, ptr %38, align 1, !tbaa !17
  %658 = zext i8 %657 to i32
  %659 = load i8, ptr %35, align 1, !tbaa !17
  %660 = zext i8 %659 to i32
  %661 = sub nsw i32 %660, 1
  %662 = icmp eq i32 %658, %661
  br i1 %662, label %663, label %665

663:                                              ; preds = %656
  %664 = load i32, ptr %23, align 4, !tbaa !9
  br label %668

665:                                              ; preds = %656
  %666 = load i8, ptr %36, align 1, !tbaa !17
  %667 = zext i8 %666 to i32
  br label %668

668:                                              ; preds = %665, %663
  %669 = phi i32 [ %664, %663 ], [ %667, %665 ]
  %670 = trunc i32 %669 to i8
  %671 = zext i8 %670 to i32
  %672 = icmp slt i32 0, %671
  br i1 %672, label %673, label %727

673:                                              ; preds = %668, %651
  %674 = load i8, ptr %38, align 1, !tbaa !17
  %675 = zext i8 %674 to i32
  %676 = load i8, ptr %35, align 1, !tbaa !17
  %677 = zext i8 %676 to i32
  %678 = sub nsw i32 %677, 1
  %679 = icmp eq i32 %675, %678
  br i1 %679, label %680, label %682

680:                                              ; preds = %673
  %681 = load i32, ptr %23, align 4, !tbaa !9
  br label %685

682:                                              ; preds = %673
  %683 = load i8, ptr %36, align 1, !tbaa !17
  %684 = zext i8 %683 to i32
  br label %685

685:                                              ; preds = %682, %680
  %686 = phi i32 [ %681, %680 ], [ %684, %682 ]
  %687 = zext i32 %686 to i64
  %688 = mul i64 1, %687
  %689 = icmp ult i64 %688, 255
  br i1 %689, label %690, label %706

690:                                              ; preds = %685
  %691 = load i8, ptr %38, align 1, !tbaa !17
  %692 = zext i8 %691 to i32
  %693 = load i8, ptr %35, align 1, !tbaa !17
  %694 = zext i8 %693 to i32
  %695 = sub nsw i32 %694, 1
  %696 = icmp eq i32 %692, %695
  br i1 %696, label %697, label %699

697:                                              ; preds = %690
  %698 = load i32, ptr %23, align 4, !tbaa !9
  br label %702

699:                                              ; preds = %690
  %700 = load i8, ptr %36, align 1, !tbaa !17
  %701 = zext i8 %700 to i32
  br label %702

702:                                              ; preds = %699, %697
  %703 = phi i32 [ %698, %697 ], [ %701, %699 ]
  %704 = zext i32 %703 to i64
  %705 = mul i64 1, %704
  br label %707

706:                                              ; preds = %685
  br label %707

707:                                              ; preds = %706, %702
  %708 = phi i64 [ %705, %702 ], [ 255, %706 ]
  %709 = icmp ule i64 %708, 255
  br i1 %709, label %710, label %727

710:                                              ; preds = %707
  %711 = load i8, ptr %38, align 1, !tbaa !17
  %712 = zext i8 %711 to i32
  %713 = load i8, ptr %35, align 1, !tbaa !17
  %714 = zext i8 %713 to i32
  %715 = sub nsw i32 %714, 1
  %716 = icmp eq i32 %712, %715
  br i1 %716, label %717, label %719

717:                                              ; preds = %710
  %718 = load i32, ptr %23, align 4, !tbaa !9
  br label %722

719:                                              ; preds = %710
  %720 = load i8, ptr %36, align 1, !tbaa !17
  %721 = zext i8 %720 to i32
  br label %722

722:                                              ; preds = %719, %717
  %723 = phi i32 [ %718, %717 ], [ %721, %719 ]
  %724 = uitofp i32 %723 to double
  %725 = fcmp ole double 0.000000e+00, %724
  br i1 %725, label %726, label %727

726:                                              ; preds = %722
  br label %728

727:                                              ; preds = %722, %707, %668
  call void @__assert_fail(ptr noundef @.str.10, ptr noundef @.str, i32 noundef 1069, ptr noundef @__PRETTY_FUNCTION__.libxsmm_compute_unary_aarch64_2d_reg_block_op) #5
  unreachable

728:                                              ; preds = %726
  %729 = load i8, ptr %38, align 1, !tbaa !17
  %730 = zext i8 %729 to i32
  %731 = load i8, ptr %35, align 1, !tbaa !17
  %732 = zext i8 %731 to i32
  %733 = sub nsw i32 %732, 1
  %734 = icmp eq i32 %730, %733
  br i1 %734, label %735, label %737

735:                                              ; preds = %728
  %736 = load i32, ptr %23, align 4, !tbaa !9
  br label %740

737:                                              ; preds = %728
  %738 = load i8, ptr %36, align 1, !tbaa !17
  %739 = zext i8 %738 to i32
  br label %740

740:                                              ; preds = %737, %735
  %741 = phi i32 [ %736, %735 ], [ %739, %737 ]
  %742 = trunc i32 %741 to i8
  store i8 %742, ptr %39, align 1, !tbaa !17
  %743 = load ptr, ptr %11, align 8, !tbaa !5
  %744 = load i8, ptr %36, align 1, !tbaa !17
  %745 = zext i8 %744 to i32
  %746 = load i8, ptr %36, align 1, !tbaa !17
  %747 = zext i8 %746 to i32
  %748 = load i8, ptr %37, align 1, !tbaa !17
  %749 = zext i8 %748 to i32
  %750 = load i8, ptr %28, align 1, !tbaa !17
  %751 = zext i8 %750 to i32
  %752 = load i32, ptr %30, align 4, !tbaa !9
  call void @libxsmm_aarch64_instruction_sve_compute(ptr noundef %743, i32 noundef 1694500867, i32 noundef %745, i32 noundef %747, i8 noundef zeroext 0, i32 noundef %749, i32 noundef %751, i32 noundef %752)
  %753 = load ptr, ptr %11, align 8, !tbaa !5
  %754 = load i32, ptr %23, align 4, !tbaa !9
  %755 = load i8, ptr %37, align 1, !tbaa !17
  %756 = zext i8 %755 to i32
  %757 = load i8, ptr %37, align 1, !tbaa !17
  %758 = zext i8 %757 to i32
  %759 = load i8, ptr %28, align 1, !tbaa !17
  %760 = zext i8 %759 to i32
  %761 = load i32, ptr %30, align 4, !tbaa !9
  call void @libxsmm_aarch64_instruction_sve_compute(ptr noundef %753, i32 noundef 1694505987, i32 noundef %754, i32 noundef %756, i8 noundef zeroext 0, i32 noundef %758, i32 noundef %760, i32 noundef %761)
  %762 = load ptr, ptr %11, align 8, !tbaa !5
  %763 = load i8, ptr %36, align 1, !tbaa !17
  %764 = zext i8 %763 to i32
  %765 = load i8, ptr %37, align 1, !tbaa !17
  %766 = zext i8 %765 to i32
  %767 = load i8, ptr %39, align 1, !tbaa !17
  %768 = zext i8 %767 to i32
  %769 = load i8, ptr %28, align 1, !tbaa !17
  %770 = zext i8 %769 to i32
  %771 = load i32, ptr %30, align 4, !tbaa !9
  call void @libxsmm_aarch64_instruction_sve_compute(ptr noundef %762, i32 noundef 1694500867, i32 noundef %764, i32 noundef %766, i8 noundef zeroext 0, i32 noundef %768, i32 noundef %770, i32 noundef %771)
  call void @llvm.lifetime.end.p0(i64 1, ptr %39) #4
  br label %772

772:                                              ; preds = %740
  %773 = load i8, ptr %38, align 1, !tbaa !17
  %774 = add i8 %773, 1
  store i8 %774, ptr %38, align 1, !tbaa !17
  br label %633, !llvm.loop !25

775:                                              ; preds = %633
  call void @llvm.lifetime.end.p0(i64 1, ptr %38) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %37) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %36) #4
  br label %781

776:                                              ; preds = %525
  %777 = load ptr, ptr %11, align 8, !tbaa !5
  %778 = load i32, ptr %23, align 4, !tbaa !9
  %779 = load i32, ptr %23, align 4, !tbaa !9
  %780 = load i32, ptr %31, align 4, !tbaa !9
  call void @libxsmm_aarch64_instruction_asimd_compute(ptr noundef %777, i32 noundef 782358538, i32 noundef %778, i32 noundef 127, i8 noundef zeroext 0, i32 noundef %779, i32 noundef %780)
  br label %781

781:                                              ; preds = %776, %775
  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 4, ptr %33) #4
  br label %1871

782:                                              ; preds = %507
  %783 = load ptr, ptr %14, align 8, !tbaa !5
  %784 = getelementptr inbounds %struct.libxsmm_meltw_descriptor, ptr %783, i32 0, i32 10
  %785 = load i16, ptr %784, align 1, !tbaa !18
  %786 = zext i16 %785 to i32
  %787 = icmp eq i32 %786, 4
  br i1 %787, label %788, label %1122

788:                                              ; preds = %782
  %789 = load i8, ptr %27, align 1, !tbaa !17
  %790 = icmp ne i8 %789, 0
  br i1 %790, label %791, label %1116

791:                                              ; preds = %788
  %792 = call i32 @libxsmm_get_ulp_precision()
  %793 = icmp ne i32 %792, 2
  br i1 %793, label %794, label %802

794:                                              ; preds = %791
  %795 = load ptr, ptr %11, align 8, !tbaa !5
  %796 = load i32, ptr %23, align 4, !tbaa !9
  %797 = load i32, ptr %23, align 4, !tbaa !9
  %798 = load i32, ptr %23, align 4, !tbaa !9
  %799 = load i8, ptr %28, align 1, !tbaa !17
  %800 = zext i8 %799 to i32
  %801 = load i32, ptr %30, align 4, !tbaa !9
  call void @libxsmm_aarch64_instruction_sve_compute(ptr noundef %795, i32 noundef 1695391874, i32 noundef %796, i32 noundef %797, i8 noundef zeroext 0, i32 noundef %798, i32 noundef %800, i32 noundef %801)
  br label %1115

802:                                              ; preds = %791
  call void @llvm.lifetime.start.p0(i64 1, ptr %40) #4
  %803 = load ptr, ptr %13, align 8, !tbaa !5
  %804 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %803, i32 0, i32 29
  %805 = load i32, ptr %804, align 4, !tbaa !22
  %806 = trunc i32 %805 to i8
  %807 = zext i8 %806 to i32
  %808 = icmp eq i32 0, %807
  br i1 %808, label %816, label %809

809:                                              ; preds = %802
  %810 = load ptr, ptr %13, align 8, !tbaa !5
  %811 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %810, i32 0, i32 29
  %812 = load i32, ptr %811, align 4, !tbaa !22
  %813 = trunc i32 %812 to i8
  %814 = zext i8 %813 to i32
  %815 = icmp slt i32 0, %814
  br i1 %815, label %816, label %840

816:                                              ; preds = %809, %802
  %817 = load ptr, ptr %13, align 8, !tbaa !5
  %818 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %817, i32 0, i32 29
  %819 = load i32, ptr %818, align 4, !tbaa !22
  %820 = zext i32 %819 to i64
  %821 = mul i64 1, %820
  %822 = icmp ult i64 %821, 255
  br i1 %822, label %823, label %829

823:                                              ; preds = %816
  %824 = load ptr, ptr %13, align 8, !tbaa !5
  %825 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %824, i32 0, i32 29
  %826 = load i32, ptr %825, align 4, !tbaa !22
  %827 = zext i32 %826 to i64
  %828 = mul i64 1, %827
  br label %830

829:                                              ; preds = %816
  br label %830

830:                                              ; preds = %829, %823
  %831 = phi i64 [ %828, %823 ], [ 255, %829 ]
  %832 = icmp ule i64 %831, 255
  br i1 %832, label %833, label %840

833:                                              ; preds = %830
  %834 = load ptr, ptr %13, align 8, !tbaa !5
  %835 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %834, i32 0, i32 29
  %836 = load i32, ptr %835, align 4, !tbaa !22
  %837 = uitofp i32 %836 to double
  %838 = fcmp ole double 0.000000e+00, %837
  br i1 %838, label %839, label %840

839:                                              ; preds = %833
  br label %841

840:                                              ; preds = %833, %830, %809
  call void @__assert_fail(ptr noundef @.str.8, ptr noundef @.str, i32 noundef 1093, ptr noundef @__PRETTY_FUNCTION__.libxsmm_compute_unary_aarch64_2d_reg_block_op) #5
  unreachable

841:                                              ; preds = %839
  %842 = load ptr, ptr %13, align 8, !tbaa !5
  %843 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %842, i32 0, i32 29
  %844 = load i32, ptr %843, align 4, !tbaa !22
  %845 = trunc i32 %844 to i8
  store i8 %845, ptr %40, align 1, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 1, ptr %41) #4
  store i8 1, ptr %41, align 1, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 1, ptr %42) #4
  %846 = load ptr, ptr %13, align 8, !tbaa !5
  %847 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %846, i32 0, i32 29
  %848 = load i32, ptr %847, align 4, !tbaa !22
  %849 = trunc i32 %848 to i8
  %850 = zext i8 %849 to i32
  %851 = icmp eq i32 0, %850
  br i1 %851, label %859, label %852

852:                                              ; preds = %841
  %853 = load ptr, ptr %13, align 8, !tbaa !5
  %854 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %853, i32 0, i32 29
  %855 = load i32, ptr %854, align 4, !tbaa !22
  %856 = trunc i32 %855 to i8
  %857 = zext i8 %856 to i32
  %858 = icmp slt i32 0, %857
  br i1 %858, label %859, label %883

859:                                              ; preds = %852, %841
  %860 = load ptr, ptr %13, align 8, !tbaa !5
  %861 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %860, i32 0, i32 29
  %862 = load i32, ptr %861, align 4, !tbaa !22
  %863 = zext i32 %862 to i64
  %864 = mul i64 1, %863
  %865 = icmp ult i64 %864, 255
  br i1 %865, label %866, label %872

866:                                              ; preds = %859
  %867 = load ptr, ptr %13, align 8, !tbaa !5
  %868 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %867, i32 0, i32 29
  %869 = load i32, ptr %868, align 4, !tbaa !22
  %870 = zext i32 %869 to i64
  %871 = mul i64 1, %870
  br label %873

872:                                              ; preds = %859
  br label %873

873:                                              ; preds = %872, %866
  %874 = phi i64 [ %871, %866 ], [ 255, %872 ]
  %875 = icmp ule i64 %874, 255
  br i1 %875, label %876, label %883

876:                                              ; preds = %873
  %877 = load ptr, ptr %13, align 8, !tbaa !5
  %878 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %877, i32 0, i32 29
  %879 = load i32, ptr %878, align 4, !tbaa !22
  %880 = uitofp i32 %879 to double
  %881 = fcmp ole double 0.000000e+00, %880
  br i1 %881, label %882, label %883

882:                                              ; preds = %876
  br label %884

883:                                              ; preds = %876, %873, %852
  call void @__assert_fail(ptr noundef @.str.8, ptr noundef @.str, i32 noundef 1099, ptr noundef @__PRETTY_FUNCTION__.libxsmm_compute_unary_aarch64_2d_reg_block_op) #5
  unreachable

884:                                              ; preds = %882
  %885 = load ptr, ptr %13, align 8, !tbaa !5
  %886 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %885, i32 0, i32 29
  %887 = load i32, ptr %886, align 4, !tbaa !22
  %888 = trunc i32 %887 to i8
  store i8 %888, ptr %42, align 1, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 1, ptr %43) #4
  %889 = load ptr, ptr %13, align 8, !tbaa !5
  %890 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %889, i32 0, i32 30
  %891 = load i32, ptr %890, align 4, !tbaa !24
  %892 = trunc i32 %891 to i8
  %893 = zext i8 %892 to i32
  %894 = icmp eq i32 0, %893
  br i1 %894, label %902, label %895

895:                                              ; preds = %884
  %896 = load ptr, ptr %13, align 8, !tbaa !5
  %897 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %896, i32 0, i32 30
  %898 = load i32, ptr %897, align 4, !tbaa !24
  %899 = trunc i32 %898 to i8
  %900 = zext i8 %899 to i32
  %901 = icmp slt i32 0, %900
  br i1 %901, label %902, label %926

902:                                              ; preds = %895, %884
  %903 = load ptr, ptr %13, align 8, !tbaa !5
  %904 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %903, i32 0, i32 30
  %905 = load i32, ptr %904, align 4, !tbaa !24
  %906 = zext i32 %905 to i64
  %907 = mul i64 1, %906
  %908 = icmp ult i64 %907, 255
  br i1 %908, label %909, label %915

909:                                              ; preds = %902
  %910 = load ptr, ptr %13, align 8, !tbaa !5
  %911 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %910, i32 0, i32 30
  %912 = load i32, ptr %911, align 4, !tbaa !24
  %913 = zext i32 %912 to i64
  %914 = mul i64 1, %913
  br label %916

915:                                              ; preds = %902
  br label %916

916:                                              ; preds = %915, %909
  %917 = phi i64 [ %914, %909 ], [ 255, %915 ]
  %918 = icmp ule i64 %917, 255
  br i1 %918, label %919, label %926

919:                                              ; preds = %916
  %920 = load ptr, ptr %13, align 8, !tbaa !5
  %921 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %920, i32 0, i32 30
  %922 = load i32, ptr %921, align 4, !tbaa !24
  %923 = uitofp i32 %922 to double
  %924 = fcmp ole double 0.000000e+00, %923
  br i1 %924, label %925, label %926

925:                                              ; preds = %919
  br label %927

926:                                              ; preds = %919, %916, %895
  call void @__assert_fail(ptr noundef @.str.9, ptr noundef @.str, i32 noundef 1100, ptr noundef @__PRETTY_FUNCTION__.libxsmm_compute_unary_aarch64_2d_reg_block_op) #5
  unreachable

927:                                              ; preds = %925
  %928 = load ptr, ptr %13, align 8, !tbaa !5
  %929 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %928, i32 0, i32 30
  %930 = load i32, ptr %929, align 4, !tbaa !24
  %931 = trunc i32 %930 to i8
  store i8 %931, ptr %43, align 1, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 1, ptr %44) #4
  %932 = load ptr, ptr %11, align 8, !tbaa !5
  %933 = load i32, ptr %23, align 4, !tbaa !9
  %934 = load i32, ptr %23, align 4, !tbaa !9
  %935 = load i8, ptr %40, align 1, !tbaa !17
  %936 = zext i8 %935 to i32
  %937 = load i8, ptr %28, align 1, !tbaa !17
  %938 = zext i8 %937 to i32
  %939 = load i32, ptr %30, align 4, !tbaa !9
  call void @libxsmm_aarch64_instruction_sve_compute(ptr noundef %932, i32 noundef 1695428610, i32 noundef %933, i32 noundef %934, i8 noundef zeroext 0, i32 noundef %936, i32 noundef %938, i32 noundef %939)
  %940 = load ptr, ptr %11, align 8, !tbaa !5
  %941 = load i32, ptr %23, align 4, !tbaa !9
  %942 = load i8, ptr %40, align 1, !tbaa !17
  %943 = zext i8 %942 to i32
  %944 = load i32, ptr %23, align 4, !tbaa !9
  %945 = load i8, ptr %28, align 1, !tbaa !17
  %946 = zext i8 %945 to i32
  %947 = load i32, ptr %30, align 4, !tbaa !9
  call void @libxsmm_aarch64_instruction_sve_compute(ptr noundef %940, i32 noundef 1694504963, i32 noundef %941, i32 noundef %943, i8 noundef zeroext 0, i32 noundef %944, i32 noundef %946, i32 noundef %947)
  %948 = load ptr, ptr %11, align 8, !tbaa !5
  %949 = load i32, ptr %23, align 4, !tbaa !9
  %950 = load i8, ptr %40, align 1, !tbaa !17
  %951 = zext i8 %950 to i32
  %952 = load i32, ptr %23, align 4, !tbaa !9
  %953 = load i8, ptr %28, align 1, !tbaa !17
  %954 = zext i8 %953 to i32
  %955 = load i32, ptr %30, align 4, !tbaa !9
  call void @libxsmm_aarch64_instruction_sve_compute(ptr noundef %948, i32 noundef 1694500867, i32 noundef %949, i32 noundef %951, i8 noundef zeroext 0, i32 noundef %952, i32 noundef %954, i32 noundef %955)
  %956 = load ptr, ptr %11, align 8, !tbaa !5
  %957 = load i32, ptr %23, align 4, !tbaa !9
  %958 = load i32, ptr %23, align 4, !tbaa !9
  %959 = load i8, ptr %41, align 1, !tbaa !17
  %960 = zext i8 %959 to i32
  %961 = icmp sgt i32 %960, 0
  br i1 %961, label %962, label %965

962:                                              ; preds = %927
  %963 = load i8, ptr %42, align 1, !tbaa !17
  %964 = zext i8 %963 to i32
  br label %967

965:                                              ; preds = %927
  %966 = load i32, ptr %23, align 4, !tbaa !9
  br label %967

967:                                              ; preds = %965, %962
  %968 = phi i32 [ %964, %962 ], [ %966, %965 ]
  %969 = load i8, ptr %28, align 1, !tbaa !17
  %970 = zext i8 %969 to i32
  %971 = load i32, ptr %30, align 4, !tbaa !9
  call void @libxsmm_aarch64_instruction_sve_compute(ptr noundef %956, i32 noundef 1695494146, i32 noundef %957, i32 noundef %958, i8 noundef zeroext 0, i32 noundef %968, i32 noundef %970, i32 noundef %971)
  store i8 0, ptr %44, align 1, !tbaa !17
  br label %972

972:                                              ; preds = %1111, %967
  %973 = load i8, ptr %44, align 1, !tbaa !17
  %974 = zext i8 %973 to i32
  %975 = load i8, ptr %41, align 1, !tbaa !17
  %976 = zext i8 %975 to i32
  %977 = icmp slt i32 %974, %976
  br i1 %977, label %978, label %1114

978:                                              ; preds = %972
  call void @llvm.lifetime.start.p0(i64 1, ptr %45) #4
  %979 = load i8, ptr %44, align 1, !tbaa !17
  %980 = zext i8 %979 to i32
  %981 = load i8, ptr %41, align 1, !tbaa !17
  %982 = zext i8 %981 to i32
  %983 = sub nsw i32 %982, 1
  %984 = icmp eq i32 %980, %983
  br i1 %984, label %985, label %987

985:                                              ; preds = %978
  %986 = load i32, ptr %23, align 4, !tbaa !9
  br label %990

987:                                              ; preds = %978
  %988 = load i8, ptr %42, align 1, !tbaa !17
  %989 = zext i8 %988 to i32
  br label %990

990:                                              ; preds = %987, %985
  %991 = phi i32 [ %986, %985 ], [ %989, %987 ]
  %992 = trunc i32 %991 to i8
  %993 = zext i8 %992 to i32
  %994 = icmp eq i32 0, %993
  br i1 %994, label %1012, label %995

995:                                              ; preds = %990
  %996 = load i8, ptr %44, align 1, !tbaa !17
  %997 = zext i8 %996 to i32
  %998 = load i8, ptr %41, align 1, !tbaa !17
  %999 = zext i8 %998 to i32
  %1000 = sub nsw i32 %999, 1
  %1001 = icmp eq i32 %997, %1000
  br i1 %1001, label %1002, label %1004

1002:                                             ; preds = %995
  %1003 = load i32, ptr %23, align 4, !tbaa !9
  br label %1007

1004:                                             ; preds = %995
  %1005 = load i8, ptr %42, align 1, !tbaa !17
  %1006 = zext i8 %1005 to i32
  br label %1007

1007:                                             ; preds = %1004, %1002
  %1008 = phi i32 [ %1003, %1002 ], [ %1006, %1004 ]
  %1009 = trunc i32 %1008 to i8
  %1010 = zext i8 %1009 to i32
  %1011 = icmp slt i32 0, %1010
  br i1 %1011, label %1012, label %1066

1012:                                             ; preds = %1007, %990
  %1013 = load i8, ptr %44, align 1, !tbaa !17
  %1014 = zext i8 %1013 to i32
  %1015 = load i8, ptr %41, align 1, !tbaa !17
  %1016 = zext i8 %1015 to i32
  %1017 = sub nsw i32 %1016, 1
  %1018 = icmp eq i32 %1014, %1017
  br i1 %1018, label %1019, label %1021

1019:                                             ; preds = %1012
  %1020 = load i32, ptr %23, align 4, !tbaa !9
  br label %1024

1021:                                             ; preds = %1012
  %1022 = load i8, ptr %42, align 1, !tbaa !17
  %1023 = zext i8 %1022 to i32
  br label %1024

1024:                                             ; preds = %1021, %1019
  %1025 = phi i32 [ %1020, %1019 ], [ %1023, %1021 ]
  %1026 = zext i32 %1025 to i64
  %1027 = mul i64 1, %1026
  %1028 = icmp ult i64 %1027, 255
  br i1 %1028, label %1029, label %1045

1029:                                             ; preds = %1024
  %1030 = load i8, ptr %44, align 1, !tbaa !17
  %1031 = zext i8 %1030 to i32
  %1032 = load i8, ptr %41, align 1, !tbaa !17
  %1033 = zext i8 %1032 to i32
  %1034 = sub nsw i32 %1033, 1
  %1035 = icmp eq i32 %1031, %1034
  br i1 %1035, label %1036, label %1038

1036:                                             ; preds = %1029
  %1037 = load i32, ptr %23, align 4, !tbaa !9
  br label %1041

1038:                                             ; preds = %1029
  %1039 = load i8, ptr %42, align 1, !tbaa !17
  %1040 = zext i8 %1039 to i32
  br label %1041

1041:                                             ; preds = %1038, %1036
  %1042 = phi i32 [ %1037, %1036 ], [ %1040, %1038 ]
  %1043 = zext i32 %1042 to i64
  %1044 = mul i64 1, %1043
  br label %1046

1045:                                             ; preds = %1024
  br label %1046

1046:                                             ; preds = %1045, %1041
  %1047 = phi i64 [ %1044, %1041 ], [ 255, %1045 ]
  %1048 = icmp ule i64 %1047, 255
  br i1 %1048, label %1049, label %1066

1049:                                             ; preds = %1046
  %1050 = load i8, ptr %44, align 1, !tbaa !17
  %1051 = zext i8 %1050 to i32
  %1052 = load i8, ptr %41, align 1, !tbaa !17
  %1053 = zext i8 %1052 to i32
  %1054 = sub nsw i32 %1053, 1
  %1055 = icmp eq i32 %1051, %1054
  br i1 %1055, label %1056, label %1058

1056:                                             ; preds = %1049
  %1057 = load i32, ptr %23, align 4, !tbaa !9
  br label %1061

1058:                                             ; preds = %1049
  %1059 = load i8, ptr %42, align 1, !tbaa !17
  %1060 = zext i8 %1059 to i32
  br label %1061

1061:                                             ; preds = %1058, %1056
  %1062 = phi i32 [ %1057, %1056 ], [ %1060, %1058 ]
  %1063 = uitofp i32 %1062 to double
  %1064 = fcmp ole double 0.000000e+00, %1063
  br i1 %1064, label %1065, label %1066

1065:                                             ; preds = %1061
  br label %1067

1066:                                             ; preds = %1061, %1046, %1007
  call void @__assert_fail(ptr noundef @.str.10, ptr noundef @.str, i32 noundef 1114, ptr noundef @__PRETTY_FUNCTION__.libxsmm_compute_unary_aarch64_2d_reg_block_op) #5
  unreachable

1067:                                             ; preds = %1065
  %1068 = load i8, ptr %44, align 1, !tbaa !17
  %1069 = zext i8 %1068 to i32
  %1070 = load i8, ptr %41, align 1, !tbaa !17
  %1071 = zext i8 %1070 to i32
  %1072 = sub nsw i32 %1071, 1
  %1073 = icmp eq i32 %1069, %1072
  br i1 %1073, label %1074, label %1076

1074:                                             ; preds = %1067
  %1075 = load i32, ptr %23, align 4, !tbaa !9
  br label %1079

1076:                                             ; preds = %1067
  %1077 = load i8, ptr %42, align 1, !tbaa !17
  %1078 = zext i8 %1077 to i32
  br label %1079

1079:                                             ; preds = %1076, %1074
  %1080 = phi i32 [ %1075, %1074 ], [ %1078, %1076 ]
  %1081 = trunc i32 %1080 to i8
  store i8 %1081, ptr %45, align 1, !tbaa !17
  %1082 = load ptr, ptr %11, align 8, !tbaa !5
  %1083 = load i8, ptr %42, align 1, !tbaa !17
  %1084 = zext i8 %1083 to i32
  %1085 = load i8, ptr %42, align 1, !tbaa !17
  %1086 = zext i8 %1085 to i32
  %1087 = load i8, ptr %43, align 1, !tbaa !17
  %1088 = zext i8 %1087 to i32
  %1089 = load i8, ptr %28, align 1, !tbaa !17
  %1090 = zext i8 %1089 to i32
  %1091 = load i32, ptr %30, align 4, !tbaa !9
  call void @libxsmm_aarch64_instruction_sve_compute(ptr noundef %1082, i32 noundef 1694500867, i32 noundef %1084, i32 noundef %1086, i8 noundef zeroext 0, i32 noundef %1088, i32 noundef %1090, i32 noundef %1091)
  %1092 = load ptr, ptr %11, align 8, !tbaa !5
  %1093 = load i32, ptr %23, align 4, !tbaa !9
  %1094 = load i8, ptr %43, align 1, !tbaa !17
  %1095 = zext i8 %1094 to i32
  %1096 = load i8, ptr %43, align 1, !tbaa !17
  %1097 = zext i8 %1096 to i32
  %1098 = load i8, ptr %28, align 1, !tbaa !17
  %1099 = zext i8 %1098 to i32
  %1100 = load i32, ptr %30, align 4, !tbaa !9
  call void @libxsmm_aarch64_instruction_sve_compute(ptr noundef %1092, i32 noundef 1694505987, i32 noundef %1093, i32 noundef %1095, i8 noundef zeroext 0, i32 noundef %1097, i32 noundef %1099, i32 noundef %1100)
  %1101 = load ptr, ptr %11, align 8, !tbaa !5
  %1102 = load i8, ptr %42, align 1, !tbaa !17
  %1103 = zext i8 %1102 to i32
  %1104 = load i8, ptr %43, align 1, !tbaa !17
  %1105 = zext i8 %1104 to i32
  %1106 = load i8, ptr %45, align 1, !tbaa !17
  %1107 = zext i8 %1106 to i32
  %1108 = load i8, ptr %28, align 1, !tbaa !17
  %1109 = zext i8 %1108 to i32
  %1110 = load i32, ptr %30, align 4, !tbaa !9
  call void @libxsmm_aarch64_instruction_sve_compute(ptr noundef %1101, i32 noundef 1694500867, i32 noundef %1103, i32 noundef %1105, i8 noundef zeroext 0, i32 noundef %1107, i32 noundef %1109, i32 noundef %1110)
  call void @llvm.lifetime.end.p0(i64 1, ptr %45) #4
  br label %1111

1111:                                             ; preds = %1079
  %1112 = load i8, ptr %44, align 1, !tbaa !17
  %1113 = add i8 %1112, 1
  store i8 %1113, ptr %44, align 1, !tbaa !17
  br label %972, !llvm.loop !27

1114:                                             ; preds = %972
  call void @llvm.lifetime.end.p0(i64 1, ptr %44) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %43) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %42) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %41) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %40) #4
  br label %1115

1115:                                             ; preds = %1114, %794
  br label %1121

1116:                                             ; preds = %788
  %1117 = load ptr, ptr %11, align 8, !tbaa !5
  %1118 = load i32, ptr %23, align 4, !tbaa !9
  %1119 = load i32, ptr %23, align 4, !tbaa !9
  %1120 = load i32, ptr %31, align 4, !tbaa !9
  call void @libxsmm_aarch64_instruction_asimd_compute(ptr noundef %1117, i32 noundef 782366730, i32 noundef %1118, i32 noundef 127, i8 noundef zeroext 0, i32 noundef %1119, i32 noundef %1120)
  br label %1121

1121:                                             ; preds = %1116, %1115
  br label %1870

1122:                                             ; preds = %782
  %1123 = load ptr, ptr %14, align 8, !tbaa !5
  %1124 = getelementptr inbounds %struct.libxsmm_meltw_descriptor, ptr %1123, i32 0, i32 10
  %1125 = load i16, ptr %1124, align 1, !tbaa !18
  %1126 = zext i16 %1125 to i32
  %1127 = icmp eq i32 %1126, 17
  br i1 %1127, label %1128, label %1207

1128:                                             ; preds = %1122
  %1129 = load i8, ptr %27, align 1, !tbaa !17
  %1130 = icmp ne i8 %1129, 0
  br i1 %1130, label %1131, label %1169

1131:                                             ; preds = %1128
  %1132 = load ptr, ptr %11, align 8, !tbaa !5
  %1133 = load i32, ptr %23, align 4, !tbaa !9
  %1134 = load ptr, ptr %13, align 8, !tbaa !5
  %1135 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1134, i32 0, i32 64
  %1136 = load i32, ptr %1135, align 4, !tbaa !28
  %1137 = load ptr, ptr %13, align 8, !tbaa !5
  %1138 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1137, i32 0, i32 65
  %1139 = load i32, ptr %1138, align 4, !tbaa !29
  %1140 = load ptr, ptr %13, align 8, !tbaa !5
  %1141 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1140, i32 0, i32 36
  %1142 = load i32, ptr %1141, align 4, !tbaa !30
  %1143 = load ptr, ptr %13, align 8, !tbaa !5
  %1144 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1143, i32 0, i32 40
  %1145 = load i32, ptr %1144, align 4, !tbaa !31
  %1146 = load ptr, ptr %13, align 8, !tbaa !5
  %1147 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1146, i32 0, i32 44
  %1148 = load i32, ptr %1147, align 4, !tbaa !32
  %1149 = load ptr, ptr %13, align 8, !tbaa !5
  %1150 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1149, i32 0, i32 51
  %1151 = load i32, ptr %1150, align 4, !tbaa !33
  %1152 = load ptr, ptr %13, align 8, !tbaa !5
  %1153 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1152, i32 0, i32 56
  %1154 = load i32, ptr %1153, align 4, !tbaa !34
  %1155 = load ptr, ptr %13, align 8, !tbaa !5
  %1156 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1155, i32 0, i32 60
  %1157 = load i32, ptr %1156, align 4, !tbaa !35
  %1158 = load ptr, ptr %13, align 8, !tbaa !5
  %1159 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1158, i32 0, i32 66
  %1160 = load i32, ptr %1159, align 4, !tbaa !36
  %1161 = load ptr, ptr %13, align 8, !tbaa !5
  %1162 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1161, i32 0, i32 52
  %1163 = load i32, ptr %1162, align 4, !tbaa !37
  %1164 = load ptr, ptr %13, align 8, !tbaa !5
  %1165 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1164, i32 0, i32 53
  %1166 = load i32, ptr %1165, align 4, !tbaa !38
  %1167 = load i32, ptr %30, align 4, !tbaa !9
  %1168 = load i8, ptr %28, align 1, !tbaa !17
  call void @libxsmm_generator_exp_ps_3dts_aarch64_sve(ptr noundef %1132, i32 noundef %1133, i32 noundef %1136, i32 noundef %1139, i32 noundef %1142, i32 noundef %1145, i32 noundef %1148, i32 noundef %1151, i32 noundef %1154, i32 noundef %1157, i32 noundef %1160, i32 noundef %1163, i32 noundef %1166, i32 noundef %1167, i8 noundef zeroext %1168)
  br label %1206

1169:                                             ; preds = %1128
  %1170 = load ptr, ptr %11, align 8, !tbaa !5
  %1171 = load i32, ptr %23, align 4, !tbaa !9
  %1172 = load ptr, ptr %13, align 8, !tbaa !5
  %1173 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1172, i32 0, i32 64
  %1174 = load i32, ptr %1173, align 4, !tbaa !28
  %1175 = load ptr, ptr %13, align 8, !tbaa !5
  %1176 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1175, i32 0, i32 65
  %1177 = load i32, ptr %1176, align 4, !tbaa !29
  %1178 = load ptr, ptr %13, align 8, !tbaa !5
  %1179 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1178, i32 0, i32 36
  %1180 = load i32, ptr %1179, align 4, !tbaa !30
  %1181 = load ptr, ptr %13, align 8, !tbaa !5
  %1182 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1181, i32 0, i32 40
  %1183 = load i32, ptr %1182, align 4, !tbaa !31
  %1184 = load ptr, ptr %13, align 8, !tbaa !5
  %1185 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1184, i32 0, i32 44
  %1186 = load i32, ptr %1185, align 4, !tbaa !32
  %1187 = load ptr, ptr %13, align 8, !tbaa !5
  %1188 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1187, i32 0, i32 51
  %1189 = load i32, ptr %1188, align 4, !tbaa !33
  %1190 = load ptr, ptr %13, align 8, !tbaa !5
  %1191 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1190, i32 0, i32 56
  %1192 = load i32, ptr %1191, align 4, !tbaa !34
  %1193 = load ptr, ptr %13, align 8, !tbaa !5
  %1194 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1193, i32 0, i32 60
  %1195 = load i32, ptr %1194, align 4, !tbaa !35
  %1196 = load ptr, ptr %13, align 8, !tbaa !5
  %1197 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1196, i32 0, i32 66
  %1198 = load i32, ptr %1197, align 4, !tbaa !36
  %1199 = load ptr, ptr %13, align 8, !tbaa !5
  %1200 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1199, i32 0, i32 52
  %1201 = load i32, ptr %1200, align 4, !tbaa !37
  %1202 = load ptr, ptr %13, align 8, !tbaa !5
  %1203 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1202, i32 0, i32 53
  %1204 = load i32, ptr %1203, align 4, !tbaa !38
  %1205 = load i32, ptr %31, align 4, !tbaa !9
  call void @libxsmm_generator_exp_ps_3dts_aarch64_asimd(ptr noundef %1170, i32 noundef %1171, i32 noundef %1174, i32 noundef %1177, i32 noundef %1180, i32 noundef %1183, i32 noundef %1186, i32 noundef %1189, i32 noundef %1192, i32 noundef %1195, i32 noundef %1198, i32 noundef %1201, i32 noundef %1204, i32 noundef %1205)
  br label %1206

1206:                                             ; preds = %1169, %1131
  br label %1869

1207:                                             ; preds = %1122
  %1208 = load ptr, ptr %14, align 8, !tbaa !5
  %1209 = getelementptr inbounds %struct.libxsmm_meltw_descriptor, ptr %1208, i32 0, i32 10
  %1210 = load i16, ptr %1209, align 1, !tbaa !18
  %1211 = zext i16 %1210 to i32
  %1212 = icmp eq i32 %1211, 7
  br i1 %1212, label %1219, label %1213

1213:                                             ; preds = %1207
  %1214 = load ptr, ptr %14, align 8, !tbaa !5
  %1215 = getelementptr inbounds %struct.libxsmm_meltw_descriptor, ptr %1214, i32 0, i32 10
  %1216 = load i16, ptr %1215, align 1, !tbaa !18
  %1217 = zext i16 %1216 to i32
  %1218 = icmp eq i32 %1217, 8
  br i1 %1218, label %1219, label %1400

1219:                                             ; preds = %1213, %1207
  %1220 = load i8, ptr %27, align 1, !tbaa !17
  %1221 = icmp ne i8 %1220, 0
  br i1 %1221, label %1222, label %1278

1222:                                             ; preds = %1219
  %1223 = load ptr, ptr %11, align 8, !tbaa !5
  %1224 = load i32, ptr %23, align 4, !tbaa !9
  %1225 = load ptr, ptr %13, align 8, !tbaa !5
  %1226 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1225, i32 0, i32 33
  %1227 = load i32, ptr %1226, align 4, !tbaa !39
  %1228 = load ptr, ptr %13, align 8, !tbaa !5
  %1229 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1228, i32 0, i32 34
  %1230 = load i32, ptr %1229, align 4, !tbaa !40
  %1231 = load ptr, ptr %13, align 8, !tbaa !5
  %1232 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1231, i32 0, i32 35
  %1233 = load i32, ptr %1232, align 4, !tbaa !41
  %1234 = load ptr, ptr %13, align 8, !tbaa !5
  %1235 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1234, i32 0, i32 57
  %1236 = load i32, ptr %1235, align 4, !tbaa !42
  %1237 = load ptr, ptr %13, align 8, !tbaa !5
  %1238 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1237, i32 0, i32 58
  %1239 = load i32, ptr %1238, align 4, !tbaa !43
  %1240 = load ptr, ptr %13, align 8, !tbaa !5
  %1241 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1240, i32 0, i32 36
  %1242 = load i32, ptr %1241, align 4, !tbaa !30
  %1243 = load ptr, ptr %13, align 8, !tbaa !5
  %1244 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1243, i32 0, i32 40
  %1245 = load i32, ptr %1244, align 4, !tbaa !31
  %1246 = load ptr, ptr %13, align 8, !tbaa !5
  %1247 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1246, i32 0, i32 44
  %1248 = load i32, ptr %1247, align 4, !tbaa !32
  %1249 = load ptr, ptr %13, align 8, !tbaa !5
  %1250 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1249, i32 0, i32 51
  %1251 = load i32, ptr %1250, align 4, !tbaa !33
  %1252 = load ptr, ptr %13, align 8, !tbaa !5
  %1253 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1252, i32 0, i32 48
  %1254 = load i32, ptr %1253, align 4, !tbaa !44
  %1255 = load ptr, ptr %13, align 8, !tbaa !5
  %1256 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1255, i32 0, i32 49
  %1257 = load i32, ptr %1256, align 4, !tbaa !45
  %1258 = load ptr, ptr %13, align 8, !tbaa !5
  %1259 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1258, i32 0, i32 50
  %1260 = load i32, ptr %1259, align 4, !tbaa !46
  %1261 = load ptr, ptr %13, align 8, !tbaa !5
  %1262 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1261, i32 0, i32 52
  %1263 = load i32, ptr %1262, align 4, !tbaa !37
  %1264 = load ptr, ptr %13, align 8, !tbaa !5
  %1265 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1264, i32 0, i32 53
  %1266 = load i32, ptr %1265, align 4, !tbaa !38
  %1267 = load ptr, ptr %13, align 8, !tbaa !5
  %1268 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1267, i32 0, i32 54
  %1269 = load i32, ptr %1268, align 4, !tbaa !21
  %1270 = load ptr, ptr %13, align 8, !tbaa !5
  %1271 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1270, i32 0, i32 55
  %1272 = load i32, ptr %1271, align 4, !tbaa !47
  %1273 = load ptr, ptr %13, align 8, !tbaa !5
  %1274 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1273, i32 0, i32 86
  %1275 = load i32, ptr %1274, align 4, !tbaa !23
  %1276 = load i32, ptr %30, align 4, !tbaa !9
  %1277 = load i8, ptr %28, align 1, !tbaa !17
  call void @libxsmm_generator_tanh_ps_rational_78_aarch64_sve(ptr noundef %1223, i32 noundef %1224, i32 noundef %1227, i32 noundef %1230, i32 noundef %1233, i32 noundef %1236, i32 noundef %1239, i32 noundef %1242, i32 noundef %1245, i32 noundef %1248, i32 noundef %1251, i32 noundef %1254, i32 noundef %1257, i32 noundef %1260, i32 noundef %1263, i32 noundef %1266, i32 noundef %1269, i32 noundef %1272, i32 noundef %1275, i32 noundef %1276, i8 noundef zeroext %1277)
  br label %1333

1278:                                             ; preds = %1219
  %1279 = load ptr, ptr %11, align 8, !tbaa !5
  %1280 = load i32, ptr %23, align 4, !tbaa !9
  %1281 = load ptr, ptr %13, align 8, !tbaa !5
  %1282 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1281, i32 0, i32 33
  %1283 = load i32, ptr %1282, align 4, !tbaa !39
  %1284 = load ptr, ptr %13, align 8, !tbaa !5
  %1285 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1284, i32 0, i32 34
  %1286 = load i32, ptr %1285, align 4, !tbaa !40
  %1287 = load ptr, ptr %13, align 8, !tbaa !5
  %1288 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1287, i32 0, i32 35
  %1289 = load i32, ptr %1288, align 4, !tbaa !41
  %1290 = load ptr, ptr %13, align 8, !tbaa !5
  %1291 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1290, i32 0, i32 57
  %1292 = load i32, ptr %1291, align 4, !tbaa !42
  %1293 = load ptr, ptr %13, align 8, !tbaa !5
  %1294 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1293, i32 0, i32 58
  %1295 = load i32, ptr %1294, align 4, !tbaa !43
  %1296 = load ptr, ptr %13, align 8, !tbaa !5
  %1297 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1296, i32 0, i32 36
  %1298 = load i32, ptr %1297, align 4, !tbaa !30
  %1299 = load ptr, ptr %13, align 8, !tbaa !5
  %1300 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1299, i32 0, i32 40
  %1301 = load i32, ptr %1300, align 4, !tbaa !31
  %1302 = load ptr, ptr %13, align 8, !tbaa !5
  %1303 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1302, i32 0, i32 44
  %1304 = load i32, ptr %1303, align 4, !tbaa !32
  %1305 = load ptr, ptr %13, align 8, !tbaa !5
  %1306 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1305, i32 0, i32 51
  %1307 = load i32, ptr %1306, align 4, !tbaa !33
  %1308 = load ptr, ptr %13, align 8, !tbaa !5
  %1309 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1308, i32 0, i32 48
  %1310 = load i32, ptr %1309, align 4, !tbaa !44
  %1311 = load ptr, ptr %13, align 8, !tbaa !5
  %1312 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1311, i32 0, i32 49
  %1313 = load i32, ptr %1312, align 4, !tbaa !45
  %1314 = load ptr, ptr %13, align 8, !tbaa !5
  %1315 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1314, i32 0, i32 50
  %1316 = load i32, ptr %1315, align 4, !tbaa !46
  %1317 = load ptr, ptr %13, align 8, !tbaa !5
  %1318 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1317, i32 0, i32 52
  %1319 = load i32, ptr %1318, align 4, !tbaa !37
  %1320 = load ptr, ptr %13, align 8, !tbaa !5
  %1321 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1320, i32 0, i32 53
  %1322 = load i32, ptr %1321, align 4, !tbaa !38
  %1323 = load ptr, ptr %13, align 8, !tbaa !5
  %1324 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1323, i32 0, i32 54
  %1325 = load i32, ptr %1324, align 4, !tbaa !21
  %1326 = load ptr, ptr %13, align 8, !tbaa !5
  %1327 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1326, i32 0, i32 55
  %1328 = load i32, ptr %1327, align 4, !tbaa !47
  %1329 = load ptr, ptr %13, align 8, !tbaa !5
  %1330 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1329, i32 0, i32 86
  %1331 = load i32, ptr %1330, align 4, !tbaa !23
  %1332 = load i32, ptr %31, align 4, !tbaa !9
  call void @libxsmm_generator_tanh_ps_rational_78_aarch64_asimd(ptr noundef %1279, i32 noundef %1280, i32 noundef %1283, i32 noundef %1286, i32 noundef %1289, i32 noundef %1292, i32 noundef %1295, i32 noundef %1298, i32 noundef %1301, i32 noundef %1304, i32 noundef %1307, i32 noundef %1310, i32 noundef %1313, i32 noundef %1316, i32 noundef %1319, i32 noundef %1322, i32 noundef %1325, i32 noundef %1328, i32 noundef %1331, i32 noundef %1332)
  br label %1333

1333:                                             ; preds = %1278, %1222
  %1334 = load ptr, ptr %14, align 8, !tbaa !5
  %1335 = getelementptr inbounds %struct.libxsmm_meltw_descriptor, ptr %1334, i32 0, i32 10
  %1336 = load i16, ptr %1335, align 1, !tbaa !18
  %1337 = zext i16 %1336 to i32
  %1338 = icmp eq i32 %1337, 8
  br i1 %1338, label %1339, label %1399

1339:                                             ; preds = %1333
  %1340 = load i8, ptr %27, align 1, !tbaa !17
  %1341 = icmp ne i8 %1340, 0
  br i1 %1341, label %1342, label %1373

1342:                                             ; preds = %1339
  %1343 = load ptr, ptr %11, align 8, !tbaa !5
  %1344 = load i32, ptr %23, align 4, !tbaa !9
  %1345 = load i32, ptr %23, align 4, !tbaa !9
  %1346 = load ptr, ptr %13, align 8, !tbaa !5
  %1347 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1346, i32 0, i32 86
  %1348 = load i32, ptr %1347, align 4, !tbaa !23
  %1349 = load i8, ptr %28, align 1, !tbaa !17
  %1350 = zext i8 %1349 to i32
  %1351 = load i32, ptr %30, align 4, !tbaa !9
  call void @libxsmm_aarch64_instruction_sve_compute(ptr noundef %1343, i32 noundef 1694500867, i32 noundef %1344, i32 noundef %1345, i8 noundef zeroext 0, i32 noundef %1348, i32 noundef %1350, i32 noundef %1351)
  %1352 = load ptr, ptr %11, align 8, !tbaa !5
  %1353 = load ptr, ptr %13, align 8, !tbaa !5
  %1354 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1353, i32 0, i32 86
  %1355 = load i32, ptr %1354, align 4, !tbaa !23
  %1356 = load ptr, ptr %13, align 8, !tbaa !5
  %1357 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1356, i32 0, i32 86
  %1358 = load i32, ptr %1357, align 4, !tbaa !23
  %1359 = load i8, ptr %28, align 1, !tbaa !17
  %1360 = zext i8 %1359 to i32
  %1361 = load i32, ptr %30, align 4, !tbaa !9
  call void @libxsmm_aarch64_instruction_sve_compute(ptr noundef %1352, i32 noundef 69050498, i32 noundef %1355, i32 noundef 127, i8 noundef zeroext 0, i32 noundef %1358, i32 noundef %1360, i32 noundef %1361)
  %1362 = load ptr, ptr %11, align 8, !tbaa !5
  %1363 = load ptr, ptr %13, align 8, !tbaa !5
  %1364 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1363, i32 0, i32 86
  %1365 = load i32, ptr %1364, align 4, !tbaa !23
  %1366 = load ptr, ptr %13, align 8, !tbaa !5
  %1367 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1366, i32 0, i32 55
  %1368 = load i32, ptr %1367, align 4, !tbaa !47
  %1369 = load i32, ptr %23, align 4, !tbaa !9
  %1370 = load i8, ptr %28, align 1, !tbaa !17
  %1371 = zext i8 %1370 to i32
  %1372 = load i32, ptr %30, align 4, !tbaa !9
  call void @libxsmm_aarch64_instruction_sve_compute(ptr noundef %1362, i32 noundef 1694499843, i32 noundef %1365, i32 noundef %1368, i8 noundef zeroext 0, i32 noundef %1369, i32 noundef %1371, i32 noundef %1372)
  br label %1398

1373:                                             ; preds = %1339
  %1374 = load ptr, ptr %11, align 8, !tbaa !5
  %1375 = load i32, ptr %23, align 4, !tbaa !9
  %1376 = load i32, ptr %23, align 4, !tbaa !9
  %1377 = load ptr, ptr %13, align 8, !tbaa !5
  %1378 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1377, i32 0, i32 86
  %1379 = load i32, ptr %1378, align 4, !tbaa !23
  %1380 = load i32, ptr %31, align 4, !tbaa !9
  call void @libxsmm_aarch64_instruction_asimd_compute(ptr noundef %1374, i32 noundef 773905419, i32 noundef %1375, i32 noundef %1376, i8 noundef zeroext 0, i32 noundef %1379, i32 noundef %1380)
  %1381 = load ptr, ptr %11, align 8, !tbaa !5
  %1382 = load ptr, ptr %13, align 8, !tbaa !5
  %1383 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1382, i32 0, i32 86
  %1384 = load i32, ptr %1383, align 4, !tbaa !23
  %1385 = load ptr, ptr %13, align 8, !tbaa !5
  %1386 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1385, i32 0, i32 86
  %1387 = load i32, ptr %1386, align 4, !tbaa !23
  %1388 = load i32, ptr %31, align 4, !tbaa !9
  call void @libxsmm_aarch64_instruction_asimd_compute(ptr noundef %1381, i32 noundef 782301194, i32 noundef %1384, i32 noundef 127, i8 noundef zeroext 0, i32 noundef %1387, i32 noundef %1388)
  %1389 = load ptr, ptr %11, align 8, !tbaa !5
  %1390 = load ptr, ptr %13, align 8, !tbaa !5
  %1391 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1390, i32 0, i32 86
  %1392 = load i32, ptr %1391, align 4, !tbaa !23
  %1393 = load ptr, ptr %13, align 8, !tbaa !5
  %1394 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1393, i32 0, i32 55
  %1395 = load i32, ptr %1394, align 4, !tbaa !47
  %1396 = load i32, ptr %23, align 4, !tbaa !9
  %1397 = load i32, ptr %31, align 4, !tbaa !9
  call void @libxsmm_aarch64_instruction_asimd_compute(ptr noundef %1389, i32 noundef 245421067, i32 noundef %1392, i32 noundef %1395, i8 noundef zeroext 0, i32 noundef %1396, i32 noundef %1397)
  br label %1398

1398:                                             ; preds = %1373, %1342
  br label %1399

1399:                                             ; preds = %1398, %1333
  br label %1868

1400:                                             ; preds = %1213
  %1401 = load ptr, ptr %14, align 8, !tbaa !5
  %1402 = getelementptr inbounds %struct.libxsmm_meltw_descriptor, ptr %1401, i32 0, i32 10
  %1403 = load i16, ptr %1402, align 1, !tbaa !18
  %1404 = zext i16 %1403 to i32
  %1405 = icmp eq i32 %1404, 9
  br i1 %1405, label %1412, label %1406

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

1412:                                             ; preds = %1406, %1400
  %1413 = load i8, ptr %27, align 1, !tbaa !17
  %1414 = icmp ne i8 %1413, 0
  br i1 %1414, label %1415, label %1474

1415:                                             ; preds = %1412
  %1416 = load ptr, ptr %11, align 8, !tbaa !5
  %1417 = load i32, ptr %23, align 4, !tbaa !9
  %1418 = load ptr, ptr %13, align 8, !tbaa !5
  %1419 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1418, i32 0, i32 33
  %1420 = load i32, ptr %1419, align 4, !tbaa !39
  %1421 = load ptr, ptr %13, align 8, !tbaa !5
  %1422 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1421, i32 0, i32 34
  %1423 = load i32, ptr %1422, align 4, !tbaa !40
  %1424 = load ptr, ptr %13, align 8, !tbaa !5
  %1425 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1424, i32 0, i32 35
  %1426 = load i32, ptr %1425, align 4, !tbaa !41
  %1427 = load ptr, ptr %13, align 8, !tbaa !5
  %1428 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1427, i32 0, i32 57
  %1429 = load i32, ptr %1428, align 4, !tbaa !42
  %1430 = load ptr, ptr %13, align 8, !tbaa !5
  %1431 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1430, i32 0, i32 58
  %1432 = load i32, ptr %1431, align 4, !tbaa !43
  %1433 = load ptr, ptr %13, align 8, !tbaa !5
  %1434 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1433, i32 0, i32 36
  %1435 = load i32, ptr %1434, align 4, !tbaa !30
  %1436 = load ptr, ptr %13, align 8, !tbaa !5
  %1437 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1436, i32 0, i32 40
  %1438 = load i32, ptr %1437, align 4, !tbaa !31
  %1439 = load ptr, ptr %13, align 8, !tbaa !5
  %1440 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1439, i32 0, i32 44
  %1441 = load i32, ptr %1440, align 4, !tbaa !32
  %1442 = load ptr, ptr %13, align 8, !tbaa !5
  %1443 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1442, i32 0, i32 51
  %1444 = load i32, ptr %1443, align 4, !tbaa !33
  %1445 = load ptr, ptr %13, align 8, !tbaa !5
  %1446 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1445, i32 0, i32 48
  %1447 = load i32, ptr %1446, align 4, !tbaa !44
  %1448 = load ptr, ptr %13, align 8, !tbaa !5
  %1449 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1448, i32 0, i32 49
  %1450 = load i32, ptr %1449, align 4, !tbaa !45
  %1451 = load ptr, ptr %13, align 8, !tbaa !5
  %1452 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1451, i32 0, i32 50
  %1453 = load i32, ptr %1452, align 4, !tbaa !46
  %1454 = load ptr, ptr %13, align 8, !tbaa !5
  %1455 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1454, i32 0, i32 52
  %1456 = load i32, ptr %1455, align 4, !tbaa !37
  %1457 = load ptr, ptr %13, align 8, !tbaa !5
  %1458 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1457, i32 0, i32 53
  %1459 = load i32, ptr %1458, align 4, !tbaa !38
  %1460 = load ptr, ptr %13, align 8, !tbaa !5
  %1461 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1460, i32 0, i32 54
  %1462 = load i32, ptr %1461, align 4, !tbaa !21
  %1463 = load ptr, ptr %13, align 8, !tbaa !5
  %1464 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1463, i32 0, i32 55
  %1465 = load i32, ptr %1464, align 4, !tbaa !47
  %1466 = load ptr, ptr %13, align 8, !tbaa !5
  %1467 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1466, i32 0, i32 56
  %1468 = load i32, ptr %1467, align 4, !tbaa !34
  %1469 = load ptr, ptr %13, align 8, !tbaa !5
  %1470 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1469, i32 0, i32 86
  %1471 = load i32, ptr %1470, align 4, !tbaa !23
  %1472 = load i32, ptr %30, align 4, !tbaa !9
  %1473 = load i8, ptr %28, align 1, !tbaa !17
  call void @libxsmm_generator_sigmoid_ps_rational_78_aarch64_sve(ptr noundef %1416, 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 %1472, i8 noundef zeroext %1473)
  br label %1532

1474:                                             ; preds = %1412
  %1475 = load ptr, ptr %11, align 8, !tbaa !5
  %1476 = load i32, ptr %23, align 4, !tbaa !9
  %1477 = load ptr, ptr %13, align 8, !tbaa !5
  %1478 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1477, i32 0, i32 33
  %1479 = load i32, ptr %1478, align 4, !tbaa !39
  %1480 = load ptr, ptr %13, align 8, !tbaa !5
  %1481 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1480, i32 0, i32 34
  %1482 = load i32, ptr %1481, align 4, !tbaa !40
  %1483 = load ptr, ptr %13, align 8, !tbaa !5
  %1484 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1483, i32 0, i32 35
  %1485 = load i32, ptr %1484, align 4, !tbaa !41
  %1486 = load ptr, ptr %13, align 8, !tbaa !5
  %1487 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1486, i32 0, i32 57
  %1488 = load i32, ptr %1487, align 4, !tbaa !42
  %1489 = load ptr, ptr %13, align 8, !tbaa !5
  %1490 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1489, i32 0, i32 58
  %1491 = load i32, ptr %1490, align 4, !tbaa !43
  %1492 = load ptr, ptr %13, align 8, !tbaa !5
  %1493 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1492, i32 0, i32 36
  %1494 = load i32, ptr %1493, align 4, !tbaa !30
  %1495 = load ptr, ptr %13, align 8, !tbaa !5
  %1496 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1495, i32 0, i32 40
  %1497 = load i32, ptr %1496, align 4, !tbaa !31
  %1498 = load ptr, ptr %13, align 8, !tbaa !5
  %1499 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1498, i32 0, i32 44
  %1500 = load i32, ptr %1499, align 4, !tbaa !32
  %1501 = load ptr, ptr %13, align 8, !tbaa !5
  %1502 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1501, i32 0, i32 51
  %1503 = load i32, ptr %1502, align 4, !tbaa !33
  %1504 = load ptr, ptr %13, align 8, !tbaa !5
  %1505 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1504, i32 0, i32 48
  %1506 = load i32, ptr %1505, align 4, !tbaa !44
  %1507 = load ptr, ptr %13, align 8, !tbaa !5
  %1508 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1507, i32 0, i32 49
  %1509 = load i32, ptr %1508, align 4, !tbaa !45
  %1510 = load ptr, ptr %13, align 8, !tbaa !5
  %1511 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1510, i32 0, i32 50
  %1512 = load i32, ptr %1511, align 4, !tbaa !46
  %1513 = load ptr, ptr %13, align 8, !tbaa !5
  %1514 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1513, i32 0, i32 52
  %1515 = load i32, ptr %1514, align 4, !tbaa !37
  %1516 = load ptr, ptr %13, align 8, !tbaa !5
  %1517 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1516, i32 0, i32 53
  %1518 = load i32, ptr %1517, align 4, !tbaa !38
  %1519 = load ptr, ptr %13, align 8, !tbaa !5
  %1520 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1519, i32 0, i32 54
  %1521 = load i32, ptr %1520, align 4, !tbaa !21
  %1522 = load ptr, ptr %13, align 8, !tbaa !5
  %1523 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1522, i32 0, i32 55
  %1524 = load i32, ptr %1523, align 4, !tbaa !47
  %1525 = load ptr, ptr %13, align 8, !tbaa !5
  %1526 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1525, i32 0, i32 56
  %1527 = load i32, ptr %1526, align 4, !tbaa !34
  %1528 = load ptr, ptr %13, align 8, !tbaa !5
  %1529 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1528, i32 0, i32 86
  %1530 = load i32, ptr %1529, align 4, !tbaa !23
  %1531 = load i32, ptr %31, align 4, !tbaa !9
  call void @libxsmm_generator_sigmoid_ps_rational_78_aarch64_asimd(ptr noundef %1475, i32 noundef %1476, i32 noundef %1479, i32 noundef %1482, i32 noundef %1485, i32 noundef %1488, i32 noundef %1491, i32 noundef %1494, i32 noundef %1497, i32 noundef %1500, i32 noundef %1503, i32 noundef %1506, i32 noundef %1509, i32 noundef %1512, i32 noundef %1515, i32 noundef %1518, i32 noundef %1521, i32 noundef %1524, i32 noundef %1527, i32 noundef %1530, i32 noundef %1531)
  br label %1532

1532:                                             ; preds = %1474, %1415
  %1533 = load ptr, ptr %14, align 8, !tbaa !5
  %1534 = getelementptr inbounds %struct.libxsmm_meltw_descriptor, ptr %1533, i32 0, i32 10
  %1535 = load i16, ptr %1534, align 1, !tbaa !18
  %1536 = zext i16 %1535 to i32
  %1537 = icmp eq i32 %1536, 10
  br i1 %1537, label %1538, label %1580

1538:                                             ; preds = %1532
  %1539 = load i8, ptr %27, align 1, !tbaa !17
  %1540 = icmp ne i8 %1539, 0
  br i1 %1540, label %1541, label %1562

1541:                                             ; preds = %1538
  %1542 = load ptr, ptr %11, align 8, !tbaa !5
  %1543 = load ptr, ptr %13, align 8, !tbaa !5
  %1544 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1543, i32 0, i32 54
  %1545 = load i32, ptr %1544, align 4, !tbaa !21
  %1546 = load i32, ptr %23, align 4, !tbaa !9
  %1547 = load ptr, ptr %13, align 8, !tbaa !5
  %1548 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1547, i32 0, i32 33
  %1549 = load i32, ptr %1548, align 4, !tbaa !39
  %1550 = load i8, ptr %28, align 1, !tbaa !17
  %1551 = zext i8 %1550 to i32
  %1552 = load i32, ptr %30, align 4, !tbaa !9
  call void @libxsmm_aarch64_instruction_sve_compute(ptr noundef %1542, i32 noundef 1694499843, i32 noundef %1545, i32 noundef %1546, i8 noundef zeroext 0, i32 noundef %1549, i32 noundef %1551, i32 noundef %1552)
  %1553 = load ptr, ptr %11, align 8, !tbaa !5
  %1554 = load ptr, ptr %13, align 8, !tbaa !5
  %1555 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1554, i32 0, i32 33
  %1556 = load i32, ptr %1555, align 4, !tbaa !39
  %1557 = load i32, ptr %23, align 4, !tbaa !9
  %1558 = load i32, ptr %23, align 4, !tbaa !9
  %1559 = load i8, ptr %28, align 1, !tbaa !17
  %1560 = zext i8 %1559 to i32
  %1561 = load i32, ptr %30, align 4, !tbaa !9
  call void @libxsmm_aarch64_instruction_sve_compute(ptr noundef %1553, i32 noundef 1694500867, i32 noundef %1556, i32 noundef %1557, i8 noundef zeroext 0, i32 noundef %1558, i32 noundef %1560, i32 noundef %1561)
  br label %1579

1562:                                             ; preds = %1538
  %1563 = load ptr, ptr %11, align 8, !tbaa !5
  %1564 = load ptr, ptr %13, align 8, !tbaa !5
  %1565 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1564, i32 0, i32 54
  %1566 = load i32, ptr %1565, align 4, !tbaa !21
  %1567 = load i32, ptr %23, align 4, !tbaa !9
  %1568 = load ptr, ptr %13, align 8, !tbaa !5
  %1569 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1568, i32 0, i32 33
  %1570 = load i32, ptr %1569, align 4, !tbaa !39
  %1571 = load i32, ptr %31, align 4, !tbaa !9
  call void @libxsmm_aarch64_instruction_asimd_compute(ptr noundef %1563, i32 noundef 245421067, i32 noundef %1566, i32 noundef %1567, i8 noundef zeroext 0, i32 noundef %1570, i32 noundef %1571)
  %1572 = load ptr, ptr %11, align 8, !tbaa !5
  %1573 = load ptr, ptr %13, align 8, !tbaa !5
  %1574 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1573, i32 0, i32 33
  %1575 = load i32, ptr %1574, align 4, !tbaa !39
  %1576 = load i32, ptr %23, align 4, !tbaa !9
  %1577 = load i32, ptr %23, align 4, !tbaa !9
  %1578 = load i32, ptr %31, align 4, !tbaa !9
  call void @libxsmm_aarch64_instruction_asimd_compute(ptr noundef %1572, i32 noundef 773905419, i32 noundef %1575, i32 noundef %1576, i8 noundef zeroext 0, i32 noundef %1577, i32 noundef %1578)
  br label %1579

1579:                                             ; preds = %1562, %1541
  br label %1580

1580:                                             ; preds = %1579, %1532
  br label %1867

1581:                                             ; preds = %1406
  %1582 = load ptr, ptr %14, align 8, !tbaa !5
  %1583 = getelementptr inbounds %struct.libxsmm_meltw_descriptor, ptr %1582, i32 0, i32 10
  %1584 = load i16, ptr %1583, align 1, !tbaa !18
  %1585 = zext i16 %1584 to i32
  %1586 = icmp eq i32 %1585, 11
  br i1 %1586, label %1587, label %1723

1587:                                             ; preds = %1581
  %1588 = load i8, ptr %27, align 1, !tbaa !17
  %1589 = icmp ne i8 %1588, 0
  br i1 %1589, label %1590, label %1670

1590:                                             ; preds = %1587
  %1591 = load ptr, ptr %11, align 8, !tbaa !5
  %1592 = load i32, ptr %23, align 4, !tbaa !9
  %1593 = load ptr, ptr %13, align 8, !tbaa !5
  %1594 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1593, i32 0, i32 70
  %1595 = load i32, ptr %1594, align 4, !tbaa !48
  %1596 = load ptr, ptr %13, align 8, !tbaa !5
  %1597 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1596, i32 0, i32 71
  %1598 = load i32, ptr %1597, align 4, !tbaa !49
  %1599 = load ptr, ptr %13, align 8, !tbaa !5
  %1600 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1599, i32 0, i32 72
  %1601 = load i32, ptr %1600, align 4, !tbaa !50
  %1602 = load ptr, ptr %13, align 8, !tbaa !5
  %1603 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1602, i32 0, i32 73
  %1604 = load i32, ptr %1603, align 4, !tbaa !51
  %1605 = load ptr, ptr %13, align 8, !tbaa !5
  %1606 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1605, i32 0, i32 74
  %1607 = load i32, ptr %1606, align 4, !tbaa !52
  %1608 = load ptr, ptr %13, align 8, !tbaa !5
  %1609 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1608, i32 0, i32 75
  %1610 = load i32, ptr %1609, align 4, !tbaa !53
  %1611 = load ptr, ptr %13, align 8, !tbaa !5
  %1612 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1611, i32 0, i32 76
  %1613 = load i32, ptr %1612, align 4, !tbaa !54
  %1614 = load ptr, ptr %13, align 8, !tbaa !5
  %1615 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1614, i32 0, i32 77
  %1616 = load i32, ptr %1615, align 4, !tbaa !55
  %1617 = load ptr, ptr %13, align 8, !tbaa !5
  %1618 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1617, i32 0, i32 78
  %1619 = load i32, ptr %1618, align 4, !tbaa !56
  %1620 = load ptr, ptr %13, align 8, !tbaa !5
  %1621 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1620, i32 0, i32 79
  %1622 = load i32, ptr %1621, align 4, !tbaa !57
  %1623 = load ptr, ptr %13, align 8, !tbaa !5
  %1624 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1623, i32 0, i32 56
  %1625 = load i32, ptr %1624, align 4, !tbaa !34
  %1626 = load ptr, ptr %13, align 8, !tbaa !5
  %1627 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1626, i32 0, i32 36
  %1628 = load i32, ptr %1627, align 4, !tbaa !30
  %1629 = load ptr, ptr %13, align 8, !tbaa !5
  %1630 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1629, i32 0, i32 37
  %1631 = load i32, ptr %1630, align 4, !tbaa !58
  %1632 = load ptr, ptr %13, align 8, !tbaa !5
  %1633 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1632, i32 0, i32 38
  %1634 = load i32, ptr %1633, align 4, !tbaa !59
  %1635 = load ptr, ptr %13, align 8, !tbaa !5
  %1636 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1635, i32 0, i32 39
  %1637 = load i32, ptr %1636, align 4, !tbaa !60
  %1638 = load ptr, ptr %13, align 8, !tbaa !5
  %1639 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1638, i32 0, i32 40
  %1640 = load i32, ptr %1639, align 4, !tbaa !31
  %1641 = load ptr, ptr %13, align 8, !tbaa !5
  %1642 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1641, i32 0, i32 41
  %1643 = load i32, ptr %1642, align 4, !tbaa !61
  %1644 = load ptr, ptr %13, align 8, !tbaa !5
  %1645 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1644, i32 0, i32 42
  %1646 = load i32, ptr %1645, align 4, !tbaa !62
  %1647 = load ptr, ptr %13, align 8, !tbaa !5
  %1648 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1647, i32 0, i32 43
  %1649 = load i32, ptr %1648, align 4, !tbaa !63
  %1650 = load ptr, ptr %13, align 8, !tbaa !5
  %1651 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1650, i32 0, i32 44
  %1652 = load i32, ptr %1651, align 4, !tbaa !32
  %1653 = load ptr, ptr %13, align 8, !tbaa !5
  %1654 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1653, i32 0, i32 45
  %1655 = load i32, ptr %1654, align 4, !tbaa !64
  %1656 = load ptr, ptr %13, align 8, !tbaa !5
  %1657 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1656, i32 0, i32 46
  %1658 = load i32, ptr %1657, align 4, !tbaa !65
  %1659 = load ptr, ptr %13, align 8, !tbaa !5
  %1660 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1659, i32 0, i32 47
  %1661 = load i32, ptr %1660, align 4, !tbaa !66
  %1662 = load ptr, ptr %13, align 8, !tbaa !5
  %1663 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1662, i32 0, i32 86
  %1664 = load i32, ptr %1663, align 4, !tbaa !23
  %1665 = load ptr, ptr %13, align 8, !tbaa !5
  %1666 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1665, i32 0, i32 87
  %1667 = load i32, ptr %1666, align 4, !tbaa !67
  %1668 = load i32, ptr %30, align 4, !tbaa !9
  %1669 = load i8, ptr %28, align 1, !tbaa !17
  call void @libxsmm_generator_gelu_ps_minimax3_aarch64_sve(ptr noundef %1591, 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 %1658, i32 noundef %1661, i32 noundef %1664, i32 noundef %1667, i32 noundef %1668, i8 noundef zeroext %1669)
  br label %1722

1670:                                             ; preds = %1587
  %1671 = load ptr, ptr %11, align 8, !tbaa !5
  %1672 = load i32, ptr %23, align 4, !tbaa !9
  %1673 = load ptr, ptr %13, align 8, !tbaa !5
  %1674 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1673, i32 0, i32 70
  %1675 = load i32, ptr %1674, align 4, !tbaa !48
  %1676 = load ptr, ptr %13, align 8, !tbaa !5
  %1677 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1676, i32 0, i32 71
  %1678 = load i32, ptr %1677, align 4, !tbaa !49
  %1679 = load ptr, ptr %13, align 8, !tbaa !5
  %1680 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1679, i32 0, i32 72
  %1681 = load i32, ptr %1680, align 4, !tbaa !50
  %1682 = load ptr, ptr %13, align 8, !tbaa !5
  %1683 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1682, i32 0, i32 73
  %1684 = load i32, ptr %1683, align 4, !tbaa !51
  %1685 = load ptr, ptr %13, align 8, !tbaa !5
  %1686 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1685, i32 0, i32 74
  %1687 = load i32, ptr %1686, align 4, !tbaa !52
  %1688 = load ptr, ptr %13, align 8, !tbaa !5
  %1689 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1688, i32 0, i32 75
  %1690 = load i32, ptr %1689, align 4, !tbaa !53
  %1691 = load ptr, ptr %13, align 8, !tbaa !5
  %1692 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1691, i32 0, i32 76
  %1693 = load i32, ptr %1692, align 4, !tbaa !54
  %1694 = load ptr, ptr %13, align 8, !tbaa !5
  %1695 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1694, i32 0, i32 77
  %1696 = load i32, ptr %1695, align 4, !tbaa !55
  %1697 = load ptr, ptr %13, align 8, !tbaa !5
  %1698 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1697, i32 0, i32 78
  %1699 = load i32, ptr %1698, align 4, !tbaa !56
  %1700 = load ptr, ptr %13, align 8, !tbaa !5
  %1701 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1700, i32 0, i32 79
  %1702 = load i32, ptr %1701, align 4, !tbaa !57
  %1703 = load ptr, ptr %13, align 8, !tbaa !5
  %1704 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1703, i32 0, i32 56
  %1705 = load i32, ptr %1704, align 4, !tbaa !34
  %1706 = load ptr, ptr %13, align 8, !tbaa !5
  %1707 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1706, i32 0, i32 36
  %1708 = load i32, ptr %1707, align 4, !tbaa !30
  %1709 = load ptr, ptr %13, align 8, !tbaa !5
  %1710 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1709, i32 0, i32 40
  %1711 = load i32, ptr %1710, align 4, !tbaa !31
  %1712 = load ptr, ptr %13, align 8, !tbaa !5
  %1713 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1712, i32 0, i32 44
  %1714 = load i32, ptr %1713, align 4, !tbaa !32
  %1715 = load ptr, ptr %13, align 8, !tbaa !5
  %1716 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1715, i32 0, i32 86
  %1717 = load i32, ptr %1716, align 4, !tbaa !23
  %1718 = load ptr, ptr %13, align 8, !tbaa !5
  %1719 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1718, i32 0, i32 87
  %1720 = load i32, ptr %1719, align 4, !tbaa !67
  %1721 = load i32, ptr %31, align 4, !tbaa !9
  call void @libxsmm_generator_gelu_ps_minimax3_aarch64_asimd(ptr noundef %1671, i32 noundef %1672, i32 noundef %1675, i32 noundef %1678, i32 noundef %1681, i32 noundef %1684, i32 noundef %1687, 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 %1721)
  br label %1722

1722:                                             ; preds = %1670, %1590
  br label %1866

1723:                                             ; preds = %1581
  %1724 = load ptr, ptr %14, align 8, !tbaa !5
  %1725 = getelementptr inbounds %struct.libxsmm_meltw_descriptor, ptr %1724, i32 0, i32 10
  %1726 = load i16, ptr %1725, align 1, !tbaa !18
  %1727 = zext i16 %1726 to i32
  %1728 = icmp eq i32 %1727, 12
  br i1 %1728, label %1729, label %1865

1729:                                             ; preds = %1723
  %1730 = load i8, ptr %27, align 1, !tbaa !17
  %1731 = icmp ne i8 %1730, 0
  br i1 %1731, label %1732, label %1812

1732:                                             ; preds = %1729
  %1733 = load ptr, ptr %11, align 8, !tbaa !5
  %1734 = load i32, ptr %23, align 4, !tbaa !9
  %1735 = load ptr, ptr %13, align 8, !tbaa !5
  %1736 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1735, i32 0, i32 70
  %1737 = load i32, ptr %1736, align 4, !tbaa !48
  %1738 = load ptr, ptr %13, align 8, !tbaa !5
  %1739 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1738, i32 0, i32 71
  %1740 = load i32, ptr %1739, align 4, !tbaa !49
  %1741 = load ptr, ptr %13, align 8, !tbaa !5
  %1742 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1741, i32 0, i32 72
  %1743 = load i32, ptr %1742, align 4, !tbaa !50
  %1744 = load ptr, ptr %13, align 8, !tbaa !5
  %1745 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1744, i32 0, i32 73
  %1746 = load i32, ptr %1745, align 4, !tbaa !51
  %1747 = load ptr, ptr %13, align 8, !tbaa !5
  %1748 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1747, i32 0, i32 74
  %1749 = load i32, ptr %1748, align 4, !tbaa !52
  %1750 = load ptr, ptr %13, align 8, !tbaa !5
  %1751 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1750, i32 0, i32 75
  %1752 = load i32, ptr %1751, align 4, !tbaa !53
  %1753 = load ptr, ptr %13, align 8, !tbaa !5
  %1754 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1753, i32 0, i32 76
  %1755 = load i32, ptr %1754, align 4, !tbaa !54
  %1756 = load ptr, ptr %13, align 8, !tbaa !5
  %1757 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1756, i32 0, i32 77
  %1758 = load i32, ptr %1757, align 4, !tbaa !55
  %1759 = load ptr, ptr %13, align 8, !tbaa !5
  %1760 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1759, i32 0, i32 78
  %1761 = load i32, ptr %1760, align 4, !tbaa !56
  %1762 = load ptr, ptr %13, align 8, !tbaa !5
  %1763 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1762, i32 0, i32 79
  %1764 = load i32, ptr %1763, align 4, !tbaa !57
  %1765 = load ptr, ptr %13, align 8, !tbaa !5
  %1766 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1765, i32 0, i32 56
  %1767 = load i32, ptr %1766, align 4, !tbaa !34
  %1768 = load ptr, ptr %13, align 8, !tbaa !5
  %1769 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1768, i32 0, i32 36
  %1770 = load i32, ptr %1769, align 4, !tbaa !30
  %1771 = load ptr, ptr %13, align 8, !tbaa !5
  %1772 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1771, i32 0, i32 37
  %1773 = load i32, ptr %1772, align 4, !tbaa !58
  %1774 = load ptr, ptr %13, align 8, !tbaa !5
  %1775 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1774, i32 0, i32 38
  %1776 = load i32, ptr %1775, align 4, !tbaa !59
  %1777 = load ptr, ptr %13, align 8, !tbaa !5
  %1778 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1777, i32 0, i32 39
  %1779 = load i32, ptr %1778, align 4, !tbaa !60
  %1780 = load ptr, ptr %13, align 8, !tbaa !5
  %1781 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1780, i32 0, i32 40
  %1782 = load i32, ptr %1781, align 4, !tbaa !31
  %1783 = load ptr, ptr %13, align 8, !tbaa !5
  %1784 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1783, i32 0, i32 41
  %1785 = load i32, ptr %1784, align 4, !tbaa !61
  %1786 = load ptr, ptr %13, align 8, !tbaa !5
  %1787 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1786, i32 0, i32 42
  %1788 = load i32, ptr %1787, align 4, !tbaa !62
  %1789 = load ptr, ptr %13, align 8, !tbaa !5
  %1790 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1789, i32 0, i32 43
  %1791 = load i32, ptr %1790, align 4, !tbaa !63
  %1792 = load ptr, ptr %13, align 8, !tbaa !5
  %1793 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1792, i32 0, i32 44
  %1794 = load i32, ptr %1793, align 4, !tbaa !32
  %1795 = load ptr, ptr %13, align 8, !tbaa !5
  %1796 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1795, i32 0, i32 45
  %1797 = load i32, ptr %1796, align 4, !tbaa !64
  %1798 = load ptr, ptr %13, align 8, !tbaa !5
  %1799 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1798, i32 0, i32 46
  %1800 = load i32, ptr %1799, align 4, !tbaa !65
  %1801 = load ptr, ptr %13, align 8, !tbaa !5
  %1802 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1801, i32 0, i32 47
  %1803 = load i32, ptr %1802, align 4, !tbaa !66
  %1804 = load ptr, ptr %13, align 8, !tbaa !5
  %1805 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1804, i32 0, i32 86
  %1806 = load i32, ptr %1805, align 4, !tbaa !23
  %1807 = load ptr, ptr %13, align 8, !tbaa !5
  %1808 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1807, i32 0, i32 87
  %1809 = load i32, ptr %1808, align 4, !tbaa !67
  %1810 = load i32, ptr %30, align 4, !tbaa !9
  %1811 = load i8, ptr %28, align 1, !tbaa !17
  call void @libxsmm_generator_gelu_inv_ps_minimax3_aarch64_sve(ptr noundef %1733, i32 noundef %1734, i32 noundef %1737, i32 noundef %1740, i32 noundef %1743, i32 noundef %1746, i32 noundef %1749, i32 noundef %1752, i32 noundef %1755, i32 noundef %1758, i32 noundef %1761, i32 noundef %1764, i32 noundef %1767, i32 noundef %1770, i32 noundef %1773, i32 noundef %1776, i32 noundef %1779, i32 noundef %1782, i32 noundef %1785, i32 noundef %1788, i32 noundef %1791, i32 noundef %1794, i32 noundef %1797, i32 noundef %1800, i32 noundef %1803, i32 noundef %1806, i32 noundef %1809, i32 noundef %1810, i8 noundef zeroext %1811)
  br label %1864

1812:                                             ; preds = %1729
  %1813 = load ptr, ptr %11, align 8, !tbaa !5
  %1814 = load i32, ptr %23, align 4, !tbaa !9
  %1815 = load ptr, ptr %13, align 8, !tbaa !5
  %1816 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1815, i32 0, i32 70
  %1817 = load i32, ptr %1816, align 4, !tbaa !48
  %1818 = load ptr, ptr %13, align 8, !tbaa !5
  %1819 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1818, i32 0, i32 71
  %1820 = load i32, ptr %1819, align 4, !tbaa !49
  %1821 = load ptr, ptr %13, align 8, !tbaa !5
  %1822 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1821, i32 0, i32 72
  %1823 = load i32, ptr %1822, align 4, !tbaa !50
  %1824 = load ptr, ptr %13, align 8, !tbaa !5
  %1825 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1824, i32 0, i32 73
  %1826 = load i32, ptr %1825, align 4, !tbaa !51
  %1827 = load ptr, ptr %13, align 8, !tbaa !5
  %1828 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1827, i32 0, i32 74
  %1829 = load i32, ptr %1828, align 4, !tbaa !52
  %1830 = load ptr, ptr %13, align 8, !tbaa !5
  %1831 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1830, i32 0, i32 75
  %1832 = load i32, ptr %1831, align 4, !tbaa !53
  %1833 = load ptr, ptr %13, align 8, !tbaa !5
  %1834 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1833, i32 0, i32 76
  %1835 = load i32, ptr %1834, align 4, !tbaa !54
  %1836 = load ptr, ptr %13, align 8, !tbaa !5
  %1837 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1836, i32 0, i32 77
  %1838 = load i32, ptr %1837, align 4, !tbaa !55
  %1839 = load ptr, ptr %13, align 8, !tbaa !5
  %1840 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1839, i32 0, i32 78
  %1841 = load i32, ptr %1840, align 4, !tbaa !56
  %1842 = load ptr, ptr %13, align 8, !tbaa !5
  %1843 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1842, i32 0, i32 79
  %1844 = load i32, ptr %1843, align 4, !tbaa !57
  %1845 = load ptr, ptr %13, align 8, !tbaa !5
  %1846 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1845, i32 0, i32 56
  %1847 = load i32, ptr %1846, align 4, !tbaa !34
  %1848 = load ptr, ptr %13, align 8, !tbaa !5
  %1849 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1848, i32 0, i32 36
  %1850 = load i32, ptr %1849, align 4, !tbaa !30
  %1851 = load ptr, ptr %13, align 8, !tbaa !5
  %1852 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1851, i32 0, i32 40
  %1853 = load i32, ptr %1852, align 4, !tbaa !31
  %1854 = load ptr, ptr %13, align 8, !tbaa !5
  %1855 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1854, i32 0, i32 44
  %1856 = load i32, ptr %1855, align 4, !tbaa !32
  %1857 = load ptr, ptr %13, align 8, !tbaa !5
  %1858 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1857, i32 0, i32 86
  %1859 = load i32, ptr %1858, align 4, !tbaa !23
  %1860 = load ptr, ptr %13, align 8, !tbaa !5
  %1861 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1860, i32 0, i32 87
  %1862 = load i32, ptr %1861, align 4, !tbaa !67
  %1863 = load i32, ptr %31, align 4, !tbaa !9
  call void @libxsmm_generator_gelu_inv_ps_minimax3_aarch64_asimd(ptr noundef %1813, i32 noundef %1814, i32 noundef %1817, i32 noundef %1820, i32 noundef %1823, i32 noundef %1826, i32 noundef %1829, i32 noundef %1832, i32 noundef %1835, i32 noundef %1838, i32 noundef %1841, i32 noundef %1844, i32 noundef %1847, i32 noundef %1850, i32 noundef %1853, i32 noundef %1856, i32 noundef %1859, i32 noundef %1862, i32 noundef %1863)
  br label %1864

1864:                                             ; preds = %1812, %1732
  br label %1865

1865:                                             ; preds = %1864, %1723
  br label %1866

1866:                                             ; preds = %1865, %1722
  br label %1867

1867:                                             ; preds = %1866, %1580
  br label %1868

1868:                                             ; preds = %1867, %1399
  br label %1869

1869:                                             ; preds = %1868, %1206
  br label %1870

1870:                                             ; preds = %1869, %1121
  br label %1871

1871:                                             ; preds = %1870, %781
  br label %1872

1872:                                             ; preds = %1871, %506
  br label %1873

1873:                                             ; preds = %1872, %395
  br label %1874

1874:                                             ; preds = %1873, %367
  br label %1875

1875:                                             ; preds = %1874, %344
  br label %1876

1876:                                             ; preds = %1875, %313, %303
  %1877 = load i32, ptr %21, align 4, !tbaa !9
  %1878 = add i32 %1877, 1
  store i32 %1878, ptr %21, align 4, !tbaa !9
  br label %293, !llvm.loop !68

1879:                                             ; preds = %293
  br label %1880

1880:                                             ; preds = %1879, %291
  %1881 = load i32, ptr %22, align 4, !tbaa !9
  %1882 = add i32 %1881, 1
  store i32 %1882, ptr %22, align 4, !tbaa !9
  br label %281, !llvm.loop !69

1883:                                             ; preds = %281
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %29) #4
  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
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #4
  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
  ret void
}

declare i32 @libxsmm_get_ulp_precision() #1

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

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

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

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

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

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

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

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

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

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

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { 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 #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, !7, i64 31}
!12 = !{!"libxsmm_meltw_descriptor", !10, i64 0, !10, i64 4, !10, i64 8, !10, i64 12, !10, i64 16, !10, i64 20, !7, i64 24, !7, i64 25, !7, i64 26, !13, i64 27, !13, i64 29, !7, i64 31}
!13 = !{!"short", !7, i64 0}
!14 = !{!12, !13, i64 27}
!15 = !{!16, !10, i64 28}
!16 = !{!"libxsmm_generated_code", !6, i64 0, !10, i64 8, !10, i64 12, !10, i64 16, !10, i64 20, !10, i64 24, !10, i64 28}
!17 = !{!7, !7, i64 0}
!18 = !{!12, !13, i64 29}
!19 = !{!20, !10, i64 8}
!20 = !{!"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}
!21 = !{!20, !10, i64 216}
!22 = !{!20, !10, i64 116}
!23 = !{!20, !10, i64 344}
!24 = !{!20, !10, i64 120}
!25 = distinct !{!25, !26}
!26 = !{!"llvm.loop.mustprogress"}
!27 = distinct !{!27, !26}
!28 = !{!20, !10, i64 256}
!29 = !{!20, !10, i64 260}
!30 = !{!20, !10, i64 144}
!31 = !{!20, !10, i64 160}
!32 = !{!20, !10, i64 176}
!33 = !{!20, !10, i64 204}
!34 = !{!20, !10, i64 224}
!35 = !{!20, !10, i64 240}
!36 = !{!20, !10, i64 264}
!37 = !{!20, !10, i64 208}
!38 = !{!20, !10, i64 212}
!39 = !{!20, !10, i64 132}
!40 = !{!20, !10, i64 136}
!41 = !{!20, !10, i64 140}
!42 = !{!20, !10, i64 228}
!43 = !{!20, !10, i64 232}
!44 = !{!20, !10, i64 192}
!45 = !{!20, !10, i64 196}
!46 = !{!20, !10, i64 200}
!47 = !{!20, !10, i64 220}
!48 = !{!20, !10, i64 280}
!49 = !{!20, !10, i64 284}
!50 = !{!20, !10, i64 288}
!51 = !{!20, !10, i64 292}
!52 = !{!20, !10, i64 296}
!53 = !{!20, !10, i64 300}
!54 = !{!20, !10, i64 304}
!55 = !{!20, !10, i64 308}
!56 = !{!20, !10, i64 312}
!57 = !{!20, !10, i64 316}
!58 = !{!20, !10, i64 148}
!59 = !{!20, !10, i64 152}
!60 = !{!20, !10, i64 156}
!61 = !{!20, !10, i64 164}
!62 = !{!20, !10, i64 168}
!63 = !{!20, !10, i64 172}
!64 = !{!20, !10, i64 180}
!65 = !{!20, !10, i64 184}
!66 = !{!20, !10, i64 188}
!67 = !{!20, !10, i64 348}
!68 = distinct !{!68, !26}
!69 = distinct !{!69, !26}


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

@.str = external hidden unnamed_addr constant [97 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [27 x i8], align 1
@__PRETTY_FUNCTION__.libxsmm_compute_unary_aarch64_2d_reg_block_op = external hidden unnamed_addr constant [274 x i8], align 1

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

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

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

declare void @libxsmm_generator_set_p_register_aarch64_sve(ptr noundef, i32 noundef, i32 noundef, i32 noundef) 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_compute_unary_aarch64_2d_reg_block_op(ptr noundef %0, ptr nocapture noundef readnone %1, ptr noundef readonly %2, ptr noundef %3, i32 noundef %4, i32 noundef %5, i32 noundef %6, i32 noundef %7, i32 noundef %8, i32 noundef %9) local_unnamed_addr #2 {
  %11 = getelementptr inbounds i8, ptr %3, i64 31
  %12 = load i8, ptr %11, align 1, !tbaa !5
  %13 = icmp eq i8 %12, 1
  br i1 %13, label %14, label %switch.edge

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

switch.edge:                                      ; preds = %10, %14
  %.fr = phi i1 [ %20, %14 ], [ false, %10 ]
  %23 = phi i1 [ %18, %14 ], [ false, %10 ]
  %24 = phi i1 [ %22, %14 ], [ false, %10 ]
  %25 = getelementptr inbounds i8, ptr %0, i64 28
  %26 = load i32, ptr %25, align 4, !tbaa !12
  %27 = add i32 %26, -2201
  %spec.select = icmp ult i32 %27, 799
  %28 = trunc i32 %9 to i8
  %29 = and i32 %9, 255
  %30 = getelementptr inbounds i8, ptr %3, i64 29
  %31 = load i16, ptr %30, align 1, !tbaa !15
  %32 = icmp ugt i16 %31, 16
  %switch.cast = zext nneg i16 %31 to i17
  %switch.downshift = lshr i17 32759, %switch.cast
  %switch.masked = trunc i17 %switch.downshift to i1
  %33 = select i1 %32, i1 true, i1 %switch.masked
  %34 = tail call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %3, i32 noundef 4) #3
  %35 = icmp eq i32 %34, 0
  br i1 %35, label %76, label %36

36:                                               ; preds = %switch.edge
  %37 = tail call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %3, i32 noundef 4) #3
  %38 = icmp eq i32 %37, 1
  br i1 %38, label %76, label %39

39:                                               ; preds = %36
  %40 = tail call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %3, i32 noundef 4) #3
  %41 = icmp eq i32 %40, 2
  br i1 %41, label %76, label %42

42:                                               ; preds = %39
  %43 = tail call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %3, i32 noundef 4) #3
  %44 = icmp eq i32 %43, 3
  br i1 %44, label %76, label %45

45:                                               ; preds = %42
  %46 = tail call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %3, i32 noundef 4) #3
  %47 = icmp eq i32 %46, 4
  br i1 %47, label %76, label %48

48:                                               ; preds = %45
  %49 = tail call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %3, i32 noundef 4) #3
  %50 = icmp eq i32 %49, 5
  br i1 %50, label %76, label %51

51:                                               ; preds = %48
  %52 = tail call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %3, i32 noundef 4) #3
  %53 = icmp eq i32 %52, 6
  br i1 %53, label %76, label %54

54:                                               ; preds = %51
  %55 = tail call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %3, i32 noundef 4) #3
  %56 = icmp eq i32 %55, 7
  br i1 %56, label %76, label %57

57:                                               ; preds = %54
  %58 = tail call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %3, i32 noundef 4) #3
  %59 = icmp eq i32 %58, 8
  br i1 %59, label %76, label %60

60:                                               ; preds = %57
  %61 = tail call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %3, i32 noundef 4) #3
  %62 = icmp eq i32 %61, 9
  br i1 %62, label %76, label %63

63:                                               ; preds = %60
  %64 = tail call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %3, i32 noundef 4) #3
  %65 = icmp eq i32 %64, 10
  br i1 %65, label %76, label %66

66:                                               ; preds = %63
  %67 = tail call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %3, i32 noundef 4) #3
  %68 = icmp eq i32 %67, 11
  br i1 %68, label %76, label %69

69:                                               ; preds = %66
  %70 = tail call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %3, i32 noundef 4) #3
  %71 = icmp eq i32 %70, 12
  br i1 %71, label %76, label %72

72:                                               ; preds = %69
  %73 = tail call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %3, i32 noundef 4) #3
  %74 = icmp eq i32 %73, 13
  br i1 %74, label %76, label %75

75:                                               ; preds = %72
  tail call void @__assert_fail(ptr noundef nonnull @.str.3, ptr noundef nonnull @.str, i32 noundef 968, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_compute_unary_aarch64_2d_reg_block_op) #4
  unreachable

76:                                               ; preds = %36, %42, %48, %54, %60, %66, %72, %69, %63, %57, %51, %45, %39, %switch.edge
  %77 = phi i8 [ 8, %switch.edge ], [ 4, %36 ], [ 2, %39 ], [ 2, %42 ], [ 1, %45 ], [ 1, %48 ], [ 8, %51 ], [ 8, %54 ], [ 4, %57 ], [ 4, %60 ], [ 2, %63 ], [ 2, %66 ], [ 1, %69 ], [ 1, %72 ]
  %78 = tail call i32 @libxsmm_generator_aarch64_get_sve_type(i8 noundef zeroext %77) #3
  %79 = getelementptr inbounds i8, ptr %2, i64 8
  %80 = load i32, ptr %79, align 4, !tbaa !16
  %81 = icmp eq i32 %80, 4
  %82 = select i1 %81, i32 5, i32 7
  %or.cond = and i1 %spec.select, %33
  br i1 %or.cond, label %83, label %84

83:                                               ; preds = %76
  tail call void @libxsmm_generator_set_p_register_aarch64_sve(ptr noundef nonnull %0, i32 noundef %29, i32 noundef -1, i32 noundef 0) #3
  br label %84

84:                                               ; preds = %83, %76
  %.not = icmp eq i32 %7, 0
  br i1 %.not, label %._crit_edge, label %.lr.ph635

.lr.ph635:                                        ; preds = %84
  %.not639 = icmp eq i32 %6, 0
  %85 = getelementptr inbounds i8, ptr %2, i64 280
  %86 = getelementptr inbounds i8, ptr %2, i64 284
  %87 = getelementptr inbounds i8, ptr %2, i64 288
  %88 = getelementptr inbounds i8, ptr %2, i64 292
  %89 = getelementptr inbounds i8, ptr %2, i64 296
  %90 = getelementptr inbounds i8, ptr %2, i64 300
  %91 = getelementptr inbounds i8, ptr %2, i64 304
  %92 = getelementptr inbounds i8, ptr %2, i64 308
  %93 = getelementptr inbounds i8, ptr %2, i64 312
  %94 = getelementptr inbounds i8, ptr %2, i64 316
  %95 = getelementptr inbounds i8, ptr %2, i64 224
  %96 = getelementptr inbounds i8, ptr %2, i64 144
  %97 = getelementptr inbounds i8, ptr %2, i64 160
  %98 = getelementptr inbounds i8, ptr %2, i64 176
  %99 = getelementptr inbounds i8, ptr %2, i64 344
  %100 = getelementptr inbounds i8, ptr %2, i64 348
  %101 = getelementptr inbounds i8, ptr %2, i64 148
  %102 = getelementptr inbounds i8, ptr %2, i64 152
  %103 = getelementptr inbounds i8, ptr %2, i64 156
  %104 = getelementptr inbounds i8, ptr %2, i64 164
  %105 = getelementptr inbounds i8, ptr %2, i64 168
  %106 = getelementptr inbounds i8, ptr %2, i64 172
  %107 = getelementptr inbounds i8, ptr %2, i64 180
  %108 = getelementptr inbounds i8, ptr %2, i64 184
  %109 = getelementptr inbounds i8, ptr %2, i64 188
  %110 = getelementptr inbounds i8, ptr %2, i64 132
  %111 = getelementptr inbounds i8, ptr %2, i64 136
  %112 = getelementptr inbounds i8, ptr %2, i64 140
  %113 = getelementptr inbounds i8, ptr %2, i64 228
  %114 = getelementptr inbounds i8, ptr %2, i64 232
  %115 = getelementptr inbounds i8, ptr %2, i64 204
  %116 = getelementptr inbounds i8, ptr %2, i64 192
  %117 = getelementptr inbounds i8, ptr %2, i64 196
  %118 = getelementptr inbounds i8, ptr %2, i64 200
  %119 = getelementptr inbounds i8, ptr %2, i64 208
  %120 = getelementptr inbounds i8, ptr %2, i64 212
  %121 = getelementptr inbounds i8, ptr %2, i64 216
  %122 = getelementptr inbounds i8, ptr %2, i64 220
  %123 = getelementptr inbounds i8, ptr %2, i64 256
  %124 = getelementptr inbounds i8, ptr %2, i64 260
  %125 = getelementptr inbounds i8, ptr %2, i64 240
  %126 = getelementptr inbounds i8, ptr %2, i64 264
  %127 = getelementptr inbounds i8, ptr %2, i64 116
  %128 = getelementptr inbounds i8, ptr %2, i64 120
  %notmask = shl nsw i32 -1, %78
  %129 = and i32 %notmask, 255
  br i1 %.not639, label %._crit_edge, label %.lr.ph635.split.us.preheader

.lr.ph635.split.us.preheader:                     ; preds = %.lr.ph635
  %.not621.us648 = icmp eq i32 %129, 255
  %130 = sub nsw i32 254, %129
  br label %.lr.ph635.split.us

.lr.ph635.split.us:                               ; preds = %.lr.ph635.split.us.preheader, %..loopexit629_crit_edge.us
  %.0601633.us = phi i32 [ %326, %..loopexit629_crit_edge.us ], [ 0, %.lr.ph635.split.us.preheader ]
  %131 = icmp ne i32 %.0601633.us, 0
  %or.cond4.us = and i1 %.fr, %131
  br i1 %or.cond4.us, label %..loopexit629_crit_edge.us, label %.preheader.us

132:                                              ; preds = %.preheader.us, %.loopexit.us
  %.0631.us = phi i32 [ 0, %.preheader.us ], [ %325, %.loopexit.us ]
  %133 = icmp ne i32 %.0631.us, 0
  %or.cond6.us = and i1 %23, %133
  br i1 %or.cond6.us, label %.loopexit.us, label %134

134:                                              ; preds = %132
  %135 = or i32 %.0631.us, %.0601633.us
  %or.cond8.not.us = icmp ne i32 %135, 0
  %or.cond623.not.us = and i1 %24, %or.cond8.not.us
  br i1 %or.cond623.not.us, label %.loopexit.us, label %136

136:                                              ; preds = %134
  %137 = add i32 %328, %.0631.us
  %138 = load i16, ptr %30, align 1, !tbaa !15
  switch i16 %138, label %.loopexit.us [
    i16 3, label %322
    i16 13, label %319
    i16 14, label %315
    i16 15, label %304
    i16 16, label %290
    i16 4, label %280
    i16 17, label %266
    i16 7, label %234
    i16 8, label %234
    i16 9, label %203
    i16 10, label %203
    i16 11, label %171
    i16 12, label %139
  ]

139:                                              ; preds = %136
  %140 = load i32, ptr %85, align 4, !tbaa !18
  %141 = load i32, ptr %86, align 4, !tbaa !19
  %142 = load i32, ptr %87, align 4, !tbaa !20
  %143 = load i32, ptr %88, align 4, !tbaa !21
  %144 = load i32, ptr %89, align 4, !tbaa !22
  %145 = load i32, ptr %90, align 4, !tbaa !23
  %146 = load i32, ptr %91, align 4, !tbaa !24
  %147 = load i32, ptr %92, align 4, !tbaa !25
  %148 = load i32, ptr %93, align 4, !tbaa !26
  %149 = load i32, ptr %94, align 4, !tbaa !27
  %150 = load i32, ptr %95, align 4, !tbaa !28
  %151 = load i32, ptr %96, align 4, !tbaa !29
  br i1 %spec.select, label %157, label %152

152:                                              ; preds = %139
  %153 = load i32, ptr %97, align 4, !tbaa !30
  %154 = load i32, ptr %98, align 4, !tbaa !31
  %155 = load i32, ptr %99, align 4, !tbaa !32
  %156 = load i32, ptr %100, align 4, !tbaa !33
  tail call void @libxsmm_generator_gelu_inv_ps_minimax3_aarch64_asimd(ptr noundef %0, i32 noundef %137, 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 %150, i32 noundef %151, i32 noundef %153, i32 noundef %154, i32 noundef %155, i32 noundef %156, i32 noundef %82) #3
  br label %.loopexit.us

157:                                              ; preds = %139
  %158 = load i32, ptr %101, align 4, !tbaa !34
  %159 = load i32, ptr %102, align 4, !tbaa !35
  %160 = load i32, ptr %103, align 4, !tbaa !36
  %161 = load i32, ptr %97, align 4, !tbaa !30
  %162 = load i32, ptr %104, align 4, !tbaa !37
  %163 = load i32, ptr %105, align 4, !tbaa !38
  %164 = load i32, ptr %106, align 4, !tbaa !39
  %165 = load i32, ptr %98, align 4, !tbaa !31
  %166 = load i32, ptr %107, align 4, !tbaa !40
  %167 = load i32, ptr %108, align 4, !tbaa !41
  %168 = load i32, ptr %109, align 4, !tbaa !42
  %169 = load i32, ptr %99, align 4, !tbaa !32
  %170 = load i32, ptr %100, align 4, !tbaa !33
  tail call void @libxsmm_generator_gelu_inv_ps_minimax3_aarch64_sve(ptr noundef %0, i32 noundef %137, 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 %150, i32 noundef %151, 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 %169, i32 noundef %170, i32 noundef %78, i8 noundef zeroext %28) #3
  br label %.loopexit.us

171:                                              ; preds = %136
  %172 = load i32, ptr %85, align 4, !tbaa !18
  %173 = load i32, ptr %86, align 4, !tbaa !19
  %174 = load i32, ptr %87, align 4, !tbaa !20
  %175 = load i32, ptr %88, align 4, !tbaa !21
  %176 = load i32, ptr %89, align 4, !tbaa !22
  %177 = load i32, ptr %90, align 4, !tbaa !23
  %178 = load i32, ptr %91, align 4, !tbaa !24
  %179 = load i32, ptr %92, align 4, !tbaa !25
  %180 = load i32, ptr %93, align 4, !tbaa !26
  %181 = load i32, ptr %94, align 4, !tbaa !27
  %182 = load i32, ptr %95, align 4, !tbaa !28
  %183 = load i32, ptr %96, align 4, !tbaa !29
  br i1 %spec.select, label %189, label %184

184:                                              ; preds = %171
  %185 = load i32, ptr %97, align 4, !tbaa !30
  %186 = load i32, ptr %98, align 4, !tbaa !31
  %187 = load i32, ptr %99, align 4, !tbaa !32
  %188 = load i32, ptr %100, align 4, !tbaa !33
  tail call void @libxsmm_generator_gelu_ps_minimax3_aarch64_asimd(ptr noundef %0, i32 noundef %137, 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 %182, i32 noundef %183, i32 noundef %185, i32 noundef %186, i32 noundef %187, i32 noundef %188, i32 noundef %82) #3
  br label %.loopexit.us

189:                                              ; preds = %171
  %190 = load i32, ptr %101, align 4, !tbaa !34
  %191 = load i32, ptr %102, align 4, !tbaa !35
  %192 = load i32, ptr %103, align 4, !tbaa !36
  %193 = load i32, ptr %97, align 4, !tbaa !30
  %194 = load i32, ptr %104, align 4, !tbaa !37
  %195 = load i32, ptr %105, align 4, !tbaa !38
  %196 = load i32, ptr %106, align 4, !tbaa !39
  %197 = load i32, ptr %98, align 4, !tbaa !31
  %198 = load i32, ptr %107, align 4, !tbaa !40
  %199 = load i32, ptr %108, align 4, !tbaa !41
  %200 = load i32, ptr %109, align 4, !tbaa !42
  %201 = load i32, ptr %99, align 4, !tbaa !32
  %202 = load i32, ptr %100, align 4, !tbaa !33
  tail call void @libxsmm_generator_gelu_ps_minimax3_aarch64_sve(ptr noundef %0, i32 noundef %137, 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 %182, i32 noundef %183, 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 %201, i32 noundef %202, i32 noundef %78, i8 noundef zeroext %28) #3
  br label %.loopexit.us

203:                                              ; preds = %136, %136
  %204 = load i32, ptr %110, align 4, !tbaa !43
  %205 = load i32, ptr %111, align 4, !tbaa !44
  %206 = load i32, ptr %112, align 4, !tbaa !45
  %207 = load i32, ptr %113, align 4, !tbaa !46
  %208 = load i32, ptr %114, align 4, !tbaa !47
  %209 = load i32, ptr %96, align 4, !tbaa !29
  %210 = load i32, ptr %97, align 4, !tbaa !30
  %211 = load i32, ptr %98, align 4, !tbaa !31
  %212 = load i32, ptr %115, align 4, !tbaa !48
  %213 = load i32, ptr %116, align 4, !tbaa !49
  %214 = load i32, ptr %117, align 4, !tbaa !50
  %215 = load i32, ptr %118, align 4, !tbaa !51
  %216 = load i32, ptr %119, align 4, !tbaa !52
  %217 = load i32, ptr %120, align 4, !tbaa !53
  %218 = load i32, ptr %121, align 4, !tbaa !54
  %219 = load i32, ptr %122, align 4, !tbaa !55
  %220 = load i32, ptr %95, align 4, !tbaa !28
  %221 = load i32, ptr %99, align 4, !tbaa !32
  br i1 %spec.select, label %227, label %.thread627.us

.thread627.us:                                    ; preds = %203
  tail call void @libxsmm_generator_sigmoid_ps_rational_78_aarch64_asimd(ptr noundef %0, i32 noundef %137, 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 %220, i32 noundef %221, i32 noundef %82) #3
  %222 = load i16, ptr %30, align 1, !tbaa !15
  %223 = icmp eq i16 %222, 10
  br i1 %223, label %.thread628.us, label %.loopexit.us

.thread628.us:                                    ; preds = %.thread627.us
  %224 = load i32, ptr %121, align 4, !tbaa !54
  %225 = load i32, ptr %110, align 4, !tbaa !43
  tail call void @libxsmm_aarch64_instruction_asimd_compute(ptr noundef %0, i32 noundef 245421067, i32 noundef %224, i32 noundef %137, i8 noundef zeroext 0, i32 noundef %225, i32 noundef %82) #3
  %226 = load i32, ptr %110, align 4, !tbaa !43
  tail call void @libxsmm_aarch64_instruction_asimd_compute(ptr noundef %0, i32 noundef 773905419, i32 noundef %226, i32 noundef %137, i8 noundef zeroext 0, i32 noundef %137, i32 noundef %82) #3
  br label %.loopexit.us

227:                                              ; preds = %203
  tail call void @libxsmm_generator_sigmoid_ps_rational_78_aarch64_sve(ptr noundef %0, i32 noundef %137, 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 %220, i32 noundef %221, i32 noundef %78, i8 noundef zeroext %28) #3
  %228 = load i16, ptr %30, align 1, !tbaa !15
  %229 = icmp eq i16 %228, 10
  br i1 %229, label %230, label %.loopexit.us

230:                                              ; preds = %227
  %231 = load i32, ptr %121, align 4, !tbaa !54
  %232 = load i32, ptr %110, align 4, !tbaa !43
  tail call void @libxsmm_aarch64_instruction_sve_compute(ptr noundef %0, i32 noundef 1694499843, i32 noundef %231, i32 noundef %137, i8 noundef zeroext 0, i32 noundef %232, i32 noundef %29, i32 noundef %78) #3
  %233 = load i32, ptr %110, align 4, !tbaa !43
  tail call void @libxsmm_aarch64_instruction_sve_compute(ptr noundef %0, i32 noundef 1694500867, i32 noundef %233, i32 noundef %137, i8 noundef zeroext 0, i32 noundef %137, i32 noundef %29, i32 noundef %78) #3
  br label %.loopexit.us

234:                                              ; preds = %136, %136
  %235 = load i32, ptr %110, align 4, !tbaa !43
  %236 = load i32, ptr %111, align 4, !tbaa !44
  %237 = load i32, ptr %112, align 4, !tbaa !45
  %238 = load i32, ptr %113, align 4, !tbaa !46
  %239 = load i32, ptr %114, align 4, !tbaa !47
  %240 = load i32, ptr %96, align 4, !tbaa !29
  %241 = load i32, ptr %97, align 4, !tbaa !30
  %242 = load i32, ptr %98, align 4, !tbaa !31
  %243 = load i32, ptr %115, align 4, !tbaa !48
  %244 = load i32, ptr %116, align 4, !tbaa !49
  %245 = load i32, ptr %117, align 4, !tbaa !50
  %246 = load i32, ptr %118, align 4, !tbaa !51
  %247 = load i32, ptr %119, align 4, !tbaa !52
  %248 = load i32, ptr %120, align 4, !tbaa !53
  %249 = load i32, ptr %121, align 4, !tbaa !54
  %250 = load i32, ptr %122, align 4, !tbaa !55
  %251 = load i32, ptr %99, align 4, !tbaa !32
  br i1 %spec.select, label %258, label %.thread625.us

.thread625.us:                                    ; preds = %234
  tail call void @libxsmm_generator_tanh_ps_rational_78_aarch64_asimd(ptr noundef %0, i32 noundef %137, 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 %246, i32 noundef %247, i32 noundef %248, i32 noundef %249, i32 noundef %250, i32 noundef %251, i32 noundef %82) #3
  %252 = load i16, ptr %30, align 1, !tbaa !15
  %253 = icmp eq i16 %252, 8
  br i1 %253, label %.thread626.us, label %.loopexit.us

.thread626.us:                                    ; preds = %.thread625.us
  %254 = load i32, ptr %99, align 4, !tbaa !32
  tail call void @libxsmm_aarch64_instruction_asimd_compute(ptr noundef %0, i32 noundef 773905419, i32 noundef %137, i32 noundef %137, i8 noundef zeroext 0, i32 noundef %254, i32 noundef %82) #3
  %255 = load i32, ptr %99, align 4, !tbaa !32
  tail call void @libxsmm_aarch64_instruction_asimd_compute(ptr noundef %0, i32 noundef 782301194, i32 noundef %255, i32 noundef 127, i8 noundef zeroext 0, i32 noundef %255, i32 noundef %82) #3
  %256 = load i32, ptr %99, align 4, !tbaa !32
  %257 = load i32, ptr %122, align 4, !tbaa !55
  tail call void @libxsmm_aarch64_instruction_asimd_compute(ptr noundef %0, i32 noundef 245421067, i32 noundef %256, i32 noundef %257, i8 noundef zeroext 0, i32 noundef %137, i32 noundef %82) #3
  br label %.loopexit.us

258:                                              ; preds = %234
  tail call void @libxsmm_generator_tanh_ps_rational_78_aarch64_sve(ptr noundef %0, i32 noundef %137, 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 %246, i32 noundef %247, i32 noundef %248, i32 noundef %249, i32 noundef %250, i32 noundef %251, i32 noundef %78, i8 noundef zeroext %28) #3
  %259 = load i16, ptr %30, align 1, !tbaa !15
  %260 = icmp eq i16 %259, 8
  br i1 %260, label %261, label %.loopexit.us

261:                                              ; preds = %258
  %262 = load i32, ptr %99, align 4, !tbaa !32
  tail call void @libxsmm_aarch64_instruction_sve_compute(ptr noundef %0, i32 noundef 1694500867, i32 noundef %137, i32 noundef %137, i8 noundef zeroext 0, i32 noundef %262, i32 noundef %29, i32 noundef %78) #3
  %263 = load i32, ptr %99, align 4, !tbaa !32
  tail call void @libxsmm_aarch64_instruction_sve_compute(ptr noundef %0, i32 noundef 69050498, i32 noundef %263, i32 noundef 127, i8 noundef zeroext 0, i32 noundef %263, i32 noundef %29, i32 noundef %78) #3
  %264 = load i32, ptr %99, align 4, !tbaa !32
  %265 = load i32, ptr %122, align 4, !tbaa !55
  tail call void @libxsmm_aarch64_instruction_sve_compute(ptr noundef %0, i32 noundef 1694499843, i32 noundef %264, i32 noundef %265, i8 noundef zeroext 0, i32 noundef %137, i32 noundef %29, i32 noundef %78) #3
  br label %.loopexit.us

266:                                              ; preds = %136
  %267 = load i32, ptr %123, align 4, !tbaa !56
  %268 = load i32, ptr %124, align 4, !tbaa !57
  %269 = load i32, ptr %96, align 4, !tbaa !29
  %270 = load i32, ptr %97, align 4, !tbaa !30
  %271 = load i32, ptr %98, align 4, !tbaa !31
  %272 = load i32, ptr %115, align 4, !tbaa !48
  %273 = load i32, ptr %95, align 4, !tbaa !28
  %274 = load i32, ptr %125, align 4, !tbaa !58
  %275 = load i32, ptr %126, align 4, !tbaa !59
  %276 = load i32, ptr %119, align 4, !tbaa !52
  %277 = load i32, ptr %120, align 4, !tbaa !53
  br i1 %spec.select, label %279, label %278

278:                                              ; preds = %266
  tail call void @libxsmm_generator_exp_ps_3dts_aarch64_asimd(ptr noundef %0, i32 noundef %137, i32 noundef %267, i32 noundef %268, i32 noundef %269, i32 noundef %270, i32 noundef %271, i32 noundef %272, i32 noundef %273, i32 noundef %274, i32 noundef %275, i32 noundef %276, i32 noundef %277, i32 noundef %82) #3
  br label %.loopexit.us

279:                                              ; preds = %266
  tail call void @libxsmm_generator_exp_ps_3dts_aarch64_sve(ptr noundef %0, i32 noundef %137, i32 noundef %267, i32 noundef %268, i32 noundef %269, i32 noundef %270, i32 noundef %271, i32 noundef %272, i32 noundef %273, i32 noundef %274, i32 noundef %275, i32 noundef %276, i32 noundef %277, i32 noundef %78, i8 noundef zeroext %28) #3
  br label %.loopexit.us

280:                                              ; preds = %136
  br i1 %spec.select, label %282, label %281

281:                                              ; preds = %280
  tail call void @libxsmm_aarch64_instruction_asimd_compute(ptr noundef %0, i32 noundef 782366730, i32 noundef %137, i32 noundef 127, i8 noundef zeroext 0, i32 noundef %137, i32 noundef %82) #3
  br label %.loopexit.us

282:                                              ; preds = %280
  %283 = tail call i32 @libxsmm_get_ulp_precision() #3
  %.not620.us = icmp eq i32 %283, 2
  br i1 %.not620.us, label %.critedge.us, label %284

284:                                              ; preds = %282
  tail call void @libxsmm_aarch64_instruction_sve_compute(ptr noundef %0, i32 noundef 1695391874, i32 noundef %137, i32 noundef %137, i8 noundef zeroext 0, i32 noundef %137, i32 noundef %29, i32 noundef %78) #3
  br label %.loopexit.us

.critedge.us:                                     ; preds = %282
  %285 = load i32, ptr %127, align 4, !tbaa !60
  %286 = and i32 %285, 255
  %287 = load i32, ptr %128, align 4, !tbaa !61
  %288 = and i32 %287, 255
  tail call void @libxsmm_aarch64_instruction_sve_compute(ptr noundef %0, i32 noundef 1695428610, i32 noundef %137, i32 noundef %137, i8 noundef zeroext 0, i32 noundef %286, i32 noundef %29, i32 noundef %78) #3
  tail call void @libxsmm_aarch64_instruction_sve_compute(ptr noundef %0, i32 noundef 1694504963, i32 noundef %137, i32 noundef %286, i8 noundef zeroext 0, i32 noundef %137, i32 noundef %29, i32 noundef %78) #3
  tail call void @libxsmm_aarch64_instruction_sve_compute(ptr noundef %0, i32 noundef 1694500867, i32 noundef %137, i32 noundef %286, i8 noundef zeroext 0, i32 noundef %137, i32 noundef %29, i32 noundef %78) #3
  tail call void @libxsmm_aarch64_instruction_sve_compute(ptr noundef %0, i32 noundef 1695494146, i32 noundef %137, i32 noundef %137, i8 noundef zeroext 0, i32 noundef %286, i32 noundef %29, i32 noundef %78) #3
  %289 = and i32 %137, 255
  tail call void @libxsmm_aarch64_instruction_sve_compute(ptr noundef %0, i32 noundef 1694500867, i32 noundef %286, i32 noundef %286, i8 noundef zeroext 0, i32 noundef %288, i32 noundef %29, i32 noundef %78) #3
  tail call void @libxsmm_aarch64_instruction_sve_compute(ptr noundef %0, i32 noundef 1694505987, i32 noundef %137, i32 noundef %288, i8 noundef zeroext 0, i32 noundef %288, i32 noundef %29, i32 noundef %78) #3
  tail call void @libxsmm_aarch64_instruction_sve_compute(ptr noundef %0, i32 noundef 1694500867, i32 noundef %286, i32 noundef %288, i8 noundef zeroext 0, i32 noundef %289, i32 noundef %29, i32 noundef %78) #3
  br label %.loopexit.us

290:                                              ; preds = %136
  %291 = tail call i32 @libxsmm_get_ulp_precision() #3
  br i1 %spec.select, label %293, label %292

292:                                              ; preds = %290
  tail call void @libxsmm_aarch64_instruction_asimd_compute(ptr noundef %0, i32 noundef 782358538, i32 noundef %137, i32 noundef 127, i8 noundef zeroext 0, i32 noundef %137, i32 noundef %82) #3
  br label %.loopexit.us

293:                                              ; preds = %290
  %294 = icmp eq i32 %291, 2
  %295 = load i32, ptr %127, align 4, !tbaa !60
  %296 = and i32 %295, 255
  %297 = load i32, ptr %128, align 4, !tbaa !61
  %298 = and i32 %297, 255
  %.not621.us = select i1 %294, i1 true, i1 %.not621.us648
  %299 = select i1 %.not621.us, i32 %137, i32 %296
  tail call void @libxsmm_aarch64_instruction_sve_compute(ptr noundef %0, i32 noundef 1695494146, i32 noundef %137, i32 noundef %137, i8 noundef zeroext 0, i32 noundef %299, i32 noundef %29, i32 noundef %78) #3
  br i1 %.not621.us, label %.loopexit.us, label %.lr.ph.us

.lr.ph.us:                                        ; preds = %293, %.lr.ph.us
  %indvars.iv = phi i32 [ %indvars.iv.next, %.lr.ph.us ], [ 0, %293 ]
  %300 = icmp eq i32 %130, %indvars.iv
  %301 = select i1 %300, i32 %137, i32 %295
  %302 = and i32 %301, 255
  tail call void @libxsmm_aarch64_instruction_sve_compute(ptr noundef %0, i32 noundef 1694500867, i32 noundef %296, i32 noundef %296, i8 noundef zeroext 0, i32 noundef %298, i32 noundef %29, i32 noundef %78) #3
  tail call void @libxsmm_aarch64_instruction_sve_compute(ptr noundef %0, i32 noundef 1694505987, i32 noundef %137, i32 noundef %298, i8 noundef zeroext 0, i32 noundef %298, i32 noundef %29, i32 noundef %78) #3
  tail call void @libxsmm_aarch64_instruction_sve_compute(ptr noundef %0, i32 noundef 1694500867, i32 noundef %296, i32 noundef %298, i8 noundef zeroext 0, i32 noundef %302, i32 noundef %29, i32 noundef %78) #3
  %indvars.iv.next = add nuw nsw i32 %indvars.iv, 1
  %303 = xor i32 %129, %indvars.iv.next
  %exitcond.not = icmp eq i32 %303, 255
  br i1 %exitcond.not, label %.loopexit.us, label %.lr.ph.us, !llvm.loop !62

304:                                              ; preds = %136
  br i1 %spec.select, label %309, label %305

305:                                              ; preds = %304
  %306 = load i32, ptr %99, align 4, !tbaa !32
  tail call void @libxsmm_aarch64_instruction_asimd_compute(ptr noundef %0, i32 noundef 245487626, i32 noundef %137, i32 noundef 127, i8 noundef zeroext 0, i32 noundef %306, i32 noundef %82) #3
  %307 = load i32, ptr %99, align 4, !tbaa !32
  tail call void @libxsmm_aarch64_instruction_asimd_compute(ptr noundef %0, i32 noundef 237042699, i32 noundef %137, i32 noundef %307, i8 noundef zeroext 0, i32 noundef %137, i32 noundef %82) #3
  %308 = load i32, ptr %99, align 4, !tbaa !32
  tail call void @libxsmm_aarch64_instruction_asimd_compute(ptr noundef %0, i32 noundef 773905419, i32 noundef %137, i32 noundef %308, i8 noundef zeroext 0, i32 noundef %137, i32 noundef %82) #3
  br label %.loopexit.us

309:                                              ; preds = %304
  %310 = tail call i32 @libxsmm_get_ulp_precision() #3
  %.not622.us = icmp eq i32 %310, 2
  br i1 %.not622.us, label %314, label %311

311:                                              ; preds = %309
  %312 = load i32, ptr %127, align 4, !tbaa !60
  %313 = and i32 %312, 255
  tail call void @libxsmm_aarch64_instruction_sve_compute(ptr noundef %0, i32 noundef 1695428610, i32 noundef %137, i32 noundef %137, i8 noundef zeroext 0, i32 noundef %313, i32 noundef %29, i32 noundef %78) #3
  tail call void @libxsmm_aarch64_instruction_sve_compute(ptr noundef %0, i32 noundef 1694504963, i32 noundef %137, i32 noundef %313, i8 noundef zeroext 0, i32 noundef %137, i32 noundef %29, i32 noundef %78) #3
  tail call void @libxsmm_aarch64_instruction_sve_compute(ptr noundef %0, i32 noundef 1694500867, i32 noundef %137, i32 noundef %313, i8 noundef zeroext 0, i32 noundef %137, i32 noundef %29, i32 noundef %78) #3
  br label %.loopexit.us

314:                                              ; preds = %309
  tail call void @libxsmm_aarch64_instruction_sve_compute(ptr noundef %0, i32 noundef 1695428610, i32 noundef %137, i32 noundef %137, i8 noundef zeroext 0, i32 noundef %137, i32 noundef %29, i32 noundef %78) #3
  br label %.loopexit.us

315:                                              ; preds = %136
  %316 = load i32, ptr %121, align 4, !tbaa !54
  br i1 %spec.select, label %318, label %317

317:                                              ; preds = %315
  tail call void @libxsmm_aarch64_instruction_asimd_compute(ptr noundef %0, i32 noundef 237032459, i32 noundef %137, i32 noundef %316, i8 noundef zeroext 0, i32 noundef %137, i32 noundef %82) #3
  br label %.loopexit.us

318:                                              ; preds = %315
  tail call void @libxsmm_aarch64_instruction_sve_compute(ptr noundef %0, i32 noundef 1694498819, i32 noundef %137, i32 noundef %316, i8 noundef zeroext 0, i32 noundef %137, i32 noundef %29, i32 noundef %78) #3
  br label %.loopexit.us

319:                                              ; preds = %136
  br i1 %spec.select, label %321, label %320

320:                                              ; preds = %319
  tail call void @libxsmm_aarch64_instruction_asimd_compute(ptr noundef %0, i32 noundef 782301194, i32 noundef %137, i32 noundef 127, i8 noundef zeroext 0, i32 noundef %137, i32 noundef %82) #3
  br label %.loopexit.us

321:                                              ; preds = %319
  tail call void @libxsmm_aarch64_instruction_sve_compute(ptr noundef %0, i32 noundef 69050498, i32 noundef %137, i32 noundef %137, i8 noundef zeroext 0, i32 noundef %137, i32 noundef %29, i32 noundef %78) #3
  br label %.loopexit.us

322:                                              ; preds = %136
  br i1 %spec.select, label %324, label %323

323:                                              ; preds = %322
  tail call void @libxsmm_aarch64_instruction_asimd_compute(ptr noundef %0, i32 noundef 773905419, i32 noundef %137, i32 noundef %137, i8 noundef zeroext 0, i32 noundef %137, i32 noundef %82) #3
  br label %.loopexit.us

324:                                              ; preds = %322
  tail call void @libxsmm_aarch64_instruction_sve_compute(ptr noundef %0, i32 noundef 1694500867, i32 noundef %137, i32 noundef %137, i8 noundef zeroext 0, i32 noundef %137, i32 noundef %29, i32 noundef %78) #3
  br label %.loopexit.us

.loopexit.us:                                     ; preds = %.lr.ph.us, %293, %324, %323, %321, %320, %318, %317, %314, %311, %305, %292, %.critedge.us, %284, %281, %279, %278, %261, %258, %.thread626.us, %.thread625.us, %230, %227, %.thread628.us, %.thread627.us, %189, %184, %157, %152, %136, %134, %132
  %325 = add nuw i32 %.0631.us, 1
  %exitcond644.not = icmp eq i32 %325, %6
  br i1 %exitcond644.not, label %..loopexit629_crit_edge.us, label %132, !llvm.loop !64

..loopexit629_crit_edge.us:                       ; preds = %.loopexit.us, %.lr.ph635.split.us
  %326 = add nuw i32 %.0601633.us, 1
  %exitcond645.not = icmp eq i32 %326, %7
  br i1 %exitcond645.not, label %._crit_edge, label %.lr.ph635.split.us, !llvm.loop !65

.preheader.us:                                    ; preds = %.lr.ph635.split.us
  %327 = mul i32 %.0601633.us, %6
  %328 = add i32 %327, %5
  br label %132

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


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