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

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

@test_decoder_code0.fsv = external hidden constant [5 x i32], align 16
@.str = external hidden unnamed_addr constant [93 x i8], align 1
@stdout = external global ptr, align 8
@.str.1 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [21 x i8], align 1
@test_decoder_code0.cmodes = external hidden constant [4 x i32], align 16
@test_decoder_code0.cres = external hidden constant [4 x i32], align 16
@test_decoder_code0.lres = external hidden constant [3 x i32], align 4
@test_decoder_code0.lmodes = external hidden constant [3 x i32], align 4
@.str.8 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [73 x i8], align 1
@__const.test_decoder_code0.tmodes = external hidden unnamed_addr constant [1 x i32], align 4
@__const.test_decoder_code0.tseeds = external hidden unnamed_addr constant [1 x i32], align 4
@__const.test_decoder_code0.tlen = external hidden unnamed_addr constant [1 x i32], align 4
@__const.test_decoder_code0.tret = external hidden unnamed_addr constant [1 x i32], align 4
@Rz = external hidden global i32, align 4
@Rw = external hidden global i32, align 4
@.str.12 = external hidden unnamed_addr constant [44 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local i32 @test_decoder_code0(i32 noundef %0) #0 {
  %2 = alloca i32, align 4
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca i32, align 4
  %6 = alloca i32, align 4
  %7 = alloca i32, align 4
  %8 = alloca i32, align 4
  %9 = alloca i32, align 4
  %10 = alloca i32, align 4
  %11 = alloca [10 x ptr], align 16
  %12 = alloca i32, align 4
  %13 = alloca ptr, align 8
  %14 = alloca i32, align 4
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca ptr, align 8
  %18 = alloca [4096 x i8], align 16
  %19 = alloca ptr, align 8
  %20 = alloca ptr, align 8
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca ptr, align 8
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  %26 = alloca i32, align 4
  %27 = alloca i32, align 4
  %28 = alloca [10 x i32], align 16
  %29 = alloca i32, align 4
  %30 = alloca i32, align 4
  %31 = alloca i32, align 4
  %32 = alloca i32, align 4
  %33 = alloca i32, align 4
  %34 = alloca i32, align 4
  %35 = alloca [10 x i32], align 16
  %36 = alloca i32, align 4
  %37 = alloca i32, align 4
  %38 = alloca [10 x i32], align 16
  %39 = alloca i32, align 4
  %40 = alloca i32, align 4
  %41 = alloca i32, align 4
  %42 = alloca i32, align 4
  %43 = alloca [1 x i32], align 4
  %44 = alloca [1 x i32], align 4
  %45 = alloca [1 x i32], align 4
  %46 = alloca [1 x i32], align 4
  %47 = alloca i32, align 4
  store i32 %0, ptr %3, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, 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 4, ptr %9) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #9
  call void @llvm.lifetime.start.p0(i64 80, ptr %11) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #9
  call void @llvm.lifetime.start.p0(i64 4096, ptr %18) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #9
  store i32 2, ptr %15, align 4, !tbaa !5
  store i32 2, ptr %14, align 4, !tbaa !5
  %48 = call noalias ptr @malloc(i64 noundef 1500) #10
  store ptr %48, ptr %17, align 8, !tbaa !9
  %49 = load ptr, ptr %17, align 8, !tbaa !9
  %50 = icmp eq ptr %49, null
  br i1 %50, label %51, label %52

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

52:                                               ; preds = %1
  %53 = call noalias ptr @malloc(i64 noundef 23104) #10
  store ptr %53, ptr %19, align 8, !tbaa !9
  store i32 0, ptr %10, align 4, !tbaa !5
  br label %54

54:                                               ; preds = %62, %52
  %55 = load i32, ptr %10, align 4, !tbaa !5
  %56 = icmp slt i32 %55, 11552
  br i1 %56, label %57, label %65

57:                                               ; preds = %54
  %58 = load ptr, ptr %19, align 8, !tbaa !9
  %59 = load i32, ptr %10, align 4, !tbaa !5
  %60 = sext i32 %59 to i64
  %61 = getelementptr inbounds i16, ptr %58, i64 %60
  store i16 32749, ptr %61, align 2, !tbaa !11
  br label %62

62:                                               ; preds = %57
  %63 = load i32, ptr %10, align 4, !tbaa !5
  %64 = add nsw i32 %63, 1
  store i32 %64, ptr %10, align 4, !tbaa !5
  br label %54, !llvm.loop !13

65:                                               ; preds = %54
  %66 = load ptr, ptr %19, align 8, !tbaa !9
  %67 = getelementptr inbounds i16, ptr %66, i64 16
  store ptr %67, ptr %20, align 8, !tbaa !9
  %68 = load ptr, ptr @stdout, align 8, !tbaa !9
  %69 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %68, ptr noundef @.str.1, i32 noundef 10) #9
  store i32 0, ptr %9, align 4, !tbaa !5
  br label %70

70:                                               ; preds = %134, %65
  %71 = load i32, ptr %9, align 4, !tbaa !5
  %72 = icmp slt i32 %71, 10
  br i1 %72, label %73, label %137

73:                                               ; preds = %70
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #9
  %74 = load i32, ptr %9, align 4, !tbaa !5
  %75 = ashr i32 %74, 1
  %76 = sext i32 %75 to i64
  %77 = getelementptr inbounds [5 x i32], ptr @test_decoder_code0.fsv, i64 0, i64 %76
  %78 = load i32, ptr %77, align 4, !tbaa !5
  store i32 %78, ptr %21, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #9
  %79 = load i32, ptr %9, align 4, !tbaa !5
  %80 = and i32 %79, 1
  %81 = add nsw i32 %80, 1
  store i32 %81, ptr %22, align 4, !tbaa !5
  store i32 -3, ptr %4, align 4, !tbaa !5
  %82 = load i32, ptr %21, align 4, !tbaa !5
  %83 = load i32, ptr %22, align 4, !tbaa !5
  %84 = call ptr @opus_decoder_create(i32 noundef %82, i32 noundef %83, ptr noundef %4)
  %85 = load i32, ptr %9, align 4, !tbaa !5
  %86 = sext i32 %85 to i64
  %87 = getelementptr inbounds [10 x ptr], ptr %11, i64 0, i64 %86
  store ptr %84, ptr %87, align 8, !tbaa !9
  %88 = load i32, ptr %4, align 4, !tbaa !5
  %89 = icmp ne i32 %88, 0
  br i1 %89, label %96, label %90

90:                                               ; preds = %73
  %91 = load i32, ptr %9, align 4, !tbaa !5
  %92 = sext i32 %91 to i64
  %93 = getelementptr inbounds [10 x ptr], ptr %11, i64 0, i64 %92
  %94 = load ptr, ptr %93, align 8, !tbaa !9
  %95 = icmp eq ptr %94, null
  br i1 %95, label %96, label %97

96:                                               ; preds = %90, %73
  call void @_test_failed(ptr noundef @.str, i32 noundef 83) #11
  unreachable

97:                                               ; preds = %90
  %98 = load ptr, ptr @stdout, align 8, !tbaa !9
  %99 = load i32, ptr %21, align 4, !tbaa !5
  %100 = load i32, ptr %22, align 4, !tbaa !5
  %101 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %98, ptr noundef @.str.2, i32 noundef %99, i32 noundef %100) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #9
  %102 = load i32, ptr %22, align 4, !tbaa !5
  %103 = call i32 @opus_decoder_get_size(i32 noundef %102)
  %104 = sext i32 %103 to i64
  %105 = call noalias ptr @malloc(i64 noundef %104) #10
  store ptr %105, ptr %23, align 8, !tbaa !9
  %106 = load ptr, ptr %23, align 8, !tbaa !9
  %107 = icmp eq ptr %106, null
  br i1 %107, label %108, label %109

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

109:                                              ; preds = %97
  %110 = load ptr, ptr %23, align 8, !tbaa !9
  %111 = load i32, ptr %9, align 4, !tbaa !5
  %112 = sext i32 %111 to i64
  %113 = getelementptr inbounds [10 x ptr], ptr %11, i64 0, i64 %112
  %114 = load ptr, ptr %113, align 8, !tbaa !9
  %115 = load i32, ptr %22, align 4, !tbaa !5
  %116 = call i32 @opus_decoder_get_size(i32 noundef %115)
  %117 = sext i32 %116 to i64
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %110, ptr align 1 %114, i64 %117, i1 false)
  %118 = load i32, ptr %9, align 4, !tbaa !5
  %119 = sext i32 %118 to i64
  %120 = getelementptr inbounds [10 x ptr], ptr %11, i64 0, i64 %119
  %121 = load ptr, ptr %120, align 8, !tbaa !9
  %122 = load i32, ptr %22, align 4, !tbaa !5
  %123 = call i32 @opus_decoder_get_size(i32 noundef %122)
  %124 = sext i32 %123 to i64
  call void @llvm.memset.p0.i64(ptr align 1 %121, i8 -1, i64 %124, i1 false)
  %125 = load i32, ptr %9, align 4, !tbaa !5
  %126 = sext i32 %125 to i64
  %127 = getelementptr inbounds [10 x ptr], ptr %11, i64 0, i64 %126
  %128 = load ptr, ptr %127, align 8, !tbaa !9
  call void @opus_decoder_destroy(ptr noundef %128)
  %129 = call i32 (ptr, ...) @printf(ptr noundef @.str.3)
  %130 = load ptr, ptr %23, align 8, !tbaa !9
  %131 = load i32, ptr %9, align 4, !tbaa !5
  %132 = sext i32 %131 to i64
  %133 = getelementptr inbounds [10 x ptr], ptr %11, i64 0, i64 %132
  store ptr %130, ptr %133, align 8, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, 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
  br label %134

134:                                              ; preds = %109
  %135 = load i32, ptr %9, align 4, !tbaa !5
  %136 = add nsw i32 %135, 1
  store i32 %136, ptr %9, align 4, !tbaa !5
  br label %70, !llvm.loop !15

137:                                              ; preds = %70
  %138 = call i32 @opus_decoder_get_size(i32 noundef 1)
  store i32 %138, ptr %12, align 4, !tbaa !5
  %139 = load i32, ptr %12, align 4, !tbaa !5
  %140 = sext i32 %139 to i64
  %141 = call noalias ptr @malloc(i64 noundef %140) #10
  store ptr %141, ptr %13, align 8, !tbaa !9
  %142 = load ptr, ptr %13, align 8, !tbaa !9
  %143 = icmp eq ptr %142, null
  br i1 %143, label %144, label %145

144:                                              ; preds = %137
  call void @_test_failed(ptr noundef @.str, i32 noundef 100) #11
  unreachable

145:                                              ; preds = %137
  store i32 0, ptr %9, align 4, !tbaa !5
  br label %146

146:                                              ; preds = %399, %145
  %147 = load i32, ptr %9, align 4, !tbaa !5
  %148 = icmp slt i32 %147, 10
  br i1 %148, label %149, label %402

149:                                              ; preds = %146
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #9
  %150 = load i32, ptr %9, align 4, !tbaa !5
  %151 = ashr i32 %150, 1
  %152 = sext i32 %151 to i64
  %153 = getelementptr inbounds [5 x i32], ptr @test_decoder_code0.fsv, i64 0, i64 %152
  %154 = load i32, ptr %153, align 4, !tbaa !5
  %155 = sdiv i32 48000, %154
  store i32 %155, ptr %24, align 4, !tbaa !5
  store i32 0, ptr %8, align 4, !tbaa !5
  br label %156

156:                                              ; preds = %395, %149
  %157 = load i32, ptr %8, align 4, !tbaa !5
  %158 = icmp slt i32 %157, 2
  br i1 %158, label %159, label %398

159:                                              ; preds = %156
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #9
  %160 = load i32, ptr %9, align 4, !tbaa !5
  %161 = sext i32 %160 to i64
  %162 = getelementptr inbounds [10 x ptr], ptr %11, i64 0, i64 %161
  %163 = load ptr, ptr %162, align 8, !tbaa !9
  %164 = load ptr, ptr %20, align 8, !tbaa !9
  %165 = load i32, ptr %24, align 4, !tbaa !5
  %166 = sdiv i32 120, %165
  %167 = load i32, ptr %8, align 4, !tbaa !5
  %168 = call i32 @opus_decode(ptr noundef %163, ptr noundef null, i32 noundef 0, ptr noundef %164, i32 noundef %166, i32 noundef %167)
  store i32 %168, ptr %7, align 4, !tbaa !5
  %169 = load i32, ptr %7, align 4, !tbaa !5
  %170 = load i32, ptr %24, align 4, !tbaa !5
  %171 = sdiv i32 120, %170
  %172 = icmp ne i32 %169, %171
  br i1 %172, label %173, label %174

173:                                              ; preds = %159
  call void @_test_failed(ptr noundef @.str, i32 noundef 110) #11
  unreachable

174:                                              ; preds = %159
  %175 = load i32, ptr %9, align 4, !tbaa !5
  %176 = sext i32 %175 to i64
  %177 = getelementptr inbounds [10 x ptr], ptr %11, i64 0, i64 %176
  %178 = load ptr, ptr %177, align 8, !tbaa !9
  %179 = ptrtoint ptr %25 to i64
  %180 = ptrtoint ptr %25 to i64
  %181 = sub i64 %179, %180
  %182 = sdiv exact i64 %181, 4
  %183 = getelementptr inbounds i32, ptr %25, i64 %182
  %184 = call i32 (ptr, i32, ...) @opus_decoder_ctl(ptr noundef %178, i32 noundef 4039, ptr noundef %183)
  %185 = icmp ne i32 %184, 0
  br i1 %185, label %186, label %187

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

187:                                              ; preds = %174
  %188 = load i32, ptr %25, align 4, !tbaa !5
  %189 = load i32, ptr %24, align 4, !tbaa !5
  %190 = sdiv i32 120, %189
  %191 = icmp ne i32 %188, %190
  br i1 %191, label %192, label %193

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

193:                                              ; preds = %187
  %194 = load i32, ptr %9, align 4, !tbaa !5
  %195 = sext i32 %194 to i64
  %196 = getelementptr inbounds [10 x ptr], ptr %11, i64 0, i64 %195
  %197 = load ptr, ptr %196, align 8, !tbaa !9
  %198 = load ptr, ptr %20, align 8, !tbaa !9
  %199 = load i32, ptr %24, align 4, !tbaa !5
  %200 = sdiv i32 120, %199
  %201 = add nsw i32 %200, 2
  %202 = load i32, ptr %8, align 4, !tbaa !5
  %203 = call i32 @opus_decode(ptr noundef %197, ptr noundef null, i32 noundef 0, ptr noundef %198, i32 noundef %201, i32 noundef %202)
  store i32 %203, ptr %7, align 4, !tbaa !5
  %204 = load i32, ptr %7, align 4, !tbaa !5
  %205 = icmp ne i32 %204, -1
  br i1 %205, label %206, label %207

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

207:                                              ; preds = %193
  %208 = load i32, ptr %9, align 4, !tbaa !5
  %209 = sext i32 %208 to i64
  %210 = getelementptr inbounds [10 x ptr], ptr %11, i64 0, i64 %209
  %211 = load ptr, ptr %210, align 8, !tbaa !9
  %212 = load ptr, ptr %20, align 8, !tbaa !9
  %213 = load i32, ptr %24, align 4, !tbaa !5
  %214 = sdiv i32 120, %213
  %215 = load i32, ptr %8, align 4, !tbaa !5
  %216 = call i32 @opus_decode(ptr noundef %211, ptr noundef null, i32 noundef -1, ptr noundef %212, i32 noundef %214, i32 noundef %215)
  store i32 %216, ptr %7, align 4, !tbaa !5
  %217 = load i32, ptr %7, align 4, !tbaa !5
  %218 = load i32, ptr %24, align 4, !tbaa !5
  %219 = sdiv i32 120, %218
  %220 = icmp ne i32 %217, %219
  br i1 %220, label %221, label %222

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

222:                                              ; preds = %207
  %223 = load i32, ptr %9, align 4, !tbaa !5
  %224 = sext i32 %223 to i64
  %225 = getelementptr inbounds [10 x ptr], ptr %11, i64 0, i64 %224
  %226 = load ptr, ptr %225, align 8, !tbaa !9
  %227 = load ptr, ptr %20, align 8, !tbaa !9
  %228 = load i32, ptr %24, align 4, !tbaa !5
  %229 = sdiv i32 120, %228
  %230 = load i32, ptr %8, align 4, !tbaa !5
  %231 = call i32 @opus_decode(ptr noundef %226, ptr noundef null, i32 noundef 1, ptr noundef %227, i32 noundef %229, i32 noundef %230)
  store i32 %231, ptr %7, align 4, !tbaa !5
  %232 = load i32, ptr %7, align 4, !tbaa !5
  %233 = load i32, ptr %24, align 4, !tbaa !5
  %234 = sdiv i32 120, %233
  %235 = icmp ne i32 %232, %234
  br i1 %235, label %236, label %237

236:                                              ; preds = %222
  call void @_test_failed(ptr noundef @.str, i32 noundef 122) #11
  unreachable

237:                                              ; preds = %222
  %238 = load i32, ptr %9, align 4, !tbaa !5
  %239 = sext i32 %238 to i64
  %240 = getelementptr inbounds [10 x ptr], ptr %11, i64 0, i64 %239
  %241 = load ptr, ptr %240, align 8, !tbaa !9
  %242 = load ptr, ptr %20, align 8, !tbaa !9
  %243 = load i32, ptr %24, align 4, !tbaa !5
  %244 = sdiv i32 120, %243
  %245 = load i32, ptr %8, align 4, !tbaa !5
  %246 = call i32 @opus_decode(ptr noundef %241, ptr noundef null, i32 noundef 10, ptr noundef %242, i32 noundef %244, i32 noundef %245)
  store i32 %246, ptr %7, align 4, !tbaa !5
  %247 = load i32, ptr %7, align 4, !tbaa !5
  %248 = load i32, ptr %24, align 4, !tbaa !5
  %249 = sdiv i32 120, %248
  %250 = icmp ne i32 %247, %249
  br i1 %250, label %251, label %252

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

252:                                              ; preds = %237
  %253 = load i32, ptr %9, align 4, !tbaa !5
  %254 = sext i32 %253 to i64
  %255 = getelementptr inbounds [10 x ptr], ptr %11, i64 0, i64 %254
  %256 = load ptr, ptr %255, align 8, !tbaa !9
  %257 = call i32 @fast_rand()
  %258 = load ptr, ptr %20, align 8, !tbaa !9
  %259 = load i32, ptr %24, align 4, !tbaa !5
  %260 = sdiv i32 120, %259
  %261 = load i32, ptr %8, align 4, !tbaa !5
  %262 = call i32 @opus_decode(ptr noundef %256, ptr noundef null, i32 noundef %257, ptr noundef %258, i32 noundef %260, i32 noundef %261)
  store i32 %262, ptr %7, align 4, !tbaa !5
  %263 = load i32, ptr %7, align 4, !tbaa !5
  %264 = load i32, ptr %24, align 4, !tbaa !5
  %265 = sdiv i32 120, %264
  %266 = icmp ne i32 %263, %265
  br i1 %266, label %267, label %268

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

268:                                              ; preds = %252
  %269 = load i32, ptr %9, align 4, !tbaa !5
  %270 = sext i32 %269 to i64
  %271 = getelementptr inbounds [10 x ptr], ptr %11, i64 0, i64 %270
  %272 = load ptr, ptr %271, align 8, !tbaa !9
  %273 = ptrtoint ptr %25 to i64
  %274 = ptrtoint ptr %25 to i64
  %275 = sub i64 %273, %274
  %276 = sdiv exact i64 %275, 4
  %277 = getelementptr inbounds i32, ptr %25, i64 %276
  %278 = call i32 (ptr, i32, ...) @opus_decoder_ctl(ptr noundef %272, i32 noundef 4039, ptr noundef %277)
  %279 = icmp ne i32 %278, 0
  br i1 %279, label %280, label %281

280:                                              ; preds = %268
  call void @_test_failed(ptr noundef @.str, i32 noundef 127) #11
  unreachable

281:                                              ; preds = %268
  %282 = load i32, ptr %25, align 4, !tbaa !5
  %283 = load i32, ptr %24, align 4, !tbaa !5
  %284 = sdiv i32 120, %283
  %285 = icmp ne i32 %282, %284
  br i1 %285, label %286, label %287

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

287:                                              ; preds = %281
  %288 = load i32, ptr %9, align 4, !tbaa !5
  %289 = sext i32 %288 to i64
  %290 = getelementptr inbounds [10 x ptr], ptr %11, i64 0, i64 %289
  %291 = load ptr, ptr %290, align 8, !tbaa !9
  %292 = load ptr, ptr %17, align 8, !tbaa !9
  %293 = load ptr, ptr %20, align 8, !tbaa !9
  %294 = load i32, ptr %24, align 4, !tbaa !5
  %295 = sdiv i32 120, %294
  %296 = load i32, ptr %8, align 4, !tbaa !5
  %297 = call i32 @opus_decode(ptr noundef %291, ptr noundef %292, i32 noundef 0, ptr noundef %293, i32 noundef %295, i32 noundef %296)
  store i32 %297, ptr %7, align 4, !tbaa !5
  %298 = load i32, ptr %7, align 4, !tbaa !5
  %299 = load i32, ptr %24, align 4, !tbaa !5
  %300 = sdiv i32 120, %299
  %301 = icmp ne i32 %298, %300
  br i1 %301, label %302, label %303

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

303:                                              ; preds = %287
  %304 = load ptr, ptr %20, align 8, !tbaa !9
  %305 = getelementptr inbounds i16, ptr %304, i64 0
  store i16 32749, ptr %305, align 2, !tbaa !11
  %306 = load i32, ptr %9, align 4, !tbaa !5
  %307 = sext i32 %306 to i64
  %308 = getelementptr inbounds [10 x ptr], ptr %11, i64 0, i64 %307
  %309 = load ptr, ptr %308, align 8, !tbaa !9
  %310 = load ptr, ptr %17, align 8, !tbaa !9
  %311 = load ptr, ptr %20, align 8, !tbaa !9
  %312 = load i32, ptr %8, align 4, !tbaa !5
  %313 = call i32 @opus_decode(ptr noundef %309, ptr noundef %310, i32 noundef 0, ptr noundef %311, i32 noundef 0, i32 noundef %312)
  store i32 %313, ptr %7, align 4, !tbaa !5
  %314 = load i32, ptr %7, align 4, !tbaa !5
  %315 = icmp sgt i32 %314, 0
  br i1 %315, label %316, label %317

316:                                              ; preds = %303
  call void @_test_failed(ptr noundef @.str, i32 noundef 137) #11
  unreachable

317:                                              ; preds = %303
  %318 = load i32, ptr %9, align 4, !tbaa !5
  %319 = sext i32 %318 to i64
  %320 = getelementptr inbounds [10 x ptr], ptr %11, i64 0, i64 %319
  %321 = load ptr, ptr %320, align 8, !tbaa !9
  %322 = load ptr, ptr %17, align 8, !tbaa !9
  %323 = load i32, ptr %8, align 4, !tbaa !5
  %324 = call i32 @opus_decode(ptr noundef %321, ptr noundef %322, i32 noundef 0, ptr noundef null, i32 noundef 0, i32 noundef %323)
  store i32 %324, ptr %7, align 4, !tbaa !5
  %325 = load i32, ptr %7, align 4, !tbaa !5
  %326 = icmp sgt i32 %325, 0
  br i1 %326, label %327, label %328

327:                                              ; preds = %317
  call void @_test_failed(ptr noundef @.str, i32 noundef 146) #11
  unreachable

328:                                              ; preds = %317
  %329 = load ptr, ptr %20, align 8, !tbaa !9
  %330 = getelementptr inbounds i16, ptr %329, i64 0
  %331 = load i16, ptr %330, align 2, !tbaa !11
  %332 = sext i16 %331 to i32
  %333 = icmp ne i32 %332, 32749
  br i1 %333, label %334, label %335

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

335:                                              ; preds = %328
  %336 = load i32, ptr %9, align 4, !tbaa !5
  %337 = sext i32 %336 to i64
  %338 = getelementptr inbounds [10 x ptr], ptr %11, i64 0, i64 %337
  %339 = load ptr, ptr %338, align 8, !tbaa !9
  %340 = load ptr, ptr %17, align 8, !tbaa !9
  %341 = load ptr, ptr %20, align 8, !tbaa !9
  %342 = load i32, ptr %8, align 4, !tbaa !5
  %343 = call i32 @opus_decode(ptr noundef %339, ptr noundef %340, i32 noundef -1, ptr noundef %341, i32 noundef 5760, i32 noundef %342)
  store i32 %343, ptr %7, align 4, !tbaa !5
  %344 = load i32, ptr %7, align 4, !tbaa !5
  %345 = icmp sge i32 %344, 0
  br i1 %345, label %346, label %347

346:                                              ; preds = %335
  call void @_test_failed(ptr noundef @.str, i32 noundef 151) #11
  unreachable

347:                                              ; preds = %335
  %348 = load i32, ptr %9, align 4, !tbaa !5
  %349 = sext i32 %348 to i64
  %350 = getelementptr inbounds [10 x ptr], ptr %11, i64 0, i64 %349
  %351 = load ptr, ptr %350, align 8, !tbaa !9
  %352 = load ptr, ptr %17, align 8, !tbaa !9
  %353 = load ptr, ptr %20, align 8, !tbaa !9
  %354 = load i32, ptr %8, align 4, !tbaa !5
  %355 = call i32 @opus_decode(ptr noundef %351, ptr noundef %352, i32 noundef -2147483648, ptr noundef %353, i32 noundef 5760, i32 noundef %354)
  store i32 %355, ptr %7, align 4, !tbaa !5
  %356 = load i32, ptr %7, align 4, !tbaa !5
  %357 = icmp sge i32 %356, 0
  br i1 %357, label %358, label %359

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

359:                                              ; preds = %347
  %360 = load i32, ptr %9, align 4, !tbaa !5
  %361 = sext i32 %360 to i64
  %362 = getelementptr inbounds [10 x ptr], ptr %11, i64 0, i64 %361
  %363 = load ptr, ptr %362, align 8, !tbaa !9
  %364 = load ptr, ptr %17, align 8, !tbaa !9
  %365 = load ptr, ptr %20, align 8, !tbaa !9
  %366 = load i32, ptr %8, align 4, !tbaa !5
  %367 = call i32 @opus_decode(ptr noundef %363, ptr noundef %364, i32 noundef -1, ptr noundef %365, i32 noundef -1, i32 noundef %366)
  store i32 %367, ptr %7, align 4, !tbaa !5
  %368 = load i32, ptr %7, align 4, !tbaa !5
  %369 = icmp sge i32 %368, 0
  br i1 %369, label %370, label %371

