; LLVM IR from vertver/Fresponze-old :: modules/opus/tests (test_opus_api)

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

@stdout = external global ptr, align 8
@.str.1 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [50 x i8], align 1
@__const.test_parse.tsz = external hidden unnamed_addr constant [8 x i32], align 16
@.str.43 = external hidden unnamed_addr constant [53 x i8], align 1
@__const.test_parse.tsz.44 = external hidden unnamed_addr constant [4 x i32], align 16
@.str.45 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [48 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: nounwind
declare i32 @fprintf(ptr noundef, ptr noundef, ...) #1

; Function Attrs: inlinehint noreturn nounwind uwtable
declare hidden void @_test_failed(ptr noundef, i32 noundef) #2

; 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) #3

declare i32 @opus_packet_get_samples_per_frame(ptr noundef, i32 noundef) #4

; Function Attrs: nounwind uwtable
define dso_local i32 @test_parse() #5 {
  %1 = alloca i32, align 4
  %2 = alloca i32, align 4
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca [1276 x i8], align 16
  %6 = alloca i32, align 4
  %7 = alloca i32, align 4
  %8 = alloca i8, align 1
  %9 = alloca [48 x ptr], align 16
  %10 = alloca [48 x i16], align 16
  %11 = alloca i32, align 4
  %12 = alloca i32, align 4
  %13 = alloca i32, align 4
  %14 = alloca i32, align 4
  %15 = alloca [8 x i32], align 16
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca [4 x i32], align 16
  %19 = alloca i32, align 4
  call void @llvm.lifetime.start.p0(i64 4, ptr %1) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %2) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %3) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %4) #7
  call void @llvm.lifetime.start.p0(i64 1276, ptr %5) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %8) #7
  call void @llvm.lifetime.start.p0(i64 384, ptr %9) #7
  call void @llvm.lifetime.start.p0(i64 96, ptr %10) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #7
  %20 = load ptr, ptr @stdout, align 8, !tbaa !5
  %21 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20, ptr noundef @.str.35) #7
  %22 = load ptr, ptr @stdout, align 8, !tbaa !5
  %23 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22, ptr noundef @.str.1) #7
  %24 = getelementptr inbounds [1276 x i8], ptr %5, i64 0, i64 0
  call void @llvm.memset.p0.i64(ptr align 16 %24, i8 0, i64 1276, i1 false)
  %25 = getelementptr inbounds [1276 x i8], ptr %5, i64 0, i64 0
  store i8 -4, ptr %25, align 16, !tbaa !9
  %26 = getelementptr inbounds [1276 x i8], ptr %5, i64 0, i64 0
  %27 = getelementptr inbounds [48 x ptr], ptr %9, i64 0, i64 0
  %28 = call i32 @opus_packet_parse(ptr noundef %26, i32 noundef 1, ptr noundef %8, ptr noundef %27, ptr noundef null, ptr noundef %11)
  %29 = icmp ne i32 %28, -1
  br i1 %29, label %30, label %31

30:                                               ; preds = %0
  call void @_test_failed(ptr noundef @.str.2, i32 noundef 720) #8
  unreachable

31:                                               ; preds = %0
  store i32 1, ptr %6, align 4, !tbaa !10
  store i32 1, ptr %7, align 4, !tbaa !10
  store i32 0, ptr %1, align 4, !tbaa !10
  br label %32

32:                                               ; preds = %65, %31
  %33 = load i32, ptr %1, align 4, !tbaa !10
  %34 = icmp slt i32 %33, 64
  br i1 %34, label %35, label %68

35:                                               ; preds = %32
  %36 = load i32, ptr %1, align 4, !tbaa !10
  %37 = shl i32 %36, 2
  %38 = trunc i32 %37 to i8
  %39 = getelementptr inbounds [1276 x i8], ptr %5, i64 0, i64 0
  store i8 %38, ptr %39, align 16, !tbaa !9
  store i8 -1, ptr %8, align 1, !tbaa !9
  %40 = getelementptr inbounds [48 x ptr], ptr %9, i64 0, i64 0
  store ptr null, ptr %40, align 16, !tbaa !5
  %41 = getelementptr inbounds [48 x ptr], ptr %9, i64 0, i64 1
  store ptr null, ptr %41, align 8, !tbaa !5
  store i32 -1, ptr %11, align 4, !tbaa !10
  %42 = getelementptr inbounds [1276 x i8], ptr %5, i64 0, i64 0
  %43 = getelementptr inbounds [48 x ptr], ptr %9, i64 0, i64 0
  %44 = getelementptr inbounds [48 x i16], ptr %10, i64 0, i64 0
  %45 = call i32 @opus_packet_parse(ptr noundef %42, i32 noundef 4, ptr noundef %8, ptr noundef %43, ptr noundef %44, ptr noundef %11)
  store i32 %45, ptr %12, align 4, !tbaa !10
  %46 = load i32, ptr %6, align 4, !tbaa !10
  %47 = add nsw i32 %46, 1
  store i32 %47, ptr %6, align 4, !tbaa !10
  %48 = load i32, ptr %12, align 4, !tbaa !10
  %49 = icmp ne i32 %48, 1
  br i1 %49, label %50, label %51

50:                                               ; preds = %35
  call void @_test_failed(ptr noundef @.str.2, i32 noundef 729) #8
  unreachable

51:                                               ; preds = %35
  %52 = getelementptr inbounds [48 x i16], ptr %10, i64 0, i64 0
  %53 = load i16, ptr %52, align 16, !tbaa !12
  %54 = sext i16 %53 to i32
  %55 = icmp ne i32 %54, 3
  br i1 %55, label %56, label %57

56:                                               ; preds = %51
  call void @_test_failed(ptr noundef @.str.2, i32 noundef 730) #8
  unreachable

57:                                               ; preds = %51
  %58 = getelementptr inbounds [48 x ptr], ptr %9, i64 0, i64 0
  %59 = load ptr, ptr %58, align 16, !tbaa !5
  %60 = getelementptr inbounds [1276 x i8], ptr %5, i64 0, i64 0
  %61 = getelementptr inbounds i8, ptr %60, i64 1
  %62 = icmp ne ptr %59, %61
  br i1 %62, label %63, label %64

63:                                               ; preds = %57
  call void @_test_failed(ptr noundef @.str.2, i32 noundef 731) #8
  unreachable

64:                                               ; preds = %57
  br label %65

65:                                               ; preds = %64
  %66 = load i32, ptr %1, align 4, !tbaa !10
  %67 = add nsw i32 %66, 1
  store i32 %67, ptr %1, align 4, !tbaa !10
  br label %32, !llvm.loop !14

68:                                               ; preds = %32
  %69 = load ptr, ptr @stdout, align 8, !tbaa !5
  %70 = load i32, ptr %6, align 4, !tbaa !10
  %71 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %69, ptr noundef @.str.36, i32 noundef %70) #7
  %72 = load i32, ptr %6, align 4, !tbaa !10
  %73 = load i32, ptr %7, align 4, !tbaa !10
  %74 = add nsw i32 %73, %72
  store i32 %74, ptr %7, align 4, !tbaa !10
  store i32 0, ptr %6, align 4, !tbaa !10
  store i32 0, ptr %1, align 4, !tbaa !10
  br label %75

75:                                               ; preds = %161, %68
  %76 = load i32, ptr %1, align 4, !tbaa !10
  %77 = icmp slt i32 %76, 64
  br i1 %77, label %78, label %164

78:                                               ; preds = %75
  %79 = load i32, ptr %1, align 4, !tbaa !10
  %80 = shl i32 %79, 2
  %81 = add nsw i32 %80, 1
  %82 = trunc i32 %81 to i8
  %83 = getelementptr inbounds [1276 x i8], ptr %5, i64 0, i64 0
  store i8 %82, ptr %83, align 16, !tbaa !9
  store i32 0, ptr %3, align 4, !tbaa !10
  br label %84

84:                                               ; preds = %157, %78
  %85 = load i32, ptr %3, align 4, !tbaa !10
  %86 = icmp sle i32 %85, 2553
  br i1 %86, label %87, label %160

87:                                               ; preds = %84
  store i8 -1, ptr %8, align 1, !tbaa !9
  %88 = getelementptr inbounds [48 x ptr], ptr %9, i64 0, i64 0
  store ptr null, ptr %88, align 16, !tbaa !5
  %89 = getelementptr inbounds [48 x ptr], ptr %9, i64 0, i64 1
  store ptr null, ptr %89, align 8, !tbaa !5
  store i32 -1, ptr %11, align 4, !tbaa !10
  %90 = getelementptr inbounds [1276 x i8], ptr %5, i64 0, i64 0
  %91 = load i32, ptr %3, align 4, !tbaa !10
  %92 = getelementptr inbounds [48 x ptr], ptr %9, i64 0, i64 0
  %93 = getelementptr inbounds [48 x i16], ptr %10, i64 0, i64 0
  %94 = call i32 @opus_packet_parse(ptr noundef %90, i32 noundef %91, ptr noundef %8, ptr noundef %92, ptr noundef %93, ptr noundef %11)
  store i32 %94, ptr %12, align 4, !tbaa !10
  %95 = load i32, ptr %6, align 4, !tbaa !10
  %96 = add nsw i32 %95, 1
  store i32 %96, ptr %6, align 4, !tbaa !10
  %97 = load i32, ptr %3, align 4, !tbaa !10
  %98 = and i32 %97, 1
  %99 = icmp eq i32 %98, 1
  br i1 %99, label %100, label %151

100:                                              ; preds = %87
  %101 = load i32, ptr %3, align 4, !tbaa !10
  %102 = icmp sle i32 %101, 2551
  br i1 %102, label %103, label %151

103:                                              ; preds = %100
  %104 = load i32, ptr %12, align 4, !tbaa !10
  %105 = icmp ne i32 %104, 2
  br i1 %105, label %106, label %107

106:                                              ; preds = %103
  call void @_test_failed(ptr noundef @.str.2, i32 noundef 749) #8
  unreachable

107:                                              ; preds = %103
  %108 = getelementptr inbounds [48 x i16], ptr %10, i64 0, i64 0
  %109 = load i16, ptr %108, align 16, !tbaa !12
  %110 = sext i16 %109 to i32
  %111 = getelementptr inbounds [48 x i16], ptr %10, i64 0, i64 1
  %112 = load i16, ptr %111, align 2, !tbaa !12
  %113 = sext i16 %112 to i32
  %114 = icmp ne i32 %110, %113
  br i1 %114, label %123, label %115

115:                                              ; preds = %107
  %116 = getelementptr inbounds [48 x i16], ptr %10, i64 0, i64 0
  %117 = load i16, ptr %116, align 16, !tbaa !12
  %118 = sext i16 %117 to i32
  %119 = load i32, ptr %3, align 4, !tbaa !10
  %120 = sub nsw i32 %119, 1
  %121 = ashr i32 %120, 1
  %122 = icmp ne i32 %118, %121
  br i1 %122, label %123, label %124

123:                                              ; preds = %115, %107
  call void @_test_failed(ptr noundef @.str.2, i32 noundef 750) #8
  unreachable

124:                                              ; preds = %115
  %125 = getelementptr inbounds [48 x ptr], ptr %9, i64 0, i64 0
  %126 = load ptr, ptr %125, align 16, !tbaa !5
  %127 = getelementptr inbounds [1276 x i8], ptr %5, i64 0, i64 0
  %128 = getelementptr inbounds i8, ptr %127, i64 1
  %129 = icmp ne ptr %126, %128
  br i1 %129, label %130, label %131

130:                                              ; preds = %124
  call void @_test_failed(ptr noundef @.str.2, i32 noundef 751) #8
  unreachable

131:                                              ; preds = %124
  %132 = getelementptr inbounds [48 x ptr], ptr %9, i64 0, i64 1
  %133 = load ptr, ptr %132, align 8, !tbaa !5
  %134 = getelementptr inbounds [48 x ptr], ptr %9, i64 0, i64 0
  %135 = load ptr, ptr %134, align 16, !tbaa !5
  %136 = getelementptr inbounds [48 x i16], ptr %10, i64 0, i64 0
  %137 = load i16, ptr %136, align 16, !tbaa !12
  %138 = sext i16 %137 to i32
  %139 = sext i32 %138 to i64
  %140 = getelementptr inbounds i8, ptr %135, i64 %139
  %141 = icmp ne ptr %133, %140
  br i1 %141, label %142, label %143

142:                                              ; preds = %131
  call void @_test_failed(ptr noundef @.str.2, i32 noundef 752) #8
  unreachable

143:                                              ; preds = %131
  %144 = load i8, ptr %8, align 1, !tbaa !9
  %145 = zext i8 %144 to i32
  %146 = ashr i32 %145, 2
  %147 = load i32, ptr %1, align 4, !tbaa !10
  %148 = icmp ne i32 %146, %147
  br i1 %148, label %149, label %150

149:                                              ; preds = %143
  call void @_test_failed(ptr noundef @.str.2, i32 noundef 753) #8
  unreachable

150:                                              ; preds = %143
  br label %156

151:                                              ; preds = %100, %87
  %152 = load i32, ptr %12, align 4, !tbaa !10
  %153 = icmp ne i32 %152, -4
  br i1 %153, label %154, label %155

154:                                              ; preds = %151
  call void @_test_failed(ptr noundef @.str.2, i32 noundef 754) #8
  unreachable

155:                                              ; preds = %151
  br label %156

156:                                              ; preds = %155, %150
  br label %157

157:                                              ; preds = %156
  %158 = load i32, ptr %3, align 4, !tbaa !10
  %159 = add nsw i32 %158, 1
  store i32 %159, ptr %3, align 4, !tbaa !10
  br label %84, !llvm.loop !16

160:                                              ; preds = %84
  br label %161

161:                                              ; preds = %160
  %162 = load i32, ptr %1, align 4, !tbaa !10
  %163 = add nsw i32 %162, 1
  store i32 %163, ptr %1, align 4, !tbaa !10
  br label %75, !llvm.loop !17

164:                                              ; preds = %75
  %165 = load ptr, ptr @stdout, align 8, !tbaa !5
  %166 = load i32, ptr %6, align 4, !tbaa !10
  %167 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %165, ptr noundef @.str.37, i32 noundef %166) #7
  %168 = load i32, ptr %6, align 4, !tbaa !10
  %169 = load i32, ptr %7, align 4, !tbaa !10
  %170 = add nsw i32 %169, %168
  store i32 %170, ptr %7, align 4, !tbaa !10
  store i32 0, ptr %6, align 4, !tbaa !10
  store i32 0, ptr %1, align 4, !tbaa !10
  br label %171

171:                                              ; preds = %374, %164
  %172 = load i32, ptr %1, align 4, !tbaa !10
  %173 = icmp slt i32 %172, 64
  br i1 %173, label %174, label %377

174:                                              ; preds = %171
  %175 = load i32, ptr %1, align 4, !tbaa !10
  %176 = shl i32 %175, 2
  %177 = add nsw i32 %176, 2
  %178 = trunc i32 %177 to i8
  %179 = getelementptr inbounds [1276 x i8], ptr %5, i64 0, i64 0
  store i8 %178, ptr %179, align 16, !tbaa !9
  store i8 -1, ptr %8, align 1, !tbaa !9
  %180 = getelementptr inbounds [48 x ptr], ptr %9, i64 0, i64 0
  store ptr null, ptr %180, align 16, !tbaa !5
  %181 = getelementptr inbounds [48 x ptr], ptr %9, i64 0, i64 1
  store ptr null, ptr %181, align 8, !tbaa !5
  store i32 -1, ptr %11, align 4, !tbaa !10
  %182 = getelementptr inbounds [1276 x i8], ptr %5, i64 0, i64 0
  %183 = getelementptr inbounds [48 x ptr], ptr %9, i64 0, i64 0
  %184 = getelementptr inbounds [48 x i16], ptr %10, i64 0, i64 0
  %185 = call i32 @opus_packet_parse(ptr noundef %182, i32 noundef 1, ptr noundef %8, ptr noundef %183, ptr noundef %184, ptr noundef %11)
  store i32 %185, ptr %12, align 4, !tbaa !10
  %186 = load i32, ptr %6, align 4, !tbaa !10
  %187 = add nsw i32 %186, 1
  store i32 %187, ptr %6, align 4, !tbaa !10
  %188 = load i32, ptr %12, align 4, !tbaa !10
  %189 = icmp ne i32 %188, -4
  br i1 %189, label %190, label %191

190:                                              ; preds = %174
  call void @_test_failed(ptr noundef @.str.2, i32 noundef 767) #8
  unreachable

191:                                              ; preds = %174
  %192 = getelementptr inbounds [1276 x i8], ptr %5, i64 0, i64 1
  store i8 -4, ptr %192, align 1, !tbaa !9
  store i8 -1, ptr %8, align 1, !tbaa !9
  %193 = getelementptr inbounds [48 x ptr], ptr %9, i64 0, i64 0
  store ptr null, ptr %193, align 16, !tbaa !5
  %194 = getelementptr inbounds [48 x ptr], ptr %9, i64 0, i64 1
  store ptr null, ptr %194, align 8, !tbaa !5
  store i32 -1, ptr %11, align 4, !tbaa !10
  %195 = getelementptr inbounds [1276 x i8], ptr %5, i64 0, i64 0
  %196 = getelementptr inbounds [48 x ptr], ptr %9, i64 0, i64 0
  %197 = getelementptr inbounds [48 x i16], ptr %10, i64 0, i64 0
  %198 = call i32 @opus_packet_parse(ptr noundef %195, i32 noundef 2, ptr noundef %8, ptr noundef %196, ptr noundef %197, ptr noundef %11)
  store i32 %198, ptr %12, align 4, !tbaa !10
  %199 = load i32, ptr %6, align 4, !tbaa !10
  %200 = add nsw i32 %199, 1
  store i32 %200, ptr %6, align 4, !tbaa !10
  %201 = load i32, ptr %12, align 4, !tbaa !10
  %202 = icmp ne i32 %201, -4
  br i1 %202, label %203, label %204

203:                                              ; preds = %191
  call void @_test_failed(ptr noundef @.str.2, i32 noundef 772) #8
  unreachable

204:                                              ; preds = %191
  store i32 0, ptr %2, align 4, !tbaa !10
  br label %205

205:                                              ; preds = %370, %204
  %206 = load i32, ptr %2, align 4, !tbaa !10
  %207 = icmp slt i32 %206, 1275
  br i1 %207, label %208, label %373

208:                                              ; preds = %205
  %209 = load i32, ptr %2, align 4, !tbaa !10
  %210 = icmp slt i32 %209, 252
  br i1 %210, label %211, label %215

211:                                              ; preds = %208
  %212 = load i32, ptr %2, align 4, !tbaa !10
  %213 = trunc i32 %212 to i8
  %214 = getelementptr inbounds [1276 x i8], ptr %5, i64 0, i64 1
  store i8 %213, ptr %214, align 1, !tbaa !9
  br label %226

215:                                              ; preds = %208
  %216 = load i32, ptr %2, align 4, !tbaa !10
  %217 = and i32 %216, 3
  %218 = add nsw i32 252, %217
  %219 = trunc i32 %218 to i8
  %220 = getelementptr inbounds [1276 x i8], ptr %5, i64 0, i64 1
  store i8 %219, ptr %220, align 1, !tbaa !9
  %221 = load i32, ptr %2, align 4, !tbaa !10
  %222 = sub nsw i32 %221, 252
  %223 = ashr i32 %222, 2
  %224 = trunc i32 %223 to i8
  %225 = getelementptr inbounds [1276 x i8], ptr %5, i64 0, i64 2
  store i8 %224, ptr %225, align 2, !tbaa !9
  br label %226

226:                                              ; preds = %215, %211
  store i8 -1, ptr %8, align 1, !tbaa !9
  %227 = getelementptr inbounds [48 x ptr], ptr %9, i64 0, i64 0
  store ptr null, ptr %227, align 16, !tbaa !5
  %228 = getelementptr inbounds [48 x ptr], ptr %9, i64 0, i64 1
  store ptr null, ptr %228, align 8, !tbaa !5
  store i32 -1, ptr %11, align 4, !tbaa !10
  %229 = getelementptr inbounds [1276 x i8], ptr %5, i64 0, i64 0
  %230 = load i32, ptr %2, align 4, !tbaa !10
  %231 = load i32, ptr %2, align 4, !tbaa !10
  %232 = icmp slt i32 %231, 252
  %233 = zext i1 %232 to i64
  %234 = select i1 %232, i32 2, i32 3
  %235 = add nsw i32 %230, %234
  %236 = sub nsw i32 %235, 1
  %237 = getelementptr inbounds [48 x ptr], ptr %9, i64 0, i64 0
  %238 = getelementptr inbounds [48 x i16], ptr %10, i64 0, i64 0
  %239 = call i32 @opus_packet_parse(ptr noundef %229, i32 noundef %236, ptr noundef %8, ptr noundef %237, ptr noundef %238, ptr noundef %11)
  store i32 %239, ptr %12, align 4, !tbaa !10
  %240 = load i32, ptr %6, align 4, !tbaa !10
  %241 = add nsw i32 %240, 1
  store i32 %241, ptr %6, align 4, !tbaa !10
  %242 = load i32, ptr %12, align 4, !tbaa !10
  %243 = icmp ne i32 %242, -4
  br i1 %243, label %244, label %245

244:                                              ; preds = %226
  call void @_test_failed(ptr noundef @.str.2, i32 noundef 781) #8
  unreachable

245:                                              ; preds = %226
  store i8 -1, ptr %8, align 1, !tbaa !9
  %246 = getelementptr inbounds [48 x ptr], ptr %9, i64 0, i64 0
  store ptr null, ptr %246, align 16, !tbaa !5
  %247 = getelementptr inbounds [48 x ptr], ptr %9, i64 0, i64 1
  store ptr null, ptr %247, align 8, !tbaa !5
  store i32 -1, ptr %11, align 4, !tbaa !10
  %248 = getelementptr inbounds [1276 x i8], ptr %5, i64 0, i64 0
  %249 = load i32, ptr %2, align 4, !tbaa !10
  %250 = load i32, ptr %2, align 4, !tbaa !10
  %251 = icmp slt i32 %250, 252
  %252 = zext i1 %251 to i64
  %253 = select i1 %251, i32 2, i32 3
  %254 = add nsw i32 %249, %253
  %255 = add nsw i32 %254, 1276
  %256 = getelementptr inbounds [48 x ptr], ptr %9, i64 0, i64 0
  %257 = getelementptr inbounds [48 x i16], ptr %10, i64 0, i64 0
  %258 = call i32 @opus_packet_parse(ptr noundef %248, i32 noundef %255, ptr noundef %8, ptr noundef %256, ptr noundef %257, ptr noundef %11)
  store i32 %258, ptr %12, align 4, !tbaa !10
  %259 = load i32, ptr %6, align 4, !tbaa !10
  %260 = add nsw i32 %259, 1
  store i32 %260, ptr %6, align 4, !tbaa !10
  %261 = load i32, ptr %12, align 4, !tbaa !10
  %262 = icmp ne i32 %261, -4
  br i1 %262, label %263, label %264

