; LLVM IR from gtreshchev/RuntimeAudioImporter :: Source/ThirdParty/libfvad/src/vad (vad_sp)

; 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.VadInstT_ = type { i32, [4 x i32], %struct.WebRtcSpl_State48khzTo8khz, [12 x i16], [12 x i16], [12 x i16], [12 x i16], i32, i16, i16, [96 x i16], [96 x i16], [6 x i16], [5 x i16], [5 x i16], [4 x i16], [3 x i16], [3 x i16], [3 x i16], [3 x i16], [6 x i16], i16, i32 }
%struct.WebRtcSpl_State48khzTo8khz = type { [8 x i32], [16 x i32], [8 x i32], [8 x i32] }

@.str = external hidden unnamed_addr constant [27 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [108 x i8], align 1
@__PRETTY_FUNCTION__.WebRtcVad_FindMinimum = external hidden unnamed_addr constant [56 x i8], align 1

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

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

; Function Attrs: nounwind uwtable
define dso_local signext i16 @WebRtcVad_FindMinimum(ptr noundef %0, i16 noundef signext %1, i32 noundef %2) #1 {
  %4 = alloca ptr, align 8
  %5 = alloca i16, align 2
  %6 = alloca i32, align 4
  %7 = alloca i32, align 4
  %8 = alloca i32, align 4
  %9 = alloca i32, align 4
  %10 = alloca i32, align 4
  %11 = alloca i16, align 2
  %12 = alloca i16, align 2
  %13 = alloca i32, align 4
  %14 = alloca ptr, align 8
  %15 = alloca ptr, align 8
  store ptr %0, ptr %4, align 8, !tbaa !5
  store i16 %1, ptr %5, align 2, !tbaa !9
  store i32 %2, ptr %6, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #3
  store i32 0, ptr %7, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #3
  store i32 0, ptr %8, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #3
  store i32 -1, ptr %9, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #3
  %16 = load i32, ptr %6, align 4, !tbaa !11
  %17 = shl i32 %16, 4
  store i32 %17, ptr %10, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 2, ptr %11) #3
  store i16 1600, ptr %11, align 2, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 2, ptr %12) #3
  store i16 0, ptr %12, align 2, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #3
  store i32 0, ptr %13, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #3
  %18 = load ptr, ptr %4, align 8, !tbaa !5
  %19 = getelementptr inbounds %struct.VadInstT_, ptr %18, i32 0, i32 10
  %20 = load i32, ptr %10, align 4, !tbaa !11
  %21 = sext i32 %20 to i64
  %22 = getelementptr inbounds [96 x i16], ptr %19, i64 0, i64 %21
  store ptr %22, ptr %14, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #3
  %23 = load ptr, ptr %4, align 8, !tbaa !5
  %24 = getelementptr inbounds %struct.VadInstT_, ptr %23, i32 0, i32 11
  %25 = load i32, ptr %10, align 4, !tbaa !11
  %26 = sext i32 %25 to i64
  %27 = getelementptr inbounds [96 x i16], ptr %24, i64 0, i64 %26
  store ptr %27, ptr %15, align 8, !tbaa !5
  %28 = load i32, ptr %6, align 4, !tbaa !11
  %29 = icmp slt i32 %28, 6
  br i1 %29, label %30, label %31

30:                                               ; preds = %3
  br label %32

31:                                               ; preds = %3
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 69, ptr noundef @__PRETTY_FUNCTION__.WebRtcVad_FindMinimum) #4
  unreachable

32:                                               ; preds = %30
  store i32 0, ptr %7, align 4, !tbaa !11
  br label %33

33:                                               ; preds = %86, %32
  %34 = load i32, ptr %7, align 4, !tbaa !11
  %35 = icmp slt i32 %34, 16
  br i1 %35, label %36, label %89

36:                                               ; preds = %33
  %37 = load ptr, ptr %14, align 8, !tbaa !5
  %38 = load i32, ptr %7, align 4, !tbaa !11
  %39 = sext i32 %38 to i64
  %40 = getelementptr inbounds i16, ptr %37, i64 %39
  %41 = load i16, ptr %40, align 2, !tbaa !9
  %42 = sext i16 %41 to i32
  %43 = icmp ne i32 %42, 100
  br i1 %43, label %44, label %51

44:                                               ; preds = %36
  %45 = load ptr, ptr %14, align 8, !tbaa !5
  %46 = load i32, ptr %7, align 4, !tbaa !11
  %47 = sext i32 %46 to i64
  %48 = getelementptr inbounds i16, ptr %45, i64 %47
  %49 = load i16, ptr %48, align 2, !tbaa !9
  %50 = add i16 %49, 1
  store i16 %50, ptr %48, align 2, !tbaa !9
  br label %85

51:                                               ; preds = %36
  %52 = load i32, ptr %7, align 4, !tbaa !11
  store i32 %52, ptr %8, align 4, !tbaa !11
  br label %53

53:                                               ; preds = %77, %51
  %54 = load i32, ptr %8, align 4, !tbaa !11
  %55 = icmp slt i32 %54, 16
  br i1 %55, label %56, label %80

