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

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

@.str = external hidden unnamed_addr constant [93 x i8], align 1
@run_test1.fsizes = external hidden constant [6 x i32], align 16
@run_test1.mstrings = external hidden global [3 x ptr], align 16
@stdout = external global ptr, align 8
@.str.7 = external hidden unnamed_addr constant [24 x i8], align 1
@__const.run_test1.modes = external hidden unnamed_addr constant [13 x i32], align 16
@__const.run_test1.rates = external hidden unnamed_addr constant [13 x i32], align 16
@__const.run_test1.frame = external hidden unnamed_addr constant [13 x i32], align 16
@.str.8 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [5 x i8], align 1
@__const.run_test1.modes.12 = external hidden unnamed_addr constant [16 x i32], align 16
@__const.run_test1.rates.13 = external hidden unnamed_addr constant [16 x i32], align 16
@__const.run_test1.frame.14 = external hidden unnamed_addr constant [16 x i32], align 16
@.str.15 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [57 x i8], align 1

; Function Attrs: nounwind uwtable
declare dso_local void @generate_music(ptr noundef, i32 noundef) #0

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

; Function Attrs: inlinehint nounwind uwtable
declare hidden i32 @fast_rand() #2

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

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

; Function Attrs: nounwind allocsize(0)
declare noalias ptr @malloc(i64 noundef) #4

declare i32 @opus_encode(ptr noundef, ptr noundef, i32 noundef, ptr noundef, i32 noundef) #5

; Function Attrs: nounwind
declare i32 @fprintf(ptr noundef, ptr noundef, ...) #6

declare i32 @opus_decode(ptr noundef, ptr noundef, i32 noundef, ptr noundef, i32 noundef, i32 noundef) #5

; Function Attrs: nounwind
declare void @free(ptr noundef) #6

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

declare ptr @opus_decoder_create(i32 noundef, i32 noundef, ptr noundef) #5

declare ptr @opus_encoder_create(i32 noundef, i32 noundef, i32 noundef, ptr noundef) #5

declare i32 @opus_encoder_ctl(ptr noundef, i32 noundef, ...) #5

declare void @opus_encoder_destroy(ptr noundef) #5

declare void @opus_decoder_destroy(ptr noundef) #5

; Function Attrs: nounwind uwtable
define dso_local i32 @run_test1(i32 noundef %0) #0 {
  %2 = alloca i32, align 4
  %3 = alloca [256 x i8], align 16
  %4 = alloca [36 x i8], align 16
  %5 = alloca i32, align 4
  %6 = alloca i32, align 4
  %7 = alloca i32, align 4
  %8 = alloca i32, align 4
  %9 = alloca ptr, align 8
  %10 = alloca ptr, align 8
  %11 = alloca ptr, align 8
  %12 = alloca ptr, align 8
  %13 = alloca ptr, align 8
  %14 = alloca [10 x ptr], align 16
  %15 = alloca ptr, align 8
  %16 = alloca ptr, align 8
  %17 = alloca ptr, align 8
  %18 = alloca i32, align 4
  %19 = alloca [1757 x i8], align 16
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca ptr, align 8
  %26 = alloca ptr, align 8
  %27 = alloca ptr, align 8
  %28 = alloca i32, align 4
  %29 = alloca [13 x i32], align 16
  %30 = alloca [13 x i32], align 16
  %31 = alloca [13 x i32], align 16
  %32 = alloca i32, align 4
  %33 = alloca i32, align 4
  %34 = alloca i32, align 4
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca i32, align 4
  %38 = alloca [16 x i32], align 16
  %39 = alloca [16 x i32], align 16
  %40 = alloca [16 x i32], align 16
  %41 = alloca i32, align 4
  %42 = alloca i32, align 4
  %43 = alloca i32, align 4
  %44 = alloca i32, align 4
  %45 = alloca i32, align 4
  %46 = alloca i8, align 1
  %47 = alloca [48 x ptr], align 16
  %48 = alloca [48 x i16], align 16
  %49 = alloca i32, align 4
  %50 = alloca i32, align 4
  %51 = alloca i32, align 4
  %52 = alloca i32, align 4
  %53 = alloca i32, align 4
  %54 = alloca i32, align 4
  %55 = alloca i32, align 4
  %56 = alloca i32, align 4
  %57 = alloca i32, align 4
  store i32 %0, ptr %2, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 256, ptr %3) #9
  call void @llvm.memset.p0.i64(ptr align 16 %3, i8 0, i64 256, i1 false)
  %58 = getelementptr inbounds <{ i8, i8, i8, [253 x i8] }>, ptr %3, i32 0, i32 1
  store i8 1, ptr %58, align 1
  %59 = getelementptr inbounds <{ i8, i8, i8, [253 x i8] }>, ptr %3, i32 0, i32 2
  store i8 -1, ptr %59, align 2
  call void @llvm.lifetime.start.p0(i64 36, ptr %4) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %5) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %9) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %10) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #9
  call void @llvm.lifetime.start.p0(i64 80, ptr %14) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #9
  call void @llvm.lifetime.start.p0(i64 1757, ptr %19) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #9
  %60 = load ptr, ptr @stdout, align 8, !tbaa !9
  %61 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %60, ptr noundef @.str.7) #9
  %62 = call ptr @opus_encoder_create(i32 noundef 48000, i32 noundef 2, i32 noundef 2048, ptr noundef %8)
  store ptr %62, ptr %9, align 8, !tbaa !9
  %63 = load i32, ptr %8, align 4, !tbaa !5
  %64 = icmp ne i32 %63, 0
  br i1 %64, label %68, label %65

65:                                               ; preds = %1
  %66 = load ptr, ptr %9, align 8, !tbaa !9
  %67 = icmp eq ptr %66, null
  br i1 %67, label %68, label %69

68:                                               ; preds = %65, %1
  call void @_test_failed(ptr noundef @.str, i32 noundef 302) #10
  unreachable

69:                                               ; preds = %65
  store i32 0, ptr %5, align 4, !tbaa !5
  br label %70

70:                                               ; preds = %164, %69
  %71 = load i32, ptr %5, align 4, !tbaa !5
  %72 = icmp slt i32 %71, 2
  br i1 %72, label %73, label %167

73:                                               ; preds = %70
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #9
  %74 = load i32, ptr %5, align 4, !tbaa !5
  %75 = icmp ne i32 %74, 0
  br i1 %75, label %76, label %77

76:                                               ; preds = %73
  br label %78

77:                                               ; preds = %73
  br label %78

78:                                               ; preds = %77, %76
  %79 = phi ptr [ null, %76 ], [ %8, %77 ]
  store ptr %79, ptr %25, align 8, !tbaa !9
  %80 = getelementptr inbounds [256 x i8], ptr %3, i64 0, i64 0
  %81 = load ptr, ptr %25, align 8, !tbaa !9
  %82 = call ptr @opus_multistream_encoder_create(i32 noundef 8000, i32 noundef 2, i32 noundef 2, i32 noundef 0, ptr noundef %80, i32 noundef -5, ptr noundef %81)
  store ptr %82, ptr %10, align 8, !tbaa !9
  %83 = load ptr, ptr %25, align 8, !tbaa !9
  %84 = icmp ne ptr %83, null
  br i1 %84, label %85, label %89

85:                                               ; preds = %78
  %86 = load ptr, ptr %25, align 8, !tbaa !9
  %87 = load i32, ptr %86, align 4, !tbaa !5
  %88 = icmp ne i32 %87, -1
  br i1 %88, label %92, label %89

89:                                               ; preds = %85, %78
  %90 = load ptr, ptr %10, align 8, !tbaa !9
  %91 = icmp ne ptr %90, null
  br i1 %91, label %92, label %93

92:                                               ; preds = %89, %85
  call void @_test_failed(ptr noundef @.str, i32 noundef 309) #10
  unreachable

93:                                               ; preds = %89
  %94 = getelementptr inbounds [256 x i8], ptr %3, i64 0, i64 0
  %95 = load ptr, ptr %25, align 8, !tbaa !9
  %96 = call ptr @opus_multistream_encoder_create(i32 noundef 8000, i32 noundef 0, i32 noundef 1, i32 noundef 0, ptr noundef %94, i32 noundef 2048, ptr noundef %95)
  store ptr %96, ptr %10, align 8, !tbaa !9
  %97 = load ptr, ptr %25, align 8, !tbaa !9
  %98 = icmp ne ptr %97, null
  br i1 %98, label %99, label %103

99:                                               ; preds = %93
  %100 = load ptr, ptr %25, align 8, !tbaa !9
  %101 = load i32, ptr %100, align 4, !tbaa !5
  %102 = icmp ne i32 %101, -1
  br i1 %102, label %106, label %103

103:                                              ; preds = %99, %93
  %104 = load ptr, ptr %10, align 8, !tbaa !9
  %105 = icmp ne ptr %104, null
  br i1 %105, label %106, label %107

106:                                              ; preds = %103, %99
  call void @_test_failed(ptr noundef @.str, i32 noundef 312) #10
  unreachable

107:                                              ; preds = %103
  %108 = getelementptr inbounds [256 x i8], ptr %3, i64 0, i64 0
  %109 = load ptr, ptr %25, align 8, !tbaa !9
  %110 = call ptr @opus_multistream_encoder_create(i32 noundef 44100, i32 noundef 2, i32 noundef 2, i32 noundef 0, ptr noundef %108, i32 noundef 2048, ptr noundef %109)
  store ptr %110, ptr %10, align 8, !tbaa !9
  %111 = load ptr, ptr %25, align 8, !tbaa !9
  %112 = icmp ne ptr %111, null
  br i1 %112, label %113, label %117

113:                                              ; preds = %107
  %114 = load ptr, ptr %25, align 8, !tbaa !9
  %115 = load i32, ptr %114, align 4, !tbaa !5
  %116 = icmp ne i32 %115, -1
  br i1 %116, label %120, label %117

117:                                              ; preds = %113, %107
  %118 = load ptr, ptr %10, align 8, !tbaa !9
  %119 = icmp ne ptr %118, null
  br i1 %119, label %120, label %121

120:                                              ; preds = %117, %113
  call void @_test_failed(ptr noundef @.str, i32 noundef 315) #10
  unreachable

121:                                              ; preds = %117
  %122 = getelementptr inbounds [256 x i8], ptr %3, i64 0, i64 0
  %123 = load ptr, ptr %25, align 8, !tbaa !9
  %124 = call ptr @opus_multistream_encoder_create(i32 noundef 8000, i32 noundef 2, i32 noundef 2, i32 noundef 3, ptr noundef %122, i32 noundef 2048, ptr noundef %123)
  store ptr %124, ptr %10, align 8, !tbaa !9
  %125 = load ptr, ptr %25, align 8, !tbaa !9
  %126 = icmp ne ptr %125, null
  br i1 %126, label %127, label %131

127:                                              ; preds = %121
  %128 = load ptr, ptr %25, align 8, !tbaa !9
  %129 = load i32, ptr %128, align 4, !tbaa !5
  %130 = icmp ne i32 %129, -1
  br i1 %130, label %134, label %131

131:                                              ; preds = %127, %121
  %132 = load ptr, ptr %10, align 8, !tbaa !9
  %133 = icmp ne ptr %132, null
  br i1 %133, label %134, label %135

134:                                              ; preds = %131, %127
  call void @_test_failed(ptr noundef @.str, i32 noundef 318) #10
  unreachable

135:                                              ; preds = %131
  %136 = getelementptr inbounds [256 x i8], ptr %3, i64 0, i64 0
  %137 = load ptr, ptr %25, align 8, !tbaa !9
  %138 = call ptr @opus_multistream_encoder_create(i32 noundef 8000, i32 noundef 2, i32 noundef -1, i32 noundef 0, ptr noundef %136, i32 noundef 2048, ptr noundef %137)
  store ptr %138, ptr %10, align 8, !tbaa !9
  %139 = load ptr, ptr %25, align 8, !tbaa !9
  %140 = icmp ne ptr %139, null
  br i1 %140, label %141, label %145

141:                                              ; preds = %135
  %142 = load ptr, ptr %25, align 8, !tbaa !9
  %143 = load i32, ptr %142, align 4, !tbaa !5
  %144 = icmp ne i32 %143, -1
  br i1 %144, label %148, label %145

145:                                              ; preds = %141, %135
  %146 = load ptr, ptr %10, align 8, !tbaa !9
  %147 = icmp ne ptr %146, null
  br i1 %147, label %148, label %149

148:                                              ; preds = %145, %141
  call void @_test_failed(ptr noundef @.str, i32 noundef 321) #10
  unreachable

149:                                              ; preds = %145
  %150 = getelementptr inbounds [256 x i8], ptr %3, i64 0, i64 0
  %151 = load ptr, ptr %25, align 8, !tbaa !9
  %152 = call ptr @opus_multistream_encoder_create(i32 noundef 8000, i32 noundef 256, i32 noundef 2, i32 noundef 0, ptr noundef %150, i32 noundef 2048, ptr noundef %151)
  store ptr %152, ptr %10, align 8, !tbaa !9
  %153 = load ptr, ptr %25, align 8, !tbaa !9
  %154 = icmp ne ptr %153, null
  br i1 %154, label %155, label %159

155:                                              ; preds = %149
  %156 = load ptr, ptr %25, align 8, !tbaa !9
  %157 = load i32, ptr %156, align 4, !tbaa !5
  %158 = icmp ne i32 %157, -1
  br i1 %158, label %162, label %159

159:                                              ; preds = %155, %149
  %160 = load ptr, ptr %10, align 8, !tbaa !9
  %161 = icmp ne ptr %160, null
  br i1 %161, label %162, label %163

162:                                              ; preds = %159, %155
  call void @_test_failed(ptr noundef @.str, i32 noundef 324) #10
  unreachable

163:                                              ; preds = %159
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #9
  br label %164

164:                                              ; preds = %163
  %165 = load i32, ptr %5, align 4, !tbaa !5
  %166 = add nsw i32 %165, 1
  store i32 %166, ptr %5, align 4, !tbaa !5
  br label %70, !llvm.loop !11

167:                                              ; preds = %70
  %168 = getelementptr inbounds [256 x i8], ptr %3, i64 0, i64 0
  %169 = call ptr @opus_multistream_encoder_create(i32 noundef 8000, i32 noundef 2, i32 noundef 2, i32 noundef 0, ptr noundef %168, i32 noundef 2049, ptr noundef %8)
  store ptr %169, ptr %10, align 8, !tbaa !9
  %170 = load i32, ptr %8, align 4, !tbaa !5
  %171 = icmp ne i32 %170, 0
  br i1 %171, label %175, label %172

172:                                              ; preds = %167
  %173 = load ptr, ptr %10, align 8, !tbaa !9
  %174 = icmp eq ptr %173, null
  br i1 %174, label %175, label %176

175:                                              ; preds = %172, %167
  call void @_test_failed(ptr noundef @.str, i32 noundef 328) #10
  unreachable

176:                                              ; preds = %172
  %177 = load ptr, ptr %10, align 8, !tbaa !9
  %178 = ptrtoint ptr %5 to i64
  %179 = ptrtoint ptr %5 to i64
  %180 = sub i64 %178, %179
  %181 = sdiv exact i64 %180, 4
  %182 = getelementptr inbounds i32, ptr %5, i64 %181
  %183 = call i32 (ptr, i32, ...) @opus_multistream_encoder_ctl(ptr noundef %177, i32 noundef 4003, ptr noundef %182)
  %184 = icmp ne i32 %183, 0
  br i1 %184, label %185, label %186

185:                                              ; preds = %176
  call void @_test_failed(ptr noundef @.str, i32 noundef 331) #10
  unreachable

186:                                              ; preds = %176
  %187 = load ptr, ptr %10, align 8, !tbaa !9
  %188 = ptrtoint ptr %5 to i64
  %189 = ptrtoint ptr %5 to i64
  %190 = sub i64 %188, %189
  %191 = sdiv exact i64 %190, 4
  %192 = getelementptr inbounds i32, ptr %5, i64 %191
  %193 = call i32 (ptr, i32, ...) @opus_multistream_encoder_ctl(ptr noundef %187, i32 noundef 4037, ptr noundef %192)
  %194 = icmp ne i32 %193, 0
  br i1 %194, label %195, label %196

195:                                              ; preds = %186
  call void @_test_failed(ptr noundef @.str, i32 noundef 332) #10
  unreachable

196:                                              ; preds = %186
  %197 = load i32, ptr %5, align 4, !tbaa !5
  %198 = icmp slt i32 %197, 16
  br i1 %198, label %199, label %200

199:                                              ; preds = %196
  call void @_test_failed(ptr noundef @.str, i32 noundef 333) #10
  unreachable

200:                                              ; preds = %196
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #9
  %201 = load ptr, ptr %10, align 8, !tbaa !9
  %202 = ptrtoint ptr %26 to i64
  %203 = ptrtoint ptr %26 to i64
  %204 = sub i64 %202, %203
  %205 = sdiv exact i64 %204, 8
  %206 = getelementptr inbounds ptr, ptr %26, i64 %205
  %207 = call i32 (ptr, i32, ...) @opus_multistream_encoder_ctl(ptr noundef %201, i32 noundef 5120, i32 noundef 1, ptr noundef %206)
  %208 = icmp ne i32 %207, 0
  br i1 %208, label %209, label %210

209:                                              ; preds = %200
  call void @_test_failed(ptr noundef @.str, i32 noundef 337) #10
  unreachable

210:                                              ; preds = %200
  %211 = load ptr, ptr %26, align 8, !tbaa !9
  %212 = ptrtoint ptr %6 to i64
  %213 = ptrtoint ptr %6 to i64
  %214 = sub i64 %212, %213
  %215 = sdiv exact i64 %214, 4
  %216 = getelementptr inbounds i32, ptr %6, i64 %215
  %217 = call i32 (ptr, i32, ...) @opus_encoder_ctl(ptr noundef %211, i32 noundef 4037, ptr noundef %216)
  %218 = icmp ne i32 %217, 0
  br i1 %218, label %219, label %220

219:                                              ; preds = %210
  call void @_test_failed(ptr noundef @.str, i32 noundef 338) #10
  unreachable

220:                                              ; preds = %210
  %221 = load i32, ptr %5, align 4, !tbaa !5
  %222 = load i32, ptr %6, align 4, !tbaa !5
  %223 = icmp ne i32 %221, %222
  br i1 %223, label %224, label %225

224:                                              ; preds = %220
  call void @_test_failed(ptr noundef @.str, i32 noundef 339) #10
  unreachable

225:                                              ; preds = %220
  %226 = load ptr, ptr %10, align 8, !tbaa !9
  %227 = ptrtoint ptr %26 to i64
  %228 = ptrtoint ptr %26 to i64
  %229 = sub i64 %227, %228
  %230 = sdiv exact i64 %229, 8
  %231 = getelementptr inbounds ptr, ptr %26, i64 %230
  %232 = call i32 (ptr, i32, ...) @opus_multistream_encoder_ctl(ptr noundef %226, i32 noundef 5120, i32 noundef 2, ptr noundef %231)
  %233 = icmp ne i32 %232, -1
  br i1 %233, label %234, label %235

234:                                              ; preds = %225
  call void @_test_failed(ptr noundef @.str, i32 noundef 340) #10
  unreachable

235:                                              ; preds = %225
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #9
  %236 = call ptr @opus_decoder_create(i32 noundef 48000, i32 noundef 2, ptr noundef %8)
  store ptr %236, ptr %11, align 8, !tbaa !9
  %237 = load i32, ptr %8, align 4, !tbaa !5
  %238 = icmp ne i32 %237, 0
  br i1 %238, label %242, label %239

239:                                              ; preds = %235
  %240 = load ptr, ptr %11, align 8, !tbaa !9
  %241 = icmp eq ptr %240, null
  br i1 %241, label %242, label %243

242:                                              ; preds = %239, %235
  call void @_test_failed(ptr noundef @.str, i32 noundef 344) #10
  unreachable

243:                                              ; preds = %239
  %244 = getelementptr inbounds [256 x i8], ptr %3, i64 0, i64 0
  %245 = call ptr @opus_multistream_decoder_create(i32 noundef 48000, i32 noundef 2, i32 noundef 2, i32 noundef 0, ptr noundef %244, ptr noundef %8)
  store ptr %245, ptr %12, align 8, !tbaa !9
  %246 = load i32, ptr %8, align 4, !tbaa !5
  %247 = icmp ne i32 %246, 0
  br i1 %247, label %251, label %248

248:                                              ; preds = %243
  %249 = load ptr, ptr %12, align 8, !tbaa !9
  %250 = icmp eq ptr %249, null
  br i1 %250, label %251, label %252

251:                                              ; preds = %248, %243
  call void @_test_failed(ptr noundef @.str, i32 noundef 347) #10
  unreachable

252:                                              ; preds = %248
  %253 = getelementptr inbounds [256 x i8], ptr %3, i64 0, i64 0
  %254 = call ptr @opus_multistream_decoder_create(i32 noundef 48000, i32 noundef 3, i32 noundef 2, i32 noundef 0, ptr noundef %253, ptr noundef %8)
  store ptr %254, ptr %13, align 8, !tbaa !9
  %255 = load i32, ptr %8, align 4, !tbaa !5
  %256 = icmp ne i32 %255, 0
  br i1 %256, label %260, label %257

257:                                              ; preds = %252
  %258 = load ptr, ptr %13, align 8, !tbaa !9
  %259 = icmp eq ptr %258, null
  br i1 %259, label %260, label %261

260:                                              ; preds = %257, %252
  call void @_test_failed(ptr noundef @.str, i32 noundef 350) #10
  unreachable

261:                                              ; preds = %257
  %262 = call i32 @opus_decoder_get_size(i32 noundef 2)
  %263 = sext i32 %262 to i64
  %264 = call noalias ptr @malloc(i64 noundef %263) #11
  %265 = getelementptr inbounds [10 x ptr], ptr %14, i64 0, i64 0
  store ptr %264, ptr %265, align 16, !tbaa !9
  %266 = getelementptr inbounds [10 x ptr], ptr %14, i64 0, i64 0
  %267 = load ptr, ptr %266, align 16, !tbaa !9
  %268 = load ptr, ptr %11, align 8, !tbaa !9
  %269 = call i32 @opus_decoder_get_size(i32 noundef 2)
  %270 = sext i32 %269 to i64
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %267, ptr align 1 %268, i64 %270, i1 false)
  %271 = call ptr @opus_decoder_create(i32 noundef 48000, i32 noundef 1, ptr noundef %8)
  %272 = getelementptr inbounds [10 x ptr], ptr %14, i64 0, i64 1
  store ptr %271, ptr %272, align 8, !tbaa !9
  %273 = call ptr @opus_decoder_create(i32 noundef 24000, i32 noundef 2, ptr noundef %8)
  %274 = getelementptr inbounds [10 x ptr], ptr %14, i64 0, i64 2
  store ptr %273, ptr %274, align 16, !tbaa !9
  %275 = call ptr @opus_decoder_create(i32 noundef 24000, i32 noundef 1, ptr noundef %8)
  %276 = getelementptr inbounds [10 x ptr], ptr %14, i64 0, i64 3
  store ptr %275, ptr %276, align 8, !tbaa !9
  %277 = call ptr @opus_decoder_create(i32 noundef 16000, i32 noundef 2, ptr noundef %8)
  %278 = getelementptr inbounds [10 x ptr], ptr %14, i64 0, i64 4
  store ptr %277, ptr %278, align 16, !tbaa !9
  %279 = call ptr @opus_decoder_create(i32 noundef 16000, i32 noundef 1, ptr noundef %8)
  %280 = getelementptr inbounds [10 x ptr], ptr %14, i64 0, i64 5
  store ptr %279, ptr %280, align 8, !tbaa !9
  %281 = call ptr @opus_decoder_create(i32 noundef 12000, i32 noundef 2, ptr noundef %8)
  %282 = getelementptr inbounds [10 x ptr], ptr %14, i64 0, i64 6
  store ptr %281, ptr %282, align 16, !tbaa !9
  %283 = call ptr @opus_decoder_create(i32 noundef 12000, i32 noundef 1, ptr noundef %8)
  %284 = getelementptr inbounds [10 x ptr], ptr %14, i64 0, i64 7
  store ptr %283, ptr %284, align 8, !tbaa !9
  %285 = call ptr @opus_decoder_create(i32 noundef 8000, i32 noundef 2, ptr noundef %8)
  %286 = getelementptr inbounds [10 x ptr], ptr %14, i64 0, i64 8
  store ptr %285, ptr %286, align 16, !tbaa !9
  %287 = call ptr @opus_decoder_create(i32 noundef 8000, i32 noundef 1, ptr noundef %8)
  %288 = getelementptr inbounds [10 x ptr], ptr %14, i64 0, i64 9
  store ptr %287, ptr %288, align 8, !tbaa !9
  store i32 0, ptr %5, align 4, !tbaa !5
  br label %289

289:                                              ; preds = %300, %261
  %290 = load i32, ptr %5, align 4, !tbaa !5
  %291 = icmp slt i32 %290, 10
  br i1 %291, label %292, label %303