370:                                              ; preds = %359
  call void @_test_failed(ptr noundef @.str, i32 noundef 155) #11
  unreachable

371:                                              ; preds = %359
  %372 = load i32, ptr %9, align 4, !tbaa !5
  %373 = sext i32 %372 to i64
  %374 = getelementptr inbounds [10 x ptr], ptr %11, i64 0, i64 %373
  %375 = load ptr, ptr %374, align 8, !tbaa !9
  %376 = load ptr, ptr %17, align 8, !tbaa !9
  %377 = load ptr, ptr %20, align 8, !tbaa !9
  %378 = load i32, ptr %8, align 4, !tbaa !5
  %379 = icmp ne i32 %378, 0
  %380 = zext i1 %379 to i64
  %381 = select i1 %379, i32 -1, i32 2
  %382 = call i32 @opus_decode(ptr noundef %375, ptr noundef %376, i32 noundef 1, ptr noundef %377, i32 noundef 5760, i32 noundef %381)
  store i32 %382, ptr %7, align 4, !tbaa !5
  %383 = load i32, ptr %7, align 4, !tbaa !5
  %384 = icmp sge i32 %383, 0
  br i1 %384, label %385, label %386

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

386:                                              ; preds = %371
  %387 = load i32, ptr %9, align 4, !tbaa !5
  %388 = sext i32 %387 to i64
  %389 = getelementptr inbounds [10 x ptr], ptr %11, i64 0, i64 %388
  %390 = load ptr, ptr %389, align 8, !tbaa !9
  %391 = call i32 (ptr, i32, ...) @opus_decoder_ctl(ptr noundef %390, i32 noundef 4028)
  %392 = icmp ne i32 %391, 0
  br i1 %392, label %393, label %394

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

394:                                              ; preds = %386
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #9
  br label %395

395:                                              ; preds = %394
  %396 = load i32, ptr %8, align 4, !tbaa !5
  %397 = add nsw i32 %396, 1
  store i32 %397, ptr %8, align 4, !tbaa !5
  br label %156, !llvm.loop !16

398:                                              ; preds = %156
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #9
  br label %399

399:                                              ; preds = %398
  %400 = load i32, ptr %9, align 4, !tbaa !5
  %401 = add nsw i32 %400, 1
  store i32 %401, ptr %9, align 4, !tbaa !5
  br label %146, !llvm.loop !17

402:                                              ; preds = %146
  %403 = load ptr, ptr @stdout, align 8, !tbaa !9
  %404 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %403, ptr noundef @.str.4) #9
  store i32 0, ptr %10, align 4, !tbaa !5
  br label %405

405:                                              ; preds = %640, %402
  %406 = load i32, ptr %10, align 4, !tbaa !5
  %407 = icmp slt i32 %406, 64
  br i1 %407, label %408, label %643

408:                                              ; preds = %405
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #9
  call void @llvm.lifetime.start.p0(i64 40, ptr %28) #9
  %409 = load i32, ptr %10, align 4, !tbaa !5
  %410 = shl i32 %409, 2
  %411 = trunc i32 %410 to i8
  %412 = load ptr, ptr %17, align 8, !tbaa !9
  %413 = getelementptr inbounds i8, ptr %412, i64 0
  store i8 %411, ptr %413, align 1, !tbaa !18
  %414 = load ptr, ptr %17, align 8, !tbaa !9
  %415 = getelementptr inbounds i8, ptr %414, i64 1
  store i8 -1, ptr %415, align 1, !tbaa !18
  %416 = load ptr, ptr %17, align 8, !tbaa !9
  %417 = getelementptr inbounds i8, ptr %416, i64 2
  store i8 -1, ptr %417, align 1, !tbaa !18
  %418 = load ptr, ptr %17, align 8, !tbaa !9
  %419 = call i32 @opus_packet_get_nb_channels(ptr noundef %418)
  store i32 %419, ptr %4, align 4, !tbaa !5
  %420 = load i32, ptr %4, align 4, !tbaa !5
  %421 = load i32, ptr %10, align 4, !tbaa !5
  %422 = and i32 %421, 1
  %423 = add nsw i32 %422, 1
  %424 = icmp ne i32 %420, %423
  br i1 %424, label %425, label %426

425:                                              ; preds = %408
  call void @_test_failed(ptr noundef @.str, i32 noundef 176) #11
  unreachable

426:                                              ; preds = %408
  store i32 0, ptr %9, align 4, !tbaa !5
  br label %427

427:                                              ; preds = %447, %426
  %428 = load i32, ptr %9, align 4, !tbaa !5
  %429 = icmp slt i32 %428, 10
  br i1 %429, label %430, label %450

430:                                              ; preds = %427
  %431 = load i32, ptr %9, align 4, !tbaa !5
  %432 = sext i32 %431 to i64
  %433 = getelementptr inbounds [10 x ptr], ptr %11, i64 0, i64 %432
  %434 = load ptr, ptr %433, align 8, !tbaa !9
  %435 = load ptr, ptr %17, align 8, !tbaa !9
  %436 = call i32 @opus_decoder_get_nb_samples(ptr noundef %434, ptr noundef %435, i32 noundef 1)
  %437 = load i32, ptr %9, align 4, !tbaa !5
  %438 = sext i32 %437 to i64
  %439 = getelementptr inbounds [10 x i32], ptr %28, i64 0, i64 %438
  store i32 %436, ptr %439, align 4, !tbaa !5
  %440 = load i32, ptr %9, align 4, !tbaa !5
  %441 = sext i32 %440 to i64
  %442 = getelementptr inbounds [10 x i32], ptr %28, i64 0, i64 %441
  %443 = load i32, ptr %442, align 4, !tbaa !5
  %444 = icmp sgt i32 %443, 2880
  br i1 %444, label %445, label %446

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

446:                                              ; preds = %430
  br label %447

447:                                              ; preds = %446
  %448 = load i32, ptr %9, align 4, !tbaa !5
  %449 = add nsw i32 %448, 1
  store i32 %449, ptr %9, align 4, !tbaa !5
  br label %427, !llvm.loop !19

450:                                              ; preds = %427
  store i32 0, ptr %27, align 4, !tbaa !5
  br label %451

451:                                              ; preds = %521, %450
  %452 = load i32, ptr %27, align 4, !tbaa !5
  %453 = icmp slt i32 %452, 256
  br i1 %453, label %454, label %524

454:                                              ; preds = %451
  %455 = load i32, ptr %27, align 4, !tbaa !5
  %456 = trunc i32 %455 to i8
  %457 = load ptr, ptr %17, align 8, !tbaa !9
  %458 = getelementptr inbounds i8, ptr %457, i64 1
  store i8 %456, ptr %458, align 1, !tbaa !18
  store i32 0, ptr %9, align 4, !tbaa !5
  br label %459

459:                                              ; preds = %517, %454
  %460 = load i32, ptr %9, align 4, !tbaa !5
  %461 = icmp slt i32 %460, 10
  br i1 %461, label %462, label %520

462:                                              ; preds = %459
  %463 = load i32, ptr %9, align 4, !tbaa !5
  %464 = sext i32 %463 to i64
  %465 = getelementptr inbounds [10 x ptr], ptr %11, i64 0, i64 %464
  %466 = load ptr, ptr %465, align 8, !tbaa !9
  %467 = load ptr, ptr %17, align 8, !tbaa !9
  %468 = load ptr, ptr %20, align 8, !tbaa !9
  %469 = call i32 @opus_decode(ptr noundef %466, ptr noundef %467, i32 noundef 3, ptr noundef %468, i32 noundef 5760, i32 noundef 0)
  store i32 %469, ptr %7, align 4, !tbaa !5
  %470 = load i32, ptr %7, align 4, !tbaa !5
  %471 = load i32, ptr %9, align 4, !tbaa !5
  %472 = sext i32 %471 to i64
  %473 = getelementptr inbounds [10 x i32], ptr %28, i64 0, i64 %472
  %474 = load i32, ptr %473, align 4, !tbaa !5
  %475 = icmp ne i32 %470, %474
  br i1 %475, label %476, label %477

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

477:                                              ; preds = %462
  %478 = load i32, ptr %9, align 4, !tbaa !5
  %479 = sext i32 %478 to i64
  %480 = getelementptr inbounds [10 x ptr], ptr %11, i64 0, i64 %479
  %481 = load ptr, ptr %480, align 8, !tbaa !9
  %482 = ptrtoint ptr %26 to i64
  %483 = ptrtoint ptr %26 to i64
  %484 = sub i64 %482, %483
  %485 = sdiv exact i64 %484, 4
  %486 = getelementptr inbounds i32, ptr %26, i64 %485
  %487 = call i32 (ptr, i32, ...) @opus_decoder_ctl(ptr noundef %481, i32 noundef 4039, ptr noundef %486)
  %488 = icmp ne i32 %487, 0
  br i1 %488, label %489, label %490

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

490:                                              ; preds = %477
  %491 = load i32, ptr %26, align 4, !tbaa !5
  %492 = load i32, ptr %7, align 4, !tbaa !5
  %493 = icmp ne i32 %491, %492
  br i1 %493, label %494, label %495

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

495:                                              ; preds = %490
  %496 = load i32, ptr %9, align 4, !tbaa !5
  %497 = sext i32 %496 to i64
  %498 = getelementptr inbounds [10 x ptr], ptr %11, i64 0, i64 %497
  %499 = load ptr, ptr %498, align 8, !tbaa !9
  %500 = ptrtoint ptr %14 to i64
  %501 = ptrtoint ptr %14 to i64
  %502 = sub i64 %500, %501
  %503 = sdiv exact i64 %502, 4
  %504 = getelementptr inbounds i32, ptr %14, i64 %503
  %505 = call i32 (ptr, i32, ...) @opus_decoder_ctl(ptr noundef %499, i32 noundef 4031, ptr noundef %504)
  %506 = load i32, ptr %9, align 4, !tbaa !5
  %507 = icmp eq i32 %506, 0
  br i1 %507, label %508, label %510

508:                                              ; preds = %495
  %509 = load i32, ptr %14, align 4, !tbaa !5
  store i32 %509, ptr %15, align 4, !tbaa !5
  br label %516

510:                                              ; preds = %495
  %511 = load i32, ptr %14, align 4, !tbaa !5
  %512 = load i32, ptr %15, align 4, !tbaa !5
  %513 = icmp ne i32 %511, %512
  br i1 %513, label %514, label %515

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

515:                                              ; preds = %510
  br label %516

516:                                              ; preds = %515, %508
  br label %517

517:                                              ; preds = %516
  %518 = load i32, ptr %9, align 4, !tbaa !5
  %519 = add nsw i32 %518, 1
  store i32 %519, ptr %9, align 4, !tbaa !5
  br label %459, !llvm.loop !20

520:                                              ; preds = %459
  br label %521

521:                                              ; preds = %520
  %522 = load i32, ptr %27, align 4, !tbaa !5
  %523 = add nsw i32 %522, 1
  store i32 %523, ptr %27, align 4, !tbaa !5
  br label %451, !llvm.loop !21

524:                                              ; preds = %451
  store i32 0, ptr %9, align 4, !tbaa !5
  br label %525

525:                                              ; preds = %636, %524
  %526 = load i32, ptr %9, align 4, !tbaa !5
  %527 = icmp slt i32 %526, 10
  br i1 %527, label %528, label %639

528:                                              ; preds = %525
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #9
  %529 = load i32, ptr %9, align 4, !tbaa !5
  %530 = ashr i32 %529, 1
  %531 = sext i32 %530 to i64
  %532 = getelementptr inbounds [5 x i32], ptr @test_decoder_code0.fsv, i64 0, i64 %531
  %533 = load i32, ptr %532, align 4, !tbaa !5
  %534 = sdiv i32 48000, %533
  store i32 %534, ptr %29, align 4, !tbaa !5
  store i32 0, ptr %27, align 4, !tbaa !5
  br label %535

535:                                              ; preds = %575, %528
  %536 = load i32, ptr %27, align 4, !tbaa !5
  %537 = icmp slt i32 %536, 6
  br i1 %537, label %538, label %578

538:                                              ; preds = %535
  %539 = load i32, ptr %9, align 4, !tbaa !5
  %540 = sext i32 %539 to i64
  %541 = getelementptr inbounds [10 x ptr], ptr %11, i64 0, i64 %540
  %542 = load ptr, ptr %541, align 8, !tbaa !9
  %543 = load ptr, ptr %20, align 8, !tbaa !9
  %544 = load i32, ptr %9, align 4, !tbaa !5
  %545 = sext i32 %544 to i64
  %546 = getelementptr inbounds [10 x i32], ptr %28, i64 0, i64 %545
  %547 = load i32, ptr %546, align 4, !tbaa !5
  %548 = call i32 @opus_decode(ptr noundef %542, ptr noundef null, i32 noundef 0, ptr noundef %543, i32 noundef %547, i32 noundef 0)
  store i32 %548, ptr %7, align 4, !tbaa !5
  %549 = load i32, ptr %7, align 4, !tbaa !5
  %550 = load i32, ptr %9, align 4, !tbaa !5
  %551 = sext i32 %550 to i64
  %552 = getelementptr inbounds [10 x i32], ptr %28, i64 0, i64 %551
  %553 = load i32, ptr %552, align 4, !tbaa !5
  %554 = icmp ne i32 %549, %553
  br i1 %554, label %555, label %556

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

556:                                              ; preds = %538
  %557 = load i32, ptr %9, align 4, !tbaa !5
  %558 = sext i32 %557 to i64
  %559 = getelementptr inbounds [10 x ptr], ptr %11, i64 0, i64 %558
  %560 = load ptr, ptr %559, align 8, !tbaa !9
  %561 = ptrtoint ptr %26 to i64
  %562 = ptrtoint ptr %26 to i64
  %563 = sub i64 %561, %562
  %564 = sdiv exact i64 %563, 4
  %565 = getelementptr inbounds i32, ptr %26, i64 %564
  %566 = call i32 (ptr, i32, ...) @opus_decoder_ctl(ptr noundef %560, i32 noundef 4039, ptr noundef %565)
  %567 = icmp ne i32 %566, 0
  br i1 %567, label %568, label %569

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

569:                                              ; preds = %556
  %570 = load i32, ptr %26, align 4, !tbaa !5
  %571 = load i32, ptr %7, align 4, !tbaa !5
  %572 = icmp ne i32 %570, %571
  br i1 %572, label %573, label %574

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

574:                                              ; preds = %569
  br label %575

575:                                              ; preds = %574
  %576 = load i32, ptr %27, align 4, !tbaa !5
  %577 = add nsw i32 %576, 1
  store i32 %577, ptr %27, align 4, !tbaa !5
  br label %535, !llvm.loop !22

578:                                              ; preds = %535
  %579 = load i32, ptr %9, align 4, !tbaa !5
  %580 = sext i32 %579 to i64
  %581 = getelementptr inbounds [10 x i32], ptr %28, i64 0, i64 %580
  %582 = load i32, ptr %581, align 4, !tbaa !5
  %583 = load i32, ptr %29, align 4, !tbaa !5
  %584 = sdiv i32 120, %583
  %585 = icmp ne i32 %582, %584
  br i1 %585, label %586, label %619

586:                                              ; preds = %578
  %587 = load i32, ptr %9, align 4, !tbaa !5
  %588 = sext i32 %587 to i64
  %589 = getelementptr inbounds [10 x ptr], ptr %11, i64 0, i64 %588
  %590 = load ptr, ptr %589, align 8, !tbaa !9
  %591 = load ptr, ptr %20, align 8, !tbaa !9
  %592 = load i32, ptr %29, align 4, !tbaa !5
  %593 = sdiv i32 120, %592
  %594 = call i32 @opus_decode(ptr noundef %590, ptr noundef null, i32 noundef 0, ptr noundef %591, i32 noundef %593, i32 noundef 0)
  store i32 %594, ptr %7, align 4, !tbaa !5
  %595 = load i32, ptr %7, align 4, !tbaa !5
  %596 = load i32, ptr %29, align 4, !tbaa !5
  %597 = sdiv i32 120, %596
  %598 = icmp ne i32 %595, %597
  br i1 %598, label %599, label %600

599:                                              ; preds = %586
  call void @_test_failed(ptr noundef @.str, i32 noundef 213) #11
  unreachable

600:                                              ; preds = %586
  %601 = load i32, ptr %9, align 4, !tbaa !5
  %602 = sext i32 %601 to i64
  %603 = getelementptr inbounds [10 x ptr], ptr %11, i64 0, i64 %602
  %604 = load ptr, ptr %603, align 8, !tbaa !9
  %605 = ptrtoint ptr %26 to i64
  %606 = ptrtoint ptr %26 to i64
  %607 = sub i64 %605, %606
  %608 = sdiv exact i64 %607, 4
  %609 = getelementptr inbounds i32, ptr %26, i64 %608
  %610 = call i32 (ptr, i32, ...) @opus_decoder_ctl(ptr noundef %604, i32 noundef 4039, ptr noundef %609)
  %611 = icmp ne i32 %610, 0
  br i1 %611, label %612, label %613

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

613:                                              ; preds = %600
  %614 = load i32, ptr %26, align 4, !tbaa !5
  %615 = load i32, ptr %7, align 4, !tbaa !5
  %616 = icmp ne i32 %614, %615
  br i1 %616, label %617, label %618

617:                                              ; preds = %613
  call void @_test_failed(ptr noundef @.str, i32 noundef 215) #11
  unreachable

618:                                              ; preds = %613
  br label %619

619:                                              ; preds = %618, %578
  %620 = load i32, ptr %9, align 4, !tbaa !5
  %621 = sext i32 %620 to i64
  %622 = getelementptr inbounds [10 x ptr], ptr %11, i64 0, i64 %621
  %623 = load ptr, ptr %622, align 8, !tbaa !9
  %624 = load ptr, ptr %17, align 8, !tbaa !9
  %625 = load ptr, ptr %20, align 8, !tbaa !9
  %626 = load i32, ptr %9, align 4, !tbaa !5
  %627 = sext i32 %626 to i64
  %628 = getelementptr inbounds [10 x i32], ptr %28, i64 0, i64 %627
  %629 = load i32, ptr %628, align 4, !tbaa !5
  %630 = sub nsw i32 %629, 1
  %631 = call i32 @opus_decode(ptr noundef %623, ptr noundef %624, i32 noundef 2, ptr noundef %625, i32 noundef %630, i32 noundef 0)
  store i32 %631, ptr %7, align 4, !tbaa !5
  %632 = load i32, ptr %7, align 4, !tbaa !5
  %633 = icmp sgt i32 %632, 0
  br i1 %633, label %634, label %635

634:                                              ; preds = %619
  call void @_test_failed(ptr noundef @.str, i32 noundef 218) #11
  unreachable

635:                                              ; preds = %619
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #9
  br label %636

636:                                              ; preds = %635
  %637 = load i32, ptr %9, align 4, !tbaa !5
  %638 = add nsw i32 %637, 1
  store i32 %638, ptr %9, align 4, !tbaa !5
  br label %525, !llvm.loop !23

639:                                              ; preds = %525
  call void @llvm.lifetime.end.p0(i64 40, ptr %28) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #9
  br label %640

640:                                              ; preds = %639
  %641 = load i32, ptr %10, align 4, !tbaa !5
  %642 = add nsw i32 %641, 1
  store i32 %642, ptr %10, align 4, !tbaa !5
  br label %405, !llvm.loop !24

643:                                              ; preds = %405
  %644 = load ptr, ptr @stdout, align 8, !tbaa !9
  %645 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %644, ptr noundef @.str.5) #9
  %646 = load i32, ptr %3, align 4, !tbaa !5
  %647 = icmp ne i32 %646, 0
  br i1 %647, label %648, label %707

648:                                              ; preds = %643
  %649 = load ptr, ptr @stdout, align 8, !tbaa !9
  %650 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %649, ptr noundef @.str.6) #9
  %651 = load ptr, ptr %13, align 8, !tbaa !9
  call void @free(ptr noundef %651) #9
  store i32 0, ptr %9, align 4, !tbaa !5
  br label %652

652:                                              ; preds = %660, %648
  %653 = load i32, ptr %9, align 4, !tbaa !5
  %654 = icmp slt i32 %653, 10
  br i1 %654, label %655, label %663

655:                                              ; preds = %652
  %656 = load i32, ptr %9, align 4, !tbaa !5
  %657 = sext i32 %656 to i64
  %658 = getelementptr inbounds [10 x ptr], ptr %11, i64 0, i64 %657
  %659 = load ptr, ptr %658, align 8, !tbaa !9
  call void @opus_decoder_destroy(ptr noundef %659)
  br label %660

660:                                              ; preds = %655
  %661 = load i32, ptr %9, align 4, !tbaa !5
  %662 = add nsw i32 %661, 1
  store i32 %662, ptr %9, align 4, !tbaa !5
  br label %652, !llvm.loop !25

663:                                              ; preds = %652
  %664 = call i32 (ptr, ...) @printf(ptr noundef @.str.7)
  store i32 0, ptr %4, align 4, !tbaa !5
  store i32 0, ptr %10, align 4, !tbaa !5
  br label %665

665:                                              ; preds = %679, %663
  %666 = load i32, ptr %10, align 4, !tbaa !5
  %667 = icmp slt i32 %666, 16
  br i1 %667, label %668, label %682

668:                                              ; preds = %665
  %669 = load ptr, ptr %19, align 8, !tbaa !9
  %670 = load i32, ptr %10, align 4, !tbaa !5
  %671 = sext i32 %670 to i64
  %672 = getelementptr inbounds i16, ptr %669, i64 %671
  %673 = load i16, ptr %672, align 2, !tbaa !11
  %674 = sext i16 %673 to i32
  %675 = icmp ne i32 %674, 32749
  %676 = zext i1 %675 to i32
  %677 = load i32, ptr %4, align 4, !tbaa !5
  %678 = or i32 %677, %676
  store i32 %678, ptr %4, align 4, !tbaa !5
  br label %679

679:                                              ; preds = %668
  %680 = load i32, ptr %10, align 4, !tbaa !5
  %681 = add nsw i32 %680, 1
  store i32 %681, ptr %10, align 4, !tbaa !5
  br label %665, !llvm.loop !26

682:                                              ; preds = %665
  store i32 11520, ptr %10, align 4, !tbaa !5
  br label %683

683:                                              ; preds = %697, %682
  %684 = load i32, ptr %10, align 4, !tbaa !5
  %685 = icmp slt i32 %684, 11536
  br i1 %685, label %686, label %700

686:                                              ; preds = %683
  %687 = load ptr, ptr %20, align 8, !tbaa !9
  %688 = load i32, ptr %10, align 4, !tbaa !5
  %689 = sext i32 %688 to i64
  %690 = getelementptr inbounds i16, ptr %687, i64 %689
  %691 = load i16, ptr %690, align 2, !tbaa !11
  %692 = sext i16 %691 to i32
  %693 = icmp ne i32 %692, 32749
  %694 = zext i1 %693 to i32
  %695 = load i32, ptr %4, align 4, !tbaa !5
  %696 = or i32 %695, %694
  store i32 %696, ptr %4, align 4, !tbaa !5
  br label %697

697:                                              ; preds = %686
  %698 = load i32, ptr %10, align 4, !tbaa !5
  %699 = add nsw i32 %698, 1
  store i32 %699, ptr %10, align 4, !tbaa !5
  br label %683, !llvm.loop !27

700:                                              ; preds = %683
  %701 = load i32, ptr %4, align 4, !tbaa !5
  %702 = icmp ne i32 %701, 0
  br i1 %702, label %703, label %704

703:                                              ; preds = %700
  call void @_test_failed(ptr noundef @.str, i32 noundef 233) #11
  unreachable

704:                                              ; preds = %700
  %705 = load ptr, ptr %19, align 8, !tbaa !9
  call void @free(ptr noundef %705) #9
  %706 = load ptr, ptr %17, align 8, !tbaa !9
  call void @free(ptr noundef %706) #9
  store i32 0, ptr %2, align 4
  store i32 1, ptr %30, align 4
  br label %1332

707:                                              ; preds = %643
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #9
  %708 = call i32 @fast_rand()
  %709 = urem i32 %708, 4
  store i32 %709, ptr %31, align 4, !tbaa !5
  %710 = load i32, ptr %31, align 4, !tbaa !5
  %711 = sext i32 %710 to i64
  %712 = getelementptr inbounds [4 x i32], ptr @test_decoder_code0.cmodes, i64 0, i64 %711
  %713 = load i32, ptr %712, align 4, !tbaa !5
  %714 = shl i32 %713, 3
  %715 = trunc i32 %714 to i8
  %716 = load ptr, ptr %17, align 8, !tbaa !9
  %717 = getelementptr inbounds i8, ptr %716, i64 0
  store i8 %715, ptr %717, align 1, !tbaa !18
  store i32 0, ptr %16, align 4, !tbaa !5
  %718 = call i32 @fast_rand()
  %719 = urem i32 %718, 10
  store i32 %719, ptr %9, align 4, !tbaa !5
  store i32 0, ptr %10, align 4, !tbaa !5
  br label %720

720:                                              ; preds = %768, %707
  %721 = load i32, ptr %10, align 4, !tbaa !5
  %722 = icmp slt i32 %721, 65536
  br i1 %722, label %723, label %771

723:                                              ; preds = %720
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #9
  %724 = load i32, ptr %9, align 4, !tbaa !5
  %725 = ashr i32 %724, 1
  %726 = sext i32 %725 to i64
  %727 = getelementptr inbounds [5 x i32], ptr @test_decoder_code0.fsv, i64 0, i64 %726
  %728 = load i32, ptr %727, align 4, !tbaa !5
  %729 = sdiv i32 48000, %728
  store i32 %729, ptr %32, align 4, !tbaa !5
  %730 = load i32, ptr %10, align 4, !tbaa !5
  %731 = ashr i32 %730, 8
  %732 = trunc i32 %731 to i8
  %733 = load ptr, ptr %17, align 8, !tbaa !9
  %734 = getelementptr inbounds i8, ptr %733, i64 1
  store i8 %732, ptr %734, align 1, !tbaa !18
  %735 = load i32, ptr %10, align 4, !tbaa !5
  %736 = and i32 %735, 255
  %737 = trunc i32 %736 to i8
  %738 = load ptr, ptr %17, align 8, !tbaa !9
  %739 = getelementptr inbounds i8, ptr %738, i64 2
  store i8 %737, ptr %739, align 1, !tbaa !18
  %740 = load ptr, ptr %17, align 8, !tbaa !9
  %741 = getelementptr inbounds i8, ptr %740, i64 3
  store i8 -1, ptr %741, align 1, !tbaa !18
  %742 = load i32, ptr %9, align 4, !tbaa !5
  %743 = sext i32 %742 to i64
  %744 = getelementptr inbounds [10 x ptr], ptr %11, i64 0, i64 %743
  %745 = load ptr, ptr %744, align 8, !tbaa !9
  %746 = load ptr, ptr %17, align 8, !tbaa !9
  %747 = load ptr, ptr %20, align 8, !tbaa !9
  %748 = call i32 @opus_decode(ptr noundef %745, ptr noundef %746, i32 noundef 4, ptr noundef %747, i32 noundef 5760, i32 noundef 0)
  store i32 %748, ptr %7, align 4, !tbaa !5
  %749 = load i32, ptr %7, align 4, !tbaa !5
  %750 = load i32, ptr %32, align 4, !tbaa !5
  %751 = sdiv i32 120, %750
  %752 = icmp ne i32 %749, %751
  br i1 %752, label %753, label %754

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