56:                                               ; preds = %53
  %57 = load ptr, ptr %15, align 8, !tbaa !5
  %58 = load i32, ptr %8, align 4, !tbaa !11
  %59 = add nsw i32 %58, 1
  %60 = sext i32 %59 to i64
  %61 = getelementptr inbounds i16, ptr %57, i64 %60
  %62 = load i16, ptr %61, align 2, !tbaa !9
  %63 = load ptr, ptr %15, align 8, !tbaa !5
  %64 = load i32, ptr %8, align 4, !tbaa !11
  %65 = sext i32 %64 to i64
  %66 = getelementptr inbounds i16, ptr %63, i64 %65
  store i16 %62, ptr %66, align 2, !tbaa !9
  %67 = load ptr, ptr %14, align 8, !tbaa !5
  %68 = load i32, ptr %8, align 4, !tbaa !11
  %69 = add nsw i32 %68, 1
  %70 = sext i32 %69 to i64
  %71 = getelementptr inbounds i16, ptr %67, i64 %70
  %72 = load i16, ptr %71, align 2, !tbaa !9
  %73 = load ptr, ptr %14, align 8, !tbaa !5
  %74 = load i32, ptr %8, align 4, !tbaa !11
  %75 = sext i32 %74 to i64
  %76 = getelementptr inbounds i16, ptr %73, i64 %75
  store i16 %72, ptr %76, align 2, !tbaa !9
  br label %77

77:                                               ; preds = %56
  %78 = load i32, ptr %8, align 4, !tbaa !11
  %79 = add nsw i32 %78, 1
  store i32 %79, ptr %8, align 4, !tbaa !11
  br label %53, !llvm.loop !13

80:                                               ; preds = %53
  %81 = load ptr, ptr %14, align 8, !tbaa !5
  %82 = getelementptr inbounds i16, ptr %81, i64 15
  store i16 101, ptr %82, align 2, !tbaa !9
  %83 = load ptr, ptr %15, align 8, !tbaa !5
  %84 = getelementptr inbounds i16, ptr %83, i64 15
  store i16 10000, ptr %84, align 2, !tbaa !9
  br label %85

85:                                               ; preds = %80, %44
  br label %86

86:                                               ; preds = %85
  %87 = load i32, ptr %7, align 4, !tbaa !11
  %88 = add nsw i32 %87, 1
  store i32 %88, ptr %7, align 4, !tbaa !11
  br label %33, !llvm.loop !15

89:                                               ; preds = %33
  %90 = load i16, ptr %5, align 2, !tbaa !9
  %91 = sext i16 %90 to i32
  %92 = load ptr, ptr %15, align 8, !tbaa !5
  %93 = getelementptr inbounds i16, ptr %92, i64 7
  %94 = load i16, ptr %93, align 2, !tbaa !9
  %95 = sext i16 %94 to i32
  %96 = icmp slt i32 %91, %95
  br i1 %96, label %97, label %168

97:                                               ; preds = %89
  %98 = load i16, ptr %5, align 2, !tbaa !9
  %99 = sext i16 %98 to i32
  %100 = load ptr, ptr %15, align 8, !tbaa !5
  %101 = getelementptr inbounds i16, ptr %100, i64 3
  %102 = load i16, ptr %101, align 2, !tbaa !9
  %103 = sext i16 %102 to i32
  %104 = icmp slt i32 %99, %103
  br i1 %104, label %105, label %136

105:                                              ; preds = %97
  %106 = load i16, ptr %5, align 2, !tbaa !9
  %107 = sext i16 %106 to i32
  %108 = load ptr, ptr %15, align 8, !tbaa !5
  %109 = getelementptr inbounds i16, ptr %108, i64 1
  %110 = load i16, ptr %109, align 2, !tbaa !9
  %111 = sext i16 %110 to i32
  %112 = icmp slt i32 %107, %111
  br i1 %112, label %113, label %124

113:                                              ; preds = %105
  %114 = load i16, ptr %5, align 2, !tbaa !9
  %115 = sext i16 %114 to i32
  %116 = load ptr, ptr %15, align 8, !tbaa !5
  %117 = getelementptr inbounds i16, ptr %116, i64 0
  %118 = load i16, ptr %117, align 2, !tbaa !9
  %119 = sext i16 %118 to i32
  %120 = icmp slt i32 %115, %119
  br i1 %120, label %121, label %122

121:                                              ; preds = %113
  store i32 0, ptr %9, align 4, !tbaa !11
  br label %123

122:                                              ; preds = %113
  store i32 1, ptr %9, align 4, !tbaa !11
  br label %123

123:                                              ; preds = %122, %121
  br label %135

124:                                              ; preds = %105
  %125 = load i16, ptr %5, align 2, !tbaa !9
  %126 = sext i16 %125 to i32
  %127 = load ptr, ptr %15, align 8, !tbaa !5
  %128 = getelementptr inbounds i16, ptr %127, i64 2
  %129 = load i16, ptr %128, align 2, !tbaa !9
  %130 = sext i16 %129 to i32
  %131 = icmp slt i32 %126, %130
  br i1 %131, label %132, label %133

132:                                              ; preds = %124
  store i32 2, ptr %9, align 4, !tbaa !11
  br label %134

133:                                              ; preds = %124
  store i32 3, ptr %9, align 4, !tbaa !11
  br label %134

134:                                              ; preds = %133, %132
  br label %135

135:                                              ; preds = %134, %123
  br label %167

136:                                              ; preds = %97
  %137 = load i16, ptr %5, align 2, !tbaa !9
  %138 = sext i16 %137 to i32
  %139 = load ptr, ptr %15, align 8, !tbaa !5
  %140 = getelementptr inbounds i16, ptr %139, i64 5
  %141 = load i16, ptr %140, align 2, !tbaa !9
  %142 = sext i16 %141 to i32
  %143 = icmp slt i32 %138, %142
  br i1 %143, label %144, label %155

144:                                              ; preds = %136
  %145 = load i16, ptr %5, align 2, !tbaa !9
  %146 = sext i16 %145 to i32
  %147 = load ptr, ptr %15, align 8, !tbaa !5
  %148 = getelementptr inbounds i16, ptr %147, i64 4
  %149 = load i16, ptr %148, align 2, !tbaa !9
  %150 = sext i16 %149 to i32
  %151 = icmp slt i32 %146, %150
  br i1 %151, label %152, label %153