292:                                              ; preds = %289
  %293 = load i32, ptr %5, align 4, !tbaa !5
  %294 = sext i32 %293 to i64
  %295 = getelementptr inbounds [10 x ptr], ptr %14, i64 0, i64 %294
  %296 = load ptr, ptr %295, align 8, !tbaa !9
  %297 = icmp eq ptr %296, null
  br i1 %297, label %298, label %299

298:                                              ; preds = %292
  call void @_test_failed(ptr noundef @.str, i32 noundef 363) #10
  unreachable

299:                                              ; preds = %292
  br label %300

300:                                              ; preds = %299
  %301 = load i32, ptr %5, align 4, !tbaa !5
  %302 = add nsw i32 %301, 1
  store i32 %302, ptr %5, align 4, !tbaa !5
  br label %289, !llvm.loop !13

303:                                              ; preds = %289
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #9
  %304 = call i32 @opus_encoder_get_size(i32 noundef 2)
  %305 = sext i32 %304 to i64
  %306 = call noalias ptr @malloc(i64 noundef %305) #11
  store ptr %306, ptr %27, align 8, !tbaa !9
  %307 = load ptr, ptr %27, align 8, !tbaa !9
  %308 = load ptr, ptr %9, align 8, !tbaa !9
  %309 = call i32 @opus_encoder_get_size(i32 noundef 2)
  %310 = sext i32 %309 to i64
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %307, ptr align 1 %308, i64 %310, i1 false)
  %311 = load ptr, ptr %9, align 8, !tbaa !9
  %312 = call i32 @opus_encoder_get_size(i32 noundef 2)
  %313 = sext i32 %312 to i64
  call void @llvm.memset.p0.i64(ptr align 1 %311, i8 -1, i64 %313, i1 false)
  %314 = load ptr, ptr %9, align 8, !tbaa !9
  call void @opus_encoder_destroy(ptr noundef %314)
  %315 = load ptr, ptr %27, align 8, !tbaa !9
  store ptr %315, ptr %9, align 8, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #9
  %316 = call noalias ptr @malloc(i64 noundef 5760000) #11
  store ptr %316, ptr %15, align 8, !tbaa !9
  %317 = call noalias ptr @malloc(i64 noundef 5760000) #11
  store ptr %317, ptr %16, align 8, !tbaa !9
  %318 = call noalias ptr @malloc(i64 noundef 34560) #11
  store ptr %318, ptr %17, align 8, !tbaa !9
  %319 = load ptr, ptr %15, align 8, !tbaa !9
  %320 = icmp eq ptr %319, null
  br i1 %320, label %327, label %321

321:                                              ; preds = %303
  %322 = load ptr, ptr %16, align 8, !tbaa !9
  %323 = icmp eq ptr %322, null
  br i1 %323, label %327, label %324

324:                                              ; preds = %321
  %325 = load ptr, ptr %17, align 8, !tbaa !9
  %326 = icmp eq ptr %325, null
  br i1 %326, label %327, label %328

327:                                              ; preds = %324, %321, %303
  call void @_test_failed(ptr noundef @.str, i32 noundef 378) #10
  unreachable

328:                                              ; preds = %324
  %329 = load ptr, ptr %15, align 8, !tbaa !9
  call void @generate_music(ptr noundef %329, i32 noundef 1440000)
  %330 = load ptr, ptr %9, align 8, !tbaa !9
  %331 = call i32 (ptr, i32, ...) @opus_encoder_ctl(ptr noundef %330, i32 noundef 4008, i32 noundef -1000)
  %332 = icmp ne i32 %331, 0
  br i1 %332, label %333, label %334

333:                                              ; preds = %328
  call void @_test_failed(ptr noundef @.str, i32 noundef 387) #10
  unreachable

334:                                              ; preds = %328
  %335 = load ptr, ptr %9, align 8, !tbaa !9
  %336 = call i32 (ptr, i32, ...) @opus_encoder_ctl(ptr noundef %335, i32 noundef 11002, i32 noundef -2)
  %337 = icmp ne i32 %336, -1
  br i1 %337, label %338, label %339

338:                                              ; preds = %334
  call void @_test_failed(ptr noundef @.str, i32 noundef 388) #10
  unreachable

339:                                              ; preds = %334
  %340 = load ptr, ptr %9, align 8, !tbaa !9
  %341 = load ptr, ptr %15, align 8, !tbaa !9
  %342 = getelementptr inbounds [1757 x i8], ptr %19, i64 0, i64 0
  %343 = call i32 @opus_encode(ptr noundef %340, ptr noundef %341, i32 noundef 500, ptr noundef %342, i32 noundef 1500)
  %344 = icmp ne i32 %343, -1
  br i1 %344, label %345, label %346

345:                                              ; preds = %339
  call void @_test_failed(ptr noundef @.str, i32 noundef 389) #10
  unreachable

346:                                              ; preds = %339
  store i32 0, ptr %7, align 4, !tbaa !5
  br label %347

347:                                              ; preds = %805, %346
  %348 = load i32, ptr %7, align 4, !tbaa !5
  %349 = icmp slt i32 %348, 3
  br i1 %349, label %350, label %808

350:                                              ; preds = %347
  %351 = load ptr, ptr %9, align 8, !tbaa !9
  %352 = load i32, ptr %7, align 4, !tbaa !5
  %353 = icmp slt i32 %352, 2
  %354 = zext i1 %353 to i32
  %355 = icmp eq i32 %354, 0
  %356 = zext i1 %355 to i32
  %357 = load i32, ptr %7, align 4, !tbaa !5
  %358 = icmp slt i32 %357, 2
  %359 = zext i1 %358 to i32
  %360 = call i32 (ptr, i32, ...) @opus_encoder_ctl(ptr noundef %351, i32 noundef 4006, i32 noundef %359)
  %361 = icmp ne i32 %360, 0
  br i1 %361, label %362, label %363

362:                                              ; preds = %350
  call void @_test_failed(ptr noundef @.str, i32 noundef 393) #10
  unreachable

363:                                              ; preds = %350
  %364 = load ptr, ptr %9, align 8, !tbaa !9
  %365 = load i32, ptr %7, align 4, !tbaa !5
  %366 = icmp eq i32 %365, 1
  %367 = zext i1 %366 to i32
  %368 = icmp eq i32 %367, 0
  %369 = zext i1 %368 to i32
  %370 = load i32, ptr %7, align 4, !tbaa !5
  %371 = icmp eq i32 %370, 1
  %372 = zext i1 %371 to i32
  %373 = call i32 (ptr, i32, ...) @opus_encoder_ctl(ptr noundef %364, i32 noundef 4020, i32 noundef %372)
  %374 = icmp ne i32 %373, 0
  br i1 %374, label %375, label %376

375:                                              ; preds = %363
  call void @_test_failed(ptr noundef @.str, i32 noundef 394) #10
  unreachable

376:                                              ; preds = %363
  %377 = load ptr, ptr %9, align 8, !tbaa !9
  %378 = load i32, ptr %7, align 4, !tbaa !5
  %379 = icmp eq i32 %378, 1
  %380 = zext i1 %379 to i32
  %381 = icmp eq i32 %380, 0
  %382 = zext i1 %381 to i32
  %383 = load i32, ptr %7, align 4, !tbaa !5
  %384 = icmp eq i32 %383, 1
  %385 = zext i1 %384 to i32
  %386 = call i32 (ptr, i32, ...) @opus_encoder_ctl(ptr noundef %377, i32 noundef 4020, i32 noundef %385)
  %387 = icmp ne i32 %386, 0
  br i1 %387, label %388, label %389

388:                                              ; preds = %376
  call void @_test_failed(ptr noundef @.str, i32 noundef 395) #10
  unreachable

389:                                              ; preds = %376
  %390 = load ptr, ptr %9, align 8, !tbaa !9
  %391 = load i32, ptr %7, align 4, !tbaa !5
  %392 = icmp eq i32 %391, 0
  %393 = zext i1 %392 to i32
  %394 = icmp eq i32 %393, 0
  %395 = zext i1 %394 to i32
  %396 = load i32, ptr %7, align 4, !tbaa !5
  %397 = icmp eq i32 %396, 0
  %398 = zext i1 %397 to i32
  %399 = call i32 (ptr, i32, ...) @opus_encoder_ctl(ptr noundef %390, i32 noundef 4012, i32 noundef %398)
  %400 = icmp ne i32 %399, 0
  br i1 %400, label %401, label %402

401:                                              ; preds = %389
  call void @_test_failed(ptr noundef @.str, i32 noundef 396) #10
  unreachable

402:                                              ; preds = %389
  store i32 0, ptr %6, align 4, !tbaa !5
  br label %403

403:                                              ; preds = %801, %402
  %404 = load i32, ptr %6, align 4, !tbaa !5
  %405 = icmp slt i32 %404, 13
  br i1 %405, label %406, label %804

406:                                              ; preds = %403
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #9
  call void @llvm.lifetime.start.p0(i64 52, ptr %29) #9
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %29, ptr align 16 @__const.run_test1.modes, i64 52, i1 false)
  call void @llvm.lifetime.start.p0(i64 52, ptr %30) #9
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %30, ptr align 16 @__const.run_test1.rates, i64 52, i1 false)
  call void @llvm.lifetime.start.p0(i64 52, ptr %31) #9
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %31, ptr align 16 @__const.run_test1.frame, i64 52, i1 false)
  %407 = load i32, ptr %6, align 4, !tbaa !5
  %408 = sext i32 %407 to i64
  %409 = getelementptr inbounds [13 x i32], ptr %30, i64 0, i64 %408
  %410 = load i32, ptr %409, align 4, !tbaa !5
  %411 = call i32 @fast_rand()
  %412 = load i32, ptr %6, align 4, !tbaa !5
  %413 = sext i32 %412 to i64
  %414 = getelementptr inbounds [13 x i32], ptr %30, i64 0, i64 %413
  %415 = load i32, ptr %414, align 4, !tbaa !5
  %416 = urem i32 %411, %415
  %417 = add i32 %410, %416
  store i32 %417, ptr %28, align 4, !tbaa !5
  store i32 0, ptr %5, align 4, !tbaa !5
  store i32 0, ptr %24, align 4, !tbaa !5
  br label %418

418:                                              ; preds = %777, %406
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #9
  %419 = load i32, ptr %6, align 4, !tbaa !5
  %420 = sext i32 %419 to i64
  %421 = getelementptr inbounds [13 x i32], ptr %31, i64 0, i64 %420
  %422 = load i32, ptr %421, align 4, !tbaa !5
  store i32 %422, ptr %35, align 4, !tbaa !5
  %423 = call i32 @fast_rand()
  %424 = and i32 %423, 255
  %425 = icmp eq i32 %424, 0
  br i1 %425, label %426, label %451

426:                                              ; preds = %418
  %427 = load ptr, ptr %9, align 8, !tbaa !9
  %428 = call i32 (ptr, i32, ...) @opus_encoder_ctl(ptr noundef %427, i32 noundef 4028)
  %429 = icmp ne i32 %428, 0
  br i1 %429, label %430, label %431

430:                                              ; preds = %426
  call void @_test_failed(ptr noundef @.str, i32 noundef 410) #10
  unreachable

431:                                              ; preds = %426
  %432 = load ptr, ptr %11, align 8, !tbaa !9
  %433 = call i32 (ptr, i32, ...) @opus_decoder_ctl(ptr noundef %432, i32 noundef 4028)
  %434 = icmp ne i32 %433, 0
  br i1 %434, label %435, label %436

435:                                              ; preds = %431
  call void @_test_failed(ptr noundef @.str, i32 noundef 411) #10
  unreachable

436:                                              ; preds = %431
  %437 = call i32 @fast_rand()
  %438 = and i32 %437, 1
  %439 = icmp ne i32 %438, 0
  br i1 %439, label %440, label %450

440:                                              ; preds = %436
  %441 = call i32 @fast_rand()
  %442 = and i32 %441, 1
  %443 = zext i32 %442 to i64
  %444 = getelementptr inbounds [10 x ptr], ptr %14, i64 0, i64 %443
  %445 = load ptr, ptr %444, align 8, !tbaa !9
  %446 = call i32 (ptr, i32, ...) @opus_decoder_ctl(ptr noundef %445, i32 noundef 4028)
  %447 = icmp ne i32 %446, 0
  br i1 %447, label %448, label %449

448:                                              ; preds = %440
  call void @_test_failed(ptr noundef @.str, i32 noundef 414) #10
  unreachable

449:                                              ; preds = %440
  br label %450

450:                                              ; preds = %449, %436
  br label %451

451:                                              ; preds = %450, %418
  %452 = call i32 @fast_rand()
  %453 = and i32 %452, 127
  %454 = icmp eq i32 %453, 0
  br i1 %454, label %455, label %465

455:                                              ; preds = %451
  %456 = call i32 @fast_rand()
  %457 = and i32 %456, 1
  %458 = zext i32 %457 to i64
  %459 = getelementptr inbounds [10 x ptr], ptr %14, i64 0, i64 %458
  %460 = load ptr, ptr %459, align 8, !tbaa !9
  %461 = call i32 (ptr, i32, ...) @opus_decoder_ctl(ptr noundef %460, i32 noundef 4028)
  %462 = icmp ne i32 %461, 0
  br i1 %462, label %463, label %464

463:                                              ; preds = %455
  call void @_test_failed(ptr noundef @.str, i32 noundef 419) #10
  unreachable

464:                                              ; preds = %455
  br label %465

465:                                              ; preds = %464, %451
  %466 = call i32 @fast_rand()
  %467 = urem i32 %466, 10
  %468 = icmp eq i32 %467, 0
  br i1 %468, label %469, label %481

469:                                              ; preds = %465
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #9
  %470 = call i32 @fast_rand()
  %471 = urem i32 %470, 11
  store i32 %471, ptr %36, align 4, !tbaa !5
  %472 = load ptr, ptr %9, align 8, !tbaa !9
  %473 = load i32, ptr %36, align 4, !tbaa !5
  %474 = icmp eq i32 %473, 0
  %475 = zext i1 %474 to i32
  %476 = load i32, ptr %36, align 4, !tbaa !5
  %477 = call i32 (ptr, i32, ...) @opus_encoder_ctl(ptr noundef %472, i32 noundef 4010, i32 noundef %476)
  %478 = icmp ne i32 %477, 0
  br i1 %478, label %479, label %480

479:                                              ; preds = %469
  call void @_test_failed(ptr noundef @.str, i32 noundef 423) #10
  unreachable

480:                                              ; preds = %469
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #9
  br label %481

481:                                              ; preds = %480, %465
  %482 = call i32 @fast_rand()
  %483 = urem i32 %482, 50
  %484 = icmp eq i32 %483, 0
  br i1 %484, label %485, label %488

485:                                              ; preds = %481
  %486 = load ptr, ptr %11, align 8, !tbaa !9
  %487 = call i32 (ptr, i32, ...) @opus_decoder_ctl(ptr noundef %486, i32 noundef 4028)
  br label %488

488:                                              ; preds = %485, %481
  %489 = load ptr, ptr %9, align 8, !tbaa !9
  %490 = load i32, ptr %7, align 4, !tbaa !5
  %491 = icmp eq i32 %490, 0
  %492 = zext i1 %491 to i32
  %493 = icmp eq i32 %492, 0
  %494 = zext i1 %493 to i32
  %495 = load i32, ptr %7, align 4, !tbaa !5
  %496 = icmp eq i32 %495, 0
  %497 = zext i1 %496 to i32
  %498 = call i32 (ptr, i32, ...) @opus_encoder_ctl(ptr noundef %489, i32 noundef 4012, i32 noundef %497)
  %499 = icmp ne i32 %498, 0
  br i1 %499, label %500, label %501

500:                                              ; preds = %488
  call void @_test_failed(ptr noundef @.str, i32 noundef 426) #10
  unreachable

501:                                              ; preds = %488
  %502 = load ptr, ptr %9, align 8, !tbaa !9
  %503 = load i32, ptr %6, align 4, !tbaa !5
  %504 = sext i32 %503 to i64
  %505 = getelementptr inbounds [13 x i32], ptr %29, i64 0, i64 %504
  %506 = load i32, ptr %505, align 4, !tbaa !5
  %507 = add nsw i32 1000, %506
  %508 = icmp eq i32 %507, 0
  %509 = zext i1 %508 to i32
  %510 = load i32, ptr %6, align 4, !tbaa !5
  %511 = sext i32 %510 to i64
  %512 = getelementptr inbounds [13 x i32], ptr %29, i64 0, i64 %511
  %513 = load i32, ptr %512, align 4, !tbaa !5
  %514 = add nsw i32 1000, %513
  %515 = call i32 (ptr, i32, ...) @opus_encoder_ctl(ptr noundef %502, i32 noundef 11002, i32 noundef %514)
  %516 = icmp ne i32 %515, 0
  br i1 %516, label %517, label %518

517:                                              ; preds = %501
  call void @_test_failed(ptr noundef @.str, i32 noundef 427) #10
  unreachable

518:                                              ; preds = %501
  %519 = load ptr, ptr %9, align 8, !tbaa !9
  %520 = call i32 @fast_rand()
  %521 = and i32 %520, 1
  %522 = icmp eq i32 %521, 0
  %523 = zext i1 %522 to i32
  %524 = call i32 @fast_rand()
  %525 = and i32 %524, 1
  %526 = call i32 (ptr, i32, ...) @opus_encoder_ctl(ptr noundef %519, i32 noundef 4016, i32 noundef %525)
  %527 = icmp ne i32 %526, 0
  br i1 %527, label %528, label %529

528:                                              ; preds = %518
  call void @_test_failed(ptr noundef @.str, i32 noundef 428) #10
  unreachable

529:                                              ; preds = %518
  %530 = load ptr, ptr %9, align 8, !tbaa !9
  %531 = load i32, ptr %28, align 4, !tbaa !5
  %532 = icmp eq i32 %531, 0
  %533 = zext i1 %532 to i32
  %534 = load i32, ptr %28, align 4, !tbaa !5
  %535 = call i32 (ptr, i32, ...) @opus_encoder_ctl(ptr noundef %530, i32 noundef 4002, i32 noundef %534)
  %536 = icmp ne i32 %535, 0
  br i1 %536, label %537, label %538

537:                                              ; preds = %529
  call void @_test_failed(ptr noundef @.str, i32 noundef 429) #10
  unreachable

538:                                              ; preds = %529
  %539 = load ptr, ptr %9, align 8, !tbaa !9
  %540 = load i32, ptr %6, align 4, !tbaa !5
  %541 = sext i32 %540 to i64
  %542 = getelementptr inbounds [13 x i32], ptr %30, i64 0, i64 %541
  %543 = load i32, ptr %542, align 4, !tbaa !5
  %544 = icmp sge i32 %543, 64000
  %545 = zext i1 %544 to i64
  %546 = select i1 %544, i32 2, i32 1
  %547 = icmp eq i32 %546, 0
  %548 = zext i1 %547 to i32
  %549 = load i32, ptr %6, align 4, !tbaa !5
  %550 = sext i32 %549 to i64
  %551 = getelementptr inbounds [13 x i32], ptr %30, i64 0, i64 %550
  %552 = load i32, ptr %551, align 4, !tbaa !5
  %553 = icmp sge i32 %552, 64000
  %554 = zext i1 %553 to i64
  %555 = select i1 %553, i32 2, i32 1
  %556 = call i32 (ptr, i32, ...) @opus_encoder_ctl(ptr noundef %539, i32 noundef 4022, i32 noundef %555)
  %557 = icmp ne i32 %556, 0
  br i1 %557, label %558, label %559

558:                                              ; preds = %538
  call void @_test_failed(ptr noundef @.str, i32 noundef 430) #10
  unreachable

559:                                              ; preds = %538
  %560 = load ptr, ptr %9, align 8, !tbaa !9
  %561 = load i32, ptr %24, align 4, !tbaa !5
  %562 = ashr i32 %561, 2
  %563 = srem i32 %562, 11
  %564 = icmp eq i32 %563, 0
  %565 = zext i1 %564 to i32
  %566 = load i32, ptr %24, align 4, !tbaa !5
  %567 = ashr i32 %566, 2
  %568 = srem i32 %567, 11
  %569 = call i32 (ptr, i32, ...) @opus_encoder_ctl(ptr noundef %560, i32 noundef 4010, i32 noundef %568)
  %570 = icmp ne i32 %569, 0
  br i1 %570, label %571, label %572

571:                                              ; preds = %559
  call void @_test_failed(ptr noundef @.str, i32 noundef 431) #10
  unreachable

572:                                              ; preds = %559
  %573 = load ptr, ptr %9, align 8, !tbaa !9
  %574 = call i32 @fast_rand()
  %575 = and i32 %574, 15
  %576 = call i32 @fast_rand()
  %577 = urem i32 %576, 15
  %578 = and i32 %575, %577
  %579 = icmp eq i32 %578, 0
  %580 = zext i1 %579 to i32
  %581 = call i32 @fast_rand()
  %582 = and i32 %581, 15
  %583 = call i32 @fast_rand()
  %584 = urem i32 %583, 15
  %585 = and i32 %582, %584
  %586 = call i32 (ptr, i32, ...) @opus_encoder_ctl(ptr noundef %573, i32 noundef 4014, i32 noundef %585)
  %587 = icmp ne i32 %586, 0
  br i1 %587, label %588, label %589

588:                                              ; preds = %572
  call void @_test_failed(ptr noundef @.str, i32 noundef 432) #10
  unreachable

589:                                              ; preds = %572
  %590 = load i32, ptr %6, align 4, !tbaa !5
  %591 = sext i32 %590 to i64
  %592 = getelementptr inbounds [13 x i32], ptr %29, i64 0, i64 %591
  %593 = load i32, ptr %592, align 4, !tbaa !5
  %594 = icmp eq i32 %593, 0
  br i1 %594, label %595, label %599

595:                                              ; preds = %589
  %596 = call i32 @fast_rand()
  %597 = urem i32 %596, 3
  %598 = add i32 1101, %597
  br label %615

599:                                              ; preds = %589
  %600 = load i32, ptr %6, align 4, !tbaa !5
  %601 = sext i32 %600 to i64
  %602 = getelementptr inbounds [13 x i32], ptr %29, i64 0, i64 %601
  %603 = load i32, ptr %602, align 4, !tbaa !5
  %604 = icmp eq i32 %603, 1
  br i1 %604, label %605, label %609

605:                                              ; preds = %599
  %606 = call i32 @fast_rand()
  %607 = and i32 %606, 1
  %608 = add i32 1104, %607
  br label %613

609:                                              ; preds = %599
  %610 = call i32 @fast_rand()
  %611 = urem i32 %610, 5
  %612 = add i32 1101, %611
  br label %613

613:                                              ; preds = %609, %605
  %614 = phi i32 [ %608, %605 ], [ %612, %609 ]
  br label %615

615:                                              ; preds = %613, %595
  %616 = phi i32 [ %598, %595 ], [ %614, %613 ]
  store i32 %616, ptr %32, align 4, !tbaa !5
  %617 = load i32, ptr %6, align 4, !tbaa !5
  %618 = sext i32 %617 to i64
  %619 = getelementptr inbounds [13 x i32], ptr %29, i64 0, i64 %618
  %620 = load i32, ptr %619, align 4, !tbaa !5
  %621 = icmp eq i32 %620, 2
  br i1 %621, label %622, label %628

622:                                              ; preds = %615
  %623 = load i32, ptr %32, align 4, !tbaa !5
  %624 = icmp eq i32 %623, 1102
  br i1 %624, label %625, label %628

625:                                              ; preds = %622
  %626 = load i32, ptr %32, align 4, !tbaa !5
  %627 = add nsw i32 %626, 3
  store i32 %627, ptr %32, align 4, !tbaa !5
  br label %628

628:                                              ; preds = %625, %622, %615
  %629 = load ptr, ptr %9, align 8, !tbaa !9
  %630 = load i32, ptr %32, align 4, !tbaa !5
  %631 = icmp eq i32 %630, 0
  %632 = zext i1 %631 to i32
  %633 = load i32, ptr %32, align 4, !tbaa !5
  %634 = call i32 (ptr, i32, ...) @opus_encoder_ctl(ptr noundef %629, i32 noundef 4008, i32 noundef %633)
  %635 = icmp ne i32 %634, 0
  br i1 %635, label %636, label %637

636:                                              ; preds = %628
  call void @_test_failed(ptr noundef @.str, i32 noundef 437) #10
  unreachable

637:                                              ; preds = %628
  %638 = load ptr, ptr %9, align 8, !tbaa !9
  %639 = load ptr, ptr %15, align 8, !tbaa !9
  %640 = load i32, ptr %5, align 4, !tbaa !5
  %641 = shl i32 %640, 1
  %642 = sext i32 %641 to i64
  %643 = getelementptr inbounds i16, ptr %639, i64 %642
  %644 = load i32, ptr %35, align 4, !tbaa !5
  %645 = getelementptr inbounds [1757 x i8], ptr %19, i64 0, i64 0
  %646 = call i32 @opus_encode(ptr noundef %638, ptr noundef %643, i32 noundef %644, ptr noundef %645, i32 noundef 1500)
  store i32 %646, ptr %33, align 4, !tbaa !5
  %647 = load i32, ptr %33, align 4, !tbaa !5
  %648 = icmp slt i32 %647, 0
  br i1 %648, label %652, label %649