754:                                              ; preds = %723
  %755 = load i32, ptr %9, align 4, !tbaa !5
  %756 = sext i32 %755 to i64
  %757 = getelementptr inbounds [10 x ptr], ptr %11, i64 0, i64 %756
  %758 = load ptr, ptr %757, align 8, !tbaa !9
  %759 = ptrtoint ptr %14 to i64
  %760 = ptrtoint ptr %14 to i64
  %761 = sub i64 %759, %760
  %762 = sdiv exact i64 %761, 4
  %763 = getelementptr inbounds i32, ptr %14, i64 %762
  %764 = call i32 (ptr, i32, ...) @opus_decoder_ctl(ptr noundef %758, i32 noundef 4031, ptr noundef %763)
  %765 = load i32, ptr %14, align 4, !tbaa !5
  %766 = load i32, ptr %16, align 4, !tbaa !5
  %767 = add i32 %766, %765
  store i32 %767, ptr %16, align 4, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #9
  br label %768

768:                                              ; preds = %754
  %769 = load i32, ptr %10, align 4, !tbaa !5
  %770 = add nsw i32 %769, 1
  store i32 %770, ptr %10, align 4, !tbaa !5
  br label %720, !llvm.loop !28

771:                                              ; preds = %720
  %772 = load i32, ptr %16, align 4, !tbaa !5
  %773 = load i32, ptr %31, align 4, !tbaa !5
  %774 = sext i32 %773 to i64
  %775 = getelementptr inbounds [4 x i32], ptr @test_decoder_code0.cres, i64 0, i64 %774
  %776 = load i32, ptr %775, align 4, !tbaa !5
  %777 = icmp ne i32 %772, %776
  br i1 %777, label %778, label %779

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

779:                                              ; preds = %771
  %780 = load ptr, ptr @stdout, align 8, !tbaa !9
  %781 = load i32, ptr %9, align 4, !tbaa !5
  %782 = load i32, ptr %31, align 4, !tbaa !5
  %783 = sext i32 %782 to i64
  %784 = getelementptr inbounds [4 x i32], ptr @test_decoder_code0.cmodes, i64 0, i64 %783
  %785 = load i32, ptr %784, align 4, !tbaa !5
  %786 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %780, ptr noundef @.str.8, i32 noundef %781, i32 noundef %785) #9
  %787 = call i32 @fast_rand()
  %788 = urem i32 %787, 3
  store i32 %788, ptr %31, align 4, !tbaa !5
  %789 = load i32, ptr %31, align 4, !tbaa !5
  %790 = sext i32 %789 to i64
  %791 = getelementptr inbounds [3 x i32], ptr @test_decoder_code0.lmodes, i64 0, i64 %790
  %792 = load i32, ptr %791, align 4, !tbaa !5
  %793 = shl i32 %792, 3
  %794 = trunc i32 %793 to i8
  %795 = load ptr, ptr %17, align 8, !tbaa !9
  %796 = getelementptr inbounds i8, ptr %795, i64 0
  store i8 %794, ptr %796, align 1, !tbaa !18
  store i32 0, ptr %16, align 4, !tbaa !5
  %797 = call i32 @fast_rand()
  %798 = urem i32 %797, 10
  store i32 %798, ptr %9, align 4, !tbaa !5
  store i32 0, ptr %10, align 4, !tbaa !5
  br label %799

799:                                              ; preds = %847, %779
  %800 = load i32, ptr %10, align 4, !tbaa !5
  %801 = icmp slt i32 %800, 65536
  br i1 %801, label %802, label %850

802:                                              ; preds = %799
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #9
  %803 = load i32, ptr %9, align 4, !tbaa !5
  %804 = ashr i32 %803, 1
  %805 = sext i32 %804 to i64
  %806 = getelementptr inbounds [5 x i32], ptr @test_decoder_code0.fsv, i64 0, i64 %805
  %807 = load i32, ptr %806, align 4, !tbaa !5
  %808 = sdiv i32 48000, %807
  store i32 %808, ptr %33, align 4, !tbaa !5
  %809 = load i32, ptr %10, align 4, !tbaa !5
  %810 = ashr i32 %809, 8
  %811 = trunc i32 %810 to i8
  %812 = load ptr, ptr %17, align 8, !tbaa !9
  %813 = getelementptr inbounds i8, ptr %812, i64 1
  store i8 %811, ptr %813, align 1, !tbaa !18
  %814 = load i32, ptr %10, align 4, !tbaa !5
  %815 = and i32 %814, 255
  %816 = trunc i32 %815 to i8
  %817 = load ptr, ptr %17, align 8, !tbaa !9
  %818 = getelementptr inbounds i8, ptr %817, i64 2
  store i8 %816, ptr %818, align 1, !tbaa !18
  %819 = load ptr, ptr %17, align 8, !tbaa !9
  %820 = getelementptr inbounds i8, ptr %819, i64 3
  store i8 -1, ptr %820, align 1, !tbaa !18
  %821 = load i32, ptr %9, align 4, !tbaa !5
  %822 = sext i32 %821 to i64
  %823 = getelementptr inbounds [10 x ptr], ptr %11, i64 0, i64 %822
  %824 = load ptr, ptr %823, align 8, !tbaa !9
  %825 = load ptr, ptr %17, align 8, !tbaa !9
  %826 = load ptr, ptr %20, align 8, !tbaa !9
  %827 = call i32 @opus_decode(ptr noundef %824, ptr noundef %825, i32 noundef 4, ptr noundef %826, i32 noundef 5760, i32 noundef 0)
  store i32 %827, ptr %7, align 4, !tbaa !5
  %828 = load i32, ptr %7, align 4, !tbaa !5
  %829 = load i32, ptr %33, align 4, !tbaa !5
  %830 = sdiv i32 480, %829
  %831 = icmp ne i32 %828, %830
  br i1 %831, label %832, label %833

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

833:                                              ; preds = %802
  %834 = load i32, ptr %9, align 4, !tbaa !5
  %835 = sext i32 %834 to i64
  %836 = getelementptr inbounds [10 x ptr], ptr %11, i64 0, i64 %835
  %837 = load ptr, ptr %836, align 8, !tbaa !9
  %838 = ptrtoint ptr %14 to i64
  %839 = ptrtoint ptr %14 to i64
  %840 = sub i64 %838, %839
  %841 = sdiv exact i64 %840, 4
  %842 = getelementptr inbounds i32, ptr %14, i64 %841
  %843 = call i32 (ptr, i32, ...) @opus_decoder_ctl(ptr noundef %837, i32 noundef 4031, ptr noundef %842)
  %844 = load i32, ptr %14, align 4, !tbaa !5
  %845 = load i32, ptr %16, align 4, !tbaa !5
  %846 = add i32 %845, %844
  store i32 %846, ptr %16, align 4, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #9
  br label %847

847:                                              ; preds = %833
  %848 = load i32, ptr %10, align 4, !tbaa !5
  %849 = add nsw i32 %848, 1
  store i32 %849, ptr %10, align 4, !tbaa !5
  br label %799, !llvm.loop !29

850:                                              ; preds = %799
  %851 = load i32, ptr %16, align 4, !tbaa !5
  %852 = load i32, ptr %31, align 4, !tbaa !5
  %853 = sext i32 %852 to i64
  %854 = getelementptr inbounds [3 x i32], ptr @test_decoder_code0.lres, i64 0, i64 %853
  %855 = load i32, ptr %854, align 4, !tbaa !5
  %856 = icmp ne i32 %851, %855
  br i1 %856, label %857, label %858

857:                                              ; preds = %850
  call void @_test_failed(ptr noundef @.str, i32 noundef 282) #11
  unreachable

858:                                              ; preds = %850
  %859 = load ptr, ptr @stdout, align 8, !tbaa !9
  %860 = load i32, ptr %9, align 4, !tbaa !5
  %861 = load i32, ptr %31, align 4, !tbaa !5
  %862 = sext i32 %861 to i64
  %863 = getelementptr inbounds [3 x i32], ptr @test_decoder_code0.lmodes, i64 0, i64 %862
  %864 = load i32, ptr %863, align 4, !tbaa !5
  %865 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %859, ptr noundef @.str.8, i32 noundef %860, i32 noundef %864) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #9
  %866 = call i32 @fast_rand()
  %867 = urem i32 %866, 7
  store i32 %867, ptr %5, align 4, !tbaa !5
  store i32 0, ptr %10, align 4, !tbaa !5
  br label %868

868:                                              ; preds = %967, %858
  %869 = load i32, ptr %10, align 4, !tbaa !5
  %870 = icmp slt i32 %869, 64
  br i1 %870, label %871, label %970

871:                                              ; preds = %868
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #9
  call void @llvm.lifetime.start.p0(i64 40, ptr %35) #9
  %872 = load i32, ptr %10, align 4, !tbaa !5
  %873 = shl i32 %872, 2
  %874 = trunc i32 %873 to i8
  %875 = load ptr, ptr %17, align 8, !tbaa !9
  %876 = getelementptr inbounds i8, ptr %875, i64 0
  store i8 %874, ptr %876, align 1, !tbaa !18
  store i32 0, ptr %9, align 4, !tbaa !5
  br label %877

877:                                              ; preds = %890, %871
  %878 = load i32, ptr %9, align 4, !tbaa !5
  %879 = icmp slt i32 %878, 10
  br i1 %879, label %880, label %893

880:                                              ; preds = %877
  %881 = load i32, ptr %9, align 4, !tbaa !5
  %882 = sext i32 %881 to i64
  %883 = getelementptr inbounds [10 x ptr], ptr %11, i64 0, i64 %882
  %884 = load ptr, ptr %883, align 8, !tbaa !9
  %885 = load ptr, ptr %17, align 8, !tbaa !9
  %886 = call i32 @opus_decoder_get_nb_samples(ptr noundef %884, ptr noundef %885, i32 noundef 1)
  %887 = load i32, ptr %9, align 4, !tbaa !5
  %888 = sext i32 %887 to i64
  %889 = getelementptr inbounds [10 x i32], ptr %35, i64 0, i64 %888
  store i32 %886, ptr %889, align 4, !tbaa !5
  br label %890

890:                                              ; preds = %880
  %891 = load i32, ptr %9, align 4, !tbaa !5
  %892 = add nsw i32 %891, 1
  store i32 %892, ptr %9, align 4, !tbaa !5
  br label %877, !llvm.loop !30

893:                                              ; preds = %877
  %894 = load i32, ptr %5, align 4, !tbaa !5
  %895 = add nsw i32 2, %894
  store i32 %895, ptr %34, align 4, !tbaa !5
  br label %896

896:                                              ; preds = %963, %893
  %897 = load i32, ptr %34, align 4, !tbaa !5
  %898 = icmp slt i32 %897, 1275
  br i1 %898, label %899, label %966

899:                                              ; preds = %896
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #9
  store i32 0, ptr %36, align 4, !tbaa !5
  br label %900

900:                                              ; preds = %913, %899
  %901 = load i32, ptr %36, align 4, !tbaa !5
  %902 = load i32, ptr %34, align 4, !tbaa !5
  %903 = icmp slt i32 %901, %902
  br i1 %903, label %904, label %916

904:                                              ; preds = %900
  %905 = call i32 @fast_rand()
  %906 = and i32 %905, 255
  %907 = trunc i32 %906 to i8
  %908 = load ptr, ptr %17, align 8, !tbaa !9
  %909 = load i32, ptr %36, align 4, !tbaa !5
  %910 = add nsw i32 %909, 1
  %911 = sext i32 %910 to i64
  %912 = getelementptr inbounds i8, ptr %908, i64 %911
  store i8 %907, ptr %912, align 1, !tbaa !18
  br label %913

913:                                              ; preds = %904
  %914 = load i32, ptr %36, align 4, !tbaa !5
  %915 = add nsw i32 %914, 1
  store i32 %915, ptr %36, align 4, !tbaa !5
  br label %900, !llvm.loop !31

916:                                              ; preds = %900
  store i32 0, ptr %9, align 4, !tbaa !5
  br label %917

917:                                              ; preds = %959, %916
  %918 = load i32, ptr %9, align 4, !tbaa !5
  %919 = icmp slt i32 %918, 10
  br i1 %919, label %920, label %962

920:                                              ; preds = %917
  %921 = load i32, ptr %9, align 4, !tbaa !5
  %922 = sext i32 %921 to i64
  %923 = getelementptr inbounds [10 x ptr], ptr %11, i64 0, i64 %922
  %924 = load ptr, ptr %923, align 8, !tbaa !9
  %925 = load ptr, ptr %17, align 8, !tbaa !9
  %926 = load i32, ptr %34, align 4, !tbaa !5
  %927 = add nsw i32 %926, 1
  %928 = load ptr, ptr %20, align 8, !tbaa !9
  %929 = call i32 @opus_decode(ptr noundef %924, ptr noundef %925, i32 noundef %927, ptr noundef %928, i32 noundef 5760, i32 noundef 0)
  store i32 %929, ptr %7, align 4, !tbaa !5
  %930 = load i32, ptr %7, align 4, !tbaa !5
  %931 = load i32, ptr %9, align 4, !tbaa !5
  %932 = sext i32 %931 to i64
  %933 = getelementptr inbounds [10 x i32], ptr %35, i64 0, i64 %932
  %934 = load i32, ptr %933, align 4, !tbaa !5
  %935 = icmp ne i32 %930, %934
  br i1 %935, label %936, label %937

936:                                              ; preds = %920
  call void @_test_failed(ptr noundef @.str, i32 noundef 299) #11
  unreachable

937:                                              ; preds = %920
  %938 = load i32, ptr %9, align 4, !tbaa !5
  %939 = sext i32 %938 to i64
  %940 = getelementptr inbounds [10 x ptr], ptr %11, i64 0, i64 %939
  %941 = load ptr, ptr %940, align 8, !tbaa !9
  %942 = ptrtoint ptr %14 to i64
  %943 = ptrtoint ptr %14 to i64
  %944 = sub i64 %942, %943
  %945 = sdiv exact i64 %944, 4
  %946 = getelementptr inbounds i32, ptr %14, i64 %945
  %947 = call i32 (ptr, i32, ...) @opus_decoder_ctl(ptr noundef %941, i32 noundef 4031, ptr noundef %946)
  %948 = load i32, ptr %9, align 4, !tbaa !5
  %949 = icmp eq i32 %948, 0
  br i1 %949, label %950, label %952

950:                                              ; preds = %937
  %951 = load i32, ptr %14, align 4, !tbaa !5
  store i32 %951, ptr %15, align 4, !tbaa !5
  br label %958

952:                                              ; preds = %937
  %953 = load i32, ptr %14, align 4, !tbaa !5
  %954 = load i32, ptr %15, align 4, !tbaa !5
  %955 = icmp ne i32 %953, %954
  br i1 %955, label %956, label %957

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

957:                                              ; preds = %952
  br label %958

958:                                              ; preds = %957, %950
  br label %959

959:                                              ; preds = %958
  %960 = load i32, ptr %9, align 4, !tbaa !5
  %961 = add nsw i32 %960, 1
  store i32 %961, ptr %9, align 4, !tbaa !5
  br label %917, !llvm.loop !32

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

963:                                              ; preds = %962
  %964 = load i32, ptr %34, align 4, !tbaa !5
  %965 = add nsw i32 %964, 4
  store i32 %965, ptr %34, align 4, !tbaa !5
  br label %896, !llvm.loop !33

966:                                              ; preds = %896
  call void @llvm.lifetime.end.p0(i64 40, ptr %35) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #9
  br label %967

967:                                              ; preds = %966
  %968 = load i32, ptr %10, align 4, !tbaa !5
  %969 = add nsw i32 %968, 1
  store i32 %969, ptr %10, align 4, !tbaa !5
  br label %868, !llvm.loop !34

970:                                              ; preds = %868
  %971 = load ptr, ptr @stdout, align 8, !tbaa !9
  %972 = load i32, ptr %5, align 4, !tbaa !5
  %973 = add nsw i32 2, %972
  %974 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %971, ptr noundef @.str.9, i32 noundef %973) #9
  %975 = getelementptr inbounds [4096 x i8], ptr %18, i64 0, i64 0
  call void @debruijn2(i32 noundef 64, ptr noundef %975)
  %976 = call i32 @fast_rand()
  %977 = urem i32 %976, 18
  %978 = add i32 %977, 3
  %979 = mul i32 %978, 8
  %980 = load i32, ptr %5, align 4, !tbaa !5
  %981 = add i32 %979, %980
  %982 = add i32 %981, 3
  store i32 %982, ptr %6, align 4, !tbaa !5
  store i32 0, ptr %10, align 4, !tbaa !5
  br label %983

983:                                              ; preds = %1127, %970
  %984 = load i32, ptr %10, align 4, !tbaa !5
  %985 = icmp slt i32 %984, 4096
  br i1 %985, label %986, label %1130

986:                                              ; preds = %983
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #9
  call void @llvm.lifetime.start.p0(i64 40, ptr %38) #9
  %987 = load i32, ptr %10, align 4, !tbaa !5
  %988 = sext i32 %987 to i64
  %989 = getelementptr inbounds [4096 x i8], ptr %18, i64 0, i64 %988
  %990 = load i8, ptr %989, align 1, !tbaa !18
  %991 = zext i8 %990 to i32
  %992 = shl i32 %991, 2
  %993 = trunc i32 %992 to i8
  %994 = load ptr, ptr %17, align 8, !tbaa !9
  %995 = getelementptr inbounds i8, ptr %994, i64 0
  store i8 %993, ptr %995, align 1, !tbaa !18
  store i32 0, ptr %9, align 4, !tbaa !5
  br label %996

996:                                              ; preds = %1010, %986
  %997 = load i32, ptr %9, align 4, !tbaa !5
  %998 = icmp slt i32 %997, 10
  br i1 %998, label %999, label %1013

999:                                              ; preds = %996
  %1000 = load i32, ptr %9, align 4, !tbaa !5
  %1001 = sext i32 %1000 to i64
  %1002 = getelementptr inbounds [10 x ptr], ptr %11, i64 0, i64 %1001
  %1003 = load ptr, ptr %1002, align 8, !tbaa !9
  %1004 = load ptr, ptr %17, align 8, !tbaa !9
  %1005 = load i32, ptr %6, align 4, !tbaa !5
  %1006 = call i32 @opus_decoder_get_nb_samples(ptr noundef %1003, ptr noundef %1004, i32 noundef %1005)
  %1007 = load i32, ptr %9, align 4, !tbaa !5
  %1008 = sext i32 %1007 to i64
  %1009 = getelementptr inbounds [10 x i32], ptr %38, i64 0, i64 %1008
  store i32 %1006, ptr %1009, align 4, !tbaa !5
  br label %1010

1010:                                             ; preds = %999
  %1011 = load i32, ptr %9, align 4, !tbaa !5
  %1012 = add nsw i32 %1011, 1
  store i32 %1012, ptr %9, align 4, !tbaa !5
  br label %996, !llvm.loop !35

1013:                                             ; preds = %996
  store i32 0, ptr %37, align 4, !tbaa !5
  br label %1014

1014:                                             ; preds = %1029, %1013
  %1015 = load i32, ptr %37, align 4, !tbaa !5
  %1016 = load i32, ptr %6, align 4, !tbaa !5
  %1017 = icmp slt i32 %1015, %1016
  br i1 %1017, label %1018, label %1032

1018:                                             ; preds = %1014
  %1019 = call i32 @fast_rand()
  %1020 = call i32 @fast_rand()
  %1021 = or i32 %1019, %1020
  %1022 = and i32 %1021, 255
  %1023 = trunc i32 %1022 to i8
  %1024 = load ptr, ptr %17, align 8, !tbaa !9
  %1025 = load i32, ptr %37, align 4, !tbaa !5
  %1026 = add nsw i32 %1025, 1
  %1027 = sext i32 %1026 to i64
  %1028 = getelementptr inbounds i8, ptr %1024, i64 %1027
  store i8 %1023, ptr %1028, align 1, !tbaa !18
  br label %1029

1029:                                             ; preds = %1018
  %1030 = load i32, ptr %37, align 4, !tbaa !5
  %1031 = add nsw i32 %1030, 1
  store i32 %1031, ptr %37, align 4, !tbaa !5
  br label %1014, !llvm.loop !36

1032:                                             ; preds = %1014
  %1033 = load ptr, ptr %13, align 8, !tbaa !9
  %1034 = getelementptr inbounds [10 x ptr], ptr %11, i64 0, i64 0
  %1035 = load ptr, ptr %1034, align 16, !tbaa !9
  %1036 = load i32, ptr %12, align 4, !tbaa !5
  %1037 = sext i32 %1036 to i64
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %1033, ptr align 1 %1035, i64 %1037, i1 false)
  %1038 = load ptr, ptr %13, align 8, !tbaa !9
  %1039 = load ptr, ptr %17, align 8, !tbaa !9
  %1040 = load i32, ptr %6, align 4, !tbaa !5
  %1041 = add nsw i32 %1040, 1
  %1042 = load ptr, ptr %20, align 8, !tbaa !9
  %1043 = getelementptr inbounds [10 x i32], ptr %38, i64 0, i64 0
  %1044 = load i32, ptr %1043, align 16, !tbaa !5
  %1045 = call i32 @opus_decode(ptr noundef %1038, ptr noundef %1039, i32 noundef %1041, ptr noundef %1042, i32 noundef %1044, i32 noundef 1)
  %1046 = getelementptr inbounds [10 x i32], ptr %38, i64 0, i64 0
  %1047 = load i32, ptr %1046, align 16, !tbaa !5
  %1048 = icmp ne i32 %1045, %1047
  br i1 %1048, label %1049, label %1050

1049:                                             ; preds = %1032
  call void @_test_failed(ptr noundef @.str, i32 noundef 317) #11
  unreachable

1050:                                             ; preds = %1032
  %1051 = load ptr, ptr %13, align 8, !tbaa !9
  %1052 = getelementptr inbounds [10 x ptr], ptr %11, i64 0, i64 0
  %1053 = load ptr, ptr %1052, align 16, !tbaa !9
  %1054 = load i32, ptr %12, align 4, !tbaa !5
  %1055 = sext i32 %1054 to i64
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %1051, ptr align 1 %1053, i64 %1055, i1 false)
  %1056 = load ptr, ptr %13, align 8, !tbaa !9
  %1057 = load ptr, ptr %20, align 8, !tbaa !9
  %1058 = call i32 @opus_decode(ptr noundef %1056, ptr noundef null, i32 noundef 0, ptr noundef %1057, i32 noundef 5760, i32 noundef 1)
  %1059 = icmp slt i32 %1058, 20
  br i1 %1059, label %1060, label %1061

1060:                                             ; preds = %1050
  call void @_test_failed(ptr noundef @.str, i32 noundef 319) #11
  unreachable

1061:                                             ; preds = %1050
  %1062 = load ptr, ptr %13, align 8, !tbaa !9
  %1063 = getelementptr inbounds [10 x ptr], ptr %11, i64 0, i64 0
  %1064 = load ptr, ptr %1063, align 16, !tbaa !9
  %1065 = load i32, ptr %12, align 4, !tbaa !5
  %1066 = sext i32 %1065 to i64
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %1062, ptr align 1 %1064, i64 %1066, i1 false)
  %1067 = load ptr, ptr %13, align 8, !tbaa !9
  %1068 = load ptr, ptr %20, align 8, !tbaa !9
  %1069 = call i32 @opus_decode(ptr noundef %1067, ptr noundef null, i32 noundef 0, ptr noundef %1068, i32 noundef 5760, i32 noundef 0)
  %1070 = icmp slt i32 %1069, 20
  br i1 %1070, label %1071, label %1072

1071:                                             ; preds = %1061
  call void @_test_failed(ptr noundef @.str, i32 noundef 321) #11
  unreachable

1072:                                             ; preds = %1061
  store i32 0, ptr %9, align 4, !tbaa !5
  br label %1073

1073:                                             ; preds = %1123, %1072
  %1074 = load i32, ptr %9, align 4, !tbaa !5
  %1075 = icmp slt i32 %1074, 10
  br i1 %1075, label %1076, label %1126

1076:                                             ; preds = %1073
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #9
  %1077 = load i32, ptr %9, align 4, !tbaa !5
  %1078 = sext i32 %1077 to i64
  %1079 = getelementptr inbounds [10 x ptr], ptr %11, i64 0, i64 %1078
  %1080 = load ptr, ptr %1079, align 8, !tbaa !9
  %1081 = load ptr, ptr %17, align 8, !tbaa !9
  %1082 = load i32, ptr %6, align 4, !tbaa !5
  %1083 = add nsw i32 %1082, 1
  %1084 = load ptr, ptr %20, align 8, !tbaa !9
  %1085 = call i32 @opus_decode(ptr noundef %1080, ptr noundef %1081, i32 noundef %1083, ptr noundef %1084, i32 noundef 5760, i32 noundef 0)
  store i32 %1085, ptr %7, align 4, !tbaa !5
  %1086 = load i32, ptr %7, align 4, !tbaa !5
  %1087 = load i32, ptr %9, align 4, !tbaa !5
  %1088 = sext i32 %1087 to i64
  %1089 = getelementptr inbounds [10 x i32], ptr %38, i64 0, i64 %1088
  %1090 = load i32, ptr %1089, align 4, !tbaa !5
  %1091 = icmp ne i32 %1086, %1090
  br i1 %1091, label %1092, label %1093

1092:                                             ; preds = %1076
  call void @_test_failed(ptr noundef @.str, i32 noundef 326) #11
  unreachable

1093:                                             ; preds = %1076
  %1094 = load i32, ptr %9, align 4, !tbaa !5
  %1095 = icmp eq i32 %1094, 0
  br i1 %1095, label %1096, label %1098

1096:                                             ; preds = %1093
  %1097 = load i32, ptr %14, align 4, !tbaa !5
  store i32 %1097, ptr %15, align 4, !tbaa !5
  br label %1104

1098:                                             ; preds = %1093
  %1099 = load i32, ptr %14, align 4, !tbaa !5
  %1100 = load i32, ptr %15, align 4, !tbaa !5
  %1101 = icmp ne i32 %1099, %1100
  br i1 %1101, label %1102, label %1103

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