263:                                              ; preds = %245
  call void @_test_failed(ptr noundef @.str.2, i32 noundef 786) #8
  unreachable

264:                                              ; preds = %245
  store i8 -1, ptr %8, align 1, !tbaa !9
  %265 = getelementptr inbounds [48 x ptr], ptr %9, i64 0, i64 0
  store ptr null, ptr %265, align 16, !tbaa !5
  %266 = getelementptr inbounds [48 x ptr], ptr %9, i64 0, i64 1
  store ptr null, ptr %266, align 8, !tbaa !5
  store i32 -1, ptr %11, align 4, !tbaa !10
  %267 = getelementptr inbounds [1276 x i8], ptr %5, i64 0, i64 0
  %268 = load i32, ptr %2, align 4, !tbaa !10
  %269 = load i32, ptr %2, align 4, !tbaa !10
  %270 = icmp slt i32 %269, 252
  %271 = zext i1 %270 to i64
  %272 = select i1 %270, i32 2, i32 3
  %273 = add nsw i32 %268, %272
  %274 = getelementptr inbounds [48 x ptr], ptr %9, i64 0, i64 0
  %275 = getelementptr inbounds [48 x i16], ptr %10, i64 0, i64 0
  %276 = call i32 @opus_packet_parse(ptr noundef %267, i32 noundef %273, ptr noundef %8, ptr noundef %274, ptr noundef %275, ptr noundef %11)
  store i32 %276, ptr %12, align 4, !tbaa !10
  %277 = load i32, ptr %6, align 4, !tbaa !10
  %278 = add nsw i32 %277, 1
  store i32 %278, ptr %6, align 4, !tbaa !10
  %279 = load i32, ptr %12, align 4, !tbaa !10
  %280 = icmp ne i32 %279, 2
  br i1 %280, label %281, label %282

281:                                              ; preds = %264
  call void @_test_failed(ptr noundef @.str.2, i32 noundef 791) #8
  unreachable

282:                                              ; preds = %264
  %283 = getelementptr inbounds [48 x i16], ptr %10, i64 0, i64 0
  %284 = load i16, ptr %283, align 16, !tbaa !12
  %285 = sext i16 %284 to i32
  %286 = load i32, ptr %2, align 4, !tbaa !10
  %287 = icmp ne i32 %285, %286
  br i1 %287, label %293, label %288

288:                                              ; preds = %282
  %289 = getelementptr inbounds [48 x i16], ptr %10, i64 0, i64 1
  %290 = load i16, ptr %289, align 2, !tbaa !12
  %291 = sext i16 %290 to i32
  %292 = icmp ne i32 %291, 0
  br i1 %292, label %293, label %294

293:                                              ; preds = %288, %282
  call void @_test_failed(ptr noundef @.str.2, i32 noundef 792) #8
  unreachable

294:                                              ; preds = %288
  %295 = getelementptr inbounds [48 x ptr], ptr %9, i64 0, i64 1
  %296 = load ptr, ptr %295, align 8, !tbaa !5
  %297 = getelementptr inbounds [48 x ptr], ptr %9, i64 0, i64 0
  %298 = load ptr, ptr %297, align 16, !tbaa !5
  %299 = getelementptr inbounds [48 x i16], ptr %10, i64 0, i64 0
  %300 = load i16, ptr %299, align 16, !tbaa !12
  %301 = sext i16 %300 to i32
  %302 = sext i32 %301 to i64
  %303 = getelementptr inbounds i8, ptr %298, i64 %302
  %304 = icmp ne ptr %296, %303
  br i1 %304, label %305, label %306

305:                                              ; preds = %294
  call void @_test_failed(ptr noundef @.str.2, i32 noundef 793) #8
  unreachable

306:                                              ; preds = %294
  %307 = load i8, ptr %8, align 1, !tbaa !9
  %308 = zext i8 %307 to i32
  %309 = ashr i32 %308, 2
  %310 = load i32, ptr %1, align 4, !tbaa !10
  %311 = icmp ne i32 %309, %310
  br i1 %311, label %312, label %313

312:                                              ; preds = %306
  call void @_test_failed(ptr noundef @.str.2, i32 noundef 794) #8
  unreachable

313:                                              ; preds = %306
  store i8 -1, ptr %8, align 1, !tbaa !9
  %314 = getelementptr inbounds [48 x ptr], ptr %9, i64 0, i64 0
  store ptr null, ptr %314, align 16, !tbaa !5
  %315 = getelementptr inbounds [48 x ptr], ptr %9, i64 0, i64 1
  store ptr null, ptr %315, align 8, !tbaa !5
  store i32 -1, ptr %11, align 4, !tbaa !10
  %316 = getelementptr inbounds [1276 x i8], ptr %5, i64 0, i64 0
  %317 = load i32, ptr %2, align 4, !tbaa !10
  %318 = shl i32 %317, 1
  %319 = add nsw i32 %318, 4
  %320 = getelementptr inbounds [48 x ptr], ptr %9, i64 0, i64 0
  %321 = getelementptr inbounds [48 x i16], ptr %10, i64 0, i64 0
  %322 = call i32 @opus_packet_parse(ptr noundef %316, i32 noundef %319, ptr noundef %8, ptr noundef %320, ptr noundef %321, ptr noundef %11)
  store i32 %322, ptr %12, align 4, !tbaa !10
  %323 = load i32, ptr %6, align 4, !tbaa !10
  %324 = add nsw i32 %323, 1
  store i32 %324, ptr %6, align 4, !tbaa !10
  %325 = load i32, ptr %12, align 4, !tbaa !10
  %326 = icmp ne i32 %325, 2
  br i1 %326, label %327, label %328

327:                                              ; preds = %313
  call void @_test_failed(ptr noundef @.str.2, i32 noundef 799) #8
  unreachable

328:                                              ; preds = %313
  %329 = getelementptr inbounds [48 x i16], ptr %10, i64 0, i64 0
  %330 = load i16, ptr %329, align 16, !tbaa !12
  %331 = sext i16 %330 to i32
  %332 = load i32, ptr %2, align 4, !tbaa !10
  %333 = icmp ne i32 %331, %332
  br i1 %333, label %349, label %334

334:                                              ; preds = %328
  %335 = getelementptr inbounds [48 x i16], ptr %10, i64 0, i64 1
  %336 = load i16, ptr %335, align 2, !tbaa !12
  %337 = sext i16 %336 to i32
  %338 = load i32, ptr %2, align 4, !tbaa !10
  %339 = shl i32 %338, 1
  %340 = add nsw i32 %339, 3
  %341 = load i32, ptr %2, align 4, !tbaa !10
  %342 = sub nsw i32 %340, %341
  %343 = load i32, ptr %2, align 4, !tbaa !10
  %344 = icmp slt i32 %343, 252
  %345 = zext i1 %344 to i64
  %346 = select i1 %344, i32 1, i32 2
  %347 = sub nsw i32 %342, %346
  %348 = icmp ne i32 %337, %347
  br i1 %348, label %349, label %350

349:                                              ; preds = %334, %328
  call void @_test_failed(ptr noundef @.str.2, i32 noundef 800) #8
  unreachable

350:                                              ; preds = %334
  %351 = getelementptr inbounds [48 x ptr], ptr %9, i64 0, i64 1
  %352 = load ptr, ptr %351, align 8, !tbaa !5
  %353 = getelementptr inbounds [48 x ptr], ptr %9, i64 0, i64 0
  %354 = load ptr, ptr %353, align 16, !tbaa !5
  %355 = getelementptr inbounds [48 x i16], ptr %10, i64 0, i64 0
  %356 = load i16, ptr %355, align 16, !tbaa !12
  %357 = sext i16 %356 to i32
  %358 = sext i32 %357 to i64
  %359 = getelementptr inbounds i8, ptr %354, i64 %358
  %360 = icmp ne ptr %352, %359
  br i1 %360, label %361, label %362

361:                                              ; preds = %350
  call void @_test_failed(ptr noundef @.str.2, i32 noundef 801) #8
  unreachable

362:                                              ; preds = %350
  %363 = load i8, ptr %8, align 1, !tbaa !9
  %364 = zext i8 %363 to i32
  %365 = ashr i32 %364, 2
  %366 = load i32, ptr %1, align 4, !tbaa !10
  %367 = icmp ne i32 %365, %366
  br i1 %367, label %368, label %369

368:                                              ; preds = %362
  call void @_test_failed(ptr noundef @.str.2, i32 noundef 802) #8
  unreachable

369:                                              ; preds = %362
  br label %370

370:                                              ; preds = %369
  %371 = load i32, ptr %2, align 4, !tbaa !10
  %372 = add nsw i32 %371, 1
  store i32 %372, ptr %2, align 4, !tbaa !10
  br label %205, !llvm.loop !18

373:                                              ; preds = %205
  br label %374

374:                                              ; preds = %373
  %375 = load i32, ptr %1, align 4, !tbaa !10
  %376 = add nsw i32 %375, 1
  store i32 %376, ptr %1, align 4, !tbaa !10
  br label %171, !llvm.loop !19

377:                                              ; preds = %171
  %378 = load ptr, ptr @stdout, align 8, !tbaa !5
  %379 = load i32, ptr %6, align 4, !tbaa !10
  %380 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %378, ptr noundef @.str.38, i32 noundef %379) #7
  %381 = load i32, ptr %6, align 4, !tbaa !10
  %382 = load i32, ptr %7, align 4, !tbaa !10
  %383 = add nsw i32 %382, %381
  store i32 %383, ptr %7, align 4, !tbaa !10
  store i32 0, ptr %6, align 4, !tbaa !10
  store i32 0, ptr %1, align 4, !tbaa !10
  br label %384

384:                                              ; preds = %405, %377
  %385 = load i32, ptr %1, align 4, !tbaa !10
  %386 = icmp slt i32 %385, 64
  br i1 %386, label %387, label %408

387:                                              ; preds = %384
  %388 = load i32, ptr %1, align 4, !tbaa !10
  %389 = shl i32 %388, 2
  %390 = add nsw i32 %389, 3
  %391 = trunc i32 %390 to i8
  %392 = getelementptr inbounds [1276 x i8], ptr %5, i64 0, i64 0
  store i8 %391, ptr %392, align 16, !tbaa !9
  store i8 -1, ptr %8, align 1, !tbaa !9
  %393 = getelementptr inbounds [48 x ptr], ptr %9, i64 0, i64 0
  store ptr null, ptr %393, align 16, !tbaa !5
  %394 = getelementptr inbounds [48 x ptr], ptr %9, i64 0, i64 1
  store ptr null, ptr %394, align 8, !tbaa !5
  store i32 -1, ptr %11, align 4, !tbaa !10
  %395 = getelementptr inbounds [1276 x i8], ptr %5, i64 0, i64 0
  %396 = getelementptr inbounds [48 x ptr], ptr %9, i64 0, i64 0
  %397 = getelementptr inbounds [48 x i16], ptr %10, i64 0, i64 0
  %398 = call i32 @opus_packet_parse(ptr noundef %395, i32 noundef 1, ptr noundef %8, ptr noundef %396, ptr noundef %397, ptr noundef %11)
  store i32 %398, ptr %12, align 4, !tbaa !10
  %399 = load i32, ptr %6, align 4, !tbaa !10
  %400 = add nsw i32 %399, 1
  store i32 %400, ptr %6, align 4, !tbaa !10
  %401 = load i32, ptr %12, align 4, !tbaa !10
  %402 = icmp ne i32 %401, -4
  br i1 %402, label %403, label %404

403:                                              ; preds = %387
  call void @_test_failed(ptr noundef @.str.2, i32 noundef 815) #8
  unreachable

404:                                              ; preds = %387
  br label %405

405:                                              ; preds = %404
  %406 = load i32, ptr %1, align 4, !tbaa !10
  %407 = add nsw i32 %406, 1
  store i32 %407, ptr %1, align 4, !tbaa !10
  br label %384, !llvm.loop !20

408:                                              ; preds = %384
  %409 = load ptr, ptr @stdout, align 8, !tbaa !5
  %410 = load i32, ptr %6, align 4, !tbaa !10
  %411 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %409, ptr noundef @.str.39, i32 noundef %410) #7
  %412 = load i32, ptr %6, align 4, !tbaa !10
  %413 = load i32, ptr %7, align 4, !tbaa !10
  %414 = add nsw i32 %413, %412
  store i32 %414, ptr %7, align 4, !tbaa !10
  store i32 0, ptr %6, align 4, !tbaa !10
  store i32 0, ptr %1, align 4, !tbaa !10
  br label %415

415:                                              ; preds = %500, %408
  %416 = load i32, ptr %1, align 4, !tbaa !10
  %417 = icmp slt i32 %416, 64
  br i1 %417, label %418, label %503

418:                                              ; preds = %415
  %419 = load i32, ptr %1, align 4, !tbaa !10
  %420 = shl i32 %419, 2
  %421 = add nsw i32 %420, 3
  %422 = trunc i32 %421 to i8
  %423 = getelementptr inbounds [1276 x i8], ptr %5, i64 0, i64 0
  store i8 %422, ptr %423, align 16, !tbaa !9
  store i32 49, ptr %3, align 4, !tbaa !10
  br label %424

424:                                              ; preds = %496, %418
  %425 = load i32, ptr %3, align 4, !tbaa !10
  %426 = icmp sle i32 %425, 64
  br i1 %426, label %427, label %499

427:                                              ; preds = %424
  %428 = load i32, ptr %3, align 4, !tbaa !10
  %429 = and i32 %428, 63
  %430 = add nsw i32 0, %429
  %431 = trunc i32 %430 to i8
  %432 = getelementptr inbounds [1276 x i8], ptr %5, i64 0, i64 1
  store i8 %431, ptr %432, align 1, !tbaa !9
  store i8 -1, ptr %8, align 1, !tbaa !9
  %433 = getelementptr inbounds [48 x ptr], ptr %9, i64 0, i64 0
  store ptr null, ptr %433, align 16, !tbaa !5
  %434 = getelementptr inbounds [48 x ptr], ptr %9, i64 0, i64 1
  store ptr null, ptr %434, align 8, !tbaa !5
  store i32 -1, ptr %11, align 4, !tbaa !10
  %435 = getelementptr inbounds [1276 x i8], ptr %5, i64 0, i64 0
  %436 = getelementptr inbounds [48 x ptr], ptr %9, i64 0, i64 0
  %437 = getelementptr inbounds [48 x i16], ptr %10, i64 0, i64 0
  %438 = call i32 @opus_packet_parse(ptr noundef %435, i32 noundef 1275, ptr noundef %8, ptr noundef %436, ptr noundef %437, ptr noundef %11)
  store i32 %438, ptr %12, align 4, !tbaa !10
  %439 = load i32, ptr %6, align 4, !tbaa !10
  %440 = add nsw i32 %439, 1
  store i32 %440, ptr %6, align 4, !tbaa !10
  %441 = load i32, ptr %12, align 4, !tbaa !10
  %442 = icmp ne i32 %441, -4
  br i1 %442, label %443, label %444

443:                                              ; preds = %427
  call void @_test_failed(ptr noundef @.str.2, i32 noundef 830) #8
  unreachable

444:                                              ; preds = %427
  %445 = load i32, ptr %3, align 4, !tbaa !10
  %446 = and i32 %445, 63
  %447 = add nsw i32 128, %446
  %448 = trunc i32 %447 to i8
  %449 = getelementptr inbounds [1276 x i8], ptr %5, i64 0, i64 1
  store i8 %448, ptr %449, align 1, !tbaa !9
  store i8 -1, ptr %8, align 1, !tbaa !9
  %450 = getelementptr inbounds [48 x ptr], ptr %9, i64 0, i64 0
  store ptr null, ptr %450, align 16, !tbaa !5
  %451 = getelementptr inbounds [48 x ptr], ptr %9, i64 0, i64 1
  store ptr null, ptr %451, align 8, !tbaa !5
  store i32 -1, ptr %11, align 4, !tbaa !10
  %452 = getelementptr inbounds [1276 x i8], ptr %5, i64 0, i64 0
  %453 = getelementptr inbounds [48 x ptr], ptr %9, i64 0, i64 0
  %454 = getelementptr inbounds [48 x i16], ptr %10, i64 0, i64 0
  %455 = call i32 @opus_packet_parse(ptr noundef %452, i32 noundef 1275, ptr noundef %8, ptr noundef %453, ptr noundef %454, ptr noundef %11)
  store i32 %455, ptr %12, align 4, !tbaa !10
  %456 = load i32, ptr %6, align 4, !tbaa !10
  %457 = add nsw i32 %456, 1
  store i32 %457, ptr %6, align 4, !tbaa !10
  %458 = load i32, ptr %12, align 4, !tbaa !10
  %459 = icmp ne i32 %458, -4
  br i1 %459, label %460, label %461

460:                                              ; preds = %444
  call void @_test_failed(ptr noundef @.str.2, i32 noundef 835) #8
  unreachable

461:                                              ; preds = %444
  %462 = load i32, ptr %3, align 4, !tbaa !10
  %463 = and i32 %462, 63
  %464 = add nsw i32 64, %463
  %465 = trunc i32 %464 to i8
  %466 = getelementptr inbounds [1276 x i8], ptr %5, i64 0, i64 1
  store i8 %465, ptr %466, align 1, !tbaa !9
  store i8 -1, ptr %8, align 1, !tbaa !9
  %467 = getelementptr inbounds [48 x ptr], ptr %9, i64 0, i64 0
  store ptr null, ptr %467, align 16, !tbaa !5
  %468 = getelementptr inbounds [48 x ptr], ptr %9, i64 0, i64 1
  store ptr null, ptr %468, align 8, !tbaa !5
  store i32 -1, ptr %11, align 4, !tbaa !10
  %469 = getelementptr inbounds [1276 x i8], ptr %5, i64 0, i64 0
  %470 = getelementptr inbounds [48 x ptr], ptr %9, i64 0, i64 0
  %471 = getelementptr inbounds [48 x i16], ptr %10, i64 0, i64 0
  %472 = call i32 @opus_packet_parse(ptr noundef %469, i32 noundef 1275, ptr noundef %8, ptr noundef %470, ptr noundef %471, ptr noundef %11)
  store i32 %472, ptr %12, align 4, !tbaa !10
  %473 = load i32, ptr %6, align 4, !tbaa !10
  %474 = add nsw i32 %473, 1
  store i32 %474, ptr %6, align 4, !tbaa !10
  %475 = load i32, ptr %12, align 4, !tbaa !10
  %476 = icmp ne i32 %475, -4
  br i1 %476, label %477, label %478

477:                                              ; preds = %461
  call void @_test_failed(ptr noundef @.str.2, i32 noundef 840) #8
  unreachable

478:                                              ; preds = %461
  %479 = load i32, ptr %3, align 4, !tbaa !10
  %480 = and i32 %479, 63
  %481 = add nsw i32 192, %480
  %482 = trunc i32 %481 to i8
  %483 = getelementptr inbounds [1276 x i8], ptr %5, i64 0, i64 1
  store i8 %482, ptr %483, align 1, !tbaa !9
  store i8 -1, ptr %8, align 1, !tbaa !9
  %484 = getelementptr inbounds [48 x ptr], ptr %9, i64 0, i64 0
  store ptr null, ptr %484, align 16, !tbaa !5
  %485 = getelementptr inbounds [48 x ptr], ptr %9, i64 0, i64 1
  store ptr null, ptr %485, align 8, !tbaa !5
  store i32 -1, ptr %11, align 4, !tbaa !10
  %486 = getelementptr inbounds [1276 x i8], ptr %5, i64 0, i64 0
  %487 = getelementptr inbounds [48 x ptr], ptr %9, i64 0, i64 0
  %488 = getelementptr inbounds [48 x i16], ptr %10, i64 0, i64 0
  %489 = call i32 @opus_packet_parse(ptr noundef %486, i32 noundef 1275, ptr noundef %8, ptr noundef %487, ptr noundef %488, ptr noundef %11)
  store i32 %489, ptr %12, align 4, !tbaa !10
  %490 = load i32, ptr %6, align 4, !tbaa !10
  %491 = add nsw i32 %490, 1
  store i32 %491, ptr %6, align 4, !tbaa !10
  %492 = load i32, ptr %12, align 4, !tbaa !10
  %493 = icmp ne i32 %492, -4
  br i1 %493, label %494, label %495

494:                                              ; preds = %478
  call void @_test_failed(ptr noundef @.str.2, i32 noundef 845) #8
  unreachable

495:                                              ; preds = %478
  br label %496

496:                                              ; preds = %495
  %497 = load i32, ptr %3, align 4, !tbaa !10
  %498 = add nsw i32 %497, 1
  store i32 %498, ptr %3, align 4, !tbaa !10
  br label %424, !llvm.loop !21

499:                                              ; preds = %424
  br label %500

500:                                              ; preds = %499
  %501 = load i32, ptr %1, align 4, !tbaa !10
  %502 = add nsw i32 %501, 1
  store i32 %502, ptr %1, align 4, !tbaa !10
  br label %415, !llvm.loop !22

503:                                              ; preds = %415
  %504 = load ptr, ptr @stdout, align 8, !tbaa !5
  %505 = load i32, ptr %6, align 4, !tbaa !10
  %506 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %504, ptr noundef @.str.40, i32 noundef %505) #7
  %507 = load i32, ptr %6, align 4, !tbaa !10
  %508 = load i32, ptr %7, align 4, !tbaa !10
  %509 = add nsw i32 %508, %507
  store i32 %509, ptr %7, align 4, !tbaa !10
  store i32 0, ptr %6, align 4, !tbaa !10
  store i32 0, ptr %1, align 4, !tbaa !10
  br label %510

510:                                              ; preds = %568, %503
  %511 = load i32, ptr %1, align 4, !tbaa !10
  %512 = icmp slt i32 %511, 64
  br i1 %512, label %513, label %571

513:                                              ; preds = %510
  %514 = load i32, ptr %1, align 4, !tbaa !10
  %515 = shl i32 %514, 2
  %516 = add nsw i32 %515, 3
  %517 = trunc i32 %516 to i8
  %518 = getelementptr inbounds [1276 x i8], ptr %5, i64 0, i64 0
  store i8 %517, ptr %518, align 16, !tbaa !9
  %519 = getelementptr inbounds [1276 x i8], ptr %5, i64 0, i64 1
  store i8 1, ptr %519, align 1, !tbaa !9
  store i32 0, ptr %2, align 4, !tbaa !10
  br label %520

520:                                              ; preds = %552, %513
  %521 = load i32, ptr %2, align 4, !tbaa !10
  %522 = icmp slt i32 %521, 1276
  br i1 %522, label %523, label %555