649:                                              ; preds = %637
  %650 = load i32, ptr %33, align 4, !tbaa !5
  %651 = icmp sgt i32 %650, 1500
  br i1 %651, label %652, label %653

652:                                              ; preds = %649, %637
  call void @_test_failed(ptr noundef @.str, i32 noundef 439) #10
  unreachable

653:                                              ; preds = %649
  %654 = load ptr, ptr %9, align 8, !tbaa !9
  %655 = ptrtoint ptr %20 to i64
  %656 = ptrtoint ptr %20 to i64
  %657 = sub i64 %655, %656
  %658 = sdiv exact i64 %657, 4
  %659 = getelementptr inbounds i32, ptr %20, i64 %658
  %660 = call i32 (ptr, i32, ...) @opus_encoder_ctl(ptr noundef %654, i32 noundef 4031, ptr noundef %659)
  %661 = icmp ne i32 %660, 0
  br i1 %661, label %662, label %663

662:                                              ; preds = %653
  call void @_test_failed(ptr noundef @.str, i32 noundef 440) #10
  unreachable

663:                                              ; preds = %653
  %664 = call i32 @fast_rand()
  %665 = and i32 %664, 3
  %666 = icmp eq i32 %665, 0
  br i1 %666, label %667, label %678

667:                                              ; preds = %663
  %668 = getelementptr inbounds [1757 x i8], ptr %19, i64 0, i64 0
  %669 = load i32, ptr %33, align 4, !tbaa !5
  %670 = load i32, ptr %33, align 4, !tbaa !5
  %671 = add nsw i32 %670, 1
  %672 = call i32 @opus_packet_pad(ptr noundef %668, i32 noundef %669, i32 noundef %671)
  %673 = icmp ne i32 %672, 0
  br i1 %673, label %674, label %675

674:                                              ; preds = %667
  call void @_test_failed(ptr noundef @.str, i32 noundef 443) #10
  unreachable

675:                                              ; preds = %667
  %676 = load i32, ptr %33, align 4, !tbaa !5
  %677 = add nsw i32 %676, 1
  store i32 %677, ptr %33, align 4, !tbaa !5
  br label %678

678:                                              ; preds = %675, %663
  %679 = call i32 @fast_rand()
  %680 = and i32 %679, 7
  %681 = icmp eq i32 %680, 0
  br i1 %681, label %682, label %693

682:                                              ; preds = %678
  %683 = getelementptr inbounds [1757 x i8], ptr %19, i64 0, i64 0
  %684 = load i32, ptr %33, align 4, !tbaa !5
  %685 = load i32, ptr %33, align 4, !tbaa !5
  %686 = add nsw i32 %685, 256
  %687 = call i32 @opus_packet_pad(ptr noundef %683, i32 noundef %684, i32 noundef %686)
  %688 = icmp ne i32 %687, 0
  br i1 %688, label %689, label %690

689:                                              ; preds = %682
  call void @_test_failed(ptr noundef @.str, i32 noundef 448) #10
  unreachable

690:                                              ; preds = %682
  %691 = load i32, ptr %33, align 4, !tbaa !5
  %692 = add nsw i32 %691, 256
  store i32 %692, ptr %33, align 4, !tbaa !5
  br label %693

693:                                              ; preds = %690, %678
  %694 = call i32 @fast_rand()
  %695 = and i32 %694, 3
  %696 = icmp eq i32 %695, 0
  br i1 %696, label %697, label %705

697:                                              ; preds = %693
  %698 = getelementptr inbounds [1757 x i8], ptr %19, i64 0, i64 0
  %699 = load i32, ptr %33, align 4, !tbaa !5
  %700 = call i32 @opus_packet_unpad(ptr noundef %698, i32 noundef %699)
  store i32 %700, ptr %33, align 4, !tbaa !5
  %701 = load i32, ptr %33, align 4, !tbaa !5
  %702 = icmp slt i32 %701, 1
  br i1 %702, label %703, label %704

703:                                              ; preds = %697
  call void @_test_failed(ptr noundef @.str, i32 noundef 454) #10
  unreachable

704:                                              ; preds = %697
  br label %705

705:                                              ; preds = %704, %693
  %706 = load ptr, ptr %11, align 8, !tbaa !9
  %707 = getelementptr inbounds [1757 x i8], ptr %19, i64 0, i64 0
  %708 = load i32, ptr %33, align 4, !tbaa !5
  %709 = load ptr, ptr %16, align 8, !tbaa !9
  %710 = load i32, ptr %5, align 4, !tbaa !5
  %711 = shl i32 %710, 1
  %712 = sext i32 %711 to i64
  %713 = getelementptr inbounds i16, ptr %709, i64 %712
  %714 = call i32 @opus_decode(ptr noundef %706, ptr noundef %707, i32 noundef %708, ptr noundef %713, i32 noundef 5760, i32 noundef 0)
  store i32 %714, ptr %34, align 4, !tbaa !5
  %715 = load i32, ptr %34, align 4, !tbaa !5
  %716 = load i32, ptr %35, align 4, !tbaa !5
  %717 = icmp ne i32 %715, %716
  br i1 %717, label %718, label %719

718:                                              ; preds = %705
  call void @_test_failed(ptr noundef @.str, i32 noundef 457) #10
  unreachable

719:                                              ; preds = %705
  %720 = load ptr, ptr %11, align 8, !tbaa !9
  %721 = ptrtoint ptr %21 to i64
  %722 = ptrtoint ptr %21 to i64
  %723 = sub i64 %721, %722
  %724 = sdiv exact i64 %723, 4
  %725 = getelementptr inbounds i32, ptr %21, i64 %724
  %726 = call i32 (ptr, i32, ...) @opus_decoder_ctl(ptr noundef %720, i32 noundef 4031, ptr noundef %725)
  %727 = icmp ne i32 %726, 0
  br i1 %727, label %728, label %729

728:                                              ; preds = %719
  call void @_test_failed(ptr noundef @.str, i32 noundef 458) #10
  unreachable

729:                                              ; preds = %719
  %730 = load i32, ptr %20, align 4, !tbaa !5
  %731 = load i32, ptr %21, align 4, !tbaa !5
  %732 = icmp ne i32 %730, %731
  br i1 %732, label %733, label %734

733:                                              ; preds = %729
  call void @_test_failed(ptr noundef @.str, i32 noundef 459) #10
  unreachable

734:                                              ; preds = %729
  %735 = getelementptr inbounds [10 x ptr], ptr %14, i64 0, i64 0
  %736 = load ptr, ptr %735, align 16, !tbaa !9
  %737 = getelementptr inbounds [1757 x i8], ptr %19, i64 0, i64 0
  %738 = load i32, ptr %33, align 4, !tbaa !5
  %739 = load ptr, ptr %17, align 8, !tbaa !9
  %740 = load i32, ptr %35, align 4, !tbaa !5
  %741 = call i32 @fast_rand()
  %742 = and i32 %741, 3
  %743 = icmp ne i32 %742, 0
  %744 = zext i1 %743 to i32
  %745 = call i32 @opus_decode(ptr noundef %736, ptr noundef %737, i32 noundef %738, ptr noundef %739, i32 noundef %740, i32 noundef %744)
  store i32 %745, ptr %34, align 4, !tbaa !5
  %746 = load i32, ptr %34, align 4, !tbaa !5
  %747 = load i32, ptr %35, align 4, !tbaa !5
  %748 = icmp ne i32 %746, %747
  br i1 %748, label %749, label %750

749:                                              ; preds = %734
  call void @_test_failed(ptr noundef @.str, i32 noundef 462) #10
  unreachable

750:                                              ; preds = %734
  %751 = getelementptr inbounds [10 x ptr], ptr %14, i64 0, i64 1
  %752 = load ptr, ptr %751, align 8, !tbaa !9
  %753 = getelementptr inbounds [1757 x i8], ptr %19, i64 0, i64 0
  %754 = call i32 @fast_rand()
  %755 = and i32 %754, 3
  %756 = icmp eq i32 %755, 0
  br i1 %756, label %757, label %758

757:                                              ; preds = %750
  br label %760

758:                                              ; preds = %750
  %759 = load i32, ptr %33, align 4, !tbaa !5
  br label %760

760:                                              ; preds = %758, %757
  %761 = phi i32 [ 0, %757 ], [ %759, %758 ]
  %762 = load ptr, ptr %17, align 8, !tbaa !9
  %763 = call i32 @fast_rand()
  %764 = and i32 %763, 7
  %765 = icmp ne i32 %764, 0
  %766 = zext i1 %765 to i32
  %767 = call i32 @opus_decode(ptr noundef %752, ptr noundef %753, i32 noundef %761, ptr noundef %762, i32 noundef 5760, i32 noundef %766)
  store i32 %767, ptr %34, align 4, !tbaa !5
  %768 = load i32, ptr %34, align 4, !tbaa !5
  %769 = icmp slt i32 %768, 120
  br i1 %769, label %770, label %771

770:                                              ; preds = %760
  call void @_test_failed(ptr noundef @.str, i32 noundef 464) #10
  unreachable

771:                                              ; preds = %760
  %772 = load i32, ptr %35, align 4, !tbaa !5
  %773 = load i32, ptr %5, align 4, !tbaa !5
  %774 = add nsw i32 %773, %772
  store i32 %774, ptr %5, align 4, !tbaa !5
  %775 = load i32, ptr %24, align 4, !tbaa !5
  %776 = add nsw i32 %775, 1
  store i32 %776, ptr %24, align 4, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #9
  br label %777

777:                                              ; preds = %771
  %778 = load i32, ptr %5, align 4, !tbaa !5
  %779 = icmp slt i32 %778, 474240
  br i1 %779, label %418, label %780, !llvm.loop !14

780:                                              ; preds = %777
  %781 = load ptr, ptr @stdout, align 8, !tbaa !9
  %782 = load i32, ptr %6, align 4, !tbaa !5
  %783 = sext i32 %782 to i64
  %784 = getelementptr inbounds [13 x i32], ptr %29, i64 0, i64 %783
  %785 = load i32, ptr %784, align 4, !tbaa !5
  %786 = sext i32 %785 to i64
  %787 = getelementptr inbounds [3 x ptr], ptr @run_test1.mstrings, i64 0, i64 %786
  %788 = load ptr, ptr %787, align 8, !tbaa !9
  %789 = load i32, ptr %7, align 4, !tbaa !5
  %790 = icmp eq i32 %789, 0
  br i1 %790, label %791, label %792

791:                                              ; preds = %780
  br label %797

792:                                              ; preds = %780
  %793 = load i32, ptr %7, align 4, !tbaa !5
  %794 = icmp eq i32 %793, 1
  %795 = zext i1 %794 to i64
  %796 = select i1 %794, ptr @.str.10, ptr @.str.11
  br label %797

797:                                              ; preds = %792, %791
  %798 = phi ptr [ @.str.9, %791 ], [ %796, %792 ]
  %799 = load i32, ptr %28, align 4, !tbaa !5
  %800 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %781, ptr noundef @.str.8, ptr noundef %788, ptr noundef %798, i32 noundef %799) #9
  call void @llvm.lifetime.end.p0(i64 52, ptr %31) #9
  call void @llvm.lifetime.end.p0(i64 52, ptr %30) #9
  call void @llvm.lifetime.end.p0(i64 52, ptr %29) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #9
  br label %801

801:                                              ; preds = %797
  %802 = load i32, ptr %6, align 4, !tbaa !5
  %803 = add nsw i32 %802, 1
  store i32 %803, ptr %6, align 4, !tbaa !5
  br label %403, !llvm.loop !15

804:                                              ; preds = %403
  br label %805

805:                                              ; preds = %804
  %806 = load i32, ptr %7, align 4, !tbaa !5
  %807 = add nsw i32 %806, 1
  store i32 %807, ptr %7, align 4, !tbaa !5
  br label %347, !llvm.loop !16

808:                                              ; preds = %347
  %809 = load ptr, ptr %9, align 8, !tbaa !9
  %810 = call i32 (ptr, i32, ...) @opus_encoder_ctl(ptr noundef %809, i32 noundef 11002, i32 noundef -1000)
  %811 = icmp ne i32 %810, 0
  br i1 %811, label %812, label %813

812:                                              ; preds = %808
  call void @_test_failed(ptr noundef @.str, i32 noundef 472) #10
  unreachable

813:                                              ; preds = %808
  %814 = load ptr, ptr %9, align 8, !tbaa !9
  %815 = call i32 (ptr, i32, ...) @opus_encoder_ctl(ptr noundef %814, i32 noundef 4022, i32 noundef -1000)
  %816 = icmp ne i32 %815, 0
  br i1 %816, label %817, label %818

817:                                              ; preds = %813
  call void @_test_failed(ptr noundef @.str, i32 noundef 473) #10
  unreachable

818:                                              ; preds = %813
  %819 = load ptr, ptr %9, align 8, !tbaa !9
  %820 = call i32 (ptr, i32, ...) @opus_encoder_ctl(ptr noundef %819, i32 noundef 4012, i32 noundef 0)
  %821 = icmp ne i32 %820, 0
  br i1 %821, label %822, label %823

822:                                              ; preds = %818
  call void @_test_failed(ptr noundef @.str, i32 noundef 474) #10
  unreachable

823:                                              ; preds = %818
  %824 = load ptr, ptr %9, align 8, !tbaa !9
  %825 = call i32 (ptr, i32, ...) @opus_encoder_ctl(ptr noundef %824, i32 noundef 4016, i32 noundef 0)
  %826 = icmp ne i32 %825, 0
  br i1 %826, label %827, label %828

827:                                              ; preds = %823
  call void @_test_failed(ptr noundef @.str, i32 noundef 475) #10
  unreachable

828:                                              ; preds = %823
  store i32 0, ptr %7, align 4, !tbaa !5
  br label %829

829:                                              ; preds = %1217, %828
  %830 = load i32, ptr %7, align 4, !tbaa !5
  %831 = icmp slt i32 %830, 3
  br i1 %831, label %832, label %1220

832:                                              ; preds = %829
  %833 = load ptr, ptr %10, align 8, !tbaa !9
  %834 = load i32, ptr %7, align 4, !tbaa !5
  %835 = icmp slt i32 %834, 2
  %836 = zext i1 %835 to i32
  %837 = icmp eq i32 %836, 0
  %838 = zext i1 %837 to i32
  %839 = load i32, ptr %7, align 4, !tbaa !5
  %840 = icmp slt i32 %839, 2
  %841 = zext i1 %840 to i32
  %842 = call i32 (ptr, i32, ...) @opus_multistream_encoder_ctl(ptr noundef %833, i32 noundef 4006, i32 noundef %841)
  %843 = icmp ne i32 %842, 0
  br i1 %843, label %844, label %845

844:                                              ; preds = %832
  call void @_test_failed(ptr noundef @.str, i32 noundef 479) #10
  unreachable

845:                                              ; preds = %832
  %846 = load ptr, ptr %10, align 8, !tbaa !9
  %847 = load i32, ptr %7, align 4, !tbaa !5
  %848 = icmp eq i32 %847, 1
  %849 = zext i1 %848 to i32
  %850 = icmp eq i32 %849, 0
  %851 = zext i1 %850 to i32
  %852 = load i32, ptr %7, align 4, !tbaa !5
  %853 = icmp eq i32 %852, 1
  %854 = zext i1 %853 to i32
  %855 = call i32 (ptr, i32, ...) @opus_multistream_encoder_ctl(ptr noundef %846, i32 noundef 4020, i32 noundef %854)
  %856 = icmp ne i32 %855, 0
  br i1 %856, label %857, label %858

857:                                              ; preds = %845
  call void @_test_failed(ptr noundef @.str, i32 noundef 480) #10
  unreachable

858:                                              ; preds = %845
  %859 = load ptr, ptr %10, align 8, !tbaa !9
  %860 = load i32, ptr %7, align 4, !tbaa !5
  %861 = icmp eq i32 %860, 1
  %862 = zext i1 %861 to i32
  %863 = icmp eq i32 %862, 0
  %864 = zext i1 %863 to i32
  %865 = load i32, ptr %7, align 4, !tbaa !5
  %866 = icmp eq i32 %865, 1
  %867 = zext i1 %866 to i32
  %868 = call i32 (ptr, i32, ...) @opus_multistream_encoder_ctl(ptr noundef %859, i32 noundef 4020, i32 noundef %867)
  %869 = icmp ne i32 %868, 0
  br i1 %869, label %870, label %871

870:                                              ; preds = %858
  call void @_test_failed(ptr noundef @.str, i32 noundef 481) #10
  unreachable

871:                                              ; preds = %858
  %872 = load ptr, ptr %10, align 8, !tbaa !9
  %873 = load i32, ptr %7, align 4, !tbaa !5
  %874 = icmp eq i32 %873, 0
  %875 = zext i1 %874 to i32
  %876 = icmp eq i32 %875, 0
  %877 = zext i1 %876 to i32
  %878 = load i32, ptr %7, align 4, !tbaa !5
  %879 = icmp eq i32 %878, 0
  %880 = zext i1 %879 to i32
  %881 = call i32 (ptr, i32, ...) @opus_multistream_encoder_ctl(ptr noundef %872, i32 noundef 4012, i32 noundef %880)
  %882 = icmp ne i32 %881, 0
  br i1 %882, label %883, label %884

883:                                              ; preds = %871
  call void @_test_failed(ptr noundef @.str, i32 noundef 482) #10
  unreachable

884:                                              ; preds = %871
  store i32 0, ptr %6, align 4, !tbaa !5
  br label %885

885:                                              ; preds = %1213, %884
  %886 = load i32, ptr %6, align 4, !tbaa !5
  %887 = icmp slt i32 %886, 16
  br i1 %887, label %888, label %1216

888:                                              ; preds = %885
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #9
  call void @llvm.lifetime.start.p0(i64 64, ptr %38) #9
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %38, ptr align 16 @__const.run_test1.modes.12, i64 64, i1 false)
  call void @llvm.lifetime.start.p0(i64 64, ptr %39) #9
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %39, ptr align 16 @__const.run_test1.rates.13, i64 64, i1 false)
  call void @llvm.lifetime.start.p0(i64 64, ptr %40) #9
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %40, ptr align 16 @__const.run_test1.frame.14, i64 64, i1 false)
  %889 = load ptr, ptr %10, align 8, !tbaa !9
  %890 = load i32, ptr %7, align 4, !tbaa !5
  %891 = icmp eq i32 %890, 0
  br i1 %891, label %892, label %895

892:                                              ; preds = %888
  %893 = load i32, ptr %6, align 4, !tbaa !5
  %894 = icmp eq i32 %893, 1
  br label %895

895:                                              ; preds = %892, %888
  %896 = phi i1 [ false, %888 ], [ %894, %892 ]
  %897 = zext i1 %896 to i32
  %898 = icmp eq i32 %897, 0
  %899 = zext i1 %898 to i32
  %900 = load i32, ptr %7, align 4, !tbaa !5
  %901 = icmp eq i32 %900, 0
  br i1 %901, label %902, label %905

902:                                              ; preds = %895
  %903 = load i32, ptr %6, align 4, !tbaa !5
  %904 = icmp eq i32 %903, 1
  br label %905

905:                                              ; preds = %902, %895
  %906 = phi i1 [ false, %895 ], [ %904, %902 ]
  %907 = zext i1 %906 to i32
  %908 = call i32 (ptr, i32, ...) @opus_multistream_encoder_ctl(ptr noundef %889, i32 noundef 4012, i32 noundef %907)
  %909 = icmp ne i32 %908, 0
  br i1 %909, label %910, label %911

910:                                              ; preds = %905
  call void @_test_failed(ptr noundef @.str, i32 noundef 489) #10
  unreachable

911:                                              ; preds = %905
  %912 = load ptr, ptr %10, align 8, !tbaa !9
  %913 = load i32, ptr %6, align 4, !tbaa !5
  %914 = sext i32 %913 to i64
  %915 = getelementptr inbounds [16 x i32], ptr %38, i64 0, i64 %914
  %916 = load i32, ptr %915, align 4, !tbaa !5
  %917 = add nsw i32 1000, %916
  %918 = icmp eq i32 %917, 0
  %919 = zext i1 %918 to i32
  %920 = load i32, ptr %6, align 4, !tbaa !5
  %921 = sext i32 %920 to i64
  %922 = getelementptr inbounds [16 x i32], ptr %38, i64 0, i64 %921
  %923 = load i32, ptr %922, align 4, !tbaa !5
  %924 = add nsw i32 1000, %923
  %925 = call i32 (ptr, i32, ...) @opus_multistream_encoder_ctl(ptr noundef %912, i32 noundef 11002, i32 noundef %924)
  %926 = icmp ne i32 %925, 0
  br i1 %926, label %927, label %928

927:                                              ; preds = %911
  call void @_test_failed(ptr noundef @.str, i32 noundef 490) #10
  unreachable

928:                                              ; preds = %911
  %929 = load i32, ptr %6, align 4, !tbaa !5
  %930 = sext i32 %929 to i64
  %931 = getelementptr inbounds [16 x i32], ptr %39, i64 0, i64 %930
  %932 = load i32, ptr %931, align 4, !tbaa !5
  %933 = call i32 @fast_rand()
  %934 = load i32, ptr %6, align 4, !tbaa !5
  %935 = sext i32 %934 to i64
  %936 = getelementptr inbounds [16 x i32], ptr %39, i64 0, i64 %935
  %937 = load i32, ptr %936, align 4, !tbaa !5
  %938 = urem i32 %933, %937
  %939 = add i32 %932, %938
  store i32 %939, ptr %37, align 4, !tbaa !5
  %940 = load ptr, ptr %10, align 8, !tbaa !9
  %941 = call i32 @fast_rand()
  %942 = and i32 %941, 1
  %943 = icmp eq i32 %942, 0
  %944 = zext i1 %943 to i32
  %945 = call i32 @fast_rand()
  %946 = and i32 %945, 1
  %947 = call i32 (ptr, i32, ...) @opus_multistream_encoder_ctl(ptr noundef %940, i32 noundef 4016, i32 noundef %946)
  %948 = icmp ne i32 %947, 0
  br i1 %948, label %949, label %950

949:                                              ; preds = %928
  call void @_test_failed(ptr noundef @.str, i32 noundef 492) #10
  unreachable

950:                                              ; preds = %928
  %951 = load ptr, ptr %10, align 8, !tbaa !9
  %952 = load i32, ptr %37, align 4, !tbaa !5
  %953 = icmp eq i32 %952, 0
  %954 = zext i1 %953 to i32
  %955 = load i32, ptr %37, align 4, !tbaa !5
  %956 = call i32 (ptr, i32, ...) @opus_multistream_encoder_ctl(ptr noundef %951, i32 noundef 4002, i32 noundef %955)
  %957 = icmp ne i32 %956, 0
  br i1 %957, label %958, label %959

958:                                              ; preds = %950
  call void @_test_failed(ptr noundef @.str, i32 noundef 493) #10
  unreachable

959:                                              ; preds = %950
  store i32 0, ptr %5, align 4, !tbaa !5
  store i32 0, ptr %24, align 4, !tbaa !5
  br label %960

960:                                              ; preds = %1189, %959
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #9
  %961 = load ptr, ptr %10, align 8, !tbaa !9
  %962 = ptrtoint ptr %45 to i64
  %963 = ptrtoint ptr %45 to i64
  %964 = sub i64 %962, %963
  %965 = sdiv exact i64 %964, 4
  %966 = getelementptr inbounds i32, ptr %45, i64 %965
  %967 = call i32 (ptr, i32, ...) @opus_multistream_encoder_ctl(ptr noundef %961, i32 noundef 4043, ptr noundef %966)
  %968 = icmp ne i32 %967, 0
  br i1 %968, label %969, label %970

969:                                              ; preds = %960
  call void @_test_failed(ptr noundef @.str, i32 noundef 498) #10
  unreachable

970:                                              ; preds = %960
  %971 = load ptr, ptr %10, align 8, !tbaa !9
  %972 = call i32 @fast_rand()
  %973 = and i32 %972, 15
  %974 = load i32, ptr %45, align 4, !tbaa !5
  %975 = icmp ne i32 %974, 0
  %976 = zext i1 %975 to i64
  %977 = select i1 %975, i32 11, i32 4
  %978 = icmp slt i32 %973, %977
  %979 = zext i1 %978 to i32
  %980 = icmp eq i32 %979, 0
  %981 = zext i1 %980 to i32
  %982 = call i32 @fast_rand()
  %983 = and i32 %982, 15
  %984 = load i32, ptr %45, align 4, !tbaa !5
  %985 = icmp ne i32 %984, 0
  %986 = zext i1 %985 to i64
  %987 = select i1 %985, i32 11, i32 4
  %988 = icmp slt i32 %983, %987
  %989 = zext i1 %988 to i32
  %990 = call i32 (ptr, i32, ...) @opus_multistream_encoder_ctl(ptr noundef %971, i32 noundef 4042, i32 noundef %989)
  %991 = icmp ne i32 %990, 0
  br i1 %991, label %992, label %993

992:                                              ; preds = %970
  call void @_test_failed(ptr noundef @.str, i32 noundef 499) #10
  unreachable