1103:                                             ; preds = %1098
  br label %1104

1104:                                             ; preds = %1103, %1096
  %1105 = load i32, ptr %9, align 4, !tbaa !5
  %1106 = sext i32 %1105 to i64
  %1107 = getelementptr inbounds [10 x ptr], ptr %11, i64 0, i64 %1106
  %1108 = load ptr, ptr %1107, align 8, !tbaa !9
  %1109 = ptrtoint ptr %39 to i64
  %1110 = ptrtoint ptr %39 to i64
  %1111 = sub i64 %1109, %1110
  %1112 = sdiv exact i64 %1111, 4
  %1113 = getelementptr inbounds i32, ptr %39, i64 %1112
  %1114 = call i32 (ptr, i32, ...) @opus_decoder_ctl(ptr noundef %1108, i32 noundef 4039, ptr noundef %1113)
  %1115 = icmp ne i32 %1114, 0
  br i1 %1115, label %1116, label %1117

1116:                                             ; preds = %1104
  call void @_test_failed(ptr noundef @.str, i32 noundef 329) #11
  unreachable

1117:                                             ; preds = %1104
  %1118 = load i32, ptr %39, align 4, !tbaa !5
  %1119 = load i32, ptr %7, align 4, !tbaa !5
  %1120 = icmp ne i32 %1118, %1119
  br i1 %1120, label %1121, label %1122

1121:                                             ; preds = %1117
  call void @_test_failed(ptr noundef @.str, i32 noundef 330) #11
  unreachable

1122:                                             ; preds = %1117
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #9
  br label %1123

1123:                                             ; preds = %1122
  %1124 = load i32, ptr %9, align 4, !tbaa !5
  %1125 = add nsw i32 %1124, 1
  store i32 %1125, ptr %9, align 4, !tbaa !5
  br label %1073, !llvm.loop !37

1126:                                             ; preds = %1073
  call void @llvm.lifetime.end.p0(i64 40, ptr %38) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #9
  br label %1127

1127:                                             ; preds = %1126
  %1128 = load i32, ptr %10, align 4, !tbaa !5
  %1129 = add nsw i32 %1128, 1
  store i32 %1129, ptr %10, align 4, !tbaa !5
  br label %983, !llvm.loop !38

1130:                                             ; preds = %983
  %1131 = load ptr, ptr @stdout, align 8, !tbaa !9
  %1132 = load i32, ptr %6, align 4, !tbaa !5
  %1133 = add nsw i32 %1132, 1
  %1134 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1131, ptr noundef @.str.10, i32 noundef %1133) #9
  %1135 = call i32 @fast_rand()
  %1136 = urem i32 %1135, 18
  %1137 = add i32 %1136, 3
  %1138 = mul i32 %1137, 8
  %1139 = load i32, ptr %5, align 4, !tbaa !5
  %1140 = add i32 %1138, %1139
  %1141 = add i32 %1140, 3
  store i32 %1141, ptr %6, align 4, !tbaa !5
  %1142 = call i32 @rand() #9
  %1143 = and i32 %1142, 3
  store i32 %1143, ptr %9, align 4, !tbaa !5
  store i32 0, ptr %10, align 4, !tbaa !5
  br label %1144

1144:                                             ; preds = %1205, %1130
  %1145 = load i32, ptr %10, align 4, !tbaa !5
  %1146 = icmp slt i32 %1145, 4096
  br i1 %1146, label %1147, label %1208

1147:                                             ; preds = %1144
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #9
  %1148 = load i32, ptr %10, align 4, !tbaa !5
  %1149 = sext i32 %1148 to i64
  %1150 = getelementptr inbounds [4096 x i8], ptr %18, i64 0, i64 %1149
  %1151 = load i8, ptr %1150, align 1, !tbaa !18
  %1152 = zext i8 %1151 to i32
  %1153 = shl i32 %1152, 2
  %1154 = trunc i32 %1153 to i8
  %1155 = load ptr, ptr %17, align 8, !tbaa !9
  %1156 = getelementptr inbounds i8, ptr %1155, i64 0
  store i8 %1154, ptr %1156, align 1, !tbaa !18
  %1157 = load i32, ptr %9, align 4, !tbaa !5
  %1158 = sext i32 %1157 to i64
  %1159 = getelementptr inbounds [10 x ptr], ptr %11, i64 0, i64 %1158
  %1160 = load ptr, ptr %1159, align 8, !tbaa !9
  %1161 = load ptr, ptr %17, align 8, !tbaa !9
  %1162 = load i32, ptr %6, align 4, !tbaa !5
  %1163 = call i32 @opus_decoder_get_nb_samples(ptr noundef %1160, ptr noundef %1161, i32 noundef %1162)
  store i32 %1163, ptr %42, align 4, !tbaa !5
  store i32 0, ptr %40, align 4, !tbaa !5
  br label %1164

1164:                                             ; preds = %1201, %1147
  %1165 = load i32, ptr %40, align 4, !tbaa !5
  %1166 = icmp slt i32 %1165, 10
  br i1 %1166, label %1167, label %1204

1167:                                             ; preds = %1164
  store i32 0, ptr %41, align 4, !tbaa !5
  br label %1168

1168:                                             ; preds = %1183, %1167
  %1169 = load i32, ptr %41, align 4, !tbaa !5
  %1170 = load i32, ptr %6, align 4, !tbaa !5
  %1171 = icmp slt i32 %1169, %1170
  br i1 %1171, label %1172, label %1186

1172:                                             ; preds = %1168
  %1173 = call i32 @fast_rand()
  %1174 = call i32 @fast_rand()
  %1175 = or i32 %1173, %1174
  %1176 = and i32 %1175, 255
  %1177 = trunc i32 %1176 to i8
  %1178 = load ptr, ptr %17, align 8, !tbaa !9
  %1179 = load i32, ptr %41, align 4, !tbaa !5
  %1180 = add nsw i32 %1179, 1
  %1181 = sext i32 %1180 to i64
  %1182 = getelementptr inbounds i8, ptr %1178, i64 %1181
  store i8 %1177, ptr %1182, align 1, !tbaa !18
  br label %1183

1183:                                             ; preds = %1172
  %1184 = load i32, ptr %41, align 4, !tbaa !5
  %1185 = add nsw i32 %1184, 1
  store i32 %1185, ptr %41, align 4, !tbaa !5
  br label %1168, !llvm.loop !39

1186:                                             ; preds = %1168
  %1187 = load i32, ptr %9, align 4, !tbaa !5
  %1188 = sext i32 %1187 to i64
  %1189 = getelementptr inbounds [10 x ptr], ptr %11, i64 0, i64 %1188
  %1190 = load ptr, ptr %1189, align 8, !tbaa !9
  %1191 = load ptr, ptr %17, align 8, !tbaa !9
  %1192 = load i32, ptr %6, align 4, !tbaa !5
  %1193 = add nsw i32 %1192, 1
  %1194 = load ptr, ptr %20, align 8, !tbaa !9
  %1195 = call i32 @opus_decode(ptr noundef %1190, ptr noundef %1191, i32 noundef %1193, ptr noundef %1194, i32 noundef 5760, i32 noundef 0)
  store i32 %1195, ptr %7, align 4, !tbaa !5
  %1196 = load i32, ptr %7, align 4, !tbaa !5
  %1197 = load i32, ptr %42, align 4, !tbaa !5
  %1198 = icmp ne i32 %1196, %1197
  br i1 %1198, label %1199, label %1200

1199:                                             ; preds = %1186
  call void @_test_failed(ptr noundef @.str, i32 noundef 346) #11
  unreachable

1200:                                             ; preds = %1186
  br label %1201

1201:                                             ; preds = %1200
  %1202 = load i32, ptr %40, align 4, !tbaa !5
  %1203 = add nsw i32 %1202, 1
  store i32 %1203, ptr %40, align 4, !tbaa !5
  br label %1164, !llvm.loop !40

1204:                                             ; preds = %1164
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #9
  br label %1205

1205:                                             ; preds = %1204
  %1206 = load i32, ptr %10, align 4, !tbaa !5
  %1207 = add nsw i32 %1206, 1
  store i32 %1207, ptr %10, align 4, !tbaa !5
  br label %1144, !llvm.loop !41

1208:                                             ; preds = %1144
  %1209 = load ptr, ptr @stdout, align 8, !tbaa !9
  %1210 = load i32, ptr %9, align 4, !tbaa !5
  %1211 = load i32, ptr %6, align 4, !tbaa !5
  %1212 = add nsw i32 %1211, 1
  %1213 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1209, ptr noundef @.str.11, i32 noundef %1210, i32 noundef %1212) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #9
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %43, ptr align 4 @__const.test_decoder_code0.tmodes, i64 4, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #9
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %44, ptr align 4 @__const.test_decoder_code0.tseeds, i64 4, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #9
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %45, ptr align 4 @__const.test_decoder_code0.tlen, i64 4, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #9
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %46, ptr align 4 @__const.test_decoder_code0.tret, i64 4, i1 false)
  %1214 = call i32 @fast_rand()
  %1215 = and i32 %1214, 1
  store i32 %1215, ptr %9, align 4, !tbaa !5
  store i32 0, ptr %10, align 4, !tbaa !5
  br label %1216

1216:                                             ; preds = %1269, %1208
  %1217 = load i32, ptr %10, align 4, !tbaa !5
  %1218 = icmp slt i32 %1217, 1
  br i1 %1218, label %1219, label %1272

1219:                                             ; preds = %1216
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #9
  %1220 = load i32, ptr %10, align 4, !tbaa !5
  %1221 = sext i32 %1220 to i64
  %1222 = getelementptr inbounds [1 x i32], ptr %43, i64 0, i64 %1221
  %1223 = load i32, ptr %1222, align 4, !tbaa !5
  %1224 = trunc i32 %1223 to i8
  %1225 = load ptr, ptr %17, align 8, !tbaa !9
  %1226 = getelementptr inbounds i8, ptr %1225, i64 0
  store i8 %1224, ptr %1226, align 1, !tbaa !18
  %1227 = load i32, ptr %10, align 4, !tbaa !5
  %1228 = sext i32 %1227 to i64
  %1229 = getelementptr inbounds [1 x i32], ptr %44, i64 0, i64 %1228
  %1230 = load i32, ptr %1229, align 4, !tbaa !5
  store i32 %1230, ptr @Rz, align 4, !tbaa !5
  store i32 %1230, ptr @Rw, align 4, !tbaa !5
  store i32 1, ptr %47, align 4, !tbaa !5
  br label %1231

1231:                                             ; preds = %1246, %1219
  %1232 = load i32, ptr %47, align 4, !tbaa !5
  %1233 = load i32, ptr %10, align 4, !tbaa !5
  %1234 = sext i32 %1233 to i64
  %1235 = getelementptr inbounds [1 x i32], ptr %45, i64 0, i64 %1234
  %1236 = load i32, ptr %1235, align 4, !tbaa !5
  %1237 = icmp slt i32 %1232, %1236
  br i1 %1237, label %1238, label %1249

1238:                                             ; preds = %1231
  %1239 = call i32 @fast_rand()
  %1240 = and i32 %1239, 255
  %1241 = trunc i32 %1240 to i8
  %1242 = load ptr, ptr %17, align 8, !tbaa !9
  %1243 = load i32, ptr %47, align 4, !tbaa !5
  %1244 = sext i32 %1243 to i64
  %1245 = getelementptr inbounds i8, ptr %1242, i64 %1244
  store i8 %1241, ptr %1245, align 1, !tbaa !18
  br label %1246

1246:                                             ; preds = %1238
  %1247 = load i32, ptr %47, align 4, !tbaa !5
  %1248 = add nsw i32 %1247, 1
  store i32 %1248, ptr %47, align 4, !tbaa !5
  br label %1231, !llvm.loop !42

1249:                                             ; preds = %1231
  %1250 = load i32, ptr %9, align 4, !tbaa !5
  %1251 = sext i32 %1250 to i64
  %1252 = getelementptr inbounds [10 x ptr], ptr %11, i64 0, i64 %1251
  %1253 = load ptr, ptr %1252, align 8, !tbaa !9
  %1254 = load ptr, ptr %17, align 8, !tbaa !9
  %1255 = load i32, ptr %10, align 4, !tbaa !5
  %1256 = sext i32 %1255 to i64
  %1257 = getelementptr inbounds [1 x i32], ptr %45, i64 0, i64 %1256
  %1258 = load i32, ptr %1257, align 4, !tbaa !5
  %1259 = load ptr, ptr %20, align 8, !tbaa !9
  %1260 = call i32 @opus_decode(ptr noundef %1253, ptr noundef %1254, i32 noundef %1258, ptr noundef %1259, i32 noundef 5760, i32 noundef 0)
  store i32 %1260, ptr %7, align 4, !tbaa !5
  %1261 = load i32, ptr %7, align 4, !tbaa !5
  %1262 = load i32, ptr %10, align 4, !tbaa !5
  %1263 = sext i32 %1262 to i64
  %1264 = getelementptr inbounds [1 x i32], ptr %46, i64 0, i64 %1263
  %1265 = load i32, ptr %1264, align 4, !tbaa !5
  %1266 = icmp ne i32 %1261, %1265
  br i1 %1266, label %1267, label %1268

1267:                                             ; preds = %1249
  call void @_test_failed(ptr noundef @.str, i32 noundef 364) #11
  unreachable

1268:                                             ; preds = %1249
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #9
  br label %1269

1269:                                             ; preds = %1268
  %1270 = load i32, ptr %10, align 4, !tbaa !5
  %1271 = add nsw i32 %1270, 1
  store i32 %1271, ptr %10, align 4, !tbaa !5
  br label %1216, !llvm.loop !43

1272:                                             ; preds = %1216
  %1273 = load ptr, ptr @stdout, align 8, !tbaa !9
  %1274 = load i32, ptr %9, align 4, !tbaa !5
  %1275 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1273, ptr noundef @.str.12, i32 noundef %1274) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #9
  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
  %1276 = load ptr, ptr %13, align 8, !tbaa !9
  call void @free(ptr noundef %1276) #9
  store i32 0, ptr %9, align 4, !tbaa !5
  br label %1277

1277:                                             ; preds = %1285, %1272
  %1278 = load i32, ptr %9, align 4, !tbaa !5
  %1279 = icmp slt i32 %1278, 10
  br i1 %1279, label %1280, label %1288

1280:                                             ; preds = %1277
  %1281 = load i32, ptr %9, align 4, !tbaa !5
  %1282 = sext i32 %1281 to i64
  %1283 = getelementptr inbounds [10 x ptr], ptr %11, i64 0, i64 %1282
  %1284 = load ptr, ptr %1283, align 8, !tbaa !9
  call void @opus_decoder_destroy(ptr noundef %1284)
  br label %1285

1285:                                             ; preds = %1280
  %1286 = load i32, ptr %9, align 4, !tbaa !5
  %1287 = add nsw i32 %1286, 1
  store i32 %1287, ptr %9, align 4, !tbaa !5
  br label %1277, !llvm.loop !44

1288:                                             ; preds = %1277
  %1289 = call i32 (ptr, ...) @printf(ptr noundef @.str.7)
  store i32 0, ptr %4, align 4, !tbaa !5
  store i32 0, ptr %10, align 4, !tbaa !5
  br label %1290

1290:                                             ; preds = %1304, %1288
  %1291 = load i32, ptr %10, align 4, !tbaa !5
  %1292 = icmp slt i32 %1291, 16
  br i1 %1292, label %1293, label %1307

1293:                                             ; preds = %1290
  %1294 = load ptr, ptr %19, align 8, !tbaa !9
  %1295 = load i32, ptr %10, align 4, !tbaa !5
  %1296 = sext i32 %1295 to i64
  %1297 = getelementptr inbounds i16, ptr %1294, i64 %1296
  %1298 = load i16, ptr %1297, align 2, !tbaa !11
  %1299 = sext i16 %1298 to i32
  %1300 = icmp ne i32 %1299, 32749
  %1301 = zext i1 %1300 to i32
  %1302 = load i32, ptr %4, align 4, !tbaa !5
  %1303 = or i32 %1302, %1301
  store i32 %1303, ptr %4, align 4, !tbaa !5
  br label %1304

1304:                                             ; preds = %1293
  %1305 = load i32, ptr %10, align 4, !tbaa !5
  %1306 = add nsw i32 %1305, 1
  store i32 %1306, ptr %10, align 4, !tbaa !5
  br label %1290, !llvm.loop !45

1307:                                             ; preds = %1290
  store i32 11520, ptr %10, align 4, !tbaa !5
  br label %1308

1308:                                             ; preds = %1322, %1307
  %1309 = load i32, ptr %10, align 4, !tbaa !5
  %1310 = icmp slt i32 %1309, 11536
  br i1 %1310, label %1311, label %1325

1311:                                             ; preds = %1308
  %1312 = load ptr, ptr %20, align 8, !tbaa !9
  %1313 = load i32, ptr %10, align 4, !tbaa !5
  %1314 = sext i32 %1313 to i64
  %1315 = getelementptr inbounds i16, ptr %1312, i64 %1314
  %1316 = load i16, ptr %1315, align 2, !tbaa !11
  %1317 = sext i16 %1316 to i32
  %1318 = icmp ne i32 %1317, 32749
  %1319 = zext i1 %1318 to i32
  %1320 = load i32, ptr %4, align 4, !tbaa !5
  %1321 = or i32 %1320, %1319
  store i32 %1321, ptr %4, align 4, !tbaa !5
  br label %1322

1322:                                             ; preds = %1311
  %1323 = load i32, ptr %10, align 4, !tbaa !5
  %1324 = add nsw i32 %1323, 1
  store i32 %1324, ptr %10, align 4, !tbaa !5
  br label %1308, !llvm.loop !46

1325:                                             ; preds = %1308
  %1326 = load i32, ptr %4, align 4, !tbaa !5
  %1327 = icmp ne i32 %1326, 0
  br i1 %1327, label %1328, label %1329

1328:                                             ; preds = %1325
  call void @_test_failed(ptr noundef @.str, i32 noundef 376) #11
  unreachable

1329:                                             ; preds = %1325
  %1330 = load ptr, ptr %19, align 8, !tbaa !9
  call void @free(ptr noundef %1330) #9
  %1331 = load ptr, ptr %17, align 8, !tbaa !9
  call void @free(ptr noundef %1331) #9
  store i32 0, ptr %2, align 4
  store i32 1, ptr %30, align 4
  br label %1332

1332:                                             ; preds = %1329, %704
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #9
  call void @llvm.lifetime.end.p0(i64 4096, ptr %18) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #9
  call void @llvm.lifetime.end.p0(i64 80, ptr %11) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #9
  call void @llvm.lifetime.end.p0(i64 4, 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 4, ptr %4) #9
  %1333 = load i32, ptr %2, align 4
  ret i32 %1333
}

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

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

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

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

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

declare i32 @opus_decoder_get_size(i32 noundef) #5

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

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

declare void @opus_decoder_destroy(ptr noundef) #5

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

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

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

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

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

declare i32 @opus_packet_get_nb_channels(ptr noundef) #5

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

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

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

; Function Attrs: nounwind
declare i32 @rand() #4

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 = { 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 #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 "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 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #7 = { nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #8 = { 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 #9 = { nounwind }
attributes #10 = { nounwind allocsize(0) }
attributes #11 = { noreturn }

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"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 = !{!12, !12, i64 0}
!12 = !{!"short", !7, i64 0}
!13 = distinct !{!13, !14}
!14 = !{!"llvm.loop.mustprogress"}
!15 = distinct !{!15, !14}
!16 = distinct !{!16, !14}
!17 = distinct !{!17, !14}
!18 = !{!7, !7, i64 0}
!19 = distinct !{!19, !14}
!20 = distinct !{!20, !14}
!21 = distinct !{!21, !14}
!22 = distinct !{!22, !14}
!23 = distinct !{!23, !14}
!24 = distinct !{!24, !14}
!25 = distinct !{!25, !14}
!26 = distinct !{!26, !14}
!27 = distinct !{!27, !14}
!28 = distinct !{!28, !14}
!29 = distinct !{!29, !14}
!30 = distinct !{!30, !14}
!31 = distinct !{!31, !14}
!32 = distinct !{!32, !14}
!33 = distinct !{!33, !14}
!34 = distinct !{!34, !14}
!35 = distinct !{!35, !14}
!36 = distinct !{!36, !14}
!37 = distinct !{!37, !14}
!38 = distinct !{!38, !14}
!39 = distinct !{!39, !14}
!40 = distinct !{!40, !14}
!41 = distinct !{!41, !14}
!42 = distinct !{!42, !14}
!43 = distinct !{!43, !14}
!44 = distinct !{!44, !14}
!45 = distinct !{!45, !14}
!46 = distinct !{!46, !14}


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

@test_decoder_code0.fsv = external hidden local_unnamed_addr constant [5 x i32], align 16
@.str = external hidden unnamed_addr constant [93 x i8], align 1
@stdout = external local_unnamed_addr global ptr, align 8
@.str.1 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [21 x i8], align 1
@test_decoder_code0.cmodes = external hidden local_unnamed_addr constant [4 x i32], align 16
@test_decoder_code0.cres = external hidden local_unnamed_addr constant [4 x i32], align 16
@test_decoder_code0.lres = external hidden local_unnamed_addr constant [3 x i32], align 4
@test_decoder_code0.lmodes = external hidden local_unnamed_addr constant [3 x i32], align 4
@.str.8 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [73 x i8], align 1
@__const.test_decoder_code0.tmodes = external hidden unnamed_addr constant [1 x i32], align 4
@__const.test_decoder_code0.tseeds = external hidden unnamed_addr constant [1 x i32], align 4
@__const.test_decoder_code0.tlen = external hidden unnamed_addr constant [1 x i32], align 4
@__const.test_decoder_code0.tret = external hidden unnamed_addr constant [1 x i32], align 4
@Rz = external hidden local_unnamed_addr global i32, align 4
@Rw = external hidden local_unnamed_addr global i32, align 4
@.str.12 = external hidden unnamed_addr constant [44 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local noundef i32 @test_decoder_code0(i32 noundef %0) local_unnamed_addr #0 {
  %2 = alloca i32, align 4
  %3 = alloca [10 x ptr], align 16
  %4 = alloca i32, align 4
  %5 = alloca [4096 x i8], align 16
  %6 = alloca i32, align 4
  %7 = alloca i32, align 4
  %8 = alloca [10 x i32], align 16
  %9 = alloca i32, align 4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %2) #12
  call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %3) #12
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %4) #12
  call void @llvm.lifetime.start.p0(i64 4096, ptr nonnull %5) #12
  store i32 2, ptr %4, align 4, !tbaa !5
  %10 = tail call noalias dereferenceable_or_null(1500) ptr @malloc(i64 noundef 1500) #13
  %11 = icmp eq ptr %10, null
  br i1 %11, label %12, label %vector.ph

12:                                               ; preds = %1
  tail call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 70) #14
  unreachable

vector.ph:                                        ; preds = %1
  %13 = tail call noalias dereferenceable_or_null(23104) ptr @malloc(i64 noundef 23104) #13
  br label %vector.body

vector.body:                                      ; preds = %vector.body, %vector.ph
  %index = phi i64 [ 0, %vector.ph ], [ %index.next.1, %vector.body ]
  %14 = getelementptr inbounds i16, ptr %13, i64 %index
  %15 = getelementptr inbounds i8, ptr %14, i64 16
  store <8 x i16> <i16 32749, i16 32749, i16 32749, i16 32749, i16 32749, i16 32749, i16 32749, i16 32749>, ptr %14, align 2, !tbaa !9
  store <8 x i16> <i16 32749, i16 32749, i16 32749, i16 32749, i16 32749, i16 32749, i16 32749, i16 32749>, ptr %15, align 2, !tbaa !9
  %index.next = or disjoint i64 %index, 16
  %16 = getelementptr inbounds i16, ptr %13, i64 %index.next
  %17 = getelementptr inbounds i8, ptr %16, i64 16
  store <8 x i16> <i16 32749, i16 32749, i16 32749, i16 32749, i16 32749, i16 32749, i16 32749, i16 32749>, ptr %16, align 2, !tbaa !9
  store <8 x i16> <i16 32749, i16 32749, i16 32749, i16 32749, i16 32749, i16 32749, i16 32749, i16 32749>, ptr %17, align 2, !tbaa !9
  %index.next.1 = add nuw nsw i64 %index, 32
  %18 = icmp eq i64 %index.next.1, 11552
  br i1 %18, label %middle.block, label %vector.body, !llvm.loop !11

middle.block:                                     ; preds = %vector.body
  %19 = getelementptr inbounds i8, ptr %13, i64 32
  %20 = load ptr, ptr @stdout, align 8, !tbaa !15
  %21 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20, ptr noundef nonnull @.str.1, i32 noundef 10) #12
  br label %22

22:                                               ; preds = %middle.block, %43
  %indvars.iv547 = phi i64 [ 0, %middle.block ], [ %indvars.iv.next548, %43 ]
  %23 = trunc nuw nsw i64 %indvars.iv547 to i32
  %24 = lshr i64 %indvars.iv547, 1
  %25 = and i64 %24, 2147483647
  %26 = getelementptr inbounds [5 x i32], ptr @test_decoder_code0.fsv, i64 0, i64 %25
  %27 = load i32, ptr %26, align 4, !tbaa !5
  %28 = and i32 %23, 1
  %29 = add nuw nsw i32 %28, 1
  store i32 -3, ptr %2, align 4, !tbaa !5
  %30 = call ptr @opus_decoder_create(i32 noundef %27, i32 noundef %29, ptr noundef nonnull %2) #12
  %31 = getelementptr inbounds [10 x ptr], ptr %3, i64 0, i64 %indvars.iv547
  store ptr %30, ptr %31, align 8, !tbaa !15
  %32 = load i32, ptr %2, align 4, !tbaa !5
  %.not438 = icmp ne i32 %32, 0
  %33 = icmp eq ptr %30, null
  %or.cond = select i1 %.not438, i1 true, i1 %33
  br i1 %or.cond, label %34, label %35

34:                                               ; preds = %22
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 83) #14
  unreachable

35:                                               ; preds = %22
  %36 = load ptr, ptr @stdout, align 8, !tbaa !15
  %37 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %36, ptr noundef nonnull @.str.2, i32 noundef %27, i32 noundef %29) #12
  %38 = call i32 @opus_decoder_get_size(i32 noundef %29) #12
  %39 = sext i32 %38 to i64
  %40 = call noalias ptr @malloc(i64 noundef %39) #13
  %41 = icmp eq ptr %40, null
  br i1 %41, label %42, label %43

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