523:                                              ; preds = %520
  store i8 -1, ptr %8, align 1, !tbaa !9
  %524 = getelementptr inbounds [48 x ptr], ptr %9, i64 0, i64 0
  store ptr null, ptr %524, align 16, !tbaa !5
  %525 = getelementptr inbounds [48 x ptr], ptr %9, i64 0, i64 1
  store ptr null, ptr %525, align 8, !tbaa !5
  store i32 -1, ptr %11, align 4, !tbaa !10
  %526 = getelementptr inbounds [1276 x i8], ptr %5, i64 0, i64 0
  %527 = load i32, ptr %2, align 4, !tbaa !10
  %528 = add nsw i32 %527, 2
  %529 = getelementptr inbounds [48 x ptr], ptr %9, i64 0, i64 0
  %530 = getelementptr inbounds [48 x i16], ptr %10, i64 0, i64 0
  %531 = call i32 @opus_packet_parse(ptr noundef %526, i32 noundef %528, ptr noundef %8, ptr noundef %529, ptr noundef %530, ptr noundef %11)
  store i32 %531, ptr %12, align 4, !tbaa !10
  %532 = load i32, ptr %6, align 4, !tbaa !10
  %533 = add nsw i32 %532, 1
  store i32 %533, ptr %6, align 4, !tbaa !10
  %534 = load i32, ptr %12, align 4, !tbaa !10
  %535 = icmp ne i32 %534, 1
  br i1 %535, label %536, label %537

536:                                              ; preds = %523
  call void @_test_failed(ptr noundef @.str.2, i32 noundef 861) #8
  unreachable

537:                                              ; preds = %523
  %538 = getelementptr inbounds [48 x i16], ptr %10, i64 0, i64 0
  %539 = load i16, ptr %538, align 16, !tbaa !12
  %540 = sext i16 %539 to i32
  %541 = load i32, ptr %2, align 4, !tbaa !10
  %542 = icmp ne i32 %540, %541
  br i1 %542, label %543, label %544

543:                                              ; preds = %537
  call void @_test_failed(ptr noundef @.str.2, i32 noundef 862) #8
  unreachable

544:                                              ; preds = %537
  %545 = load i8, ptr %8, align 1, !tbaa !9
  %546 = zext i8 %545 to i32
  %547 = ashr i32 %546, 2
  %548 = load i32, ptr %1, align 4, !tbaa !10
  %549 = icmp ne i32 %547, %548
  br i1 %549, label %550, label %551

550:                                              ; preds = %544
  call void @_test_failed(ptr noundef @.str.2, i32 noundef 863) #8
  unreachable

551:                                              ; preds = %544
  br label %552

552:                                              ; preds = %551
  %553 = load i32, ptr %2, align 4, !tbaa !10
  %554 = add nsw i32 %553, 1
  store i32 %554, ptr %2, align 4, !tbaa !10
  br label %520, !llvm.loop !23

555:                                              ; preds = %520
  store i8 -1, ptr %8, align 1, !tbaa !9
  %556 = getelementptr inbounds [48 x ptr], ptr %9, i64 0, i64 0
  store ptr null, ptr %556, align 16, !tbaa !5
  %557 = getelementptr inbounds [48 x ptr], ptr %9, i64 0, i64 1
  store ptr null, ptr %557, align 8, !tbaa !5
  store i32 -1, ptr %11, align 4, !tbaa !10
  %558 = getelementptr inbounds [1276 x i8], ptr %5, i64 0, i64 0
  %559 = getelementptr inbounds [48 x ptr], ptr %9, i64 0, i64 0
  %560 = getelementptr inbounds [48 x i16], ptr %10, i64 0, i64 0
  %561 = call i32 @opus_packet_parse(ptr noundef %558, i32 noundef 1278, ptr noundef %8, ptr noundef %559, ptr noundef %560, ptr noundef %11)
  store i32 %561, ptr %12, align 4, !tbaa !10
  %562 = load i32, ptr %6, align 4, !tbaa !10
  %563 = add nsw i32 %562, 1
  store i32 %563, ptr %6, align 4, !tbaa !10
  %564 = load i32, ptr %12, align 4, !tbaa !10
  %565 = icmp ne i32 %564, -4
  br i1 %565, label %566, label %567

566:                                              ; preds = %555
  call void @_test_failed(ptr noundef @.str.2, i32 noundef 868) #8
  unreachable

567:                                              ; preds = %555
  br label %568

568:                                              ; preds = %567
  %569 = load i32, ptr %1, align 4, !tbaa !10
  %570 = add nsw i32 %569, 1
  store i32 %570, ptr %1, align 4, !tbaa !10
  br label %510, !llvm.loop !24

571:                                              ; preds = %510
  %572 = load ptr, ptr @stdout, align 8, !tbaa !5
  %573 = load i32, ptr %6, align 4, !tbaa !10
  %574 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %572, ptr noundef @.str.41, i32 noundef %573) #7
  %575 = load i32, ptr %6, align 4, !tbaa !10
  %576 = load i32, ptr %7, align 4, !tbaa !10
  %577 = add nsw i32 %576, %575
  store i32 %577, ptr %7, align 4, !tbaa !10
  store i32 0, ptr %6, align 4, !tbaa !10
  store i32 0, ptr %1, align 4, !tbaa !10
  br label %578

578:                                              ; preds = %725, %571
  %579 = load i32, ptr %1, align 4, !tbaa !10
  %580 = icmp slt i32 %579, 64
  br i1 %580, label %581, label %728

581:                                              ; preds = %578
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #7
  %582 = load i32, ptr %1, align 4, !tbaa !10
  %583 = shl i32 %582, 2
  %584 = add nsw i32 %583, 3
  %585 = trunc i32 %584 to i8
  %586 = getelementptr inbounds [1276 x i8], ptr %5, i64 0, i64 0
  store i8 %585, ptr %586, align 16, !tbaa !9
  %587 = getelementptr inbounds [1276 x i8], ptr %5, i64 0, i64 0
  %588 = call i32 @opus_packet_get_samples_per_frame(ptr noundef %587, i32 noundef 48000)
  store i32 %588, ptr %13, align 4, !tbaa !10
  store i32 2, ptr %2, align 4, !tbaa !10
  br label %589

589:                                              ; preds = %680, %581
  %590 = load i32, ptr %2, align 4, !tbaa !10
  %591 = icmp slt i32 %590, 49
  br i1 %591, label %592, label %683

592:                                              ; preds = %589
  %593 = load i32, ptr %2, align 4, !tbaa !10
  %594 = trunc i32 %593 to i8
  %595 = getelementptr inbounds [1276 x i8], ptr %5, i64 0, i64 1
  store i8 %594, ptr %595, align 1, !tbaa !9
  store i32 2, ptr %4, align 4, !tbaa !10
  br label %596

596:                                              ; preds = %676, %592
  %597 = load i32, ptr %4, align 4, !tbaa !10
  %598 = load i32, ptr %2, align 4, !tbaa !10
  %599 = add nsw i32 %598, 2
  %600 = mul nsw i32 %599, 1275
  %601 = icmp slt i32 %597, %600
  br i1 %601, label %602, label %679

602:                                              ; preds = %596
  store i8 -1, ptr %8, align 1, !tbaa !9
  %603 = getelementptr inbounds [48 x ptr], ptr %9, i64 0, i64 0
  store ptr null, ptr %603, align 16, !tbaa !5
  %604 = getelementptr inbounds [48 x ptr], ptr %9, i64 0, i64 1
  store ptr null, ptr %604, align 8, !tbaa !5
  store i32 -1, ptr %11, align 4, !tbaa !10
  %605 = getelementptr inbounds [1276 x i8], ptr %5, i64 0, i64 0
  %606 = load i32, ptr %4, align 4, !tbaa !10
  %607 = getelementptr inbounds [48 x ptr], ptr %9, i64 0, i64 0
  %608 = getelementptr inbounds [48 x i16], ptr %10, i64 0, i64 0
  %609 = call i32 @opus_packet_parse(ptr noundef %605, i32 noundef %606, ptr noundef %8, ptr noundef %607, ptr noundef %608, ptr noundef %11)
  store i32 %609, ptr %12, align 4, !tbaa !10
  %610 = load i32, ptr %6, align 4, !tbaa !10
  %611 = add nsw i32 %610, 1
  store i32 %611, ptr %6, align 4, !tbaa !10
  %612 = load i32, ptr %13, align 4, !tbaa !10
  %613 = load i32, ptr %2, align 4, !tbaa !10
  %614 = mul nsw i32 %612, %613
  %615 = icmp sle i32 %614, 5760
  br i1 %615, label %616, label %670

616:                                              ; preds = %602
  %617 = load i32, ptr %4, align 4, !tbaa !10
  %618 = sub nsw i32 %617, 2
  %619 = load i32, ptr %2, align 4, !tbaa !10
  %620 = srem i32 %618, %619
  %621 = icmp eq i32 %620, 0
  br i1 %621, label %622, label %670

622:                                              ; preds = %616
  %623 = load i32, ptr %4, align 4, !tbaa !10
  %624 = sub nsw i32 %623, 2
  %625 = load i32, ptr %2, align 4, !tbaa !10
  %626 = sdiv i32 %624, %625
  %627 = icmp slt i32 %626, 1276
  br i1 %627, label %628, label %670

628:                                              ; preds = %622
  %629 = load i32, ptr %12, align 4, !tbaa !10
  %630 = load i32, ptr %2, align 4, !tbaa !10
  %631 = icmp ne i32 %629, %630
  br i1 %631, label %632, label %633

632:                                              ; preds = %628
  call void @_test_failed(ptr noundef @.str.2, i32 noundef 890) #8
  unreachable

633:                                              ; preds = %628
  store i32 1, ptr %3, align 4, !tbaa !10
  br label %634

634:                                              ; preds = %659, %633
  %635 = load i32, ptr %3, align 4, !tbaa !10
  %636 = load i32, ptr %12, align 4, !tbaa !10
  %637 = icmp slt i32 %635, %636
  br i1 %637, label %638, label %662

638:                                              ; preds = %634
  %639 = load i32, ptr %3, align 4, !tbaa !10
  %640 = sext i32 %639 to i64
  %641 = getelementptr inbounds [48 x ptr], ptr %9, i64 0, i64 %640
  %642 = load ptr, ptr %641, align 8, !tbaa !5
  %643 = load i32, ptr %3, align 4, !tbaa !10
  %644 = sub nsw i32 %643, 1
  %645 = sext i32 %644 to i64
  %646 = getelementptr inbounds [48 x ptr], ptr %9, i64 0, i64 %645
  %647 = load ptr, ptr %646, align 8, !tbaa !5
  %648 = load i32, ptr %3, align 4, !tbaa !10
  %649 = sub nsw i32 %648, 1
  %650 = sext i32 %649 to i64
  %651 = getelementptr inbounds [48 x i16], ptr %10, i64 0, i64 %650
  %652 = load i16, ptr %651, align 2, !tbaa !12
  %653 = sext i16 %652 to i32
  %654 = sext i32 %653 to i64
  %655 = getelementptr inbounds i8, ptr %647, i64 %654
  %656 = icmp ne ptr %642, %655
  br i1 %656, label %657, label %658

657:                                              ; preds = %638
  call void @_test_failed(ptr noundef @.str.2, i32 noundef 891) #8
  unreachable

658:                                              ; preds = %638
  br label %659

659:                                              ; preds = %658
  %660 = load i32, ptr %3, align 4, !tbaa !10
  %661 = add nsw i32 %660, 1
  store i32 %661, ptr %3, align 4, !tbaa !10
  br label %634, !llvm.loop !25

662:                                              ; preds = %634
  %663 = load i8, ptr %8, align 1, !tbaa !9
  %664 = zext i8 %663 to i32
  %665 = ashr i32 %664, 2
  %666 = load i32, ptr %1, align 4, !tbaa !10
  %667 = icmp ne i32 %665, %666
  br i1 %667, label %668, label %669

668:                                              ; preds = %662
  call void @_test_failed(ptr noundef @.str.2, i32 noundef 892) #8
  unreachable

669:                                              ; preds = %662
  br label %675

670:                                              ; preds = %622, %616, %602
  %671 = load i32, ptr %12, align 4, !tbaa !10
  %672 = icmp ne i32 %671, -4
  br i1 %672, label %673, label %674

673:                                              ; preds = %670
  call void @_test_failed(ptr noundef @.str.2, i32 noundef 893) #8
  unreachable

674:                                              ; preds = %670
  br label %675

675:                                              ; preds = %674, %669
  br label %676

676:                                              ; preds = %675
  %677 = load i32, ptr %4, align 4, !tbaa !10
  %678 = add nsw i32 %677, 1
  store i32 %678, ptr %4, align 4, !tbaa !10
  br label %596, !llvm.loop !26

679:                                              ; preds = %596
  br label %680

680:                                              ; preds = %679
  %681 = load i32, ptr %2, align 4, !tbaa !10
  %682 = add nsw i32 %681, 1
  store i32 %682, ptr %2, align 4, !tbaa !10
  br label %589, !llvm.loop !27

683:                                              ; preds = %589
  %684 = load i32, ptr %13, align 4, !tbaa !10
  %685 = sdiv i32 5760, %684
  %686 = trunc i32 %685 to i8
  %687 = getelementptr inbounds [1276 x i8], ptr %5, i64 0, i64 1
  store i8 %686, ptr %687, align 1, !tbaa !9
  store i8 -1, ptr %8, align 1, !tbaa !9
  %688 = getelementptr inbounds [48 x ptr], ptr %9, i64 0, i64 0
  store ptr null, ptr %688, align 16, !tbaa !5
  %689 = getelementptr inbounds [48 x ptr], ptr %9, i64 0, i64 1
  store ptr null, ptr %689, align 8, !tbaa !5
  store i32 -1, ptr %11, align 4, !tbaa !10
  %690 = getelementptr inbounds [1276 x i8], ptr %5, i64 0, i64 0
  %691 = getelementptr inbounds [1276 x i8], ptr %5, i64 0, i64 1
  %692 = load i8, ptr %691, align 1, !tbaa !9
  %693 = zext i8 %692 to i32
  %694 = mul nsw i32 1275, %693
  %695 = add nsw i32 %694, 2
  %696 = getelementptr inbounds [48 x ptr], ptr %9, i64 0, i64 0
  %697 = getelementptr inbounds [48 x i16], ptr %10, i64 0, i64 0
  %698 = call i32 @opus_packet_parse(ptr noundef %690, i32 noundef %695, ptr noundef %8, ptr noundef %696, ptr noundef %697, ptr noundef %11)
  store i32 %698, ptr %12, align 4, !tbaa !10
  %699 = load i32, ptr %6, align 4, !tbaa !10
  %700 = add nsw i32 %699, 1
  store i32 %700, ptr %6, align 4, !tbaa !10
  %701 = load i32, ptr %12, align 4, !tbaa !10
  %702 = getelementptr inbounds [1276 x i8], ptr %5, i64 0, i64 1
  %703 = load i8, ptr %702, align 1, !tbaa !9
  %704 = zext i8 %703 to i32
  %705 = icmp ne i32 %701, %704
  br i1 %705, label %706, label %707

706:                                              ; preds = %683
  call void @_test_failed(ptr noundef @.str.2, i32 noundef 901) #8
  unreachable

707:                                              ; preds = %683
  store i32 0, ptr %3, align 4, !tbaa !10
  br label %708

708:                                              ; preds = %721, %707
  %709 = load i32, ptr %3, align 4, !tbaa !10
  %710 = load i32, ptr %12, align 4, !tbaa !10
  %711 = icmp slt i32 %709, %710
  br i1 %711, label %712, label %724

712:                                              ; preds = %708
  %713 = load i32, ptr %3, align 4, !tbaa !10
  %714 = sext i32 %713 to i64
  %715 = getelementptr inbounds [48 x i16], ptr %10, i64 0, i64 %714
  %716 = load i16, ptr %715, align 2, !tbaa !12
  %717 = sext i16 %716 to i32
  %718 = icmp ne i32 %717, 1275
  br i1 %718, label %719, label %720

719:                                              ; preds = %712
  call void @_test_failed(ptr noundef @.str.2, i32 noundef 902) #8
  unreachable

720:                                              ; preds = %712
  br label %721

721:                                              ; preds = %720
  %722 = load i32, ptr %3, align 4, !tbaa !10
  %723 = add nsw i32 %722, 1
  store i32 %723, ptr %3, align 4, !tbaa !10
  br label %708, !llvm.loop !28

724:                                              ; preds = %708
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #7
  br label %725

725:                                              ; preds = %724
  %726 = load i32, ptr %1, align 4, !tbaa !10
  %727 = add nsw i32 %726, 1
  store i32 %727, ptr %1, align 4, !tbaa !10
  br label %578, !llvm.loop !29

728:                                              ; preds = %578
  %729 = load ptr, ptr @stdout, align 8, !tbaa !5
  %730 = load i32, ptr %6, align 4, !tbaa !10
  %731 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %729, ptr noundef @.str.42, i32 noundef %730) #7
  %732 = load i32, ptr %6, align 4, !tbaa !10
  %733 = load i32, ptr %7, align 4, !tbaa !10
  %734 = add nsw i32 %733, %732
  store i32 %734, ptr %7, align 4, !tbaa !10
  store i32 0, ptr %6, align 4, !tbaa !10
  store i32 0, ptr %1, align 4, !tbaa !10
  br label %735

735:                                              ; preds = %1132, %728
  %736 = load i32, ptr %1, align 4, !tbaa !10
  %737 = icmp slt i32 %736, 64
  br i1 %737, label %738, label %1135

738:                                              ; preds = %735
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #7
  %739 = load i32, ptr %1, align 4, !tbaa !10
  %740 = shl i32 %739, 2
  %741 = add nsw i32 %740, 3
  %742 = trunc i32 %741 to i8
  %743 = getelementptr inbounds [1276 x i8], ptr %5, i64 0, i64 0
  store i8 %742, ptr %743, align 16, !tbaa !9
  %744 = getelementptr inbounds [1276 x i8], ptr %5, i64 0, i64 1
  store i8 -127, ptr %744, align 1, !tbaa !9
  %745 = getelementptr inbounds [1276 x i8], ptr %5, i64 0, i64 0
  %746 = call i32 @opus_packet_get_samples_per_frame(ptr noundef %745, i32 noundef 48000)
  store i32 %746, ptr %14, align 4, !tbaa !10
  store i32 0, ptr %3, align 4, !tbaa !10
  br label %747

747:                                              ; preds = %779, %738
  %748 = load i32, ptr %3, align 4, !tbaa !10
  %749 = icmp slt i32 %748, 1276
  br i1 %749, label %750, label %782

750:                                              ; preds = %747
  store i8 -1, ptr %8, align 1, !tbaa !9
  %751 = getelementptr inbounds [48 x ptr], ptr %9, i64 0, i64 0
  store ptr null, ptr %751, align 16, !tbaa !5
  %752 = getelementptr inbounds [48 x ptr], ptr %9, i64 0, i64 1
  store ptr null, ptr %752, align 8, !tbaa !5
  store i32 -1, ptr %11, align 4, !tbaa !10
  %753 = getelementptr inbounds [1276 x i8], ptr %5, i64 0, i64 0
  %754 = load i32, ptr %3, align 4, !tbaa !10
  %755 = add nsw i32 2, %754
  %756 = getelementptr inbounds [48 x ptr], ptr %9, i64 0, i64 0
  %757 = getelementptr inbounds [48 x i16], ptr %10, i64 0, i64 0
  %758 = call i32 @opus_packet_parse(ptr noundef %753, i32 noundef %755, ptr noundef %8, ptr noundef %756, ptr noundef %757, ptr noundef %11)
  store i32 %758, ptr %12, align 4, !tbaa !10
  %759 = load i32, ptr %6, align 4, !tbaa !10
  %760 = add nsw i32 %759, 1
  store i32 %760, ptr %6, align 4, !tbaa !10
  %761 = load i32, ptr %12, align 4, !tbaa !10
  %762 = icmp ne i32 %761, 1
  br i1 %762, label %763, label %764

763:                                              ; preds = %750
  call void @_test_failed(ptr noundef @.str.2, i32 noundef 919) #8
  unreachable

764:                                              ; preds = %750
  %765 = getelementptr inbounds [48 x i16], ptr %10, i64 0, i64 0
  %766 = load i16, ptr %765, align 16, !tbaa !12
  %767 = sext i16 %766 to i32
  %768 = load i32, ptr %3, align 4, !tbaa !10
  %769 = icmp ne i32 %767, %768
  br i1 %769, label %770, label %771

770:                                              ; preds = %764
  call void @_test_failed(ptr noundef @.str.2, i32 noundef 920) #8
  unreachable

771:                                              ; preds = %764
  %772 = load i8, ptr %8, align 1, !tbaa !9
  %773 = zext i8 %772 to i32
  %774 = ashr i32 %773, 2
  %775 = load i32, ptr %1, align 4, !tbaa !10
  %776 = icmp ne i32 %774, %775
  br i1 %776, label %777, label %778

777:                                              ; preds = %771
  call void @_test_failed(ptr noundef @.str.2, i32 noundef 921) #8
  unreachable

778:                                              ; preds = %771
  br label %779

779:                                              ; preds = %778
  %780 = load i32, ptr %3, align 4, !tbaa !10
  %781 = add nsw i32 %780, 1
  store i32 %781, ptr %3, align 4, !tbaa !10
  br label %747, !llvm.loop !30

782:                                              ; preds = %747
  store i8 -1, ptr %8, align 1, !tbaa !9
  %783 = getelementptr inbounds [48 x ptr], ptr %9, i64 0, i64 0
  store ptr null, ptr %783, align 16, !tbaa !5
  %784 = getelementptr inbounds [48 x ptr], ptr %9, i64 0, i64 1
  store ptr null, ptr %784, align 8, !tbaa !5
  store i32 -1, ptr %11, align 4, !tbaa !10
  %785 = getelementptr inbounds [1276 x i8], ptr %5, i64 0, i64 0
  %786 = getelementptr inbounds [48 x ptr], ptr %9, i64 0, i64 0
  %787 = getelementptr inbounds [48 x i16], ptr %10, i64 0, i64 0
  %788 = call i32 @opus_packet_parse(ptr noundef %785, i32 noundef 1278, ptr noundef %8, ptr noundef %786, ptr noundef %787, ptr noundef %11)
  store i32 %788, ptr %12, align 4, !tbaa !10
  %789 = load i32, ptr %6, align 4, !tbaa !10
  %790 = add nsw i32 %789, 1
  store i32 %790, ptr %6, align 4, !tbaa !10
  %791 = load i32, ptr %12, align 4, !tbaa !10
  %792 = icmp ne i32 %791, -4
  br i1 %792, label %793, label %794

793:                                              ; preds = %782
  call void @_test_failed(ptr noundef @.str.2, i32 noundef 926) #8
  unreachable

794:                                              ; preds = %782
  store i32 2, ptr %2, align 4, !tbaa !10
  br label %795