993:                                              ; preds = %970
  %994 = load i32, ptr %6, align 4, !tbaa !5
  %995 = sext i32 %994 to i64
  %996 = getelementptr inbounds [16 x i32], ptr %40, i64 0, i64 %995
  %997 = load i32, ptr %996, align 4, !tbaa !5
  store i32 %997, ptr %43, align 4, !tbaa !5
  %998 = load ptr, ptr %10, align 8, !tbaa !9
  %999 = load i32, ptr %24, align 4, !tbaa !5
  %1000 = ashr i32 %999, 2
  %1001 = srem i32 %1000, 11
  %1002 = icmp eq i32 %1001, 0
  %1003 = zext i1 %1002 to i32
  %1004 = load i32, ptr %24, align 4, !tbaa !5
  %1005 = ashr i32 %1004, 2
  %1006 = srem i32 %1005, 11
  %1007 = call i32 (ptr, i32, ...) @opus_multistream_encoder_ctl(ptr noundef %998, i32 noundef 4010, i32 noundef %1006)
  %1008 = icmp ne i32 %1007, 0
  br i1 %1008, label %1009, label %1010

1009:                                             ; preds = %993
  call void @_test_failed(ptr noundef @.str, i32 noundef 501) #10
  unreachable

1010:                                             ; preds = %993
  %1011 = load ptr, ptr %10, align 8, !tbaa !9
  %1012 = call i32 @fast_rand()
  %1013 = and i32 %1012, 15
  %1014 = call i32 @fast_rand()
  %1015 = urem i32 %1014, 15
  %1016 = and i32 %1013, %1015
  %1017 = icmp eq i32 %1016, 0
  %1018 = zext i1 %1017 to i32
  %1019 = call i32 @fast_rand()
  %1020 = and i32 %1019, 15
  %1021 = call i32 @fast_rand()
  %1022 = urem i32 %1021, 15
  %1023 = and i32 %1020, %1022
  %1024 = call i32 (ptr, i32, ...) @opus_multistream_encoder_ctl(ptr noundef %1011, i32 noundef 4014, i32 noundef %1023)
  %1025 = icmp ne i32 %1024, 0
  br i1 %1025, label %1026, label %1027

1026:                                             ; preds = %1010
  call void @_test_failed(ptr noundef @.str, i32 noundef 502) #10
  unreachable

1027:                                             ; preds = %1010
  %1028 = call i32 @fast_rand()
  %1029 = and i32 %1028, 255
  %1030 = icmp eq i32 %1029, 0
  br i1 %1030, label %1031, label %1052

1031:                                             ; preds = %1027
  %1032 = load ptr, ptr %10, align 8, !tbaa !9
  %1033 = call i32 (ptr, i32, ...) @opus_multistream_encoder_ctl(ptr noundef %1032, i32 noundef 4028)
  %1034 = icmp ne i32 %1033, 0
  br i1 %1034, label %1035, label %1036

1035:                                             ; preds = %1031
  call void @_test_failed(ptr noundef @.str, i32 noundef 505) #10
  unreachable

1036:                                             ; preds = %1031
  %1037 = load ptr, ptr %12, align 8, !tbaa !9
  %1038 = call i32 (ptr, i32, ...) @opus_multistream_decoder_ctl(ptr noundef %1037, i32 noundef 4028)
  %1039 = icmp ne i32 %1038, 0
  br i1 %1039, label %1040, label %1041

1040:                                             ; preds = %1036
  call void @_test_failed(ptr noundef @.str, i32 noundef 506) #10
  unreachable

1041:                                             ; preds = %1036
  %1042 = call i32 @fast_rand()
  %1043 = and i32 %1042, 3
  %1044 = icmp ne i32 %1043, 0
  br i1 %1044, label %1045, label %1051

1045:                                             ; preds = %1041
  %1046 = load ptr, ptr %13, align 8, !tbaa !9
  %1047 = call i32 (ptr, i32, ...) @opus_multistream_decoder_ctl(ptr noundef %1046, i32 noundef 4028)
  %1048 = icmp ne i32 %1047, 0
  br i1 %1048, label %1049, label %1050

1049:                                             ; preds = %1045
  call void @_test_failed(ptr noundef @.str, i32 noundef 509) #10
  unreachable

1050:                                             ; preds = %1045
  br label %1051

1051:                                             ; preds = %1050, %1041
  br label %1052

1052:                                             ; preds = %1051, %1027
  %1053 = call i32 @fast_rand()
  %1054 = and i32 %1053, 255
  %1055 = icmp eq i32 %1054, 0
  br i1 %1055, label %1056, label %1062

1056:                                             ; preds = %1052
  %1057 = load ptr, ptr %13, align 8, !tbaa !9
  %1058 = call i32 (ptr, i32, ...) @opus_multistream_decoder_ctl(ptr noundef %1057, i32 noundef 4028)
  %1059 = icmp ne i32 %1058, 0
  br i1 %1059, label %1060, label %1061

1060:                                             ; preds = %1056
  call void @_test_failed(ptr noundef @.str, i32 noundef 514) #10
  unreachable

1061:                                             ; preds = %1056
  br label %1062

1062:                                             ; preds = %1061, %1052
  %1063 = load ptr, ptr %10, align 8, !tbaa !9
  %1064 = load ptr, ptr %15, align 8, !tbaa !9
  %1065 = load i32, ptr %5, align 4, !tbaa !5
  %1066 = shl i32 %1065, 1
  %1067 = sext i32 %1066 to i64
  %1068 = getelementptr inbounds i16, ptr %1064, i64 %1067
  %1069 = load i32, ptr %43, align 4, !tbaa !5
  %1070 = getelementptr inbounds [1757 x i8], ptr %19, i64 0, i64 0
  %1071 = call i32 @opus_multistream_encode(ptr noundef %1063, ptr noundef %1068, i32 noundef %1069, ptr noundef %1070, i32 noundef 1500)
  store i32 %1071, ptr %41, align 4, !tbaa !5
  %1072 = load i32, ptr %41, align 4, !tbaa !5
  %1073 = icmp slt i32 %1072, 0
  br i1 %1073, label %1077, label %1074

1074:                                             ; preds = %1062
  %1075 = load i32, ptr %41, align 4, !tbaa !5
  %1076 = icmp sgt i32 %1075, 1500
  br i1 %1076, label %1077, label %1078

1077:                                             ; preds = %1074, %1062
  call void @_test_failed(ptr noundef @.str, i32 noundef 517) #10
  unreachable

1078:                                             ; preds = %1074
  %1079 = load ptr, ptr %10, align 8, !tbaa !9
  %1080 = ptrtoint ptr %20 to i64
  %1081 = ptrtoint ptr %20 to i64
  %1082 = sub i64 %1080, %1081
  %1083 = sdiv exact i64 %1082, 4
  %1084 = getelementptr inbounds i32, ptr %20, i64 %1083
  %1085 = call i32 (ptr, i32, ...) @opus_multistream_encoder_ctl(ptr noundef %1079, i32 noundef 4031, ptr noundef %1084)
  %1086 = icmp ne i32 %1085, 0
  br i1 %1086, label %1087, label %1088

1087:                                             ; preds = %1078
  call void @_test_failed(ptr noundef @.str, i32 noundef 518) #10
  unreachable

1088:                                             ; preds = %1078
  %1089 = call i32 @fast_rand()
  %1090 = and i32 %1089, 3
  %1091 = icmp eq i32 %1090, 0
  br i1 %1091, label %1092, label %1103

1092:                                             ; preds = %1088
  %1093 = getelementptr inbounds [1757 x i8], ptr %19, i64 0, i64 0
  %1094 = load i32, ptr %41, align 4, !tbaa !5
  %1095 = load i32, ptr %41, align 4, !tbaa !5
  %1096 = add nsw i32 %1095, 1
  %1097 = call i32 @opus_multistream_packet_pad(ptr noundef %1093, i32 noundef %1094, i32 noundef %1096, i32 noundef 2)
  %1098 = icmp ne i32 %1097, 0
  br i1 %1098, label %1099, label %1100

1099:                                             ; preds = %1092
  call void @_test_failed(ptr noundef @.str, i32 noundef 521) #10
  unreachable

1100:                                             ; preds = %1092
  %1101 = load i32, ptr %41, align 4, !tbaa !5
  %1102 = add nsw i32 %1101, 1
  store i32 %1102, ptr %41, align 4, !tbaa !5
  br label %1103

1103:                                             ; preds = %1100, %1088
  %1104 = call i32 @fast_rand()
  %1105 = and i32 %1104, 7
  %1106 = icmp eq i32 %1105, 0
  br i1 %1106, label %1107, label %1118

1107:                                             ; preds = %1103
  %1108 = getelementptr inbounds [1757 x i8], ptr %19, i64 0, i64 0
  %1109 = load i32, ptr %41, align 4, !tbaa !5
  %1110 = load i32, ptr %41, align 4, !tbaa !5
  %1111 = add nsw i32 %1110, 256
  %1112 = call i32 @opus_multistream_packet_pad(ptr noundef %1108, i32 noundef %1109, i32 noundef %1111, i32 noundef 2)
  %1113 = icmp ne i32 %1112, 0
  br i1 %1113, label %1114, label %1115

1114:                                             ; preds = %1107
  call void @_test_failed(ptr noundef @.str, i32 noundef 526) #10
  unreachable

1115:                                             ; preds = %1107
  %1116 = load i32, ptr %41, align 4, !tbaa !5
  %1117 = add nsw i32 %1116, 256
  store i32 %1117, ptr %41, align 4, !tbaa !5
  br label %1118

1118:                                             ; preds = %1115, %1103
  %1119 = call i32 @fast_rand()
  %1120 = and i32 %1119, 3
  %1121 = icmp eq i32 %1120, 0
  br i1 %1121, label %1122, label %1130

1122:                                             ; preds = %1118
  %1123 = getelementptr inbounds [1757 x i8], ptr %19, i64 0, i64 0
  %1124 = load i32, ptr %41, align 4, !tbaa !5
  %1125 = call i32 @opus_multistream_packet_unpad(ptr noundef %1123, i32 noundef %1124, i32 noundef 2)
  store i32 %1125, ptr %41, align 4, !tbaa !5
  %1126 = load i32, ptr %41, align 4, !tbaa !5
  %1127 = icmp slt i32 %1126, 1
  br i1 %1127, label %1128, label %1129

1128:                                             ; preds = %1122
  call void @_test_failed(ptr noundef @.str, i32 noundef 532) #10
  unreachable

1129:                                             ; preds = %1122
  br label %1130

1130:                                             ; preds = %1129, %1118
  %1131 = load ptr, ptr %12, align 8, !tbaa !9
  %1132 = getelementptr inbounds [1757 x i8], ptr %19, i64 0, i64 0
  %1133 = load i32, ptr %41, align 4, !tbaa !5
  %1134 = load ptr, ptr %17, align 8, !tbaa !9
  %1135 = call i32 @opus_multistream_decode(ptr noundef %1131, ptr noundef %1132, i32 noundef %1133, ptr noundef %1134, i32 noundef 5760, i32 noundef 0)
  store i32 %1135, ptr %42, align 4, !tbaa !5
  %1136 = load i32, ptr %42, align 4, !tbaa !5
  %1137 = load i32, ptr %43, align 4, !tbaa !5
  %1138 = mul nsw i32 %1137, 6
  %1139 = icmp ne i32 %1136, %1138
  br i1 %1139, label %1140, label %1141

1140:                                             ; preds = %1130
  call void @_test_failed(ptr noundef @.str, i32 noundef 535) #10
  unreachable

1141:                                             ; preds = %1130
  %1142 = load ptr, ptr %12, align 8, !tbaa !9
  %1143 = ptrtoint ptr %21 to i64
  %1144 = ptrtoint ptr %21 to i64
  %1145 = sub i64 %1143, %1144
  %1146 = sdiv exact i64 %1145, 4
  %1147 = getelementptr inbounds i32, ptr %21, i64 %1146
  %1148 = call i32 (ptr, i32, ...) @opus_multistream_decoder_ctl(ptr noundef %1142, i32 noundef 4031, ptr noundef %1147)
  %1149 = icmp ne i32 %1148, 0
  br i1 %1149, label %1150, label %1151

1150:                                             ; preds = %1141
  call void @_test_failed(ptr noundef @.str, i32 noundef 536) #10
  unreachable

1151:                                             ; preds = %1141
  %1152 = load i32, ptr %20, align 4, !tbaa !5
  %1153 = load i32, ptr %21, align 4, !tbaa !5
  %1154 = icmp ne i32 %1152, %1153
  br i1 %1154, label %1155, label %1156

1155:                                             ; preds = %1151
  call void @_test_failed(ptr noundef @.str, i32 noundef 537) #10
  unreachable

1156:                                             ; preds = %1151
  %1157 = call i32 @fast_rand()
  %1158 = and i32 %1157, 63
  %1159 = icmp eq i32 %1158, 0
  %1160 = zext i1 %1159 to i32
  store i32 %1160, ptr %44, align 4, !tbaa !5
  %1161 = load ptr, ptr %13, align 8, !tbaa !9
  %1162 = getelementptr inbounds [1757 x i8], ptr %19, i64 0, i64 0
  %1163 = load i32, ptr %44, align 4, !tbaa !5
  %1164 = icmp ne i32 %1163, 0
  br i1 %1164, label %1165, label %1166

1165:                                             ; preds = %1156
  br label %1168

1166:                                             ; preds = %1156
  %1167 = load i32, ptr %41, align 4, !tbaa !5
  br label %1168

1168:                                             ; preds = %1166, %1165
  %1169 = phi i32 [ 0, %1165 ], [ %1167, %1166 ]
  %1170 = load ptr, ptr %17, align 8, !tbaa !9
  %1171 = load i32, ptr %43, align 4, !tbaa !5
  %1172 = mul nsw i32 %1171, 6
  %1173 = call i32 @fast_rand()
  %1174 = and i32 %1173, 3
  %1175 = icmp ne i32 %1174, 0
  %1176 = zext i1 %1175 to i32
  %1177 = call i32 @opus_multistream_decode(ptr noundef %1161, ptr noundef %1162, i32 noundef %1169, ptr noundef %1170, i32 noundef %1172, i32 noundef %1176)
  store i32 %1177, ptr %42, align 4, !tbaa !5
  %1178 = load i32, ptr %42, align 4, !tbaa !5
  %1179 = load i32, ptr %43, align 4, !tbaa !5
  %1180 = mul nsw i32 %1179, 6
  %1181 = icmp ne i32 %1178, %1180
  br i1 %1181, label %1182, label %1183

1182:                                             ; preds = %1168
  call void @_test_failed(ptr noundef @.str, i32 noundef 541) #10
  unreachable

1183:                                             ; preds = %1168
  %1184 = load i32, ptr %43, align 4, !tbaa !5
  %1185 = load i32, ptr %5, align 4, !tbaa !5
  %1186 = add nsw i32 %1185, %1184
  store i32 %1186, ptr %5, align 4, !tbaa !5
  %1187 = load i32, ptr %24, align 4, !tbaa !5
  %1188 = add nsw i32 %1187, 1
  store i32 %1188, ptr %24, align 4, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #9
  br label %1189

1189:                                             ; preds = %1183
  %1190 = load i32, ptr %5, align 4, !tbaa !5
  %1191 = icmp slt i32 %1190, 34240
  br i1 %1191, label %960, label %1192, !llvm.loop !17

1192:                                             ; preds = %1189
  %1193 = load ptr, ptr @stdout, align 8, !tbaa !9
  %1194 = load i32, ptr %6, align 4, !tbaa !5
  %1195 = sext i32 %1194 to i64
  %1196 = getelementptr inbounds [16 x i32], ptr %38, i64 0, i64 %1195
  %1197 = load i32, ptr %1196, align 4, !tbaa !5
  %1198 = sext i32 %1197 to i64
  %1199 = getelementptr inbounds [3 x ptr], ptr @run_test1.mstrings, i64 0, i64 %1198
  %1200 = load ptr, ptr %1199, align 8, !tbaa !9
  %1201 = load i32, ptr %7, align 4, !tbaa !5
  %1202 = icmp eq i32 %1201, 0
  br i1 %1202, label %1203, label %1204

1203:                                             ; preds = %1192
  br label %1209

1204:                                             ; preds = %1192
  %1205 = load i32, ptr %7, align 4, !tbaa !5
  %1206 = icmp eq i32 %1205, 1
  %1207 = zext i1 %1206 to i64
  %1208 = select i1 %1206, ptr @.str.10, ptr @.str.11
  br label %1209

1209:                                             ; preds = %1204, %1203
  %1210 = phi ptr [ @.str.9, %1203 ], [ %1208, %1204 ]
  %1211 = load i32, ptr %37, align 4, !tbaa !5
  %1212 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1193, ptr noundef @.str.15, ptr noundef %1200, ptr noundef %1210, i32 noundef %1211) #9
  call void @llvm.lifetime.end.p0(i64 64, ptr %40) #9
  call void @llvm.lifetime.end.p0(i64 64, ptr %39) #9
  call void @llvm.lifetime.end.p0(i64 64, ptr %38) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #9
  br label %1213

1213:                                             ; preds = %1209
  %1214 = load i32, ptr %6, align 4, !tbaa !5
  %1215 = add nsw i32 %1214, 1
  store i32 %1215, ptr %6, align 4, !tbaa !5
  br label %885, !llvm.loop !18

1216:                                             ; preds = %885
  br label %1217

1217:                                             ; preds = %1216
  %1218 = load i32, ptr %7, align 4, !tbaa !5
  %1219 = add nsw i32 %1218, 1
  store i32 %1219, ptr %7, align 4, !tbaa !5
  br label %829, !llvm.loop !19

1220:                                             ; preds = %829
  store i32 512000, ptr %18, align 4, !tbaa !5
  %1221 = call i32 @fast_rand()
  %1222 = urem i32 %1221, 31
  store i32 %1222, ptr %23, align 4, !tbaa !5
  store i32 100, ptr %22, align 4, !tbaa !5
  %1223 = getelementptr inbounds [36 x i8], ptr %4, i64 0, i64 0
  call void @debruijn2(i32 noundef 6, ptr noundef %1223)
  store i32 0, ptr %5, align 4, !tbaa !5
  store i32 0, ptr %24, align 4, !tbaa !5
  br label %1224

1224:                                             ; preds = %1467, %1220
  call void @llvm.lifetime.start.p0(i64 1, ptr %46) #9
  call void @llvm.lifetime.start.p0(i64 384, ptr %47) #9
  call void @llvm.lifetime.start.p0(i64 96, ptr %48) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %49) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %52) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %53) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #9
  %1225 = load i32, ptr %23, align 4, !tbaa !5
  %1226 = sext i32 %1225 to i64
  %1227 = getelementptr inbounds [36 x i8], ptr %4, i64 0, i64 %1226
  %1228 = load i8, ptr %1227, align 1, !tbaa !20
  %1229 = zext i8 %1228 to i64
  %1230 = getelementptr inbounds [6 x i32], ptr @run_test1.fsizes, i64 0, i64 %1229
  %1231 = load i32, ptr %1230, align 4, !tbaa !5
  store i32 %1231, ptr %55, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #9
  %1232 = load i32, ptr %5, align 4, !tbaa !5
  %1233 = srem i32 %1232, 1434240
  store i32 %1233, ptr %56, align 4, !tbaa !5
  %1234 = load ptr, ptr %9, align 8, !tbaa !9
  %1235 = load i32, ptr %18, align 4, !tbaa !5
  %1236 = icmp eq i32 %1235, 0
  %1237 = zext i1 %1236 to i32
  %1238 = load i32, ptr %18, align 4, !tbaa !5
  %1239 = call i32 (ptr, i32, ...) @opus_encoder_ctl(ptr noundef %1234, i32 noundef 4002, i32 noundef %1238)
  %1240 = load ptr, ptr %9, align 8, !tbaa !9
  %1241 = load ptr, ptr %15, align 8, !tbaa !9
  %1242 = load i32, ptr %56, align 4, !tbaa !5
  %1243 = shl i32 %1242, 1
  %1244 = sext i32 %1243 to i64
  %1245 = getelementptr inbounds i16, ptr %1241, i64 %1244
  %1246 = load i32, ptr %55, align 4, !tbaa !5
  %1247 = getelementptr inbounds [1757 x i8], ptr %19, i64 0, i64 0
  %1248 = call i32 @opus_encode(ptr noundef %1240, ptr noundef %1245, i32 noundef %1246, ptr noundef %1247, i32 noundef 1500)
  store i32 %1248, ptr %53, align 4, !tbaa !5
  %1249 = load i32, ptr %53, align 4, !tbaa !5
  %1250 = icmp slt i32 %1249, 0
  br i1 %1250, label %1254, label %1251

1251:                                             ; preds = %1224
  %1252 = load i32, ptr %53, align 4, !tbaa !5
  %1253 = icmp sgt i32 %1252, 1500
  br i1 %1253, label %1254, label %1255

1254:                                             ; preds = %1251, %1224
  call void @_test_failed(ptr noundef @.str, i32 noundef 569) #10
  unreachable

1255:                                             ; preds = %1251
  %1256 = load i32, ptr %24, align 4, !tbaa !5
  %1257 = add nsw i32 %1256, 1
  store i32 %1257, ptr %24, align 4, !tbaa !5
  %1258 = load ptr, ptr %9, align 8, !tbaa !9
  %1259 = ptrtoint ptr %20 to i64
  %1260 = ptrtoint ptr %20 to i64
  %1261 = sub i64 %1259, %1260
  %1262 = sdiv exact i64 %1261, 4
  %1263 = getelementptr inbounds i32, ptr %20, i64 %1262
  %1264 = call i32 (ptr, i32, ...) @opus_encoder_ctl(ptr noundef %1258, i32 noundef 4031, ptr noundef %1263)
  %1265 = load ptr, ptr %11, align 8, !tbaa !9
  %1266 = getelementptr inbounds [1757 x i8], ptr %19, i64 0, i64 0
  %1267 = load i32, ptr %53, align 4, !tbaa !5
  %1268 = load ptr, ptr %16, align 8, !tbaa !9
  %1269 = load i32, ptr %56, align 4, !tbaa !5
  %1270 = shl i32 %1269, 1
  %1271 = sext i32 %1270 to i64
  %1272 = getelementptr inbounds i16, ptr %1268, i64 %1271
  %1273 = call i32 @opus_decode(ptr noundef %1265, ptr noundef %1266, i32 noundef %1267, ptr noundef %1272, i32 noundef 5760, i32 noundef 0)
  store i32 %1273, ptr %54, align 4, !tbaa !5
  %1274 = load i32, ptr %54, align 4, !tbaa !5
  %1275 = load i32, ptr %55, align 4, !tbaa !5
  %1276 = icmp ne i32 %1274, %1275
  br i1 %1276, label %1277, label %1278

1277:                                             ; preds = %1255
  call void @_test_failed(ptr noundef @.str, i32 noundef 575) #10
  unreachable

1278:                                             ; preds = %1255
  %1279 = load ptr, ptr %11, align 8, !tbaa !9
  %1280 = ptrtoint ptr %21 to i64
  %1281 = ptrtoint ptr %21 to i64
  %1282 = sub i64 %1280, %1281
  %1283 = sdiv exact i64 %1282, 4
  %1284 = getelementptr inbounds i32, ptr %21, i64 %1283
  %1285 = call i32 (ptr, i32, ...) @opus_decoder_ctl(ptr noundef %1279, i32 noundef 4031, ptr noundef %1284)
  %1286 = load i32, ptr %21, align 4, !tbaa !5
  %1287 = load i32, ptr %20, align 4, !tbaa !5
  %1288 = icmp ne i32 %1286, %1287
  br i1 %1288, label %1289, label %1290

1289:                                             ; preds = %1278
  call void @_test_failed(ptr noundef @.str, i32 noundef 580) #10
  unreachable

1290:                                             ; preds = %1278
  %1291 = getelementptr inbounds [1757 x i8], ptr %19, i64 0, i64 0
  %1292 = load i32, ptr %53, align 4, !tbaa !5
  %1293 = getelementptr inbounds [48 x ptr], ptr %47, i64 0, i64 0
  %1294 = getelementptr inbounds [48 x i16], ptr %48, i64 0, i64 0
  %1295 = call i32 @opus_packet_parse(ptr noundef %1291, i32 noundef %1292, ptr noundef %46, ptr noundef %1293, ptr noundef %1294, ptr noundef %49)
  %1296 = icmp sle i32 %1295, 0
  br i1 %1296, label %1297, label %1298

1297:                                             ; preds = %1290
  call void @_test_failed(ptr noundef @.str, i32 noundef 585) #10
  unreachable

1298:                                             ; preds = %1290
  %1299 = call i32 @fast_rand()
  %1300 = and i32 %1299, 1023
  %1301 = icmp eq i32 %1300, 0
  br i1 %1301, label %1302, label %1303

1302:                                             ; preds = %1298
  store i32 0, ptr %53, align 4, !tbaa !5
  br label %1303