152:                                              ; preds = %144
  store i32 4, ptr %9, align 4, !tbaa !11
  br label %154

153:                                              ; preds = %144
  store i32 5, ptr %9, align 4, !tbaa !11
  br label %154

154:                                              ; preds = %153, %152
  br label %166

155:                                              ; preds = %136
  %156 = load i16, ptr %5, align 2, !tbaa !9
  %157 = sext i16 %156 to i32
  %158 = load ptr, ptr %15, align 8, !tbaa !5
  %159 = getelementptr inbounds i16, ptr %158, i64 6
  %160 = load i16, ptr %159, align 2, !tbaa !9
  %161 = sext i16 %160 to i32
  %162 = icmp slt i32 %157, %161
  br i1 %162, label %163, label %164

163:                                              ; preds = %155
  store i32 6, ptr %9, align 4, !tbaa !11
  br label %165

164:                                              ; preds = %155
  store i32 7, ptr %9, align 4, !tbaa !11
  br label %165

165:                                              ; preds = %164, %163
  br label %166

166:                                              ; preds = %165, %154
  br label %167

167:                                              ; preds = %166, %135
  br label %248

168:                                              ; preds = %89
  %169 = load i16, ptr %5, align 2, !tbaa !9
  %170 = sext i16 %169 to i32
  %171 = load ptr, ptr %15, align 8, !tbaa !5
  %172 = getelementptr inbounds i16, ptr %171, i64 15
  %173 = load i16, ptr %172, align 2, !tbaa !9
  %174 = sext i16 %173 to i32
  %175 = icmp slt i32 %170, %174
  br i1 %175, label %176, label %247

176:                                              ; preds = %168
  %177 = load i16, ptr %5, align 2, !tbaa !9
  %178 = sext i16 %177 to i32
  %179 = load ptr, ptr %15, align 8, !tbaa !5
  %180 = getelementptr inbounds i16, ptr %179, i64 11
  %181 = load i16, ptr %180, align 2, !tbaa !9
  %182 = sext i16 %181 to i32
  %183 = icmp slt i32 %178, %182
  br i1 %183, label %184, label %215

184:                                              ; preds = %176
  %185 = load i16, ptr %5, align 2, !tbaa !9
  %186 = sext i16 %185 to i32
  %187 = load ptr, ptr %15, align 8, !tbaa !5
  %188 = getelementptr inbounds i16, ptr %187, i64 9
  %189 = load i16, ptr %188, align 2, !tbaa !9
  %190 = sext i16 %189 to i32
  %191 = icmp slt i32 %186, %190
  br i1 %191, label %192, label %203

192:                                              ; preds = %184
  %193 = load i16, ptr %5, align 2, !tbaa !9
  %194 = sext i16 %193 to i32
  %195 = load ptr, ptr %15, align 8, !tbaa !5
  %196 = getelementptr inbounds i16, ptr %195, i64 8
  %197 = load i16, ptr %196, align 2, !tbaa !9
  %198 = sext i16 %197 to i32
  %199 = icmp slt i32 %194, %198
  br i1 %199, label %200, label %201

200:                                              ; preds = %192
  store i32 8, ptr %9, align 4, !tbaa !11
  br label %202

201:                                              ; preds = %192
  store i32 9, ptr %9, align 4, !tbaa !11
  br label %202

202:                                              ; preds = %201, %200
  br label %214

203:                                              ; preds = %184
  %204 = load i16, ptr %5, align 2, !tbaa !9
  %205 = sext i16 %204 to i32
  %206 = load ptr, ptr %15, align 8, !tbaa !5
  %207 = getelementptr inbounds i16, ptr %206, i64 10
  %208 = load i16, ptr %207, align 2, !tbaa !9
  %209 = sext i16 %208 to i32
  %210 = icmp slt i32 %205, %209
  br i1 %210, label %211, label %212

211:                                              ; preds = %203
  store i32 10, ptr %9, align 4, !tbaa !11
  br label %213

212:                                              ; preds = %203
  store i32 11, ptr %9, align 4, !tbaa !11
  br label %213

213:                                              ; preds = %212, %211
  br label %214

214:                                              ; preds = %213, %202
  br label %246

215:                                              ; preds = %176
  %216 = load i16, ptr %5, align 2, !tbaa !9
  %217 = sext i16 %216 to i32
  %218 = load ptr, ptr %15, align 8, !tbaa !5
  %219 = getelementptr inbounds i16, ptr %218, i64 13
  %220 = load i16, ptr %219, align 2, !tbaa !9
  %221 = sext i16 %220 to i32
  %222 = icmp slt i32 %217, %221
  br i1 %222, label %223, label %234

223:                                              ; preds = %215
  %224 = load i16, ptr %5, align 2, !tbaa !9
  %225 = sext i16 %224 to i32
  %226 = load ptr, ptr %15, align 8, !tbaa !5
  %227 = getelementptr inbounds i16, ptr %226, i64 12
  %228 = load i16, ptr %227, align 2, !tbaa !9
  %229 = sext i16 %228 to i32
  %230 = icmp slt i32 %225, %229
  br i1 %230, label %231, label %232

231:                                              ; preds = %223
  store i32 12, ptr %9, align 4, !tbaa !11
  br label %233

232:                                              ; preds = %223
  store i32 13, ptr %9, align 4, !tbaa !11
  br label %233

233:                                              ; preds = %232, %231
  br label %245

234:                                              ; preds = %215
  %235 = load i16, ptr %5, align 2, !tbaa !9
  %236 = sext i16 %235 to i32
  %237 = load ptr, ptr %15, align 8, !tbaa !5
  %238 = getelementptr inbounds i16, ptr %237, i64 14
  %239 = load i16, ptr %238, align 2, !tbaa !9
  %240 = sext i16 %239 to i32
  %241 = icmp slt i32 %236, %240
  br i1 %241, label %242, label %243