795:                                              ; preds = %1128, %794
  %796 = load i32, ptr %2, align 4, !tbaa !10
  %797 = icmp slt i32 %796, 49
  br i1 %797, label %798, label %1131

798:                                              ; preds = %795
  %799 = load i32, ptr %2, align 4, !tbaa !10
  %800 = add nsw i32 128, %799
  %801 = trunc i32 %800 to i8
  %802 = getelementptr inbounds [1276 x i8], ptr %5, i64 0, i64 1
  store i8 %801, ptr %802, align 1, !tbaa !9
  store i8 -1, ptr %8, align 1, !tbaa !9
  %803 = getelementptr inbounds [48 x ptr], ptr %9, i64 0, i64 0
  store ptr null, ptr %803, align 16, !tbaa !5
  %804 = getelementptr inbounds [48 x ptr], ptr %9, i64 0, i64 1
  store ptr null, ptr %804, align 8, !tbaa !5
  store i32 -1, ptr %11, align 4, !tbaa !10
  %805 = getelementptr inbounds [1276 x i8], ptr %5, i64 0, i64 0
  %806 = load i32, ptr %2, align 4, !tbaa !10
  %807 = add nsw i32 2, %806
  %808 = sub nsw i32 %807, 2
  %809 = getelementptr inbounds [48 x ptr], ptr %9, i64 0, i64 0
  %810 = getelementptr inbounds [48 x i16], ptr %10, i64 0, i64 0
  %811 = call i32 @opus_packet_parse(ptr noundef %805, i32 noundef %808, ptr noundef %8, ptr noundef %809, ptr noundef %810, ptr noundef %11)
  store i32 %811, ptr %12, align 4, !tbaa !10
  %812 = load i32, ptr %6, align 4, !tbaa !10
  %813 = add nsw i32 %812, 1
  store i32 %813, ptr %6, align 4, !tbaa !10
  %814 = load i32, ptr %12, align 4, !tbaa !10
  %815 = icmp ne i32 %814, -4
  br i1 %815, label %816, label %817

816:                                              ; preds = %798
  call void @_test_failed(ptr noundef @.str.2, i32 noundef 934) #8
  unreachable

817:                                              ; preds = %798
  %818 = getelementptr inbounds [1276 x i8], ptr %5, i64 0, i64 2
  store i8 -4, ptr %818, align 2, !tbaa !9
  %819 = getelementptr inbounds [1276 x i8], ptr %5, i64 0, i64 3
  store i8 0, ptr %819, align 1, !tbaa !9
  store i32 4, ptr %3, align 4, !tbaa !10
  br label %820

820:                                              ; preds = %829, %817
  %821 = load i32, ptr %3, align 4, !tbaa !10
  %822 = load i32, ptr %2, align 4, !tbaa !10
  %823 = add nsw i32 2, %822
  %824 = icmp slt i32 %821, %823
  br i1 %824, label %825, label %832

825:                                              ; preds = %820
  %826 = load i32, ptr %3, align 4, !tbaa !10
  %827 = sext i32 %826 to i64
  %828 = getelementptr inbounds [1276 x i8], ptr %5, i64 0, i64 %827
  store i8 0, ptr %828, align 1, !tbaa !9
  br label %829

829:                                              ; preds = %825
  %830 = load i32, ptr %3, align 4, !tbaa !10
  %831 = add nsw i32 %830, 1
  store i32 %831, ptr %3, align 4, !tbaa !10
  br label %820, !llvm.loop !31

832:                                              ; preds = %820
  store i8 -1, ptr %8, align 1, !tbaa !9
  %833 = getelementptr inbounds [48 x ptr], ptr %9, i64 0, i64 0
  store ptr null, ptr %833, align 16, !tbaa !5
  %834 = getelementptr inbounds [48 x ptr], ptr %9, i64 0, i64 1
  store ptr null, ptr %834, align 8, !tbaa !5
  store i32 -1, ptr %11, align 4, !tbaa !10
  %835 = getelementptr inbounds [1276 x i8], ptr %5, i64 0, i64 0
  %836 = load i32, ptr %2, align 4, !tbaa !10
  %837 = add nsw i32 2, %836
  %838 = getelementptr inbounds [48 x ptr], ptr %9, i64 0, i64 0
  %839 = getelementptr inbounds [48 x i16], ptr %10, i64 0, i64 0
  %840 = call i32 @opus_packet_parse(ptr noundef %835, i32 noundef %837, ptr noundef %8, ptr noundef %838, ptr noundef %839, ptr noundef %11)
  store i32 %840, ptr %12, align 4, !tbaa !10
  %841 = load i32, ptr %6, align 4, !tbaa !10
  %842 = add nsw i32 %841, 1
  store i32 %842, ptr %6, align 4, !tbaa !10
  %843 = load i32, ptr %12, align 4, !tbaa !10
  %844 = icmp ne i32 %843, -4
  br i1 %844, label %845, label %846

845:                                              ; preds = %832
  call void @_test_failed(ptr noundef @.str.2, i32 noundef 941) #8
  unreachable

846:                                              ; preds = %832
  store i32 2, ptr %3, align 4, !tbaa !10
  br label %847

847:                                              ; preds = %856, %846
  %848 = load i32, ptr %3, align 4, !tbaa !10
  %849 = load i32, ptr %2, align 4, !tbaa !10
  %850 = add nsw i32 2, %849
  %851 = icmp slt i32 %848, %850
  br i1 %851, label %852, label %859

852:                                              ; preds = %847
  %853 = load i32, ptr %3, align 4, !tbaa !10
  %854 = sext i32 %853 to i64
  %855 = getelementptr inbounds [1276 x i8], ptr %5, i64 0, i64 %854
  store i8 0, ptr %855, align 1, !tbaa !9
  br label %856

856:                                              ; preds = %852
  %857 = load i32, ptr %3, align 4, !tbaa !10
  %858 = add nsw i32 %857, 1
  store i32 %858, ptr %3, align 4, !tbaa !10
  br label %847, !llvm.loop !32

859:                                              ; preds = %847
  store i8 -1, ptr %8, align 1, !tbaa !9
  %860 = getelementptr inbounds [48 x ptr], ptr %9, i64 0, i64 0
  store ptr null, ptr %860, align 16, !tbaa !5
  %861 = getelementptr inbounds [48 x ptr], ptr %9, i64 0, i64 1
  store ptr null, ptr %861, align 8, !tbaa !5
  store i32 -1, ptr %11, align 4, !tbaa !10
  %862 = getelementptr inbounds [1276 x i8], ptr %5, i64 0, i64 0
  %863 = load i32, ptr %2, align 4, !tbaa !10
  %864 = add nsw i32 2, %863
  %865 = sub nsw i32 %864, 2
  %866 = getelementptr inbounds [48 x ptr], ptr %9, i64 0, i64 0
  %867 = getelementptr inbounds [48 x i16], ptr %10, i64 0, i64 0
  %868 = call i32 @opus_packet_parse(ptr noundef %862, i32 noundef %865, ptr noundef %8, ptr noundef %866, ptr noundef %867, ptr noundef %11)
  store i32 %868, ptr %12, align 4, !tbaa !10
  %869 = load i32, ptr %6, align 4, !tbaa !10
  %870 = add nsw i32 %869, 1
  store i32 %870, ptr %6, align 4, !tbaa !10
  %871 = load i32, ptr %12, align 4, !tbaa !10
  %872 = icmp ne i32 %871, -4
  br i1 %872, label %873, label %874

873:                                              ; preds = %859
  call void @_test_failed(ptr noundef @.str.2, i32 noundef 947) #8
  unreachable

874:                                              ; preds = %859
  %875 = getelementptr inbounds [1276 x i8], ptr %5, i64 0, i64 2
  store i8 -4, ptr %875, align 2, !tbaa !9
  %876 = getelementptr inbounds [1276 x i8], ptr %5, i64 0, i64 3
  store i8 0, ptr %876, align 1, !tbaa !9
  store i32 4, ptr %3, align 4, !tbaa !10
  br label %877

877:                                              ; preds = %886, %874
  %878 = load i32, ptr %3, align 4, !tbaa !10
  %879 = load i32, ptr %2, align 4, !tbaa !10
  %880 = add nsw i32 2, %879
  %881 = icmp slt i32 %878, %880
  br i1 %881, label %882, label %889

882:                                              ; preds = %877
  %883 = load i32, ptr %3, align 4, !tbaa !10
  %884 = sext i32 %883 to i64
  %885 = getelementptr inbounds [1276 x i8], ptr %5, i64 0, i64 %884
  store i8 0, ptr %885, align 1, !tbaa !9
  br label %886

886:                                              ; preds = %882
  %887 = load i32, ptr %3, align 4, !tbaa !10
  %888 = add nsw i32 %887, 1
  store i32 %888, ptr %3, align 4, !tbaa !10
  br label %877, !llvm.loop !33

889:                                              ; preds = %877
  store i8 -1, ptr %8, align 1, !tbaa !9
  %890 = getelementptr inbounds [48 x ptr], ptr %9, i64 0, i64 0
  store ptr null, ptr %890, align 16, !tbaa !5
  %891 = getelementptr inbounds [48 x ptr], ptr %9, i64 0, i64 1
  store ptr null, ptr %891, align 8, !tbaa !5
  store i32 -1, ptr %11, align 4, !tbaa !10
  %892 = getelementptr inbounds [1276 x i8], ptr %5, i64 0, i64 0
  %893 = load i32, ptr %2, align 4, !tbaa !10
  %894 = add nsw i32 2, %893
  %895 = add nsw i32 %894, 252
  %896 = sub nsw i32 %895, 1
  %897 = getelementptr inbounds [48 x ptr], ptr %9, i64 0, i64 0
  %898 = getelementptr inbounds [48 x i16], ptr %10, i64 0, i64 0
  %899 = call i32 @opus_packet_parse(ptr noundef %892, i32 noundef %896, ptr noundef %8, ptr noundef %897, ptr noundef %898, ptr noundef %11)
  store i32 %899, ptr %12, align 4, !tbaa !10
  %900 = load i32, ptr %6, align 4, !tbaa !10
  %901 = add nsw i32 %900, 1
  store i32 %901, ptr %6, align 4, !tbaa !10
  %902 = load i32, ptr %12, align 4, !tbaa !10
  %903 = icmp ne i32 %902, -4
  br i1 %903, label %904, label %905

904:                                              ; preds = %889
  call void @_test_failed(ptr noundef @.str.2, i32 noundef 955) #8
  unreachable

905:                                              ; preds = %889
  store i32 2, ptr %3, align 4, !tbaa !10
  br label %906

906:                                              ; preds = %915, %905
  %907 = load i32, ptr %3, align 4, !tbaa !10
  %908 = load i32, ptr %2, align 4, !tbaa !10
  %909 = add nsw i32 2, %908
  %910 = icmp slt i32 %907, %909
  br i1 %910, label %911, label %918

911:                                              ; preds = %906
  %912 = load i32, ptr %3, align 4, !tbaa !10
  %913 = sext i32 %912 to i64
  %914 = getelementptr inbounds [1276 x i8], ptr %5, i64 0, i64 %913
  store i8 0, ptr %914, align 1, !tbaa !9
  br label %915

915:                                              ; preds = %911
  %916 = load i32, ptr %3, align 4, !tbaa !10
  %917 = add nsw i32 %916, 1
  store i32 %917, ptr %3, align 4, !tbaa !10
  br label %906, !llvm.loop !34

918:                                              ; preds = %906
  store i8 -1, ptr %8, align 1, !tbaa !9
  %919 = getelementptr inbounds [48 x ptr], ptr %9, i64 0, i64 0
  store ptr null, ptr %919, align 16, !tbaa !5
  %920 = getelementptr inbounds [48 x ptr], ptr %9, i64 0, i64 1
  store ptr null, ptr %920, align 8, !tbaa !5
  store i32 -1, ptr %11, align 4, !tbaa !10
  %921 = getelementptr inbounds [1276 x i8], ptr %5, i64 0, i64 0
  %922 = load i32, ptr %2, align 4, !tbaa !10
  %923 = add nsw i32 2, %922
  %924 = sub nsw i32 %923, 1
  %925 = getelementptr inbounds [48 x ptr], ptr %9, i64 0, i64 0
  %926 = getelementptr inbounds [48 x i16], ptr %10, i64 0, i64 0
  %927 = call i32 @opus_packet_parse(ptr noundef %921, i32 noundef %924, ptr noundef %8, ptr noundef %925, ptr noundef %926, ptr noundef %11)
  store i32 %927, ptr %12, align 4, !tbaa !10
  %928 = load i32, ptr %6, align 4, !tbaa !10
  %929 = add nsw i32 %928, 1
  store i32 %929, ptr %6, align 4, !tbaa !10
  %930 = load i32, ptr %14, align 4, !tbaa !10
  %931 = load i32, ptr %2, align 4, !tbaa !10
  %932 = mul nsw i32 %930, %931
  %933 = icmp sle i32 %932, 5760
  br i1 %933, label %934, label %964

934:                                              ; preds = %918
  %935 = load i32, ptr %12, align 4, !tbaa !10
  %936 = load i32, ptr %2, align 4, !tbaa !10
  %937 = icmp ne i32 %935, %936
  br i1 %937, label %938, label %939

938:                                              ; preds = %934
  call void @_test_failed(ptr noundef @.str.2, i32 noundef 962) #8
  unreachable

939:                                              ; preds = %934
  store i32 0, ptr %3, align 4, !tbaa !10
  br label %940

940:                                              ; preds = %953, %939
  %941 = load i32, ptr %3, align 4, !tbaa !10
  %942 = load i32, ptr %2, align 4, !tbaa !10
  %943 = icmp slt i32 %941, %942
  br i1 %943, label %944, label %956

944:                                              ; preds = %940
  %945 = load i32, ptr %3, align 4, !tbaa !10
  %946 = sext i32 %945 to i64
  %947 = getelementptr inbounds [48 x i16], ptr %10, i64 0, i64 %946
  %948 = load i16, ptr %947, align 2, !tbaa !12
  %949 = sext i16 %948 to i32
  %950 = icmp ne i32 %949, 0
  br i1 %950, label %951, label %952

951:                                              ; preds = %944
  call void @_test_failed(ptr noundef @.str.2, i32 noundef 963) #8
  unreachable

952:                                              ; preds = %944
  br label %953

953:                                              ; preds = %952
  %954 = load i32, ptr %3, align 4, !tbaa !10
  %955 = add nsw i32 %954, 1
  store i32 %955, ptr %3, align 4, !tbaa !10
  br label %940, !llvm.loop !35

956:                                              ; preds = %940
  %957 = load i8, ptr %8, align 1, !tbaa !9
  %958 = zext i8 %957 to i32
  %959 = ashr i32 %958, 2
  %960 = load i32, ptr %1, align 4, !tbaa !10
  %961 = icmp ne i32 %959, %960
  br i1 %961, label %962, label %963

962:                                              ; preds = %956
  call void @_test_failed(ptr noundef @.str.2, i32 noundef 964) #8
  unreachable

963:                                              ; preds = %956
  br label %969

964:                                              ; preds = %918
  %965 = load i32, ptr %12, align 4, !tbaa !10
  %966 = icmp ne i32 %965, -4
  br i1 %966, label %967, label %968

967:                                              ; preds = %964
  call void @_test_failed(ptr noundef @.str.2, i32 noundef 965) #8
  unreachable

968:                                              ; preds = %964
  br label %969

969:                                              ; preds = %968, %963
  store i32 0, ptr %4, align 4, !tbaa !10
  br label %970

970:                                              ; preds = %1124, %969
  %971 = load i32, ptr %4, align 4, !tbaa !10
  %972 = icmp slt i32 %971, 8
  br i1 %972, label %973, label %1127

973:                                              ; preds = %970
  call void @llvm.lifetime.start.p0(i64 32, ptr %15) #7
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %15, ptr align 16 @__const.test_parse.tsz, i64 32, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #7
  store i32 0, ptr %16, align 4, !tbaa !10
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #7
  %974 = load i32, ptr %4, align 4, !tbaa !10
  %975 = sext i32 %974 to i64
  %976 = getelementptr inbounds [8 x i32], ptr %15, i64 0, i64 %975
  %977 = load i32, ptr %976, align 4, !tbaa !10
  %978 = load i32, ptr %1, align 4, !tbaa !10
  %979 = add nsw i32 %977, %978
  %980 = load i32, ptr %2, align 4, !tbaa !10
  %981 = sub nsw i32 %979, %980
  %982 = sub nsw i32 %981, 2
  %983 = load i32, ptr %2, align 4, !tbaa !10
  %984 = sdiv i32 %982, %983
  store i32 %984, ptr %17, align 4, !tbaa !10
  store i32 0, ptr %3, align 4, !tbaa !10
  br label %985

985:                                              ; preds = %1022, %973
  %986 = load i32, ptr %3, align 4, !tbaa !10
  %987 = load i32, ptr %2, align 4, !tbaa !10
  %988 = sub nsw i32 %987, 1
  %989 = icmp slt i32 %986, %988
  br i1 %989, label %990, label %1025

990:                                              ; preds = %985
  %991 = load i32, ptr %17, align 4, !tbaa !10
  %992 = icmp slt i32 %991, 252
  br i1 %992, label %993, label %1002

993:                                              ; preds = %990
  %994 = load i32, ptr %17, align 4, !tbaa !10
  %995 = trunc i32 %994 to i8
  %996 = load i32, ptr %16, align 4, !tbaa !10
  %997 = add nsw i32 2, %996
  %998 = sext i32 %997 to i64
  %999 = getelementptr inbounds [1276 x i8], ptr %5, i64 0, i64 %998
  store i8 %995, ptr %999, align 1, !tbaa !9
  %1000 = load i32, ptr %16, align 4, !tbaa !10
  %1001 = add nsw i32 %1000, 1
  store i32 %1001, ptr %16, align 4, !tbaa !10
  br label %1021

1002:                                             ; preds = %990
  %1003 = load i32, ptr %17, align 4, !tbaa !10
  %1004 = and i32 %1003, 3
  %1005 = add nsw i32 252, %1004
  %1006 = trunc i32 %1005 to i8
  %1007 = load i32, ptr %16, align 4, !tbaa !10
  %1008 = add nsw i32 2, %1007
  %1009 = sext i32 %1008 to i64
  %1010 = getelementptr inbounds [1276 x i8], ptr %5, i64 0, i64 %1009
  store i8 %1006, ptr %1010, align 1, !tbaa !9
  %1011 = load i32, ptr %17, align 4, !tbaa !10
  %1012 = sub nsw i32 %1011, 252
  %1013 = ashr i32 %1012, 2
  %1014 = trunc i32 %1013 to i8
  %1015 = load i32, ptr %16, align 4, !tbaa !10
  %1016 = add nsw i32 3, %1015
  %1017 = sext i32 %1016 to i64
  %1018 = getelementptr inbounds [1276 x i8], ptr %5, i64 0, i64 %1017
  store i8 %1014, ptr %1018, align 1, !tbaa !9
  %1019 = load i32, ptr %16, align 4, !tbaa !10
  %1020 = add nsw i32 %1019, 2
  store i32 %1020, ptr %16, align 4, !tbaa !10
  br label %1021

1021:                                             ; preds = %1002, %993
  br label %1022

1022:                                             ; preds = %1021
  %1023 = load i32, ptr %3, align 4, !tbaa !10
  %1024 = add nsw i32 %1023, 1
  store i32 %1024, ptr %3, align 4, !tbaa !10
  br label %985, !llvm.loop !36

1025:                                             ; preds = %985
  store i8 -1, ptr %8, align 1, !tbaa !9
  %1026 = getelementptr inbounds [48 x ptr], ptr %9, i64 0, i64 0
  store ptr null, ptr %1026, align 16, !tbaa !5
  %1027 = getelementptr inbounds [48 x ptr], ptr %9, i64 0, i64 1
  store ptr null, ptr %1027, align 8, !tbaa !5
  store i32 -1, ptr %11, align 4, !tbaa !10
  %1028 = getelementptr inbounds [1276 x i8], ptr %5, i64 0, i64 0
  %1029 = load i32, ptr %4, align 4, !tbaa !10
  %1030 = sext i32 %1029 to i64
  %1031 = getelementptr inbounds [8 x i32], ptr %15, i64 0, i64 %1030
  %1032 = load i32, ptr %1031, align 4, !tbaa !10
  %1033 = load i32, ptr %1, align 4, !tbaa !10
  %1034 = add nsw i32 %1032, %1033
  %1035 = getelementptr inbounds [48 x ptr], ptr %9, i64 0, i64 0
  %1036 = getelementptr inbounds [48 x i16], ptr %10, i64 0, i64 0
  %1037 = call i32 @opus_packet_parse(ptr noundef %1028, i32 noundef %1034, ptr noundef %8, ptr noundef %1035, ptr noundef %1036, ptr noundef %11)
  store i32 %1037, ptr %12, align 4, !tbaa !10
  %1038 = load i32, ptr %6, align 4, !tbaa !10
  %1039 = add nsw i32 %1038, 1
  store i32 %1039, ptr %6, align 4, !tbaa !10
  %1040 = load i32, ptr %14, align 4, !tbaa !10
  %1041 = load i32, ptr %2, align 4, !tbaa !10
  %1042 = mul nsw i32 %1040, %1041
  %1043 = icmp sle i32 %1042, 5760
  br i1 %1043, label %1044, label %1118

1044:                                             ; preds = %1025
  %1045 = load i32, ptr %17, align 4, !tbaa !10
  %1046 = icmp slt i32 %1045, 1276
  br i1 %1046, label %1047, label %1118

1047:                                             ; preds = %1044
  %1048 = load i32, ptr %4, align 4, !tbaa !10
  %1049 = sext i32 %1048 to i64
  %1050 = getelementptr inbounds [8 x i32], ptr %15, i64 0, i64 %1049
  %1051 = load i32, ptr %1050, align 4, !tbaa !10
  %1052 = load i32, ptr %1, align 4, !tbaa !10
  %1053 = add nsw i32 %1051, %1052
  %1054 = sub nsw i32 %1053, 2
  %1055 = load i32, ptr %16, align 4, !tbaa !10
  %1056 = sub nsw i32 %1054, %1055
  %1057 = load i32, ptr %17, align 4, !tbaa !10
  %1058 = load i32, ptr %2, align 4, !tbaa !10
  %1059 = sub nsw i32 %1058, 1
  %1060 = mul nsw i32 %1057, %1059
  %1061 = sub nsw i32 %1056, %1060
  %1062 = icmp slt i32 %1061, 1276
  br i1 %1062, label %1063, label %1118

1063:                                             ; preds = %1047
  %1064 = load i32, ptr %12, align 4, !tbaa !10
  %1065 = load i32, ptr %2, align 4, !tbaa !10
  %1066 = icmp ne i32 %1064, %1065
  br i1 %1066, label %1067, label %1068

1067:                                             ; preds = %1063
  call void @_test_failed(ptr noundef @.str.2, i32 noundef 981) #8
  unreachable