1303:                                             ; preds = %1302, %1298
  %1304 = getelementptr inbounds [48 x ptr], ptr %47, i64 0, i64 0
  %1305 = load ptr, ptr %1304, align 16, !tbaa !9
  %1306 = getelementptr inbounds [1757 x i8], ptr %19, i64 0, i64 0
  %1307 = ptrtoint ptr %1305 to i64
  %1308 = ptrtoint ptr %1306 to i64
  %1309 = sub i64 %1307, %1308
  %1310 = trunc i64 %1309 to i32
  store i32 %1310, ptr %6, align 4, !tbaa !5
  br label %1311

1311:                                             ; preds = %1342, %1303
  %1312 = load i32, ptr %6, align 4, !tbaa !5
  %1313 = load i32, ptr %53, align 4, !tbaa !5
  %1314 = icmp slt i32 %1312, %1313
  br i1 %1314, label %1315, label %1345

1315:                                             ; preds = %1311
  store i32 0, ptr %51, align 4, !tbaa !5
  br label %1316

1316:                                             ; preds = %1338, %1315
  %1317 = load i32, ptr %51, align 4, !tbaa !5
  %1318 = icmp slt i32 %1317, 8
  br i1 %1318, label %1319, label %1341

1319:                                             ; preds = %1316
  %1320 = load i32, ptr %2, align 4, !tbaa !5
  %1321 = icmp ne i32 %1320, 0
  br i1 %1321, label %1326, label %1322

1322:                                             ; preds = %1319
  %1323 = call i32 @fast_rand()
  %1324 = and i32 %1323, 1023
  %1325 = icmp eq i32 %1324, 0
  br label %1326

1326:                                             ; preds = %1322, %1319
  %1327 = phi i1 [ false, %1319 ], [ %1325, %1322 ]
  %1328 = zext i1 %1327 to i32
  %1329 = load i32, ptr %51, align 4, !tbaa !5
  %1330 = shl i32 %1328, %1329
  %1331 = load i32, ptr %6, align 4, !tbaa !5
  %1332 = sext i32 %1331 to i64
  %1333 = getelementptr inbounds [1757 x i8], ptr %19, i64 0, i64 %1332
  %1334 = load i8, ptr %1333, align 1, !tbaa !20
  %1335 = zext i8 %1334 to i32
  %1336 = xor i32 %1335, %1330
  %1337 = trunc i32 %1336 to i8
  store i8 %1337, ptr %1333, align 1, !tbaa !20
  br label %1338

1338:                                             ; preds = %1326
  %1339 = load i32, ptr %51, align 4, !tbaa !5
  %1340 = add nsw i32 %1339, 1
  store i32 %1340, ptr %51, align 4, !tbaa !5
  br label %1316, !llvm.loop !21

1341:                                             ; preds = %1316
  br label %1342

1342:                                             ; preds = %1341
  %1343 = load i32, ptr %6, align 4, !tbaa !5
  %1344 = add nsw i32 %1343, 1
  store i32 %1344, ptr %6, align 4, !tbaa !5
  br label %1311, !llvm.loop !22

1345:                                             ; preds = %1311
  %1346 = getelementptr inbounds [10 x ptr], ptr %14, i64 0, i64 0
  %1347 = load ptr, ptr %1346, align 16, !tbaa !9
  %1348 = load i32, ptr %53, align 4, !tbaa !5
  %1349 = icmp sgt i32 %1348, 0
  br i1 %1349, label %1350, label %1352

1350:                                             ; preds = %1345
  %1351 = getelementptr inbounds [1757 x i8], ptr %19, i64 0, i64 0
  br label %1353

1352:                                             ; preds = %1345
  br label %1353

1353:                                             ; preds = %1352, %1350
  %1354 = phi ptr [ %1351, %1350 ], [ null, %1352 ]
  %1355 = load i32, ptr %53, align 4, !tbaa !5
  %1356 = load ptr, ptr %17, align 8, !tbaa !9
  %1357 = call i32 @opus_decode(ptr noundef %1347, ptr noundef %1354, i32 noundef %1355, ptr noundef %1356, i32 noundef 5760, i32 noundef 0)
  store i32 %1357, ptr %54, align 4, !tbaa !5
  %1358 = load i32, ptr %54, align 4, !tbaa !5
  %1359 = icmp slt i32 %1358, 0
  br i1 %1359, label %1363, label %1360

1360:                                             ; preds = %1353
  %1361 = load i32, ptr %54, align 4, !tbaa !5
  %1362 = icmp sgt i32 %1361, 5760
  br i1 %1362, label %1363, label %1364

1363:                                             ; preds = %1360, %1353
  call void @_test_failed(ptr noundef @.str, i32 noundef 589) #10
  unreachable

1364:                                             ; preds = %1360
  %1365 = load i32, ptr %53, align 4, !tbaa !5
  %1366 = icmp sgt i32 %1365, 0
  br i1 %1366, label %1367, label %1372

1367:                                             ; preds = %1364
  %1368 = load i32, ptr %54, align 4, !tbaa !5
  %1369 = load i32, ptr %55, align 4, !tbaa !5
  %1370 = icmp ne i32 %1368, %1369
  br i1 %1370, label %1371, label %1372

1371:                                             ; preds = %1367
  call void @_test_failed(ptr noundef @.str, i32 noundef 590) #10
  unreachable

1372:                                             ; preds = %1367, %1364
  %1373 = getelementptr inbounds [10 x ptr], ptr %14, i64 0, i64 0
  %1374 = load ptr, ptr %1373, align 16, !tbaa !9
  %1375 = ptrtoint ptr %21 to i64
  %1376 = ptrtoint ptr %21 to i64
  %1377 = sub i64 %1375, %1376
  %1378 = sdiv exact i64 %1377, 4
  %1379 = getelementptr inbounds i32, ptr %21, i64 %1378
  %1380 = call i32 (ptr, i32, ...) @opus_decoder_ctl(ptr noundef %1374, i32 noundef 4031, ptr noundef %1379)
  %1381 = call i32 @fast_rand()
  %1382 = urem i32 %1381, 9
  %1383 = add i32 %1382, 1
  store i32 %1383, ptr %52, align 4, !tbaa !5
  %1384 = load i32, ptr %52, align 4, !tbaa !5
  %1385 = sext i32 %1384 to i64
  %1386 = getelementptr inbounds [10 x ptr], ptr %14, i64 0, i64 %1385
  %1387 = load ptr, ptr %1386, align 8, !tbaa !9
  %1388 = load i32, ptr %53, align 4, !tbaa !5
  %1389 = icmp sgt i32 %1388, 0
  br i1 %1389, label %1390, label %1392

1390:                                             ; preds = %1372
  %1391 = getelementptr inbounds [1757 x i8], ptr %19, i64 0, i64 0
  br label %1393

1392:                                             ; preds = %1372
  br label %1393

1393:                                             ; preds = %1392, %1390
  %1394 = phi ptr [ %1391, %1390 ], [ null, %1392 ]
  %1395 = load i32, ptr %53, align 4, !tbaa !5
  %1396 = load ptr, ptr %17, align 8, !tbaa !9
  %1397 = call i32 @opus_decode(ptr noundef %1387, ptr noundef %1394, i32 noundef %1395, ptr noundef %1396, i32 noundef 5760, i32 noundef 0)
  store i32 %1397, ptr %54, align 4, !tbaa !5
  %1398 = load i32, ptr %54, align 4, !tbaa !5
  %1399 = icmp slt i32 %1398, 0
  br i1 %1399, label %1403, label %1400

1400:                                             ; preds = %1393
  %1401 = load i32, ptr %54, align 4, !tbaa !5
  %1402 = icmp sgt i32 %1401, 5760
  br i1 %1402, label %1403, label %1404

1403:                                             ; preds = %1400, %1393
  call void @_test_failed(ptr noundef @.str, i32 noundef 597) #10
  unreachable

1404:                                             ; preds = %1400
  %1405 = load i32, ptr %52, align 4, !tbaa !5
  %1406 = sext i32 %1405 to i64
  %1407 = getelementptr inbounds [10 x ptr], ptr %14, i64 0, i64 %1406
  %1408 = load ptr, ptr %1407, align 8, !tbaa !9
  %1409 = ptrtoint ptr %50 to i64
  %1410 = ptrtoint ptr %50 to i64
  %1411 = sub i64 %1409, %1410
  %1412 = sdiv exact i64 %1411, 4
  %1413 = getelementptr inbounds i32, ptr %50, i64 %1412
  %1414 = call i32 (ptr, i32, ...) @opus_decoder_ctl(ptr noundef %1408, i32 noundef 4031, ptr noundef %1413)
  %1415 = load i32, ptr %53, align 4, !tbaa !5
  %1416 = icmp sgt i32 %1415, 0
  br i1 %1416, label %1417, label %1422

1417:                                             ; preds = %1404
  %1418 = load i32, ptr %21, align 4, !tbaa !5
  %1419 = load i32, ptr %50, align 4, !tbaa !5
  %1420 = icmp ne i32 %1418, %1419
  br i1 %1420, label %1421, label %1422

1421:                                             ; preds = %1417
  call void @_test_failed(ptr noundef @.str, i32 noundef 600) #10
  unreachable

1422:                                             ; preds = %1417, %1404
  %1423 = load i32, ptr %22, align 4, !tbaa !5
  %1424 = add nsw i32 %1423, -1
  store i32 %1424, ptr %22, align 4, !tbaa !5
  %1425 = load i32, ptr %22, align 4, !tbaa !5
  %1426 = icmp slt i32 %1425, 1
  br i1 %1426, label %1427, label %1457

1427:                                             ; preds = %1422
  call void @llvm.lifetime.start.p0(i64 4, ptr %57) #9
  %1428 = load i32, ptr %23, align 4, !tbaa !5
  %1429 = add nsw i32 %1428, 1
  %1430 = srem i32 %1429, 36
  store i32 %1430, ptr %23, align 4, !tbaa !5
  %1431 = load i32, ptr %23, align 4, !tbaa !5
  %1432 = sext i32 %1431 to i64
  %1433 = getelementptr inbounds [36 x i8], ptr %4, i64 0, i64 %1432
  %1434 = load i8, ptr %1433, align 1, !tbaa !20
  %1435 = zext i8 %1434 to i64
  %1436 = getelementptr inbounds [6 x i32], ptr @run_test1.fsizes, i64 0, i64 %1435
  %1437 = load i32, ptr %1436, align 4, !tbaa !5
  store i32 %1437, ptr %57, align 4, !tbaa !5
  %1438 = load i32, ptr %57, align 4, !tbaa !5
  %1439 = icmp eq i32 %1438, 960
  br i1 %1439, label %1443, label %1440

1440:                                             ; preds = %1427
  %1441 = load i32, ptr %57, align 4, !tbaa !5
  %1442 = icmp eq i32 %1441, 480
  br i1 %1442, label %1443, label %1450

1443:                                             ; preds = %1440, %1427
  %1444 = load i32, ptr %57, align 4, !tbaa !5
  %1445 = sdiv i32 2880, %1444
  %1446 = call i32 @fast_rand()
  %1447 = urem i32 %1446, 19
  %1448 = add i32 %1447, 1
  %1449 = mul i32 %1445, %1448
  store i32 %1449, ptr %22, align 4, !tbaa !5
  br label %1456

1450:                                             ; preds = %1440
  %1451 = call i32 @fast_rand()
  %1452 = load i32, ptr %57, align 4, !tbaa !5
  %1453 = sdiv i32 2880, %1452
  %1454 = urem i32 %1451, %1453
  %1455 = add i32 %1454, 1
  store i32 %1455, ptr %22, align 4, !tbaa !5
  br label %1456

1456:                                             ; preds = %1450, %1443
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #9
  br label %1457

1457:                                             ; preds = %1456, %1422
  %1458 = call i32 @fast_rand()
  %1459 = urem i32 %1458, 508000
  %1460 = add i32 %1459, 4000
  %1461 = load i32, ptr %18, align 4, !tbaa !5
  %1462 = add i32 %1460, %1461
  %1463 = lshr i32 %1462, 1
  store i32 %1463, ptr %18, align 4, !tbaa !5
  %1464 = load i32, ptr %55, align 4, !tbaa !5
  %1465 = load i32, ptr %5, align 4, !tbaa !5
  %1466 = add nsw i32 %1465, %1464
  store i32 %1466, ptr %5, align 4, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #9
  call void @llvm.lifetime.end.p0(i64 96, ptr %48) #9
  call void @llvm.lifetime.end.p0(i64 384, ptr %47) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %46) #9
  br label %1467

1467:                                             ; preds = %1457
  %1468 = load i32, ptr %5, align 4, !tbaa !5
  %1469 = icmp slt i32 %1468, 5760000
  br i1 %1469, label %1224, label %1470, !llvm.loop !23

1470:                                             ; preds = %1467
  %1471 = load ptr, ptr @stdout, align 8, !tbaa !9
  %1472 = load i32, ptr %24, align 4, !tbaa !5
  %1473 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1471, ptr noundef @.str.16, i32 noundef %1472) #9
  %1474 = load ptr, ptr %9, align 8, !tbaa !9
  %1475 = call i32 (ptr, i32, ...) @opus_encoder_ctl(ptr noundef %1474, i32 noundef 4028)
  %1476 = icmp ne i32 %1475, 0
  br i1 %1476, label %1477, label %1478

1477:                                             ; preds = %1470
  call void @_test_failed(ptr noundef @.str, i32 noundef 616) #10
  unreachable

1478:                                             ; preds = %1470
  %1479 = load ptr, ptr %9, align 8, !tbaa !9
  call void @opus_encoder_destroy(ptr noundef %1479)
  %1480 = load ptr, ptr %10, align 8, !tbaa !9
  %1481 = call i32 (ptr, i32, ...) @opus_multistream_encoder_ctl(ptr noundef %1480, i32 noundef 4028)
  %1482 = icmp ne i32 %1481, 0
  br i1 %1482, label %1483, label %1484

1483:                                             ; preds = %1478
  call void @_test_failed(ptr noundef @.str, i32 noundef 618) #10
  unreachable

1484:                                             ; preds = %1478
  %1485 = load ptr, ptr %10, align 8, !tbaa !9
  call void @opus_multistream_encoder_destroy(ptr noundef %1485)
  %1486 = load ptr, ptr %11, align 8, !tbaa !9
  %1487 = call i32 (ptr, i32, ...) @opus_decoder_ctl(ptr noundef %1486, i32 noundef 4028)
  %1488 = icmp ne i32 %1487, 0
  br i1 %1488, label %1489, label %1490

1489:                                             ; preds = %1484
  call void @_test_failed(ptr noundef @.str, i32 noundef 620) #10
  unreachable

1490:                                             ; preds = %1484
  %1491 = load ptr, ptr %11, align 8, !tbaa !9
  call void @opus_decoder_destroy(ptr noundef %1491)
  %1492 = load ptr, ptr %12, align 8, !tbaa !9
  %1493 = call i32 (ptr, i32, ...) @opus_multistream_decoder_ctl(ptr noundef %1492, i32 noundef 4028)
  %1494 = icmp ne i32 %1493, 0
  br i1 %1494, label %1495, label %1496

1495:                                             ; preds = %1490
  call void @_test_failed(ptr noundef @.str, i32 noundef 622) #10
  unreachable

1496:                                             ; preds = %1490
  %1497 = load ptr, ptr %12, align 8, !tbaa !9
  call void @opus_multistream_decoder_destroy(ptr noundef %1497)
  %1498 = load ptr, ptr %13, align 8, !tbaa !9
  call void @opus_multistream_decoder_destroy(ptr noundef %1498)
  store i32 0, ptr %5, align 4, !tbaa !5
  br label %1499

1499:                                             ; preds = %1507, %1496
  %1500 = load i32, ptr %5, align 4, !tbaa !5
  %1501 = icmp slt i32 %1500, 10
  br i1 %1501, label %1502, label %1510

1502:                                             ; preds = %1499
  %1503 = load i32, ptr %5, align 4, !tbaa !5
  %1504 = sext i32 %1503 to i64
  %1505 = getelementptr inbounds [10 x ptr], ptr %14, i64 0, i64 %1504
  %1506 = load ptr, ptr %1505, align 8, !tbaa !9
  call void @opus_decoder_destroy(ptr noundef %1506)
  br label %1507

1507:                                             ; preds = %1502
  %1508 = load i32, ptr %5, align 4, !tbaa !5
  %1509 = add nsw i32 %1508, 1
  store i32 %1509, ptr %5, align 4, !tbaa !5
  br label %1499, !llvm.loop !24

1510:                                             ; preds = %1499
  %1511 = load ptr, ptr %15, align 8, !tbaa !9
  call void @free(ptr noundef %1511) #9
  %1512 = load ptr, ptr %16, align 8, !tbaa !9
  call void @free(ptr noundef %1512) #9
  %1513 = load ptr, ptr %17, align 8, !tbaa !9
  call void @free(ptr noundef %1513) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #9
  call void @llvm.lifetime.end.p0(i64 1757, ptr %19) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #9
  call void @llvm.lifetime.end.p0(i64 80, ptr %14) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %5) #9
  call void @llvm.lifetime.end.p0(i64 36, ptr %4) #9
  call void @llvm.lifetime.end.p0(i64 256, ptr %3) #9
  ret i32 0
}

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

declare ptr @opus_multistream_encoder_create(i32 noundef, i32 noundef, i32 noundef, i32 noundef, ptr noundef, i32 noundef, ptr noundef) #5

declare i32 @opus_multistream_encoder_ctl(ptr noundef, i32 noundef, ...) #5

declare ptr @opus_multistream_decoder_create(i32 noundef, i32 noundef, i32 noundef, i32 noundef, ptr noundef, ptr noundef) #5

declare i32 @opus_decoder_get_size(i32 noundef) #5

declare i32 @opus_encoder_get_size(i32 noundef) #5

declare i32 @opus_decoder_ctl(ptr noundef, i32 noundef, ...) #5

declare i32 @opus_packet_pad(ptr noundef, i32 noundef, i32 noundef) #5

declare i32 @opus_packet_unpad(ptr noundef, i32 noundef) #5

declare i32 @opus_multistream_decoder_ctl(ptr noundef, i32 noundef, ...) #5

declare i32 @opus_multistream_encode(ptr noundef, ptr noundef, i32 noundef, ptr noundef, i32 noundef) #5

declare i32 @opus_multistream_packet_pad(ptr noundef, i32 noundef, i32 noundef, i32 noundef) #5

declare i32 @opus_multistream_packet_unpad(ptr noundef, i32 noundef, i32 noundef) #5

declare i32 @opus_multistream_decode(ptr noundef, ptr noundef, i32 noundef, ptr noundef, i32 noundef, i32 noundef) #5

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

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

declare void @opus_multistream_encoder_destroy(ptr noundef) #5

declare void @opus_multistream_decoder_destroy(ptr noundef) #5

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

!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 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = distinct !{!11, !12}
!12 = !{!"llvm.loop.mustprogress"}
!13 = distinct !{!13, !12}
!14 = distinct !{!14, !12}
!15 = distinct !{!15, !12}
!16 = distinct !{!16, !12}
!17 = distinct !{!17, !12}
!18 = distinct !{!18, !12}
!19 = distinct !{!19, !12}
!20 = !{!7, !7, i64 0}
!21 = distinct !{!21, !12}
!22 = distinct !{!22, !12}
!23 = distinct !{!23, !12}
!24 = distinct !{!24, !12}


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

@.str = external hidden unnamed_addr constant [93 x i8], align 1
@run_test1.fsizes = external hidden local_unnamed_addr constant [6 x i32], align 16
@run_test1.mstrings = external hidden local_unnamed_addr global [3 x ptr], align 16
@stdout = external local_unnamed_addr global ptr, align 8
@.str.7 = external hidden unnamed_addr constant [24 x i8], align 1
@__const.run_test1.modes = external hidden unnamed_addr constant [13 x i32], align 16
@__const.run_test1.rates = external hidden unnamed_addr constant [13 x i32], align 16
@__const.run_test1.frame = external hidden unnamed_addr constant [13 x i32], align 16
@.str.8 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [5 x i8], align 1
@__const.run_test1.modes.12 = external hidden unnamed_addr constant [16 x i32], align 16
@__const.run_test1.rates.13 = external hidden unnamed_addr constant [16 x i32], align 16
@__const.run_test1.frame.14 = external hidden unnamed_addr constant [16 x i32], align 16
@.str.15 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [57 x i8], align 1

; Function Attrs: nounwind uwtable
declare dso_local void @generate_music(ptr noundef, i32 noundef) local_unnamed_addr #0

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

; Function Attrs: inlinehint nounwind uwtable
declare hidden i32 @fast_rand() 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) #1

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

; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite)
declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #4

declare i32 @opus_encode(ptr noundef, ptr noundef, i32 noundef, ptr noundef, i32 noundef) local_unnamed_addr #5

; Function Attrs: nofree nounwind
declare noundef i32 @fprintf(ptr nocapture noundef, ptr nocapture noundef readonly, ...) local_unnamed_addr #6

declare i32 @opus_decode(ptr noundef, ptr noundef, i32 noundef, ptr noundef, i32 noundef, i32 noundef) local_unnamed_addr #5

; Function Attrs: mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite)
declare void @free(ptr allocptr nocapture noundef) local_unnamed_addr #7

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

declare ptr @opus_decoder_create(i32 noundef, i32 noundef, ptr noundef) local_unnamed_addr #5

declare ptr @opus_encoder_create(i32 noundef, i32 noundef, i32 noundef, ptr noundef) local_unnamed_addr #5

declare i32 @opus_encoder_ctl(ptr noundef, i32 noundef, ...) local_unnamed_addr #5

declare void @opus_encoder_destroy(ptr noundef) local_unnamed_addr #5

declare void @opus_decoder_destroy(ptr noundef) local_unnamed_addr #5

; Function Attrs: nounwind uwtable
define dso_local noundef i32 @run_test1(i32 noundef %0) local_unnamed_addr #0 {
  %2 = alloca [256 x i8], align 16
  %3 = alloca [36 x i8], align 16
  %4 = alloca i32, align 4
  %5 = alloca i32, align 4
  %6 = alloca i32, align 4
  %7 = alloca [10 x ptr], align 16
  %8 = alloca [1757 x i8], align 16
  %9 = alloca i32, align 4
  %10 = alloca i32, align 4
  %11 = alloca ptr, align 8
  %12 = alloca i32, align 4
  %13 = alloca i8, align 1
  %14 = alloca [48 x ptr], align 16
  %15 = alloca [48 x i16], align 16
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  call void @llvm.lifetime.start.p0(i64 256, ptr nonnull %2) #10
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(256) %2, i8 0, i64 256, i1 false)
  %18 = getelementptr inbounds i8, ptr %2, i64 1
  store i8 1, ptr %18, align 1
  %19 = getelementptr inbounds i8, ptr %2, i64 2
  store i8 -1, ptr %19, align 2
  call void @llvm.lifetime.start.p0(i64 36, ptr nonnull %3) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %4) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %5) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %6) #10
  call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %7) #10
  call void @llvm.lifetime.start.p0(i64 1757, ptr nonnull %8) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %9) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %10) #10
  %20 = load ptr, ptr @stdout, align 8, !tbaa !5
  %21 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20, ptr noundef nonnull @.str.7) #10
  %22 = call ptr @opus_encoder_create(i32 noundef 48000, i32 noundef 2, i32 noundef 2048, ptr noundef nonnull %6) #10
  %23 = load i32, ptr %6, align 4, !tbaa !9
  %24 = icmp ne i32 %23, 0
  %25 = icmp eq ptr %22, null
  %or.cond = select i1 %24, i1 true, i1 %25
  br i1 %or.cond, label %26, label %.preheader437

.preheader437:                                    ; preds = %1
  store i32 0, ptr %4, align 4, !tbaa !9
  br label %27

26:                                               ; preds = %1
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 302) #11
  unreachable

27:                                               ; preds = %.preheader437, %75
  %storemerge445 = phi i32 [ 0, %.preheader437 ], [ %77, %75 ]
  %.not423 = icmp eq i32 %storemerge445, 0
  %. = select i1 %.not423, ptr %6, ptr null
  %28 = call ptr @opus_multistream_encoder_create(i32 noundef 8000, i32 noundef 2, i32 noundef 2, i32 noundef 0, ptr noundef nonnull %2, i32 noundef -5, ptr noundef %.) #10
  br i1 %.not423, label %29, label %33

29:                                               ; preds = %27
  %30 = load i32, ptr %6, align 4, !tbaa !9
  %31 = icmp ne i32 %30, -1
  %32 = icmp ne ptr %28, null
  %or.cond3 = select i1 %31, i1 true, i1 %32
  br i1 %or.cond3, label %34, label %35

33:                                               ; preds = %27
  %.old2.not = icmp eq ptr %28, null
  br i1 %.old2.not, label %40, label %34

34:                                               ; preds = %33, %29
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 309) #11
  unreachable

35:                                               ; preds = %29
  %36 = call ptr @opus_multistream_encoder_create(i32 noundef 8000, i32 noundef 0, i32 noundef 1, i32 noundef 0, ptr noundef nonnull %2, i32 noundef 2048, ptr noundef nonnull %6) #10
  %37 = load i32, ptr %6, align 4, !tbaa !9
  %38 = icmp ne i32 %37, -1
  %39 = icmp ne ptr %36, null
  %or.cond6 = select i1 %38, i1 true, i1 %39
  br i1 %or.cond6, label %42, label %43