43:                                               ; preds = %35
  %44 = call i32 @opus_decoder_get_size(i32 noundef %29) #12
  %45 = sext i32 %44 to i64
  call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %40, ptr nonnull align 1 %30, i64 %45, i1 false)
  %46 = call i32 @opus_decoder_get_size(i32 noundef %29) #12
  %47 = sext i32 %46 to i64
  call void @llvm.memset.p0.i64(ptr nonnull align 1 %30, i8 -1, i64 %47, i1 false)
  call void @opus_decoder_destroy(ptr noundef nonnull %30) #12
  %48 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.3)
  store ptr %40, ptr %31, align 8, !tbaa !15
  %indvars.iv.next548 = add nuw nsw i64 %indvars.iv547, 1
  %exitcond550.not = icmp eq i64 %indvars.iv.next548, 10
  br i1 %exitcond550.not, label %49, label %22, !llvm.loop !17

49:                                               ; preds = %43
  %50 = call i32 @opus_decoder_get_size(i32 noundef 1) #12
  %51 = sext i32 %50 to i64
  %52 = call noalias ptr @malloc(i64 noundef %51) #13
  %53 = icmp eq ptr %52, null
  br i1 %53, label %54, label %.preheader448

54:                                               ; preds = %49
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 100) #14
  unreachable

.preheader448:                                    ; preds = %49, %172
  %indvars.iv551 = phi i64 [ %indvars.iv.next552, %172 ], [ 0, %49 ]
  %55 = lshr i64 %indvars.iv551, 1
  %56 = and i64 %55, 2147483647
  %57 = getelementptr inbounds [5 x i32], ptr @test_decoder_code0.fsv, i64 0, i64 %56
  %58 = load i32, ptr %57, align 4, !tbaa !5
  %59 = sdiv i32 48000, %58
  %60 = getelementptr inbounds [10 x ptr], ptr %3, i64 0, i64 %indvars.iv551
  %61 = load ptr, ptr %60, align 8, !tbaa !15
  %62 = sdiv i32 120, %59
  %63 = add nsw i32 %62, 2
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %6) #12
  %64 = call i32 @opus_decode(ptr noundef %61, ptr noundef null, i32 noundef 0, ptr noundef nonnull %19, i32 noundef %62, i32 noundef 0) #12
  %.not424 = icmp eq i32 %64, %62
  br i1 %.not424, label %66, label %65

65:                                               ; preds = %127, %.preheader448
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 110) #14
  unreachable

66:                                               ; preds = %.preheader448
  %67 = call i32 (ptr, i32, ...) @opus_decoder_ctl(ptr noundef %61, i32 noundef 4039, ptr noundef nonnull %6) #12
  %.not425 = icmp eq i32 %67, 0
  br i1 %.not425, label %69, label %68

68:                                               ; preds = %129, %66
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 111) #14
  unreachable

69:                                               ; preds = %66
  %70 = load i32, ptr %6, align 4, !tbaa !5
  %.not426 = icmp eq i32 %70, %62
  br i1 %.not426, label %72, label %71

71:                                               ; preds = %131, %69
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 112) #14
  unreachable

72:                                               ; preds = %69
  %73 = call i32 @opus_decode(ptr noundef %61, ptr noundef null, i32 noundef 0, ptr noundef nonnull %19, i32 noundef %63, i32 noundef 0) #12
  %.not427 = icmp eq i32 %73, -1
  br i1 %.not427, label %75, label %74

74:                                               ; preds = %133, %72
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 116) #14
  unreachable

75:                                               ; preds = %72
  %76 = call i32 @opus_decode(ptr noundef %61, ptr noundef null, i32 noundef -1, ptr noundef nonnull %19, i32 noundef %62, i32 noundef 0) #12
  %.not428 = icmp eq i32 %76, %62
  br i1 %.not428, label %78, label %77

77:                                               ; preds = %135, %75
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 120) #14
  unreachable

78:                                               ; preds = %75
  %79 = call i32 @opus_decode(ptr noundef %61, ptr noundef null, i32 noundef 1, ptr noundef nonnull %19, i32 noundef %62, i32 noundef 0) #12
  %.not429 = icmp eq i32 %79, %62
  br i1 %.not429, label %81, label %80

80:                                               ; preds = %137, %78
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 122) #14
  unreachable

81:                                               ; preds = %78
  %82 = call i32 @opus_decode(ptr noundef %61, ptr noundef null, i32 noundef 10, ptr noundef nonnull %19, i32 noundef %62, i32 noundef 0) #12
  %.not430 = icmp eq i32 %82, %62
  br i1 %.not430, label %84, label %83

83:                                               ; preds = %139, %81
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 124) #14
  unreachable

84:                                               ; preds = %81
  %85 = call i32 @fast_rand()
  %86 = call i32 @opus_decode(ptr noundef %61, ptr noundef null, i32 noundef %85, ptr noundef nonnull %19, i32 noundef %62, i32 noundef 0) #12
  %.not431 = icmp eq i32 %86, %62
  br i1 %.not431, label %88, label %87

87:                                               ; preds = %141, %84
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 126) #14
  unreachable

88:                                               ; preds = %84
  %89 = call i32 (ptr, i32, ...) @opus_decoder_ctl(ptr noundef %61, i32 noundef 4039, ptr noundef nonnull %6) #12
  %.not432 = icmp eq i32 %89, 0
  br i1 %.not432, label %91, label %90

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

91:                                               ; preds = %88
  %92 = load i32, ptr %6, align 4, !tbaa !5
  %.not433 = icmp eq i32 %92, %62
  br i1 %.not433, label %94, label %93

93:                                               ; preds = %146, %91
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 128) #14
  unreachable

94:                                               ; preds = %91
  %95 = call i32 @opus_decode(ptr noundef %61, ptr noundef %10, i32 noundef 0, ptr noundef nonnull %19, i32 noundef %62, i32 noundef 0) #12
  %.not434 = icmp eq i32 %95, %62
  br i1 %.not434, label %97, label %96

96:                                               ; preds = %148, %94
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 132) #14
  unreachable

97:                                               ; preds = %94
  store i16 32749, ptr %19, align 2, !tbaa !9
  %98 = call i32 @opus_decode(ptr noundef %61, ptr noundef %10, i32 noundef 0, ptr noundef nonnull %19, i32 noundef 0, i32 noundef 0) #12
  %99 = icmp sgt i32 %98, 0
  br i1 %99, label %100, label %101

100:                                              ; preds = %150, %97
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 137) #14
  unreachable

101:                                              ; preds = %97
  %102 = call i32 @opus_decode(ptr noundef %61, ptr noundef %10, i32 noundef 0, ptr noundef null, i32 noundef 0, i32 noundef 0) #12
  %103 = icmp sgt i32 %102, 0
  br i1 %103, label %104, label %105

104:                                              ; preds = %153, %101
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 146) #14
  unreachable

105:                                              ; preds = %101
  %106 = load i16, ptr %19, align 2, !tbaa !9
  %.not435 = icmp eq i16 %106, 32749
  br i1 %.not435, label %108, label %107

107:                                              ; preds = %156, %105
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 147) #14
  unreachable

108:                                              ; preds = %105
  %109 = call i32 @opus_decode(ptr noundef %61, ptr noundef %10, i32 noundef -1, ptr noundef nonnull %19, i32 noundef 5760, i32 noundef 0) #12
  %110 = icmp sgt i32 %109, -1
  br i1 %110, label %111, label %112

111:                                              ; preds = %158, %108
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 151) #14
  unreachable

112:                                              ; preds = %108
  %113 = call i32 @opus_decode(ptr noundef %61, ptr noundef %10, i32 noundef -2147483648, ptr noundef nonnull %19, i32 noundef 5760, i32 noundef 0) #12
  %114 = icmp sgt i32 %113, -1
  br i1 %114, label %115, label %116

115:                                              ; preds = %161, %112
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 153) #14
  unreachable

116:                                              ; preds = %112
  %117 = call i32 @opus_decode(ptr noundef %61, ptr noundef %10, i32 noundef -1, ptr noundef nonnull %19, i32 noundef -1, i32 noundef 0) #12
  %118 = icmp sgt i32 %117, -1
  br i1 %118, label %119, label %120

119:                                              ; preds = %164, %116
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 155) #14
  unreachable

120:                                              ; preds = %116
  %121 = call i32 @opus_decode(ptr noundef %61, ptr noundef %10, i32 noundef 1, ptr noundef nonnull %19, i32 noundef 5760, i32 noundef 2) #12
  %122 = icmp sgt i32 %121, -1
  br i1 %122, label %123, label %124

123:                                              ; preds = %167, %120
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 159) #14
  unreachable

124:                                              ; preds = %120
  %125 = call i32 (ptr, i32, ...) @opus_decoder_ctl(ptr noundef %61, i32 noundef 4028) #12
  %.not437 = icmp eq i32 %125, 0
  br i1 %.not437, label %127, label %126

126:                                              ; preds = %170, %124
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 162) #14
  unreachable

127:                                              ; preds = %124
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %6) #12
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %6) #12
  %128 = call i32 @opus_decode(ptr noundef %61, ptr noundef null, i32 noundef 0, ptr noundef nonnull %19, i32 noundef %62, i32 noundef 1) #12
  %.not424.1 = icmp eq i32 %128, %62
  br i1 %.not424.1, label %129, label %65

129:                                              ; preds = %127
  %130 = call i32 (ptr, i32, ...) @opus_decoder_ctl(ptr noundef %61, i32 noundef 4039, ptr noundef nonnull %6) #12
  %.not425.1 = icmp eq i32 %130, 0
  br i1 %.not425.1, label %131, label %68

131:                                              ; preds = %129
  %132 = load i32, ptr %6, align 4, !tbaa !5
  %.not426.1 = icmp eq i32 %132, %62
  br i1 %.not426.1, label %133, label %71

133:                                              ; preds = %131
  %134 = call i32 @opus_decode(ptr noundef %61, ptr noundef null, i32 noundef 0, ptr noundef nonnull %19, i32 noundef %63, i32 noundef 1) #12
  %.not427.1 = icmp eq i32 %134, -1
  br i1 %.not427.1, label %135, label %74

135:                                              ; preds = %133
  %136 = call i32 @opus_decode(ptr noundef %61, ptr noundef null, i32 noundef -1, ptr noundef nonnull %19, i32 noundef %62, i32 noundef 1) #12
  %.not428.1 = icmp eq i32 %136, %62
  br i1 %.not428.1, label %137, label %77

137:                                              ; preds = %135
  %138 = call i32 @opus_decode(ptr noundef %61, ptr noundef null, i32 noundef 1, ptr noundef nonnull %19, i32 noundef %62, i32 noundef 1) #12
  %.not429.1 = icmp eq i32 %138, %62
  br i1 %.not429.1, label %139, label %80

139:                                              ; preds = %137
  %140 = call i32 @opus_decode(ptr noundef %61, ptr noundef null, i32 noundef 10, ptr noundef nonnull %19, i32 noundef %62, i32 noundef 1) #12
  %.not430.1 = icmp eq i32 %140, %62
  br i1 %.not430.1, label %141, label %83

141:                                              ; preds = %139
  %142 = call i32 @fast_rand()
  %143 = call i32 @opus_decode(ptr noundef %61, ptr noundef null, i32 noundef %142, ptr noundef nonnull %19, i32 noundef %62, i32 noundef 1) #12
  %.not431.1 = icmp eq i32 %143, %62
  br i1 %.not431.1, label %144, label %87

144:                                              ; preds = %141
  %145 = call i32 (ptr, i32, ...) @opus_decoder_ctl(ptr noundef %61, i32 noundef 4039, ptr noundef nonnull %6) #12
  %.not432.1 = icmp eq i32 %145, 0
  br i1 %.not432.1, label %146, label %90

146:                                              ; preds = %144
  %147 = load i32, ptr %6, align 4, !tbaa !5
  %.not433.1 = icmp eq i32 %147, %62
  br i1 %.not433.1, label %148, label %93

148:                                              ; preds = %146
  %149 = call i32 @opus_decode(ptr noundef %61, ptr noundef %10, i32 noundef 0, ptr noundef nonnull %19, i32 noundef %62, i32 noundef 1) #12
  %.not434.1 = icmp eq i32 %149, %62
  br i1 %.not434.1, label %150, label %96

150:                                              ; preds = %148
  store i16 32749, ptr %19, align 2, !tbaa !9
  %151 = call i32 @opus_decode(ptr noundef %61, ptr noundef %10, i32 noundef 0, ptr noundef nonnull %19, i32 noundef 0, i32 noundef 1) #12
  %152 = icmp sgt i32 %151, 0
  br i1 %152, label %100, label %153

153:                                              ; preds = %150
  %154 = call i32 @opus_decode(ptr noundef %61, ptr noundef %10, i32 noundef 0, ptr noundef null, i32 noundef 0, i32 noundef 1) #12
  %155 = icmp sgt i32 %154, 0
  br i1 %155, label %104, label %156

156:                                              ; preds = %153
  %157 = load i16, ptr %19, align 2, !tbaa !9
  %.not435.1 = icmp eq i16 %157, 32749
  br i1 %.not435.1, label %158, label %107

158:                                              ; preds = %156
  %159 = call i32 @opus_decode(ptr noundef %61, ptr noundef %10, i32 noundef -1, ptr noundef nonnull %19, i32 noundef 5760, i32 noundef 1) #12
  %160 = icmp sgt i32 %159, -1
  br i1 %160, label %111, label %161

161:                                              ; preds = %158
  %162 = call i32 @opus_decode(ptr noundef %61, ptr noundef %10, i32 noundef -2147483648, ptr noundef nonnull %19, i32 noundef 5760, i32 noundef 1) #12
  %163 = icmp sgt i32 %162, -1
  br i1 %163, label %115, label %164

164:                                              ; preds = %161
  %165 = call i32 @opus_decode(ptr noundef %61, ptr noundef %10, i32 noundef -1, ptr noundef nonnull %19, i32 noundef -1, i32 noundef 1) #12
  %166 = icmp sgt i32 %165, -1
  br i1 %166, label %119, label %167

167:                                              ; preds = %164
  %168 = call i32 @opus_decode(ptr noundef %61, ptr noundef %10, i32 noundef 1, ptr noundef nonnull %19, i32 noundef 5760, i32 noundef -1) #12
  %169 = icmp sgt i32 %168, -1
  br i1 %169, label %123, label %170

170:                                              ; preds = %167
  %171 = call i32 (ptr, i32, ...) @opus_decoder_ctl(ptr noundef %61, i32 noundef 4028) #12
  %.not437.1 = icmp eq i32 %171, 0
  br i1 %.not437.1, label %172, label %126

172:                                              ; preds = %170
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %6) #12
  %indvars.iv.next552 = add nuw nsw i64 %indvars.iv551, 1
  %exitcond554.not = icmp eq i64 %indvars.iv.next552, 10
  br i1 %exitcond554.not, label %173, label %.preheader448, !llvm.loop !18

173:                                              ; preds = %172
  %174 = load ptr, ptr @stdout, align 8, !tbaa !15
  %175 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %174, ptr noundef nonnull @.str.4) #12
  %176 = getelementptr inbounds i8, ptr %10, i64 1
  %177 = getelementptr inbounds i8, ptr %10, i64 2
  %178 = getelementptr inbounds i8, ptr %3, i64 8
  %179 = getelementptr inbounds i8, ptr %8, i64 4
  %180 = getelementptr inbounds i8, ptr %3, i64 16
  %181 = getelementptr inbounds i8, ptr %8, i64 8
  %182 = getelementptr inbounds i8, ptr %3, i64 24
  %183 = getelementptr inbounds i8, ptr %8, i64 12
  %184 = getelementptr inbounds i8, ptr %3, i64 32
  %185 = getelementptr inbounds i8, ptr %8, i64 16
  %186 = getelementptr inbounds i8, ptr %3, i64 40
  %187 = getelementptr inbounds i8, ptr %8, i64 20
  %188 = getelementptr inbounds i8, ptr %3, i64 48
  %189 = getelementptr inbounds i8, ptr %8, i64 24
  %190 = getelementptr inbounds i8, ptr %3, i64 56
  %191 = getelementptr inbounds i8, ptr %8, i64 28
  %192 = getelementptr inbounds i8, ptr %3, i64 64
  %193 = getelementptr inbounds i8, ptr %8, i64 32
  %194 = getelementptr inbounds i8, ptr %3, i64 72
  %195 = getelementptr inbounds i8, ptr %8, i64 36
  %196 = getelementptr inbounds i8, ptr %3, i64 8
  %197 = getelementptr inbounds i8, ptr %8, i64 4
  %198 = getelementptr inbounds i8, ptr %3, i64 16
  %199 = getelementptr inbounds i8, ptr %8, i64 8
  %200 = getelementptr inbounds i8, ptr %3, i64 24
  %201 = getelementptr inbounds i8, ptr %8, i64 12
  %202 = getelementptr inbounds i8, ptr %3, i64 32
  %203 = getelementptr inbounds i8, ptr %8, i64 16
  %204 = getelementptr inbounds i8, ptr %3, i64 40
  %205 = getelementptr inbounds i8, ptr %8, i64 20
  %206 = getelementptr inbounds i8, ptr %3, i64 48
  %207 = getelementptr inbounds i8, ptr %8, i64 24
  %208 = getelementptr inbounds i8, ptr %3, i64 56
  %209 = getelementptr inbounds i8, ptr %8, i64 28
  %210 = getelementptr inbounds i8, ptr %3, i64 64
  %211 = getelementptr inbounds i8, ptr %8, i64 32
  %212 = getelementptr inbounds i8, ptr %3, i64 72
  %213 = getelementptr inbounds i8, ptr %8, i64 36
  br label %214

214:                                              ; preds = %173, %425
  %.1361494 = phi i32 [ 0, %173 ], [ %426, %425 ]
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %7) #12
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %8) #12
  %.1361.tr = trunc nuw i32 %.1361494 to i8
  %215 = shl nuw i8 %.1361.tr, 2
  store i8 %215, ptr %10, align 1, !tbaa !19
  store i8 -1, ptr %176, align 1, !tbaa !19
  store i8 -1, ptr %177, align 1, !tbaa !19
  %216 = call i32 @opus_packet_get_nb_channels(ptr noundef nonnull %10) #12
  store i32 %216, ptr %2, align 4, !tbaa !5
  %217 = and i32 %.1361494, 1
  %218 = add nuw nsw i32 %217, 1
  %.not412 = icmp eq i32 %216, %218
  br i1 %.not412, label %.preheader447.preheader, label %222

.preheader447.preheader:                          ; preds = %214
  %219 = load ptr, ptr %3, align 16, !tbaa !15
  %220 = call i32 @opus_decoder_get_nb_samples(ptr noundef %219, ptr noundef nonnull %10, i32 noundef 1) #12
  store i32 %220, ptr %8, align 16, !tbaa !5
  %221 = icmp sgt i32 %220, 2880
  br i1 %221, label %259, label %.preheader447.1

222:                                              ; preds = %214
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 176) #14
  unreachable

.preheader447.1:                                  ; preds = %.preheader447.preheader
  %223 = load ptr, ptr %178, align 8, !tbaa !15
  %224 = call i32 @opus_decoder_get_nb_samples(ptr noundef %223, ptr noundef nonnull %10, i32 noundef 1) #12
  store i32 %224, ptr %179, align 4, !tbaa !5
  %225 = icmp sgt i32 %224, 2880
  br i1 %225, label %259, label %.preheader447.2

.preheader447.2:                                  ; preds = %.preheader447.1
  %226 = load ptr, ptr %180, align 16, !tbaa !15
  %227 = call i32 @opus_decoder_get_nb_samples(ptr noundef %226, ptr noundef nonnull %10, i32 noundef 1) #12
  store i32 %227, ptr %181, align 8, !tbaa !5
  %228 = icmp sgt i32 %227, 2880
  br i1 %228, label %259, label %.preheader447.3

.preheader447.3:                                  ; preds = %.preheader447.2
  %229 = load ptr, ptr %182, align 8, !tbaa !15
  %230 = call i32 @opus_decoder_get_nb_samples(ptr noundef %229, ptr noundef nonnull %10, i32 noundef 1) #12
  store i32 %230, ptr %183, align 4, !tbaa !5
  %231 = icmp sgt i32 %230, 2880
  br i1 %231, label %259, label %.preheader447.4

.preheader447.4:                                  ; preds = %.preheader447.3
  %232 = load ptr, ptr %184, align 16, !tbaa !15
  %233 = call i32 @opus_decoder_get_nb_samples(ptr noundef %232, ptr noundef nonnull %10, i32 noundef 1) #12
  store i32 %233, ptr %185, align 16, !tbaa !5
  %234 = icmp sgt i32 %233, 2880
  br i1 %234, label %259, label %.preheader447.5

.preheader447.5:                                  ; preds = %.preheader447.4
  %235 = load ptr, ptr %186, align 8, !tbaa !15
  %236 = call i32 @opus_decoder_get_nb_samples(ptr noundef %235, ptr noundef nonnull %10, i32 noundef 1) #12
  store i32 %236, ptr %187, align 4, !tbaa !5
  %237 = icmp sgt i32 %236, 2880
  br i1 %237, label %259, label %.preheader447.6

.preheader447.6:                                  ; preds = %.preheader447.5
  %238 = load ptr, ptr %188, align 16, !tbaa !15
  %239 = call i32 @opus_decoder_get_nb_samples(ptr noundef %238, ptr noundef nonnull %10, i32 noundef 1) #12
  store i32 %239, ptr %189, align 8, !tbaa !5
  %240 = icmp sgt i32 %239, 2880
  br i1 %240, label %259, label %.preheader447.7

.preheader447.7:                                  ; preds = %.preheader447.6
  %241 = load ptr, ptr %190, align 8, !tbaa !15
  %242 = call i32 @opus_decoder_get_nb_samples(ptr noundef %241, ptr noundef nonnull %10, i32 noundef 1) #12
  store i32 %242, ptr %191, align 4, !tbaa !5
  %243 = icmp sgt i32 %242, 2880
  br i1 %243, label %259, label %.preheader447.8

.preheader447.8:                                  ; preds = %.preheader447.7
  %244 = load ptr, ptr %192, align 16, !tbaa !15
  %245 = call i32 @opus_decoder_get_nb_samples(ptr noundef %244, ptr noundef nonnull %10, i32 noundef 1) #12
  store i32 %245, ptr %193, align 16, !tbaa !5
  %246 = icmp sgt i32 %245, 2880
  br i1 %246, label %259, label %.preheader447.9

.preheader447.9:                                  ; preds = %.preheader447.8
  %247 = load ptr, ptr %194, align 8, !tbaa !15
  %248 = call i32 @opus_decoder_get_nb_samples(ptr noundef %247, ptr noundef nonnull %10, i32 noundef 1) #12
  store i32 %248, ptr %195, align 4, !tbaa !5
  %249 = icmp sgt i32 %248, 2880
  br i1 %249, label %259, label %.preheader446.preheader

.preheader446.preheader:                          ; preds = %.preheader447.9
  %250 = load i32, ptr %197, align 4
  %251 = load i32, ptr %199, align 8
  %252 = load i32, ptr %201, align 4
  %253 = load i32, ptr %203, align 16
  %254 = load i32, ptr %205, align 4
  %255 = load i32, ptr %207, align 8
  %256 = load i32, ptr %209, align 4
  %257 = load i32, ptr %211, align 16
  %258 = load i32, ptr %213, align 4
  br label %.preheader446

259:                                              ; preds = %.preheader447.9, %.preheader447.8, %.preheader447.7, %.preheader447.6, %.preheader447.5, %.preheader447.4, %.preheader447.3, %.preheader447.2, %.preheader447.1, %.preheader447.preheader
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 180) #14
  unreachable

.preheader446:                                    ; preds = %.preheader446.preheader, %.loopexit567
  %.0357490 = phi i32 [ %358, %.loopexit567 ], [ 0, %.preheader446.preheader ]
  %260 = trunc nuw i32 %.0357490 to i8
  store i8 %260, ptr %176, align 1, !tbaa !19
  %261 = load ptr, ptr %3, align 16, !tbaa !15
  %262 = call i32 @opus_decode(ptr noundef %261, ptr noundef nonnull %10, i32 noundef 3, ptr noundef nonnull %19, i32 noundef 5760, i32 noundef 0) #12
  %.not420.peel = icmp eq i32 %262, %220
  br i1 %.not420.peel, label %263, label %.loopexit

263:                                              ; preds = %.preheader446
  %264 = call i32 (ptr, i32, ...) @opus_decoder_ctl(ptr noundef %261, i32 noundef 4039, ptr noundef nonnull %7) #12
  %.not421.peel = icmp eq i32 %264, 0
  br i1 %.not421.peel, label %265, label %.loopexit564

265:                                              ; preds = %263
  %266 = load i32, ptr %7, align 4, !tbaa !5
  %.not422.peel = icmp eq i32 %266, %220
  br i1 %.not422.peel, label %.peel.next, label %.loopexit565

.peel.next:                                       ; preds = %265
  %267 = call i32 (ptr, i32, ...) @opus_decoder_ctl(ptr noundef %261, i32 noundef 4031, ptr noundef nonnull %4) #12
  %268 = load i32, ptr %4, align 4, !tbaa !5
  %269 = load ptr, ptr %196, align 8, !tbaa !15
  %270 = call i32 @opus_decode(ptr noundef %269, ptr noundef nonnull %10, i32 noundef 3, ptr noundef nonnull %19, i32 noundef 5760, i32 noundef 0) #12
  %.not420 = icmp eq i32 %270, %250
  br i1 %.not420, label %271, label %.loopexit

.loopexit:                                        ; preds = %.preheader446, %.peel.next, %278, %288, %298, %308, %318, %328, %338, %348
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 189) #14
  unreachable

271:                                              ; preds = %.peel.next
  %272 = call i32 (ptr, i32, ...) @opus_decoder_ctl(ptr noundef %269, i32 noundef 4039, ptr noundef nonnull %7) #12
  %.not421 = icmp eq i32 %272, 0
  br i1 %.not421, label %273, label %.loopexit564

.loopexit564:                                     ; preds = %263, %271, %281, %291, %301, %311, %321, %331, %341, %351
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 190) #14
  unreachable

273:                                              ; preds = %271
  %274 = load i32, ptr %7, align 4, !tbaa !5
  %.not422 = icmp eq i32 %274, %270
  br i1 %.not422, label %275, label %.loopexit565

.loopexit565:                                     ; preds = %265, %273, %283, %293, %303, %313, %323, %333, %343, %353
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 191) #14
  unreachable

275:                                              ; preds = %273
  %276 = call i32 (ptr, i32, ...) @opus_decoder_ctl(ptr noundef %269, i32 noundef 4031, ptr noundef nonnull %4) #12
  %277 = load i32, ptr %4, align 4, !tbaa !5
  %.not423 = icmp eq i32 %277, %268
  br i1 %.not423, label %278, label %.loopexit566

.loopexit566:                                     ; preds = %355, %345, %335, %325, %315, %305, %295, %285, %275
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 194) #14
  unreachable