1068:                                             ; preds = %1063
  store i32 0, ptr %3, align 4, !tbaa !10
  br label %1069

1069:                                             ; preds = %1084, %1068
  %1070 = load i32, ptr %3, align 4, !tbaa !10
  %1071 = load i32, ptr %2, align 4, !tbaa !10
  %1072 = sub nsw i32 %1071, 1
  %1073 = icmp slt i32 %1070, %1072
  br i1 %1073, label %1074, label %1087

1074:                                             ; preds = %1069
  %1075 = load i32, ptr %3, align 4, !tbaa !10
  %1076 = sext i32 %1075 to i64
  %1077 = getelementptr inbounds [48 x i16], ptr %10, i64 0, i64 %1076
  %1078 = load i16, ptr %1077, align 2, !tbaa !12
  %1079 = sext i16 %1078 to i32
  %1080 = load i32, ptr %17, align 4, !tbaa !10
  %1081 = icmp ne i32 %1079, %1080
  br i1 %1081, label %1082, label %1083

1082:                                             ; preds = %1074
  call void @_test_failed(ptr noundef @.str.2, i32 noundef 982) #8
  unreachable

1083:                                             ; preds = %1074
  br label %1084

1084:                                             ; preds = %1083
  %1085 = load i32, ptr %3, align 4, !tbaa !10
  %1086 = add nsw i32 %1085, 1
  store i32 %1086, ptr %3, align 4, !tbaa !10
  br label %1069, !llvm.loop !37

1087:                                             ; preds = %1069
  %1088 = load i32, ptr %2, align 4, !tbaa !10
  %1089 = sub nsw i32 %1088, 1
  %1090 = sext i32 %1089 to i64
  %1091 = getelementptr inbounds [48 x i16], ptr %10, i64 0, i64 %1090
  %1092 = load i16, ptr %1091, align 2, !tbaa !12
  %1093 = sext i16 %1092 to i32
  %1094 = load i32, ptr %4, align 4, !tbaa !10
  %1095 = sext i32 %1094 to i64
  %1096 = getelementptr inbounds [8 x i32], ptr %15, i64 0, i64 %1095
  %1097 = load i32, ptr %1096, align 4, !tbaa !10
  %1098 = load i32, ptr %1, align 4, !tbaa !10
  %1099 = add nsw i32 %1097, %1098
  %1100 = sub nsw i32 %1099, 2
  %1101 = load i32, ptr %16, align 4, !tbaa !10
  %1102 = sub nsw i32 %1100, %1101
  %1103 = load i32, ptr %17, align 4, !tbaa !10
  %1104 = load i32, ptr %2, align 4, !tbaa !10
  %1105 = sub nsw i32 %1104, 1
  %1106 = mul nsw i32 %1103, %1105
  %1107 = sub nsw i32 %1102, %1106
  %1108 = icmp ne i32 %1093, %1107
  br i1 %1108, label %1109, label %1110

1109:                                             ; preds = %1087
  call void @_test_failed(ptr noundef @.str.2, i32 noundef 983) #8
  unreachable

1110:                                             ; preds = %1087
  %1111 = load i8, ptr %8, align 1, !tbaa !9
  %1112 = zext i8 %1111 to i32
  %1113 = ashr i32 %1112, 2
  %1114 = load i32, ptr %1, align 4, !tbaa !10
  %1115 = icmp ne i32 %1113, %1114
  br i1 %1115, label %1116, label %1117

1116:                                             ; preds = %1110
  call void @_test_failed(ptr noundef @.str.2, i32 noundef 984) #8
  unreachable

1117:                                             ; preds = %1110
  br label %1123

1118:                                             ; preds = %1047, %1044, %1025
  %1119 = load i32, ptr %12, align 4, !tbaa !10
  %1120 = icmp ne i32 %1119, -4
  br i1 %1120, label %1121, label %1122

1121:                                             ; preds = %1118
  call void @_test_failed(ptr noundef @.str.2, i32 noundef 985) #8
  unreachable

1122:                                             ; preds = %1118
  br label %1123

1123:                                             ; preds = %1122, %1117
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %15) #7
  br label %1124

1124:                                             ; preds = %1123
  %1125 = load i32, ptr %4, align 4, !tbaa !10
  %1126 = add nsw i32 %1125, 1
  store i32 %1126, ptr %4, align 4, !tbaa !10
  br label %970, !llvm.loop !38

1127:                                             ; preds = %970
  br label %1128

1128:                                             ; preds = %1127
  %1129 = load i32, ptr %2, align 4, !tbaa !10
  %1130 = add nsw i32 %1129, 1
  store i32 %1130, ptr %2, align 4, !tbaa !10
  br label %795, !llvm.loop !39

1131:                                             ; preds = %795
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #7
  br label %1132

1132:                                             ; preds = %1131
  %1133 = load i32, ptr %1, align 4, !tbaa !10
  %1134 = add nsw i32 %1133, 1
  store i32 %1134, ptr %1, align 4, !tbaa !10
  br label %735, !llvm.loop !40

1135:                                             ; preds = %735
  %1136 = load ptr, ptr @stdout, align 8, !tbaa !5
  %1137 = load i32, ptr %6, align 4, !tbaa !10
  %1138 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1136, ptr noundef @.str.43, i32 noundef %1137) #7
  %1139 = load i32, ptr %6, align 4, !tbaa !10
  %1140 = load i32, ptr %7, align 4, !tbaa !10
  %1141 = add nsw i32 %1140, %1139
  store i32 %1141, ptr %7, align 4, !tbaa !10
  store i32 0, ptr %6, align 4, !tbaa !10
  store i32 0, ptr %1, align 4, !tbaa !10
  br label %1142

1142:                                             ; preds = %1295, %1135
  %1143 = load i32, ptr %1, align 4, !tbaa !10
  %1144 = icmp slt i32 %1143, 64
  br i1 %1144, label %1145, label %1298

1145:                                             ; preds = %1142
  %1146 = load i32, ptr %1, align 4, !tbaa !10
  %1147 = shl i32 %1146, 2
  %1148 = add nsw i32 %1147, 3
  %1149 = trunc i32 %1148 to i8
  %1150 = getelementptr inbounds [1276 x i8], ptr %5, i64 0, i64 0
  store i8 %1149, ptr %1150, align 16, !tbaa !9
  %1151 = getelementptr inbounds [1276 x i8], ptr %5, i64 0, i64 1
  store i8 -63, ptr %1151, align 1, !tbaa !9
  store i32 2, ptr %3, align 4, !tbaa !10
  br label %1152

1152:                                             ; preds = %1159, %1145
  %1153 = load i32, ptr %3, align 4, !tbaa !10
  %1154 = icmp slt i32 %1153, 127
  br i1 %1154, label %1155, label %1162

1155:                                             ; preds = %1152
  %1156 = load i32, ptr %3, align 4, !tbaa !10
  %1157 = sext i32 %1156 to i64
  %1158 = getelementptr inbounds [1276 x i8], ptr %5, i64 0, i64 %1157
  store i8 -1, ptr %1158, align 1, !tbaa !9
  br label %1159

1159:                                             ; preds = %1155
  %1160 = load i32, ptr %3, align 4, !tbaa !10
  %1161 = add nsw i32 %1160, 1
  store i32 %1161, ptr %3, align 4, !tbaa !10
  br label %1152, !llvm.loop !41

1162:                                             ; preds = %1152
  store i8 -1, ptr %8, align 1, !tbaa !9
  %1163 = getelementptr inbounds [48 x ptr], ptr %9, i64 0, i64 0
  store ptr null, ptr %1163, align 16, !tbaa !5
  %1164 = getelementptr inbounds [48 x ptr], ptr %9, i64 0, i64 1
  store ptr null, ptr %1164, align 8, !tbaa !5
  store i32 -1, ptr %11, align 4, !tbaa !10
  %1165 = getelementptr inbounds [1276 x i8], ptr %5, i64 0, i64 0
  %1166 = getelementptr inbounds [48 x ptr], ptr %9, i64 0, i64 0
  %1167 = getelementptr inbounds [48 x i16], ptr %10, i64 0, i64 0
  %1168 = call i32 @opus_packet_parse(ptr noundef %1165, i32 noundef 127, ptr noundef %8, ptr noundef %1166, ptr noundef %1167, ptr noundef %11)
  store i32 %1168, ptr %12, align 4, !tbaa !10
  %1169 = load i32, ptr %6, align 4, !tbaa !10
  %1170 = add nsw i32 %1169, 1
  store i32 %1170, ptr %6, align 4, !tbaa !10
  %1171 = load i32, ptr %12, align 4, !tbaa !10
  %1172 = icmp ne i32 %1171, -4
  br i1 %1172, label %1173, label %1174

1173:                                             ; preds = %1162
  call void @_test_failed(ptr noundef @.str.2, i32 noundef 1002) #8
  unreachable

1174:                                             ; preds = %1162
  store i32 0, ptr %4, align 4, !tbaa !10
  br label %1175

1175:                                             ; preds = %1291, %1174
  %1176 = load i32, ptr %4, align 4, !tbaa !10
  %1177 = icmp slt i32 %1176, 4
  br i1 %1177, label %1178, label %1294

1178:                                             ; preds = %1175
  call void @llvm.lifetime.start.p0(i64 16, ptr %18) #7
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %18, ptr align 16 @__const.test_parse.tsz.44, i64 16, i1 false)
  %1179 = load i32, ptr %4, align 4, !tbaa !10
  store i32 %1179, ptr %3, align 4, !tbaa !10
  br label %1180

1180:                                             ; preds = %1287, %1178
  %1181 = load i32, ptr %3, align 4, !tbaa !10
  %1182 = icmp slt i32 %1181, 65025
  br i1 %1182, label %1183, label %1290

1183:                                             ; preds = %1180
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #7
  store i32 0, ptr %19, align 4, !tbaa !10
  br label %1184

1184:                                             ; preds = %1194, %1183
  %1185 = load i32, ptr %19, align 4, !tbaa !10
  %1186 = load i32, ptr %3, align 4, !tbaa !10
  %1187 = sdiv i32 %1186, 254
  %1188 = icmp slt i32 %1185, %1187
  br i1 %1188, label %1189, label %1197

1189:                                             ; preds = %1184
  %1190 = load i32, ptr %19, align 4, !tbaa !10
  %1191 = add nsw i32 2, %1190
  %1192 = sext i32 %1191 to i64
  %1193 = getelementptr inbounds [1276 x i8], ptr %5, i64 0, i64 %1192
  store i8 -1, ptr %1193, align 1, !tbaa !9
  br label %1194

1194:                                             ; preds = %1189
  %1195 = load i32, ptr %19, align 4, !tbaa !10
  %1196 = add nsw i32 %1195, 1
  store i32 %1196, ptr %19, align 4, !tbaa !10
  br label %1184, !llvm.loop !42

1197:                                             ; preds = %1184
  %1198 = load i32, ptr %3, align 4, !tbaa !10
  %1199 = srem i32 %1198, 254
  %1200 = trunc i32 %1199 to i8
  %1201 = load i32, ptr %19, align 4, !tbaa !10
  %1202 = add nsw i32 2, %1201
  %1203 = sext i32 %1202 to i64
  %1204 = getelementptr inbounds [1276 x i8], ptr %5, i64 0, i64 %1203
  store i8 %1200, ptr %1204, align 1, !tbaa !9
  %1205 = load i32, ptr %19, align 4, !tbaa !10
  %1206 = add nsw i32 %1205, 1
  store i32 %1206, ptr %19, align 4, !tbaa !10
  %1207 = load i32, ptr %4, align 4, !tbaa !10
  %1208 = icmp eq i32 %1207, 0
  br i1 %1208, label %1209, label %1230

1209:                                             ; preds = %1197
  %1210 = load i32, ptr %1, align 4, !tbaa !10
  %1211 = icmp eq i32 %1210, 63
  br i1 %1211, label %1212, label %1230

1212:                                             ; preds = %1209
  store i8 -1, ptr %8, align 1, !tbaa !9
  %1213 = getelementptr inbounds [48 x ptr], ptr %9, i64 0, i64 0
  store ptr null, ptr %1213, align 16, !tbaa !5
  %1214 = getelementptr inbounds [48 x ptr], ptr %9, i64 0, i64 1
  store ptr null, ptr %1214, align 8, !tbaa !5
  store i32 -1, ptr %11, align 4, !tbaa !10
  %1215 = getelementptr inbounds [1276 x i8], ptr %5, i64 0, i64 0
  %1216 = load i32, ptr %3, align 4, !tbaa !10
  %1217 = add nsw i32 2, %1216
  %1218 = load i32, ptr %19, align 4, !tbaa !10
  %1219 = add nsw i32 %1217, %1218
  %1220 = sub nsw i32 %1219, 1
  %1221 = getelementptr inbounds [48 x ptr], ptr %9, i64 0, i64 0
  %1222 = getelementptr inbounds [48 x i16], ptr %10, i64 0, i64 0
  %1223 = call i32 @opus_packet_parse(ptr noundef %1215, i32 noundef %1220, ptr noundef %8, ptr noundef %1221, ptr noundef %1222, ptr noundef %11)
  store i32 %1223, ptr %12, align 4, !tbaa !10
  %1224 = load i32, ptr %6, align 4, !tbaa !10
  %1225 = add nsw i32 %1224, 1
  store i32 %1225, ptr %6, align 4, !tbaa !10
  %1226 = load i32, ptr %12, align 4, !tbaa !10
  %1227 = icmp ne i32 %1226, -4
  br i1 %1227, label %1228, label %1229

1228:                                             ; preds = %1212
  call void @_test_failed(ptr noundef @.str.2, i32 noundef 1019) #8
  unreachable

1229:                                             ; preds = %1212
  br label %1230

1230:                                             ; preds = %1229, %1209, %1197
  store i8 -1, ptr %8, align 1, !tbaa !9
  %1231 = getelementptr inbounds [48 x ptr], ptr %9, i64 0, i64 0
  store ptr null, ptr %1231, align 16, !tbaa !5
  %1232 = getelementptr inbounds [48 x ptr], ptr %9, i64 0, i64 1
  store ptr null, ptr %1232, align 8, !tbaa !5
  store i32 -1, ptr %11, align 4, !tbaa !10
  %1233 = getelementptr inbounds [1276 x i8], ptr %5, i64 0, i64 0
  %1234 = load i32, ptr %3, align 4, !tbaa !10
  %1235 = add nsw i32 2, %1234
  %1236 = load i32, ptr %4, align 4, !tbaa !10
  %1237 = sext i32 %1236 to i64
  %1238 = getelementptr inbounds [4 x i32], ptr %18, i64 0, i64 %1237
  %1239 = load i32, ptr %1238, align 4, !tbaa !10
  %1240 = add nsw i32 %1235, %1239
  %1241 = load i32, ptr %1, align 4, !tbaa !10
  %1242 = add nsw i32 %1240, %1241
  %1243 = load i32, ptr %19, align 4, !tbaa !10
  %1244 = add nsw i32 %1242, %1243
  %1245 = getelementptr inbounds [48 x ptr], ptr %9, i64 0, i64 0
  %1246 = getelementptr inbounds [48 x i16], ptr %10, i64 0, i64 0
  %1247 = call i32 @opus_packet_parse(ptr noundef %1233, i32 noundef %1244, ptr noundef %8, ptr noundef %1245, ptr noundef %1246, ptr noundef %11)
  store i32 %1247, ptr %12, align 4, !tbaa !10
  %1248 = load i32, ptr %6, align 4, !tbaa !10
  %1249 = add nsw i32 %1248, 1
  store i32 %1249, ptr %6, align 4, !tbaa !10
  %1250 = load i32, ptr %4, align 4, !tbaa !10
  %1251 = sext i32 %1250 to i64
  %1252 = getelementptr inbounds [4 x i32], ptr %18, i64 0, i64 %1251
  %1253 = load i32, ptr %1252, align 4, !tbaa !10
  %1254 = load i32, ptr %1, align 4, !tbaa !10
  %1255 = add nsw i32 %1253, %1254
  %1256 = icmp slt i32 %1255, 1276
  br i1 %1256, label %1257, label %1281

1257:                                             ; preds = %1230
  %1258 = load i32, ptr %12, align 4, !tbaa !10
  %1259 = icmp ne i32 %1258, 1
  br i1 %1259, label %1260, label %1261

1260:                                             ; preds = %1257
  call void @_test_failed(ptr noundef @.str.2, i32 noundef 1026) #8
  unreachable

1261:                                             ; preds = %1257
  %1262 = getelementptr inbounds [48 x i16], ptr %10, i64 0, i64 0
  %1263 = load i16, ptr %1262, align 16, !tbaa !12
  %1264 = sext i16 %1263 to i32
  %1265 = load i32, ptr %4, align 4, !tbaa !10
  %1266 = sext i32 %1265 to i64
  %1267 = getelementptr inbounds [4 x i32], ptr %18, i64 0, i64 %1266
  %1268 = load i32, ptr %1267, align 4, !tbaa !10
  %1269 = load i32, ptr %1, align 4, !tbaa !10
  %1270 = add nsw i32 %1268, %1269
  %1271 = icmp ne i32 %1264, %1270
  br i1 %1271, label %1272, label %1273

1272:                                             ; preds = %1261
  call void @_test_failed(ptr noundef @.str.2, i32 noundef 1027) #8
  unreachable

1273:                                             ; preds = %1261
  %1274 = load i8, ptr %8, align 1, !tbaa !9
  %1275 = zext i8 %1274 to i32
  %1276 = ashr i32 %1275, 2
  %1277 = load i32, ptr %1, align 4, !tbaa !10
  %1278 = icmp ne i32 %1276, %1277
  br i1 %1278, label %1279, label %1280

1279:                                             ; preds = %1273
  call void @_test_failed(ptr noundef @.str.2, i32 noundef 1028) #8
  unreachable

1280:                                             ; preds = %1273
  br label %1286

1281:                                             ; preds = %1230
  %1282 = load i32, ptr %12, align 4, !tbaa !10
  %1283 = icmp ne i32 %1282, -4
  br i1 %1283, label %1284, label %1285

1284:                                             ; preds = %1281
  call void @_test_failed(ptr noundef @.str.2, i32 noundef 1029) #8
  unreachable

1285:                                             ; preds = %1281
  br label %1286

1286:                                             ; preds = %1285, %1280
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #7
  br label %1287

1287:                                             ; preds = %1286
  %1288 = load i32, ptr %3, align 4, !tbaa !10
  %1289 = add nsw i32 %1288, 11
  store i32 %1289, ptr %3, align 4, !tbaa !10
  br label %1180, !llvm.loop !43

1290:                                             ; preds = %1180
  call void @llvm.lifetime.end.p0(i64 16, ptr %18) #7
  br label %1291

1291:                                             ; preds = %1290
  %1292 = load i32, ptr %4, align 4, !tbaa !10
  %1293 = add nsw i32 %1292, 1
  store i32 %1293, ptr %4, align 4, !tbaa !10
  br label %1175, !llvm.loop !44

1294:                                             ; preds = %1175
  br label %1295

1295:                                             ; preds = %1294
  %1296 = load i32, ptr %1, align 4, !tbaa !10
  %1297 = add nsw i32 %1296, 1
  store i32 %1297, ptr %1, align 4, !tbaa !10
  br label %1142, !llvm.loop !45

1298:                                             ; preds = %1142
  %1299 = load ptr, ptr @stdout, align 8, !tbaa !5
  %1300 = load i32, ptr %6, align 4, !tbaa !10
  %1301 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1299, ptr noundef @.str.45, i32 noundef %1300) #7
  %1302 = load i32, ptr %6, align 4, !tbaa !10
  %1303 = load i32, ptr %7, align 4, !tbaa !10
  %1304 = add nsw i32 %1303, %1302
  store i32 %1304, ptr %7, align 4, !tbaa !10
  %1305 = load ptr, ptr @stdout, align 8, !tbaa !5
  %1306 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1305, ptr noundef @.str.46) #7
  %1307 = load ptr, ptr @stdout, align 8, !tbaa !5
  %1308 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1307, ptr noundef @.str.47) #7
  %1309 = load ptr, ptr @stdout, align 8, !tbaa !5
  %1310 = load i32, ptr %7, align 4, !tbaa !10
  %1311 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1309, ptr noundef @.str.48, i32 noundef %1310) #7
  %1312 = load i32, ptr %7, align 4, !tbaa !10
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #7
  call void @llvm.lifetime.end.p0(i64 96, ptr %10) #7
  call void @llvm.lifetime.end.p0(i64 384, ptr %9) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %8) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #7
  call void @llvm.lifetime.end.p0(i64 1276, ptr %5) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %4) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %3) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %2) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %1) #7
  ret i32 %1312
}

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #6

declare i32 @opus_packet_parse(ptr noundef, i32 noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #4

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

!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 = !{!7, !7, i64 0}
!10 = !{!11, !11, i64 0}
!11 = !{!"int", !7, i64 0}
!12 = !{!13, !13, i64 0}
!13 = !{!"short", !7, i64 0}
!14 = distinct !{!14, !15}
!15 = !{!"llvm.loop.mustprogress"}
!16 = distinct !{!16, !15}
!17 = distinct !{!17, !15}
!18 = distinct !{!18, !15}
!19 = distinct !{!19, !15}
!20 = distinct !{!20, !15}
!21 = distinct !{!21, !15}
!22 = distinct !{!22, !15}
!23 = distinct !{!23, !15}
!24 = distinct !{!24, !15}
!25 = distinct !{!25, !15}
!26 = distinct !{!26, !15}
!27 = distinct !{!27, !15}
!28 = distinct !{!28, !15}
!29 = distinct !{!29, !15}
!30 = distinct !{!30, !15}
!31 = distinct !{!31, !15}
!32 = distinct !{!32, !15}
!33 = distinct !{!33, !15}
!34 = distinct !{!34, !15}
!35 = distinct !{!35, !15}
!36 = distinct !{!36, !15}
!37 = distinct !{!37, !15}
!38 = distinct !{!38, !15}
!39 = distinct !{!39, !15}
!40 = distinct !{!40, !15}
!41 = distinct !{!41, !15}
!42 = distinct !{!42, !15}
!43 = distinct !{!43, !15}
!44 = distinct !{!44, !15}
!45 = distinct !{!45, !15}


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

@stdout = external local_unnamed_addr global ptr, align 8
@.str.1 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [50 x i8], align 1
@__const.test_parse.tsz = external hidden unnamed_addr constant [8 x i32], align 16
@.str.43 = external hidden unnamed_addr constant [53 x i8], align 1
@__const.test_parse.tsz.44 = external hidden unnamed_addr constant [4 x i32], align 16
@.str.45 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [48 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: nofree nounwind
declare noundef i32 @fprintf(ptr nocapture noundef, ptr nocapture noundef readonly, ...) local_unnamed_addr #1

; Function Attrs: inlinehint noreturn nounwind uwtable
declare hidden void @_test_failed(ptr noundef, i32 noundef) local_unnamed_addr #2

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

declare i32 @opus_packet_get_samples_per_frame(ptr noundef, i32 noundef) local_unnamed_addr #3

; Function Attrs: nounwind uwtable
define dso_local i32 @test_parse() local_unnamed_addr #4 {
  %1 = alloca [1276 x i8], align 16
  %2 = alloca i8, align 1
  %3 = alloca [48 x ptr], align 16
  %4 = alloca [48 x i16], align 16
  %5 = alloca i32, align 4
  call void @llvm.lifetime.start.p0(i64 1276, ptr nonnull %1) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %2) #7
  call void @llvm.lifetime.start.p0(i64 384, ptr nonnull %3) #7
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %4) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %5) #7
  %6 = load ptr, ptr @stdout, align 8, !tbaa !5
  %7 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6, ptr noundef nonnull @.str.35) #7
  %8 = load ptr, ptr @stdout, align 8, !tbaa !5
  %9 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8, ptr noundef nonnull @.str.1) #7
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(1276) %1, i8 0, i64 1276, i1 false)
  store i8 -4, ptr %1, align 16, !tbaa !9
  %10 = call i32 @opus_packet_parse(ptr noundef nonnull %1, i32 noundef 1, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef null, ptr noundef nonnull %5) #7
  %.not = icmp eq i32 %10, -1
  br i1 %.not, label %.preheader410, label %13