40:                                               ; preds = %33
  %41 = call ptr @opus_multistream_encoder_create(i32 noundef 8000, i32 noundef 0, i32 noundef 1, i32 noundef 0, ptr noundef nonnull %2, i32 noundef 2048, ptr noundef null) #10
  %.old5.not = icmp eq ptr %41, null
  br i1 %.old5.not, label %48, label %42

42:                                               ; preds = %40, %35
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 312) #11
  unreachable

43:                                               ; preds = %35
  %44 = call ptr @opus_multistream_encoder_create(i32 noundef 44100, i32 noundef 2, i32 noundef 2, i32 noundef 0, ptr noundef nonnull %2, i32 noundef 2048, ptr noundef nonnull %6) #10
  %45 = load i32, ptr %6, align 4, !tbaa !9
  %46 = icmp ne i32 %45, -1
  %47 = icmp ne ptr %44, null
  %or.cond9 = select i1 %46, i1 true, i1 %47
  br i1 %or.cond9, label %50, label %51

48:                                               ; preds = %40
  %49 = call ptr @opus_multistream_encoder_create(i32 noundef 44100, i32 noundef 2, i32 noundef 2, i32 noundef 0, ptr noundef nonnull %2, i32 noundef 2048, ptr noundef null) #10
  %.old8.not = icmp eq ptr %49, null
  br i1 %.old8.not, label %56, label %50

50:                                               ; preds = %48, %43
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 315) #11
  unreachable

51:                                               ; preds = %43
  %52 = call ptr @opus_multistream_encoder_create(i32 noundef 8000, i32 noundef 2, i32 noundef 2, i32 noundef 3, ptr noundef nonnull %2, i32 noundef 2048, ptr noundef nonnull %6) #10
  %53 = load i32, ptr %6, align 4, !tbaa !9
  %54 = icmp ne i32 %53, -1
  %55 = icmp ne ptr %52, null
  %or.cond12 = select i1 %54, i1 true, i1 %55
  br i1 %or.cond12, label %58, label %59

56:                                               ; preds = %48
  %57 = call ptr @opus_multistream_encoder_create(i32 noundef 8000, i32 noundef 2, i32 noundef 2, i32 noundef 3, ptr noundef nonnull %2, i32 noundef 2048, ptr noundef null) #10
  %.old11.not = icmp eq ptr %57, null
  br i1 %.old11.not, label %64, label %58

58:                                               ; preds = %56, %51
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 318) #11
  unreachable

59:                                               ; preds = %51
  %60 = call ptr @opus_multistream_encoder_create(i32 noundef 8000, i32 noundef 2, i32 noundef -1, i32 noundef 0, ptr noundef nonnull %2, i32 noundef 2048, ptr noundef nonnull %6) #10
  %61 = load i32, ptr %6, align 4, !tbaa !9
  %62 = icmp ne i32 %61, -1
  %63 = icmp ne ptr %60, null
  %or.cond15 = select i1 %62, i1 true, i1 %63
  br i1 %or.cond15, label %66, label %67

64:                                               ; preds = %56
  %65 = call ptr @opus_multistream_encoder_create(i32 noundef 8000, i32 noundef 2, i32 noundef -1, i32 noundef 0, ptr noundef nonnull %2, i32 noundef 2048, ptr noundef null) #10
  %.old14.not = icmp eq ptr %65, null
  br i1 %.old14.not, label %72, label %66

66:                                               ; preds = %64, %59
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 321) #11
  unreachable

67:                                               ; preds = %59
  %68 = call ptr @opus_multistream_encoder_create(i32 noundef 8000, i32 noundef 256, i32 noundef 2, i32 noundef 0, ptr noundef nonnull %2, i32 noundef 2048, ptr noundef nonnull %6) #10
  %69 = load i32, ptr %6, align 4, !tbaa !9
  %70 = icmp ne i32 %69, -1
  %71 = icmp ne ptr %68, null
  %or.cond18 = select i1 %70, i1 true, i1 %71
  br i1 %or.cond18, label %74, label %75

72:                                               ; preds = %64
  %73 = call ptr @opus_multistream_encoder_create(i32 noundef 8000, i32 noundef 256, i32 noundef 2, i32 noundef 0, ptr noundef nonnull %2, i32 noundef 2048, ptr noundef null) #10
  %.old17.not = icmp eq ptr %73, null
  br i1 %.old17.not, label %75, label %74

74:                                               ; preds = %72, %67
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 324) #11
  unreachable

75:                                               ; preds = %67, %72
  %76 = load i32, ptr %4, align 4, !tbaa !9
  %77 = add nsw i32 %76, 1
  store i32 %77, ptr %4, align 4, !tbaa !9
  %78 = icmp slt i32 %76, 1
  br i1 %78, label %27, label %79, !llvm.loop !11

79:                                               ; preds = %75
  %80 = call ptr @opus_multistream_encoder_create(i32 noundef 8000, i32 noundef 2, i32 noundef 2, i32 noundef 0, ptr noundef nonnull %2, i32 noundef 2049, ptr noundef nonnull %6) #10
  %81 = load i32, ptr %6, align 4, !tbaa !9
  %82 = icmp ne i32 %81, 0
  %83 = icmp eq ptr %80, null
  %or.cond21 = select i1 %82, i1 true, i1 %83
  br i1 %or.cond21, label %84, label %85

84:                                               ; preds = %79
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 328) #11
  unreachable

85:                                               ; preds = %79
  %86 = call i32 (ptr, i32, ...) @opus_multistream_encoder_ctl(ptr noundef nonnull %80, i32 noundef 4003, ptr noundef nonnull %4) #10
  %.not = icmp eq i32 %86, 0
  br i1 %.not, label %88, label %87

87:                                               ; preds = %85
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 331) #11
  unreachable

88:                                               ; preds = %85
  %89 = call i32 (ptr, i32, ...) @opus_multistream_encoder_ctl(ptr noundef nonnull %80, i32 noundef 4037, ptr noundef nonnull %4) #10
  %.not347 = icmp eq i32 %89, 0
  br i1 %.not347, label %91, label %90

90:                                               ; preds = %88
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 332) #11
  unreachable

91:                                               ; preds = %88
  %92 = load i32, ptr %4, align 4, !tbaa !9
  %93 = icmp slt i32 %92, 16
  br i1 %93, label %94, label %95

94:                                               ; preds = %91
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 333) #11
  unreachable

95:                                               ; preds = %91
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11) #10
  %96 = call i32 (ptr, i32, ...) @opus_multistream_encoder_ctl(ptr noundef nonnull %80, i32 noundef 5120, i32 noundef 1, ptr noundef nonnull %11) #10
  %.not348 = icmp eq i32 %96, 0
  br i1 %.not348, label %98, label %97

97:                                               ; preds = %95
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 337) #11
  unreachable

98:                                               ; preds = %95
  %99 = load ptr, ptr %11, align 8, !tbaa !5
  %100 = call i32 (ptr, i32, ...) @opus_encoder_ctl(ptr noundef %99, i32 noundef 4037, ptr noundef nonnull %5) #10
  %.not349 = icmp eq i32 %100, 0
  br i1 %.not349, label %102, label %101

101:                                              ; preds = %98
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 338) #11
  unreachable

102:                                              ; preds = %98
  %103 = load i32, ptr %4, align 4, !tbaa !9
  %104 = load i32, ptr %5, align 4, !tbaa !9
  %.not350 = icmp eq i32 %103, %104
  br i1 %.not350, label %106, label %105

105:                                              ; preds = %102
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 339) #11
  unreachable

106:                                              ; preds = %102
  %107 = call i32 (ptr, i32, ...) @opus_multistream_encoder_ctl(ptr noundef nonnull %80, i32 noundef 5120, i32 noundef 2, ptr noundef nonnull %11) #10
  %.not351 = icmp eq i32 %107, -1
  br i1 %.not351, label %109, label %108

108:                                              ; preds = %106
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 340) #11
  unreachable

109:                                              ; preds = %106
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #10
  %110 = call ptr @opus_decoder_create(i32 noundef 48000, i32 noundef 2, ptr noundef nonnull %6) #10
  %111 = load i32, ptr %6, align 4, !tbaa !9
  %112 = icmp ne i32 %111, 0
  %113 = icmp eq ptr %110, null
  %or.cond24 = select i1 %112, i1 true, i1 %113
  br i1 %or.cond24, label %114, label %115

114:                                              ; preds = %109
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 344) #11
  unreachable

115:                                              ; preds = %109
  %116 = call ptr @opus_multistream_decoder_create(i32 noundef 48000, i32 noundef 2, i32 noundef 2, i32 noundef 0, ptr noundef nonnull %2, ptr noundef nonnull %6) #10
  %117 = load i32, ptr %6, align 4, !tbaa !9
  %118 = icmp ne i32 %117, 0
  %119 = icmp eq ptr %116, null
  %or.cond27 = select i1 %118, i1 true, i1 %119
  br i1 %or.cond27, label %120, label %121

120:                                              ; preds = %115
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 347) #11
  unreachable

121:                                              ; preds = %115
  %122 = call ptr @opus_multistream_decoder_create(i32 noundef 48000, i32 noundef 3, i32 noundef 2, i32 noundef 0, ptr noundef nonnull %2, ptr noundef nonnull %6) #10
  %123 = load i32, ptr %6, align 4, !tbaa !9
  %124 = icmp ne i32 %123, 0
  %125 = icmp eq ptr %122, null
  %or.cond30 = select i1 %124, i1 true, i1 %125
  br i1 %or.cond30, label %126, label %127

126:                                              ; preds = %121
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 350) #11
  unreachable

127:                                              ; preds = %121
  %128 = call i32 @opus_decoder_get_size(i32 noundef 2) #10
  %129 = sext i32 %128 to i64
  %130 = call noalias ptr @malloc(i64 noundef %129) #12
  store ptr %130, ptr %7, align 16, !tbaa !5
  %131 = call i32 @opus_decoder_get_size(i32 noundef 2) #10
  %132 = sext i32 %131 to i64
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %130, ptr nonnull align 1 %110, i64 %132, i1 false)
  %133 = call ptr @opus_decoder_create(i32 noundef 48000, i32 noundef 1, ptr noundef nonnull %6) #10
  %134 = getelementptr inbounds i8, ptr %7, i64 8
  store ptr %133, ptr %134, align 8, !tbaa !5
  %135 = call ptr @opus_decoder_create(i32 noundef 24000, i32 noundef 2, ptr noundef nonnull %6) #10
  %136 = getelementptr inbounds i8, ptr %7, i64 16
  store ptr %135, ptr %136, align 16, !tbaa !5
  %137 = call ptr @opus_decoder_create(i32 noundef 24000, i32 noundef 1, ptr noundef nonnull %6) #10
  %138 = getelementptr inbounds i8, ptr %7, i64 24
  store ptr %137, ptr %138, align 8, !tbaa !5
  %139 = call ptr @opus_decoder_create(i32 noundef 16000, i32 noundef 2, ptr noundef nonnull %6) #10
  %140 = getelementptr inbounds i8, ptr %7, i64 32
  store ptr %139, ptr %140, align 16, !tbaa !5
  %141 = call ptr @opus_decoder_create(i32 noundef 16000, i32 noundef 1, ptr noundef nonnull %6) #10
  %142 = getelementptr inbounds i8, ptr %7, i64 40
  store ptr %141, ptr %142, align 8, !tbaa !5
  %143 = call ptr @opus_decoder_create(i32 noundef 12000, i32 noundef 2, ptr noundef nonnull %6) #10
  %144 = getelementptr inbounds i8, ptr %7, i64 48
  store ptr %143, ptr %144, align 16, !tbaa !5
  %145 = call ptr @opus_decoder_create(i32 noundef 12000, i32 noundef 1, ptr noundef nonnull %6) #10
  %146 = getelementptr inbounds i8, ptr %7, i64 56
  store ptr %145, ptr %146, align 8, !tbaa !5
  %147 = call ptr @opus_decoder_create(i32 noundef 8000, i32 noundef 2, ptr noundef nonnull %6) #10
  %148 = getelementptr inbounds i8, ptr %7, i64 64
  store ptr %147, ptr %148, align 16, !tbaa !5
  %149 = call ptr @opus_decoder_create(i32 noundef 8000, i32 noundef 1, ptr noundef nonnull %6) #10
  %150 = getelementptr inbounds i8, ptr %7, i64 72
  store ptr %149, ptr %150, align 8, !tbaa !5
  %151 = icmp eq ptr %130, null
  br i1 %151, label %152, label %153

152:                                              ; preds = %169, %167, %165, %163, %161, %159, %157, %155, %153, %127
  %storemerge352447.lcssa.wide = phi i32 [ 0, %127 ], [ 1, %153 ], [ 2, %155 ], [ 3, %157 ], [ 4, %159 ], [ 5, %161 ], [ 6, %163 ], [ 7, %165 ], [ 8, %167 ], [ 9, %169 ]
  store i32 %storemerge352447.lcssa.wide, ptr %4, align 4, !tbaa !9
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 363) #11
  unreachable

153:                                              ; preds = %127
  %154 = icmp eq ptr %133, null
  br i1 %154, label %152, label %155

155:                                              ; preds = %153
  %156 = icmp eq ptr %135, null
  br i1 %156, label %152, label %157

157:                                              ; preds = %155
  %158 = icmp eq ptr %137, null
  br i1 %158, label %152, label %159

159:                                              ; preds = %157
  %160 = icmp eq ptr %139, null
  br i1 %160, label %152, label %161

161:                                              ; preds = %159
  %162 = icmp eq ptr %141, null
  br i1 %162, label %152, label %163

163:                                              ; preds = %161
  %164 = icmp eq ptr %143, null
  br i1 %164, label %152, label %165

165:                                              ; preds = %163
  %166 = icmp eq ptr %145, null
  br i1 %166, label %152, label %167

167:                                              ; preds = %165
  %168 = icmp eq ptr %147, null
  br i1 %168, label %152, label %169

169:                                              ; preds = %167
  %170 = icmp eq ptr %149, null
  br i1 %170, label %152, label %171

171:                                              ; preds = %169
  store i32 10, ptr %4, align 4, !tbaa !9
  %172 = call i32 @opus_encoder_get_size(i32 noundef 2) #10
  %173 = sext i32 %172 to i64
  %174 = call noalias ptr @malloc(i64 noundef %173) #12
  %175 = call i32 @opus_encoder_get_size(i32 noundef 2) #10
  %176 = sext i32 %175 to i64
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %174, ptr align 1 %22, i64 %176, i1 false)
  %177 = call i32 @opus_encoder_get_size(i32 noundef 2) #10
  %178 = sext i32 %177 to i64
  call void @llvm.memset.p0.i64(ptr align 1 %22, i8 -1, i64 %178, i1 false)
  call void @opus_encoder_destroy(ptr noundef %22) #10
  %179 = call noalias dereferenceable_or_null(5760000) ptr @malloc(i64 noundef 5760000) #12
  %180 = call noalias dereferenceable_or_null(5760000) ptr @malloc(i64 noundef 5760000) #12
  %181 = call noalias dereferenceable_or_null(34560) ptr @malloc(i64 noundef 34560) #12
  %182 = icmp eq ptr %179, null
  %183 = icmp eq ptr %180, null
  %or.cond33 = or i1 %182, %183
  %184 = icmp eq ptr %181, null
  %or.cond36 = or i1 %or.cond33, %184
  br i1 %or.cond36, label %185, label %186

185:                                              ; preds = %171
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 378) #11
  unreachable

186:                                              ; preds = %171
  call void @generate_music(ptr noundef nonnull %179, i32 noundef 1440000)
  %187 = call i32 (ptr, i32, ...) @opus_encoder_ctl(ptr noundef %174, i32 noundef 4008, i32 noundef -1000) #10
  %.not353 = icmp eq i32 %187, 0
  br i1 %.not353, label %189, label %188

188:                                              ; preds = %186
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 387) #11
  unreachable

189:                                              ; preds = %186
  %190 = call i32 (ptr, i32, ...) @opus_encoder_ctl(ptr noundef %174, i32 noundef 11002, i32 noundef -2) #10
  %.not354 = icmp eq i32 %190, -1
  br i1 %.not354, label %192, label %191

191:                                              ; preds = %189
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 388) #11
  unreachable

192:                                              ; preds = %189
  %193 = call i32 @opus_encode(ptr noundef %174, ptr noundef nonnull %179, i32 noundef 500, ptr noundef nonnull %8, i32 noundef 1500) #10
  %.not355 = icmp eq i32 %193, -1
  br i1 %.not355, label %.preheader436, label %194

194:                                              ; preds = %192
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 389) #11
  unreachable

.preheader436:                                    ; preds = %192, %429
  %.0449 = phi i32 [ %430, %429 ], [ 0, %192 ]
  %195 = icmp ne i32 %.0449, 2
  %196 = zext i1 %195 to i32
  %197 = call i32 (ptr, i32, ...) @opus_encoder_ctl(ptr noundef %174, i32 noundef 4006, i32 noundef %196) #10
  %.not397 = icmp eq i32 %197, 0
  br i1 %.not397, label %199, label %198

198:                                              ; preds = %.preheader436
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 393) #11
  unreachable

199:                                              ; preds = %.preheader436
  %200 = icmp eq i32 %.0449, 1
  %201 = zext i1 %200 to i32
  %202 = call i32 (ptr, i32, ...) @opus_encoder_ctl(ptr noundef %174, i32 noundef 4020, i32 noundef %201) #10
  %.not398 = icmp eq i32 %202, 0
  br i1 %.not398, label %204, label %203

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

204:                                              ; preds = %199
  %205 = call i32 (ptr, i32, ...) @opus_encoder_ctl(ptr noundef %174, i32 noundef 4020, i32 noundef %201) #10
  %.not399 = icmp eq i32 %205, 0
  br i1 %.not399, label %207, label %206

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

207:                                              ; preds = %204
  %208 = icmp eq i32 %.0449, 0
  %209 = zext i1 %208 to i32
  %210 = call i32 (ptr, i32, ...) @opus_encoder_ctl(ptr noundef %174, i32 noundef 4012, i32 noundef %209) #10
  %.not400 = icmp eq i32 %210, 0
  br i1 %.not400, label %.preheader435, label %212

.preheader435:                                    ; preds = %207
  store i32 0, ptr %5, align 4, !tbaa !9
  %211 = select i1 %200, ptr @.str.10, ptr @.str.11
  %spec.select424 = select i1 %208, ptr @.str.9, ptr %211
  br label %213

212:                                              ; preds = %207
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 396) #11
  unreachable

213:                                              ; preds = %.preheader435, %416
  %storemerge401448 = phi i32 [ 0, %.preheader435 ], [ %427, %416 ]
  %214 = sext i32 %storemerge401448 to i64
  %215 = getelementptr inbounds [13 x i32], ptr @__const.run_test1.rates, i64 0, i64 %214
  %216 = load i32, ptr %215, align 4, !tbaa !9
  %217 = call i32 @fast_rand()
  %218 = load i32, ptr %5, align 4, !tbaa !9
  %219 = sext i32 %218 to i64
  %220 = getelementptr inbounds [13 x i32], ptr @__const.run_test1.rates, i64 0, i64 %219
  %221 = load i32, ptr %220, align 4, !tbaa !9
  %222 = urem i32 %217, %221
  %223 = add i32 %222, %216
  store i32 0, ptr %4, align 4, !tbaa !9
  br label %224

224:                                              ; preds = %411, %213
  %.0316 = phi i32 [ 0, %213 ], [ %414, %411 ]
  %225 = load i32, ptr %5, align 4, !tbaa !9
  %226 = sext i32 %225 to i64
  %227 = getelementptr inbounds [13 x i32], ptr @__const.run_test1.frame, i64 0, i64 %226
  %228 = load i32, ptr %227, align 4, !tbaa !9
  %229 = call i32 @fast_rand()
  %230 = and i32 %229, 255
  %231 = icmp eq i32 %230, 0
  br i1 %231, label %232, label %249

232:                                              ; preds = %224
  %233 = call i32 (ptr, i32, ...) @opus_encoder_ctl(ptr noundef %174, i32 noundef 4028) #10
  %.not402 = icmp eq i32 %233, 0
  br i1 %.not402, label %235, label %234

234:                                              ; preds = %232
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 410) #11
  unreachable

235:                                              ; preds = %232
  %236 = call i32 (ptr, i32, ...) @opus_decoder_ctl(ptr noundef %110, i32 noundef 4028) #10
  %.not403 = icmp eq i32 %236, 0
  br i1 %.not403, label %238, label %237

237:                                              ; preds = %235
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 411) #11
  unreachable

238:                                              ; preds = %235
  %239 = call i32 @fast_rand()
  %240 = and i32 %239, 1
  %.not404 = icmp eq i32 %240, 0
  br i1 %.not404, label %249, label %241

241:                                              ; preds = %238
  %242 = call i32 @fast_rand()
  %243 = and i32 %242, 1
  %244 = zext nneg i32 %243 to i64
  %245 = getelementptr inbounds [10 x ptr], ptr %7, i64 0, i64 %244
  %246 = load ptr, ptr %245, align 8, !tbaa !5
  %247 = call i32 (ptr, i32, ...) @opus_decoder_ctl(ptr noundef %246, i32 noundef 4028) #10
  %.not405 = icmp eq i32 %247, 0
  br i1 %.not405, label %249, label %248

248:                                              ; preds = %241
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 414) #11
  unreachable

249:                                              ; preds = %238, %241, %224
  %250 = call i32 @fast_rand()
  %251 = and i32 %250, 127
  %252 = icmp eq i32 %251, 0
  br i1 %252, label %253, label %261

253:                                              ; preds = %249
  %254 = call i32 @fast_rand()
  %255 = and i32 %254, 1
  %256 = zext nneg i32 %255 to i64
  %257 = getelementptr inbounds [10 x ptr], ptr %7, i64 0, i64 %256
  %258 = load ptr, ptr %257, align 8, !tbaa !5
  %259 = call i32 (ptr, i32, ...) @opus_decoder_ctl(ptr noundef %258, i32 noundef 4028) #10
  %.not406 = icmp eq i32 %259, 0
  br i1 %.not406, label %261, label %260

260:                                              ; preds = %253
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 419) #11
  unreachable

261:                                              ; preds = %253, %249
  %262 = call i32 @fast_rand()
  %263 = urem i32 %262, 10
  %264 = icmp eq i32 %263, 0
  br i1 %264, label %265, label %270

265:                                              ; preds = %261
  %266 = call i32 @fast_rand()
  %267 = urem i32 %266, 11
  %268 = call i32 (ptr, i32, ...) @opus_encoder_ctl(ptr noundef %174, i32 noundef 4010, i32 noundef %267) #10
  %.not407 = icmp eq i32 %268, 0
  br i1 %.not407, label %270, label %269

269:                                              ; preds = %265
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 423) #11
  unreachable

270:                                              ; preds = %265, %261
  %271 = call i32 @fast_rand()
  %272 = urem i32 %271, 50
  %273 = icmp eq i32 %272, 0
  br i1 %273, label %274, label %276

274:                                              ; preds = %270
  %275 = call i32 (ptr, i32, ...) @opus_decoder_ctl(ptr noundef %110, i32 noundef 4028) #10
  br label %276

276:                                              ; preds = %274, %270
  %277 = call i32 (ptr, i32, ...) @opus_encoder_ctl(ptr noundef %174, i32 noundef 4012, i32 noundef %209) #10
  %.not408 = icmp eq i32 %277, 0
  br i1 %.not408, label %279, label %278

278:                                              ; preds = %276
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 426) #11
  unreachable

279:                                              ; preds = %276
  %280 = load i32, ptr %5, align 4, !tbaa !9
  %281 = sext i32 %280 to i64
  %282 = getelementptr inbounds [13 x i32], ptr @__const.run_test1.modes, i64 0, i64 %281
  %283 = load i32, ptr %282, align 4, !tbaa !9
  %284 = add nsw i32 %283, 1000
  %285 = call i32 (ptr, i32, ...) @opus_encoder_ctl(ptr noundef %174, i32 noundef 11002, i32 noundef %284) #10
  %.not409 = icmp eq i32 %285, 0
  br i1 %.not409, label %287, label %286

286:                                              ; preds = %279
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 427) #11
  unreachable

287:                                              ; preds = %279
  %288 = call i32 @fast_rand()
  %289 = call i32 @fast_rand()
  %290 = and i32 %289, 1
  %291 = call i32 (ptr, i32, ...) @opus_encoder_ctl(ptr noundef %174, i32 noundef 4016, i32 noundef %290) #10
  %.not410 = icmp eq i32 %291, 0
  br i1 %.not410, label %293, label %292

292:                                              ; preds = %287
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 428) #11
  unreachable

293:                                              ; preds = %287
  %294 = call i32 (ptr, i32, ...) @opus_encoder_ctl(ptr noundef %174, i32 noundef 4002, i32 noundef %223) #10
  %.not411 = icmp eq i32 %294, 0
  br i1 %.not411, label %296, label %295

