; LLVM IR from libxsmm/libxsmm :: src (generator_common_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_generated_code = type { ptr, i32, i32, i32, i32, i32, i32 }

@.str.1 = external hidden unnamed_addr constant [80 x i8], align 1
@libxsmm_ninit = external global i32, align 4
@libxsmm_verbosity = external global i32, align 4
@.str.15 = external hidden unnamed_addr constant [286 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [296 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [286 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [296 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [281 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [271 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [276 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [276 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [276 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [271 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [276 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [276 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [276 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [271 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [276 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [276 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [276 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [301 x i8], align 1
@__const.libxsmm_generator_prepare_coeffs_gelu_inv_ps_minimax3_aarch64_sve.c0_array = external hidden unnamed_addr constant [16 x i32], align 16
@__const.libxsmm_generator_prepare_coeffs_gelu_inv_ps_minimax3_aarch64_sve.c1_array = external hidden unnamed_addr constant [16 x i32], align 16
@__const.libxsmm_generator_prepare_coeffs_gelu_inv_ps_minimax3_aarch64_sve.c2_array = external hidden unnamed_addr constant [16 x i32], align 16
@__PRETTY_FUNCTION__.libxsmm_generator_prepare_coeffs_gelu_inv_ps_minimax3_aarch64_sve = external hidden unnamed_addr constant [550 x i8], align 1
@__func__.libxsmm_generator_prepare_coeffs_gelu_inv_ps_minimax3_aarch64_sve = external hidden unnamed_addr constant [66 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: noreturn nounwind
declare void @__assert_fail(ptr noundef, ptr noundef, i32 noundef, ptr noundef) #1

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

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #2

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

; Function Attrs: nounwind uwtable
declare dso_local void @libxsmm_aarch64_instruction_broadcast_scalar_to_vec_sve(ptr noundef, i8 noundef zeroext, i32 noundef, i32 noundef, i8 noundef zeroext, i64 noundef) #4

; Function Attrs: nounwind uwtable
declare dso_local void @libxsmm_aarch64_instruction_sve_loadbytes_const_to_vec(ptr noundef, i8 noundef zeroext, i32 noundef, i32 noundef, i32 noundef, ptr noundef, i32 noundef) #4

; Function Attrs: nounwind uwtable
define dso_local void @libxsmm_generator_prepare_coeffs_gelu_inv_ps_minimax3_aarch64_sve(ptr noundef %0, i32 noundef %1, i32 noundef %2, i32 noundef %3, i32 noundef %4, i32 noundef %5, i32 noundef %6, i32 noundef %7, i32 noundef %8, i32 noundef %9, i32 noundef %10, i32 noundef %11, i32 noundef %12, i32 noundef %13, i32 noundef %14, i32 noundef %15, i32 noundef %16, i32 noundef %17, i32 noundef %18, i32 noundef %19, i32 noundef %20, i32 noundef %21, i8 noundef zeroext %22) #4 {
  %24 = alloca ptr, align 8
  %25 = alloca i32, align 4
  %26 = alloca i32, align 4
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca i32, align 4
  %30 = alloca i32, align 4
  %31 = alloca i32, align 4
  %32 = alloca i32, align 4
  %33 = alloca i32, align 4
  %34 = alloca i32, align 4
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca i32, align 4
  %38 = alloca i32, align 4
  %39 = alloca i32, align 4
  %40 = alloca i32, align 4
  %41 = alloca i32, align 4
  %42 = alloca i32, align 4
  %43 = alloca i32, align 4
  %44 = alloca i32, align 4
  %45 = alloca i32, align 4
  %46 = alloca i8, align 1
  %47 = alloca i64, align 8
  %48 = alloca i64, align 8
  %49 = alloca i64, align 8
  %50 = alloca i64, align 8
  %51 = alloca i64, align 8
  %52 = alloca i64, align 8
  %53 = alloca [16 x i32], align 16
  %54 = alloca [16 x i32], align 16
  %55 = alloca [16 x i32], align 16
  store ptr %0, ptr %24, align 8, !tbaa !5
  store i32 %1, ptr %25, align 4, !tbaa !9
  store i32 %2, ptr %26, align 4, !tbaa !9
  store i32 %3, ptr %27, align 4, !tbaa !9
  store i32 %4, ptr %28, align 4, !tbaa !9
  store i32 %5, ptr %29, align 4, !tbaa !9
  store i32 %6, ptr %30, align 4, !tbaa !9
  store i32 %7, ptr %31, align 4, !tbaa !9
  store i32 %8, ptr %32, align 4, !tbaa !9
  store i32 %9, ptr %33, align 4, !tbaa !9
  store i32 %10, ptr %34, align 4, !tbaa !9
  store i32 %11, ptr %35, align 4, !tbaa !9
  store i32 %12, ptr %36, align 4, !tbaa !9
  store i32 %13, ptr %37, align 4, !tbaa !9
  store i32 %14, ptr %38, align 4, !tbaa !9
  store i32 %15, ptr %39, align 4, !tbaa !9
  store i32 %16, ptr %40, align 4, !tbaa !9
  store i32 %17, ptr %41, align 4, !tbaa !9
  store i32 %18, ptr %42, align 4, !tbaa !9
  store i32 %19, ptr %43, align 4, !tbaa !9
  store i32 %20, ptr %44, align 4, !tbaa !9
  store i32 %21, ptr %45, align 4, !tbaa !9
  store i8 %22, ptr %46, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #5
  store i64 1083138047, ptr %47, align 8, !tbaa !12
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #5
  store i64 2147483647, ptr %48, align 8, !tbaa !12
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #5
  store i64 1079863241, ptr %49, align 8, !tbaa !12
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #5
  store i64 1262485504, ptr %50, align 8, !tbaa !12
  call void @llvm.lifetime.start.p0(i64 8, ptr %51) #5
  store i64 1056964608, ptr %51, align 8, !tbaa !12
  call void @llvm.lifetime.start.p0(i64 8, ptr %52) #5
  store i64 15, ptr %52, align 8, !tbaa !12
  call void @llvm.lifetime.start.p0(i64 64, ptr %53) #5
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %53, ptr align 16 @__const.libxsmm_generator_prepare_coeffs_gelu_inv_ps_minimax3_aarch64_sve.c0_array, i64 64, i1 false)
  call void @llvm.lifetime.start.p0(i64 64, ptr %54) #5
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %54, ptr align 16 @__const.libxsmm_generator_prepare_coeffs_gelu_inv_ps_minimax3_aarch64_sve.c1_array, i64 64, i1 false)
  call void @llvm.lifetime.start.p0(i64 64, ptr %55) #5
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %55, ptr align 16 @__const.libxsmm_generator_prepare_coeffs_gelu_inv_ps_minimax3_aarch64_sve.c2_array, i64 64, i1 false)
  %56 = load ptr, ptr %24, align 8, !tbaa !5
  %57 = load i32, ptr %25, align 4, !tbaa !9
  %58 = trunc i32 %57 to i8
  %59 = zext i8 %58 to i32
  %60 = icmp eq i32 0, %59
  br i1 %60, label %66, label %61

61:                                               ; preds = %23
  %62 = load i32, ptr %25, align 4, !tbaa !9
  %63 = trunc i32 %62 to i8
  %64 = zext i8 %63 to i32
  %65 = icmp slt i32 0, %64
  br i1 %65, label %66, label %84

66:                                               ; preds = %61, %23
  %67 = load i32, ptr %25, align 4, !tbaa !9
  %68 = zext i32 %67 to i64
  %69 = mul i64 1, %68
  %70 = icmp ult i64 %69, 255
  br i1 %70, label %71, label %75

71:                                               ; preds = %66
  %72 = load i32, ptr %25, align 4, !tbaa !9
  %73 = zext i32 %72 to i64
  %74 = mul i64 1, %73
  br label %76

75:                                               ; preds = %66
  br label %76

76:                                               ; preds = %75, %71
  %77 = phi i64 [ %74, %71 ], [ 255, %75 ]
  %78 = icmp ule i64 %77, 255
  br i1 %78, label %79, label %84

79:                                               ; preds = %76
  %80 = load i32, ptr %25, align 4, !tbaa !9
  %81 = uitofp i32 %80 to double
  %82 = fcmp ole double 0.000000e+00, %81
  br i1 %82, label %83, label %84

83:                                               ; preds = %79
  br label %85

84:                                               ; preds = %79, %76, %61
  call void @__assert_fail(ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 2792, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_prepare_coeffs_gelu_inv_ps_minimax3_aarch64_sve) #6
  unreachable

85:                                               ; preds = %83
  %86 = load i32, ptr %25, align 4, !tbaa !9
  %87 = trunc i32 %86 to i8
  %88 = load i32, ptr %43, align 4, !tbaa !9
  %89 = load i32, ptr %45, align 4, !tbaa !9
  %90 = load i8, ptr %46, align 1, !tbaa !11
  %91 = load i64, ptr %47, align 8, !tbaa !12
  call void @libxsmm_aarch64_instruction_broadcast_scalar_to_vec_sve(ptr noundef %56, i8 noundef zeroext %87, i32 noundef %88, i32 noundef %89, i8 noundef zeroext %90, i64 noundef %91)
  %92 = load ptr, ptr %24, align 8, !tbaa !5
  %93 = load i32, ptr %26, align 4, !tbaa !9
  %94 = trunc i32 %93 to i8
  %95 = zext i8 %94 to i32
  %96 = icmp eq i32 0, %95
  br i1 %96, label %102, label %97

97:                                               ; preds = %85
  %98 = load i32, ptr %26, align 4, !tbaa !9
  %99 = trunc i32 %98 to i8
  %100 = zext i8 %99 to i32
  %101 = icmp slt i32 0, %100
  br i1 %101, label %102, label %120

102:                                              ; preds = %97, %85
  %103 = load i32, ptr %26, align 4, !tbaa !9
  %104 = zext i32 %103 to i64
  %105 = mul i64 1, %104
  %106 = icmp ult i64 %105, 255
  br i1 %106, label %107, label %111

107:                                              ; preds = %102
  %108 = load i32, ptr %26, align 4, !tbaa !9
  %109 = zext i32 %108 to i64
  %110 = mul i64 1, %109
  br label %112

111:                                              ; preds = %102
  br label %112

112:                                              ; preds = %111, %107
  %113 = phi i64 [ %110, %107 ], [ 255, %111 ]
  %114 = icmp ule i64 %113, 255
  br i1 %114, label %115, label %120

115:                                              ; preds = %112
  %116 = load i32, ptr %26, align 4, !tbaa !9
  %117 = uitofp i32 %116 to double
  %118 = fcmp ole double 0.000000e+00, %117
  br i1 %118, label %119, label %120

119:                                              ; preds = %115
  br label %121

120:                                              ; preds = %115, %112, %97
  call void @__assert_fail(ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 2793, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_prepare_coeffs_gelu_inv_ps_minimax3_aarch64_sve) #6
  unreachable

121:                                              ; preds = %119
  %122 = load i32, ptr %26, align 4, !tbaa !9
  %123 = trunc i32 %122 to i8
  %124 = load i32, ptr %43, align 4, !tbaa !9
  %125 = load i32, ptr %45, align 4, !tbaa !9
  %126 = load i8, ptr %46, align 1, !tbaa !11
  %127 = load i64, ptr %48, align 8, !tbaa !12
  call void @libxsmm_aarch64_instruction_broadcast_scalar_to_vec_sve(ptr noundef %92, i8 noundef zeroext %123, i32 noundef %124, i32 noundef %125, i8 noundef zeroext %126, i64 noundef %127)
  %128 = load ptr, ptr %24, align 8, !tbaa !5
  %129 = load i32, ptr %27, align 4, !tbaa !9
  %130 = trunc i32 %129 to i8
  %131 = zext i8 %130 to i32
  %132 = icmp eq i32 0, %131
  br i1 %132, label %138, label %133

133:                                              ; preds = %121
  %134 = load i32, ptr %27, align 4, !tbaa !9
  %135 = trunc i32 %134 to i8
  %136 = zext i8 %135 to i32
  %137 = icmp slt i32 0, %136
  br i1 %137, label %138, label %156

138:                                              ; preds = %133, %121
  %139 = load i32, ptr %27, align 4, !tbaa !9
  %140 = zext i32 %139 to i64
  %141 = mul i64 1, %140
  %142 = icmp ult i64 %141, 255
  br i1 %142, label %143, label %147

143:                                              ; preds = %138
  %144 = load i32, ptr %27, align 4, !tbaa !9
  %145 = zext i32 %144 to i64
  %146 = mul i64 1, %145
  br label %148

147:                                              ; preds = %138
  br label %148

148:                                              ; preds = %147, %143
  %149 = phi i64 [ %146, %143 ], [ 255, %147 ]
  %150 = icmp ule i64 %149, 255
  br i1 %150, label %151, label %156

151:                                              ; preds = %148
  %152 = load i32, ptr %27, align 4, !tbaa !9
  %153 = uitofp i32 %152 to double
  %154 = fcmp ole double 0.000000e+00, %153
  br i1 %154, label %155, label %156

155:                                              ; preds = %151
  br label %157

156:                                              ; preds = %151, %148, %133
  call void @__assert_fail(ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 2794, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_prepare_coeffs_gelu_inv_ps_minimax3_aarch64_sve) #6
  unreachable

157:                                              ; preds = %155
  %158 = load i32, ptr %27, align 4, !tbaa !9
  %159 = trunc i32 %158 to i8
  %160 = load i32, ptr %43, align 4, !tbaa !9
  %161 = load i32, ptr %45, align 4, !tbaa !9
  %162 = load i8, ptr %46, align 1, !tbaa !11
  %163 = load i64, ptr %49, align 8, !tbaa !12
  call void @libxsmm_aarch64_instruction_broadcast_scalar_to_vec_sve(ptr noundef %128, i8 noundef zeroext %159, i32 noundef %160, i32 noundef %161, i8 noundef zeroext %162, i64 noundef %163)
  %164 = load ptr, ptr %24, align 8, !tbaa !5
  %165 = load i32, ptr %28, align 4, !tbaa !9
  %166 = trunc i32 %165 to i8
  %167 = zext i8 %166 to i32
  %168 = icmp eq i32 0, %167
  br i1 %168, label %174, label %169

169:                                              ; preds = %157
  %170 = load i32, ptr %28, align 4, !tbaa !9
  %171 = trunc i32 %170 to i8
  %172 = zext i8 %171 to i32
  %173 = icmp slt i32 0, %172
  br i1 %173, label %174, label %192

174:                                              ; preds = %169, %157
  %175 = load i32, ptr %28, align 4, !tbaa !9
  %176 = zext i32 %175 to i64
  %177 = mul i64 1, %176
  %178 = icmp ult i64 %177, 255
  br i1 %178, label %179, label %183

179:                                              ; preds = %174
  %180 = load i32, ptr %28, align 4, !tbaa !9
  %181 = zext i32 %180 to i64
  %182 = mul i64 1, %181
  br label %184

183:                                              ; preds = %174
  br label %184

184:                                              ; preds = %183, %179
  %185 = phi i64 [ %182, %179 ], [ 255, %183 ]
  %186 = icmp ule i64 %185, 255
  br i1 %186, label %187, label %192

187:                                              ; preds = %184
  %188 = load i32, ptr %28, align 4, !tbaa !9
  %189 = uitofp i32 %188 to double
  %190 = fcmp ole double 0.000000e+00, %189
  br i1 %190, label %191, label %192

191:                                              ; preds = %187
  br label %193

192:                                              ; preds = %187, %184, %169
  call void @__assert_fail(ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 2795, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_prepare_coeffs_gelu_inv_ps_minimax3_aarch64_sve) #6
  unreachable

193:                                              ; preds = %191
  %194 = load i32, ptr %28, align 4, !tbaa !9
  %195 = trunc i32 %194 to i8
  %196 = load i32, ptr %43, align 4, !tbaa !9
  %197 = load i32, ptr %45, align 4, !tbaa !9
  %198 = load i8, ptr %46, align 1, !tbaa !11
  %199 = load i64, ptr %50, align 8, !tbaa !12
  call void @libxsmm_aarch64_instruction_broadcast_scalar_to_vec_sve(ptr noundef %164, i8 noundef zeroext %195, i32 noundef %196, i32 noundef %197, i8 noundef zeroext %198, i64 noundef %199)
  %200 = load ptr, ptr %24, align 8, !tbaa !5
  %201 = load i32, ptr %29, align 4, !tbaa !9
  %202 = trunc i32 %201 to i8
  %203 = zext i8 %202 to i32
  %204 = icmp eq i32 0, %203
  br i1 %204, label %210, label %205

205:                                              ; preds = %193
  %206 = load i32, ptr %29, align 4, !tbaa !9
  %207 = trunc i32 %206 to i8
  %208 = zext i8 %207 to i32
  %209 = icmp slt i32 0, %208
  br i1 %209, label %210, label %228

210:                                              ; preds = %205, %193
  %211 = load i32, ptr %29, align 4, !tbaa !9
  %212 = zext i32 %211 to i64
  %213 = mul i64 1, %212
  %214 = icmp ult i64 %213, 255
  br i1 %214, label %215, label %219

215:                                              ; preds = %210
  %216 = load i32, ptr %29, align 4, !tbaa !9
  %217 = zext i32 %216 to i64
  %218 = mul i64 1, %217
  br label %220

219:                                              ; preds = %210
  br label %220

220:                                              ; preds = %219, %215
  %221 = phi i64 [ %218, %215 ], [ 255, %219 ]
  %222 = icmp ule i64 %221, 255
  br i1 %222, label %223, label %228

223:                                              ; preds = %220
  %224 = load i32, ptr %29, align 4, !tbaa !9
  %225 = uitofp i32 %224 to double
  %226 = fcmp ole double 0.000000e+00, %225
  br i1 %226, label %227, label %228

227:                                              ; preds = %223
  br label %229

228:                                              ; preds = %223, %220, %205
  call void @__assert_fail(ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 2796, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_prepare_coeffs_gelu_inv_ps_minimax3_aarch64_sve) #6
  unreachable

229:                                              ; preds = %227
  %230 = load i32, ptr %29, align 4, !tbaa !9
  %231 = trunc i32 %230 to i8
  %232 = load i32, ptr %43, align 4, !tbaa !9
  %233 = load i32, ptr %45, align 4, !tbaa !9
  %234 = load i8, ptr %46, align 1, !tbaa !11
  %235 = load i64, ptr %51, align 8, !tbaa !12
  call void @libxsmm_aarch64_instruction_broadcast_scalar_to_vec_sve(ptr noundef %200, i8 noundef zeroext %231, i32 noundef %232, i32 noundef %233, i8 noundef zeroext %234, i64 noundef %235)
  %236 = load ptr, ptr %24, align 8, !tbaa !5
  %237 = load i32, ptr %42, align 4, !tbaa !9
  %238 = trunc i32 %237 to i8
  %239 = zext i8 %238 to i32
  %240 = icmp eq i32 0, %239
  br i1 %240, label %246, label %241

241:                                              ; preds = %229
  %242 = load i32, ptr %42, align 4, !tbaa !9
  %243 = trunc i32 %242 to i8
  %244 = zext i8 %243 to i32
  %245 = icmp slt i32 0, %244
  br i1 %245, label %246, label %264

246:                                              ; preds = %241, %229
  %247 = load i32, ptr %42, align 4, !tbaa !9
  %248 = zext i32 %247 to i64
  %249 = mul i64 1, %248
  %250 = icmp ult i64 %249, 255
  br i1 %250, label %251, label %255

251:                                              ; preds = %246
  %252 = load i32, ptr %42, align 4, !tbaa !9
  %253 = zext i32 %252 to i64
  %254 = mul i64 1, %253
  br label %256

255:                                              ; preds = %246
  br label %256

256:                                              ; preds = %255, %251
  %257 = phi i64 [ %254, %251 ], [ 255, %255 ]
  %258 = icmp ule i64 %257, 255
  br i1 %258, label %259, label %264

259:                                              ; preds = %256
  %260 = load i32, ptr %42, align 4, !tbaa !9
  %261 = uitofp i32 %260 to double
  %262 = fcmp ole double 0.000000e+00, %261
  br i1 %262, label %263, label %264

263:                                              ; preds = %259
  br label %265

264:                                              ; preds = %259, %256, %241
  call void @__assert_fail(ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 2797, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_prepare_coeffs_gelu_inv_ps_minimax3_aarch64_sve) #6
  unreachable

265:                                              ; preds = %263
  %266 = load i32, ptr %42, align 4, !tbaa !9
  %267 = trunc i32 %266 to i8
  %268 = load i32, ptr %43, align 4, !tbaa !9
  %269 = load i32, ptr %45, align 4, !tbaa !9
  %270 = load i8, ptr %46, align 1, !tbaa !11
  %271 = load i64, ptr %52, align 8, !tbaa !12
  call void @libxsmm_aarch64_instruction_broadcast_scalar_to_vec_sve(ptr noundef %236, i8 noundef zeroext %267, i32 noundef %268, i32 noundef %269, i8 noundef zeroext %270, i64 noundef %271)
  %272 = load ptr, ptr %24, align 8, !tbaa !5
  %273 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %272, i32 0, i32 6
  %274 = load i32, ptr %273, align 4, !tbaa !14
  %275 = icmp uge i32 %274, 2401
  br i1 %275, label %276, label %393

276:                                              ; preds = %265
  %277 = load ptr, ptr %24, align 8, !tbaa !5
  %278 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %277, i32 0, i32 6
  %279 = load i32, ptr %278, align 4, !tbaa !14
  %280 = icmp ult i32 %279, 2999
  br i1 %280, label %281, label %393

281:                                              ; preds = %276
  %282 = load ptr, ptr %24, align 8, !tbaa !5
  %283 = load i32, ptr %30, align 4, !tbaa !9
  %284 = trunc i32 %283 to i8
  %285 = zext i8 %284 to i32
  %286 = icmp eq i32 0, %285
  br i1 %286, label %292, label %287

287:                                              ; preds = %281
  %288 = load i32, ptr %30, align 4, !tbaa !9
  %289 = trunc i32 %288 to i8
  %290 = zext i8 %289 to i32
  %291 = icmp slt i32 0, %290
  br i1 %291, label %292, label %310

292:                                              ; preds = %287, %281
  %293 = load i32, ptr %30, align 4, !tbaa !9
  %294 = zext i32 %293 to i64
  %295 = mul i64 1, %294
  %296 = icmp ult i64 %295, 255
  br i1 %296, label %297, label %301

297:                                              ; preds = %292
  %298 = load i32, ptr %30, align 4, !tbaa !9
  %299 = zext i32 %298 to i64
  %300 = mul i64 1, %299
  br label %302

301:                                              ; preds = %292
  br label %302

302:                                              ; preds = %301, %297
  %303 = phi i64 [ %300, %297 ], [ 255, %301 ]
  %304 = icmp ule i64 %303, 255
  br i1 %304, label %305, label %310

305:                                              ; preds = %302
  %306 = load i32, ptr %30, align 4, !tbaa !9
  %307 = uitofp i32 %306 to double
  %308 = fcmp ole double 0.000000e+00, %307
  br i1 %308, label %309, label %310

309:                                              ; preds = %305
  br label %311

310:                                              ; preds = %305, %302, %287
  call void @__assert_fail(ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 2800, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_prepare_coeffs_gelu_inv_ps_minimax3_aarch64_sve) #6
  unreachable

311:                                              ; preds = %309
  %312 = load i32, ptr %30, align 4, !tbaa !9
  %313 = trunc i32 %312 to i8
  %314 = load i32, ptr %43, align 4, !tbaa !9
  %315 = load i32, ptr %44, align 4, !tbaa !9
  %316 = load i8, ptr %46, align 1, !tbaa !11
  %317 = zext i8 %316 to i32
  %318 = getelementptr inbounds [16 x i32], ptr %53, i64 0, i64 0
  call void @libxsmm_aarch64_instruction_sve_loadbytes_const_to_vec(ptr noundef %282, i8 noundef zeroext %313, i32 noundef %314, i32 noundef %315, i32 noundef %317, ptr noundef %318, i32 noundef 64)
  %319 = load ptr, ptr %24, align 8, !tbaa !5
  %320 = load i32, ptr %34, align 4, !tbaa !9
  %321 = trunc i32 %320 to i8
  %322 = zext i8 %321 to i32
  %323 = icmp eq i32 0, %322
  br i1 %323, label %329, label %324

324:                                              ; preds = %311
  %325 = load i32, ptr %34, align 4, !tbaa !9
  %326 = trunc i32 %325 to i8
  %327 = zext i8 %326 to i32
  %328 = icmp slt i32 0, %327
  br i1 %328, label %329, label %347

329:                                              ; preds = %324, %311
  %330 = load i32, ptr %34, align 4, !tbaa !9
  %331 = zext i32 %330 to i64
  %332 = mul i64 1, %331
  %333 = icmp ult i64 %332, 255
  br i1 %333, label %334, label %338

334:                                              ; preds = %329
  %335 = load i32, ptr %34, align 4, !tbaa !9
  %336 = zext i32 %335 to i64
  %337 = mul i64 1, %336
  br label %339

338:                                              ; preds = %329
  br label %339

339:                                              ; preds = %338, %334
  %340 = phi i64 [ %337, %334 ], [ 255, %338 ]
  %341 = icmp ule i64 %340, 255
  br i1 %341, label %342, label %347

342:                                              ; preds = %339
  %343 = load i32, ptr %34, align 4, !tbaa !9
  %344 = uitofp i32 %343 to double
  %345 = fcmp ole double 0.000000e+00, %344
  br i1 %345, label %346, label %347

346:                                              ; preds = %342
  br label %348

347:                                              ; preds = %342, %339, %324
  call void @__assert_fail(ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 2801, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_prepare_coeffs_gelu_inv_ps_minimax3_aarch64_sve) #6
  unreachable

348:                                              ; preds = %346
  %349 = load i32, ptr %34, align 4, !tbaa !9
  %350 = trunc i32 %349 to i8
  %351 = load i32, ptr %43, align 4, !tbaa !9
  %352 = load i32, ptr %44, align 4, !tbaa !9
  %353 = load i8, ptr %46, align 1, !tbaa !11
  %354 = zext i8 %353 to i32
  %355 = getelementptr inbounds [16 x i32], ptr %54, i64 0, i64 0
  call void @libxsmm_aarch64_instruction_sve_loadbytes_const_to_vec(ptr noundef %319, i8 noundef zeroext %350, i32 noundef %351, i32 noundef %352, i32 noundef %354, ptr noundef %355, i32 noundef 64)
  %356 = load ptr, ptr %24, align 8, !tbaa !5
  %357 = load i32, ptr %38, align 4, !tbaa !9
  %358 = trunc i32 %357 to i8
  %359 = zext i8 %358 to i32
  %360 = icmp eq i32 0, %359
  br i1 %360, label %366, label %361

361:                                              ; preds = %348
  %362 = load i32, ptr %38, align 4, !tbaa !9
  %363 = trunc i32 %362 to i8
  %364 = zext i8 %363 to i32
  %365 = icmp slt i32 0, %364
  br i1 %365, label %366, label %384

366:                                              ; preds = %361, %348
  %367 = load i32, ptr %38, align 4, !tbaa !9
  %368 = zext i32 %367 to i64
  %369 = mul i64 1, %368
  %370 = icmp ult i64 %369, 255
  br i1 %370, label %371, label %375

371:                                              ; preds = %366
  %372 = load i32, ptr %38, align 4, !tbaa !9
  %373 = zext i32 %372 to i64
  %374 = mul i64 1, %373
  br label %376

375:                                              ; preds = %366
  br label %376

376:                                              ; preds = %375, %371
  %377 = phi i64 [ %374, %371 ], [ 255, %375 ]
  %378 = icmp ule i64 %377, 255
  br i1 %378, label %379, label %384

379:                                              ; preds = %376
  %380 = load i32, ptr %38, align 4, !tbaa !9
  %381 = uitofp i32 %380 to double
  %382 = fcmp ole double 0.000000e+00, %381
  br i1 %382, label %383, label %384

383:                                              ; preds = %379
  br label %385

384:                                              ; preds = %379, %376, %361
  call void @__assert_fail(ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 2802, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_prepare_coeffs_gelu_inv_ps_minimax3_aarch64_sve) #6
  unreachable

385:                                              ; preds = %383
  %386 = load i32, ptr %38, align 4, !tbaa !9
  %387 = trunc i32 %386 to i8
  %388 = load i32, ptr %43, align 4, !tbaa !9
  %389 = load i32, ptr %44, align 4, !tbaa !9
  %390 = load i8, ptr %46, align 1, !tbaa !11
  %391 = zext i8 %390 to i32
  %392 = getelementptr inbounds [16 x i32], ptr %55, i64 0, i64 0
  call void @libxsmm_aarch64_instruction_sve_loadbytes_const_to_vec(ptr noundef %356, i8 noundef zeroext %387, i32 noundef %388, i32 noundef %389, i32 noundef %391, ptr noundef %392, i32 noundef 64)
  br label %1104

393:                                              ; preds = %276, %265
  %394 = load ptr, ptr %24, align 8, !tbaa !5
  %395 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %394, i32 0, i32 6
  %396 = load i32, ptr %395, align 4, !tbaa !14
  %397 = icmp uge i32 %396, 2301
  br i1 %397, label %398, label %629

398:                                              ; preds = %393
  %399 = load ptr, ptr %24, align 8, !tbaa !5
  %400 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %399, i32 0, i32 6
  %401 = load i32, ptr %400, align 4, !tbaa !14
  %402 = icmp ult i32 %401, 2401
  br i1 %402, label %403, label %629

403:                                              ; preds = %398
  %404 = load ptr, ptr %24, align 8, !tbaa !5
  %405 = load i32, ptr %30, align 4, !tbaa !9
  %406 = trunc i32 %405 to i8
  %407 = zext i8 %406 to i32
  %408 = icmp eq i32 0, %407
  br i1 %408, label %414, label %409

409:                                              ; preds = %403
  %410 = load i32, ptr %30, align 4, !tbaa !9
  %411 = trunc i32 %410 to i8
  %412 = zext i8 %411 to i32
  %413 = icmp slt i32 0, %412
  br i1 %413, label %414, label %432

414:                                              ; preds = %409, %403
  %415 = load i32, ptr %30, align 4, !tbaa !9
  %416 = zext i32 %415 to i64
  %417 = mul i64 1, %416
  %418 = icmp ult i64 %417, 255
  br i1 %418, label %419, label %423

419:                                              ; preds = %414
  %420 = load i32, ptr %30, align 4, !tbaa !9
  %421 = zext i32 %420 to i64
  %422 = mul i64 1, %421
  br label %424

423:                                              ; preds = %414
  br label %424

424:                                              ; preds = %423, %419
  %425 = phi i64 [ %422, %419 ], [ 255, %423 ]
  %426 = icmp ule i64 %425, 255
  br i1 %426, label %427, label %432

427:                                              ; preds = %424
  %428 = load i32, ptr %30, align 4, !tbaa !9
  %429 = uitofp i32 %428 to double
  %430 = fcmp ole double 0.000000e+00, %429
  br i1 %430, label %431, label %432

431:                                              ; preds = %427
  br label %433

432:                                              ; preds = %427, %424, %409
  call void @__assert_fail(ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 2804, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_prepare_coeffs_gelu_inv_ps_minimax3_aarch64_sve) #6
  unreachable

433:                                              ; preds = %431
  %434 = load i32, ptr %30, align 4, !tbaa !9
  %435 = trunc i32 %434 to i8
  %436 = load i32, ptr %43, align 4, !tbaa !9
  %437 = load i32, ptr %44, align 4, !tbaa !9
  %438 = load i8, ptr %46, align 1, !tbaa !11
  %439 = zext i8 %438 to i32
  %440 = getelementptr inbounds [16 x i32], ptr %53, i64 0, i64 0
  call void @libxsmm_aarch64_instruction_sve_loadbytes_const_to_vec(ptr noundef %404, i8 noundef zeroext %435, i32 noundef %436, i32 noundef %437, i32 noundef %439, ptr noundef %440, i32 noundef 32)
  %441 = load ptr, ptr %24, align 8, !tbaa !5
  %442 = load i32, ptr %31, align 4, !tbaa !9
  %443 = trunc i32 %442 to i8
  %444 = zext i8 %443 to i32
  %445 = icmp eq i32 0, %444
  br i1 %445, label %451, label %446

446:                                              ; preds = %433
  %447 = load i32, ptr %31, align 4, !tbaa !9
  %448 = trunc i32 %447 to i8
  %449 = zext i8 %448 to i32
  %450 = icmp slt i32 0, %449
  br i1 %450, label %451, label %469

451:                                              ; preds = %446, %433
  %452 = load i32, ptr %31, align 4, !tbaa !9
  %453 = zext i32 %452 to i64
  %454 = mul i64 1, %453
  %455 = icmp ult i64 %454, 255
  br i1 %455, label %456, label %460

456:                                              ; preds = %451
  %457 = load i32, ptr %31, align 4, !tbaa !9
  %458 = zext i32 %457 to i64
  %459 = mul i64 1, %458
  br label %461

460:                                              ; preds = %451
  br label %461

461:                                              ; preds = %460, %456
  %462 = phi i64 [ %459, %456 ], [ 255, %460 ]
  %463 = icmp ule i64 %462, 255
  br i1 %463, label %464, label %469

464:                                              ; preds = %461
  %465 = load i32, ptr %31, align 4, !tbaa !9
  %466 = uitofp i32 %465 to double
  %467 = fcmp ole double 0.000000e+00, %466
  br i1 %467, label %468, label %469

468:                                              ; preds = %464
  br label %470

469:                                              ; preds = %464, %461, %446
  call void @__assert_fail(ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 2805, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_prepare_coeffs_gelu_inv_ps_minimax3_aarch64_sve) #6
  unreachable

470:                                              ; preds = %468
  %471 = load i32, ptr %31, align 4, !tbaa !9
  %472 = trunc i32 %471 to i8
  %473 = load i32, ptr %43, align 4, !tbaa !9
  %474 = load i32, ptr %44, align 4, !tbaa !9
  %475 = load i8, ptr %46, align 1, !tbaa !11
  %476 = zext i8 %475 to i32
  %477 = getelementptr inbounds [16 x i32], ptr %53, i64 0, i64 0
  %478 = getelementptr inbounds i32, ptr %477, i64 8
  call void @libxsmm_aarch64_instruction_sve_loadbytes_const_to_vec(ptr noundef %441, i8 noundef zeroext %472, i32 noundef %473, i32 noundef %474, i32 noundef %476, ptr noundef %478, i32 noundef 32)
  %479 = load ptr, ptr %24, align 8, !tbaa !5
  %480 = load i32, ptr %34, align 4, !tbaa !9
  %481 = trunc i32 %480 to i8
  %482 = zext i8 %481 to i32
  %483 = icmp eq i32 0, %482
  br i1 %483, label %489, label %484

484:                                              ; preds = %470
  %485 = load i32, ptr %34, align 4, !tbaa !9
  %486 = trunc i32 %485 to i8
  %487 = zext i8 %486 to i32
  %488 = icmp slt i32 0, %487
  br i1 %488, label %489, label %507

489:                                              ; preds = %484, %470
  %490 = load i32, ptr %34, align 4, !tbaa !9
  %491 = zext i32 %490 to i64
  %492 = mul i64 1, %491
  %493 = icmp ult i64 %492, 255
  br i1 %493, label %494, label %498

494:                                              ; preds = %489
  %495 = load i32, ptr %34, align 4, !tbaa !9
  %496 = zext i32 %495 to i64
  %497 = mul i64 1, %496
  br label %499

498:                                              ; preds = %489
  br label %499

499:                                              ; preds = %498, %494
  %500 = phi i64 [ %497, %494 ], [ 255, %498 ]
  %501 = icmp ule i64 %500, 255
  br i1 %501, label %502, label %507

502:                                              ; preds = %499
  %503 = load i32, ptr %34, align 4, !tbaa !9
  %504 = uitofp i32 %503 to double
  %505 = fcmp ole double 0.000000e+00, %504
  br i1 %505, label %506, label %507

506:                                              ; preds = %502
  br label %508

507:                                              ; preds = %502, %499, %484
  call void @__assert_fail(ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 2806, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_prepare_coeffs_gelu_inv_ps_minimax3_aarch64_sve) #6
  unreachable

508:                                              ; preds = %506
  %509 = load i32, ptr %34, align 4, !tbaa !9
  %510 = trunc i32 %509 to i8
  %511 = load i32, ptr %43, align 4, !tbaa !9
  %512 = load i32, ptr %44, align 4, !tbaa !9
  %513 = load i8, ptr %46, align 1, !tbaa !11
  %514 = zext i8 %513 to i32
  %515 = getelementptr inbounds [16 x i32], ptr %54, i64 0, i64 0
  call void @libxsmm_aarch64_instruction_sve_loadbytes_const_to_vec(ptr noundef %479, i8 noundef zeroext %510, i32 noundef %511, i32 noundef %512, i32 noundef %514, ptr noundef %515, i32 noundef 32)
  %516 = load ptr, ptr %24, align 8, !tbaa !5
  %517 = load i32, ptr %35, align 4, !tbaa !9
  %518 = trunc i32 %517 to i8
  %519 = zext i8 %518 to i32
  %520 = icmp eq i32 0, %519
  br i1 %520, label %526, label %521

521:                                              ; preds = %508
  %522 = load i32, ptr %35, align 4, !tbaa !9
  %523 = trunc i32 %522 to i8
  %524 = zext i8 %523 to i32
  %525 = icmp slt i32 0, %524
  br i1 %525, label %526, label %544

526:                                              ; preds = %521, %508
  %527 = load i32, ptr %35, align 4, !tbaa !9
  %528 = zext i32 %527 to i64
  %529 = mul i64 1, %528
  %530 = icmp ult i64 %529, 255
  br i1 %530, label %531, label %535

531:                                              ; preds = %526
  %532 = load i32, ptr %35, align 4, !tbaa !9
  %533 = zext i32 %532 to i64
  %534 = mul i64 1, %533
  br label %536

535:                                              ; preds = %526
  br label %536

536:                                              ; preds = %535, %531
  %537 = phi i64 [ %534, %531 ], [ 255, %535 ]
  %538 = icmp ule i64 %537, 255
  br i1 %538, label %539, label %544

539:                                              ; preds = %536
  %540 = load i32, ptr %35, align 4, !tbaa !9
  %541 = uitofp i32 %540 to double
  %542 = fcmp ole double 0.000000e+00, %541
  br i1 %542, label %543, label %544

543:                                              ; preds = %539
  br label %545

544:                                              ; preds = %539, %536, %521
  call void @__assert_fail(ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 2807, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_prepare_coeffs_gelu_inv_ps_minimax3_aarch64_sve) #6
  unreachable

545:                                              ; preds = %543
  %546 = load i32, ptr %35, align 4, !tbaa !9
  %547 = trunc i32 %546 to i8
  %548 = load i32, ptr %43, align 4, !tbaa !9
  %549 = load i32, ptr %44, align 4, !tbaa !9
  %550 = load i8, ptr %46, align 1, !tbaa !11
  %551 = zext i8 %550 to i32
  %552 = getelementptr inbounds [16 x i32], ptr %54, i64 0, i64 0
  %553 = getelementptr inbounds i32, ptr %552, i64 8
  call void @libxsmm_aarch64_instruction_sve_loadbytes_const_to_vec(ptr noundef %516, i8 noundef zeroext %547, i32 noundef %548, i32 noundef %549, i32 noundef %551, ptr noundef %553, i32 noundef 32)
  %554 = load ptr, ptr %24, align 8, !tbaa !5
  %555 = load i32, ptr %38, align 4, !tbaa !9
  %556 = trunc i32 %555 to i8
  %557 = zext i8 %556 to i32
  %558 = icmp eq i32 0, %557
  br i1 %558, label %564, label %559

559:                                              ; preds = %545
  %560 = load i32, ptr %38, align 4, !tbaa !9
  %561 = trunc i32 %560 to i8
  %562 = zext i8 %561 to i32
  %563 = icmp slt i32 0, %562
  br i1 %563, label %564, label %582

564:                                              ; preds = %559, %545
  %565 = load i32, ptr %38, align 4, !tbaa !9
  %566 = zext i32 %565 to i64
  %567 = mul i64 1, %566
  %568 = icmp ult i64 %567, 255
  br i1 %568, label %569, label %573

569:                                              ; preds = %564
  %570 = load i32, ptr %38, align 4, !tbaa !9
  %571 = zext i32 %570 to i64
  %572 = mul i64 1, %571
  br label %574

573:                                              ; preds = %564
  br label %574

574:                                              ; preds = %573, %569
  %575 = phi i64 [ %572, %569 ], [ 255, %573 ]
  %576 = icmp ule i64 %575, 255
  br i1 %576, label %577, label %582

577:                                              ; preds = %574
  %578 = load i32, ptr %38, align 4, !tbaa !9
  %579 = uitofp i32 %578 to double
  %580 = fcmp ole double 0.000000e+00, %579
  br i1 %580, label %581, label %582

581:                                              ; preds = %577
  br label %583

582:                                              ; preds = %577, %574, %559
  call void @__assert_fail(ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 2808, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_prepare_coeffs_gelu_inv_ps_minimax3_aarch64_sve) #6
  unreachable

583:                                              ; preds = %581
  %584 = load i32, ptr %38, align 4, !tbaa !9
  %585 = trunc i32 %584 to i8
  %586 = load i32, ptr %43, align 4, !tbaa !9
  %587 = load i32, ptr %44, align 4, !tbaa !9
  %588 = load i8, ptr %46, align 1, !tbaa !11
  %589 = zext i8 %588 to i32
  %590 = getelementptr inbounds [16 x i32], ptr %55, i64 0, i64 0
  call void @libxsmm_aarch64_instruction_sve_loadbytes_const_to_vec(ptr noundef %554, i8 noundef zeroext %585, i32 noundef %586, i32 noundef %587, i32 noundef %589, ptr noundef %590, i32 noundef 32)
  %591 = load ptr, ptr %24, align 8, !tbaa !5
  %592 = load i32, ptr %39, align 4, !tbaa !9
  %593 = trunc i32 %592 to i8
  %594 = zext i8 %593 to i32
  %595 = icmp eq i32 0, %594
  br i1 %595, label %601, label %596

596:                                              ; preds = %583
  %597 = load i32, ptr %39, align 4, !tbaa !9
  %598 = trunc i32 %597 to i8
  %599 = zext i8 %598 to i32
  %600 = icmp slt i32 0, %599
  br i1 %600, label %601, label %619

601:                                              ; preds = %596, %583
  %602 = load i32, ptr %39, align 4, !tbaa !9
  %603 = zext i32 %602 to i64
  %604 = mul i64 1, %603
  %605 = icmp ult i64 %604, 255
  br i1 %605, label %606, label %610

606:                                              ; preds = %601
  %607 = load i32, ptr %39, align 4, !tbaa !9
  %608 = zext i32 %607 to i64
  %609 = mul i64 1, %608
  br label %611

610:                                              ; preds = %601
  br label %611

611:                                              ; preds = %610, %606
  %612 = phi i64 [ %609, %606 ], [ 255, %610 ]
  %613 = icmp ule i64 %612, 255
  br i1 %613, label %614, label %619

614:                                              ; preds = %611
  %615 = load i32, ptr %39, align 4, !tbaa !9
  %616 = uitofp i32 %615 to double
  %617 = fcmp ole double 0.000000e+00, %616
  br i1 %617, label %618, label %619

618:                                              ; preds = %614
  br label %620

619:                                              ; preds = %614, %611, %596
  call void @__assert_fail(ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 2809, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_prepare_coeffs_gelu_inv_ps_minimax3_aarch64_sve) #6
  unreachable

620:                                              ; preds = %618
  %621 = load i32, ptr %39, align 4, !tbaa !9
  %622 = trunc i32 %621 to i8
  %623 = load i32, ptr %43, align 4, !tbaa !9
  %624 = load i32, ptr %44, align 4, !tbaa !9
  %625 = load i8, ptr %46, align 1, !tbaa !11
  %626 = zext i8 %625 to i32
  %627 = getelementptr inbounds [16 x i32], ptr %55, i64 0, i64 0
  %628 = getelementptr inbounds i32, ptr %627, i64 8
  call void @libxsmm_aarch64_instruction_sve_loadbytes_const_to_vec(ptr noundef %591, i8 noundef zeroext %622, i32 noundef %623, i32 noundef %624, i32 noundef %626, ptr noundef %628, i32 noundef 32)
  br label %1103

629:                                              ; preds = %398, %393
  %630 = load ptr, ptr %24, align 8, !tbaa !5
  %631 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %630, i32 0, i32 6
  %632 = load i32, ptr %631, align 4, !tbaa !14
  %633 = icmp uge i32 %632, 2201
  br i1 %633, label %634, label %1093

634:                                              ; preds = %629
  %635 = load ptr, ptr %24, align 8, !tbaa !5
  %636 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %635, i32 0, i32 6
  %637 = load i32, ptr %636, align 4, !tbaa !14
  %638 = icmp ult i32 %637, 2301
  br i1 %638, label %639, label %1093

639:                                              ; preds = %634
  %640 = load ptr, ptr %24, align 8, !tbaa !5
  %641 = load i32, ptr %30, align 4, !tbaa !9
  %642 = trunc i32 %641 to i8
  %643 = zext i8 %642 to i32
  %644 = icmp eq i32 0, %643
  br i1 %644, label %650, label %645

645:                                              ; preds = %639
  %646 = load i32, ptr %30, align 4, !tbaa !9
  %647 = trunc i32 %646 to i8
  %648 = zext i8 %647 to i32
  %649 = icmp slt i32 0, %648
  br i1 %649, label %650, label %668

650:                                              ; preds = %645, %639
  %651 = load i32, ptr %30, align 4, !tbaa !9
  %652 = zext i32 %651 to i64
  %653 = mul i64 1, %652
  %654 = icmp ult i64 %653, 255
  br i1 %654, label %655, label %659

655:                                              ; preds = %650
  %656 = load i32, ptr %30, align 4, !tbaa !9
  %657 = zext i32 %656 to i64
  %658 = mul i64 1, %657
  br label %660

659:                                              ; preds = %650
  br label %660

660:                                              ; preds = %659, %655
  %661 = phi i64 [ %658, %655 ], [ 255, %659 ]
  %662 = icmp ule i64 %661, 255
  br i1 %662, label %663, label %668

663:                                              ; preds = %660
  %664 = load i32, ptr %30, align 4, !tbaa !9
  %665 = uitofp i32 %664 to double
  %666 = fcmp ole double 0.000000e+00, %665
  br i1 %666, label %667, label %668

667:                                              ; preds = %663
  br label %669

668:                                              ; preds = %663, %660, %645
  call void @__assert_fail(ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 2811, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_prepare_coeffs_gelu_inv_ps_minimax3_aarch64_sve) #6
  unreachable

669:                                              ; preds = %667
  %670 = load i32, ptr %30, align 4, !tbaa !9
  %671 = trunc i32 %670 to i8
  %672 = load i32, ptr %43, align 4, !tbaa !9
  %673 = load i32, ptr %44, align 4, !tbaa !9
  %674 = load i8, ptr %46, align 1, !tbaa !11
  %675 = zext i8 %674 to i32
  %676 = getelementptr inbounds [16 x i32], ptr %53, i64 0, i64 0
  call void @libxsmm_aarch64_instruction_sve_loadbytes_const_to_vec(ptr noundef %640, i8 noundef zeroext %671, i32 noundef %672, i32 noundef %673, i32 noundef %675, ptr noundef %676, i32 noundef 16)
  %677 = load ptr, ptr %24, align 8, !tbaa !5
  %678 = load i32, ptr %31, align 4, !tbaa !9
  %679 = trunc i32 %678 to i8
  %680 = zext i8 %679 to i32
  %681 = icmp eq i32 0, %680
  br i1 %681, label %687, label %682

682:                                              ; preds = %669
  %683 = load i32, ptr %31, align 4, !tbaa !9
  %684 = trunc i32 %683 to i8
  %685 = zext i8 %684 to i32
  %686 = icmp slt i32 0, %685
  br i1 %686, label %687, label %705

687:                                              ; preds = %682, %669
  %688 = load i32, ptr %31, align 4, !tbaa !9
  %689 = zext i32 %688 to i64
  %690 = mul i64 1, %689
  %691 = icmp ult i64 %690, 255
  br i1 %691, label %692, label %696

692:                                              ; preds = %687
  %693 = load i32, ptr %31, align 4, !tbaa !9
  %694 = zext i32 %693 to i64
  %695 = mul i64 1, %694
  br label %697

696:                                              ; preds = %687
  br label %697

697:                                              ; preds = %696, %692
  %698 = phi i64 [ %695, %692 ], [ 255, %696 ]
  %699 = icmp ule i64 %698, 255
  br i1 %699, label %700, label %705

700:                                              ; preds = %697
  %701 = load i32, ptr %31, align 4, !tbaa !9
  %702 = uitofp i32 %701 to double
  %703 = fcmp ole double 0.000000e+00, %702
  br i1 %703, label %704, label %705

704:                                              ; preds = %700
  br label %706

705:                                              ; preds = %700, %697, %682
  call void @__assert_fail(ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 2812, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_prepare_coeffs_gelu_inv_ps_minimax3_aarch64_sve) #6
  unreachable

706:                                              ; preds = %704
  %707 = load i32, ptr %31, align 4, !tbaa !9
  %708 = trunc i32 %707 to i8
  %709 = load i32, ptr %43, align 4, !tbaa !9
  %710 = load i32, ptr %44, align 4, !tbaa !9
  %711 = load i8, ptr %46, align 1, !tbaa !11
  %712 = zext i8 %711 to i32
  %713 = getelementptr inbounds [16 x i32], ptr %53, i64 0, i64 0
  %714 = getelementptr inbounds i32, ptr %713, i64 4
  call void @libxsmm_aarch64_instruction_sve_loadbytes_const_to_vec(ptr noundef %677, i8 noundef zeroext %708, i32 noundef %709, i32 noundef %710, i32 noundef %712, ptr noundef %714, i32 noundef 16)
  %715 = load ptr, ptr %24, align 8, !tbaa !5
  %716 = load i32, ptr %32, align 4, !tbaa !9
  %717 = trunc i32 %716 to i8
  %718 = zext i8 %717 to i32
  %719 = icmp eq i32 0, %718
  br i1 %719, label %725, label %720

720:                                              ; preds = %706
  %721 = load i32, ptr %32, align 4, !tbaa !9
  %722 = trunc i32 %721 to i8
  %723 = zext i8 %722 to i32
  %724 = icmp slt i32 0, %723
  br i1 %724, label %725, label %743

725:                                              ; preds = %720, %706
  %726 = load i32, ptr %32, align 4, !tbaa !9
  %727 = zext i32 %726 to i64
  %728 = mul i64 1, %727
  %729 = icmp ult i64 %728, 255
  br i1 %729, label %730, label %734

730:                                              ; preds = %725
  %731 = load i32, ptr %32, align 4, !tbaa !9
  %732 = zext i32 %731 to i64
  %733 = mul i64 1, %732
  br label %735

734:                                              ; preds = %725
  br label %735

735:                                              ; preds = %734, %730
  %736 = phi i64 [ %733, %730 ], [ 255, %734 ]
  %737 = icmp ule i64 %736, 255
  br i1 %737, label %738, label %743

738:                                              ; preds = %735
  %739 = load i32, ptr %32, align 4, !tbaa !9
  %740 = uitofp i32 %739 to double
  %741 = fcmp ole double 0.000000e+00, %740
  br i1 %741, label %742, label %743

742:                                              ; preds = %738
  br label %744

743:                                              ; preds = %738, %735, %720
  call void @__assert_fail(ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 2813, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_prepare_coeffs_gelu_inv_ps_minimax3_aarch64_sve) #6
  unreachable

744:                                              ; preds = %742
  %745 = load i32, ptr %32, align 4, !tbaa !9
  %746 = trunc i32 %745 to i8
  %747 = load i32, ptr %43, align 4, !tbaa !9
  %748 = load i32, ptr %44, align 4, !tbaa !9
  %749 = load i8, ptr %46, align 1, !tbaa !11
  %750 = zext i8 %749 to i32
  %751 = getelementptr inbounds [16 x i32], ptr %53, i64 0, i64 0
  %752 = getelementptr inbounds i32, ptr %751, i64 8
  call void @libxsmm_aarch64_instruction_sve_loadbytes_const_to_vec(ptr noundef %715, i8 noundef zeroext %746, i32 noundef %747, i32 noundef %748, i32 noundef %750, ptr noundef %752, i32 noundef 16)
  %753 = load ptr, ptr %24, align 8, !tbaa !5
  %754 = load i32, ptr %33, align 4, !tbaa !9
  %755 = trunc i32 %754 to i8
  %756 = zext i8 %755 to i32
  %757 = icmp eq i32 0, %756
  br i1 %757, label %763, label %758

758:                                              ; preds = %744
  %759 = load i32, ptr %33, align 4, !tbaa !9
  %760 = trunc i32 %759 to i8
  %761 = zext i8 %760 to i32
  %762 = icmp slt i32 0, %761
  br i1 %762, label %763, label %781

763:                                              ; preds = %758, %744
  %764 = load i32, ptr %33, align 4, !tbaa !9
  %765 = zext i32 %764 to i64
  %766 = mul i64 1, %765
  %767 = icmp ult i64 %766, 255
  br i1 %767, label %768, label %772

768:                                              ; preds = %763
  %769 = load i32, ptr %33, align 4, !tbaa !9
  %770 = zext i32 %769 to i64
  %771 = mul i64 1, %770
  br label %773

772:                                              ; preds = %763
  br label %773

773:                                              ; preds = %772, %768
  %774 = phi i64 [ %771, %768 ], [ 255, %772 ]
  %775 = icmp ule i64 %774, 255
  br i1 %775, label %776, label %781

776:                                              ; preds = %773
  %777 = load i32, ptr %33, align 4, !tbaa !9
  %778 = uitofp i32 %777 to double
  %779 = fcmp ole double 0.000000e+00, %778
  br i1 %779, label %780, label %781

780:                                              ; preds = %776
  br label %782

781:                                              ; preds = %776, %773, %758
  call void @__assert_fail(ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 2814, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_prepare_coeffs_gelu_inv_ps_minimax3_aarch64_sve) #6
  unreachable

782:                                              ; preds = %780
  %783 = load i32, ptr %33, align 4, !tbaa !9
  %784 = trunc i32 %783 to i8
  %785 = load i32, ptr %43, align 4, !tbaa !9
  %786 = load i32, ptr %44, align 4, !tbaa !9
  %787 = load i8, ptr %46, align 1, !tbaa !11
  %788 = zext i8 %787 to i32
  %789 = getelementptr inbounds [16 x i32], ptr %53, i64 0, i64 0
  %790 = getelementptr inbounds i32, ptr %789, i64 12
  call void @libxsmm_aarch64_instruction_sve_loadbytes_const_to_vec(ptr noundef %753, i8 noundef zeroext %784, i32 noundef %785, i32 noundef %786, i32 noundef %788, ptr noundef %790, i32 noundef 16)
  %791 = load ptr, ptr %24, align 8, !tbaa !5
  %792 = load i32, ptr %34, align 4, !tbaa !9
  %793 = trunc i32 %792 to i8
  %794 = zext i8 %793 to i32
  %795 = icmp eq i32 0, %794
  br i1 %795, label %801, label %796

796:                                              ; preds = %782
  %797 = load i32, ptr %34, align 4, !tbaa !9
  %798 = trunc i32 %797 to i8
  %799 = zext i8 %798 to i32
  %800 = icmp slt i32 0, %799
  br i1 %800, label %801, label %819

801:                                              ; preds = %796, %782
  %802 = load i32, ptr %34, align 4, !tbaa !9
  %803 = zext i32 %802 to i64
  %804 = mul i64 1, %803
  %805 = icmp ult i64 %804, 255
  br i1 %805, label %806, label %810

806:                                              ; preds = %801
  %807 = load i32, ptr %34, align 4, !tbaa !9
  %808 = zext i32 %807 to i64
  %809 = mul i64 1, %808
  br label %811

810:                                              ; preds = %801
  br label %811

811:                                              ; preds = %810, %806
  %812 = phi i64 [ %809, %806 ], [ 255, %810 ]
  %813 = icmp ule i64 %812, 255
  br i1 %813, label %814, label %819

814:                                              ; preds = %811
  %815 = load i32, ptr %34, align 4, !tbaa !9
  %816 = uitofp i32 %815 to double
  %817 = fcmp ole double 0.000000e+00, %816
  br i1 %817, label %818, label %819

818:                                              ; preds = %814
  br label %820

819:                                              ; preds = %814, %811, %796
  call void @__assert_fail(ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 2815, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_prepare_coeffs_gelu_inv_ps_minimax3_aarch64_sve) #6
  unreachable

820:                                              ; preds = %818
  %821 = load i32, ptr %34, align 4, !tbaa !9
  %822 = trunc i32 %821 to i8
  %823 = load i32, ptr %43, align 4, !tbaa !9
  %824 = load i32, ptr %44, align 4, !tbaa !9
  %825 = load i8, ptr %46, align 1, !tbaa !11
  %826 = zext i8 %825 to i32
  %827 = getelementptr inbounds [16 x i32], ptr %54, i64 0, i64 0
  call void @libxsmm_aarch64_instruction_sve_loadbytes_const_to_vec(ptr noundef %791, i8 noundef zeroext %822, i32 noundef %823, i32 noundef %824, i32 noundef %826, ptr noundef %827, i32 noundef 16)
  %828 = load ptr, ptr %24, align 8, !tbaa !5
  %829 = load i32, ptr %35, align 4, !tbaa !9
  %830 = trunc i32 %829 to i8
  %831 = zext i8 %830 to i32
  %832 = icmp eq i32 0, %831
  br i1 %832, label %838, label %833

833:                                              ; preds = %820
  %834 = load i32, ptr %35, align 4, !tbaa !9
  %835 = trunc i32 %834 to i8
  %836 = zext i8 %835 to i32
  %837 = icmp slt i32 0, %836
  br i1 %837, label %838, label %856

838:                                              ; preds = %833, %820
  %839 = load i32, ptr %35, align 4, !tbaa !9
  %840 = zext i32 %839 to i64
  %841 = mul i64 1, %840
  %842 = icmp ult i64 %841, 255
  br i1 %842, label %843, label %847

843:                                              ; preds = %838
  %844 = load i32, ptr %35, align 4, !tbaa !9
  %845 = zext i32 %844 to i64
  %846 = mul i64 1, %845
  br label %848

847:                                              ; preds = %838
  br label %848

848:                                              ; preds = %847, %843
  %849 = phi i64 [ %846, %843 ], [ 255, %847 ]
  %850 = icmp ule i64 %849, 255
  br i1 %850, label %851, label %856

851:                                              ; preds = %848
  %852 = load i32, ptr %35, align 4, !tbaa !9
  %853 = uitofp i32 %852 to double
  %854 = fcmp ole double 0.000000e+00, %853
  br i1 %854, label %855, label %856

855:                                              ; preds = %851
  br label %857

856:                                              ; preds = %851, %848, %833
  call void @__assert_fail(ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 2816, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_prepare_coeffs_gelu_inv_ps_minimax3_aarch64_sve) #6
  unreachable

857:                                              ; preds = %855
  %858 = load i32, ptr %35, align 4, !tbaa !9
  %859 = trunc i32 %858 to i8
  %860 = load i32, ptr %43, align 4, !tbaa !9
  %861 = load i32, ptr %44, align 4, !tbaa !9
  %862 = load i8, ptr %46, align 1, !tbaa !11
  %863 = zext i8 %862 to i32
  %864 = getelementptr inbounds [16 x i32], ptr %54, i64 0, i64 0
  %865 = getelementptr inbounds i32, ptr %864, i64 4
  call void @libxsmm_aarch64_instruction_sve_loadbytes_const_to_vec(ptr noundef %828, i8 noundef zeroext %859, i32 noundef %860, i32 noundef %861, i32 noundef %863, ptr noundef %865, i32 noundef 16)
  %866 = load ptr, ptr %24, align 8, !tbaa !5
  %867 = load i32, ptr %36, align 4, !tbaa !9
  %868 = trunc i32 %867 to i8
  %869 = zext i8 %868 to i32
  %870 = icmp eq i32 0, %869
  br i1 %870, label %876, label %871

871:                                              ; preds = %857
  %872 = load i32, ptr %36, align 4, !tbaa !9
  %873 = trunc i32 %872 to i8
  %874 = zext i8 %873 to i32
  %875 = icmp slt i32 0, %874
  br i1 %875, label %876, label %894

876:                                              ; preds = %871, %857
  %877 = load i32, ptr %36, align 4, !tbaa !9
  %878 = zext i32 %877 to i64
  %879 = mul i64 1, %878
  %880 = icmp ult i64 %879, 255
  br i1 %880, label %881, label %885

881:                                              ; preds = %876
  %882 = load i32, ptr %36, align 4, !tbaa !9
  %883 = zext i32 %882 to i64
  %884 = mul i64 1, %883
  br label %886

885:                                              ; preds = %876
  br label %886

886:                                              ; preds = %885, %881
  %887 = phi i64 [ %884, %881 ], [ 255, %885 ]
  %888 = icmp ule i64 %887, 255
  br i1 %888, label %889, label %894

889:                                              ; preds = %886
  %890 = load i32, ptr %36, align 4, !tbaa !9
  %891 = uitofp i32 %890 to double
  %892 = fcmp ole double 0.000000e+00, %891
  br i1 %892, label %893, label %894

893:                                              ; preds = %889
  br label %895

894:                                              ; preds = %889, %886, %871
  call void @__assert_fail(ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 2817, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_prepare_coeffs_gelu_inv_ps_minimax3_aarch64_sve) #6
  unreachable

895:                                              ; preds = %893
  %896 = load i32, ptr %36, align 4, !tbaa !9
  %897 = trunc i32 %896 to i8
  %898 = load i32, ptr %43, align 4, !tbaa !9
  %899 = load i32, ptr %44, align 4, !tbaa !9
  %900 = load i8, ptr %46, align 1, !tbaa !11
  %901 = zext i8 %900 to i32
  %902 = getelementptr inbounds [16 x i32], ptr %54, i64 0, i64 0
  %903 = getelementptr inbounds i32, ptr %902, i64 8
  call void @libxsmm_aarch64_instruction_sve_loadbytes_const_to_vec(ptr noundef %866, i8 noundef zeroext %897, i32 noundef %898, i32 noundef %899, i32 noundef %901, ptr noundef %903, i32 noundef 16)
  %904 = load ptr, ptr %24, align 8, !tbaa !5
  %905 = load i32, ptr %37, align 4, !tbaa !9
  %906 = trunc i32 %905 to i8
  %907 = zext i8 %906 to i32
  %908 = icmp eq i32 0, %907
  br i1 %908, label %914, label %909

909:                                              ; preds = %895
  %910 = load i32, ptr %37, align 4, !tbaa !9
  %911 = trunc i32 %910 to i8
  %912 = zext i8 %911 to i32
  %913 = icmp slt i32 0, %912
  br i1 %913, label %914, label %932

914:                                              ; preds = %909, %895
  %915 = load i32, ptr %37, align 4, !tbaa !9
  %916 = zext i32 %915 to i64
  %917 = mul i64 1, %916
  %918 = icmp ult i64 %917, 255
  br i1 %918, label %919, label %923

919:                                              ; preds = %914
  %920 = load i32, ptr %37, align 4, !tbaa !9
  %921 = zext i32 %920 to i64
  %922 = mul i64 1, %921
  br label %924

923:                                              ; preds = %914
  br label %924

924:                                              ; preds = %923, %919
  %925 = phi i64 [ %922, %919 ], [ 255, %923 ]
  %926 = icmp ule i64 %925, 255
  br i1 %926, label %927, label %932

927:                                              ; preds = %924
  %928 = load i32, ptr %37, align 4, !tbaa !9
  %929 = uitofp i32 %928 to double
  %930 = fcmp ole double 0.000000e+00, %929
  br i1 %930, label %931, label %932

931:                                              ; preds = %927
  br label %933

932:                                              ; preds = %927, %924, %909
  call void @__assert_fail(ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 2818, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_prepare_coeffs_gelu_inv_ps_minimax3_aarch64_sve) #6
  unreachable

933:                                              ; preds = %931
  %934 = load i32, ptr %37, align 4, !tbaa !9
  %935 = trunc i32 %934 to i8
  %936 = load i32, ptr %43, align 4, !tbaa !9
  %937 = load i32, ptr %44, align 4, !tbaa !9
  %938 = load i8, ptr %46, align 1, !tbaa !11
  %939 = zext i8 %938 to i32
  %940 = getelementptr inbounds [16 x i32], ptr %54, i64 0, i64 0
  %941 = getelementptr inbounds i32, ptr %940, i64 12
  call void @libxsmm_aarch64_instruction_sve_loadbytes_const_to_vec(ptr noundef %904, i8 noundef zeroext %935, i32 noundef %936, i32 noundef %937, i32 noundef %939, ptr noundef %941, i32 noundef 16)
  %942 = load ptr, ptr %24, align 8, !tbaa !5
  %943 = load i32, ptr %38, align 4, !tbaa !9
  %944 = trunc i32 %943 to i8
  %945 = zext i8 %944 to i32
  %946 = icmp eq i32 0, %945
  br i1 %946, label %952, label %947

947:                                              ; preds = %933
  %948 = load i32, ptr %38, align 4, !tbaa !9
  %949 = trunc i32 %948 to i8
  %950 = zext i8 %949 to i32
  %951 = icmp slt i32 0, %950
  br i1 %951, label %952, label %970

952:                                              ; preds = %947, %933
  %953 = load i32, ptr %38, align 4, !tbaa !9
  %954 = zext i32 %953 to i64
  %955 = mul i64 1, %954
  %956 = icmp ult i64 %955, 255
  br i1 %956, label %957, label %961

957:                                              ; preds = %952
  %958 = load i32, ptr %38, align 4, !tbaa !9
  %959 = zext i32 %958 to i64
  %960 = mul i64 1, %959
  br label %962

961:                                              ; preds = %952
  br label %962

962:                                              ; preds = %961, %957
  %963 = phi i64 [ %960, %957 ], [ 255, %961 ]
  %964 = icmp ule i64 %963, 255
  br i1 %964, label %965, label %970

965:                                              ; preds = %962
  %966 = load i32, ptr %38, align 4, !tbaa !9
  %967 = uitofp i32 %966 to double
  %968 = fcmp ole double 0.000000e+00, %967
  br i1 %968, label %969, label %970

969:                                              ; preds = %965
  br label %971

970:                                              ; preds = %965, %962, %947
  call void @__assert_fail(ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 2819, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_prepare_coeffs_gelu_inv_ps_minimax3_aarch64_sve) #6
  unreachable

971:                                              ; preds = %969
  %972 = load i32, ptr %38, align 4, !tbaa !9
  %973 = trunc i32 %972 to i8
  %974 = load i32, ptr %43, align 4, !tbaa !9
  %975 = load i32, ptr %44, align 4, !tbaa !9
  %976 = load i8, ptr %46, align 1, !tbaa !11
  %977 = zext i8 %976 to i32
  %978 = getelementptr inbounds [16 x i32], ptr %55, i64 0, i64 0
  call void @libxsmm_aarch64_instruction_sve_loadbytes_const_to_vec(ptr noundef %942, i8 noundef zeroext %973, i32 noundef %974, i32 noundef %975, i32 noundef %977, ptr noundef %978, i32 noundef 16)
  %979 = load ptr, ptr %24, align 8, !tbaa !5
  %980 = load i32, ptr %39, align 4, !tbaa !9
  %981 = trunc i32 %980 to i8
  %982 = zext i8 %981 to i32
  %983 = icmp eq i32 0, %982
  br i1 %983, label %989, label %984

984:                                              ; preds = %971
  %985 = load i32, ptr %39, align 4, !tbaa !9
  %986 = trunc i32 %985 to i8
  %987 = zext i8 %986 to i32
  %988 = icmp slt i32 0, %987
  br i1 %988, label %989, label %1007

989:                                              ; preds = %984, %971
  %990 = load i32, ptr %39, align 4, !tbaa !9
  %991 = zext i32 %990 to i64
  %992 = mul i64 1, %991
  %993 = icmp ult i64 %992, 255
  br i1 %993, label %994, label %998

994:                                              ; preds = %989
  %995 = load i32, ptr %39, align 4, !tbaa !9
  %996 = zext i32 %995 to i64
  %997 = mul i64 1, %996
  br label %999

998:                                              ; preds = %989
  br label %999

999:                                              ; preds = %998, %994
  %1000 = phi i64 [ %997, %994 ], [ 255, %998 ]
  %1001 = icmp ule i64 %1000, 255
  br i1 %1001, label %1002, label %1007

1002:                                             ; preds = %999
  %1003 = load i32, ptr %39, align 4, !tbaa !9
  %1004 = uitofp i32 %1003 to double
  %1005 = fcmp ole double 0.000000e+00, %1004
  br i1 %1005, label %1006, label %1007

1006:                                             ; preds = %1002
  br label %1008

1007:                                             ; preds = %1002, %999, %984
  call void @__assert_fail(ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 2820, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_prepare_coeffs_gelu_inv_ps_minimax3_aarch64_sve) #6
  unreachable

1008:                                             ; preds = %1006
  %1009 = load i32, ptr %39, align 4, !tbaa !9
  %1010 = trunc i32 %1009 to i8
  %1011 = load i32, ptr %43, align 4, !tbaa !9
  %1012 = load i32, ptr %44, align 4, !tbaa !9
  %1013 = load i8, ptr %46, align 1, !tbaa !11
  %1014 = zext i8 %1013 to i32
  %1015 = getelementptr inbounds [16 x i32], ptr %55, i64 0, i64 0
  %1016 = getelementptr inbounds i32, ptr %1015, i64 4
  call void @libxsmm_aarch64_instruction_sve_loadbytes_const_to_vec(ptr noundef %979, i8 noundef zeroext %1010, i32 noundef %1011, i32 noundef %1012, i32 noundef %1014, ptr noundef %1016, i32 noundef 16)
  %1017 = load ptr, ptr %24, align 8, !tbaa !5
  %1018 = load i32, ptr %40, align 4, !tbaa !9
  %1019 = trunc i32 %1018 to i8
  %1020 = zext i8 %1019 to i32
  %1021 = icmp eq i32 0, %1020
  br i1 %1021, label %1027, label %1022

1022:                                             ; preds = %1008
  %1023 = load i32, ptr %40, align 4, !tbaa !9
  %1024 = trunc i32 %1023 to i8
  %1025 = zext i8 %1024 to i32
  %1026 = icmp slt i32 0, %1025
  br i1 %1026, label %1027, label %1045

1027:                                             ; preds = %1022, %1008
  %1028 = load i32, ptr %40, align 4, !tbaa !9
  %1029 = zext i32 %1028 to i64
  %1030 = mul i64 1, %1029
  %1031 = icmp ult i64 %1030, 255
  br i1 %1031, label %1032, label %1036

1032:                                             ; preds = %1027
  %1033 = load i32, ptr %40, align 4, !tbaa !9
  %1034 = zext i32 %1033 to i64
  %1035 = mul i64 1, %1034
  br label %1037

1036:                                             ; preds = %1027
  br label %1037

1037:                                             ; preds = %1036, %1032
  %1038 = phi i64 [ %1035, %1032 ], [ 255, %1036 ]
  %1039 = icmp ule i64 %1038, 255
  br i1 %1039, label %1040, label %1045

1040:                                             ; preds = %1037
  %1041 = load i32, ptr %40, align 4, !tbaa !9
  %1042 = uitofp i32 %1041 to double
  %1043 = fcmp ole double 0.000000e+00, %1042
  br i1 %1043, label %1044, label %1045

1044:                                             ; preds = %1040
  br label %1046

1045:                                             ; preds = %1040, %1037, %1022
  call void @__assert_fail(ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 2821, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_prepare_coeffs_gelu_inv_ps_minimax3_aarch64_sve) #6
  unreachable

1046:                                             ; preds = %1044
  %1047 = load i32, ptr %40, align 4, !tbaa !9
  %1048 = trunc i32 %1047 to i8
  %1049 = load i32, ptr %43, align 4, !tbaa !9
  %1050 = load i32, ptr %44, align 4, !tbaa !9
  %1051 = load i8, ptr %46, align 1, !tbaa !11
  %1052 = zext i8 %1051 to i32
  %1053 = getelementptr inbounds [16 x i32], ptr %55, i64 0, i64 0
  %1054 = getelementptr inbounds i32, ptr %1053, i64 8
  call void @libxsmm_aarch64_instruction_sve_loadbytes_const_to_vec(ptr noundef %1017, i8 noundef zeroext %1048, i32 noundef %1049, i32 noundef %1050, i32 noundef %1052, ptr noundef %1054, i32 noundef 16)
  %1055 = load ptr, ptr %24, align 8, !tbaa !5
  %1056 = load i32, ptr %41, align 4, !tbaa !9
  %1057 = trunc i32 %1056 to i8
  %1058 = zext i8 %1057 to i32
  %1059 = icmp eq i32 0, %1058
  br i1 %1059, label %1065, label %1060

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

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

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

1074:                                             ; preds = %1065
  br label %1075

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

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

1082:                                             ; preds = %1078
  br label %1084

1083:                                             ; preds = %1078, %1075, %1060
  call void @__assert_fail(ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 2822, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_prepare_coeffs_gelu_inv_ps_minimax3_aarch64_sve) #6
  unreachable

1084:                                             ; preds = %1082
  %1085 = load i32, ptr %41, align 4, !tbaa !9
  %1086 = trunc i32 %1085 to i8
  %1087 = load i32, ptr %43, align 4, !tbaa !9
  %1088 = load i32, ptr %44, align 4, !tbaa !9
  %1089 = load i8, ptr %46, align 1, !tbaa !11
  %1090 = zext i8 %1089 to i32
  %1091 = getelementptr inbounds [16 x i32], ptr %55, i64 0, i64 0
  %1092 = getelementptr inbounds i32, ptr %1091, i64 12
  call void @libxsmm_aarch64_instruction_sve_loadbytes_const_to_vec(ptr noundef %1055, i8 noundef zeroext %1086, i32 noundef %1087, i32 noundef %1088, i32 noundef %1090, ptr noundef %1092, i32 noundef 16)
  br label %1102

1093:                                             ; preds = %634, %629
  %1094 = load ptr, ptr %24, align 8, !tbaa !5
  %1095 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !9
  %1096 = icmp ult i32 1, %1095
  br i1 %1096, label %1097, label %1099

1097:                                             ; preds = %1093
  %1098 = load i32, ptr @libxsmm_verbosity, align 4, !tbaa !9
  br label %1100

1099:                                             ; preds = %1093
  br label %1100

1100:                                             ; preds = %1099, %1097
  %1101 = phi i32 [ %1098, %1097 ], [ 1, %1099 ]
  call void @libxsmm_handle_error(ptr noundef %1094, i32 noundef 90005, ptr noundef @__func__.libxsmm_generator_prepare_coeffs_gelu_inv_ps_minimax3_aarch64_sve, ptr noundef @.str.1, i32 noundef 2824, i32 noundef %1101)
  br label %1102

1102:                                             ; preds = %1100, %1084
  br label %1103

1103:                                             ; preds = %1102, %620
  br label %1104

1104:                                             ; preds = %1103, %385
  call void @llvm.lifetime.end.p0(i64 64, ptr %55) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr %54) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr %53) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #5
  ret void
}

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #3 = { "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 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 #5 = { nounwind }
attributes #6 = { 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 = !{!7, !7, i64 0}
!12 = !{!13, !13, i64 0}
!13 = !{!"long long", !7, i64 0}
!14 = !{!15, !10, i64 28}
!15 = !{!"libxsmm_generated_code", !6, i64 0, !10, i64 8, !10, i64 12, !10, i64 16, !10, i64 20, !10, i64 24, !10, i64 28}


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

@.str.1 = external hidden unnamed_addr constant [80 x i8], align 1
@libxsmm_ninit = external local_unnamed_addr global i32, align 4
@libxsmm_verbosity = external local_unnamed_addr global i32, align 4
@__const.libxsmm_generator_prepare_coeffs_gelu_inv_ps_minimax3_aarch64_sve.c0_array = external hidden unnamed_addr constant [16 x i32], align 16
@__const.libxsmm_generator_prepare_coeffs_gelu_inv_ps_minimax3_aarch64_sve.c1_array = external hidden unnamed_addr constant [16 x i32], align 16
@__const.libxsmm_generator_prepare_coeffs_gelu_inv_ps_minimax3_aarch64_sve.c2_array = external hidden unnamed_addr constant [16 x i32], align 16
@__func__.libxsmm_generator_prepare_coeffs_gelu_inv_ps_minimax3_aarch64_sve = external hidden unnamed_addr constant [66 x i8], align 1

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

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

; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #1

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

; Function Attrs: nounwind uwtable
declare dso_local void @libxsmm_aarch64_instruction_broadcast_scalar_to_vec_sve(ptr noundef, i8 noundef zeroext, i32 noundef, i32 noundef, i8 noundef zeroext, i64 noundef) local_unnamed_addr #3

; Function Attrs: nounwind uwtable
declare dso_local void @libxsmm_aarch64_instruction_sve_loadbytes_const_to_vec(ptr noundef, i8 noundef zeroext, i32 noundef, i32 noundef, i32 noundef, ptr noundef, i32 noundef) local_unnamed_addr #3

; Function Attrs: nounwind uwtable
define dso_local void @libxsmm_generator_prepare_coeffs_gelu_inv_ps_minimax3_aarch64_sve(ptr noundef %0, i32 noundef %1, i32 noundef %2, i32 noundef %3, i32 noundef %4, i32 noundef %5, i32 noundef %6, i32 noundef %7, i32 noundef %8, i32 noundef %9, i32 noundef %10, i32 noundef %11, i32 noundef %12, i32 noundef %13, i32 noundef %14, i32 noundef %15, i32 noundef %16, i32 noundef %17, i32 noundef %18, i32 noundef %19, i32 noundef %20, i32 noundef %21, i8 noundef zeroext %22) local_unnamed_addr #3 {
  %24 = alloca [16 x i32], align 16
  %25 = alloca [16 x i32], align 16
  %26 = alloca [16 x i32], align 16
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %24) #4
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(64) %24, ptr noundef nonnull align 16 dereferenceable(64) @__const.libxsmm_generator_prepare_coeffs_gelu_inv_ps_minimax3_aarch64_sve.c0_array, i64 64, i1 false)
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %25) #4
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(64) %25, ptr noundef nonnull align 16 dereferenceable(64) @__const.libxsmm_generator_prepare_coeffs_gelu_inv_ps_minimax3_aarch64_sve.c1_array, i64 64, i1 false)
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %26) #4
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(64) %26, ptr noundef nonnull align 16 dereferenceable(64) @__const.libxsmm_generator_prepare_coeffs_gelu_inv_ps_minimax3_aarch64_sve.c2_array, i64 64, i1 false)
  %27 = trunc i32 %1 to i8
  tail call void @libxsmm_aarch64_instruction_broadcast_scalar_to_vec_sve(ptr noundef %0, i8 noundef zeroext %27, i32 noundef %19, i32 noundef %21, i8 noundef zeroext %22, i64 noundef 1083138047)
  %28 = trunc i32 %2 to i8
  tail call void @libxsmm_aarch64_instruction_broadcast_scalar_to_vec_sve(ptr noundef %0, i8 noundef zeroext %28, i32 noundef %19, i32 noundef %21, i8 noundef zeroext %22, i64 noundef 2147483647)
  %29 = trunc i32 %3 to i8
  tail call void @libxsmm_aarch64_instruction_broadcast_scalar_to_vec_sve(ptr noundef %0, i8 noundef zeroext %29, i32 noundef %19, i32 noundef %21, i8 noundef zeroext %22, i64 noundef 1079863241)
  %30 = trunc i32 %4 to i8
  tail call void @libxsmm_aarch64_instruction_broadcast_scalar_to_vec_sve(ptr noundef %0, i8 noundef zeroext %30, i32 noundef %19, i32 noundef %21, i8 noundef zeroext %22, i64 noundef 1262485504)
  %31 = trunc i32 %5 to i8
  tail call void @libxsmm_aarch64_instruction_broadcast_scalar_to_vec_sve(ptr noundef %0, i8 noundef zeroext %31, i32 noundef %19, i32 noundef %21, i8 noundef zeroext %22, i64 noundef 1056964608)
  %32 = trunc i32 %18 to i8
  tail call void @libxsmm_aarch64_instruction_broadcast_scalar_to_vec_sve(ptr noundef %0, i8 noundef zeroext %32, i32 noundef %19, i32 noundef %21, i8 noundef zeroext %22, i64 noundef 15)
  %33 = getelementptr inbounds i8, ptr %0, i64 28
  %34 = load i32, ptr %33, align 4, !tbaa !5
  %35 = add i32 %34, -2401
  %or.cond = icmp ult i32 %35, 598
  br i1 %or.cond, label %36, label %41

36:                                               ; preds = %23
  %37 = trunc i32 %6 to i8
  %38 = zext i8 %22 to i32
  call void @libxsmm_aarch64_instruction_sve_loadbytes_const_to_vec(ptr noundef nonnull %0, i8 noundef zeroext %37, i32 noundef %19, i32 noundef %20, i32 noundef %38, ptr noundef nonnull %24, i32 noundef 64)
  %39 = trunc i32 %10 to i8
  call void @libxsmm_aarch64_instruction_sve_loadbytes_const_to_vec(ptr noundef nonnull %0, i8 noundef zeroext %39, i32 noundef %19, i32 noundef %20, i32 noundef %38, ptr noundef nonnull %25, i32 noundef 64)
  %40 = trunc i32 %14 to i8
  call void @libxsmm_aarch64_instruction_sve_loadbytes_const_to_vec(ptr noundef nonnull %0, i8 noundef zeroext %40, i32 noundef %19, i32 noundef %20, i32 noundef %38, ptr noundef nonnull %26, i32 noundef 64)
  br label %84

41:                                               ; preds = %23
  %42 = add i32 %34, -2301
  %or.cond284 = icmp ult i32 %42, 100
  br i1 %or.cond284, label %43, label %54

43:                                               ; preds = %41
  %44 = trunc i32 %6 to i8
  %45 = zext i8 %22 to i32
  call void @libxsmm_aarch64_instruction_sve_loadbytes_const_to_vec(ptr noundef nonnull %0, i8 noundef zeroext %44, i32 noundef %19, i32 noundef %20, i32 noundef %45, ptr noundef nonnull %24, i32 noundef 32)
  %46 = trunc i32 %7 to i8
  %47 = getelementptr inbounds i8, ptr %24, i64 32
  call void @libxsmm_aarch64_instruction_sve_loadbytes_const_to_vec(ptr noundef nonnull %0, i8 noundef zeroext %46, i32 noundef %19, i32 noundef %20, i32 noundef %45, ptr noundef nonnull %47, i32 noundef 32)
  %48 = trunc i32 %10 to i8
  call void @libxsmm_aarch64_instruction_sve_loadbytes_const_to_vec(ptr noundef nonnull %0, i8 noundef zeroext %48, i32 noundef %19, i32 noundef %20, i32 noundef %45, ptr noundef nonnull %25, i32 noundef 32)
  %49 = trunc i32 %11 to i8
  %50 = getelementptr inbounds i8, ptr %25, i64 32
  call void @libxsmm_aarch64_instruction_sve_loadbytes_const_to_vec(ptr noundef nonnull %0, i8 noundef zeroext %49, i32 noundef %19, i32 noundef %20, i32 noundef %45, ptr noundef nonnull %50, i32 noundef 32)
  %51 = trunc i32 %14 to i8
  call void @libxsmm_aarch64_instruction_sve_loadbytes_const_to_vec(ptr noundef nonnull %0, i8 noundef zeroext %51, i32 noundef %19, i32 noundef %20, i32 noundef %45, ptr noundef nonnull %26, i32 noundef 32)
  %52 = trunc i32 %15 to i8
  %53 = getelementptr inbounds i8, ptr %26, i64 32
  call void @libxsmm_aarch64_instruction_sve_loadbytes_const_to_vec(ptr noundef nonnull %0, i8 noundef zeroext %52, i32 noundef %19, i32 noundef %20, i32 noundef %45, ptr noundef nonnull %53, i32 noundef 32)
  br label %84

54:                                               ; preds = %41
  %55 = add i32 %34, -2201
  %or.cond285 = icmp ult i32 %55, 100
  br i1 %or.cond285, label %56, label %79

56:                                               ; preds = %54
  %57 = trunc i32 %6 to i8
  %58 = zext i8 %22 to i32
  call void @libxsmm_aarch64_instruction_sve_loadbytes_const_to_vec(ptr noundef nonnull %0, i8 noundef zeroext %57, i32 noundef %19, i32 noundef %20, i32 noundef %58, ptr noundef nonnull %24, i32 noundef 16)
  %59 = trunc i32 %7 to i8
  %60 = getelementptr inbounds i8, ptr %24, i64 16
  call void @libxsmm_aarch64_instruction_sve_loadbytes_const_to_vec(ptr noundef nonnull %0, i8 noundef zeroext %59, i32 noundef %19, i32 noundef %20, i32 noundef %58, ptr noundef nonnull %60, i32 noundef 16)
  %61 = trunc i32 %8 to i8
  %62 = getelementptr inbounds i8, ptr %24, i64 32
  call void @libxsmm_aarch64_instruction_sve_loadbytes_const_to_vec(ptr noundef nonnull %0, i8 noundef zeroext %61, i32 noundef %19, i32 noundef %20, i32 noundef %58, ptr noundef nonnull %62, i32 noundef 16)
  %63 = trunc i32 %9 to i8
  %64 = getelementptr inbounds i8, ptr %24, i64 48
  call void @libxsmm_aarch64_instruction_sve_loadbytes_const_to_vec(ptr noundef nonnull %0, i8 noundef zeroext %63, i32 noundef %19, i32 noundef %20, i32 noundef %58, ptr noundef nonnull %64, i32 noundef 16)
  %65 = trunc i32 %10 to i8
  call void @libxsmm_aarch64_instruction_sve_loadbytes_const_to_vec(ptr noundef nonnull %0, i8 noundef zeroext %65, i32 noundef %19, i32 noundef %20, i32 noundef %58, ptr noundef nonnull %25, i32 noundef 16)
  %66 = trunc i32 %11 to i8
  %67 = getelementptr inbounds i8, ptr %25, i64 16
  call void @libxsmm_aarch64_instruction_sve_loadbytes_const_to_vec(ptr noundef nonnull %0, i8 noundef zeroext %66, i32 noundef %19, i32 noundef %20, i32 noundef %58, ptr noundef nonnull %67, i32 noundef 16)
  %68 = trunc i32 %12 to i8
  %69 = getelementptr inbounds i8, ptr %25, i64 32
  call void @libxsmm_aarch64_instruction_sve_loadbytes_const_to_vec(ptr noundef nonnull %0, i8 noundef zeroext %68, i32 noundef %19, i32 noundef %20, i32 noundef %58, ptr noundef nonnull %69, i32 noundef 16)
  %70 = trunc i32 %13 to i8
  %71 = getelementptr inbounds i8, ptr %25, i64 48
  call void @libxsmm_aarch64_instruction_sve_loadbytes_const_to_vec(ptr noundef nonnull %0, i8 noundef zeroext %70, i32 noundef %19, i32 noundef %20, i32 noundef %58, ptr noundef nonnull %71, i32 noundef 16)
  %72 = trunc i32 %14 to i8
  call void @libxsmm_aarch64_instruction_sve_loadbytes_const_to_vec(ptr noundef nonnull %0, i8 noundef zeroext %72, i32 noundef %19, i32 noundef %20, i32 noundef %58, ptr noundef nonnull %26, i32 noundef 16)
  %73 = trunc i32 %15 to i8
  %74 = getelementptr inbounds i8, ptr %26, i64 16
  call void @libxsmm_aarch64_instruction_sve_loadbytes_const_to_vec(ptr noundef nonnull %0, i8 noundef zeroext %73, i32 noundef %19, i32 noundef %20, i32 noundef %58, ptr noundef nonnull %74, i32 noundef 16)
  %75 = trunc i32 %16 to i8
  %76 = getelementptr inbounds i8, ptr %26, i64 32
  call void @libxsmm_aarch64_instruction_sve_loadbytes_const_to_vec(ptr noundef nonnull %0, i8 noundef zeroext %75, i32 noundef %19, i32 noundef %20, i32 noundef %58, ptr noundef nonnull %76, i32 noundef 16)
  %77 = trunc i32 %17 to i8
  %78 = getelementptr inbounds i8, ptr %26, i64 48
  call void @libxsmm_aarch64_instruction_sve_loadbytes_const_to_vec(ptr noundef nonnull %0, i8 noundef zeroext %77, i32 noundef %19, i32 noundef %20, i32 noundef %58, ptr noundef nonnull %78, i32 noundef 16)
  br label %84

79:                                               ; preds = %54
  %80 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !11
  %81 = icmp ugt i32 %80, 1
  %82 = load i32, ptr @libxsmm_verbosity, align 4
  %83 = select i1 %81, i32 %82, i32 1
  tail call void @libxsmm_handle_error(ptr noundef nonnull %0, i32 noundef 90005, ptr noundef nonnull @__func__.libxsmm_generator_prepare_coeffs_gelu_inv_ps_minimax3_aarch64_sve, ptr noundef nonnull @.str.1, i32 noundef 2824, i32 noundef %83) #4
  br label %84

84:                                               ; preds = %43, %79, %56, %36
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %26) #4
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %25) #4
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %24) #4
  ret void
}

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { nounwind 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 }

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

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


; Effective O3 passes: CorrelatedValuePropagationPass,EarlyCSEPass,GlobalOptPass,IPSCCPPass,InferFunctionAttrsPass,InstCombinePass,SROAPass,SimplifyCFGPass,TailCallElimPass