.preheader410:                                    ; preds = %0
  %11 = getelementptr inbounds i8, ptr %3, i64 8
  %12 = getelementptr inbounds i8, ptr %1, i64 1
  br label %16

13:                                               ; preds = %0
  call void @_test_failed(ptr noundef nonnull @.str.2, i32 noundef 720) #8
  unreachable

14:                                               ; preds = %23
  %15 = add nuw nsw i32 %.0296533, 1
  %exitcond.not = icmp eq i32 %15, 64
  br i1 %exitcond.not, label %26, label %16, !llvm.loop !10

16:                                               ; preds = %.preheader410, %14
  %.0296533 = phi i32 [ 0, %.preheader410 ], [ %15, %14 ]
  %.0296.tr = trunc nuw nsw i32 %.0296533 to i8
  %17 = shl nuw i8 %.0296.tr, 2
  store i8 %17, ptr %1, align 16, !tbaa !9
  store i8 -1, ptr %2, align 1, !tbaa !9
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(16) %3, i8 0, i64 16, i1 false)
  store i32 -1, ptr %5, align 4, !tbaa !12
  %18 = call i32 @opus_packet_parse(ptr noundef nonnull %1, i32 noundef 4, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef nonnull %5) #7
  %.not398 = icmp eq i32 %18, 1
  br i1 %.not398, label %20, label %19

19:                                               ; preds = %16
  call void @_test_failed(ptr noundef nonnull @.str.2, i32 noundef 729) #8
  unreachable

20:                                               ; preds = %16
  %21 = load i16, ptr %4, align 16, !tbaa !14
  %.not399 = icmp eq i16 %21, 3
  br i1 %.not399, label %23, label %22

22:                                               ; preds = %20
  call void @_test_failed(ptr noundef nonnull @.str.2, i32 noundef 730) #8
  unreachable

23:                                               ; preds = %20
  %24 = load ptr, ptr %3, align 16, !tbaa !5
  %.not400 = icmp eq ptr %24, %12
  br i1 %.not400, label %14, label %25

25:                                               ; preds = %23
  call void @_test_failed(ptr noundef nonnull @.str.2, i32 noundef 731) #8
  unreachable

26:                                               ; preds = %14
  %27 = load ptr, ptr @stdout, align 8, !tbaa !5
  %28 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %27, ptr noundef nonnull @.str.36, i32 noundef 65) #7
  %29 = getelementptr inbounds i8, ptr %4, i64 2
  br label %30

30:                                               ; preds = %26, %65
  %.1537 = phi i32 [ 0, %26 ], [ %66, %65 ]
  %.1.tr = trunc nuw i32 %.1537 to i8
  %31 = shl nuw i8 %.1.tr, 2
  %32 = or disjoint i8 %31, 1
  store i8 %32, ptr %1, align 16, !tbaa !9
  br label %33

33:                                               ; preds = %30, %63
  %.0303535 = phi i32 [ 0, %30 ], [ %64, %63 ]
  store i8 -1, ptr %2, align 1, !tbaa !9
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(16) %3, i8 0, i64 16, i1 false)
  store i32 -1, ptr %5, align 4, !tbaa !12
  %34 = call i32 @opus_packet_parse(ptr noundef nonnull %1, i32 noundef %.0303535, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef nonnull %5) #7
  %35 = and i32 %.0303535, 1
  %36 = icmp ne i32 %35, 0
  %37 = icmp ult i32 %.0303535, 2552
  %or.cond = and i1 %37, %36
  br i1 %or.cond, label %38, label %61

38:                                               ; preds = %33
  %.not392 = icmp eq i32 %34, 2
  br i1 %.not392, label %40, label %39

39:                                               ; preds = %38
  call void @_test_failed(ptr noundef nonnull @.str.2, i32 noundef 749) #8
  unreachable

40:                                               ; preds = %38
  %41 = load i16, ptr %4, align 16, !tbaa !14
  %42 = load i16, ptr %29, align 2, !tbaa !14
  %.not393 = icmp eq i16 %41, %42
  br i1 %.not393, label %43, label %47

43:                                               ; preds = %40
  %44 = sext i16 %41 to i32
  %45 = add nsw i32 %.0303535, -1
  %46 = lshr exact i32 %45, 1
  %.not394 = icmp eq i32 %46, %44
  br i1 %.not394, label %48, label %47

47:                                               ; preds = %43, %40
  call void @_test_failed(ptr noundef nonnull @.str.2, i32 noundef 750) #8
  unreachable

48:                                               ; preds = %43
  %49 = load ptr, ptr %3, align 16, !tbaa !5
  %.not395 = icmp eq ptr %49, %12
  br i1 %.not395, label %51, label %50

50:                                               ; preds = %48
  call void @_test_failed(ptr noundef nonnull @.str.2, i32 noundef 751) #8
  unreachable

51:                                               ; preds = %48
  %52 = load ptr, ptr %11, align 8, !tbaa !5
  %53 = sext i16 %41 to i64
  %54 = getelementptr inbounds i8, ptr %49, i64 %53
  %.not396 = icmp eq ptr %52, %54
  br i1 %.not396, label %56, label %55

55:                                               ; preds = %51
  call void @_test_failed(ptr noundef nonnull @.str.2, i32 noundef 752) #8
  unreachable

56:                                               ; preds = %51
  %57 = load i8, ptr %2, align 1, !tbaa !9
  %58 = lshr i8 %57, 2
  %59 = zext nneg i8 %58 to i32
  %.not397 = icmp eq i32 %.1537, %59
  br i1 %.not397, label %63, label %60

60:                                               ; preds = %56
  call void @_test_failed(ptr noundef nonnull @.str.2, i32 noundef 753) #8
  unreachable

61:                                               ; preds = %33
  %.not391 = icmp eq i32 %34, -4
  br i1 %.not391, label %63, label %62

62:                                               ; preds = %61
  call void @_test_failed(ptr noundef nonnull @.str.2, i32 noundef 754) #8
  unreachable

63:                                               ; preds = %56, %61
  %64 = add nuw nsw i32 %.0303535, 1
  %exitcond668.not = icmp eq i32 %64, 2554
  br i1 %exitcond668.not, label %65, label %33, !llvm.loop !16

65:                                               ; preds = %63
  %66 = add nuw nsw i32 %.1537, 1
  %exitcond669.not = icmp eq i32 %66, 64
  br i1 %exitcond669.not, label %67, label %30, !llvm.loop !17

67:                                               ; preds = %65
  %68 = load ptr, ptr @stdout, align 8, !tbaa !5
  %69 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %68, ptr noundef nonnull @.str.37, i32 noundef 163456) #7
  %70 = getelementptr inbounds i8, ptr %1, i64 2
  br label %71

71:                                               ; preds = %67, %144
  %.2541 = phi i32 [ 0, %67 ], [ %145, %144 ]
  %.2.tr = trunc nuw i32 %.2541 to i8
  %72 = shl nuw i8 %.2.tr, 2
  %73 = or disjoint i8 %72, 2
  store i8 %73, ptr %1, align 16, !tbaa !9
  store i8 -1, ptr %2, align 1, !tbaa !9
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(16) %3, i8 0, i64 16, i1 false)
  store i32 -1, ptr %5, align 4, !tbaa !12
  %74 = call i32 @opus_packet_parse(ptr noundef nonnull %1, i32 noundef 1, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef nonnull %5) #7
  %.not379 = icmp eq i32 %74, -4
  br i1 %.not379, label %76, label %75

75:                                               ; preds = %71
  call void @_test_failed(ptr noundef nonnull @.str.2, i32 noundef 767) #8
  unreachable

76:                                               ; preds = %71
  store i8 -4, ptr %12, align 1, !tbaa !9
  store i8 -1, ptr %2, align 1, !tbaa !9
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(16) %3, i8 0, i64 16, i1 false)
  store i32 -1, ptr %5, align 4, !tbaa !12
  %77 = call i32 @opus_packet_parse(ptr noundef nonnull %1, i32 noundef 2, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef nonnull %5) #7
  %.not380 = icmp eq i32 %77, -4
  br i1 %.not380, label %.preheader769, label %78

78:                                               ; preds = %76
  call void @_test_failed(ptr noundef nonnull @.str.2, i32 noundef 772) #8
  unreachable

79:                                               ; preds = %139
  %80 = add nuw nsw i32 %.0299539, 1
  %exitcond670.not = icmp eq i32 %80, 1275
  br i1 %exitcond670.not, label %144, label %.preheader769, !llvm.loop !18

.preheader769:                                    ; preds = %76, %79
  %.0299539 = phi i32 [ %80, %79 ], [ 0, %76 ]
  %81 = icmp ult i32 %.0299539, 252
  %82 = trunc i32 %.0299539 to i8
  br i1 %81, label %88, label %83

83:                                               ; preds = %.preheader769
  %84 = or i8 %82, -4
  %85 = add nuw nsw i32 %.0299539, 772
  %86 = lshr i32 %85, 2
  %87 = trunc i32 %86 to i8
  store i8 %87, ptr %70, align 2, !tbaa !9
  br label %88

88:                                               ; preds = %.preheader769, %83
  %.sink = phi i8 [ %84, %83 ], [ %82, %.preheader769 ]
  %89 = phi i32 [ 3, %83 ], [ 2, %.preheader769 ]
  store i8 %.sink, ptr %12, align 1
  store i8 -1, ptr %2, align 1, !tbaa !9
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(16) %3, i8 0, i64 16, i1 false)
  store i32 -1, ptr %5, align 4, !tbaa !12
  %90 = add nuw nsw i32 %89, %.0299539
  %91 = add nsw i32 %90, -1
  %92 = call i32 @opus_packet_parse(ptr noundef nonnull %1, i32 noundef %91, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef nonnull %5) #7
  %.not381 = icmp eq i32 %92, -4
  br i1 %.not381, label %94, label %93

93:                                               ; preds = %88
  call void @_test_failed(ptr noundef nonnull @.str.2, i32 noundef 781) #8
  unreachable

94:                                               ; preds = %88
  store i8 -1, ptr %2, align 1, !tbaa !9
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(16) %3, i8 0, i64 16, i1 false)
  store i32 -1, ptr %5, align 4, !tbaa !12
  %95 = add nuw nsw i32 %90, 1276
  %96 = call i32 @opus_packet_parse(ptr noundef nonnull %1, i32 noundef %95, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef nonnull %5) #7
  %.not382 = icmp eq i32 %96, -4
  br i1 %.not382, label %98, label %97

97:                                               ; preds = %94
  call void @_test_failed(ptr noundef nonnull @.str.2, i32 noundef 786) #8
  unreachable

98:                                               ; preds = %94
  store i8 -1, ptr %2, align 1, !tbaa !9
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(16) %3, i8 0, i64 16, i1 false)
  store i32 -1, ptr %5, align 4, !tbaa !12
  %99 = call i32 @opus_packet_parse(ptr noundef nonnull %1, i32 noundef %90, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef nonnull %5) #7
  %.not383 = icmp eq i32 %99, 2
  br i1 %.not383, label %101, label %100

100:                                              ; preds = %98
  call void @_test_failed(ptr noundef nonnull @.str.2, i32 noundef 791) #8
  unreachable

101:                                              ; preds = %98
  %102 = load i16, ptr %4, align 16, !tbaa !14
  %103 = sext i16 %102 to i32
  %104 = icmp ne i32 %.0299539, %103
  %105 = load i16, ptr %29, align 2
  %106 = icmp ne i16 %105, 0
  %or.cond5 = select i1 %104, i1 true, i1 %106
  br i1 %or.cond5, label %107, label %108

107:                                              ; preds = %101
  call void @_test_failed(ptr noundef nonnull @.str.2, i32 noundef 792) #8
  unreachable

108:                                              ; preds = %101
  %109 = load ptr, ptr %11, align 8, !tbaa !5
  %110 = load ptr, ptr %3, align 16, !tbaa !5
  %111 = sext i16 %102 to i64
  %112 = getelementptr inbounds i8, ptr %110, i64 %111
  %.not384 = icmp eq ptr %109, %112
  br i1 %.not384, label %114, label %113

113:                                              ; preds = %108
  call void @_test_failed(ptr noundef nonnull @.str.2, i32 noundef 793) #8
  unreachable

114:                                              ; preds = %108
  %115 = load i8, ptr %2, align 1, !tbaa !9
  %116 = lshr i8 %115, 2
  %117 = zext nneg i8 %116 to i32
  %.not385 = icmp eq i32 %.2541, %117
  br i1 %.not385, label %119, label %118

118:                                              ; preds = %114
  call void @_test_failed(ptr noundef nonnull @.str.2, i32 noundef 794) #8
  unreachable

119:                                              ; preds = %114
  store i8 -1, ptr %2, align 1, !tbaa !9
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(16) %3, i8 0, i64 16, i1 false)
  store i32 -1, ptr %5, align 4, !tbaa !12
  %120 = shl nuw nsw i32 %.0299539, 1
  %121 = add nuw nsw i32 %120, 4
  %122 = call i32 @opus_packet_parse(ptr noundef nonnull %1, i32 noundef %121, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef nonnull %5) #7
  %.not386 = icmp eq i32 %122, 2
  br i1 %.not386, label %124, label %123

123:                                              ; preds = %119
  call void @_test_failed(ptr noundef nonnull @.str.2, i32 noundef 799) #8
  unreachable

124:                                              ; preds = %119
  %125 = load i16, ptr %4, align 16, !tbaa !14
  %126 = sext i16 %125 to i32
  %.not387 = icmp eq i32 %.0299539, %126
  br i1 %.not387, label %127, label %132

127:                                              ; preds = %124
  %128 = load i16, ptr %29, align 2, !tbaa !14
  %129 = sext i16 %128 to i32
  %.neg = select i1 %81, i32 -1, i32 -2
  %130 = add nuw nsw i32 %.0299539, 3
  %131 = add nsw i32 %130, %.neg
  %.not388 = icmp eq i32 %131, %129
  br i1 %.not388, label %133, label %132

132:                                              ; preds = %127, %124
  call void @_test_failed(ptr noundef nonnull @.str.2, i32 noundef 800) #8
  unreachable

133:                                              ; preds = %127
  %134 = load ptr, ptr %11, align 8, !tbaa !5
  %135 = load ptr, ptr %3, align 16, !tbaa !5
  %136 = sext i16 %125 to i64
  %137 = getelementptr inbounds i8, ptr %135, i64 %136
  %.not389 = icmp eq ptr %134, %137
  br i1 %.not389, label %139, label %138

138:                                              ; preds = %133
  call void @_test_failed(ptr noundef nonnull @.str.2, i32 noundef 801) #8
  unreachable

139:                                              ; preds = %133
  %140 = load i8, ptr %2, align 1, !tbaa !9
  %141 = lshr i8 %140, 2
  %142 = zext nneg i8 %141 to i32
  %.not390 = icmp eq i32 %.2541, %142
  br i1 %.not390, label %79, label %143

143:                                              ; preds = %139
  call void @_test_failed(ptr noundef nonnull @.str.2, i32 noundef 802) #8
  unreachable

144:                                              ; preds = %79
  %145 = add nuw nsw i32 %.2541, 1
  %exitcond671.not = icmp eq i32 %145, 64
  br i1 %exitcond671.not, label %146, label %71, !llvm.loop !19

146:                                              ; preds = %144
  %147 = load ptr, ptr @stdout, align 8, !tbaa !5
  %148 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %147, ptr noundef nonnull @.str.38, i32 noundef 326528) #7
  br label %149

149:                                              ; preds = %146, %154
  %.3543 = phi i32 [ 0, %146 ], [ %155, %154 ]
  %.3.tr = trunc nuw i32 %.3543 to i8
  %150 = shl nuw i8 %.3.tr, 2
  %151 = or disjoint i8 %150, 3
  store i8 %151, ptr %1, align 16, !tbaa !9
  store i8 -1, ptr %2, align 1, !tbaa !9
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(16) %3, i8 0, i64 16, i1 false)
  store i32 -1, ptr %5, align 4, !tbaa !12
  %152 = call i32 @opus_packet_parse(ptr noundef nonnull %1, i32 noundef 1, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef nonnull %5) #7
  %.not378 = icmp eq i32 %152, -4
  br i1 %.not378, label %154, label %153

153:                                              ; preds = %149
  call void @_test_failed(ptr noundef nonnull @.str.2, i32 noundef 815) #8
  unreachable

154:                                              ; preds = %149
  %155 = add nuw nsw i32 %.3543, 1
  %exitcond672.not = icmp eq i32 %155, 64
  br i1 %exitcond672.not, label %156, label %149, !llvm.loop !20

156:                                              ; preds = %154
  %157 = load ptr, ptr @stdout, align 8, !tbaa !5
  %158 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %157, ptr noundef nonnull @.str.39, i32 noundef 64) #7
  br label %159

159:                                              ; preds = %156, %181
  %.4547 = phi i32 [ 0, %156 ], [ %182, %181 ]
  %.4.tr = trunc nuw i32 %.4547 to i8
  %160 = shl nuw i8 %.4.tr, 2
  %161 = or disjoint i8 %160, 3
  store i8 %161, ptr %1, align 16, !tbaa !9
  br label %162

162:                                              ; preds = %159, %179
  %.1304545 = phi i32 [ 49, %159 ], [ %180, %179 ]
  %163 = trunc nuw i32 %.1304545 to i8
  %164 = and i8 %163, 63
  store i8 %164, ptr %12, align 1, !tbaa !9
  store i8 -1, ptr %2, align 1, !tbaa !9
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(16) %3, i8 0, i64 16, i1 false)
  store i32 -1, ptr %5, align 4, !tbaa !12
  %165 = call i32 @opus_packet_parse(ptr noundef nonnull %1, i32 noundef 1275, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef nonnull %5) #7
  %.not374 = icmp eq i32 %165, -4
  br i1 %.not374, label %167, label %166

166:                                              ; preds = %162
  call void @_test_failed(ptr noundef nonnull @.str.2, i32 noundef 830) #8
  unreachable

167:                                              ; preds = %162
  %168 = or disjoint i8 %164, -128
  store i8 %168, ptr %12, align 1, !tbaa !9
  store i8 -1, ptr %2, align 1, !tbaa !9
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(16) %3, i8 0, i64 16, i1 false)
  store i32 -1, ptr %5, align 4, !tbaa !12
  %169 = call i32 @opus_packet_parse(ptr noundef nonnull %1, i32 noundef 1275, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef nonnull %5) #7
  %.not375 = icmp eq i32 %169, -4
  br i1 %.not375, label %171, label %170

170:                                              ; preds = %167
  call void @_test_failed(ptr noundef nonnull @.str.2, i32 noundef 835) #8
  unreachable

171:                                              ; preds = %167
  %172 = or i8 %163, 64
  store i8 %172, ptr %12, align 1, !tbaa !9
  store i8 -1, ptr %2, align 1, !tbaa !9
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(16) %3, i8 0, i64 16, i1 false)
  store i32 -1, ptr %5, align 4, !tbaa !12
  %173 = call i32 @opus_packet_parse(ptr noundef nonnull %1, i32 noundef 1275, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef nonnull %5) #7
  %.not376 = icmp eq i32 %173, -4
  br i1 %.not376, label %175, label %174

174:                                              ; preds = %171
  call void @_test_failed(ptr noundef nonnull @.str.2, i32 noundef 840) #8
  unreachable

175:                                              ; preds = %171
  %176 = or i8 %163, -64
  store i8 %176, ptr %12, align 1, !tbaa !9
  store i8 -1, ptr %2, align 1, !tbaa !9
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(16) %3, i8 0, i64 16, i1 false)
  store i32 -1, ptr %5, align 4, !tbaa !12
  %177 = call i32 @opus_packet_parse(ptr noundef nonnull %1, i32 noundef 1275, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef nonnull %5) #7
  %.not377 = icmp eq i32 %177, -4
  br i1 %.not377, label %179, label %178

178:                                              ; preds = %175
  call void @_test_failed(ptr noundef nonnull @.str.2, i32 noundef 845) #8
  unreachable

179:                                              ; preds = %175
  %180 = add nuw nsw i32 %.1304545, 1
  %exitcond673.not = icmp eq i32 %180, 65
  br i1 %exitcond673.not, label %181, label %162, !llvm.loop !21

181:                                              ; preds = %179
  %182 = add nuw nsw i32 %.4547, 1
  %exitcond674.not = icmp eq i32 %182, 64
  br i1 %exitcond674.not, label %183, label %159, !llvm.loop !22

183:                                              ; preds = %181
  %184 = load ptr, ptr @stdout, align 8, !tbaa !5
  %185 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %184, ptr noundef nonnull @.str.40, i32 noundef 4096) #7
  br label %186

186:                                              ; preds = %183, %207
  %.5551 = phi i32 [ 0, %183 ], [ %208, %207 ]
  %.5.tr = trunc nuw i32 %.5551 to i8
  %187 = shl nuw i8 %.5.tr, 2
  %188 = or disjoint i8 %187, 3
  store i8 %188, ptr %1, align 16, !tbaa !9
  store i8 1, ptr %12, align 1, !tbaa !9
  br label %191

189:                                              ; preds = %199
  %190 = add nuw nsw i32 %.1300549, 1
  %exitcond675.not = icmp eq i32 %190, 1276
  br i1 %exitcond675.not, label %204, label %191, !llvm.loop !23