295:                                              ; preds = %293
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 429) #11
  unreachable

296:                                              ; preds = %293
  %297 = load i32, ptr %5, align 4, !tbaa !9
  %298 = sext i32 %297 to i64
  %299 = getelementptr inbounds [13 x i32], ptr @__const.run_test1.rates, i64 0, i64 %298
  %300 = load i32, ptr %299, align 4, !tbaa !9
  %301 = icmp sgt i32 %300, 63999
  %302 = select i1 %301, i32 2, i32 1
  %303 = call i32 (ptr, i32, ...) @opus_encoder_ctl(ptr noundef %174, i32 noundef 4022, i32 noundef %302) #10
  %.not412 = icmp eq i32 %303, 0
  br i1 %.not412, label %305, label %304

304:                                              ; preds = %296
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 430) #11
  unreachable

305:                                              ; preds = %296
  %306 = lshr i32 %.0316, 2
  %307 = urem i32 %306, 11
  %308 = call i32 (ptr, i32, ...) @opus_encoder_ctl(ptr noundef %174, i32 noundef 4010, i32 noundef %307) #10
  %.not413 = icmp eq i32 %308, 0
  br i1 %.not413, label %310, label %309

309:                                              ; preds = %305
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 431) #11
  unreachable

310:                                              ; preds = %305
  %311 = call i32 @fast_rand()
  %312 = call i32 @fast_rand()
  %313 = call i32 @fast_rand()
  %314 = call i32 @fast_rand()
  %315 = urem i32 %314, 15
  %316 = and i32 %315, %313
  %317 = call i32 (ptr, i32, ...) @opus_encoder_ctl(ptr noundef %174, i32 noundef 4014, i32 noundef %316) #10
  %.not414 = icmp eq i32 %317, 0
  br i1 %.not414, label %319, label %318

318:                                              ; preds = %310
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 432) #11
  unreachable

319:                                              ; preds = %310
  %320 = load i32, ptr %5, align 4, !tbaa !9
  %321 = sext i32 %320 to i64
  %322 = getelementptr inbounds [13 x i32], ptr @__const.run_test1.modes, i64 0, i64 %321
  %323 = load i32, ptr %322, align 4, !tbaa !9
  %324 = call i32 @fast_rand()
  switch i32 %323, label %331 [
    i32 0, label %325
    i32 1, label %328
  ]

325:                                              ; preds = %319
  %326 = urem i32 %324, 3
  %327 = add nuw nsw i32 %326, 1101
  br label %334

328:                                              ; preds = %319
  %329 = and i32 %324, 1
  %330 = or disjoint i32 %329, 1104
  br label %334

331:                                              ; preds = %319
  %332 = urem i32 %324, 5
  %333 = add nuw nsw i32 %332, 1101
  br label %334

334:                                              ; preds = %328, %331, %325
  %335 = phi i32 [ %327, %325 ], [ %330, %328 ], [ %333, %331 ]
  %336 = load i32, ptr %5, align 4, !tbaa !9
  %337 = sext i32 %336 to i64
  %338 = getelementptr inbounds [13 x i32], ptr @__const.run_test1.modes, i64 0, i64 %337
  %339 = load i32, ptr %338, align 4, !tbaa !9
  %340 = icmp eq i32 %339, 2
  %341 = icmp eq i32 %335, 1102
  %or.cond39 = select i1 %340, i1 %341, i1 false
  %spec.select = select i1 %or.cond39, i32 1105, i32 %335
  %342 = call i32 (ptr, i32, ...) @opus_encoder_ctl(ptr noundef %174, i32 noundef 4008, i32 noundef %spec.select) #10
  %.not415 = icmp eq i32 %342, 0
  br i1 %.not415, label %344, label %343

343:                                              ; preds = %334
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 437) #11
  unreachable

344:                                              ; preds = %334
  %345 = load i32, ptr %4, align 4, !tbaa !9
  %346 = shl i32 %345, 1
  %347 = sext i32 %346 to i64
  %348 = getelementptr inbounds i16, ptr %179, i64 %347
  %349 = call i32 @opus_encode(ptr noundef %174, ptr noundef %348, i32 noundef %228, ptr noundef nonnull %8, i32 noundef 1500) #10
  %or.cond42 = icmp ugt i32 %349, 1500
  br i1 %or.cond42, label %350, label %351

350:                                              ; preds = %344
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 439) #11
  unreachable

351:                                              ; preds = %344
  %352 = call i32 (ptr, i32, ...) @opus_encoder_ctl(ptr noundef %174, i32 noundef 4031, ptr noundef nonnull %9) #10
  %.not416 = icmp eq i32 %352, 0
  br i1 %.not416, label %354, label %353

353:                                              ; preds = %351
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 440) #11
  unreachable

354:                                              ; preds = %351
  %355 = call i32 @fast_rand()
  %356 = and i32 %355, 3
  %357 = icmp eq i32 %356, 0
  br i1 %357, label %358, label %362

358:                                              ; preds = %354
  %359 = add nuw nsw i32 %349, 1
  %360 = call i32 @opus_packet_pad(ptr noundef nonnull %8, i32 noundef %349, i32 noundef %359) #10
  %.not417 = icmp eq i32 %360, 0
  br i1 %.not417, label %362, label %361

361:                                              ; preds = %358
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 443) #11
  unreachable

362:                                              ; preds = %358, %354
  %.0320 = phi i32 [ %349, %354 ], [ %359, %358 ]
  %363 = call i32 @fast_rand()
  %364 = and i32 %363, 7
  %365 = icmp eq i32 %364, 0
  br i1 %365, label %366, label %370

366:                                              ; preds = %362
  %367 = add nuw nsw i32 %.0320, 256
  %368 = call i32 @opus_packet_pad(ptr noundef nonnull %8, i32 noundef %.0320, i32 noundef %367) #10
  %.not418 = icmp eq i32 %368, 0
  br i1 %.not418, label %370, label %369

369:                                              ; preds = %366
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 448) #11
  unreachable

370:                                              ; preds = %366, %362
  %.1321 = phi i32 [ %.0320, %362 ], [ %367, %366 ]
  %371 = call i32 @fast_rand()
  %372 = and i32 %371, 3
  %373 = icmp eq i32 %372, 0
  br i1 %373, label %374, label %378

374:                                              ; preds = %370
  %375 = call i32 @opus_packet_unpad(ptr noundef nonnull %8, i32 noundef %.1321) #10
  %376 = icmp slt i32 %375, 1
  br i1 %376, label %377, label %378

377:                                              ; preds = %374
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 454) #11
  unreachable

378:                                              ; preds = %374, %370
  %.2322 = phi i32 [ %375, %374 ], [ %.1321, %370 ]
  %379 = load i32, ptr %4, align 4, !tbaa !9
  %380 = shl i32 %379, 1
  %381 = sext i32 %380 to i64
  %382 = getelementptr inbounds i16, ptr %180, i64 %381
  %383 = call i32 @opus_decode(ptr noundef %110, ptr noundef nonnull %8, i32 noundef %.2322, ptr noundef %382, i32 noundef 5760, i32 noundef 0) #10
  %.not419 = icmp eq i32 %383, %228
  br i1 %.not419, label %385, label %384

384:                                              ; preds = %378
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 457) #11
  unreachable

385:                                              ; preds = %378
  %386 = call i32 (ptr, i32, ...) @opus_decoder_ctl(ptr noundef %110, i32 noundef 4031, ptr noundef nonnull %10) #10
  %.not420 = icmp eq i32 %386, 0
  br i1 %.not420, label %388, label %387

387:                                              ; preds = %385
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 458) #11
  unreachable

388:                                              ; preds = %385
  %389 = load i32, ptr %9, align 4, !tbaa !9
  %390 = load i32, ptr %10, align 4, !tbaa !9
  %.not421 = icmp eq i32 %389, %390
  br i1 %.not421, label %392, label %391

391:                                              ; preds = %388
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 459) #11
  unreachable

392:                                              ; preds = %388
  %393 = call i32 @fast_rand()
  %394 = and i32 %393, 3
  %395 = icmp ne i32 %394, 0
  %396 = zext i1 %395 to i32
  %397 = call i32 @opus_decode(ptr noundef nonnull %130, ptr noundef nonnull %8, i32 noundef %.2322, ptr noundef %181, i32 noundef %228, i32 noundef %396) #10
  %.not422 = icmp eq i32 %397, %228
  br i1 %.not422, label %399, label %398

398:                                              ; preds = %392
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 462) #11
  unreachable

399:                                              ; preds = %392
  %400 = call i32 @fast_rand()
  %401 = and i32 %400, 3
  %402 = icmp eq i32 %401, 0
  %403 = select i1 %402, i32 0, i32 %.2322
  %404 = call i32 @fast_rand()
  %405 = and i32 %404, 7
  %406 = icmp ne i32 %405, 0
  %407 = zext i1 %406 to i32
  %408 = call i32 @opus_decode(ptr noundef nonnull %133, ptr noundef nonnull %8, i32 noundef %403, ptr noundef %181, i32 noundef 5760, i32 noundef %407) #10
  %409 = icmp slt i32 %408, 120
  br i1 %409, label %410, label %411

410:                                              ; preds = %399
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 464) #11
  unreachable

411:                                              ; preds = %399
  %412 = load i32, ptr %4, align 4, !tbaa !9
  %413 = add nsw i32 %412, %228
  store i32 %413, ptr %4, align 4, !tbaa !9
  %414 = add nuw nsw i32 %.0316, 1
  %415 = icmp slt i32 %413, 474240
  br i1 %415, label %224, label %416, !llvm.loop !13

416:                                              ; preds = %411
  %417 = load ptr, ptr @stdout, align 8, !tbaa !5
  %418 = load i32, ptr %5, align 4, !tbaa !9
  %419 = sext i32 %418 to i64
  %420 = getelementptr inbounds [13 x i32], ptr @__const.run_test1.modes, i64 0, i64 %419
  %421 = load i32, ptr %420, align 4, !tbaa !9
  %422 = sext i32 %421 to i64
  %423 = getelementptr inbounds [3 x ptr], ptr @run_test1.mstrings, i64 0, i64 %422
  %424 = load ptr, ptr %423, align 8, !tbaa !5
  %425 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %417, ptr noundef nonnull @.str.8, ptr noundef %424, ptr noundef nonnull %spec.select424, i32 noundef %223) #10
  %426 = load i32, ptr %5, align 4, !tbaa !9
  %427 = add nsw i32 %426, 1
  store i32 %427, ptr %5, align 4, !tbaa !9
  %428 = icmp slt i32 %426, 12
  br i1 %428, label %213, label %429, !llvm.loop !14

429:                                              ; preds = %416
  %430 = add nuw nsw i32 %.0449, 1
  %exitcond.not = icmp eq i32 %430, 3
  br i1 %exitcond.not, label %431, label %.preheader436, !llvm.loop !15

431:                                              ; preds = %429
  %432 = call i32 (ptr, i32, ...) @opus_encoder_ctl(ptr noundef %174, i32 noundef 11002, i32 noundef -1000) #10
  %.not356 = icmp eq i32 %432, 0
  br i1 %.not356, label %434, label %433

433:                                              ; preds = %431
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 472) #11
  unreachable

434:                                              ; preds = %431
  %435 = call i32 (ptr, i32, ...) @opus_encoder_ctl(ptr noundef %174, i32 noundef 4022, i32 noundef -1000) #10
  %.not357 = icmp eq i32 %435, 0
  br i1 %.not357, label %437, label %436

436:                                              ; preds = %434
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 473) #11
  unreachable

437:                                              ; preds = %434
  %438 = call i32 (ptr, i32, ...) @opus_encoder_ctl(ptr noundef %174, i32 noundef 4012, i32 noundef 0) #10
  %.not358 = icmp eq i32 %438, 0
  br i1 %.not358, label %440, label %439

439:                                              ; preds = %437
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 474) #11
  unreachable

440:                                              ; preds = %437
  %441 = call i32 (ptr, i32, ...) @opus_encoder_ctl(ptr noundef %174, i32 noundef 4016, i32 noundef 0) #10
  %.not359 = icmp eq i32 %441, 0
  br i1 %.not359, label %.preheader434, label %442

442:                                              ; preds = %440
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 475) #11
  unreachable

.preheader434:                                    ; preds = %440, %624
  %.1451 = phi i32 [ %625, %624 ], [ 0, %440 ]
  %443 = icmp ne i32 %.1451, 2
  %444 = zext i1 %443 to i32
  %445 = call i32 (ptr, i32, ...) @opus_multistream_encoder_ctl(ptr noundef %80, i32 noundef 4006, i32 noundef %444) #10
  %.not371 = icmp eq i32 %445, 0
  br i1 %.not371, label %447, label %446

446:                                              ; preds = %.preheader434
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 479) #11
  unreachable

447:                                              ; preds = %.preheader434
  %448 = icmp eq i32 %.1451, 1
  %449 = zext i1 %448 to i32
  %450 = call i32 (ptr, i32, ...) @opus_multistream_encoder_ctl(ptr noundef %80, i32 noundef 4020, i32 noundef %449) #10
  %.not372 = icmp eq i32 %450, 0
  br i1 %.not372, label %452, label %451

451:                                              ; preds = %447
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 480) #11
  unreachable

452:                                              ; preds = %447
  %453 = call i32 (ptr, i32, ...) @opus_multistream_encoder_ctl(ptr noundef %80, i32 noundef 4020, i32 noundef %449) #10
  %.not373 = icmp eq i32 %453, 0
  br i1 %.not373, label %455, label %454

454:                                              ; preds = %452
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 481) #11
  unreachable

455:                                              ; preds = %452
  %456 = icmp eq i32 %.1451, 0
  %457 = zext i1 %456 to i32
  %458 = call i32 (ptr, i32, ...) @opus_multistream_encoder_ctl(ptr noundef %80, i32 noundef 4012, i32 noundef %457) #10
  %.not374 = icmp eq i32 %458, 0
  br i1 %.not374, label %.preheader433, label %460

.preheader433:                                    ; preds = %455
  store i32 0, ptr %5, align 4, !tbaa !9
  %459 = select i1 %448, ptr @.str.10, ptr @.str.11
  %spec.select425 = select i1 %456, ptr @.str.9, ptr %459
  br label %461

460:                                              ; preds = %455
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 482) #11
  unreachable

461:                                              ; preds = %.preheader433, %611
  %storemerge375450 = phi i32 [ 0, %.preheader433 ], [ %622, %611 ]
  %462 = icmp eq i32 %storemerge375450, 1
  %463 = and i1 %456, %462
  %464 = zext i1 %463 to i32
  %465 = call i32 (ptr, i32, ...) @opus_multistream_encoder_ctl(ptr noundef %80, i32 noundef 4012, i32 noundef %464) #10
  %.not376 = icmp eq i32 %465, 0
  br i1 %.not376, label %467, label %466

466:                                              ; preds = %461
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 489) #11
  unreachable

467:                                              ; preds = %461
  %468 = load i32, ptr %5, align 4, !tbaa !9
  %469 = sext i32 %468 to i64
  %470 = getelementptr inbounds [16 x i32], ptr @__const.run_test1.modes.12, i64 0, i64 %469
  %471 = load i32, ptr %470, align 4, !tbaa !9
  %472 = add nsw i32 %471, 1000
  %473 = call i32 (ptr, i32, ...) @opus_multistream_encoder_ctl(ptr noundef %80, i32 noundef 11002, i32 noundef %472) #10
  %.not377 = icmp eq i32 %473, 0
  br i1 %.not377, label %475, label %474

474:                                              ; preds = %467
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 490) #11
  unreachable

475:                                              ; preds = %467
  %476 = load i32, ptr %5, align 4, !tbaa !9
  %477 = sext i32 %476 to i64
  %478 = getelementptr inbounds [16 x i32], ptr @__const.run_test1.rates.13, i64 0, i64 %477
  %479 = load i32, ptr %478, align 4, !tbaa !9
  %480 = call i32 @fast_rand()
  %481 = load i32, ptr %5, align 4, !tbaa !9
  %482 = sext i32 %481 to i64
  %483 = getelementptr inbounds [16 x i32], ptr @__const.run_test1.rates.13, i64 0, i64 %482
  %484 = load i32, ptr %483, align 4, !tbaa !9
  %485 = urem i32 %480, %484
  %486 = add i32 %485, %479
  %487 = call i32 @fast_rand()
  %488 = call i32 @fast_rand()
  %489 = and i32 %488, 1
  %490 = call i32 (ptr, i32, ...) @opus_multistream_encoder_ctl(ptr noundef %80, i32 noundef 4016, i32 noundef %489) #10
  %.not378 = icmp eq i32 %490, 0
  br i1 %.not378, label %492, label %491

491:                                              ; preds = %475
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 492) #11
  unreachable

492:                                              ; preds = %475
  %493 = call i32 (ptr, i32, ...) @opus_multistream_encoder_ctl(ptr noundef %80, i32 noundef 4002, i32 noundef %486) #10
  %.not379 = icmp eq i32 %493, 0
  br i1 %.not379, label %495, label %494

494:                                              ; preds = %492
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 493) #11
  unreachable

495:                                              ; preds = %492
  store i32 0, ptr %4, align 4, !tbaa !9
  br label %496

496:                                              ; preds = %606, %495
  %.1317 = phi i32 [ 0, %495 ], [ %609, %606 ]
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %12) #10
  %497 = call i32 (ptr, i32, ...) @opus_multistream_encoder_ctl(ptr noundef %80, i32 noundef 4043, ptr noundef nonnull %12) #10
  %.not380 = icmp eq i32 %497, 0
  br i1 %.not380, label %499, label %498

498:                                              ; preds = %496
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 498) #11
  unreachable

499:                                              ; preds = %496
  %500 = call i32 @fast_rand()
  %501 = call i32 @fast_rand()
  %502 = and i32 %501, 15
  %503 = load i32, ptr %12, align 4, !tbaa !9
  %.not381 = icmp eq i32 %503, 0
  %504 = select i1 %.not381, i32 4, i32 11
  %505 = icmp ult i32 %502, %504
  %506 = zext i1 %505 to i32
  %507 = call i32 (ptr, i32, ...) @opus_multistream_encoder_ctl(ptr noundef %80, i32 noundef 4042, i32 noundef %506) #10
  %.not382 = icmp eq i32 %507, 0
  br i1 %.not382, label %509, label %508

508:                                              ; preds = %499
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 499) #11
  unreachable

509:                                              ; preds = %499
  %510 = load i32, ptr %5, align 4, !tbaa !9
  %511 = sext i32 %510 to i64
  %512 = getelementptr inbounds [16 x i32], ptr @__const.run_test1.frame.14, i64 0, i64 %511
  %513 = load i32, ptr %512, align 4, !tbaa !9
  %514 = lshr i32 %.1317, 2
  %515 = urem i32 %514, 11
  %516 = call i32 (ptr, i32, ...) @opus_multistream_encoder_ctl(ptr noundef %80, i32 noundef 4010, i32 noundef %515) #10
  %.not383 = icmp eq i32 %516, 0
  br i1 %.not383, label %518, label %517

517:                                              ; preds = %509
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 501) #11
  unreachable

518:                                              ; preds = %509
  %519 = call i32 @fast_rand()
  %520 = call i32 @fast_rand()
  %521 = call i32 @fast_rand()
  %522 = call i32 @fast_rand()
  %523 = urem i32 %522, 15
  %524 = and i32 %523, %521
  %525 = call i32 (ptr, i32, ...) @opus_multistream_encoder_ctl(ptr noundef %80, i32 noundef 4014, i32 noundef %524) #10
  %.not384 = icmp eq i32 %525, 0
  br i1 %.not384, label %527, label %526

526:                                              ; preds = %518
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 502) #11
  unreachable

527:                                              ; preds = %518
  %528 = call i32 @fast_rand()
  %529 = and i32 %528, 255
  %530 = icmp eq i32 %529, 0
  br i1 %530, label %531, label %543

531:                                              ; preds = %527
  %532 = call i32 (ptr, i32, ...) @opus_multistream_encoder_ctl(ptr noundef %80, i32 noundef 4028) #10
  %.not385 = icmp eq i32 %532, 0
  br i1 %.not385, label %534, label %533

533:                                              ; preds = %531
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 505) #11
  unreachable

534:                                              ; preds = %531
  %535 = call i32 (ptr, i32, ...) @opus_multistream_decoder_ctl(ptr noundef %116, i32 noundef 4028) #10
  %.not386 = icmp eq i32 %535, 0
  br i1 %.not386, label %537, label %536

536:                                              ; preds = %534
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 506) #11
  unreachable

537:                                              ; preds = %534
  %538 = call i32 @fast_rand()
  %539 = and i32 %538, 3
  %.not387 = icmp eq i32 %539, 0
  br i1 %.not387, label %543, label %540

540:                                              ; preds = %537
  %541 = call i32 (ptr, i32, ...) @opus_multistream_decoder_ctl(ptr noundef %122, i32 noundef 4028) #10
  %.not388 = icmp eq i32 %541, 0
  br i1 %.not388, label %543, label %542

542:                                              ; preds = %540
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 509) #11
  unreachable

543:                                              ; preds = %537, %540, %527
  %544 = call i32 @fast_rand()
  %545 = and i32 %544, 255
  %546 = icmp eq i32 %545, 0
  br i1 %546, label %547, label %550

547:                                              ; preds = %543
  %548 = call i32 (ptr, i32, ...) @opus_multistream_decoder_ctl(ptr noundef %122, i32 noundef 4028) #10
  %.not389 = icmp eq i32 %548, 0
  br i1 %.not389, label %550, label %549

549:                                              ; preds = %547
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 514) #11
  unreachable

550:                                              ; preds = %547, %543
  %551 = load i32, ptr %4, align 4, !tbaa !9
  %552 = shl i32 %551, 1
  %553 = sext i32 %552 to i64
  %554 = getelementptr inbounds i16, ptr %179, i64 %553
  %555 = call i32 @opus_multistream_encode(ptr noundef %80, ptr noundef %554, i32 noundef %513, ptr noundef nonnull %8, i32 noundef 1500) #10
  %or.cond45 = icmp ugt i32 %555, 1500
  br i1 %or.cond45, label %556, label %557

556:                                              ; preds = %550
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 517) #11
  unreachable

557:                                              ; preds = %550
  %558 = call i32 (ptr, i32, ...) @opus_multistream_encoder_ctl(ptr noundef %80, i32 noundef 4031, ptr noundef nonnull %9) #10
  %.not390 = icmp eq i32 %558, 0
  br i1 %.not390, label %560, label %559

559:                                              ; preds = %557
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 518) #11
  unreachable

560:                                              ; preds = %557
  %561 = call i32 @fast_rand()
  %562 = and i32 %561, 3
  %563 = icmp eq i32 %562, 0
  br i1 %563, label %564, label %568

564:                                              ; preds = %560
  %565 = add nuw nsw i32 %555, 1
  %566 = call i32 @opus_multistream_packet_pad(ptr noundef nonnull %8, i32 noundef %555, i32 noundef %565, i32 noundef 2) #10
  %.not391 = icmp eq i32 %566, 0
  br i1 %.not391, label %568, label %567

567:                                              ; preds = %564
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 521) #11
  unreachable

568:                                              ; preds = %564, %560
  %.0313 = phi i32 [ %555, %560 ], [ %565, %564 ]
  %569 = call i32 @fast_rand()
  %570 = and i32 %569, 7
  %571 = icmp eq i32 %570, 0
  br i1 %571, label %572, label %576

572:                                              ; preds = %568
  %573 = add nuw nsw i32 %.0313, 256
  %574 = call i32 @opus_multistream_packet_pad(ptr noundef nonnull %8, i32 noundef %.0313, i32 noundef %573, i32 noundef 2) #10
  %.not392 = icmp eq i32 %574, 0
  br i1 %.not392, label %576, label %575

575:                                              ; preds = %572
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 526) #11
  unreachable

576:                                              ; preds = %572, %568
  %.1314 = phi i32 [ %.0313, %568 ], [ %573, %572 ]
  %577 = call i32 @fast_rand()
  %578 = and i32 %577, 3
  %579 = icmp eq i32 %578, 0
  br i1 %579, label %580, label %584

580:                                              ; preds = %576
  %581 = call i32 @opus_multistream_packet_unpad(ptr noundef nonnull %8, i32 noundef %.1314, i32 noundef 2) #10
  %582 = icmp slt i32 %581, 1
  br i1 %582, label %583, label %584

583:                                              ; preds = %580
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 532) #11
  unreachable

584:                                              ; preds = %580, %576
  %.2315 = phi i32 [ %581, %580 ], [ %.1314, %576 ]
  %585 = call i32 @opus_multistream_decode(ptr noundef %116, ptr noundef nonnull %8, i32 noundef %.2315, ptr noundef %181, i32 noundef 5760, i32 noundef 0) #10
  %586 = mul nsw i32 %513, 6
  %.not393 = icmp eq i32 %585, %586
  br i1 %.not393, label %588, label %587

587:                                              ; preds = %584
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 535) #11
  unreachable

588:                                              ; preds = %584
  %589 = call i32 (ptr, i32, ...) @opus_multistream_decoder_ctl(ptr noundef %116, i32 noundef 4031, ptr noundef nonnull %10) #10
  %.not394 = icmp eq i32 %589, 0
  br i1 %.not394, label %591, label %590