242:                                              ; preds = %234
  store i32 14, ptr %9, align 4, !tbaa !11
  br label %244

243:                                              ; preds = %234
  store i32 15, ptr %9, align 4, !tbaa !11
  br label %244

244:                                              ; preds = %243, %242
  br label %245

245:                                              ; preds = %244, %233
  br label %246

246:                                              ; preds = %245, %214
  br label %247

247:                                              ; preds = %246, %168
  br label %248

248:                                              ; preds = %247, %167
  %249 = load i32, ptr %9, align 4, !tbaa !11
  %250 = icmp sgt i32 %249, -1
  br i1 %250, label %251, label %290

251:                                              ; preds = %248
  store i32 15, ptr %7, align 4, !tbaa !11
  br label %252

252:                                              ; preds = %277, %251
  %253 = load i32, ptr %7, align 4, !tbaa !11
  %254 = load i32, ptr %9, align 4, !tbaa !11
  %255 = icmp sgt i32 %253, %254
  br i1 %255, label %256, label %280

256:                                              ; preds = %252
  %257 = load ptr, ptr %15, align 8, !tbaa !5
  %258 = load i32, ptr %7, align 4, !tbaa !11
  %259 = sub nsw i32 %258, 1
  %260 = sext i32 %259 to i64
  %261 = getelementptr inbounds i16, ptr %257, i64 %260
  %262 = load i16, ptr %261, align 2, !tbaa !9
  %263 = load ptr, ptr %15, align 8, !tbaa !5
  %264 = load i32, ptr %7, align 4, !tbaa !11
  %265 = sext i32 %264 to i64
  %266 = getelementptr inbounds i16, ptr %263, i64 %265
  store i16 %262, ptr %266, align 2, !tbaa !9
  %267 = load ptr, ptr %14, align 8, !tbaa !5
  %268 = load i32, ptr %7, align 4, !tbaa !11
  %269 = sub nsw i32 %268, 1
  %270 = sext i32 %269 to i64
  %271 = getelementptr inbounds i16, ptr %267, i64 %270
  %272 = load i16, ptr %271, align 2, !tbaa !9
  %273 = load ptr, ptr %14, align 8, !tbaa !5
  %274 = load i32, ptr %7, align 4, !tbaa !11
  %275 = sext i32 %274 to i64
  %276 = getelementptr inbounds i16, ptr %273, i64 %275
  store i16 %272, ptr %276, align 2, !tbaa !9
  br label %277

277:                                              ; preds = %256
  %278 = load i32, ptr %7, align 4, !tbaa !11
  %279 = add nsw i32 %278, -1
  store i32 %279, ptr %7, align 4, !tbaa !11
  br label %252, !llvm.loop !16

280:                                              ; preds = %252
  %281 = load i16, ptr %5, align 2, !tbaa !9
  %282 = load ptr, ptr %15, align 8, !tbaa !5
  %283 = load i32, ptr %9, align 4, !tbaa !11
  %284 = sext i32 %283 to i64
  %285 = getelementptr inbounds i16, ptr %282, i64 %284
  store i16 %281, ptr %285, align 2, !tbaa !9
  %286 = load ptr, ptr %14, align 8, !tbaa !5
  %287 = load i32, ptr %9, align 4, !tbaa !11
  %288 = sext i32 %287 to i64
  %289 = getelementptr inbounds i16, ptr %286, i64 %288
  store i16 1, ptr %289, align 2, !tbaa !9
  br label %290

290:                                              ; preds = %280, %248
  %291 = load ptr, ptr %4, align 8, !tbaa !5
  %292 = getelementptr inbounds %struct.VadInstT_, ptr %291, i32 0, i32 7
  %293 = load i32, ptr %292, align 4, !tbaa !17
  %294 = icmp sgt i32 %293, 2
  br i1 %294, label %295, label %299

295:                                              ; preds = %290
  %296 = load ptr, ptr %15, align 8, !tbaa !5
  %297 = getelementptr inbounds i16, ptr %296, i64 2
  %298 = load i16, ptr %297, align 2, !tbaa !9
  store i16 %298, ptr %11, align 2, !tbaa !9
  br label %309

299:                                              ; preds = %290
  %300 = load ptr, ptr %4, align 8, !tbaa !5
  %301 = getelementptr inbounds %struct.VadInstT_, ptr %300, i32 0, i32 7
  %302 = load i32, ptr %301, align 4, !tbaa !17
  %303 = icmp sgt i32 %302, 0
  br i1 %303, label %304, label %308

304:                                              ; preds = %299
  %305 = load ptr, ptr %15, align 8, !tbaa !5
  %306 = getelementptr inbounds i16, ptr %305, i64 0
  %307 = load i16, ptr %306, align 2, !tbaa !9
  store i16 %307, ptr %11, align 2, !tbaa !9
  br label %308

308:                                              ; preds = %304, %299
  br label %309

309:                                              ; preds = %308, %295
  %310 = load ptr, ptr %4, align 8, !tbaa !5
  %311 = getelementptr inbounds %struct.VadInstT_, ptr %310, i32 0, i32 7
  %312 = load i32, ptr %311, align 4, !tbaa !17
  %313 = icmp sgt i32 %312, 0
  br i1 %313, label %314, label %328

314:                                              ; preds = %309
  %315 = load i16, ptr %11, align 2, !tbaa !9
  %316 = sext i16 %315 to i32
  %317 = load ptr, ptr %4, align 8, !tbaa !5
  %318 = getelementptr inbounds %struct.VadInstT_, ptr %317, i32 0, i32 12
  %319 = load i32, ptr %6, align 4, !tbaa !11
  %320 = sext i32 %319 to i64
  %321 = getelementptr inbounds [6 x i16], ptr %318, i64 0, i64 %320
  %322 = load i16, ptr %321, align 2, !tbaa !9
  %323 = sext i16 %322 to i32
  %324 = icmp slt i32 %316, %323
  br i1 %324, label %325, label %326