278:                                              ; preds = %275
  %279 = load ptr, ptr %198, align 16, !tbaa !15
  %280 = call i32 @opus_decode(ptr noundef %279, ptr noundef nonnull %10, i32 noundef 3, ptr noundef nonnull %19, i32 noundef 5760, i32 noundef 0) #12
  %.not420.1 = icmp eq i32 %280, %251
  br i1 %.not420.1, label %281, label %.loopexit

281:                                              ; preds = %278
  %282 = call i32 (ptr, i32, ...) @opus_decoder_ctl(ptr noundef %279, i32 noundef 4039, ptr noundef nonnull %7) #12
  %.not421.1 = icmp eq i32 %282, 0
  br i1 %.not421.1, label %283, label %.loopexit564

283:                                              ; preds = %281
  %284 = load i32, ptr %7, align 4, !tbaa !5
  %.not422.1 = icmp eq i32 %284, %280
  br i1 %.not422.1, label %285, label %.loopexit565

285:                                              ; preds = %283
  %286 = call i32 (ptr, i32, ...) @opus_decoder_ctl(ptr noundef %279, i32 noundef 4031, ptr noundef nonnull %4) #12
  %287 = load i32, ptr %4, align 4, !tbaa !5
  %.not423.1 = icmp eq i32 %287, %268
  br i1 %.not423.1, label %288, label %.loopexit566

288:                                              ; preds = %285
  %289 = load ptr, ptr %200, align 8, !tbaa !15
  %290 = call i32 @opus_decode(ptr noundef %289, ptr noundef nonnull %10, i32 noundef 3, ptr noundef nonnull %19, i32 noundef 5760, i32 noundef 0) #12
  %.not420.2 = icmp eq i32 %290, %252
  br i1 %.not420.2, label %291, label %.loopexit

291:                                              ; preds = %288
  %292 = call i32 (ptr, i32, ...) @opus_decoder_ctl(ptr noundef %289, i32 noundef 4039, ptr noundef nonnull %7) #12
  %.not421.2 = icmp eq i32 %292, 0
  br i1 %.not421.2, label %293, label %.loopexit564

293:                                              ; preds = %291
  %294 = load i32, ptr %7, align 4, !tbaa !5
  %.not422.2 = icmp eq i32 %294, %290
  br i1 %.not422.2, label %295, label %.loopexit565

295:                                              ; preds = %293
  %296 = call i32 (ptr, i32, ...) @opus_decoder_ctl(ptr noundef %289, i32 noundef 4031, ptr noundef nonnull %4) #12
  %297 = load i32, ptr %4, align 4, !tbaa !5
  %.not423.2 = icmp eq i32 %297, %268
  br i1 %.not423.2, label %298, label %.loopexit566

298:                                              ; preds = %295
  %299 = load ptr, ptr %202, align 16, !tbaa !15
  %300 = call i32 @opus_decode(ptr noundef %299, ptr noundef nonnull %10, i32 noundef 3, ptr noundef nonnull %19, i32 noundef 5760, i32 noundef 0) #12
  %.not420.3 = icmp eq i32 %300, %253
  br i1 %.not420.3, label %301, label %.loopexit

301:                                              ; preds = %298
  %302 = call i32 (ptr, i32, ...) @opus_decoder_ctl(ptr noundef %299, i32 noundef 4039, ptr noundef nonnull %7) #12
  %.not421.3 = icmp eq i32 %302, 0
  br i1 %.not421.3, label %303, label %.loopexit564

303:                                              ; preds = %301
  %304 = load i32, ptr %7, align 4, !tbaa !5
  %.not422.3 = icmp eq i32 %304, %300
  br i1 %.not422.3, label %305, label %.loopexit565

305:                                              ; preds = %303
  %306 = call i32 (ptr, i32, ...) @opus_decoder_ctl(ptr noundef %299, i32 noundef 4031, ptr noundef nonnull %4) #12
  %307 = load i32, ptr %4, align 4, !tbaa !5
  %.not423.3 = icmp eq i32 %307, %268
  br i1 %.not423.3, label %308, label %.loopexit566

308:                                              ; preds = %305
  %309 = load ptr, ptr %204, align 8, !tbaa !15
  %310 = call i32 @opus_decode(ptr noundef %309, ptr noundef nonnull %10, i32 noundef 3, ptr noundef nonnull %19, i32 noundef 5760, i32 noundef 0) #12
  %.not420.4 = icmp eq i32 %310, %254
  br i1 %.not420.4, label %311, label %.loopexit

311:                                              ; preds = %308
  %312 = call i32 (ptr, i32, ...) @opus_decoder_ctl(ptr noundef %309, i32 noundef 4039, ptr noundef nonnull %7) #12
  %.not421.4 = icmp eq i32 %312, 0
  br i1 %.not421.4, label %313, label %.loopexit564

313:                                              ; preds = %311
  %314 = load i32, ptr %7, align 4, !tbaa !5
  %.not422.4 = icmp eq i32 %314, %310
  br i1 %.not422.4, label %315, label %.loopexit565

315:                                              ; preds = %313
  %316 = call i32 (ptr, i32, ...) @opus_decoder_ctl(ptr noundef %309, i32 noundef 4031, ptr noundef nonnull %4) #12
  %317 = load i32, ptr %4, align 4, !tbaa !5
  %.not423.4 = icmp eq i32 %317, %268
  br i1 %.not423.4, label %318, label %.loopexit566

318:                                              ; preds = %315
  %319 = load ptr, ptr %206, align 16, !tbaa !15
  %320 = call i32 @opus_decode(ptr noundef %319, ptr noundef nonnull %10, i32 noundef 3, ptr noundef nonnull %19, i32 noundef 5760, i32 noundef 0) #12
  %.not420.5 = icmp eq i32 %320, %255
  br i1 %.not420.5, label %321, label %.loopexit

321:                                              ; preds = %318
  %322 = call i32 (ptr, i32, ...) @opus_decoder_ctl(ptr noundef %319, i32 noundef 4039, ptr noundef nonnull %7) #12
  %.not421.5 = icmp eq i32 %322, 0
  br i1 %.not421.5, label %323, label %.loopexit564

323:                                              ; preds = %321
  %324 = load i32, ptr %7, align 4, !tbaa !5
  %.not422.5 = icmp eq i32 %324, %320
  br i1 %.not422.5, label %325, label %.loopexit565

325:                                              ; preds = %323
  %326 = call i32 (ptr, i32, ...) @opus_decoder_ctl(ptr noundef %319, i32 noundef 4031, ptr noundef nonnull %4) #12
  %327 = load i32, ptr %4, align 4, !tbaa !5
  %.not423.5 = icmp eq i32 %327, %268
  br i1 %.not423.5, label %328, label %.loopexit566

328:                                              ; preds = %325
  %329 = load ptr, ptr %208, align 8, !tbaa !15
  %330 = call i32 @opus_decode(ptr noundef %329, ptr noundef nonnull %10, i32 noundef 3, ptr noundef nonnull %19, i32 noundef 5760, i32 noundef 0) #12
  %.not420.6 = icmp eq i32 %330, %256
  br i1 %.not420.6, label %331, label %.loopexit

331:                                              ; preds = %328
  %332 = call i32 (ptr, i32, ...) @opus_decoder_ctl(ptr noundef %329, i32 noundef 4039, ptr noundef nonnull %7) #12
  %.not421.6 = icmp eq i32 %332, 0
  br i1 %.not421.6, label %333, label %.loopexit564

333:                                              ; preds = %331
  %334 = load i32, ptr %7, align 4, !tbaa !5
  %.not422.6 = icmp eq i32 %334, %330
  br i1 %.not422.6, label %335, label %.loopexit565

335:                                              ; preds = %333
  %336 = call i32 (ptr, i32, ...) @opus_decoder_ctl(ptr noundef %329, i32 noundef 4031, ptr noundef nonnull %4) #12
  %337 = load i32, ptr %4, align 4, !tbaa !5
  %.not423.6 = icmp eq i32 %337, %268
  br i1 %.not423.6, label %338, label %.loopexit566

338:                                              ; preds = %335
  %339 = load ptr, ptr %210, align 16, !tbaa !15
  %340 = call i32 @opus_decode(ptr noundef %339, ptr noundef nonnull %10, i32 noundef 3, ptr noundef nonnull %19, i32 noundef 5760, i32 noundef 0) #12
  %.not420.7 = icmp eq i32 %340, %257
  br i1 %.not420.7, label %341, label %.loopexit

341:                                              ; preds = %338
  %342 = call i32 (ptr, i32, ...) @opus_decoder_ctl(ptr noundef %339, i32 noundef 4039, ptr noundef nonnull %7) #12
  %.not421.7 = icmp eq i32 %342, 0
  br i1 %.not421.7, label %343, label %.loopexit564

343:                                              ; preds = %341
  %344 = load i32, ptr %7, align 4, !tbaa !5
  %.not422.7 = icmp eq i32 %344, %340
  br i1 %.not422.7, label %345, label %.loopexit565

345:                                              ; preds = %343
  %346 = call i32 (ptr, i32, ...) @opus_decoder_ctl(ptr noundef %339, i32 noundef 4031, ptr noundef nonnull %4) #12
  %347 = load i32, ptr %4, align 4, !tbaa !5
  %.not423.7 = icmp eq i32 %347, %268
  br i1 %.not423.7, label %348, label %.loopexit566

348:                                              ; preds = %345
  %349 = load ptr, ptr %212, align 8, !tbaa !15
  %350 = call i32 @opus_decode(ptr noundef %349, ptr noundef nonnull %10, i32 noundef 3, ptr noundef nonnull %19, i32 noundef 5760, i32 noundef 0) #12
  %.not420.8 = icmp eq i32 %350, %258
  br i1 %.not420.8, label %351, label %.loopexit

351:                                              ; preds = %348
  %352 = call i32 (ptr, i32, ...) @opus_decoder_ctl(ptr noundef %349, i32 noundef 4039, ptr noundef nonnull %7) #12
  %.not421.8 = icmp eq i32 %352, 0
  br i1 %.not421.8, label %353, label %.loopexit564

353:                                              ; preds = %351
  %354 = load i32, ptr %7, align 4, !tbaa !5
  %.not422.8 = icmp eq i32 %354, %350
  br i1 %.not422.8, label %355, label %.loopexit565

355:                                              ; preds = %353
  %356 = call i32 (ptr, i32, ...) @opus_decoder_ctl(ptr noundef %349, i32 noundef 4031, ptr noundef nonnull %4) #12
  %357 = load i32, ptr %4, align 4, !tbaa !5
  %.not423.8 = icmp eq i32 %357, %268
  br i1 %.not423.8, label %.loopexit567, label %.loopexit566

.loopexit567:                                     ; preds = %355
  %358 = add nuw nsw i32 %.0357490, 1
  %exitcond572.not = icmp eq i32 %358, 256
  br i1 %exitcond572.not, label %.preheader445, label %.preheader446, !llvm.loop !20

359:                                              ; preds = %419
  %indvars.iv.next575 = add nuw nsw i64 %indvars.iv574, 1
  %exitcond577.not = icmp eq i64 %indvars.iv.next575, 10
  br i1 %exitcond577.not, label %425, label %.preheader445, !llvm.loop !21

.preheader445:                                    ; preds = %.loopexit567, %359
  %indvars.iv574 = phi i64 [ %indvars.iv.next575, %359 ], [ 0, %.loopexit567 ]
  %360 = lshr i64 %indvars.iv574, 1
  %361 = and i64 %360, 2147483647
  %362 = getelementptr inbounds [5 x i32], ptr @test_decoder_code0.fsv, i64 0, i64 %361
  %363 = load i32, ptr %362, align 4, !tbaa !5
  %364 = sdiv i32 48000, %363
  %365 = getelementptr inbounds [10 x ptr], ptr %3, i64 0, i64 %indvars.iv574
  %366 = load ptr, ptr %365, align 8, !tbaa !15
  %367 = getelementptr inbounds [10 x i32], ptr %8, i64 0, i64 %indvars.iv574
  %368 = load i32, ptr %367, align 4, !tbaa !5
  %369 = call i32 @opus_decode(ptr noundef %366, ptr noundef null, i32 noundef 0, ptr noundef nonnull %19, i32 noundef %368, i32 noundef 0) #12
  %.not417 = icmp eq i32 %369, %368
  br i1 %.not417, label %403, label %402

370:                                              ; preds = %406
  %371 = call i32 @opus_decode(ptr noundef %366, ptr noundef null, i32 noundef 0, ptr noundef nonnull %19, i32 noundef %368, i32 noundef 0) #12
  %.not417.1 = icmp eq i32 %371, %368
  br i1 %.not417.1, label %372, label %402

372:                                              ; preds = %370
  %373 = call i32 (ptr, i32, ...) @opus_decoder_ctl(ptr noundef %366, i32 noundef 4039, ptr noundef nonnull %7) #12
  %.not418.1 = icmp eq i32 %373, 0
  br i1 %.not418.1, label %374, label %405

374:                                              ; preds = %372
  %375 = load i32, ptr %7, align 4, !tbaa !5
  %.not419.1 = icmp eq i32 %375, %368
  br i1 %.not419.1, label %376, label %408

376:                                              ; preds = %374
  %377 = call i32 @opus_decode(ptr noundef %366, ptr noundef null, i32 noundef 0, ptr noundef nonnull %19, i32 noundef %368, i32 noundef 0) #12
  %.not417.2 = icmp eq i32 %377, %368
  br i1 %.not417.2, label %378, label %402

378:                                              ; preds = %376
  %379 = call i32 (ptr, i32, ...) @opus_decoder_ctl(ptr noundef %366, i32 noundef 4039, ptr noundef nonnull %7) #12
  %.not418.2 = icmp eq i32 %379, 0
  br i1 %.not418.2, label %380, label %405

380:                                              ; preds = %378
  %381 = load i32, ptr %7, align 4, !tbaa !5
  %.not419.2 = icmp eq i32 %381, %368
  br i1 %.not419.2, label %382, label %408

382:                                              ; preds = %380
  %383 = call i32 @opus_decode(ptr noundef %366, ptr noundef null, i32 noundef 0, ptr noundef nonnull %19, i32 noundef %368, i32 noundef 0) #12
  %.not417.3 = icmp eq i32 %383, %368
  br i1 %.not417.3, label %384, label %402

384:                                              ; preds = %382
  %385 = call i32 (ptr, i32, ...) @opus_decoder_ctl(ptr noundef %366, i32 noundef 4039, ptr noundef nonnull %7) #12
  %.not418.3 = icmp eq i32 %385, 0
  br i1 %.not418.3, label %386, label %405

386:                                              ; preds = %384
  %387 = load i32, ptr %7, align 4, !tbaa !5
  %.not419.3 = icmp eq i32 %387, %368
  br i1 %.not419.3, label %388, label %408

388:                                              ; preds = %386
  %389 = call i32 @opus_decode(ptr noundef %366, ptr noundef null, i32 noundef 0, ptr noundef nonnull %19, i32 noundef %368, i32 noundef 0) #12
  %.not417.4 = icmp eq i32 %389, %368
  br i1 %.not417.4, label %390, label %402

390:                                              ; preds = %388
  %391 = call i32 (ptr, i32, ...) @opus_decoder_ctl(ptr noundef %366, i32 noundef 4039, ptr noundef nonnull %7) #12
  %.not418.4 = icmp eq i32 %391, 0
  br i1 %.not418.4, label %392, label %405

392:                                              ; preds = %390
  %393 = load i32, ptr %7, align 4, !tbaa !5
  %.not419.4 = icmp eq i32 %393, %368
  br i1 %.not419.4, label %394, label %408

394:                                              ; preds = %392
  %395 = call i32 @opus_decode(ptr noundef %366, ptr noundef null, i32 noundef 0, ptr noundef nonnull %19, i32 noundef %368, i32 noundef 0) #12
  %.not417.5 = icmp eq i32 %395, %368
  br i1 %.not417.5, label %396, label %402

396:                                              ; preds = %394
  %397 = call i32 (ptr, i32, ...) @opus_decoder_ctl(ptr noundef %366, i32 noundef 4039, ptr noundef nonnull %7) #12
  %.not418.5 = icmp eq i32 %397, 0
  br i1 %.not418.5, label %398, label %405

398:                                              ; preds = %396
  %399 = load i32, ptr %7, align 4, !tbaa !5
  %.not419.5 = icmp eq i32 %399, %368
  br i1 %.not419.5, label %400, label %408

400:                                              ; preds = %398
  %401 = sdiv i32 120, %364
  %.not413 = icmp eq i32 %368, %401
  br i1 %.not413, label %419, label %409

402:                                              ; preds = %394, %388, %382, %376, %370, %.preheader445
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 204) #14
  unreachable

403:                                              ; preds = %.preheader445
  %404 = call i32 (ptr, i32, ...) @opus_decoder_ctl(ptr noundef %366, i32 noundef 4039, ptr noundef nonnull %7) #12
  %.not418 = icmp eq i32 %404, 0
  br i1 %.not418, label %406, label %405

405:                                              ; preds = %396, %390, %384, %378, %372, %403
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 205) #14
  unreachable

406:                                              ; preds = %403
  %407 = load i32, ptr %7, align 4, !tbaa !5
  %.not419 = icmp eq i32 %407, %368
  br i1 %.not419, label %370, label %408

408:                                              ; preds = %398, %392, %386, %380, %374, %406
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 206) #14
  unreachable

409:                                              ; preds = %400
  %410 = load ptr, ptr %365, align 8, !tbaa !15
  %411 = call i32 @opus_decode(ptr noundef %410, ptr noundef null, i32 noundef 0, ptr noundef nonnull %19, i32 noundef %401, i32 noundef 0) #12
  %.not414 = icmp eq i32 %411, %401
  br i1 %.not414, label %413, label %412

412:                                              ; preds = %409
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 213) #14
  unreachable

413:                                              ; preds = %409
  %414 = call i32 (ptr, i32, ...) @opus_decoder_ctl(ptr noundef %410, i32 noundef 4039, ptr noundef nonnull %7) #12
  %.not415 = icmp eq i32 %414, 0
  br i1 %.not415, label %416, label %415

415:                                              ; preds = %413
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 214) #14
  unreachable

416:                                              ; preds = %413
  %417 = load i32, ptr %7, align 4, !tbaa !5
  %.not416 = icmp eq i32 %417, %401
  br i1 %.not416, label %419, label %418

418:                                              ; preds = %416
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 215) #14
  unreachable

419:                                              ; preds = %416, %400
  %420 = load ptr, ptr %365, align 8, !tbaa !15
  %421 = add nsw i32 %368, -1
  %422 = call i32 @opus_decode(ptr noundef %420, ptr noundef nonnull %10, i32 noundef 2, ptr noundef nonnull %19, i32 noundef %421, i32 noundef 0) #12
  %423 = icmp sgt i32 %422, 0
  br i1 %423, label %424, label %359

424:                                              ; preds = %419
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 218) #14
  unreachable

425:                                              ; preds = %359
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %8) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %7) #12
  %426 = add nuw nsw i32 %.1361494, 1
  %exitcond578.not = icmp eq i32 %426, 64
  br i1 %exitcond578.not, label %427, label %214, !llvm.loop !22

427:                                              ; preds = %425
  %428 = getelementptr inbounds i8, ptr %3, i64 8
  %429 = getelementptr inbounds i8, ptr %3, i64 16
  %430 = getelementptr inbounds i8, ptr %3, i64 24
  %431 = getelementptr inbounds i8, ptr %3, i64 32
  %432 = getelementptr inbounds i8, ptr %3, i64 40
  %433 = getelementptr inbounds i8, ptr %3, i64 48
  %434 = getelementptr inbounds i8, ptr %3, i64 56
  %435 = getelementptr inbounds i8, ptr %3, i64 64
  %436 = getelementptr inbounds i8, ptr %3, i64 72
  %437 = load ptr, ptr @stdout, align 8, !tbaa !15
  %438 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %437, ptr noundef nonnull @.str.5) #12
  %.not = icmp eq i32 %0, 0
  br i1 %.not, label %462, label %.preheader444

.preheader444:                                    ; preds = %427
  %439 = load ptr, ptr @stdout, align 8, !tbaa !15
  %440 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %439, ptr noundef nonnull @.str.6) #12
  call void @free(ptr noundef %52) #12
  %441 = load ptr, ptr %3, align 16, !tbaa !15
  call void @opus_decoder_destroy(ptr noundef %441) #12
  %442 = load ptr, ptr %428, align 8, !tbaa !15
  call void @opus_decoder_destroy(ptr noundef %442) #12
  %443 = load ptr, ptr %429, align 16, !tbaa !15
  call void @opus_decoder_destroy(ptr noundef %443) #12
  %444 = load ptr, ptr %430, align 8, !tbaa !15
  call void @opus_decoder_destroy(ptr noundef %444) #12
  %445 = load ptr, ptr %431, align 16, !tbaa !15
  call void @opus_decoder_destroy(ptr noundef %445) #12
  %446 = load ptr, ptr %432, align 8, !tbaa !15
  call void @opus_decoder_destroy(ptr noundef %446) #12
  %447 = load ptr, ptr %433, align 16, !tbaa !15
  call void @opus_decoder_destroy(ptr noundef %447) #12
  %448 = load ptr, ptr %434, align 8, !tbaa !15
  call void @opus_decoder_destroy(ptr noundef %448) #12
  %449 = load ptr, ptr %435, align 16, !tbaa !15
  call void @opus_decoder_destroy(ptr noundef %449) #12
  %450 = load ptr, ptr %436, align 8, !tbaa !15
  call void @opus_decoder_destroy(ptr noundef %450) #12
  %451 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.7)
  %452 = load <16 x i16>, ptr %13, align 2, !tbaa !9
  %453 = getelementptr inbounds i8, ptr %13, i64 23072
  %454 = load <16 x i16>, ptr %453, align 2, !tbaa !9
  %455 = shufflevector <16 x i16> %454, <16 x i16> %452, <32 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31>
  %456 = icmp ne <32 x i16> %455, <i16 32749, i16 32749, i16 32749, i16 32749, i16 32749, i16 32749, i16 32749, i16 32749, i16 32749, i16 32749, i16 32749, i16 32749, i16 32749, i16 32749, i16 32749, i16 32749, i16 32749, i16 32749, i16 32749, i16 32749, i16 32749, i16 32749, i16 32749, i16 32749, i16 32749, i16 32749, i16 32749, i16 32749, i16 32749, i16 32749, i16 32749, i16 32749>
  %457 = bitcast <32 x i1> %456 to i32
  %458 = icmp ne i32 %457, 0
  %459 = zext i1 %458 to i32
  store i32 %459, ptr %2, align 4, !tbaa !5
  br i1 %458, label %460, label %461

460:                                              ; preds = %.preheader444
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 233) #14
  unreachable

461:                                              ; preds = %.preheader444
  call void @free(ptr noundef nonnull %13) #12
  call void @free(ptr noundef %10) #12
  br label %902

462:                                              ; preds = %427
  %463 = call i32 @fast_rand()
  %464 = and i32 %463, 3
  %465 = zext nneg i32 %464 to i64
  %466 = getelementptr inbounds [4 x i32], ptr @test_decoder_code0.cmodes, i64 0, i64 %465
  %467 = load i32, ptr %466, align 4, !tbaa !5
  %.tr = trunc i32 %467 to i8
  %468 = shl i8 %.tr, 3
  store i8 %468, ptr %10, align 1, !tbaa !19
  %469 = call i32 @fast_rand()
  %470 = urem i32 %469, 10
  %471 = lshr i32 %470, 1
  %472 = zext nneg i32 %471 to i64
  %473 = getelementptr inbounds [5 x i32], ptr @test_decoder_code0.fsv, i64 0, i64 %472
  %474 = load i32, ptr %473, align 4, !tbaa !5
  %475 = sdiv i32 48000, %474
  %476 = getelementptr inbounds i8, ptr %10, i64 3
  %477 = zext nneg i32 %470 to i64
  %478 = getelementptr inbounds [10 x ptr], ptr %3, i64 0, i64 %477
  %479 = load ptr, ptr %478, align 8, !tbaa !15
  br label %480

480:                                              ; preds = %462, %487
  %.4364502 = phi i32 [ 0, %462 ], [ %491, %487 ]
  %.0382501 = phi i32 [ 0, %462 ], [ %490, %487 ]
  %481 = lshr i32 %.4364502, 8
  %482 = trunc nuw i32 %481 to i8
  store i8 %482, ptr %176, align 1, !tbaa !19
  %483 = trunc i32 %.4364502 to i8
  store i8 %483, ptr %177, align 1, !tbaa !19
  store i8 -1, ptr %476, align 1, !tbaa !19
  %484 = call i32 @opus_decode(ptr noundef %479, ptr noundef nonnull %10, i32 noundef 4, ptr noundef nonnull %19, i32 noundef 5760, i32 noundef 0) #12
  %485 = sdiv i32 120, %475
  %.not410 = icmp eq i32 %484, %485
  br i1 %.not410, label %487, label %486

486:                                              ; preds = %480
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 260) #14
  unreachable

487:                                              ; preds = %480
  %488 = call i32 (ptr, i32, ...) @opus_decoder_ctl(ptr noundef %479, i32 noundef 4031, ptr noundef nonnull %4) #12
  %489 = load i32, ptr %4, align 4, !tbaa !5
  %490 = add i32 %489, %.0382501
  %491 = add nuw nsw i32 %.4364502, 1
  %exitcond591.not = icmp eq i32 %491, 65536
  br i1 %exitcond591.not, label %492, label %480, !llvm.loop !23

492:                                              ; preds = %487
  %493 = getelementptr inbounds [4 x i32], ptr @test_decoder_code0.cres, i64 0, i64 %465
  %494 = load i32, ptr %493, align 4, !tbaa !5
  %.not396 = icmp eq i32 %490, %494
  br i1 %.not396, label %496, label %495

495:                                              ; preds = %492
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 264) #14
  unreachable

496:                                              ; preds = %492
  %497 = load ptr, ptr @stdout, align 8, !tbaa !15
  %498 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %497, ptr noundef nonnull @.str.8, i32 noundef %470, i32 noundef %467) #12
  %499 = call i32 @fast_rand()
  %500 = urem i32 %499, 3
  %501 = zext nneg i32 %500 to i64
  %502 = getelementptr inbounds [3 x i32], ptr @test_decoder_code0.lmodes, i64 0, i64 %501
  %503 = load i32, ptr %502, align 4, !tbaa !5
  %.tr397 = trunc i32 %503 to i8
  %504 = shl i8 %.tr397, 3
  store i8 %504, ptr %10, align 1, !tbaa !19
  %505 = call i32 @fast_rand()
  %506 = urem i32 %505, 10
  %507 = lshr i32 %506, 1
  %508 = zext nneg i32 %507 to i64
  %509 = getelementptr inbounds [5 x i32], ptr @test_decoder_code0.fsv, i64 0, i64 %508
  %510 = load i32, ptr %509, align 4, !tbaa !5
  %511 = sdiv i32 48000, %510
  %512 = zext nneg i32 %506 to i64
  %513 = getelementptr inbounds [10 x ptr], ptr %3, i64 0, i64 %512
  %514 = load ptr, ptr %513, align 8, !tbaa !15
  br label %515