191:                                              ; preds = %186, %189
  %.1300549 = phi i32 [ 0, %186 ], [ %190, %189 ]
  store i8 -1, ptr %2, align 1, !tbaa !9
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(16) %3, i8 0, i64 16, i1 false)
  store i32 -1, ptr %5, align 4, !tbaa !12
  %192 = add nuw nsw i32 %.1300549, 2
  %193 = call i32 @opus_packet_parse(ptr noundef nonnull %1, i32 noundef %192, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef nonnull %5) #7
  %.not371 = icmp eq i32 %193, 1
  br i1 %.not371, label %195, label %194

194:                                              ; preds = %191
  call void @_test_failed(ptr noundef nonnull @.str.2, i32 noundef 861) #8
  unreachable

195:                                              ; preds = %191
  %196 = load i16, ptr %4, align 16, !tbaa !14
  %197 = sext i16 %196 to i32
  %.not372 = icmp eq i32 %.1300549, %197
  br i1 %.not372, label %199, label %198

198:                                              ; preds = %195
  call void @_test_failed(ptr noundef nonnull @.str.2, i32 noundef 862) #8
  unreachable

199:                                              ; preds = %195
  %200 = load i8, ptr %2, align 1, !tbaa !9
  %201 = lshr i8 %200, 2
  %202 = zext nneg i8 %201 to i32
  %.not373 = icmp eq i32 %.5551, %202
  br i1 %.not373, label %189, label %203

203:                                              ; preds = %199
  call void @_test_failed(ptr noundef nonnull @.str.2, i32 noundef 863) #8
  unreachable

204:                                              ; preds = %189
  store i8 -1, ptr %2, align 1, !tbaa !9
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(16) %3, i8 0, i64 16, i1 false)
  store i32 -1, ptr %5, align 4, !tbaa !12
  %205 = call i32 @opus_packet_parse(ptr noundef nonnull %1, i32 noundef 1278, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef nonnull %5) #7
  %.not370 = icmp eq i32 %205, -4
  br i1 %.not370, label %207, label %206

206:                                              ; preds = %204
  call void @_test_failed(ptr noundef nonnull @.str.2, i32 noundef 868) #8
  unreachable

207:                                              ; preds = %204
  %208 = add nuw nsw i32 %.5551, 1
  %exitcond676.not = icmp eq i32 %208, 64
  br i1 %exitcond676.not, label %209, label %186, !llvm.loop !24

209:                                              ; preds = %207
  %210 = load ptr, ptr @stdout, align 8, !tbaa !5
  %211 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %210, ptr noundef nonnull @.str.41, i32 noundef 81728) #7
  br label %212

212:                                              ; preds = %209, %._crit_edge
  %.6570 = phi i32 [ 0, %209 ], [ %259, %._crit_edge ]
  %.10322569 = phi i32 [ 0, %209 ], [ %251, %._crit_edge ]
  %.6.tr = trunc nuw i32 %.6570 to i8
  %213 = shl nuw i8 %.6.tr, 2
  %214 = or disjoint i8 %213, 3
  store i8 %214, ptr %1, align 16, !tbaa !9
  %215 = call i32 @opus_packet_get_samples_per_frame(ptr noundef nonnull %1, i32 noundef 48000) #7
  br label %216

216:                                              ; preds = %212, %.split563.us
  %indvars.iv677 = phi i32 [ 5100, %212 ], [ %indvars.iv.next678, %.split563.us ]
  %indvars.iv = phi i32 [ 5098, %212 ], [ %indvars.iv.next, %.split563.us ]
  %.2301567 = phi i32 [ 2, %212 ], [ %243, %.split563.us ]
  %.11323566 = phi i32 [ %.10322569, %212 ], [ %.us-phi, %.split563.us ]
  %217 = trunc nuw i32 %.2301567 to i8
  store i8 %217, ptr %12, align 1, !tbaa !9
  %218 = mul nsw i32 %.2301567, %215
  %.fr612 = freeze i32 %218
  %219 = icmp slt i32 %.fr612, 5761
  br i1 %219, label %.split.us.preheader, label %.split

.split.us.preheader:                              ; preds = %216
  %wide.trip.count = zext nneg i32 %.2301567 to i64
  br label %.split.us

.split.us:                                        ; preds = %.split.us.preheader, %230
  %.0326553.us = phi i32 [ %231, %230 ], [ 2, %.split.us.preheader ]
  store i8 -1, ptr %2, align 1, !tbaa !9
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(16) %3, i8 0, i64 16, i1 false)
  store i32 -1, ptr %5, align 4, !tbaa !12
  %220 = call i32 @opus_packet_parse(ptr noundef nonnull %1, i32 noundef %.0326553.us, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef nonnull %5) #7
  %221 = add nsw i32 %.0326553.us, -2
  %.urem = urem i32 %221, %.2301567
  %.udiv = udiv i32 %221, %.2301567
  %222 = icmp eq i32 %.urem, 0
  %223 = icmp slt i32 %.udiv, 1276
  %or.cond806 = and i1 %222, %223
  br i1 %or.cond806, label %225, label %224

224:                                              ; preds = %.split.us
  %.not366.us = icmp eq i32 %220, -4
  br i1 %.not366.us, label %230, label %.split557.us

225:                                              ; preds = %.split.us
  %.not367.us = icmp eq i32 %220, %.2301567
  br i1 %.not367.us, label %.lr.ph.us.preheader, label %.split559.us

226:                                              ; preds = %.lr.ph.us
  %indvars.iv.next681 = add nuw nsw i64 %indvars.iv680, 1
  %exitcond683.not = icmp eq i64 %indvars.iv.next681, %wide.trip.count
  br i1 %exitcond683.not, label %._crit_edge.us, label %.lr.ph.us, !llvm.loop !25

._crit_edge.us:                                   ; preds = %226
  %227 = load i8, ptr %2, align 1, !tbaa !9
  %228 = lshr i8 %227, 2
  %229 = zext nneg i8 %228 to i32
  %.not368.us = icmp eq i32 %.6570, %229
  br i1 %.not368.us, label %230, label %.split561.us

230:                                              ; preds = %._crit_edge.us, %224
  %231 = add nuw nsw i32 %.0326553.us, 1
  %exitcond684.not = icmp eq i32 %231, %indvars.iv677
  br i1 %exitcond684.not, label %.split563.us, label %.split.us, !llvm.loop !26

.lr.ph.us:                                        ; preds = %.lr.ph.us.preheader, %226
  %232 = phi ptr [ %.pre, %.lr.ph.us.preheader ], [ %234, %226 ]
  %indvars.iv680 = phi i64 [ 1, %.lr.ph.us.preheader ], [ %indvars.iv.next681, %226 ]
  %233 = getelementptr inbounds [48 x ptr], ptr %3, i64 0, i64 %indvars.iv680
  %234 = load ptr, ptr %233, align 8, !tbaa !5
  %235 = add nsw i64 %indvars.iv680, -1
  %236 = getelementptr inbounds [48 x i16], ptr %4, i64 0, i64 %235
  %237 = load i16, ptr %236, align 2, !tbaa !14
  %238 = sext i16 %237 to i64
  %239 = getelementptr inbounds i8, ptr %232, i64 %238
  %.not369.us = icmp eq ptr %234, %239
  br i1 %.not369.us, label %226, label %.split565.us

.lr.ph.us.preheader:                              ; preds = %225
  %.pre = load ptr, ptr %3, align 16, !tbaa !5
  br label %.lr.ph.us

.split:                                           ; preds = %216, %241
  %.0326553 = phi i32 [ %242, %241 ], [ 2, %216 ]
  store i8 -1, ptr %2, align 1, !tbaa !9
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(16) %3, i8 0, i64 16, i1 false)
  store i32 -1, ptr %5, align 4, !tbaa !12
  %240 = call i32 @opus_packet_parse(ptr noundef nonnull %1, i32 noundef %.0326553, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef nonnull %5) #7
  %.not366 = icmp eq i32 %240, -4
  br i1 %.not366, label %241, label %.split557.us

.split559.us:                                     ; preds = %225
  call void @_test_failed(ptr noundef nonnull @.str.2, i32 noundef 890) #8
  unreachable

.split565.us:                                     ; preds = %.lr.ph.us
  call void @_test_failed(ptr noundef nonnull @.str.2, i32 noundef 891) #8
  unreachable

.split561.us:                                     ; preds = %._crit_edge.us
  call void @_test_failed(ptr noundef nonnull @.str.2, i32 noundef 892) #8
  unreachable

.split557.us:                                     ; preds = %.split, %224
  call void @_test_failed(ptr noundef nonnull @.str.2, i32 noundef 893) #8
  unreachable

241:                                              ; preds = %.split
  %242 = add nuw nsw i32 %.0326553, 1
  %exitcond679.not = icmp eq i32 %242, %indvars.iv677
  br i1 %exitcond679.not, label %.split563.us, label %.split, !llvm.loop !26

.split563.us:                                     ; preds = %241, %230
  %.us-phi = add i32 %.11323566, %indvars.iv
  %243 = add nuw nsw i32 %.2301567, 1
  %indvars.iv.next = add nuw nsw i32 %indvars.iv, 1275
  %indvars.iv.next678 = add nuw nsw i32 %indvars.iv677, 1275
  %exitcond685.not = icmp eq i32 %243, 49
  br i1 %exitcond685.not, label %244, label %216, !llvm.loop !27

244:                                              ; preds = %.split563.us
  %245 = sdiv i32 5760, %215
  %246 = trunc i32 %245 to i8
  store i8 %246, ptr %12, align 1, !tbaa !9
  store i8 -1, ptr %2, align 1, !tbaa !9
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(16) %3, i8 0, i64 16, i1 false)
  store i32 -1, ptr %5, align 4, !tbaa !12
  %247 = and i32 %245, 255
  %248 = mul nuw nsw i32 %247, 1275
  %249 = add nuw nsw i32 %248, 2
  %250 = call i32 @opus_packet_parse(ptr noundef nonnull %1, i32 noundef %249, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef nonnull %5) #7
  %251 = add nsw i32 %.us-phi, 1
  %252 = load i8, ptr %12, align 1, !tbaa !9
  %253 = zext i8 %252 to i32
  %.not364 = icmp eq i32 %250, %253
  br i1 %.not364, label %.preheader409, label %254

.preheader409:                                    ; preds = %244
  %.not766 = icmp eq i32 %250, 0
  br i1 %.not766, label %._crit_edge, label %.lr.ph.preheader

.lr.ph.preheader:                                 ; preds = %.preheader409
  %wide.trip.count689 = zext nneg i32 %250 to i64
  br label %.lr.ph

254:                                              ; preds = %244
  call void @_test_failed(ptr noundef nonnull @.str.2, i32 noundef 901) #8
  unreachable

255:                                              ; preds = %.lr.ph
  %indvars.iv.next687 = add nuw nsw i64 %indvars.iv686, 1
  %exitcond690.not = icmp eq i64 %indvars.iv.next687, %wide.trip.count689
  br i1 %exitcond690.not, label %._crit_edge, label %.lr.ph, !llvm.loop !28

.lr.ph:                                           ; preds = %.lr.ph.preheader, %255
  %indvars.iv686 = phi i64 [ 0, %.lr.ph.preheader ], [ %indvars.iv.next687, %255 ]
  %256 = getelementptr inbounds [48 x i16], ptr %4, i64 0, i64 %indvars.iv686
  %257 = load i16, ptr %256, align 2, !tbaa !14
  %.not365 = icmp eq i16 %257, 1275
  br i1 %.not365, label %255, label %258

258:                                              ; preds = %.lr.ph
  call void @_test_failed(ptr noundef nonnull @.str.2, i32 noundef 902) #8
  unreachable

._crit_edge:                                      ; preds = %255, %.preheader409
  %259 = add nuw nsw i32 %.6570, 1
  %exitcond691.not = icmp eq i32 %259, 64
  br i1 %exitcond691.not, label %260, label %212, !llvm.loop !29

260:                                              ; preds = %._crit_edge
  %261 = load ptr, ptr @stdout, align 8, !tbaa !5
  %262 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %261, ptr noundef nonnull @.str.42, i32 noundef %251) #7
  %263 = getelementptr inbounds i8, ptr %1, i64 3
  %scevgep = getelementptr inbounds i8, ptr %1, i64 4
  %invariant.gep = getelementptr i8, ptr %1, i64 -1
  %invariant.gep804 = getelementptr i8, ptr %1, i64 -1
  br label %264

264:                                              ; preds = %260, %376
  %.7600 = phi i32 [ 0, %260 ], [ %377, %376 ]
  %.7.tr = trunc nuw i32 %.7600 to i8
  %265 = shl nuw i8 %.7.tr, 2
  %266 = or disjoint i8 %265, 3
  store i8 %266, ptr %1, align 16, !tbaa !9
  store i8 -127, ptr %12, align 1, !tbaa !9
  %267 = call i32 @opus_packet_get_samples_per_frame(ptr noundef nonnull %1, i32 noundef 48000) #7
  br label %270

268:                                              ; preds = %278
  %269 = add nuw nsw i32 %.4307572, 1
  %exitcond692.not = icmp eq i32 %269, 1276
  br i1 %exitcond692.not, label %283, label %270, !llvm.loop !30

270:                                              ; preds = %264, %268
  %.4307572 = phi i32 [ 0, %264 ], [ %269, %268 ]
  store i8 -1, ptr %2, align 1, !tbaa !9
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(16) %3, i8 0, i64 16, i1 false)
  store i32 -1, ptr %5, align 4, !tbaa !12
  %271 = add nuw nsw i32 %.4307572, 2
  %272 = call i32 @opus_packet_parse(ptr noundef nonnull %1, i32 noundef %271, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef nonnull %5) #7
  %.not361 = icmp eq i32 %272, 1
  br i1 %.not361, label %274, label %273

273:                                              ; preds = %270
  call void @_test_failed(ptr noundef nonnull @.str.2, i32 noundef 919) #8
  unreachable

274:                                              ; preds = %270
  %275 = load i16, ptr %4, align 16, !tbaa !14
  %276 = sext i16 %275 to i32
  %.not362 = icmp eq i32 %.4307572, %276
  br i1 %.not362, label %278, label %277

277:                                              ; preds = %274
  call void @_test_failed(ptr noundef nonnull @.str.2, i32 noundef 920) #8
  unreachable

278:                                              ; preds = %274
  %279 = load i8, ptr %2, align 1, !tbaa !9
  %280 = lshr i8 %279, 2
  %281 = zext nneg i8 %280 to i32
  %.not363 = icmp eq i32 %.7600, %281
  br i1 %.not363, label %268, label %282

282:                                              ; preds = %278
  call void @_test_failed(ptr noundef nonnull @.str.2, i32 noundef 921) #8
  unreachable

283:                                              ; preds = %268
  store i8 -1, ptr %2, align 1, !tbaa !9
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(16) %3, i8 0, i64 16, i1 false)
  store i32 -1, ptr %5, align 4, !tbaa !12
  %284 = call i32 @opus_packet_parse(ptr noundef nonnull %1, i32 noundef 1278, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef nonnull %5) #7
  %.not347 = icmp eq i32 %284, -4
  br i1 %.not347, label %286, label %285

285:                                              ; preds = %283
  call void @_test_failed(ptr noundef nonnull @.str.2, i32 noundef 926) #8
  unreachable

286:                                              ; preds = %283
  %287 = sext i32 %267 to i64
  br label %288

.loopexit:                                        ; preds = %375
  %indvars.iv.next719 = add nuw nsw i64 %indvars.iv718, 1
  %exitcond740.not = icmp eq i64 %289, 47
  br i1 %exitcond740.not, label %376, label %288, !llvm.loop !31

288:                                              ; preds = %286, %.loopexit
  %indvars.iv734 = phi i64 [ 2, %286 ], [ %indvars.iv.next735, %.loopexit ]
  %indvars.iv718 = phi i64 [ 1, %286 ], [ %indvars.iv.next719, %.loopexit ]
  %indvar = phi i64 [ 0, %286 ], [ %289, %.loopexit ]
  %289 = add nuw nsw i64 %indvar, 1
  %290 = add nuw nsw i64 %indvar, 2
  %291 = trunc nuw nsw i64 %indvars.iv734 to i32
  %292 = trunc i64 %indvars.iv734 to i8
  %293 = or disjoint i8 %292, -128
  store i8 %293, ptr %12, align 1, !tbaa !9
  store i8 -1, ptr %2, align 1, !tbaa !9
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(16) %3, i8 0, i64 16, i1 false)
  store i32 -1, ptr %5, align 4, !tbaa !12
  %294 = call i32 @opus_packet_parse(ptr noundef nonnull %1, i32 noundef %291, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef nonnull %5) #7
  %.not348 = icmp eq i32 %294, -4
  br i1 %.not348, label %296, label %295

295:                                              ; preds = %288
  call void @_test_failed(ptr noundef nonnull @.str.2, i32 noundef 934) #8
  unreachable

296:                                              ; preds = %288
  store i8 -4, ptr %70, align 2, !tbaa !9
  store i8 0, ptr %263, align 1, !tbaa !9
  %297 = icmp ugt i64 %indvars.iv734, 2
  br i1 %297, label %.lr.ph575.preheader, label %._crit_edge576

.lr.ph575.preheader:                              ; preds = %296
  call void @llvm.memset.p0.i64(ptr nonnull align 4 %scevgep, i8 0, i64 %indvar, i1 false), !tbaa !9
  br label %._crit_edge576

._crit_edge576:                                   ; preds = %.lr.ph575.preheader, %296
  store i8 -1, ptr %2, align 1, !tbaa !9
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(16) %3, i8 0, i64 16, i1 false)
  store i32 -1, ptr %5, align 4, !tbaa !12
  %298 = trunc i64 %indvars.iv734 to i32
  %299 = add i32 %298, 2
  %300 = call i32 @opus_packet_parse(ptr noundef nonnull %1, i32 noundef %299, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef nonnull %5) #7
  %.not349 = icmp eq i32 %300, -4
  br i1 %.not349, label %.preheader407.preheader, label %302

.preheader407.preheader:                          ; preds = %._crit_edge576
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 2 dereferenceable(1) %70, i8 0, i64 %290, i1 false), !tbaa !9
  store i8 -1, ptr %2, align 1, !tbaa !9
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(16) %3, i8 0, i64 16, i1 false)
  store i32 -1, ptr %5, align 4, !tbaa !12
  %301 = call i32 @opus_packet_parse(ptr noundef nonnull %1, i32 noundef %291, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef nonnull %5) #7
  %.not350 = icmp eq i32 %301, -4
  br i1 %.not350, label %304, label %303

302:                                              ; preds = %._crit_edge576
  call void @_test_failed(ptr noundef nonnull @.str.2, i32 noundef 941) #8
  unreachable

303:                                              ; preds = %.preheader407.preheader
  call void @_test_failed(ptr noundef nonnull @.str.2, i32 noundef 947) #8
  unreachable

304:                                              ; preds = %.preheader407.preheader
  store i8 -4, ptr %70, align 2, !tbaa !9
  store i8 0, ptr %263, align 1, !tbaa !9
  br i1 %297, label %.lr.ph580.preheader, label %._crit_edge581

.lr.ph580.preheader:                              ; preds = %304
  call void @llvm.memset.p0.i64(ptr nonnull align 4 %scevgep, i8 0, i64 %indvar, i1 false), !tbaa !9
  br label %._crit_edge581

._crit_edge581:                                   ; preds = %.lr.ph580.preheader, %304
  store i8 -1, ptr %2, align 1, !tbaa !9
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(16) %3, i8 0, i64 16, i1 false)
  store i32 -1, ptr %5, align 4, !tbaa !12
  %305 = trunc i64 %indvars.iv734 to i32
  %306 = add i32 %305, 253
  %307 = call i32 @opus_packet_parse(ptr noundef nonnull %1, i32 noundef %306, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef nonnull %5) #7
  %.not351 = icmp eq i32 %307, -4
  br i1 %.not351, label %.preheader406.preheader, label %312

.preheader406.preheader:                          ; preds = %._crit_edge581
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 2 dereferenceable(1) %70, i8 0, i64 %290, i1 false), !tbaa !9
  store i8 -1, ptr %2, align 1, !tbaa !9
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(16) %3, i8 0, i64 16, i1 false)
  store i32 -1, ptr %5, align 4, !tbaa !12
  %indvars.iv.next735 = add nuw nsw i64 %indvars.iv734, 1
  %308 = trunc nuw nsw i64 %indvars.iv.next735 to i32
  %309 = call i32 @opus_packet_parse(ptr noundef nonnull %1, i32 noundef %308, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef nonnull %5) #7
  %310 = mul nsw i64 %indvars.iv734, %287
  %311 = icmp slt i64 %310, 5761
  br i1 %311, label %313, label %325

312:                                              ; preds = %._crit_edge581
  call void @_test_failed(ptr noundef nonnull @.str.2, i32 noundef 955) #8
  unreachable

313:                                              ; preds = %.preheader406.preheader
  %314 = zext i32 %309 to i64
  %.not353 = icmp eq i64 %indvars.iv734, %314
  br i1 %.not353, label %.preheader405, label %315

315:                                              ; preds = %313
  call void @_test_failed(ptr noundef nonnull @.str.2, i32 noundef 962) #8
  unreachable

316:                                              ; preds = %.preheader405
  %indvars.iv.next706 = add nuw nsw i64 %indvars.iv705, 1
  %exitcond709.not = icmp eq i64 %indvars.iv.next706, %indvars.iv734
  br i1 %exitcond709.not, label %320, label %.preheader405, !llvm.loop !32

.preheader405:                                    ; preds = %313, %316
  %indvars.iv705 = phi i64 [ %indvars.iv.next706, %316 ], [ 0, %313 ]
  %317 = getelementptr inbounds [48 x i16], ptr %4, i64 0, i64 %indvars.iv705
  %318 = load i16, ptr %317, align 2, !tbaa !14
  %.not360 = icmp eq i16 %318, 0
  br i1 %.not360, label %316, label %319

319:                                              ; preds = %.preheader405
  call void @_test_failed(ptr noundef nonnull @.str.2, i32 noundef 963) #8
  unreachable

320:                                              ; preds = %316
  %321 = load i8, ptr %2, align 1, !tbaa !9
  %322 = lshr i8 %321, 2
  %323 = zext nneg i8 %322 to i32
  %.not354 = icmp eq i32 %.7600, %323
  br i1 %.not354, label %327, label %324

324:                                              ; preds = %320
  call void @_test_failed(ptr noundef nonnull @.str.2, i32 noundef 964) #8
  unreachable

325:                                              ; preds = %.preheader406.preheader
  %.not352 = icmp eq i32 %309, -4
  br i1 %.not352, label %327, label %326

326:                                              ; preds = %325
  call void @_test_failed(ptr noundef nonnull @.str.2, i32 noundef 965) #8
  unreachable