325:                                              ; preds = %314
  store i16 6553, ptr %12, align 2, !tbaa !9
  br label %327

326:                                              ; preds = %314
  store i16 32439, ptr %12, align 2, !tbaa !9
  br label %327

327:                                              ; preds = %326, %325
  br label %328

328:                                              ; preds = %327, %309
  %329 = load i16, ptr %12, align 2, !tbaa !9
  %330 = sext i16 %329 to i32
  %331 = add nsw i32 %330, 1
  %332 = load ptr, ptr %4, align 8, !tbaa !5
  %333 = getelementptr inbounds %struct.VadInstT_, ptr %332, i32 0, i32 12
  %334 = load i32, ptr %6, align 4, !tbaa !11
  %335 = sext i32 %334 to i64
  %336 = getelementptr inbounds [6 x i16], ptr %333, i64 0, i64 %335
  %337 = load i16, ptr %336, align 2, !tbaa !9
  %338 = sext i16 %337 to i32
  %339 = mul nsw i32 %331, %338
  store i32 %339, ptr %13, align 4, !tbaa !11
  %340 = load i16, ptr %12, align 2, !tbaa !9
  %341 = sext i16 %340 to i32
  %342 = sub nsw i32 32767, %341
  %343 = load i16, ptr %11, align 2, !tbaa !9
  %344 = sext i16 %343 to i32
  %345 = mul nsw i32 %342, %344
  %346 = load i32, ptr %13, align 4, !tbaa !11
  %347 = add nsw i32 %346, %345
  store i32 %347, ptr %13, align 4, !tbaa !11
  %348 = load i32, ptr %13, align 4, !tbaa !11
  %349 = add nsw i32 %348, 16384
  store i32 %349, ptr %13, align 4, !tbaa !11
  %350 = load i32, ptr %13, align 4, !tbaa !11
  %351 = ashr i32 %350, 15
  %352 = trunc i32 %351 to i16
  %353 = load ptr, ptr %4, align 8, !tbaa !5
  %354 = getelementptr inbounds %struct.VadInstT_, ptr %353, i32 0, i32 12
  %355 = load i32, ptr %6, align 4, !tbaa !11
  %356 = sext i32 %355 to i64
  %357 = getelementptr inbounds [6 x i16], ptr %354, i64 0, i64 %356
  store i16 %352, ptr %357, align 2, !tbaa !9
  %358 = load ptr, ptr %4, align 8, !tbaa !5
  %359 = getelementptr inbounds %struct.VadInstT_, ptr %358, i32 0, i32 12
  %360 = load i32, ptr %6, align 4, !tbaa !11
  %361 = sext i32 %360 to i64
  %362 = getelementptr inbounds [6 x i16], ptr %359, i64 0, i64 %361
  %363 = load i16, ptr %362, align 2, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #3
  call void @llvm.lifetime.end.p0(i64 2, ptr %12) #3
  call void @llvm.lifetime.end.p0(i64 2, ptr %11) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #3
  ret i16 %363
}

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

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { 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 }
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, !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 = !{!"short", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"int", !7, i64 0}
!13 = distinct !{!13, !14}
!14 = !{!"llvm.loop.mustprogress"}
!15 = distinct !{!15, !14}
!16 = distinct !{!16, !14}
!17 = !{!18, !12, i64 276}
!18 = !{!"VadInstT_", !12, i64 0, !7, i64 4, !19, i64 20, !7, i64 180, !7, i64 204, !7, i64 228, !7, i64 252, !12, i64 276, !10, i64 280, !10, i64 282, !7, i64 284, !7, i64 476, !7, i64 668, !7, i64 680, !7, i64 690, !7, i64 700, !7, i64 708, !7, i64 714, !7, i64 720, !7, i64 726, !7, i64 732, !10, i64 744, !12, i64 748}
!19 = !{!"", !7, i64 0, !7, i64 32, !7, i64 96, !7, i64 128}