515:                                              ; preds = %496, %522
  %.5365504 = phi i32 [ 0, %496 ], [ %526, %522 ]
  %.1383503 = phi i32 [ 0, %496 ], [ %525, %522 ]
  %516 = lshr i32 %.5365504, 8
  %517 = trunc nuw i32 %516 to i8
  store i8 %517, ptr %176, align 1, !tbaa !19
  %518 = trunc i32 %.5365504 to i8
  store i8 %518, ptr %177, align 1, !tbaa !19
  store i8 -1, ptr %476, align 1, !tbaa !19
  %519 = call i32 @opus_decode(ptr noundef %514, ptr noundef nonnull %10, i32 noundef 4, ptr noundef nonnull %19, i32 noundef 5760, i32 noundef 0) #12
  %520 = sdiv i32 480, %511
  %.not409 = icmp eq i32 %519, %520
  br i1 %.not409, label %522, label %521

521:                                              ; preds = %515
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 278) #14
  unreachable

522:                                              ; preds = %515
  %523 = call i32 (ptr, i32, ...) @opus_decoder_ctl(ptr noundef %514, i32 noundef 4031, ptr noundef nonnull %4) #12
  %524 = load i32, ptr %4, align 4, !tbaa !5
  %525 = add i32 %524, %.1383503
  %526 = add nuw nsw i32 %.5365504, 1
  %exitcond592.not = icmp eq i32 %526, 65536
  br i1 %exitcond592.not, label %527, label %515, !llvm.loop !24

527:                                              ; preds = %522
  %528 = getelementptr inbounds [3 x i32], ptr @test_decoder_code0.lres, i64 0, i64 %501
  %529 = load i32, ptr %528, align 4, !tbaa !5
  %.not398 = icmp eq i32 %525, %529
  br i1 %.not398, label %531, label %530

530:                                              ; preds = %527
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 282) #14
  unreachable

531:                                              ; preds = %527
  %532 = load ptr, ptr @stdout, align 8, !tbaa !15
  %533 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %532, ptr noundef nonnull @.str.8, i32 noundef %506, i32 noundef %503) #12
  %534 = call i32 @fast_rand()
  %.fr = freeze i32 %534
  %535 = urem i32 %.fr, 7
  %536 = add nuw nsw i32 %535, 2
  %537 = zext nneg i32 %536 to i64
  br label %.preheader443.preheader

.preheader443.preheader:                          ; preds = %._crit_edge, %531
  %.6366512 = phi i32 [ 0, %531 ], [ %627, %._crit_edge ]
  %.6366.tr = trunc nuw i32 %.6366512 to i8
  %538 = shl nuw i8 %.6366.tr, 2
  store i8 %538, ptr %10, align 1, !tbaa !19
  %539 = load ptr, ptr %3, align 16, !tbaa !15
  %540 = call i32 @opus_decoder_get_nb_samples(ptr noundef %539, ptr noundef nonnull %10, i32 noundef 1) #12
  %541 = load ptr, ptr %428, align 8, !tbaa !15
  %542 = call i32 @opus_decoder_get_nb_samples(ptr noundef %541, ptr noundef nonnull %10, i32 noundef 1) #12
  %543 = load ptr, ptr %429, align 16, !tbaa !15
  %544 = call i32 @opus_decoder_get_nb_samples(ptr noundef %543, ptr noundef nonnull %10, i32 noundef 1) #12
  %545 = load ptr, ptr %430, align 8, !tbaa !15
  %546 = call i32 @opus_decoder_get_nb_samples(ptr noundef %545, ptr noundef nonnull %10, i32 noundef 1) #12
  %547 = load ptr, ptr %431, align 16, !tbaa !15
  %548 = call i32 @opus_decoder_get_nb_samples(ptr noundef %547, ptr noundef nonnull %10, i32 noundef 1) #12
  %549 = load ptr, ptr %432, align 8, !tbaa !15
  %550 = call i32 @opus_decoder_get_nb_samples(ptr noundef %549, ptr noundef nonnull %10, i32 noundef 1) #12
  %551 = load ptr, ptr %433, align 16, !tbaa !15
  %552 = call i32 @opus_decoder_get_nb_samples(ptr noundef %551, ptr noundef nonnull %10, i32 noundef 1) #12
  %553 = load ptr, ptr %434, align 8, !tbaa !15
  %554 = call i32 @opus_decoder_get_nb_samples(ptr noundef %553, ptr noundef nonnull %10, i32 noundef 1) #12
  %555 = load ptr, ptr %435, align 16, !tbaa !15
  %556 = call i32 @opus_decoder_get_nb_samples(ptr noundef %555, ptr noundef nonnull %10, i32 noundef 1) #12
  %557 = load ptr, ptr %436, align 8, !tbaa !15
  %558 = call i32 @opus_decoder_get_nb_samples(ptr noundef %557, ptr noundef nonnull %10, i32 noundef 1) #12
  br label %.preheader443

.preheader443:                                    ; preds = %.preheader443.preheader, %625
  %indvars.iv604 = phi i64 [ %537, %.preheader443.preheader ], [ %indvars.iv.next605, %625 ]
  br label %563

.preheader442:                                    ; preds = %563
  %559 = load ptr, ptr %3, align 16, !tbaa !15
  %560 = trunc i64 %indvars.iv604 to i32
  %561 = add i32 %560, 1
  %562 = call i32 @opus_decode(ptr noundef %559, ptr noundef nonnull %10, i32 noundef %561, ptr noundef nonnull %19, i32 noundef 5760, i32 noundef 0) #12
  %.not407 = icmp eq i32 %562, %540
  br i1 %.not407, label %569, label %568

563:                                              ; preds = %.preheader443, %563
  %indvars.iv597 = phi i64 [ 0, %.preheader443 ], [ %indvars.iv.next598, %563 ]
  %564 = call i32 @fast_rand()
  %565 = trunc i32 %564 to i8
  %indvars.iv.next598 = add nuw nsw i64 %indvars.iv597, 1
  %566 = getelementptr inbounds i8, ptr %10, i64 %indvars.iv.next598
  store i8 %565, ptr %566, align 1, !tbaa !19
  %567 = icmp ult i64 %indvars.iv.next598, %indvars.iv604
  br i1 %567, label %563, label %.preheader442, !llvm.loop !25

568:                                              ; preds = %619, %613, %607, %601, %595, %589, %583, %577, %569, %.preheader442
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 299) #14
  unreachable

split:                                            ; preds = %622, %616, %610, %604, %598, %592, %586, %580, %574
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 302) #14
  unreachable

569:                                              ; preds = %.preheader442
  %570 = call i32 (ptr, i32, ...) @opus_decoder_ctl(ptr noundef %559, i32 noundef 4031, ptr noundef nonnull %4) #12
  %571 = load i32, ptr %4, align 4, !tbaa !5
  %572 = load ptr, ptr %428, align 8, !tbaa !15
  %573 = call i32 @opus_decode(ptr noundef %572, ptr noundef nonnull %10, i32 noundef %561, ptr noundef nonnull %19, i32 noundef 5760, i32 noundef 0) #12
  %.not407.1 = icmp eq i32 %573, %542
  br i1 %.not407.1, label %574, label %568

574:                                              ; preds = %569
  %575 = call i32 (ptr, i32, ...) @opus_decoder_ctl(ptr noundef %572, i32 noundef 4031, ptr noundef nonnull %4) #12
  %576 = load i32, ptr %4, align 4, !tbaa !5
  %.not408.1 = icmp eq i32 %576, %571
  br i1 %.not408.1, label %577, label %split

577:                                              ; preds = %574
  %578 = load ptr, ptr %429, align 16, !tbaa !15
  %579 = call i32 @opus_decode(ptr noundef %578, ptr noundef nonnull %10, i32 noundef %561, ptr noundef nonnull %19, i32 noundef 5760, i32 noundef 0) #12
  %.not407.2 = icmp eq i32 %579, %544
  br i1 %.not407.2, label %580, label %568

580:                                              ; preds = %577
  %581 = call i32 (ptr, i32, ...) @opus_decoder_ctl(ptr noundef %578, i32 noundef 4031, ptr noundef nonnull %4) #12
  %582 = load i32, ptr %4, align 4, !tbaa !5
  %.not408.2 = icmp eq i32 %582, %571
  br i1 %.not408.2, label %583, label %split

583:                                              ; preds = %580
  %584 = load ptr, ptr %430, align 8, !tbaa !15
  %585 = call i32 @opus_decode(ptr noundef %584, ptr noundef nonnull %10, i32 noundef %561, ptr noundef nonnull %19, i32 noundef 5760, i32 noundef 0) #12
  %.not407.3 = icmp eq i32 %585, %546
  br i1 %.not407.3, label %586, label %568

586:                                              ; preds = %583
  %587 = call i32 (ptr, i32, ...) @opus_decoder_ctl(ptr noundef %584, i32 noundef 4031, ptr noundef nonnull %4) #12
  %588 = load i32, ptr %4, align 4, !tbaa !5
  %.not408.3 = icmp eq i32 %588, %571
  br i1 %.not408.3, label %589, label %split

589:                                              ; preds = %586
  %590 = load ptr, ptr %431, align 16, !tbaa !15
  %591 = call i32 @opus_decode(ptr noundef %590, ptr noundef nonnull %10, i32 noundef %561, ptr noundef nonnull %19, i32 noundef 5760, i32 noundef 0) #12
  %.not407.4 = icmp eq i32 %591, %548
  br i1 %.not407.4, label %592, label %568

592:                                              ; preds = %589
  %593 = call i32 (ptr, i32, ...) @opus_decoder_ctl(ptr noundef %590, i32 noundef 4031, ptr noundef nonnull %4) #12
  %594 = load i32, ptr %4, align 4, !tbaa !5
  %.not408.4 = icmp eq i32 %594, %571
  br i1 %.not408.4, label %595, label %split

595:                                              ; preds = %592
  %596 = load ptr, ptr %432, align 8, !tbaa !15
  %597 = call i32 @opus_decode(ptr noundef %596, ptr noundef nonnull %10, i32 noundef %561, ptr noundef nonnull %19, i32 noundef 5760, i32 noundef 0) #12
  %.not407.5 = icmp eq i32 %597, %550
  br i1 %.not407.5, label %598, label %568

598:                                              ; preds = %595
  %599 = call i32 (ptr, i32, ...) @opus_decoder_ctl(ptr noundef %596, i32 noundef 4031, ptr noundef nonnull %4) #12
  %600 = load i32, ptr %4, align 4, !tbaa !5
  %.not408.5 = icmp eq i32 %600, %571
  br i1 %.not408.5, label %601, label %split

601:                                              ; preds = %598
  %602 = load ptr, ptr %433, align 16, !tbaa !15
  %603 = call i32 @opus_decode(ptr noundef %602, ptr noundef nonnull %10, i32 noundef %561, ptr noundef nonnull %19, i32 noundef 5760, i32 noundef 0) #12
  %.not407.6 = icmp eq i32 %603, %552
  br i1 %.not407.6, label %604, label %568

604:                                              ; preds = %601
  %605 = call i32 (ptr, i32, ...) @opus_decoder_ctl(ptr noundef %602, i32 noundef 4031, ptr noundef nonnull %4) #12
  %606 = load i32, ptr %4, align 4, !tbaa !5
  %.not408.6 = icmp eq i32 %606, %571
  br i1 %.not408.6, label %607, label %split

607:                                              ; preds = %604
  %608 = load ptr, ptr %434, align 8, !tbaa !15
  %609 = call i32 @opus_decode(ptr noundef %608, ptr noundef nonnull %10, i32 noundef %561, ptr noundef nonnull %19, i32 noundef 5760, i32 noundef 0) #12
  %.not407.7 = icmp eq i32 %609, %554
  br i1 %.not407.7, label %610, label %568

610:                                              ; preds = %607
  %611 = call i32 (ptr, i32, ...) @opus_decoder_ctl(ptr noundef %608, i32 noundef 4031, ptr noundef nonnull %4) #12
  %612 = load i32, ptr %4, align 4, !tbaa !5
  %.not408.7 = icmp eq i32 %612, %571
  br i1 %.not408.7, label %613, label %split

613:                                              ; preds = %610
  %614 = load ptr, ptr %435, align 16, !tbaa !15
  %615 = call i32 @opus_decode(ptr noundef %614, ptr noundef nonnull %10, i32 noundef %561, ptr noundef nonnull %19, i32 noundef 5760, i32 noundef 0) #12
  %.not407.8 = icmp eq i32 %615, %556
  br i1 %.not407.8, label %616, label %568

616:                                              ; preds = %613
  %617 = call i32 (ptr, i32, ...) @opus_decoder_ctl(ptr noundef %614, i32 noundef 4031, ptr noundef nonnull %4) #12
  %618 = load i32, ptr %4, align 4, !tbaa !5
  %.not408.8 = icmp eq i32 %618, %571
  br i1 %.not408.8, label %619, label %split

619:                                              ; preds = %616
  %620 = load ptr, ptr %436, align 8, !tbaa !15
  %621 = call i32 @opus_decode(ptr noundef %620, ptr noundef nonnull %10, i32 noundef %561, ptr noundef nonnull %19, i32 noundef 5760, i32 noundef 0) #12
  %.not407.9 = icmp eq i32 %621, %558
  br i1 %.not407.9, label %622, label %568

622:                                              ; preds = %619
  %623 = call i32 (ptr, i32, ...) @opus_decoder_ctl(ptr noundef %620, i32 noundef 4031, ptr noundef nonnull %4) #12
  %624 = load i32, ptr %4, align 4, !tbaa !5
  %.not408.9 = icmp eq i32 %624, %571
  br i1 %.not408.9, label %625, label %split

625:                                              ; preds = %622
  %indvars.iv.next605 = add nuw nsw i64 %indvars.iv604, 4
  %626 = icmp ult i64 %indvars.iv604, 1271
  br i1 %626, label %.preheader443, label %._crit_edge, !llvm.loop !26

._crit_edge:                                      ; preds = %625
  %627 = add nuw nsw i32 %.6366512, 1
  %exitcond607.not = icmp eq i32 %627, 64
  br i1 %exitcond607.not, label %628, label %.preheader443.preheader, !llvm.loop !27

628:                                              ; preds = %._crit_edge
  %629 = load ptr, ptr @stdout, align 8, !tbaa !15
  %630 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %629, ptr noundef nonnull @.str.9, i32 noundef %536) #12
  call void @debruijn2(i32 noundef 64, ptr noundef nonnull %5)
  %631 = call i32 @fast_rand()
  %632 = urem i32 %631, 18
  %633 = shl nuw nsw i32 %632, 3
  %634 = add nuw nsw i32 %633, 24
  %635 = or disjoint i32 %634, %535
  %636 = add nuw nsw i32 %635, 3
  %637 = load ptr, ptr %3, align 16
  %638 = add nuw nsw i32 %635, 4
  %wide.trip.count = zext nneg i32 %636 to i64
  br label %.preheader441.preheader

.preheader441.preheader:                          ; preds = %628, %760
  %indvars.iv620 = phi i64 [ 0, %628 ], [ %indvars.iv.next621, %760 ]
  %639 = getelementptr inbounds [4096 x i8], ptr %5, i64 0, i64 %indvars.iv620
  %640 = load i8, ptr %639, align 1, !tbaa !19
  %641 = shl i8 %640, 2
  store i8 %641, ptr %10, align 1, !tbaa !19
  %642 = load ptr, ptr %3, align 16, !tbaa !15
  %643 = call i32 @opus_decoder_get_nb_samples(ptr noundef %642, ptr noundef nonnull %10, i32 noundef %636) #12
  %644 = load ptr, ptr %428, align 8, !tbaa !15
  %645 = call i32 @opus_decoder_get_nb_samples(ptr noundef %644, ptr noundef nonnull %10, i32 noundef %636) #12
  %646 = load ptr, ptr %429, align 16, !tbaa !15
  %647 = call i32 @opus_decoder_get_nb_samples(ptr noundef %646, ptr noundef nonnull %10, i32 noundef %636) #12
  %648 = load ptr, ptr %430, align 8, !tbaa !15
  %649 = call i32 @opus_decoder_get_nb_samples(ptr noundef %648, ptr noundef nonnull %10, i32 noundef %636) #12
  %650 = load ptr, ptr %431, align 16, !tbaa !15
  %651 = call i32 @opus_decoder_get_nb_samples(ptr noundef %650, ptr noundef nonnull %10, i32 noundef %636) #12
  %652 = load ptr, ptr %432, align 8, !tbaa !15
  %653 = call i32 @opus_decoder_get_nb_samples(ptr noundef %652, ptr noundef nonnull %10, i32 noundef %636) #12
  %654 = load ptr, ptr %433, align 16, !tbaa !15
  %655 = call i32 @opus_decoder_get_nb_samples(ptr noundef %654, ptr noundef nonnull %10, i32 noundef %636) #12
  %656 = load ptr, ptr %434, align 8, !tbaa !15
  %657 = call i32 @opus_decoder_get_nb_samples(ptr noundef %656, ptr noundef nonnull %10, i32 noundef %636) #12
  %658 = load ptr, ptr %435, align 16, !tbaa !15
  %659 = call i32 @opus_decoder_get_nb_samples(ptr noundef %658, ptr noundef nonnull %10, i32 noundef %636) #12
  %660 = load ptr, ptr %436, align 8, !tbaa !15
  %661 = call i32 @opus_decoder_get_nb_samples(ptr noundef %660, ptr noundef nonnull %10, i32 noundef %636) #12
  br label %.preheader441

.preheader441:                                    ; preds = %.preheader441.preheader, %.preheader441
  %indvars.iv612 = phi i64 [ 0, %.preheader441.preheader ], [ %indvars.iv.next613, %.preheader441 ]
  %662 = call i32 @fast_rand()
  %663 = call i32 @fast_rand()
  %664 = or i32 %663, %662
  %665 = trunc i32 %664 to i8
  %indvars.iv.next613 = add nuw nsw i64 %indvars.iv612, 1
  %666 = getelementptr inbounds i8, ptr %10, i64 %indvars.iv.next613
  store i8 %665, ptr %666, align 1, !tbaa !19
  %exitcond615.not = icmp eq i64 %indvars.iv.next613, %wide.trip.count
  br i1 %exitcond615.not, label %667, label %.preheader441, !llvm.loop !28

667:                                              ; preds = %.preheader441
  call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %52, ptr align 1 %637, i64 %51, i1 false)
  %668 = call i32 @opus_decode(ptr noundef nonnull %52, ptr noundef nonnull %10, i32 noundef %638, ptr noundef nonnull %19, i32 noundef %643, i32 noundef 1) #12
  %.not402 = icmp eq i32 %668, %643
  br i1 %.not402, label %670, label %669

669:                                              ; preds = %667
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 317) #14
  unreachable

670:                                              ; preds = %667
  call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %52, ptr align 1 %637, i64 %51, i1 false)
  %671 = call i32 @opus_decode(ptr noundef nonnull %52, ptr noundef null, i32 noundef 0, ptr noundef nonnull %19, i32 noundef 5760, i32 noundef 1) #12
  %672 = icmp slt i32 %671, 20
  br i1 %672, label %673, label %674

673:                                              ; preds = %670
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 319) #14
  unreachable

674:                                              ; preds = %670
  call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %52, ptr align 1 %637, i64 %51, i1 false)
  %675 = call i32 @opus_decode(ptr noundef nonnull %52, ptr noundef null, i32 noundef 0, ptr noundef nonnull %19, i32 noundef 5760, i32 noundef 0) #12
  %676 = icmp slt i32 %675, 20
  br i1 %676, label %679, label %.preheader440.preheader

.preheader440.preheader:                          ; preds = %674
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %9) #12
  %677 = load ptr, ptr %3, align 16, !tbaa !15
  %678 = call i32 @opus_decode(ptr noundef %677, ptr noundef nonnull %10, i32 noundef %638, ptr noundef nonnull %19, i32 noundef 5760, i32 noundef 0) #12
  %.not403 = icmp eq i32 %678, %643
  br i1 %.not403, label %681, label %680

679:                                              ; preds = %674
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 321) #14
  unreachable

680:                                              ; preds = %.preheader440.9, %.preheader440.8, %.preheader440.7, %.preheader440.6, %.preheader440.5, %.preheader440.4, %.preheader440.3, %.preheader440.2, %.preheader440.1, %.preheader440.preheader
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 326) #14
  unreachable

split677:                                         ; preds = %754, %746, %738, %730, %722, %714, %706, %698, %690
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 328) #14
  unreachable

681:                                              ; preds = %.preheader440.preheader
  %682 = load i32, ptr %4, align 4, !tbaa !5
  %683 = call i32 (ptr, i32, ...) @opus_decoder_ctl(ptr noundef %677, i32 noundef 4039, ptr noundef nonnull %9) #12
  %.not405 = icmp eq i32 %683, 0
  br i1 %.not405, label %685, label %684

684:                                              ; preds = %756, %748, %740, %732, %724, %716, %708, %700, %692, %681
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 329) #14
  unreachable

685:                                              ; preds = %681
  %686 = load i32, ptr %9, align 4, !tbaa !5
  %.not406 = icmp eq i32 %686, %643
  br i1 %.not406, label %.preheader440.1, label %687

687:                                              ; preds = %758, %750, %742, %734, %726, %718, %710, %702, %694, %685
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 330) #14
  unreachable

.preheader440.1:                                  ; preds = %685
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %9) #12
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %9) #12
  %688 = load ptr, ptr %428, align 8, !tbaa !15
  %689 = call i32 @opus_decode(ptr noundef %688, ptr noundef nonnull %10, i32 noundef %638, ptr noundef nonnull %19, i32 noundef 5760, i32 noundef 0) #12
  %.not403.1 = icmp eq i32 %689, %645
  br i1 %.not403.1, label %690, label %680

690:                                              ; preds = %.preheader440.1
  %691 = load i32, ptr %4, align 4, !tbaa !5
  %.not404.1 = icmp eq i32 %691, %682
  br i1 %.not404.1, label %692, label %split677

692:                                              ; preds = %690
  %693 = call i32 (ptr, i32, ...) @opus_decoder_ctl(ptr noundef %688, i32 noundef 4039, ptr noundef nonnull %9) #12
  %.not405.1 = icmp eq i32 %693, 0
  br i1 %.not405.1, label %694, label %684

694:                                              ; preds = %692
  %695 = load i32, ptr %9, align 4, !tbaa !5
  %.not406.1 = icmp eq i32 %695, %645
  br i1 %.not406.1, label %.preheader440.2, label %687

.preheader440.2:                                  ; preds = %694
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %9) #12
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %9) #12
  %696 = load ptr, ptr %429, align 16, !tbaa !15
  %697 = call i32 @opus_decode(ptr noundef %696, ptr noundef nonnull %10, i32 noundef %638, ptr noundef nonnull %19, i32 noundef 5760, i32 noundef 0) #12
  %.not403.2 = icmp eq i32 %697, %647
  br i1 %.not403.2, label %698, label %680

698:                                              ; preds = %.preheader440.2
  %699 = load i32, ptr %4, align 4, !tbaa !5
  %.not404.2 = icmp eq i32 %699, %682
  br i1 %.not404.2, label %700, label %split677

700:                                              ; preds = %698
  %701 = call i32 (ptr, i32, ...) @opus_decoder_ctl(ptr noundef %696, i32 noundef 4039, ptr noundef nonnull %9) #12
  %.not405.2 = icmp eq i32 %701, 0
  br i1 %.not405.2, label %702, label %684

702:                                              ; preds = %700
  %703 = load i32, ptr %9, align 4, !tbaa !5
  %.not406.2 = icmp eq i32 %703, %647
  br i1 %.not406.2, label %.preheader440.3, label %687

.preheader440.3:                                  ; preds = %702
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %9) #12
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %9) #12
  %704 = load ptr, ptr %430, align 8, !tbaa !15
  %705 = call i32 @opus_decode(ptr noundef %704, ptr noundef nonnull %10, i32 noundef %638, ptr noundef nonnull %19, i32 noundef 5760, i32 noundef 0) #12
  %.not403.3 = icmp eq i32 %705, %649
  br i1 %.not403.3, label %706, label %680

706:                                              ; preds = %.preheader440.3
  %707 = load i32, ptr %4, align 4, !tbaa !5
  %.not404.3 = icmp eq i32 %707, %682
  br i1 %.not404.3, label %708, label %split677

708:                                              ; preds = %706
  %709 = call i32 (ptr, i32, ...) @opus_decoder_ctl(ptr noundef %704, i32 noundef 4039, ptr noundef nonnull %9) #12
  %.not405.3 = icmp eq i32 %709, 0
  br i1 %.not405.3, label %710, label %684

710:                                              ; preds = %708
  %711 = load i32, ptr %9, align 4, !tbaa !5
  %.not406.3 = icmp eq i32 %711, %649
  br i1 %.not406.3, label %.preheader440.4, label %687

.preheader440.4:                                  ; preds = %710
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %9) #12
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %9) #12
  %712 = load ptr, ptr %431, align 16, !tbaa !15
  %713 = call i32 @opus_decode(ptr noundef %712, ptr noundef nonnull %10, i32 noundef %638, ptr noundef nonnull %19, i32 noundef 5760, i32 noundef 0) #12
  %.not403.4 = icmp eq i32 %713, %651
  br i1 %.not403.4, label %714, label %680

714:                                              ; preds = %.preheader440.4
  %715 = load i32, ptr %4, align 4, !tbaa !5
  %.not404.4 = icmp eq i32 %715, %682
  br i1 %.not404.4, label %716, label %split677

716:                                              ; preds = %714
  %717 = call i32 (ptr, i32, ...) @opus_decoder_ctl(ptr noundef %712, i32 noundef 4039, ptr noundef nonnull %9) #12
  %.not405.4 = icmp eq i32 %717, 0
  br i1 %.not405.4, label %718, label %684

718:                                              ; preds = %716
  %719 = load i32, ptr %9, align 4, !tbaa !5
  %.not406.4 = icmp eq i32 %719, %651
  br i1 %.not406.4, label %.preheader440.5, label %687

.preheader440.5:                                  ; preds = %718
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %9) #12
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %9) #12
  %720 = load ptr, ptr %432, align 8, !tbaa !15
  %721 = call i32 @opus_decode(ptr noundef %720, ptr noundef nonnull %10, i32 noundef %638, ptr noundef nonnull %19, i32 noundef 5760, i32 noundef 0) #12
  %.not403.5 = icmp eq i32 %721, %653
  br i1 %.not403.5, label %722, label %680