590:                                              ; preds = %588
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 536) #11
  unreachable

591:                                              ; preds = %588
  %592 = load i32, ptr %9, align 4, !tbaa !9
  %593 = load i32, ptr %10, align 4, !tbaa !9
  %.not395 = icmp eq i32 %592, %593
  br i1 %.not395, label %595, label %594

594:                                              ; preds = %591
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 537) #11
  unreachable

595:                                              ; preds = %591
  %596 = call i32 @fast_rand()
  %597 = and i32 %596, 63
  %598 = icmp eq i32 %597, 0
  %599 = select i1 %598, i32 0, i32 %.2315
  %600 = call i32 @fast_rand()
  %601 = and i32 %600, 3
  %602 = icmp ne i32 %601, 0
  %603 = zext i1 %602 to i32
  %604 = call i32 @opus_multistream_decode(ptr noundef %122, ptr noundef nonnull %8, i32 noundef %599, ptr noundef %181, i32 noundef %585, i32 noundef %603) #10
  %.not396 = icmp eq i32 %604, %585
  br i1 %.not396, label %606, label %605

605:                                              ; preds = %595
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 541) #11
  unreachable

606:                                              ; preds = %595
  %607 = load i32, ptr %4, align 4, !tbaa !9
  %608 = add nsw i32 %607, %513
  store i32 %608, ptr %4, align 4, !tbaa !9
  %609 = add nuw nsw i32 %.1317, 1
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %12) #10
  %610 = icmp slt i32 %608, 34240
  br i1 %610, label %496, label %611, !llvm.loop !16

611:                                              ; preds = %606
  %612 = load ptr, ptr @stdout, align 8, !tbaa !5
  %613 = load i32, ptr %5, align 4, !tbaa !9
  %614 = sext i32 %613 to i64
  %615 = getelementptr inbounds [16 x i32], ptr @__const.run_test1.modes.12, i64 0, i64 %614
  %616 = load i32, ptr %615, align 4, !tbaa !9
  %617 = sext i32 %616 to i64
  %618 = getelementptr inbounds [3 x ptr], ptr @run_test1.mstrings, i64 0, i64 %617
  %619 = load ptr, ptr %618, align 8, !tbaa !5
  %620 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %612, ptr noundef nonnull @.str.15, ptr noundef %619, ptr noundef nonnull %spec.select425, i32 noundef %486) #10
  %621 = load i32, ptr %5, align 4, !tbaa !9
  %622 = add nsw i32 %621, 1
  store i32 %622, ptr %5, align 4, !tbaa !9
  %623 = icmp slt i32 %621, 15
  br i1 %623, label %461, label %624, !llvm.loop !17

624:                                              ; preds = %611
  %625 = add nuw nsw i32 %.1451, 1
  %exitcond466.not = icmp eq i32 %625, 3
  br i1 %exitcond466.not, label %626, label %.preheader434, !llvm.loop !18

626:                                              ; preds = %624
  %627 = call i32 @fast_rand()
  %628 = urem i32 %627, 31
  call void @debruijn2(i32 noundef 6, ptr noundef nonnull %3)
  store i32 0, ptr %4, align 4, !tbaa !9
  %629 = ptrtoint ptr %8 to i64
  %.not370 = icmp eq i32 %0, 0
  br label %630

630:                                              ; preds = %795, %626
  %631 = phi i32 [ 0, %626 ], [ %802, %795 ]
  %.2318 = phi i32 [ 0, %626 ], [ %646, %795 ]
  %.0311 = phi i32 [ %628, %626 ], [ %.1312, %795 ]
  %.0309 = phi i32 [ 100, %626 ], [ %.2, %795 ]
  %.0307 = phi i32 [ 512000, %626 ], [ %800, %795 ]
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %13) #10
  call void @llvm.lifetime.start.p0(i64 384, ptr nonnull %14) #10
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %15) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %16) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %17) #10
  %632 = sext i32 %.0311 to i64
  %633 = getelementptr inbounds [36 x i8], ptr %3, i64 0, i64 %632
  %634 = load i8, ptr %633, align 1, !tbaa !19
  %635 = zext i8 %634 to i64
  %636 = getelementptr inbounds [6 x i32], ptr @run_test1.fsizes, i64 0, i64 %635
  %637 = load i32, ptr %636, align 4, !tbaa !9
  %638 = srem i32 %631, 1434240
  %639 = call i32 (ptr, i32, ...) @opus_encoder_ctl(ptr noundef %174, i32 noundef 4002, i32 noundef %.0307) #10
  %640 = shl nsw i32 %638, 1
  %641 = sext i32 %640 to i64
  %642 = getelementptr inbounds i16, ptr %179, i64 %641
  %643 = call i32 @opus_encode(ptr noundef %174, ptr noundef %642, i32 noundef %637, ptr noundef nonnull %8, i32 noundef 1500) #10
  %or.cond48 = icmp ugt i32 %643, 1500
  br i1 %or.cond48, label %644, label %645

644:                                              ; preds = %630
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 569) #11
  unreachable

645:                                              ; preds = %630
  %646 = add nuw nsw i32 %.2318, 1
  %647 = call i32 (ptr, i32, ...) @opus_encoder_ctl(ptr noundef %174, i32 noundef 4031, ptr noundef nonnull %9) #10
  %648 = getelementptr inbounds i16, ptr %180, i64 %641
  %649 = call i32 @opus_decode(ptr noundef %110, ptr noundef nonnull %8, i32 noundef %643, ptr noundef %648, i32 noundef 5760, i32 noundef 0) #10
  %.not360 = icmp eq i32 %649, %637
  br i1 %.not360, label %651, label %650

650:                                              ; preds = %645
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 575) #11
  unreachable

651:                                              ; preds = %645
  %652 = call i32 (ptr, i32, ...) @opus_decoder_ctl(ptr noundef %110, i32 noundef 4031, ptr noundef nonnull %10) #10
  %653 = load i32, ptr %10, align 4, !tbaa !9
  %654 = load i32, ptr %9, align 4, !tbaa !9
  %.not361 = icmp eq i32 %653, %654
  br i1 %.not361, label %656, label %655

655:                                              ; preds = %651
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 580) #11
  unreachable

656:                                              ; preds = %651
  %657 = call i32 @opus_packet_parse(ptr noundef nonnull %8, i32 noundef %643, ptr noundef nonnull %13, ptr noundef nonnull %14, ptr noundef nonnull %15, ptr noundef nonnull %16) #10
  %658 = icmp slt i32 %657, 1
  br i1 %658, label %659, label %660

659:                                              ; preds = %656
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 585) #11
  unreachable

660:                                              ; preds = %656
  %661 = call i32 @fast_rand()
  %662 = and i32 %661, 1023
  %663 = icmp eq i32 %662, 0
  %spec.select426 = select i1 %663, i32 0, i32 %643
  %664 = load ptr, ptr %14, align 16, !tbaa !5
  %665 = ptrtoint ptr %664 to i64
  %666 = sub i64 %665, %629
  %667 = trunc i64 %666 to i32
  store i32 %667, ptr %5, align 4, !tbaa !9
  %668 = icmp sgt i32 %spec.select426, %667
  br i1 %668, label %.preheader.lr.ph, label %._crit_edge

.preheader.lr.ph:                                 ; preds = %660
  br i1 %.not370, label %.preheader.us, label %.preheader.lr.ph.split

.preheader.us:                                    ; preds = %.preheader.lr.ph, %.preheader.us
  %669 = call i32 @fast_rand()
  %670 = and i32 %669, 1023
  %671 = icmp eq i32 %670, 0
  %672 = load i32, ptr %5, align 4, !tbaa !9
  %673 = sext i32 %672 to i64
  %674 = getelementptr inbounds [1757 x i8], ptr %8, i64 0, i64 %673
  %675 = load i8, ptr %674, align 1, !tbaa !19
  %676 = zext i1 %671 to i8
  %677 = xor i8 %675, %676
  store i8 %677, ptr %674, align 1, !tbaa !19
  %678 = call i32 @fast_rand()
  %679 = and i32 %678, 1023
  %680 = icmp eq i32 %679, 0
  %681 = load i32, ptr %5, align 4, !tbaa !9
  %682 = sext i32 %681 to i64
  %683 = getelementptr inbounds [1757 x i8], ptr %8, i64 0, i64 %682
  %684 = load i8, ptr %683, align 1, !tbaa !19
  %685 = select i1 %680, i8 2, i8 0
  %686 = xor i8 %684, %685
  store i8 %686, ptr %683, align 1, !tbaa !19
  %687 = call i32 @fast_rand()
  %688 = and i32 %687, 1023
  %689 = icmp eq i32 %688, 0
  %690 = load i32, ptr %5, align 4, !tbaa !9
  %691 = sext i32 %690 to i64
  %692 = getelementptr inbounds [1757 x i8], ptr %8, i64 0, i64 %691
  %693 = load i8, ptr %692, align 1, !tbaa !19
  %694 = select i1 %689, i8 4, i8 0
  %695 = xor i8 %693, %694
  store i8 %695, ptr %692, align 1, !tbaa !19
  %696 = call i32 @fast_rand()
  %697 = and i32 %696, 1023
  %698 = icmp eq i32 %697, 0
  %699 = load i32, ptr %5, align 4, !tbaa !9
  %700 = sext i32 %699 to i64
  %701 = getelementptr inbounds [1757 x i8], ptr %8, i64 0, i64 %700
  %702 = load i8, ptr %701, align 1, !tbaa !19
  %703 = select i1 %698, i8 8, i8 0
  %704 = xor i8 %702, %703
  store i8 %704, ptr %701, align 1, !tbaa !19
  %705 = call i32 @fast_rand()
  %706 = and i32 %705, 1023
  %707 = icmp eq i32 %706, 0
  %708 = load i32, ptr %5, align 4, !tbaa !9
  %709 = sext i32 %708 to i64
  %710 = getelementptr inbounds [1757 x i8], ptr %8, i64 0, i64 %709
  %711 = load i8, ptr %710, align 1, !tbaa !19
  %712 = select i1 %707, i8 16, i8 0
  %713 = xor i8 %711, %712
  store i8 %713, ptr %710, align 1, !tbaa !19
  %714 = call i32 @fast_rand()
  %715 = and i32 %714, 1023
  %716 = icmp eq i32 %715, 0
  %717 = load i32, ptr %5, align 4, !tbaa !9
  %718 = sext i32 %717 to i64
  %719 = getelementptr inbounds [1757 x i8], ptr %8, i64 0, i64 %718
  %720 = load i8, ptr %719, align 1, !tbaa !19
  %721 = select i1 %716, i8 32, i8 0
  %722 = xor i8 %720, %721
  store i8 %722, ptr %719, align 1, !tbaa !19
  %723 = call i32 @fast_rand()
  %724 = and i32 %723, 1023
  %725 = icmp eq i32 %724, 0
  %726 = load i32, ptr %5, align 4, !tbaa !9
  %727 = sext i32 %726 to i64
  %728 = getelementptr inbounds [1757 x i8], ptr %8, i64 0, i64 %727
  %729 = load i8, ptr %728, align 1, !tbaa !19
  %730 = select i1 %725, i8 64, i8 0
  %731 = xor i8 %729, %730
  store i8 %731, ptr %728, align 1, !tbaa !19
  %732 = call i32 @fast_rand()
  %733 = and i32 %732, 1023
  %734 = icmp eq i32 %733, 0
  %735 = load i32, ptr %5, align 4, !tbaa !9
  %736 = sext i32 %735 to i64
  %737 = getelementptr inbounds [1757 x i8], ptr %8, i64 0, i64 %736
  %738 = load i8, ptr %737, align 1, !tbaa !19
  %739 = select i1 %734, i8 -128, i8 0
  %740 = xor i8 %738, %739
  store i8 %740, ptr %737, align 1, !tbaa !19
  %741 = add nsw i32 %735, 1
  store i32 %741, ptr %5, align 4, !tbaa !9
  %742 = icmp slt i32 %741, %spec.select426
  br i1 %742, label %.preheader.us, label %._crit_edge, !llvm.loop !20

.preheader.lr.ph.split:                           ; preds = %.preheader.lr.ph
  %sext = shl i64 %666, 32
  %743 = ashr exact i64 %sext, 32
  %744 = zext nneg i32 %spec.select426 to i64
  %745 = sub i64 %744, %665
  %xtraiter = and i64 %745, 7
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  br i1 %lcmp.mod.not, label %.preheader.prol.loopexit, label %.preheader.prol

.preheader.prol:                                  ; preds = %.preheader.lr.ph.split, %.preheader.prol
  %indvars.iv.prol = phi i64 [ %indvars.iv.next.prol, %.preheader.prol ], [ %743, %.preheader.lr.ph.split ]
  %prol.iter = phi i64 [ %prol.iter.next, %.preheader.prol ], [ 0, %.preheader.lr.ph.split ]
  %indvars.iv.next.prol = add nsw i64 %indvars.iv.prol, 1
  %prol.iter.next = add i64 %prol.iter, 1
  %prol.iter.cmp.not = icmp eq i64 %prol.iter.next, %xtraiter
  br i1 %prol.iter.cmp.not, label %.preheader.prol.loopexit, label %.preheader.prol, !llvm.loop !21

.preheader.prol.loopexit:                         ; preds = %.preheader.prol, %.preheader.lr.ph.split
  %indvars.iv.unr = phi i64 [ %743, %.preheader.lr.ph.split ], [ %indvars.iv.next.prol, %.preheader.prol ]
  %indvars.iv.next.lcssa.unr = phi i64 [ poison, %.preheader.lr.ph.split ], [ %indvars.iv.next.prol, %.preheader.prol ]
  %746 = sub nsw i64 %743, %744
  %747 = icmp ugt i64 %746, -8
  br i1 %747, label %._crit_edge.split, label %.preheader

.preheader:                                       ; preds = %.preheader.prol.loopexit, %.preheader
  %indvars.iv = phi i64 [ %indvars.iv.next.7, %.preheader ], [ %indvars.iv.unr, %.preheader.prol.loopexit ]
  %indvars.iv.next.7 = add nsw i64 %indvars.iv, 8
  %748 = icmp slt i64 %indvars.iv.next.7, %744
  br i1 %748, label %.preheader, label %._crit_edge.split, !llvm.loop !20

._crit_edge.split:                                ; preds = %.preheader, %.preheader.prol.loopexit
  %indvars.iv.next.lcssa = phi i64 [ %indvars.iv.next.lcssa.unr, %.preheader.prol.loopexit ], [ %indvars.iv.next.7, %.preheader ]
  %749 = trunc nsw i64 %indvars.iv.next.lcssa to i32
  store i32 %749, ptr %5, align 4, !tbaa !9
  br label %._crit_edge

._crit_edge:                                      ; preds = %.preheader.us, %._crit_edge.split, %660
  %750 = icmp slt i32 %spec.select426, 1
  %751 = select i1 %750, ptr null, ptr %8
  %752 = call i32 @opus_decode(ptr noundef nonnull %130, ptr noundef %751, i32 noundef %spec.select426, ptr noundef %181, i32 noundef 5760, i32 noundef 0) #10
  %or.cond51 = icmp ugt i32 %752, 5760
  br i1 %or.cond51, label %753, label %754

753:                                              ; preds = %._crit_edge
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 589) #11
  unreachable

754:                                              ; preds = %._crit_edge
  %.not363 = icmp eq i32 %752, %637
  %or.cond428 = select i1 %750, i1 true, i1 %.not363
  br i1 %or.cond428, label %756, label %755

755:                                              ; preds = %754
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 590) #11
  unreachable

756:                                              ; preds = %754
  %757 = call i32 (ptr, i32, ...) @opus_decoder_ctl(ptr noundef nonnull %130, i32 noundef 4031, ptr noundef nonnull %10) #10
  %758 = call i32 @fast_rand()
  %759 = urem i32 %758, 9
  %760 = add nuw nsw i32 %759, 1
  %761 = zext nneg i32 %760 to i64
  %762 = getelementptr inbounds [10 x ptr], ptr %7, i64 0, i64 %761
  %763 = load ptr, ptr %762, align 8, !tbaa !5
  %764 = call i32 @opus_decode(ptr noundef %763, ptr noundef %751, i32 noundef %spec.select426, ptr noundef %181, i32 noundef 5760, i32 noundef 0) #10
  %or.cond54 = icmp ugt i32 %764, 5760
  br i1 %or.cond54, label %765, label %766

765:                                              ; preds = %756
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 597) #11
  unreachable

766:                                              ; preds = %756
  %767 = call i32 (ptr, i32, ...) @opus_decoder_ctl(ptr noundef %763, i32 noundef 4031, ptr noundef nonnull %17) #10
  br i1 %750, label %772, label %768

768:                                              ; preds = %766
  %769 = load i32, ptr %10, align 4, !tbaa !9
  %770 = load i32, ptr %17, align 4, !tbaa !9
  %.not364 = icmp eq i32 %769, %770
  br i1 %.not364, label %772, label %771

771:                                              ; preds = %768
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 600) #11
  unreachable

772:                                              ; preds = %768, %766
  %773 = add nsw i32 %.0309, -1
  %774 = icmp slt i32 %.0309, 2
  br i1 %774, label %775, label %795

775:                                              ; preds = %772
  %776 = add nsw i32 %.0311, 1
  %777 = srem i32 %776, 36
  %778 = sext i32 %777 to i64
  %779 = getelementptr inbounds [36 x i8], ptr %3, i64 0, i64 %778
  %780 = load i8, ptr %779, align 1, !tbaa !19
  %781 = zext i8 %780 to i64
  %782 = getelementptr inbounds [6 x i32], ptr @run_test1.fsizes, i64 0, i64 %781
  %783 = load i32, ptr %782, align 4, !tbaa !9
  switch i32 %783, label %790 [
    i32 960, label %784
    i32 480, label %784
  ]

784:                                              ; preds = %775, %775
  %.rhs.trunc = trunc i32 %783 to i16
  %785 = udiv i16 2880, %.rhs.trunc
  %.zext = zext nneg i16 %785 to i32
  %786 = call i32 @fast_rand()
  %787 = urem i32 %786, 19
  %788 = add nuw nsw i32 %787, 1
  %789 = mul nuw nsw i32 %788, %.zext
  br label %795

790:                                              ; preds = %775
  %791 = call i32 @fast_rand()
  %792 = sdiv i32 2880, %783
  %793 = urem i32 %791, %792
  %794 = add nuw i32 %793, 1
  br label %795

795:                                              ; preds = %784, %790, %772
  %.1312 = phi i32 [ %.0311, %772 ], [ %777, %790 ], [ %777, %784 ]
  %.2 = phi i32 [ %773, %772 ], [ %794, %790 ], [ %789, %784 ]
  %796 = call i32 @fast_rand()
  %797 = urem i32 %796, 508000
  %798 = add nuw i32 %.0307, 4000
  %799 = add nuw i32 %798, %797
  %800 = lshr i32 %799, 1
  %801 = load i32, ptr %4, align 4, !tbaa !9
  %802 = add nsw i32 %801, %637
  store i32 %802, ptr %4, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %17) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %16) #10
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %15) #10
  call void @llvm.lifetime.end.p0(i64 384, ptr nonnull %14) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %13) #10
  %803 = icmp slt i32 %802, 5760000
  br i1 %803, label %630, label %804, !llvm.loop !23

804:                                              ; preds = %795
  %805 = load ptr, ptr @stdout, align 8, !tbaa !5
  %806 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %805, ptr noundef nonnull @.str.16, i32 noundef %646) #10
  %807 = call i32 (ptr, i32, ...) @opus_encoder_ctl(ptr noundef %174, i32 noundef 4028) #10
  %.not365 = icmp eq i32 %807, 0
  br i1 %.not365, label %809, label %808

808:                                              ; preds = %804
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 616) #11
  unreachable

809:                                              ; preds = %804
  call void @opus_encoder_destroy(ptr noundef %174) #10
  %810 = call i32 (ptr, i32, ...) @opus_multistream_encoder_ctl(ptr noundef %80, i32 noundef 4028) #10
  %.not366 = icmp eq i32 %810, 0
  br i1 %.not366, label %812, label %811

811:                                              ; preds = %809
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 618) #11
  unreachable

812:                                              ; preds = %809
  call void @opus_multistream_encoder_destroy(ptr noundef %80) #10
  %813 = call i32 (ptr, i32, ...) @opus_decoder_ctl(ptr noundef %110, i32 noundef 4028) #10
  %.not367 = icmp eq i32 %813, 0
  br i1 %.not367, label %815, label %814

814:                                              ; preds = %812
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 620) #11
  unreachable

815:                                              ; preds = %812
  call void @opus_decoder_destroy(ptr noundef %110) #10
  %816 = call i32 (ptr, i32, ...) @opus_multistream_decoder_ctl(ptr noundef %116, i32 noundef 4028) #10
  %.not368 = icmp eq i32 %816, 0
  br i1 %.not368, label %818, label %817

817:                                              ; preds = %815
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 622) #11
  unreachable

818:                                              ; preds = %815
  call void @opus_multistream_decoder_destroy(ptr noundef %116) #10
  call void @opus_multistream_decoder_destroy(ptr noundef %122) #10
  store i32 0, ptr %4, align 4, !tbaa !9
  br label %819

819:                                              ; preds = %818, %819
  %storemerge369454 = phi i32 [ 0, %818 ], [ %824, %819 ]
  %820 = sext i32 %storemerge369454 to i64
  %821 = getelementptr inbounds [10 x ptr], ptr %7, i64 0, i64 %820
  %822 = load ptr, ptr %821, align 8, !tbaa !5
  call void @opus_decoder_destroy(ptr noundef %822) #10
  %823 = load i32, ptr %4, align 4, !tbaa !9
  %824 = add nsw i32 %823, 1
  store i32 %824, ptr %4, align 4, !tbaa !9
  %825 = icmp slt i32 %823, 9
  br i1 %825, label %819, label %826, !llvm.loop !24

826:                                              ; preds = %819
  call void @free(ptr noundef %179) #10
  call void @free(ptr noundef %180) #10
  call void @free(ptr noundef %181) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %10) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %9) #10
  call void @llvm.lifetime.end.p0(i64 1757, ptr nonnull %8) #10
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %7) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %6) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %5) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %4) #10
  call void @llvm.lifetime.end.p0(i64 36, ptr nonnull %3) #10
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %2) #10
  ret i32 0
}

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

declare ptr @opus_multistream_encoder_create(i32 noundef, i32 noundef, i32 noundef, i32 noundef, ptr noundef, i32 noundef, ptr noundef) local_unnamed_addr #5

declare i32 @opus_multistream_encoder_ctl(ptr noundef, i32 noundef, ...) local_unnamed_addr #5

declare ptr @opus_multistream_decoder_create(i32 noundef, i32 noundef, i32 noundef, i32 noundef, ptr noundef, ptr noundef) local_unnamed_addr #5

declare i32 @opus_decoder_get_size(i32 noundef) local_unnamed_addr #5

declare i32 @opus_encoder_get_size(i32 noundef) local_unnamed_addr #5

declare i32 @opus_decoder_ctl(ptr noundef, i32 noundef, ...) local_unnamed_addr #5

declare i32 @opus_packet_pad(ptr noundef, i32 noundef, i32 noundef) local_unnamed_addr #5

declare i32 @opus_packet_unpad(ptr noundef, i32 noundef) local_unnamed_addr #5

declare i32 @opus_multistream_decoder_ctl(ptr noundef, i32 noundef, ...) local_unnamed_addr #5

declare i32 @opus_multistream_encode(ptr noundef, ptr noundef, i32 noundef, ptr noundef, i32 noundef) local_unnamed_addr #5

declare i32 @opus_multistream_packet_pad(ptr noundef, i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #5

declare i32 @opus_multistream_packet_unpad(ptr noundef, i32 noundef, i32 noundef) local_unnamed_addr #5

declare i32 @opus_multistream_decode(ptr noundef, ptr noundef, i32 noundef, ptr noundef, i32 noundef, i32 noundef) local_unnamed_addr #5

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

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

declare void @opus_multistream_encoder_destroy(ptr noundef) local_unnamed_addr #5

declare void @opus_multistream_decoder_destroy(ptr noundef) local_unnamed_addr #5

attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { inlinehint 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 = { 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 #4 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "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 = { "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 = { 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 #7 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "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 #8 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #9 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #10 = { nounwind }
attributes #11 = { noreturn }
attributes #12 = { nounwind allocsize(0) }

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"int", !7, i64 0}
!11 = distinct !{!11, !12}
!12 = !{!"llvm.loop.mustprogress"}
!13 = distinct !{!13, !12}
!14 = distinct !{!14, !12}
!15 = distinct !{!15, !12}
!16 = distinct !{!16, !12}
!17 = distinct !{!17, !12}
!18 = distinct !{!18, !12}
!19 = !{!7, !7, i64 0}
!20 = distinct !{!20, !12}
!21 = distinct !{!21, !22}
!22 = !{!"llvm.loop.unroll.disable"}
!23 = distinct !{!23, !12}
!24 = distinct !{!24, !12}


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