327:                                              ; preds = %325, %320
  %328 = add nsw i64 %indvars.iv734, -1
  %329 = getelementptr inbounds [48 x i16], ptr %4, i64 0, i64 %328
  %330 = trunc i64 %indvars.iv734 to i32
  %331 = sub i32 1, %330
  %min.iters.check = icmp ult i64 %indvars.iv718, 16
  %n.vec = and i64 %indvars.iv718, 9223372036854775792
  %ind.end = shl nuw i64 %n.vec, 1
  %ind.end778 = trunc i64 %n.vec to i32
  %cmp.n = icmp eq i64 %indvars.iv718, %n.vec
  br label %.lr.ph587

.lr.ph587:                                        ; preds = %375, %327
  %indvars.iv730 = phi i64 [ 0, %327 ], [ %indvars.iv.next731, %375 ]
  %332 = getelementptr inbounds [8 x i32], ptr @__const.test_parse.tsz, i64 0, i64 %indvars.iv730
  %333 = load i32, ptr %332, align 4, !tbaa !12
  %334 = add nsw i32 %333, %.7600
  %reass.sub = sub i32 %334, %291
  %335 = add i32 %reass.sub, -2
  %336 = sdiv i32 %335, %291
  %337 = icmp slt i32 %336, 252
  %338 = trunc i32 %336 to i8
  %339 = or i8 %338, -4
  %340 = add nuw i32 %336, 772
  %341 = lshr i32 %340, 2
  %342 = trunc i32 %341 to i8
  br i1 %337, label %.lr.ph587.split.us.preheader, label %.lr.ph587.split.preheader

.lr.ph587.split.preheader:                        ; preds = %.lr.ph587
  br i1 %min.iters.check, label %.lr.ph587.split.preheader787, label %vector.ph

.lr.ph587.split.preheader787:                     ; preds = %middle.block, %.lr.ph587.split.preheader
  %indvars.iv710.ph = phi i64 [ 0, %.lr.ph587.split.preheader ], [ %ind.end, %middle.block ]
  %.10584.ph = phi i32 [ 0, %.lr.ph587.split.preheader ], [ %ind.end778, %middle.block ]
  br label %.lr.ph587.split

vector.ph:                                        ; preds = %.lr.ph587.split.preheader
  %broadcast.splatinsert = insertelement <8 x i8> poison, i8 %339, i64 0
  %broadcast.splatinsert780 = insertelement <8 x i8> poison, i8 %342, i64 0
  %interleaved.vec = shufflevector <8 x i8> %broadcast.splatinsert, <8 x i8> %broadcast.splatinsert780, <16 x i32> <i32 0, i32 8, i32 0, i32 8, i32 0, i32 8, i32 0, i32 8, i32 0, i32 8, i32 0, i32 8, i32 0, i32 8, i32 0, i32 8>
  br label %vector.body

vector.body:                                      ; preds = %vector.body, %vector.ph
  %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
  %offset.idx = shl i64 %index, 1
  %343 = or disjoint i64 %offset.idx, 3
  %344 = or disjoint i64 %offset.idx, 19
  %gep = getelementptr [1276 x i8], ptr %invariant.gep, i64 0, i64 %343
  %gep805 = getelementptr [1276 x i8], ptr %invariant.gep804, i64 0, i64 %344
  store <16 x i8> %interleaved.vec, ptr %gep, align 2, !tbaa !9
  store <16 x i8> %interleaved.vec, ptr %gep805, align 2, !tbaa !9
  %index.next = add nuw i64 %index, 16
  %345 = icmp eq i64 %index.next, %n.vec
  br i1 %345, label %middle.block, label %vector.body, !llvm.loop !33

middle.block:                                     ; preds = %vector.body
  br i1 %cmp.n, label %._crit_edge588, label %.lr.ph587.split.preheader787

.lr.ph587.split.us.preheader:                     ; preds = %.lr.ph587
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 2 dereferenceable(1) %70, i8 %338, i64 %289, i1 false), !tbaa !9
  br label %._crit_edge588

.lr.ph587.split:                                  ; preds = %.lr.ph587.split.preheader787, %.lr.ph587.split
  %indvars.iv710 = phi i64 [ %indvars.iv.next711, %.lr.ph587.split ], [ %indvars.iv710.ph, %.lr.ph587.split.preheader787 ]
  %.10584 = phi i32 [ %349, %.lr.ph587.split ], [ %.10584.ph, %.lr.ph587.split.preheader787 ]
  %indvars.iv.next711 = add nuw nsw i64 %indvars.iv710, 2
  %346 = getelementptr inbounds [1276 x i8], ptr %1, i64 0, i64 %indvars.iv.next711
  store i8 %339, ptr %346, align 2, !tbaa !9
  %347 = add nuw nsw i64 %indvars.iv710, 3
  %348 = getelementptr inbounds [1276 x i8], ptr %1, i64 0, i64 %347
  store i8 %342, ptr %348, align 1, !tbaa !9
  %349 = add nuw nsw i32 %.10584, 1
  %350 = zext nneg i32 %349 to i64
  %exitcond715.not = icmp eq i64 %indvars.iv718, %350
  br i1 %exitcond715.not, label %._crit_edge588, label %.lr.ph587.split, !llvm.loop !36

._crit_edge588:                                   ; preds = %.lr.ph587.split, %middle.block, %.lr.ph587.split.us.preheader
  %.0297.lcssa.in = phi i64 [ %indvars.iv718, %.lr.ph587.split.us.preheader ], [ %ind.end, %middle.block ], [ %indvars.iv.next711, %.lr.ph587.split ]
  store i8 -1, ptr %2, align 1, !tbaa !9
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(16) %3, i8 0, i64 16, i1 false)
  store i32 -1, ptr %5, align 4, !tbaa !12
  %351 = call i32 @opus_packet_parse(ptr noundef nonnull %1, i32 noundef %334, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef nonnull %5) #7
  %352 = icmp slt i32 %336, 1276
  %or.cond7 = and i1 %311, %352
  br i1 %or.cond7, label %353, label %373

353:                                              ; preds = %._crit_edge588
  %.0297.lcssa = trunc i64 %.0297.lcssa.in to i32
  %.reass = mul i32 %336, %331
  %.neg402 = add i32 %334, -2
  %354 = add i32 %.neg402, %.reass
  %355 = sub i32 %354, %.0297.lcssa
  %356 = icmp slt i32 %355, 1276
  br i1 %356, label %357, label %373

357:                                              ; preds = %353
  %358 = zext i32 %351 to i64
  %.not356 = icmp eq i64 %indvars.iv734, %358
  br i1 %.not356, label %.lr.ph593, label %359

359:                                              ; preds = %357
  call void @_test_failed(ptr noundef nonnull @.str.2, i32 noundef 981) #8
  unreachable

360:                                              ; preds = %.lr.ph593
  %indvars.iv.next726 = add nuw nsw i64 %indvars.iv725, 1
  %exitcond729.not = icmp eq i64 %indvars.iv.next726, %indvars.iv718
  br i1 %exitcond729.not, label %._crit_edge594, label %.lr.ph593, !llvm.loop !37

.lr.ph593:                                        ; preds = %357, %360
  %indvars.iv725 = phi i64 [ %indvars.iv.next726, %360 ], [ 0, %357 ]
  %361 = getelementptr inbounds [48 x i16], ptr %4, i64 0, i64 %indvars.iv725
  %362 = load i16, ptr %361, align 2, !tbaa !14
  %363 = sext i16 %362 to i32
  %.not359 = icmp eq i32 %336, %363
  br i1 %.not359, label %360, label %364

364:                                              ; preds = %.lr.ph593
  call void @_test_failed(ptr noundef nonnull @.str.2, i32 noundef 982) #8
  unreachable

._crit_edge594:                                   ; preds = %360
  %365 = load i16, ptr %329, align 2, !tbaa !14
  %366 = sext i16 %365 to i32
  %.not357 = icmp eq i32 %355, %366
  br i1 %.not357, label %368, label %367

367:                                              ; preds = %._crit_edge594
  call void @_test_failed(ptr noundef nonnull @.str.2, i32 noundef 983) #8
  unreachable

368:                                              ; preds = %._crit_edge594
  %369 = load i8, ptr %2, align 1, !tbaa !9
  %370 = lshr i8 %369, 2
  %371 = zext nneg i8 %370 to i32
  %.not358 = icmp eq i32 %.7600, %371
  br i1 %.not358, label %375, label %372

372:                                              ; preds = %368
  call void @_test_failed(ptr noundef nonnull @.str.2, i32 noundef 984) #8
  unreachable

373:                                              ; preds = %353, %._crit_edge588
  %.not355 = icmp eq i32 %351, -4
  br i1 %.not355, label %375, label %374

374:                                              ; preds = %373
  call void @_test_failed(ptr noundef nonnull @.str.2, i32 noundef 985) #8
  unreachable

375:                                              ; preds = %373, %368
  %indvars.iv.next731 = add nuw nsw i64 %indvars.iv730, 1
  %exitcond733.not = icmp eq i64 %indvars.iv.next731, 8
  br i1 %exitcond733.not, label %.loopexit, label %.lr.ph587, !llvm.loop !38

376:                                              ; preds = %.loopexit
  %377 = add nuw nsw i32 %.7600, 1
  %exitcond741.not = icmp eq i32 %377, 64
  br i1 %exitcond741.not, label %378, label %264, !llvm.loop !39

378:                                              ; preds = %376
  %379 = load ptr, ptr @stdout, align 8, !tbaa !5
  %380 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %379, ptr noundef nonnull @.str.43, i32 noundef 120832) #7
  br label %381

381:                                              ; preds = %378, %438
  %.8611 = phi i32 [ 0, %378 ], [ %439, %438 ]
  %.17610 = phi i32 [ 0, %378 ], [ %418, %438 ]
  %.8.tr = trunc nuw i32 %.8611 to i8
  %382 = shl nuw i8 %.8.tr, 2
  %383 = or disjoint i8 %382, 3
  store i8 %383, ptr %1, align 16, !tbaa !9
  store i8 -63, ptr %12, align 1, !tbaa !9
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 2 dereferenceable(125) %70, i8 -1, i64 125, i1 false), !tbaa !9
  store i8 -1, ptr %2, align 1, !tbaa !9
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(16) %3, i8 0, i64 16, i1 false)
  store i32 -1, ptr %5, align 4, !tbaa !12
  %384 = call i32 @opus_packet_parse(ptr noundef nonnull %1, i32 noundef 127, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef nonnull %5) #7
  %.not341 = icmp eq i32 %384, -4
  br i1 %.not341, label %386, label %385

385:                                              ; preds = %381
  call void @_test_failed(ptr noundef nonnull @.str.2, i32 noundef 1002) #8
  unreachable

386:                                              ; preds = %381
  %387 = add nsw i32 %.17610, 1
  %388 = icmp eq i32 %.8611, 63
  %389 = add nuw nsw i32 %.8611, 3
  br label %.preheader403

.preheader403:                                    ; preds = %386, %437
  %indvar746 = phi i64 [ 0, %386 ], [ %indvar.next747, %437 ]
  %.18609 = phi i32 [ %387, %386 ], [ %418, %437 ]
  %390 = icmp eq i64 %indvar746, 0
  %or.cond9 = and i1 %388, %390
  %391 = getelementptr inbounds [4 x i32], ptr @__const.test_parse.tsz.44, i64 0, i64 %indvar746
  %392 = trunc nuw nsw i64 %indvar746 to i32
  br label %.preheader

.preheader:                                       ; preds = %.preheader403, %434
  %indvar748 = phi i64 [ 0, %.preheader403 ], [ %indvar.next749, %434 ]
  %.13607 = phi i32 [ %392, %.preheader403 ], [ %435, %434 ]
  %.19606 = phi i32 [ %.18609, %.preheader403 ], [ %418, %434 ]
  %393 = mul nuw nsw i64 %indvar748, 11
  %394 = add nuw i64 %indvar746, %393
  %395 = udiv i64 %394, 254
  %umax794 = call i64 @llvm.umax.i64(i64 %395, i64 1)
  %.not614 = icmp ult i32 %.13607, 254
  br i1 %.not614, label %._crit_edge604, label %.lr.ph603.preheader

.lr.ph603.preheader:                              ; preds = %.preheader
  %396 = mul nuw nsw i64 %indvar748, 11
  %397 = add nuw nsw i64 %indvar746, %396
  %398 = udiv i64 %397, 254
  %umax = call i64 @llvm.umax.i64(i64 %398, i64 1)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 2 dereferenceable(1) %70, i8 -1, i64 %umax, i1 false), !tbaa !9
  %xtraiter = and i64 %umax794, 7
  %399 = icmp ult i64 %394, 2032
  br i1 %399, label %._crit_edge604.loopexit.unr-lcssa, label %.lr.ph603.preheader.new

.lr.ph603.preheader.new:                          ; preds = %.lr.ph603.preheader
  %unroll_iter = and i64 %umax794, 144115188075855864
  br label %.lr.ph603

.lr.ph603:                                        ; preds = %.lr.ph603, %.lr.ph603.preheader.new
  %indvars.iv750 = phi i64 [ 0, %.lr.ph603.preheader.new ], [ %indvars.iv.next751.7, %.lr.ph603 ]
  %niter = phi i64 [ 0, %.lr.ph603.preheader.new ], [ %niter.next.7, %.lr.ph603 ]
  %indvars.iv.next751.7 = add nuw nsw i64 %indvars.iv750, 8
  %niter.next.7 = add i64 %niter, 8
  %niter.ncmp.7.not = icmp eq i64 %niter.next.7, %unroll_iter
  br i1 %niter.ncmp.7.not, label %._crit_edge604.loopexit.unr-lcssa, label %.lr.ph603, !llvm.loop !40

._crit_edge604.loopexit.unr-lcssa:                ; preds = %.lr.ph603, %.lr.ph603.preheader
  %indvars.iv.next751.lcssa.ph = phi i64 [ poison, %.lr.ph603.preheader ], [ %indvars.iv.next751.7, %.lr.ph603 ]
  %indvars.iv750.unr = phi i64 [ 0, %.lr.ph603.preheader ], [ %indvars.iv.next751.7, %.lr.ph603 ]
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  br i1 %lcmp.mod.not, label %._crit_edge604.loopexit, label %.lr.ph603.epil

.lr.ph603.epil:                                   ; preds = %._crit_edge604.loopexit.unr-lcssa, %.lr.ph603.epil
  %indvars.iv750.epil = phi i64 [ %indvars.iv.next751.epil, %.lr.ph603.epil ], [ %indvars.iv750.unr, %._crit_edge604.loopexit.unr-lcssa ]
  %epil.iter = phi i64 [ %epil.iter.next, %.lr.ph603.epil ], [ 0, %._crit_edge604.loopexit.unr-lcssa ]
  %indvars.iv.next751.epil = add nuw nsw i64 %indvars.iv750.epil, 1
  %epil.iter.next = add i64 %epil.iter, 1
  %epil.iter.cmp.not = icmp eq i64 %epil.iter.next, %xtraiter
  br i1 %epil.iter.cmp.not, label %._crit_edge604.loopexit, label %.lr.ph603.epil, !llvm.loop !41

._crit_edge604.loopexit:                          ; preds = %.lr.ph603.epil, %._crit_edge604.loopexit.unr-lcssa
  %indvars.iv.next751.lcssa = phi i64 [ %indvars.iv.next751.lcssa.ph, %._crit_edge604.loopexit.unr-lcssa ], [ %indvars.iv.next751.epil, %.lr.ph603.epil ]
  %400 = trunc nuw nsw i64 %indvars.iv.next751.lcssa to i32
  br label %._crit_edge604

._crit_edge604:                                   ; preds = %._crit_edge604.loopexit, %.preheader
  %.0.lcssa = phi i32 [ 0, %.preheader ], [ %400, %._crit_edge604.loopexit ]
  %401 = urem i32 %.13607, 254
  %402 = trunc nuw i32 %401 to i8
  %403 = add nuw nsw i32 %.0.lcssa, 2
  %404 = zext nneg i32 %403 to i64
  %405 = getelementptr inbounds [1276 x i8], ptr %1, i64 0, i64 %404
  store i8 %402, ptr %405, align 1, !tbaa !9
  br i1 %or.cond9, label %406, label %412

406:                                              ; preds = %._crit_edge604
  store i8 -1, ptr %2, align 1, !tbaa !9
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(16) %3, i8 0, i64 16, i1 false)
  store i32 -1, ptr %5, align 4, !tbaa !12
  %407 = add nuw nsw i32 %.13607, 2
  %408 = add nuw i32 %407, %.0.lcssa
  %409 = call i32 @opus_packet_parse(ptr noundef nonnull %1, i32 noundef %408, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef nonnull %5) #7
  %410 = add nsw i32 %.19606, 1
  %.not342 = icmp eq i32 %409, -4
  br i1 %.not342, label %412, label %411

411:                                              ; preds = %406
  call void @_test_failed(ptr noundef nonnull @.str.2, i32 noundef 1019) #8
  unreachable

412:                                              ; preds = %406, %._crit_edge604
  %.20 = phi i32 [ %410, %406 ], [ %.19606, %._crit_edge604 ]
  store i8 -1, ptr %2, align 1, !tbaa !9
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(16) %3, i8 0, i64 16, i1 false)
  store i32 -1, ptr %5, align 4, !tbaa !12
  %413 = load i32, ptr %391, align 4, !tbaa !12
  %414 = add nuw nsw i32 %389, %.13607
  %415 = add i32 %414, %.0.lcssa
  %416 = add i32 %415, %413
  %417 = call i32 @opus_packet_parse(ptr noundef nonnull %1, i32 noundef %416, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef nonnull %5) #7
  %418 = add nsw i32 %.20, 1
  %419 = add nsw i32 %413, %.8611
  %420 = icmp slt i32 %419, 1276
  br i1 %420, label %421, label %432

421:                                              ; preds = %412
  %.not344 = icmp eq i32 %417, 1
  br i1 %.not344, label %423, label %422

422:                                              ; preds = %421
  call void @_test_failed(ptr noundef nonnull @.str.2, i32 noundef 1026) #8
  unreachable

423:                                              ; preds = %421
  %424 = load i16, ptr %4, align 16, !tbaa !14
  %425 = sext i16 %424 to i32
  %.not345 = icmp eq i32 %419, %425
  br i1 %.not345, label %427, label %426

426:                                              ; preds = %423
  call void @_test_failed(ptr noundef nonnull @.str.2, i32 noundef 1027) #8
  unreachable

427:                                              ; preds = %423
  %428 = load i8, ptr %2, align 1, !tbaa !9
  %429 = lshr i8 %428, 2
  %430 = zext nneg i8 %429 to i32
  %.not346 = icmp eq i32 %.8611, %430
  br i1 %.not346, label %434, label %431

431:                                              ; preds = %427
  call void @_test_failed(ptr noundef nonnull @.str.2, i32 noundef 1028) #8
  unreachable

432:                                              ; preds = %412
  %.not343 = icmp eq i32 %417, -4
  br i1 %.not343, label %434, label %433

433:                                              ; preds = %432
  call void @_test_failed(ptr noundef nonnull @.str.2, i32 noundef 1029) #8
  unreachable

434:                                              ; preds = %432, %427
  %435 = add nuw nsw i32 %.13607, 11
  %436 = icmp ult i32 %.13607, 65014
  %indvar.next749 = add nuw nsw i64 %indvar748, 1
  br i1 %436, label %.preheader, label %437, !llvm.loop !43

437:                                              ; preds = %434
  %indvar.next747 = add nuw nsw i64 %indvar746, 1
  %exitcond754.not = icmp eq i64 %indvar.next747, 4
  br i1 %exitcond754.not, label %438, label %.preheader403, !llvm.loop !44

438:                                              ; preds = %437
  %439 = add nuw nsw i32 %.8611, 1
  %exitcond755.not = icmp eq i32 %439, 64
  br i1 %exitcond755.not, label %440, label %381, !llvm.loop !45

440:                                              ; preds = %438
  %441 = add nsw i32 %.us-phi, 696771
  %442 = load ptr, ptr @stdout, align 8, !tbaa !5
  %443 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %442, ptr noundef nonnull @.str.45, i32 noundef %418) #7
  %444 = add nsw i32 %441, %418
  %445 = load ptr, ptr @stdout, align 8, !tbaa !5
  %446 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %445, ptr noundef nonnull @.str.46) #7
  %447 = load ptr, ptr @stdout, align 8, !tbaa !5
  %448 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %447, ptr noundef nonnull @.str.47) #7
  %449 = load ptr, ptr @stdout, align 8, !tbaa !5
  %450 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %449, ptr noundef nonnull @.str.48, i32 noundef %444) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %5) #7
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %4) #7
  call void @llvm.lifetime.end.p0(i64 384, ptr nonnull %3) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %2) #7
  call void @llvm.lifetime.end.p0(i64 1276, ptr nonnull %1) #7
  ret i32 %444
}

; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #5

declare i32 @opus_packet_parse(ptr noundef, i32 noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #3

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i64 @llvm.umax.i64(i64, i64) #6

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

!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 = !{!7, !7, i64 0}
!10 = distinct !{!10, !11}
!11 = !{!"llvm.loop.mustprogress"}
!12 = !{!13, !13, i64 0}
!13 = !{!"int", !7, i64 0}
!14 = !{!15, !15, i64 0}
!15 = !{!"short", !7, i64 0}
!16 = distinct !{!16, !11}
!17 = distinct !{!17, !11}
!18 = distinct !{!18, !11}
!19 = distinct !{!19, !11}
!20 = distinct !{!20, !11}
!21 = distinct !{!21, !11}
!22 = distinct !{!22, !11}
!23 = distinct !{!23, !11}
!24 = distinct !{!24, !11}
!25 = distinct !{!25, !11}
!26 = distinct !{!26, !11}
!27 = distinct !{!27, !11}
!28 = distinct !{!28, !11}
!29 = distinct !{!29, !11}
!30 = distinct !{!30, !11}
!31 = distinct !{!31, !11}
!32 = distinct !{!32, !11}
!33 = distinct !{!33, !11, !34, !35}
!34 = !{!"llvm.loop.isvectorized", i32 1}
!35 = !{!"llvm.loop.unroll.runtime.disable"}
!36 = distinct !{!36, !11, !35, !34}
!37 = distinct !{!37, !11}
!38 = distinct !{!38, !11}
!39 = distinct !{!39, !11}
!40 = distinct !{!40, !11}
!41 = distinct !{!41, !42}
!42 = !{!"llvm.loop.unroll.disable"}
!43 = distinct !{!43, !11}
!44 = distinct !{!44, !11}
!45 = distinct !{!45, !11}


; Effective O3 passes: BDCEPass,CorrelatedValuePropagationPass,DivRemPairsPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferAlignmentPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopIdiomRecognizePass,LoopInstSimplifyPass,LoopLoadEliminationPass,LoopRotatePass,LoopSimplifyCFGPass,LoopSimplifyPass,LoopUnrollPass,LoopVectorizePass,MemCpyOptPass,MergedLoadStoreMotionPass,ReassociatePass,SCCPPass,SROAPass,SimplifyCFGPass,TailCallElimPass,VectorCombinePass