722:                                              ; preds = %.preheader440.5
  %723 = load i32, ptr %4, align 4, !tbaa !5
  %.not404.5 = icmp eq i32 %723, %682
  br i1 %.not404.5, label %724, label %split677

724:                                              ; preds = %722
  %725 = call i32 (ptr, i32, ...) @opus_decoder_ctl(ptr noundef %720, i32 noundef 4039, ptr noundef nonnull %9) #12
  %.not405.5 = icmp eq i32 %725, 0
  br i1 %.not405.5, label %726, label %684

726:                                              ; preds = %724
  %727 = load i32, ptr %9, align 4, !tbaa !5
  %.not406.5 = icmp eq i32 %727, %653
  br i1 %.not406.5, label %.preheader440.6, label %687

.preheader440.6:                                  ; preds = %726
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %9) #12
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %9) #12
  %728 = load ptr, ptr %433, align 16, !tbaa !15
  %729 = call i32 @opus_decode(ptr noundef %728, ptr noundef nonnull %10, i32 noundef %638, ptr noundef nonnull %19, i32 noundef 5760, i32 noundef 0) #12
  %.not403.6 = icmp eq i32 %729, %655
  br i1 %.not403.6, label %730, label %680

730:                                              ; preds = %.preheader440.6
  %731 = load i32, ptr %4, align 4, !tbaa !5
  %.not404.6 = icmp eq i32 %731, %682
  br i1 %.not404.6, label %732, label %split677

732:                                              ; preds = %730
  %733 = call i32 (ptr, i32, ...) @opus_decoder_ctl(ptr noundef %728, i32 noundef 4039, ptr noundef nonnull %9) #12
  %.not405.6 = icmp eq i32 %733, 0
  br i1 %.not405.6, label %734, label %684

734:                                              ; preds = %732
  %735 = load i32, ptr %9, align 4, !tbaa !5
  %.not406.6 = icmp eq i32 %735, %655
  br i1 %.not406.6, label %.preheader440.7, label %687

.preheader440.7:                                  ; preds = %734
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %9) #12
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %9) #12
  %736 = load ptr, ptr %434, align 8, !tbaa !15
  %737 = call i32 @opus_decode(ptr noundef %736, ptr noundef nonnull %10, i32 noundef %638, ptr noundef nonnull %19, i32 noundef 5760, i32 noundef 0) #12
  %.not403.7 = icmp eq i32 %737, %657
  br i1 %.not403.7, label %738, label %680

738:                                              ; preds = %.preheader440.7
  %739 = load i32, ptr %4, align 4, !tbaa !5
  %.not404.7 = icmp eq i32 %739, %682
  br i1 %.not404.7, label %740, label %split677

740:                                              ; preds = %738
  %741 = call i32 (ptr, i32, ...) @opus_decoder_ctl(ptr noundef %736, i32 noundef 4039, ptr noundef nonnull %9) #12
  %.not405.7 = icmp eq i32 %741, 0
  br i1 %.not405.7, label %742, label %684

742:                                              ; preds = %740
  %743 = load i32, ptr %9, align 4, !tbaa !5
  %.not406.7 = icmp eq i32 %743, %657
  br i1 %.not406.7, label %.preheader440.8, label %687

.preheader440.8:                                  ; preds = %742
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %9) #12
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %9) #12
  %744 = load ptr, ptr %435, align 16, !tbaa !15
  %745 = call i32 @opus_decode(ptr noundef %744, ptr noundef nonnull %10, i32 noundef %638, ptr noundef nonnull %19, i32 noundef 5760, i32 noundef 0) #12
  %.not403.8 = icmp eq i32 %745, %659
  br i1 %.not403.8, label %746, label %680

746:                                              ; preds = %.preheader440.8
  %747 = load i32, ptr %4, align 4, !tbaa !5
  %.not404.8 = icmp eq i32 %747, %682
  br i1 %.not404.8, label %748, label %split677

748:                                              ; preds = %746
  %749 = call i32 (ptr, i32, ...) @opus_decoder_ctl(ptr noundef %744, i32 noundef 4039, ptr noundef nonnull %9) #12
  %.not405.8 = icmp eq i32 %749, 0
  br i1 %.not405.8, label %750, label %684

750:                                              ; preds = %748
  %751 = load i32, ptr %9, align 4, !tbaa !5
  %.not406.8 = icmp eq i32 %751, %659
  br i1 %.not406.8, label %.preheader440.9, label %687

.preheader440.9:                                  ; preds = %750
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %9) #12
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %9) #12
  %752 = load ptr, ptr %436, align 8, !tbaa !15
  %753 = call i32 @opus_decode(ptr noundef %752, ptr noundef nonnull %10, i32 noundef %638, ptr noundef nonnull %19, i32 noundef 5760, i32 noundef 0) #12
  %.not403.9 = icmp eq i32 %753, %661
  br i1 %.not403.9, label %754, label %680

754:                                              ; preds = %.preheader440.9
  %755 = load i32, ptr %4, align 4, !tbaa !5
  %.not404.9 = icmp eq i32 %755, %682
  br i1 %.not404.9, label %756, label %split677

756:                                              ; preds = %754
  %757 = call i32 (ptr, i32, ...) @opus_decoder_ctl(ptr noundef %752, i32 noundef 4039, ptr noundef nonnull %9) #12
  %.not405.9 = icmp eq i32 %757, 0
  br i1 %.not405.9, label %758, label %684

758:                                              ; preds = %756
  %759 = load i32, ptr %9, align 4, !tbaa !5
  %.not406.9 = icmp eq i32 %759, %661
  br i1 %.not406.9, label %760, label %687

760:                                              ; preds = %758
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %9) #12
  %indvars.iv.next621 = add nuw nsw i64 %indvars.iv620, 1
  %exitcond623.not = icmp eq i64 %indvars.iv.next621, 4096
  br i1 %exitcond623.not, label %761, label %.preheader441.preheader, !llvm.loop !29

761:                                              ; preds = %760
  %762 = load ptr, ptr @stdout, align 8, !tbaa !15
  %763 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %762, ptr noundef nonnull @.str.10, i32 noundef %638) #12
  %764 = call i32 @fast_rand()
  %765 = urem i32 %764, 18
  %766 = shl nuw nsw i32 %765, 3
  %767 = add nuw nsw i32 %766, 24
  %768 = or disjoint i32 %767, %535
  %769 = add nuw nsw i32 %768, 3
  %770 = call i32 @rand() #12
  %771 = and i32 %770, 3
  %772 = zext nneg i32 %771 to i64
  %773 = getelementptr inbounds [10 x ptr], ptr %3, i64 0, i64 %772
  %774 = load ptr, ptr %773, align 8, !tbaa !15
  %775 = add nuw nsw i32 %768, 4
  %776 = shl i32 %764, 3
  %777 = add i32 %.fr, %776
  %778 = add i32 %777, 27
  %779 = urem i32 %.fr, 7
  %.neg = sub i32 %779, %.fr
  %780 = add i32 %.neg, %778
  %781 = udiv i32 %764, 18
  %.neg678 = mul i32 %781, -144
  %782 = add i32 %.neg678, %780
  %783 = call i32 @llvm.umax.i32(i32 %782, i32 1)
  %umax628 = zext i32 %783 to i64
  br label %.preheader439

.preheader439:                                    ; preds = %761, %851
  %indvars.iv648 = phi i64 [ 0, %761 ], [ %indvars.iv.next649, %851 ]
  %784 = getelementptr inbounds [4096 x i8], ptr %5, i64 0, i64 %indvars.iv648
  %785 = load i8, ptr %784, align 1, !tbaa !19
  %786 = shl i8 %785, 2
  store i8 %786, ptr %10, align 1, !tbaa !19
  %787 = call i32 @opus_decoder_get_nb_samples(ptr noundef %774, ptr noundef nonnull %10, i32 noundef %769) #12
  br label %852

.preheader439.1:                                  ; preds = %858, %.preheader439.1
  %indvars.iv624.1 = phi i64 [ %indvars.iv.next625.1, %.preheader439.1 ], [ 0, %858 ]
  %788 = call i32 @fast_rand()
  %789 = call i32 @fast_rand()
  %790 = or i32 %789, %788
  %791 = trunc i32 %790 to i8
  %indvars.iv.next625.1 = add nuw nsw i64 %indvars.iv624.1, 1
  %792 = getelementptr inbounds i8, ptr %10, i64 %indvars.iv.next625.1
  store i8 %791, ptr %792, align 1, !tbaa !19
  %exitcond645.not = icmp eq i64 %indvars.iv.next625.1, %umax628
  br i1 %exitcond645.not, label %793, label %.preheader439.1, !llvm.loop !30

793:                                              ; preds = %.preheader439.1
  %794 = call i32 @opus_decode(ptr noundef %774, ptr noundef nonnull %10, i32 noundef %775, ptr noundef nonnull %19, i32 noundef 5760, i32 noundef 0) #12
  %.not401.1 = icmp eq i32 %794, %787
  br i1 %.not401.1, label %.preheader439.2, label %860

.preheader439.2:                                  ; preds = %793, %.preheader439.2
  %indvars.iv624.2 = phi i64 [ %indvars.iv.next625.2, %.preheader439.2 ], [ 0, %793 ]
  %795 = call i32 @fast_rand()
  %796 = call i32 @fast_rand()
  %797 = or i32 %796, %795
  %798 = trunc i32 %797 to i8
  %indvars.iv.next625.2 = add nuw nsw i64 %indvars.iv624.2, 1
  %799 = getelementptr inbounds i8, ptr %10, i64 %indvars.iv.next625.2
  store i8 %798, ptr %799, align 1, !tbaa !19
  %exitcond643.not = icmp eq i64 %indvars.iv.next625.2, %umax628
  br i1 %exitcond643.not, label %800, label %.preheader439.2, !llvm.loop !30

800:                                              ; preds = %.preheader439.2
  %801 = call i32 @opus_decode(ptr noundef %774, ptr noundef nonnull %10, i32 noundef %775, ptr noundef nonnull %19, i32 noundef 5760, i32 noundef 0) #12
  %.not401.2 = icmp eq i32 %801, %787
  br i1 %.not401.2, label %.preheader439.3, label %860

.preheader439.3:                                  ; preds = %800, %.preheader439.3
  %indvars.iv624.3 = phi i64 [ %indvars.iv.next625.3, %.preheader439.3 ], [ 0, %800 ]
  %802 = call i32 @fast_rand()
  %803 = call i32 @fast_rand()
  %804 = or i32 %803, %802
  %805 = trunc i32 %804 to i8
  %indvars.iv.next625.3 = add nuw nsw i64 %indvars.iv624.3, 1
  %806 = getelementptr inbounds i8, ptr %10, i64 %indvars.iv.next625.3
  store i8 %805, ptr %806, align 1, !tbaa !19
  %exitcond641.not = icmp eq i64 %indvars.iv.next625.3, %umax628
  br i1 %exitcond641.not, label %807, label %.preheader439.3, !llvm.loop !30

807:                                              ; preds = %.preheader439.3
  %808 = call i32 @opus_decode(ptr noundef %774, ptr noundef nonnull %10, i32 noundef %775, ptr noundef nonnull %19, i32 noundef 5760, i32 noundef 0) #12
  %.not401.3 = icmp eq i32 %808, %787
  br i1 %.not401.3, label %.preheader439.4, label %860

.preheader439.4:                                  ; preds = %807, %.preheader439.4
  %indvars.iv624.4 = phi i64 [ %indvars.iv.next625.4, %.preheader439.4 ], [ 0, %807 ]
  %809 = call i32 @fast_rand()
  %810 = call i32 @fast_rand()
  %811 = or i32 %810, %809
  %812 = trunc i32 %811 to i8
  %indvars.iv.next625.4 = add nuw nsw i64 %indvars.iv624.4, 1
  %813 = getelementptr inbounds i8, ptr %10, i64 %indvars.iv.next625.4
  store i8 %812, ptr %813, align 1, !tbaa !19
  %exitcond639.not = icmp eq i64 %indvars.iv.next625.4, %umax628
  br i1 %exitcond639.not, label %814, label %.preheader439.4, !llvm.loop !30

814:                                              ; preds = %.preheader439.4
  %815 = call i32 @opus_decode(ptr noundef %774, ptr noundef nonnull %10, i32 noundef %775, ptr noundef nonnull %19, i32 noundef 5760, i32 noundef 0) #12
  %.not401.4 = icmp eq i32 %815, %787
  br i1 %.not401.4, label %.preheader439.5, label %860

.preheader439.5:                                  ; preds = %814, %.preheader439.5
  %indvars.iv624.5 = phi i64 [ %indvars.iv.next625.5, %.preheader439.5 ], [ 0, %814 ]
  %816 = call i32 @fast_rand()
  %817 = call i32 @fast_rand()
  %818 = or i32 %817, %816
  %819 = trunc i32 %818 to i8
  %indvars.iv.next625.5 = add nuw nsw i64 %indvars.iv624.5, 1
  %820 = getelementptr inbounds i8, ptr %10, i64 %indvars.iv.next625.5
  store i8 %819, ptr %820, align 1, !tbaa !19
  %exitcond637.not = icmp eq i64 %indvars.iv.next625.5, %umax628
  br i1 %exitcond637.not, label %821, label %.preheader439.5, !llvm.loop !30

821:                                              ; preds = %.preheader439.5
  %822 = call i32 @opus_decode(ptr noundef %774, ptr noundef nonnull %10, i32 noundef %775, ptr noundef nonnull %19, i32 noundef 5760, i32 noundef 0) #12
  %.not401.5 = icmp eq i32 %822, %787
  br i1 %.not401.5, label %.preheader439.6, label %860

.preheader439.6:                                  ; preds = %821, %.preheader439.6
  %indvars.iv624.6 = phi i64 [ %indvars.iv.next625.6, %.preheader439.6 ], [ 0, %821 ]
  %823 = call i32 @fast_rand()
  %824 = call i32 @fast_rand()
  %825 = or i32 %824, %823
  %826 = trunc i32 %825 to i8
  %indvars.iv.next625.6 = add nuw nsw i64 %indvars.iv624.6, 1
  %827 = getelementptr inbounds i8, ptr %10, i64 %indvars.iv.next625.6
  store i8 %826, ptr %827, align 1, !tbaa !19
  %exitcond635.not = icmp eq i64 %indvars.iv.next625.6, %umax628
  br i1 %exitcond635.not, label %828, label %.preheader439.6, !llvm.loop !30

828:                                              ; preds = %.preheader439.6
  %829 = call i32 @opus_decode(ptr noundef %774, ptr noundef nonnull %10, i32 noundef %775, ptr noundef nonnull %19, i32 noundef 5760, i32 noundef 0) #12
  %.not401.6 = icmp eq i32 %829, %787
  br i1 %.not401.6, label %.preheader439.7, label %860

.preheader439.7:                                  ; preds = %828, %.preheader439.7
  %indvars.iv624.7 = phi i64 [ %indvars.iv.next625.7, %.preheader439.7 ], [ 0, %828 ]
  %830 = call i32 @fast_rand()
  %831 = call i32 @fast_rand()
  %832 = or i32 %831, %830
  %833 = trunc i32 %832 to i8
  %indvars.iv.next625.7 = add nuw nsw i64 %indvars.iv624.7, 1
  %834 = getelementptr inbounds i8, ptr %10, i64 %indvars.iv.next625.7
  store i8 %833, ptr %834, align 1, !tbaa !19
  %exitcond633.not = icmp eq i64 %indvars.iv.next625.7, %umax628
  br i1 %exitcond633.not, label %835, label %.preheader439.7, !llvm.loop !30

835:                                              ; preds = %.preheader439.7
  %836 = call i32 @opus_decode(ptr noundef %774, ptr noundef nonnull %10, i32 noundef %775, ptr noundef nonnull %19, i32 noundef 5760, i32 noundef 0) #12
  %.not401.7 = icmp eq i32 %836, %787
  br i1 %.not401.7, label %.preheader439.8, label %860

.preheader439.8:                                  ; preds = %835, %.preheader439.8
  %indvars.iv624.8 = phi i64 [ %indvars.iv.next625.8, %.preheader439.8 ], [ 0, %835 ]
  %837 = call i32 @fast_rand()
  %838 = call i32 @fast_rand()
  %839 = or i32 %838, %837
  %840 = trunc i32 %839 to i8
  %indvars.iv.next625.8 = add nuw nsw i64 %indvars.iv624.8, 1
  %841 = getelementptr inbounds i8, ptr %10, i64 %indvars.iv.next625.8
  store i8 %840, ptr %841, align 1, !tbaa !19
  %exitcond631.not = icmp eq i64 %indvars.iv.next625.8, %umax628
  br i1 %exitcond631.not, label %842, label %.preheader439.8, !llvm.loop !30

842:                                              ; preds = %.preheader439.8
  %843 = call i32 @opus_decode(ptr noundef %774, ptr noundef nonnull %10, i32 noundef %775, ptr noundef nonnull %19, i32 noundef 5760, i32 noundef 0) #12
  %.not401.8 = icmp eq i32 %843, %787
  br i1 %.not401.8, label %.preheader439.9, label %860

.preheader439.9:                                  ; preds = %842, %.preheader439.9
  %indvars.iv624.9 = phi i64 [ %indvars.iv.next625.9, %.preheader439.9 ], [ 0, %842 ]
  %844 = call i32 @fast_rand()
  %845 = call i32 @fast_rand()
  %846 = or i32 %845, %844
  %847 = trunc i32 %846 to i8
  %indvars.iv.next625.9 = add nuw nsw i64 %indvars.iv624.9, 1
  %848 = getelementptr inbounds i8, ptr %10, i64 %indvars.iv.next625.9
  store i8 %847, ptr %848, align 1, !tbaa !19
  %exitcond629.not = icmp eq i64 %indvars.iv.next625.9, %umax628
  br i1 %exitcond629.not, label %849, label %.preheader439.9, !llvm.loop !30

849:                                              ; preds = %.preheader439.9
  %850 = call i32 @opus_decode(ptr noundef %774, ptr noundef nonnull %10, i32 noundef %775, ptr noundef nonnull %19, i32 noundef 5760, i32 noundef 0) #12
  %.not401.9 = icmp eq i32 %850, %787
  br i1 %.not401.9, label %851, label %860

851:                                              ; preds = %849
  %indvars.iv.next649 = add nuw nsw i64 %indvars.iv648, 1
  %exitcond651.not = icmp eq i64 %indvars.iv.next649, 4096
  br i1 %exitcond651.not, label %.critedge, label %.preheader439, !llvm.loop !31

852:                                              ; preds = %.preheader439, %852
  %indvars.iv624 = phi i64 [ 0, %.preheader439 ], [ %indvars.iv.next625, %852 ]
  %853 = call i32 @fast_rand()
  %854 = call i32 @fast_rand()
  %855 = or i32 %854, %853
  %856 = trunc i32 %855 to i8
  %indvars.iv.next625 = add nuw nsw i64 %indvars.iv624, 1
  %857 = getelementptr inbounds i8, ptr %10, i64 %indvars.iv.next625
  store i8 %856, ptr %857, align 1, !tbaa !19
  %exitcond647.not = icmp eq i64 %indvars.iv.next625, %umax628
  br i1 %exitcond647.not, label %858, label %852, !llvm.loop !30

858:                                              ; preds = %852
  %859 = call i32 @opus_decode(ptr noundef %774, ptr noundef nonnull %10, i32 noundef %775, ptr noundef nonnull %19, i32 noundef 5760, i32 noundef 0) #12
  %.not401 = icmp eq i32 %859, %787
  br i1 %.not401, label %.preheader439.1, label %860

860:                                              ; preds = %849, %842, %835, %828, %821, %814, %807, %800, %793, %858
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 346) #14
  unreachable

.critedge:                                        ; preds = %851
  %861 = load ptr, ptr @stdout, align 8, !tbaa !15
  %862 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %861, ptr noundef nonnull @.str.11, i32 noundef %771, i32 noundef %775) #12
  %863 = call i32 @fast_rand()
  %864 = and i32 %863, 1
  %865 = load i32, ptr @__const.test_decoder_code0.tmodes, align 4, !tbaa !5
  %866 = trunc i32 %865 to i8
  store i8 %866, ptr %10, align 1, !tbaa !19
  %867 = load i32, ptr @__const.test_decoder_code0.tseeds, align 4, !tbaa !5
  store i32 %867, ptr @Rz, align 4, !tbaa !5
  store i32 %867, ptr @Rw, align 4, !tbaa !5
  %868 = load i32, ptr @__const.test_decoder_code0.tlen, align 4, !tbaa !5
  %869 = icmp sgt i32 %868, 1
  br i1 %869, label %.lr.ph.preheader, label %._crit_edge523

.lr.ph.preheader:                                 ; preds = %.critedge
  %wide.trip.count655 = zext nneg i32 %868 to i64
  br label %.lr.ph

.lr.ph:                                           ; preds = %.lr.ph.preheader, %.lr.ph
  %indvars.iv652 = phi i64 [ 1, %.lr.ph.preheader ], [ %indvars.iv.next653, %.lr.ph ]
  %870 = call i32 @fast_rand()
  %871 = trunc i32 %870 to i8
  %872 = getelementptr inbounds i8, ptr %10, i64 %indvars.iv652
  store i8 %871, ptr %872, align 1, !tbaa !19
  %indvars.iv.next653 = add nuw nsw i64 %indvars.iv652, 1
  %exitcond656.not = icmp eq i64 %indvars.iv.next653, %wide.trip.count655
  br i1 %exitcond656.not, label %._crit_edge523, label %.lr.ph, !llvm.loop !32

._crit_edge523:                                   ; preds = %.lr.ph, %.critedge
  %873 = zext nneg i32 %864 to i64
  %874 = getelementptr inbounds [10 x ptr], ptr %3, i64 0, i64 %873
  %875 = load ptr, ptr %874, align 8, !tbaa !15
  %876 = call i32 @opus_decode(ptr noundef %875, ptr noundef nonnull %10, i32 noundef %868, ptr noundef nonnull %19, i32 noundef 5760, i32 noundef 0) #12
  %877 = load i32, ptr @__const.test_decoder_code0.tret, align 4, !tbaa !5
  %.not400 = icmp eq i32 %876, %877
  br i1 %.not400, label %.preheader, label %878

878:                                              ; preds = %._crit_edge523
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 364) #14
  unreachable

.preheader:                                       ; preds = %._crit_edge523
  %879 = load ptr, ptr @stdout, align 8, !tbaa !15
  %880 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %879, ptr noundef nonnull @.str.12, i32 noundef %864) #12
  call void @free(ptr noundef %52) #12
  %881 = load ptr, ptr %3, align 16, !tbaa !15
  call void @opus_decoder_destroy(ptr noundef %881) #12
  %882 = load ptr, ptr %428, align 8, !tbaa !15
  call void @opus_decoder_destroy(ptr noundef %882) #12
  %883 = load ptr, ptr %429, align 16, !tbaa !15
  call void @opus_decoder_destroy(ptr noundef %883) #12
  %884 = load ptr, ptr %430, align 8, !tbaa !15
  call void @opus_decoder_destroy(ptr noundef %884) #12
  %885 = load ptr, ptr %431, align 16, !tbaa !15
  call void @opus_decoder_destroy(ptr noundef %885) #12
  %886 = load ptr, ptr %432, align 8, !tbaa !15
  call void @opus_decoder_destroy(ptr noundef %886) #12
  %887 = load ptr, ptr %433, align 16, !tbaa !15
  call void @opus_decoder_destroy(ptr noundef %887) #12
  %888 = load ptr, ptr %434, align 8, !tbaa !15
  call void @opus_decoder_destroy(ptr noundef %888) #12
  %889 = load ptr, ptr %435, align 16, !tbaa !15
  call void @opus_decoder_destroy(ptr noundef %889) #12
  %890 = load ptr, ptr %436, align 8, !tbaa !15
  call void @opus_decoder_destroy(ptr noundef %890) #12
  %891 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.7)
  %892 = load <16 x i16>, ptr %13, align 2, !tbaa !9
  %893 = getelementptr inbounds i8, ptr %13, i64 23072
  %894 = load <16 x i16>, ptr %893, align 2, !tbaa !9
  %895 = shufflevector <16 x i16> %894, <16 x i16> %892, <32 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31>
  %896 = icmp ne <32 x i16> %895, <i16 32749, i16 32749, i16 32749, i16 32749, i16 32749, i16 32749, i16 32749, i16 32749, i16 32749, i16 32749, i16 32749, i16 32749, i16 32749, i16 32749, i16 32749, i16 32749, i16 32749, i16 32749, i16 32749, i16 32749, i16 32749, i16 32749, i16 32749, i16 32749, i16 32749, i16 32749, i16 32749, i16 32749, i16 32749, i16 32749, i16 32749, i16 32749>
  %897 = bitcast <32 x i1> %896 to i32
  %898 = icmp ne i32 %897, 0
  %899 = zext i1 %898 to i32
  store i32 %899, ptr %2, align 4, !tbaa !5
  br i1 %898, label %900, label %901

900:                                              ; preds = %.preheader
  call void @_test_failed(ptr noundef nonnull @.str, i32 noundef 376) #14
  unreachable

901:                                              ; preds = %.preheader
  call void @free(ptr noundef nonnull %13) #12
  call void @free(ptr noundef nonnull %10) #12
  br label %902

902:                                              ; preds = %901, %461
  call void @llvm.lifetime.end.p0(i64 4096, ptr nonnull %5) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %4) #12
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %3) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %2) #12
  ret i32 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: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite)
declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #2

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

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

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

declare i32 @opus_decoder_get_size(i32 noundef) local_unnamed_addr #5

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

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

declare void @opus_decoder_destroy(ptr noundef) local_unnamed_addr #5

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

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

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

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

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

declare i32 @opus_packet_get_nb_channels(ptr noundef) local_unnamed_addr #5

declare i32 @opus_decoder_get_nb_samples(ptr noundef, ptr 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 #9

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

; Function Attrs: nounwind
declare i32 @rand() local_unnamed_addr #10

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

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 = { 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 #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 = { 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 #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 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #7 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #8 = { 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 #9 = { 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 #10 = { 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 #11 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #12 = { nounwind }
attributes #13 = { nounwind allocsize(0) }
attributes #14 = { noreturn }

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

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


; Effective O3 passes: BDCEPass,CorrelatedValuePropagationPass,DSEPass,EarlyCSEPass,GVNPass,GlobalDCEPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferAlignmentPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopFullUnrollPass,LoopInstSimplifyPass,LoopLoadEliminationPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,LoopVectorizePass,PostOrderFunctionAttrsPass,ReassociatePass,SCCPPass,SLPVectorizerPass,SROAPass,SimplifyCFGPass,TailCallElimPass,VectorCombinePass