; 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 [27 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [108 x i8], align 1
@__PRETTY_FUNCTION__.WebRtcVad_FindMinimum = external hidden unnamed_addr constant [56 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local signext i16 @WebRtcVad_FindMinimum(ptr nocapture noundef %0, i16 noundef signext %1, i32 noundef %2) local_unnamed_addr #0 {
  %4 = shl i32 %2, 4
  %5 = getelementptr inbounds i8, ptr %0, i64 284
  %6 = sext i32 %4 to i64
  %7 = getelementptr inbounds [96 x i16], ptr %5, i64 0, i64 %6
  %8 = getelementptr inbounds i8, ptr %0, i64 476
  %9 = getelementptr inbounds [96 x i16], ptr %8, i64 0, i64 %6
  %10 = icmp slt i32 %2, 6
  br i1 %10, label %.preheader113, label %13

.preheader113:                                    ; preds = %3
  %11 = getelementptr inbounds i8, ptr %7, i64 30
  %12 = getelementptr inbounds i8, ptr %9, i64 30
  br label %14

13:                                               ; preds = %3
  tail call void @__assert_fail(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i32 noundef 69, ptr noundef nonnull @__PRETTY_FUNCTION__.WebRtcVad_FindMinimum) #2
  unreachable

14:                                               ; preds = %.preheader113, %32
  %indvars.iv = phi i64 [ 0, %.preheader113 ], [ %indvars.iv.next, %32 ]
  %15 = sub nsw i64 16, %indvars.iv
  %16 = getelementptr inbounds i16, ptr %7, i64 %indvars.iv
  %17 = load i16, ptr %16, align 2, !tbaa !5
  %.not = icmp eq i16 %17, 100
  br i1 %.not, label %.lr.ph.preheader, label %24

.lr.ph.preheader:                                 ; preds = %14
  %min.iters.check = icmp ult i64 %15, 8
  br i1 %min.iters.check, label %.lr.ph.preheader140, label %vector.ph

.lr.ph.preheader140:                              ; preds = %middle.block, %.lr.ph.preheader
  %indvars.iv122.ph = phi i64 [ %indvars.iv, %.lr.ph.preheader ], [ %ind.end, %middle.block ]
  br label %.lr.ph

vector.ph:                                        ; preds = %.lr.ph.preheader
  %n.vec = and i64 %15, -8
  %ind.end = add i64 %indvars.iv, %n.vec
  br label %vector.body

vector.body:                                      ; preds = %vector.body, %vector.ph
  %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
  %offset.idx = add i64 %indvars.iv, %index
  %18 = add nuw nsw i64 %offset.idx, 1
  %19 = getelementptr inbounds i16, ptr %9, i64 %18
  %wide.load = load <8 x i16>, ptr %19, align 2, !tbaa !5
  %20 = getelementptr inbounds i16, ptr %9, i64 %offset.idx
  store <8 x i16> %wide.load, ptr %20, align 2, !tbaa !5
  %21 = getelementptr inbounds i16, ptr %7, i64 %18
  %wide.load139 = load <8 x i16>, ptr %21, align 2, !tbaa !5
  %22 = getelementptr inbounds i16, ptr %7, i64 %offset.idx
  store <8 x i16> %wide.load139, ptr %22, align 2, !tbaa !5
  %index.next = add nuw i64 %index, 8
  %23 = icmp eq i64 %index.next, %n.vec
  br i1 %23, label %middle.block, label %vector.body, !llvm.loop !9

middle.block:                                     ; preds = %vector.body
  %cmp.n = icmp eq i64 %15, %n.vec
  br i1 %cmp.n, label %._crit_edge, label %.lr.ph.preheader140

24:                                               ; preds = %14
  %25 = add i16 %17, 1
  store i16 %25, ptr %16, align 2, !tbaa !5
  br label %32

.lr.ph:                                           ; preds = %.lr.ph.preheader140, %.lr.ph
  %indvars.iv122 = phi i64 [ %indvars.iv.next123, %.lr.ph ], [ %indvars.iv122.ph, %.lr.ph.preheader140 ]
  %indvars.iv.next123 = add nuw nsw i64 %indvars.iv122, 1
  %26 = getelementptr inbounds i16, ptr %9, i64 %indvars.iv.next123
  %27 = load i16, ptr %26, align 2, !tbaa !5
  %28 = getelementptr inbounds i16, ptr %9, i64 %indvars.iv122
  store i16 %27, ptr %28, align 2, !tbaa !5
  %29 = getelementptr inbounds i16, ptr %7, i64 %indvars.iv.next123
  %30 = load i16, ptr %29, align 2, !tbaa !5
  %31 = getelementptr inbounds i16, ptr %7, i64 %indvars.iv122
  store i16 %30, ptr %31, align 2, !tbaa !5
  %exitcond.not = icmp eq i64 %indvars.iv.next123, 16
  br i1 %exitcond.not, label %._crit_edge, label %.lr.ph, !llvm.loop !13

._crit_edge:                                      ; preds = %.lr.ph, %middle.block
  store i16 101, ptr %11, align 2, !tbaa !5
  store i16 10000, ptr %12, align 2, !tbaa !5
  br label %32

32:                                               ; preds = %24, %._crit_edge
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond126.not = icmp eq i64 %indvars.iv.next, 16
  br i1 %exitcond126.not, label %33, label %14, !llvm.loop !14

33:                                               ; preds = %32
  %34 = getelementptr inbounds i8, ptr %9, i64 14
  %35 = load i16, ptr %34, align 2, !tbaa !5
  %36 = icmp sgt i16 %35, %1
  br i1 %36, label %37, label %64

37:                                               ; preds = %33
  %38 = getelementptr inbounds i8, ptr %9, i64 6
  %39 = load i16, ptr %38, align 2, !tbaa !5
  %40 = icmp sgt i16 %39, %1
  br i1 %40, label %41, label %52

41:                                               ; preds = %37
  %42 = getelementptr inbounds i8, ptr %9, i64 2
  %43 = load i16, ptr %42, align 2, !tbaa !5
  %44 = icmp sgt i16 %43, %1
  br i1 %44, label %45, label %48

45:                                               ; preds = %41
  %46 = load i16, ptr %9, align 2, !tbaa !5
  %47 = icmp sle i16 %46, %1
  %. = zext i1 %47 to i64
  br label %.lr.ph119.preheader

48:                                               ; preds = %41
  %49 = getelementptr inbounds i8, ptr %9, i64 4
  %50 = load i16, ptr %49, align 2, !tbaa !5
  %51 = icmp sgt i16 %50, %1
  %.100 = select i1 %51, i64 2, i64 3
  br label %.lr.ph119.preheader

52:                                               ; preds = %37
  %53 = getelementptr inbounds i8, ptr %9, i64 10
  %54 = load i16, ptr %53, align 2, !tbaa !5
  %55 = icmp sgt i16 %54, %1
  br i1 %55, label %56, label %60

56:                                               ; preds = %52
  %57 = getelementptr inbounds i8, ptr %9, i64 8
  %58 = load i16, ptr %57, align 2, !tbaa !5
  %59 = icmp sgt i16 %58, %1
  %.101 = select i1 %59, i64 4, i64 5
  br label %.lr.ph119.preheader

60:                                               ; preds = %52
  %61 = getelementptr inbounds i8, ptr %9, i64 12
  %62 = load i16, ptr %61, align 2, !tbaa !5
  %63 = icmp sgt i16 %62, %1
  %.102 = select i1 %63, i64 6, i64 7
  br label %.lr.ph119.preheader

64:                                               ; preds = %33
  %65 = load i16, ptr %12, align 2, !tbaa !5
  %66 = icmp sgt i16 %65, %1
  br i1 %66, label %67, label %.thread

67:                                               ; preds = %64
  %68 = getelementptr inbounds i8, ptr %9, i64 22
  %69 = load i16, ptr %68, align 2, !tbaa !5
  %70 = icmp sgt i16 %69, %1
  br i1 %70, label %71, label %83

71:                                               ; preds = %67
  %72 = getelementptr inbounds i8, ptr %9, i64 18
  %73 = load i16, ptr %72, align 2, !tbaa !5
  %74 = icmp sgt i16 %73, %1
  br i1 %74, label %75, label %79

75:                                               ; preds = %71
  %76 = getelementptr inbounds i8, ptr %9, i64 16
  %77 = load i16, ptr %76, align 2, !tbaa !5
  %78 = icmp sgt i16 %77, %1
  %.103 = select i1 %78, i64 8, i64 9
  br label %.lr.ph119.preheader

79:                                               ; preds = %71
  %80 = getelementptr inbounds i8, ptr %9, i64 20
  %81 = load i16, ptr %80, align 2, !tbaa !5
  %82 = icmp sgt i16 %81, %1
  %.104 = select i1 %82, i64 10, i64 11
  br label %.lr.ph119.preheader

83:                                               ; preds = %67
  %84 = getelementptr inbounds i8, ptr %9, i64 26
  %85 = load i16, ptr %84, align 2, !tbaa !5
  %86 = icmp sgt i16 %85, %1
  br i1 %86, label %87, label %91

87:                                               ; preds = %83
  %88 = getelementptr inbounds i8, ptr %9, i64 24
  %89 = load i16, ptr %88, align 2, !tbaa !5
  %90 = icmp sgt i16 %89, %1
  %.105 = select i1 %90, i64 12, i64 13
  br label %.lr.ph119.preheader

91:                                               ; preds = %83
  %92 = getelementptr inbounds i8, ptr %9, i64 28
  %93 = load i16, ptr %92, align 2, !tbaa !5
  %94 = icmp sgt i16 %93, %1
  br i1 %94, label %.lr.ph119.preheader, label %._crit_edge120

.lr.ph119.preheader:                              ; preds = %91, %45, %48, %56, %60, %75, %79, %87
  %.096.ph = phi i64 [ %.105, %87 ], [ %.104, %79 ], [ %.103, %75 ], [ %.102, %60 ], [ %.101, %56 ], [ %.100, %48 ], [ %., %45 ], [ 14, %91 ]
  %95 = xor i64 %.096.ph, 15
  %xtraiter = and i64 %95, 1
  %96 = icmp eq i64 %.096.ph, 14
  br i1 %96, label %._crit_edge120.loopexit.unr-lcssa, label %.lr.ph119.preheader.new

.lr.ph119.preheader.new:                          ; preds = %.lr.ph119.preheader
  %unroll_iter = and i64 %95, 14
  br label %.lr.ph119

.lr.ph119:                                        ; preds = %.lr.ph119, %.lr.ph119.preheader.new
  %indvars.iv127 = phi i64 [ 15, %.lr.ph119.preheader.new ], [ %indvars.iv.next128.1, %.lr.ph119 ]
  %niter = phi i64 [ 0, %.lr.ph119.preheader.new ], [ %niter.next.1, %.lr.ph119 ]
  %indvars.iv.next128 = add nsw i64 %indvars.iv127, -1
  %97 = getelementptr inbounds i16, ptr %9, i64 %indvars.iv.next128
  %98 = load i16, ptr %97, align 2, !tbaa !5
  %99 = getelementptr inbounds i16, ptr %9, i64 %indvars.iv127
  store i16 %98, ptr %99, align 2, !tbaa !5
  %100 = getelementptr inbounds i16, ptr %7, i64 %indvars.iv.next128
  %101 = load i16, ptr %100, align 2, !tbaa !5
  %102 = getelementptr inbounds i16, ptr %7, i64 %indvars.iv127
  store i16 %101, ptr %102, align 2, !tbaa !5
  %indvars.iv.next128.1 = add nsw i64 %indvars.iv127, -2
  %103 = getelementptr inbounds i16, ptr %9, i64 %indvars.iv.next128.1
  %104 = load i16, ptr %103, align 2, !tbaa !5
  %105 = getelementptr inbounds i16, ptr %9, i64 %indvars.iv.next128
  store i16 %104, ptr %105, align 2, !tbaa !5
  %106 = getelementptr inbounds i16, ptr %7, i64 %indvars.iv.next128.1
  %107 = load i16, ptr %106, align 2, !tbaa !5
  %108 = getelementptr inbounds i16, ptr %7, i64 %indvars.iv.next128
  store i16 %107, ptr %108, align 2, !tbaa !5
  %niter.next.1 = add i64 %niter, 2
  %niter.ncmp.1.not = icmp eq i64 %niter.next.1, %unroll_iter
  br i1 %niter.ncmp.1.not, label %._crit_edge120.loopexit.unr-lcssa, label %.lr.ph119, !llvm.loop !15

._crit_edge120.loopexit.unr-lcssa:                ; preds = %.lr.ph119, %.lr.ph119.preheader
  %indvars.iv127.unr = phi i64 [ 15, %.lr.ph119.preheader ], [ %indvars.iv.next128.1, %.lr.ph119 ]
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  br i1 %lcmp.mod.not, label %._crit_edge120, label %.lr.ph119.epil

.lr.ph119.epil:                                   ; preds = %._crit_edge120.loopexit.unr-lcssa
  %indvars.iv.next128.epil = add nsw i64 %indvars.iv127.unr, -1
  %109 = getelementptr inbounds i16, ptr %9, i64 %indvars.iv.next128.epil
  %110 = load i16, ptr %109, align 2, !tbaa !5
  %111 = getelementptr inbounds i16, ptr %9, i64 %indvars.iv127.unr
  store i16 %110, ptr %111, align 2, !tbaa !5
  %112 = getelementptr inbounds i16, ptr %7, i64 %indvars.iv.next128.epil
  %113 = load i16, ptr %112, align 2, !tbaa !5
  %114 = getelementptr inbounds i16, ptr %7, i64 %indvars.iv127.unr
  store i16 %113, ptr %114, align 2, !tbaa !5
  br label %._crit_edge120

._crit_edge120:                                   ; preds = %.lr.ph119.epil, %._crit_edge120.loopexit.unr-lcssa, %91
  %.pre-phi134 = phi i64 [ 15, %91 ], [ %.096.ph, %._crit_edge120.loopexit.unr-lcssa ], [ %.096.ph, %.lr.ph119.epil ]
  %115 = getelementptr inbounds i16, ptr %9, i64 %.pre-phi134
  store i16 %1, ptr %115, align 2, !tbaa !5
  %116 = getelementptr inbounds i16, ptr %7, i64 %.pre-phi134
  store i16 1, ptr %116, align 2, !tbaa !5
  br label %.thread

.thread:                                          ; preds = %64, %._crit_edge120
  %117 = getelementptr inbounds i8, ptr %0, i64 276
  %118 = load i32, ptr %117, align 4, !tbaa !16
  %119 = icmp sgt i32 %118, 2
  br i1 %119, label %120, label %122

120:                                              ; preds = %.thread
  %121 = getelementptr inbounds i8, ptr %9, i64 4
  br label %124

122:                                              ; preds = %.thread
  %123 = icmp sgt i32 %118, 0
  br i1 %123, label %124, label %._crit_edge130

._crit_edge130:                                   ; preds = %122
  %.phi.trans.insert = getelementptr inbounds i8, ptr %0, i64 668
  %.phi.trans.insert131 = sext i32 %2 to i64
  %.phi.trans.insert132 = getelementptr inbounds [6 x i16], ptr %.phi.trans.insert, i64 0, i64 %.phi.trans.insert131
  %.pre = load i16, ptr %.phi.trans.insert132, align 2, !tbaa !5
  br label %131

124:                                              ; preds = %122, %120
  %.095.ph.in = phi ptr [ %121, %120 ], [ %9, %122 ]
  %.095.ph = load i16, ptr %.095.ph.in, align 2, !tbaa !5
  %125 = getelementptr inbounds i8, ptr %0, i64 668
  %126 = sext i32 %2 to i64
  %127 = getelementptr inbounds [6 x i16], ptr %125, i64 0, i64 %126
  %128 = load i16, ptr %127, align 2, !tbaa !5
  %129 = icmp slt i16 %.095.ph, %128
  %.107 = select i1 %129, i32 6553, i32 32439
  %130 = sext i16 %.095.ph to i32
  br label %131

131:                                              ; preds = %._crit_edge130, %124
  %.pre-phi = phi i64 [ %.phi.trans.insert131, %._crit_edge130 ], [ %126, %124 ]
  %132 = phi i16 [ %.pre, %._crit_edge130 ], [ %128, %124 ]
  %.095111 = phi i32 [ 1600, %._crit_edge130 ], [ %130, %124 ]
  %.094 = phi i32 [ 0, %._crit_edge130 ], [ %.107, %124 ]
  %133 = add nuw nsw i32 %.094, 1
  %134 = getelementptr inbounds i8, ptr %0, i64 668
  %135 = getelementptr inbounds [6 x i16], ptr %134, i64 0, i64 %.pre-phi
  %136 = sext i16 %132 to i32
  %137 = mul nsw i32 %133, %136
  %138 = xor i32 %.094, 32767
  %139 = mul nsw i32 %138, %.095111
  %140 = add nsw i32 %139, 16384
  %141 = add nsw i32 %140, %137
  %142 = lshr i32 %141, 15
  %143 = trunc i32 %142 to i16
  store i16 %143, ptr %135, align 2, !tbaa !5
  ret i16 %143
}

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

attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { 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 = { 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 = !{!"short", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = distinct !{!9, !10, !11, !12}
!10 = !{!"llvm.loop.mustprogress"}
!11 = !{!"llvm.loop.isvectorized", i32 1}
!12 = !{!"llvm.loop.unroll.runtime.disable"}
!13 = distinct !{!13, !10, !12, !11}
!14 = distinct !{!14, !10}
!15 = distinct !{!15, !10}
!16 = !{!17, !18, i64 276}
!17 = !{!"VadInstT_", !18, i64 0, !7, i64 4, !19, i64 20, !7, i64 180, !7, i64 204, !7, i64 228, !7, i64 252, !18, i64 276, !6, i64 280, !6, i64 282, !7, i64 284, !7, i64 476, !7, i64 668, !7, i64 680, !7, i64 690, !7, i64 700, !7, i64 708, !7, i64 714, !7, i64 720, !7, i64 726, !7, i64 732, !6, i64 744, !18, i64 748}
!18 = !{!"int", !7, i64 0}
!19 = !{!"", !7, i64 0, !7, i64 32, !7, i64 96, !7, i64 128}


; Effective O3 passes: ADCEPass,CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopLoadEliminationPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,LoopVectorizePass,PostOrderFunctionAttrsPass,ReassociatePass,SCCPPass,SROAPass,SimplifyCFGPass,TailCallElimPass