; LLVM IR from indygreg/python-zstandard :: zstd (zstd)

; Unoptimized IR (clang -disable-llvm-passes):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%struct.ZSTD_CCtx_params_s = type { i32, %struct.ZSTD_compressionParameters, %struct.ZSTD_frameParameters, i32, i32, i64, i32, i32, i32, i32, i64, i32, i32, %struct.ldmParams_t, i32, i32, i32, i32, i32, i32, i32, i32, %struct.ZSTD_customMem, i32, i32, ptr, ptr, i64, i32 }
%struct.ZSTD_compressionParameters = type { i32, i32, i32, i32, i32, i32, i32 }
%struct.ZSTD_frameParameters = type { i32, i32, i32 }
%struct.ldmParams_t = type { i32, i32, i32, i32, i32, i32 }
%struct.ZSTD_customMem = type { ptr, ptr, ptr }

; Function Attrs: nounwind uwtable
declare hidden i32 @ERR_isError(i64 noundef) #0

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

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

; Function Attrs: nounwind uwtable
define dso_local i64 @ZSTD_CCtxParams_setParameter(ptr noundef %0, i32 noundef %1, i32 noundef %2) #0 {
  %4 = alloca i64, align 8
  %5 = alloca ptr, align 8
  %6 = alloca i32, align 4
  %7 = alloca i32, align 4
  %8 = alloca i64, align 8
  %9 = alloca i32, align 4
  %10 = alloca i32, align 4
  %11 = alloca i32, align 4
  %12 = alloca i64, align 8
  %13 = alloca i64, align 8
  %14 = alloca i64, align 8
  %15 = alloca i64, align 8
  store ptr %0, ptr %5, align 8, !tbaa !5
  store i32 %1, ptr %6, align 4, !tbaa !9
  store i32 %2, ptr %7, align 4, !tbaa !9
  br label %16

16:                                               ; preds = %3
  br label %17

17:                                               ; preds = %16
  %18 = load i32, ptr %6, align 4, !tbaa !9
  switch i32 %18, label %1066 [
    i32 10, label %19
    i32 100, label %44
    i32 101, label %90
    i32 102, label %121
    i32 103, label %152
    i32 104, label %183
    i32 105, label %211
    i32 106, label %242
    i32 107, label %269
    i32 200, label %300
    i32 201, label %314
    i32 202, label %326
    i32 1000, label %344
    i32 1001, label %354
    i32 1002, label %387
    i32 400, label %420
    i32 401, label %453
    i32 402, label %493
    i32 500, label %525
    i32 1005, label %557
    i32 160, label %567
    i32 161, label %594
    i32 162, label %625
    i32 163, label %656
    i32 164, label %687
    i32 130, label %718
    i32 1004, label %754
    i32 1006, label %783
    i32 1007, label %808
    i32 1008, label %833
    i32 1009, label %858
    i32 1010, label %883
    i32 1011, label %908
    i32 1012, label %933
    i32 1013, label %962
    i32 1014, label %987
    i32 1015, label %1012
    i32 1016, label %1041
  ]

19:                                               ; preds = %17
  br label %20

20:                                               ; preds = %19
  br label %21

21:                                               ; preds = %20
  %22 = load i32, ptr %7, align 4, !tbaa !9
  %23 = call i32 @ZSTD_cParam_withinBounds(i32 noundef 10, i32 noundef %22)
  %24 = icmp ne i32 %23, 0
  br i1 %24, label %34, label %25

25:                                               ; preds = %21
  br label %26

26:                                               ; preds = %25
  br label %27

27:                                               ; preds = %26
  br label %28

28:                                               ; preds = %27
  br label %29

29:                                               ; preds = %28
  br label %30

30:                                               ; preds = %29
  br label %31

31:                                               ; preds = %30
  br label %32

32:                                               ; preds = %31
  br label %33

33:                                               ; preds = %32
  store i64 -42, ptr %4, align 8
  br label %1077

34:                                               ; preds = %21
  br label %35

35:                                               ; preds = %34
  br label %36

36:                                               ; preds = %35
  %37 = load i32, ptr %7, align 4, !tbaa !9
  %38 = load ptr, ptr %5, align 8, !tbaa !5
  %39 = getelementptr inbounds %struct.ZSTD_CCtx_params_s, ptr %38, i32 0, i32 0
  store i32 %37, ptr %39, align 8, !tbaa !11
  %40 = load ptr, ptr %5, align 8, !tbaa !5
  %41 = getelementptr inbounds %struct.ZSTD_CCtx_params_s, ptr %40, i32 0, i32 0
  %42 = load i32, ptr %41, align 8, !tbaa !11
  %43 = zext i32 %42 to i64
  store i64 %43, ptr %4, align 8
  br label %1077

44:                                               ; preds = %17
  br label %45

45:                                               ; preds = %44
  call void @llvm.lifetime.start.p0(i64 8, ptr %8) #3
  %46 = load i32, ptr %6, align 4, !tbaa !9
  %47 = call i64 @ZSTD_cParam_clampBounds(i32 noundef %46, ptr noundef %7)
  store i64 %47, ptr %8, align 8, !tbaa !18
  %48 = load i64, ptr %8, align 8, !tbaa !18
  %49 = call i32 @ERR_isError(i64 noundef %48)
  %50 = icmp ne i32 %49, 0
  br i1 %50, label %51, label %65

51:                                               ; preds = %45
  br label %52

52:                                               ; preds = %51
  br label %53

53:                                               ; preds = %52
  br label %54

54:                                               ; preds = %53
  br label %55

55:                                               ; preds = %54
  br label %56

56:                                               ; preds = %55
  br label %57

57:                                               ; preds = %56
  br label %58

58:                                               ; preds = %57
  br label %59

59:                                               ; preds = %58
  br label %60

60:                                               ; preds = %59
  br label %61

61:                                               ; preds = %60
  br label %62

62:                                               ; preds = %61
  br label %63

63:                                               ; preds = %62
  %64 = load i64, ptr %8, align 8, !tbaa !18
  store i64 %64, ptr %4, align 8
  store i32 1, ptr %9, align 4
  br label %66

65:                                               ; preds = %45
  store i32 0, ptr %9, align 4
  br label %66

66:                                               ; preds = %65, %63
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #3
  %67 = load i32, ptr %9, align 4
  switch i32 %67, label %1079 [
    i32 0, label %68
    i32 1, label %1077
  ]

68:                                               ; preds = %66
  br label %69

69:                                               ; preds = %68
  %70 = load i32, ptr %7, align 4, !tbaa !9
  %71 = icmp eq i32 %70, 0
  br i1 %71, label %72, label %75

72:                                               ; preds = %69
  %73 = load ptr, ptr %5, align 8, !tbaa !5
  %74 = getelementptr inbounds %struct.ZSTD_CCtx_params_s, ptr %73, i32 0, i32 3
  store i32 3, ptr %74, align 4, !tbaa !19
  br label %79

75:                                               ; preds = %69
  %76 = load i32, ptr %7, align 4, !tbaa !9
  %77 = load ptr, ptr %5, align 8, !tbaa !5
  %78 = getelementptr inbounds %struct.ZSTD_CCtx_params_s, ptr %77, i32 0, i32 3
  store i32 %76, ptr %78, align 4, !tbaa !19
  br label %79

79:                                               ; preds = %75, %72
  %80 = load ptr, ptr %5, align 8, !tbaa !5
  %81 = getelementptr inbounds %struct.ZSTD_CCtx_params_s, ptr %80, i32 0, i32 3
  %82 = load i32, ptr %81, align 4, !tbaa !19
  %83 = icmp sge i32 %82, 0
  br i1 %83, label %84, label %89

84:                                               ; preds = %79
  %85 = load ptr, ptr %5, align 8, !tbaa !5
  %86 = getelementptr inbounds %struct.ZSTD_CCtx_params_s, ptr %85, i32 0, i32 3
  %87 = load i32, ptr %86, align 4, !tbaa !19
  %88 = sext i32 %87 to i64
  store i64 %88, ptr %4, align 8
  br label %1077

89:                                               ; preds = %79
  store i64 0, ptr %4, align 8
  br label %1077

90:                                               ; preds = %17
  %91 = load i32, ptr %7, align 4, !tbaa !9
  %92 = icmp ne i32 %91, 0
  br i1 %92, label %93, label %111

93:                                               ; preds = %90
  br label %94

94:                                               ; preds = %93
  br label %95

95:                                               ; preds = %94
  %96 = load i32, ptr %7, align 4, !tbaa !9
  %97 = call i32 @ZSTD_cParam_withinBounds(i32 noundef 101, i32 noundef %96)
  %98 = icmp ne i32 %97, 0
  br i1 %98, label %108, label %99

99:                                               ; preds = %95
  br label %100

100:                                              ; preds = %99
  br label %101

101:                                              ; preds = %100
  br label %102

102:                                              ; preds = %101
  br label %103

103:                                              ; preds = %102
  br label %104

104:                                              ; preds = %103
  br label %105

105:                                              ; preds = %104
  br label %106

106:                                              ; preds = %105
  br label %107

107:                                              ; preds = %106
  store i64 -42, ptr %4, align 8
  br label %1077

108:                                              ; preds = %95
  br label %109

109:                                              ; preds = %108
  br label %110

110:                                              ; preds = %109
  br label %111

111:                                              ; preds = %110, %90
  %112 = load i32, ptr %7, align 4, !tbaa !9
  %113 = load ptr, ptr %5, align 8, !tbaa !5
  %114 = getelementptr inbounds %struct.ZSTD_CCtx_params_s, ptr %113, i32 0, i32 1
  %115 = getelementptr inbounds %struct.ZSTD_compressionParameters, ptr %114, i32 0, i32 0
  store i32 %112, ptr %115, align 4, !tbaa !20
  %116 = load ptr, ptr %5, align 8, !tbaa !5
  %117 = getelementptr inbounds %struct.ZSTD_CCtx_params_s, ptr %116, i32 0, i32 1
  %118 = getelementptr inbounds %struct.ZSTD_compressionParameters, ptr %117, i32 0, i32 0
  %119 = load i32, ptr %118, align 4, !tbaa !20
  %120 = zext i32 %119 to i64
  store i64 %120, ptr %4, align 8
  br label %1077

121:                                              ; preds = %17
  %122 = load i32, ptr %7, align 4, !tbaa !9
  %123 = icmp ne i32 %122, 0
  br i1 %123, label %124, label %142

124:                                              ; preds = %121
  br label %125

125:                                              ; preds = %124
  br label %126

126:                                              ; preds = %125
  %127 = load i32, ptr %7, align 4, !tbaa !9
  %128 = call i32 @ZSTD_cParam_withinBounds(i32 noundef 102, i32 noundef %127)
  %129 = icmp ne i32 %128, 0
  br i1 %129, label %139, label %130

130:                                              ; preds = %126
  br label %131

131:                                              ; preds = %130
  br label %132

132:                                              ; preds = %131
  br label %133

133:                                              ; preds = %132
  br label %134

134:                                              ; preds = %133
  br label %135

135:                                              ; preds = %134
  br label %136

136:                                              ; preds = %135
  br label %137

137:                                              ; preds = %136
  br label %138

138:                                              ; preds = %137
  store i64 -42, ptr %4, align 8
  br label %1077

139:                                              ; preds = %126
  br label %140

140:                                              ; preds = %139
  br label %141

141:                                              ; preds = %140
  br label %142

142:                                              ; preds = %141, %121
  %143 = load i32, ptr %7, align 4, !tbaa !9
  %144 = load ptr, ptr %5, align 8, !tbaa !5
  %145 = getelementptr inbounds %struct.ZSTD_CCtx_params_s, ptr %144, i32 0, i32 1
  %146 = getelementptr inbounds %struct.ZSTD_compressionParameters, ptr %145, i32 0, i32 2
  store i32 %143, ptr %146, align 4, !tbaa !21
  %147 = load ptr, ptr %5, align 8, !tbaa !5
  %148 = getelementptr inbounds %struct.ZSTD_CCtx_params_s, ptr %147, i32 0, i32 1
  %149 = getelementptr inbounds %struct.ZSTD_compressionParameters, ptr %148, i32 0, i32 2
  %150 = load i32, ptr %149, align 4, !tbaa !21
  %151 = zext i32 %150 to i64
  store i64 %151, ptr %4, align 8
  br label %1077

152:                                              ; preds = %17
  %153 = load i32, ptr %7, align 4, !tbaa !9
  %154 = icmp ne i32 %153, 0
  br i1 %154, label %155, label %173

155:                                              ; preds = %152
  br label %156

156:                                              ; preds = %155
  br label %157

157:                                              ; preds = %156
  %158 = load i32, ptr %7, align 4, !tbaa !9
  %159 = call i32 @ZSTD_cParam_withinBounds(i32 noundef 103, i32 noundef %158)
  %160 = icmp ne i32 %159, 0
  br i1 %160, label %170, label %161

161:                                              ; preds = %157
  br label %162

162:                                              ; preds = %161
  br label %163

163:                                              ; preds = %162
  br label %164

164:                                              ; preds = %163
  br label %165

165:                                              ; preds = %164
  br label %166

166:                                              ; preds = %165
  br label %167

167:                                              ; preds = %166
  br label %168

168:                                              ; preds = %167
  br label %169

169:                                              ; preds = %168
  store i64 -42, ptr %4, align 8
  br label %1077

170:                                              ; preds = %157
  br label %171

171:                                              ; preds = %170
  br label %172

172:                                              ; preds = %171
  br label %173

173:                                              ; preds = %172, %152
  %174 = load i32, ptr %7, align 4, !tbaa !9
  %175 = load ptr, ptr %5, align 8, !tbaa !5
  %176 = getelementptr inbounds %struct.ZSTD_CCtx_params_s, ptr %175, i32 0, i32 1
  %177 = getelementptr inbounds %struct.ZSTD_compressionParameters, ptr %176, i32 0, i32 1
  store i32 %174, ptr %177, align 4, !tbaa !22
  %178 = load ptr, ptr %5, align 8, !tbaa !5
  %179 = getelementptr inbounds %struct.ZSTD_CCtx_params_s, ptr %178, i32 0, i32 1
  %180 = getelementptr inbounds %struct.ZSTD_compressionParameters, ptr %179, i32 0, i32 1
  %181 = load i32, ptr %180, align 4, !tbaa !22
  %182 = zext i32 %181 to i64
  store i64 %182, ptr %4, align 8
  br label %1077

183:                                              ; preds = %17
  %184 = load i32, ptr %7, align 4, !tbaa !9
  %185 = icmp ne i32 %184, 0
  br i1 %185, label %186, label %204

186:                                              ; preds = %183
  br label %187

187:                                              ; preds = %186
  br label %188

188:                                              ; preds = %187
  %189 = load i32, ptr %7, align 4, !tbaa !9
  %190 = call i32 @ZSTD_cParam_withinBounds(i32 noundef 104, i32 noundef %189)
  %191 = icmp ne i32 %190, 0
  br i1 %191, label %201, label %192

192:                                              ; preds = %188
  br label %193

193:                                              ; preds = %192
  br label %194

194:                                              ; preds = %193
  br label %195

195:                                              ; preds = %194
  br label %196

196:                                              ; preds = %195
  br label %197

197:                                              ; preds = %196
  br label %198

198:                                              ; preds = %197
  br label %199

199:                                              ; preds = %198
  br label %200

200:                                              ; preds = %199
  store i64 -42, ptr %4, align 8
  br label %1077

201:                                              ; preds = %188
  br label %202

202:                                              ; preds = %201
  br label %203

203:                                              ; preds = %202
  br label %204

204:                                              ; preds = %203, %183
  %205 = load i32, ptr %7, align 4, !tbaa !9
  %206 = load ptr, ptr %5, align 8, !tbaa !5
  %207 = getelementptr inbounds %struct.ZSTD_CCtx_params_s, ptr %206, i32 0, i32 1
  %208 = getelementptr inbounds %struct.ZSTD_compressionParameters, ptr %207, i32 0, i32 3
  store i32 %205, ptr %208, align 4, !tbaa !23
  %209 = load i32, ptr %7, align 4, !tbaa !9
  %210 = sext i32 %209 to i64
  store i64 %210, ptr %4, align 8
  br label %1077

211:                                              ; preds = %17
  %212 = load i32, ptr %7, align 4, !tbaa !9
  %213 = icmp ne i32 %212, 0
  br i1 %213, label %214, label %232

214:                                              ; preds = %211
  br label %215

215:                                              ; preds = %214
  br label %216

216:                                              ; preds = %215
  %217 = load i32, ptr %7, align 4, !tbaa !9
  %218 = call i32 @ZSTD_cParam_withinBounds(i32 noundef 105, i32 noundef %217)
  %219 = icmp ne i32 %218, 0
  br i1 %219, label %229, label %220

220:                                              ; preds = %216
  br label %221

221:                                              ; preds = %220
  br label %222

222:                                              ; preds = %221
  br label %223

223:                                              ; preds = %222
  br label %224

224:                                              ; preds = %223
  br label %225

225:                                              ; preds = %224
  br label %226

226:                                              ; preds = %225
  br label %227

227:                                              ; preds = %226
  br label %228

228:                                              ; preds = %227
  store i64 -42, ptr %4, align 8
  br label %1077

229:                                              ; preds = %216
  br label %230

230:                                              ; preds = %229
  br label %231

231:                                              ; preds = %230
  br label %232

232:                                              ; preds = %231, %211
  %233 = load i32, ptr %7, align 4, !tbaa !9
  %234 = load ptr, ptr %5, align 8, !tbaa !5
  %235 = getelementptr inbounds %struct.ZSTD_CCtx_params_s, ptr %234, i32 0, i32 1
  %236 = getelementptr inbounds %struct.ZSTD_compressionParameters, ptr %235, i32 0, i32 4
  store i32 %233, ptr %236, align 4, !tbaa !24
  %237 = load ptr, ptr %5, align 8, !tbaa !5
  %238 = getelementptr inbounds %struct.ZSTD_CCtx_params_s, ptr %237, i32 0, i32 1
  %239 = getelementptr inbounds %struct.ZSTD_compressionParameters, ptr %238, i32 0, i32 4
  %240 = load i32, ptr %239, align 4, !tbaa !24
  %241 = zext i32 %240 to i64
  store i64 %241, ptr %4, align 8
  br label %1077

242:                                              ; preds = %17
  br label %243

243:                                              ; preds = %242
  br label %244

244:                                              ; preds = %243
  %245 = load i32, ptr %7, align 4, !tbaa !9
  %246 = call i32 @ZSTD_cParam_withinBounds(i32 noundef 106, i32 noundef %245)
  %247 = icmp ne i32 %246, 0
  br i1 %247, label %257, label %248

248:                                              ; preds = %244
  br label %249

249:                                              ; preds = %248
  br label %250

250:                                              ; preds = %249
  br label %251

251:                                              ; preds = %250
  br label %252

252:                                              ; preds = %251
  br label %253

253:                                              ; preds = %252
  br label %254

254:                                              ; preds = %253
  br label %255

255:                                              ; preds = %254
  br label %256

256:                                              ; preds = %255
  store i64 -42, ptr %4, align 8
  br label %1077

257:                                              ; preds = %244
  br label %258

258:                                              ; preds = %257
  br label %259

259:                                              ; preds = %258
  %260 = load i32, ptr %7, align 4, !tbaa !9
  %261 = load ptr, ptr %5, align 8, !tbaa !5
  %262 = getelementptr inbounds %struct.ZSTD_CCtx_params_s, ptr %261, i32 0, i32 1
  %263 = getelementptr inbounds %struct.ZSTD_compressionParameters, ptr %262, i32 0, i32 5
  store i32 %260, ptr %263, align 4, !tbaa !25
  %264 = load ptr, ptr %5, align 8, !tbaa !5
  %265 = getelementptr inbounds %struct.ZSTD_CCtx_params_s, ptr %264, i32 0, i32 1
  %266 = getelementptr inbounds %struct.ZSTD_compressionParameters, ptr %265, i32 0, i32 5
  %267 = load i32, ptr %266, align 4, !tbaa !25
  %268 = zext i32 %267 to i64
  store i64 %268, ptr %4, align 8
  br label %1077

269:                                              ; preds = %17
  %270 = load i32, ptr %7, align 4, !tbaa !9
  %271 = icmp ne i32 %270, 0
  br i1 %271, label %272, label %290

272:                                              ; preds = %269
  br label %273

273:                                              ; preds = %272
  br label %274

274:                                              ; preds = %273
  %275 = load i32, ptr %7, align 4, !tbaa !9
  %276 = call i32 @ZSTD_cParam_withinBounds(i32 noundef 107, i32 noundef %275)
  %277 = icmp ne i32 %276, 0
  br i1 %277, label %287, label %278

278:                                              ; preds = %274
  br label %279

279:                                              ; preds = %278
  br label %280

280:                                              ; preds = %279
  br label %281

281:                                              ; preds = %280
  br label %282

282:                                              ; preds = %281
  br label %283

283:                                              ; preds = %282
  br label %284

284:                                              ; preds = %283
  br label %285

285:                                              ; preds = %284
  br label %286

286:                                              ; preds = %285
  store i64 -42, ptr %4, align 8
  br label %1077

287:                                              ; preds = %274
  br label %288

288:                                              ; preds = %287
  br label %289

289:                                              ; preds = %288
  br label %290

290:                                              ; preds = %289, %269
  %291 = load i32, ptr %7, align 4, !tbaa !9
  %292 = load ptr, ptr %5, align 8, !tbaa !5
  %293 = getelementptr inbounds %struct.ZSTD_CCtx_params_s, ptr %292, i32 0, i32 1
  %294 = getelementptr inbounds %struct.ZSTD_compressionParameters, ptr %293, i32 0, i32 6
  store i32 %291, ptr %294, align 4, !tbaa !26
  %295 = load ptr, ptr %5, align 8, !tbaa !5
  %296 = getelementptr inbounds %struct.ZSTD_CCtx_params_s, ptr %295, i32 0, i32 1
  %297 = getelementptr inbounds %struct.ZSTD_compressionParameters, ptr %296, i32 0, i32 6
  %298 = load i32, ptr %297, align 4, !tbaa !26
  %299 = zext i32 %298 to i64
  store i64 %299, ptr %4, align 8
  br label %1077

300:                                              ; preds = %17
  br label %301

301:                                              ; preds = %300
  br label %302

302:                                              ; preds = %301
  %303 = load i32, ptr %7, align 4, !tbaa !9
  %304 = icmp ne i32 %303, 0
  %305 = zext i1 %304 to i32
  %306 = load ptr, ptr %5, align 8, !tbaa !5
  %307 = getelementptr inbounds %struct.ZSTD_CCtx_params_s, ptr %306, i32 0, i32 2
  %308 = getelementptr inbounds %struct.ZSTD_frameParameters, ptr %307, i32 0, i32 0
  store i32 %305, ptr %308, align 8, !tbaa !27
  %309 = load ptr, ptr %5, align 8, !tbaa !5
  %310 = getelementptr inbounds %struct.ZSTD_CCtx_params_s, ptr %309, i32 0, i32 2
  %311 = getelementptr inbounds %struct.ZSTD_frameParameters, ptr %310, i32 0, i32 0
  %312 = load i32, ptr %311, align 8, !tbaa !27
  %313 = sext i32 %312 to i64
  store i64 %313, ptr %4, align 8
  br label %1077

314:                                              ; preds = %17
  %315 = load i32, ptr %7, align 4, !tbaa !9
  %316 = icmp ne i32 %315, 0
  %317 = zext i1 %316 to i32
  %318 = load ptr, ptr %5, align 8, !tbaa !5
  %319 = getelementptr inbounds %struct.ZSTD_CCtx_params_s, ptr %318, i32 0, i32 2
  %320 = getelementptr inbounds %struct.ZSTD_frameParameters, ptr %319, i32 0, i32 1
  store i32 %317, ptr %320, align 4, !tbaa !28
  %321 = load ptr, ptr %5, align 8, !tbaa !5
  %322 = getelementptr inbounds %struct.ZSTD_CCtx_params_s, ptr %321, i32 0, i32 2
  %323 = getelementptr inbounds %struct.ZSTD_frameParameters, ptr %322, i32 0, i32 1
  %324 = load i32, ptr %323, align 4, !tbaa !28
  %325 = sext i32 %324 to i64
  store i64 %325, ptr %4, align 8
  br label %1077

326:                                              ; preds = %17
  br label %327

327:                                              ; preds = %326
  br label %328

328:                                              ; preds = %327
  %329 = load i32, ptr %7, align 4, !tbaa !9
  %330 = icmp ne i32 %329, 0
  %331 = xor i1 %330, true
  %332 = zext i1 %331 to i32
  %333 = load ptr, ptr %5, align 8, !tbaa !5
  %334 = getelementptr inbounds %struct.ZSTD_CCtx_params_s, ptr %333, i32 0, i32 2
  %335 = getelementptr inbounds %struct.ZSTD_frameParameters, ptr %334, i32 0, i32 2
  store i32 %332, ptr %335, align 8, !tbaa !29
  %336 = load ptr, ptr %5, align 8, !tbaa !5
  %337 = getelementptr inbounds %struct.ZSTD_CCtx_params_s, ptr %336, i32 0, i32 2
  %338 = getelementptr inbounds %struct.ZSTD_frameParameters, ptr %337, i32 0, i32 2
  %339 = load i32, ptr %338, align 8, !tbaa !29
  %340 = icmp ne i32 %339, 0
  %341 = xor i1 %340, true
  %342 = zext i1 %341 to i32
  %343 = sext i32 %342 to i64
  store i64 %343, ptr %4, align 8
  br label %1077

344:                                              ; preds = %17
  %345 = load i32, ptr %7, align 4, !tbaa !9
  %346 = icmp ne i32 %345, 0
  %347 = zext i1 %346 to i32
  %348 = load ptr, ptr %5, align 8, !tbaa !5
  %349 = getelementptr inbounds %struct.ZSTD_CCtx_params_s, ptr %348, i32 0, i32 4
  store i32 %347, ptr %349, align 8, !tbaa !30
  %350 = load ptr, ptr %5, align 8, !tbaa !5
  %351 = getelementptr inbounds %struct.ZSTD_CCtx_params_s, ptr %350, i32 0, i32 4
  %352 = load i32, ptr %351, align 8, !tbaa !30
  %353 = sext i32 %352 to i64
  store i64 %353, ptr %4, align 8
  br label %1077

354:                                              ; preds = %17
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #3
  %355 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %355, ptr %10, align 4, !tbaa !9
  br label %356

356:                                              ; preds = %354
  br label %357

357:                                              ; preds = %356
  %358 = load i32, ptr %10, align 4, !tbaa !9
  %359 = call i32 @ZSTD_cParam_withinBounds(i32 noundef 1001, i32 noundef %358)
  %360 = icmp ne i32 %359, 0
  br i1 %360, label %374, label %361

361:                                              ; preds = %357
  br label %362

362:                                              ; preds = %361
  br label %363

363:                                              ; preds = %362
  br label %364

364:                                              ; preds = %363
  br label %365

365:                                              ; preds = %364
  br label %366

366:                                              ; preds = %365
  br label %367

367:                                              ; preds = %366
  br label %368

368:                                              ; preds = %367
  br label %369

369:                                              ; preds = %368
  br label %370

370:                                              ; preds = %369
  br label %371

371:                                              ; preds = %370
  br label %372

372:                                              ; preds = %371
  br label %373

373:                                              ; preds = %372
  store i64 -42, ptr %4, align 8
  store i32 1, ptr %9, align 4
  br label %386

374:                                              ; preds = %357
  br label %375

375:                                              ; preds = %374
  br label %376

376:                                              ; preds = %375
  br label %377

377:                                              ; preds = %376
  br label %378

378:                                              ; preds = %377
  %379 = load i32, ptr %10, align 4, !tbaa !9
  %380 = load ptr, ptr %5, align 8, !tbaa !5
  %381 = getelementptr inbounds %struct.ZSTD_CCtx_params_s, ptr %380, i32 0, i32 7
  store i32 %379, ptr %381, align 4, !tbaa !31
  %382 = load ptr, ptr %5, align 8, !tbaa !5
  %383 = getelementptr inbounds %struct.ZSTD_CCtx_params_s, ptr %382, i32 0, i32 7
  %384 = load i32, ptr %383, align 4, !tbaa !31
  %385 = zext i32 %384 to i64
  store i64 %385, ptr %4, align 8
  store i32 1, ptr %9, align 4
  br label %386

386:                                              ; preds = %378, %373
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #3
  br label %1077

387:                                              ; preds = %17
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #3
  %388 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %388, ptr %11, align 4, !tbaa !9
  br label %389

389:                                              ; preds = %387
  br label %390

390:                                              ; preds = %389
  %391 = load i32, ptr %11, align 4, !tbaa !9
  %392 = call i32 @ZSTD_cParam_withinBounds(i32 noundef 1002, i32 noundef %391)
  %393 = icmp ne i32 %392, 0
  br i1 %393, label %407, label %394

394:                                              ; preds = %390
  br label %395

395:                                              ; preds = %394
  br label %396

396:                                              ; preds = %395
  br label %397

397:                                              ; preds = %396
  br label %398

398:                                              ; preds = %397
  br label %399

399:                                              ; preds = %398
  br label %400

400:                                              ; preds = %399
  br label %401

401:                                              ; preds = %400
  br label %402

402:                                              ; preds = %401
  br label %403

403:                                              ; preds = %402
  br label %404

404:                                              ; preds = %403
  br label %405

405:                                              ; preds = %404
  br label %406

406:                                              ; preds = %405
  store i64 -42, ptr %4, align 8
  store i32 1, ptr %9, align 4
  br label %419

407:                                              ; preds = %390
  br label %408

408:                                              ; preds = %407
  br label %409

409:                                              ; preds = %408
  br label %410

410:                                              ; preds = %409
  br label %411

411:                                              ; preds = %410
  %412 = load i32, ptr %11, align 4, !tbaa !9
  %413 = load ptr, ptr %5, align 8, !tbaa !5
  %414 = getelementptr inbounds %struct.ZSTD_CCtx_params_s, ptr %413, i32 0, i32 8
  store i32 %412, ptr %414, align 8, !tbaa !32
  %415 = load ptr, ptr %5, align 8, !tbaa !5
  %416 = getelementptr inbounds %struct.ZSTD_CCtx_params_s, ptr %415, i32 0, i32 8
  %417 = load i32, ptr %416, align 8, !tbaa !32
  %418 = zext i32 %417 to i64
  store i64 %418, ptr %4, align 8
  store i32 1, ptr %9, align 4
  br label %419

419:                                              ; preds = %411, %406
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #3
  br label %1077

420:                                              ; preds = %17
  br label %421

421:                                              ; preds = %420
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #3
  %422 = load i32, ptr %6, align 4, !tbaa !9
  %423 = call i64 @ZSTD_cParam_clampBounds(i32 noundef %422, ptr noundef %7)
  store i64 %423, ptr %12, align 8, !tbaa !18
  %424 = load i64, ptr %12, align 8, !tbaa !18
  %425 = call i32 @ERR_isError(i64 noundef %424)
  %426 = icmp ne i32 %425, 0
  br i1 %426, label %427, label %441

427:                                              ; preds = %421
  br label %428

428:                                              ; preds = %427
  br label %429

429:                                              ; preds = %428
  br label %430

430:                                              ; preds = %429
  br label %431

431:                                              ; preds = %430
  br label %432

432:                                              ; preds = %431
  br label %433

433:                                              ; preds = %432
  br label %434

434:                                              ; preds = %433
  br label %435

435:                                              ; preds = %434
  br label %436

436:                                              ; preds = %435
  br label %437

437:                                              ; preds = %436
  br label %438

438:                                              ; preds = %437
  br label %439

439:                                              ; preds = %438
  %440 = load i64, ptr %12, align 8, !tbaa !18
  store i64 %440, ptr %4, align 8
  store i32 1, ptr %9, align 4
  br label %442

441:                                              ; preds = %421
  store i32 0, ptr %9, align 4
  br label %442

442:                                              ; preds = %441, %439
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #3
  %443 = load i32, ptr %9, align 4
  switch i32 %443, label %1079 [
    i32 0, label %444
    i32 1, label %1077
  ]

444:                                              ; preds = %442
  br label %445

445:                                              ; preds = %444
  %446 = load i32, ptr %7, align 4, !tbaa !9
  %447 = load ptr, ptr %5, align 8, !tbaa !5
  %448 = getelementptr inbounds %struct.ZSTD_CCtx_params_s, ptr %447, i32 0, i32 9
  store i32 %446, ptr %448, align 4, !tbaa !33
  %449 = load ptr, ptr %5, align 8, !tbaa !5
  %450 = getelementptr inbounds %struct.ZSTD_CCtx_params_s, ptr %449, i32 0, i32 9
  %451 = load i32, ptr %450, align 4, !tbaa !33
  %452 = sext i32 %451 to i64
  store i64 %452, ptr %4, align 8
  br label %1077

453:                                              ; preds = %17
  %454 = load i32, ptr %7, align 4, !tbaa !9
  %455 = icmp ne i32 %454, 0
  br i1 %455, label %456, label %460

456:                                              ; preds = %453
  %457 = load i32, ptr %7, align 4, !tbaa !9
  %458 = icmp slt i32 %457, 524288
  br i1 %458, label %459, label %460

459:                                              ; preds = %456
  store i32 524288, ptr %7, align 4, !tbaa !9
  br label %460

460:                                              ; preds = %459, %456, %453
  br label %461

461:                                              ; preds = %460
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #3
  %462 = load i32, ptr %6, align 4, !tbaa !9
  %463 = call i64 @ZSTD_cParam_clampBounds(i32 noundef %462, ptr noundef %7)
  store i64 %463, ptr %13, align 8, !tbaa !18
  %464 = load i64, ptr %13, align 8, !tbaa !18
  %465 = call i32 @ERR_isError(i64 noundef %464)
  %466 = icmp ne i32 %465, 0
  br i1 %466, label %467, label %481

467:                                              ; preds = %461
  br label %468

468:                                              ; preds = %467
  br label %469

469:                                              ; preds = %468
  br label %470

470:                                              ; preds = %469
  br label %471

471:                                              ; preds = %470
  br label %472

472:                                              ; preds = %471
  br label %473

473:                                              ; preds = %472
  br label %474

474:                                              ; preds = %473
  br label %475

475:                                              ; preds = %474
  br label %476

476:                                              ; preds = %475
  br label %477

477:                                              ; preds = %476
  br label %478

478:                                              ; preds = %477
  br label %479

479:                                              ; preds = %478
  %480 = load i64, ptr %13, align 8, !tbaa !18
  store i64 %480, ptr %4, align 8
  store i32 1, ptr %9, align 4
  br label %482

481:                                              ; preds = %461
  store i32 0, ptr %9, align 4
  br label %482

482:                                              ; preds = %481, %479
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #3
  %483 = load i32, ptr %9, align 4
  switch i32 %483, label %1079 [
    i32 0, label %484
    i32 1, label %1077
  ]

484:                                              ; preds = %482
  br label %485

485:                                              ; preds = %484
  %486 = load i32, ptr %7, align 4, !tbaa !9
  %487 = sext i32 %486 to i64
  %488 = load ptr, ptr %5, align 8, !tbaa !5
  %489 = getelementptr inbounds %struct.ZSTD_CCtx_params_s, ptr %488, i32 0, i32 10
  store i64 %487, ptr %489, align 8, !tbaa !34
  %490 = load ptr, ptr %5, align 8, !tbaa !5
  %491 = getelementptr inbounds %struct.ZSTD_CCtx_params_s, ptr %490, i32 0, i32 10
  %492 = load i64, ptr %491, align 8, !tbaa !34
  store i64 %492, ptr %4, align 8
  br label %1077

493:                                              ; preds = %17
  br label %494

494:                                              ; preds = %493
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #3
  %495 = call i64 @ZSTD_cParam_clampBounds(i32 noundef 402, ptr noundef %7)
  store i64 %495, ptr %14, align 8, !tbaa !18
  %496 = load i64, ptr %14, align 8, !tbaa !18
  %497 = call i32 @ERR_isError(i64 noundef %496)
  %498 = icmp ne i32 %497, 0
  br i1 %498, label %499, label %513

499:                                              ; preds = %494
  br label %500

500:                                              ; preds = %499
  br label %501

501:                                              ; preds = %500
  br label %502

502:                                              ; preds = %501
  br label %503

503:                                              ; preds = %502
  br label %504

504:                                              ; preds = %503
  br label %505

505:                                              ; preds = %504
  br label %506

506:                                              ; preds = %505
  br label %507

507:                                              ; preds = %506
  br label %508

508:                                              ; preds = %507
  br label %509

509:                                              ; preds = %508
  br label %510

510:                                              ; preds = %509
  br label %511

511:                                              ; preds = %510
  %512 = load i64, ptr %14, align 8, !tbaa !18
  store i64 %512, ptr %4, align 8
  store i32 1, ptr %9, align 4
  br label %514

513:                                              ; preds = %494
  store i32 0, ptr %9, align 4
  br label %514

514:                                              ; preds = %513, %511
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #3
  %515 = load i32, ptr %9, align 4
  switch i32 %515, label %1079 [
    i32 0, label %516
    i32 1, label %1077
  ]

516:                                              ; preds = %514
  br label %517

517:                                              ; preds = %516
  %518 = load i32, ptr %7, align 4, !tbaa !9
  %519 = load ptr, ptr %5, align 8, !tbaa !5
  %520 = getelementptr inbounds %struct.ZSTD_CCtx_params_s, ptr %519, i32 0, i32 11
  store i32 %518, ptr %520, align 8, !tbaa !35
  %521 = load ptr, ptr %5, align 8, !tbaa !5
  %522 = getelementptr inbounds %struct.ZSTD_CCtx_params_s, ptr %521, i32 0, i32 11
  %523 = load i32, ptr %522, align 8, !tbaa !35
  %524 = sext i32 %523 to i64
  store i64 %524, ptr %4, align 8
  br label %1077

525:                                              ; preds = %17
  br label %526

526:                                              ; preds = %525
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #3
  %527 = call i64 @ZSTD_cParam_clampBounds(i32 noundef 402, ptr noundef %7)
  store i64 %527, ptr %15, align 8, !tbaa !18
  %528 = load i64, ptr %15, align 8, !tbaa !18
  %529 = call i32 @ERR_isError(i64 noundef %528)
  %530 = icmp ne i32 %529, 0
  br i1 %530, label %531, label %545

531:                                              ; preds = %526
  br label %532

532:                                              ; preds = %531
  br label %533

533:                                              ; preds = %532
  br label %534

534:                                              ; preds = %533
  br label %535

535:                                              ; preds = %534
  br label %536

536:                                              ; preds = %535
  br label %537

537:                                              ; preds = %536
  br label %538

538:                                              ; preds = %537
  br label %539

539:                                              ; preds = %538
  br label %540

540:                                              ; preds = %539
  br label %541

541:                                              ; preds = %540
  br label %542

542:                                              ; preds = %541
  br label %543

543:                                              ; preds = %542
  %544 = load i64, ptr %15, align 8, !tbaa !18
  store i64 %544, ptr %4, align 8
  store i32 1, ptr %9, align 4
  br label %546

545:                                              ; preds = %526
  store i32 0, ptr %9, align 4
  br label %546

546:                                              ; preds = %545, %543
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #3
  %547 = load i32, ptr %9, align 4
  switch i32 %547, label %1079 [
    i32 0, label %548
    i32 1, label %1077
  ]

548:                                              ; preds = %546
  br label %549

549:                                              ; preds = %548
  %550 = load i32, ptr %7, align 4, !tbaa !9
  %551 = load ptr, ptr %5, align 8, !tbaa !5
  %552 = getelementptr inbounds %struct.ZSTD_CCtx_params_s, ptr %551, i32 0, i32 12
  store i32 %550, ptr %552, align 4, !tbaa !36
  %553 = load ptr, ptr %5, align 8, !tbaa !5
  %554 = getelementptr inbounds %struct.ZSTD_CCtx_params_s, ptr %553, i32 0, i32 12
  %555 = load i32, ptr %554, align 4, !tbaa !36
  %556 = sext i32 %555 to i64
  store i64 %556, ptr %4, align 8
  br label %1077

557:                                              ; preds = %17
  %558 = load i32, ptr %7, align 4, !tbaa !9
  %559 = icmp ne i32 %558, 0
  %560 = zext i1 %559 to i32
  %561 = load ptr, ptr %5, align 8, !tbaa !5
  %562 = getelementptr inbounds %struct.ZSTD_CCtx_params_s, ptr %561, i32 0, i32 14
  store i32 %560, ptr %562, align 8, !tbaa !37
  %563 = load ptr, ptr %5, align 8, !tbaa !5
  %564 = getelementptr inbounds %struct.ZSTD_CCtx_params_s, ptr %563, i32 0, i32 14
  %565 = load i32, ptr %564, align 8, !tbaa !37
  %566 = sext i32 %565 to i64
  store i64 %566, ptr %4, align 8
  br label %1077

567:                                              ; preds = %17
  br label %568

568:                                              ; preds = %567
  br label %569

569:                                              ; preds = %568
  %570 = load i32, ptr %7, align 4, !tbaa !9
  %571 = call i32 @ZSTD_cParam_withinBounds(i32 noundef 160, i32 noundef %570)
  %572 = icmp ne i32 %571, 0
  br i1 %572, label %582, label %573

573:                                              ; preds = %569
  br label %574

574:                                              ; preds = %573
  br label %575

575:                                              ; preds = %574
  br label %576

576:                                              ; preds = %575
  br label %577

577:                                              ; preds = %576
  br label %578

578:                                              ; preds = %577
  br label %579

579:                                              ; preds = %578
  br label %580

580:                                              ; preds = %579
  br label %581

581:                                              ; preds = %580
  store i64 -42, ptr %4, align 8
  br label %1077

582:                                              ; preds = %569
  br label %583

583:                                              ; preds = %582
  br label %584

584:                                              ; preds = %583
  %585 = load i32, ptr %7, align 4, !tbaa !9
  %586 = load ptr, ptr %5, align 8, !tbaa !5
  %587 = getelementptr inbounds %struct.ZSTD_CCtx_params_s, ptr %586, i32 0, i32 13
  %588 = getelementptr inbounds %struct.ldmParams_t, ptr %587, i32 0, i32 0
  store i32 %585, ptr %588, align 8, !tbaa !38
  %589 = load ptr, ptr %5, align 8, !tbaa !5
  %590 = getelementptr inbounds %struct.ZSTD_CCtx_params_s, ptr %589, i32 0, i32 13
  %591 = getelementptr inbounds %struct.ldmParams_t, ptr %590, i32 0, i32 0
  %592 = load i32, ptr %591, align 8, !tbaa !38
  %593 = zext i32 %592 to i64
  store i64 %593, ptr %4, align 8
  br label %1077

594:                                              ; preds = %17
  %595 = load i32, ptr %7, align 4, !tbaa !9
  %596 = icmp ne i32 %595, 0
  br i1 %596, label %597, label %615

597:                                              ; preds = %594
  br label %598

598:                                              ; preds = %597
  br label %599

599:                                              ; preds = %598
  %600 = load i32, ptr %7, align 4, !tbaa !9
  %601 = call i32 @ZSTD_cParam_withinBounds(i32 noundef 161, i32 noundef %600)
  %602 = icmp ne i32 %601, 0
  br i1 %602, label %612, label %603

603:                                              ; preds = %599
  br label %604

604:                                              ; preds = %603
  br label %605

605:                                              ; preds = %604
  br label %606

606:                                              ; preds = %605
  br label %607

607:                                              ; preds = %606
  br label %608

608:                                              ; preds = %607
  br label %609

609:                                              ; preds = %608
  br label %610

610:                                              ; preds = %609
  br label %611

611:                                              ; preds = %610
  store i64 -42, ptr %4, align 8
  br label %1077

612:                                              ; preds = %599
  br label %613

613:                                              ; preds = %612
  br label %614

614:                                              ; preds = %613
  br label %615

615:                                              ; preds = %614, %594
  %616 = load i32, ptr %7, align 4, !tbaa !9
  %617 = load ptr, ptr %5, align 8, !tbaa !5
  %618 = getelementptr inbounds %struct.ZSTD_CCtx_params_s, ptr %617, i32 0, i32 13
  %619 = getelementptr inbounds %struct.ldmParams_t, ptr %618, i32 0, i32 1
  store i32 %616, ptr %619, align 4, !tbaa !39
  %620 = load ptr, ptr %5, align 8, !tbaa !5
  %621 = getelementptr inbounds %struct.ZSTD_CCtx_params_s, ptr %620, i32 0, i32 13
  %622 = getelementptr inbounds %struct.ldmParams_t, ptr %621, i32 0, i32 1
  %623 = load i32, ptr %622, align 4, !tbaa !39
  %624 = zext i32 %623 to i64
  store i64 %624, ptr %4, align 8
  br label %1077

625:                                              ; preds = %17
  %626 = load i32, ptr %7, align 4, !tbaa !9
  %627 = icmp ne i32 %626, 0
  br i1 %627, label %628, label %646

628:                                              ; preds = %625
  br label %629

629:                                              ; preds = %628
  br label %630

630:                                              ; preds = %629
  %631 = load i32, ptr %7, align 4, !tbaa !9
  %632 = call i32 @ZSTD_cParam_withinBounds(i32 noundef 162, i32 noundef %631)
  %633 = icmp ne i32 %632, 0
  br i1 %633, label %643, label %634

634:                                              ; preds = %630
  br label %635

635:                                              ; preds = %634
  br label %636

636:                                              ; preds = %635
  br label %637

637:                                              ; preds = %636
  br label %638

638:                                              ; preds = %637
  br label %639

639:                                              ; preds = %638
  br label %640

640:                                              ; preds = %639
  br label %641

641:                                              ; preds = %640
  br label %642

642:                                              ; preds = %641
  store i64 -42, ptr %4, align 8
  br label %1077

643:                                              ; preds = %630
  br label %644

644:                                              ; preds = %643
  br label %645

645:                                              ; preds = %644
  br label %646

646:                                              ; preds = %645, %625
  %647 = load i32, ptr %7, align 4, !tbaa !9
  %648 = load ptr, ptr %5, align 8, !tbaa !5
  %649 = getelementptr inbounds %struct.ZSTD_CCtx_params_s, ptr %648, i32 0, i32 13
  %650 = getelementptr inbounds %struct.ldmParams_t, ptr %649, i32 0, i32 3
  store i32 %647, ptr %650, align 4, !tbaa !40
  %651 = load ptr, ptr %5, align 8, !tbaa !5
  %652 = getelementptr inbounds %struct.ZSTD_CCtx_params_s, ptr %651, i32 0, i32 13
  %653 = getelementptr inbounds %struct.ldmParams_t, ptr %652, i32 0, i32 3
  %654 = load i32, ptr %653, align 4, !tbaa !40
  %655 = zext i32 %654 to i64
  store i64 %655, ptr %4, align 8
  br label %1077

656:                                              ; preds = %17
  %657 = load i32, ptr %7, align 4, !tbaa !9
  %658 = icmp ne i32 %657, 0
  br i1 %658, label %659, label %677

659:                                              ; preds = %656
  br label %660

660:                                              ; preds = %659
  br label %661

661:                                              ; preds = %660
  %662 = load i32, ptr %7, align 4, !tbaa !9
  %663 = call i32 @ZSTD_cParam_withinBounds(i32 noundef 163, i32 noundef %662)
  %664 = icmp ne i32 %663, 0
  br i1 %664, label %674, label %665

665:                                              ; preds = %661
  br label %666

666:                                              ; preds = %665
  br label %667

667:                                              ; preds = %666
  br label %668

668:                                              ; preds = %667
  br label %669

669:                                              ; preds = %668
  br label %670

670:                                              ; preds = %669
  br label %671

671:                                              ; preds = %670
  br label %672

672:                                              ; preds = %671
  br label %673

673:                                              ; preds = %672
  store i64 -42, ptr %4, align 8
  br label %1077

674:                                              ; preds = %661
  br label %675

675:                                              ; preds = %674
  br label %676

676:                                              ; preds = %675
  br label %677

677:                                              ; preds = %676, %656
  %678 = load i32, ptr %7, align 4, !tbaa !9
  %679 = load ptr, ptr %5, align 8, !tbaa !5
  %680 = getelementptr inbounds %struct.ZSTD_CCtx_params_s, ptr %679, i32 0, i32 13
  %681 = getelementptr inbounds %struct.ldmParams_t, ptr %680, i32 0, i32 2
  store i32 %678, ptr %681, align 8, !tbaa !41
  %682 = load ptr, ptr %5, align 8, !tbaa !5
  %683 = getelementptr inbounds %struct.ZSTD_CCtx_params_s, ptr %682, i32 0, i32 13
  %684 = getelementptr inbounds %struct.ldmParams_t, ptr %683, i32 0, i32 2
  %685 = load i32, ptr %684, align 8, !tbaa !41
  %686 = zext i32 %685 to i64
  store i64 %686, ptr %4, align 8
  br label %1077

687:                                              ; preds = %17
  %688 = load i32, ptr %7, align 4, !tbaa !9
  %689 = icmp ne i32 %688, 0
  br i1 %689, label %690, label %708

690:                                              ; preds = %687
  br label %691

691:                                              ; preds = %690
  br label %692

692:                                              ; preds = %691
  %693 = load i32, ptr %7, align 4, !tbaa !9
  %694 = call i32 @ZSTD_cParam_withinBounds(i32 noundef 164, i32 noundef %693)
  %695 = icmp ne i32 %694, 0
  br i1 %695, label %705, label %696

696:                                              ; preds = %692
  br label %697

697:                                              ; preds = %696
  br label %698

698:                                              ; preds = %697
  br label %699

699:                                              ; preds = %698
  br label %700

700:                                              ; preds = %699
  br label %701

701:                                              ; preds = %700
  br label %702

702:                                              ; preds = %701
  br label %703

703:                                              ; preds = %702
  br label %704

704:                                              ; preds = %703
  store i64 -42, ptr %4, align 8
  br label %1077

705:                                              ; preds = %692
  br label %706

706:                                              ; preds = %705
  br label %707

707:                                              ; preds = %706
  br label %708

708:                                              ; preds = %707, %687
  %709 = load i32, ptr %7, align 4, !tbaa !9
  %710 = load ptr, ptr %5, align 8, !tbaa !5
  %711 = getelementptr inbounds %struct.ZSTD_CCtx_params_s, ptr %710, i32 0, i32 13
  %712 = getelementptr inbounds %struct.ldmParams_t, ptr %711, i32 0, i32 4
  store i32 %709, ptr %712, align 8, !tbaa !42
  %713 = load ptr, ptr %5, align 8, !tbaa !5
  %714 = getelementptr inbounds %struct.ZSTD_CCtx_params_s, ptr %713, i32 0, i32 13
  %715 = getelementptr inbounds %struct.ldmParams_t, ptr %714, i32 0, i32 4
  %716 = load i32, ptr %715, align 8, !tbaa !42
  %717 = zext i32 %716 to i64
  store i64 %717, ptr %4, align 8
  br label %1077

718:                                              ; preds = %17
  %719 = load i32, ptr %7, align 4, !tbaa !9
  %720 = icmp ne i32 %719, 0
  br i1 %720, label %721, label %746

721:                                              ; preds = %718
  %722 = load i32, ptr %7, align 4, !tbaa !9
  %723 = icmp sgt i32 %722, 1340
  br i1 %723, label %724, label %726

724:                                              ; preds = %721
  %725 = load i32, ptr %7, align 4, !tbaa !9
  br label %727

726:                                              ; preds = %721
  br label %727

727:                                              ; preds = %726, %724
  %728 = phi i32 [ %725, %724 ], [ 1340, %726 ]
  store i32 %728, ptr %7, align 4, !tbaa !9
  br label %729

729:                                              ; preds = %727
  br label %730

730:                                              ; preds = %729
  %731 = load i32, ptr %7, align 4, !tbaa !9
  %732 = call i32 @ZSTD_cParam_withinBounds(i32 noundef 130, i32 noundef %731)
  %733 = icmp ne i32 %732, 0
  br i1 %733, label %743, label %734

734:                                              ; preds = %730
  br label %735

735:                                              ; preds = %734
  br label %736

736:                                              ; preds = %735
  br label %737

737:                                              ; preds = %736
  br label %738

738:                                              ; preds = %737
  br label %739

739:                                              ; preds = %738
  br label %740

740:                                              ; preds = %739
  br label %741

741:                                              ; preds = %740
  br label %742

742:                                              ; preds = %741
  store i64 -42, ptr %4, align 8
  br label %1077

743:                                              ; preds = %730
  br label %744

744:                                              ; preds = %743
  br label %745

745:                                              ; preds = %744
  br label %746

746:                                              ; preds = %745, %718
  %747 = load i32, ptr %7, align 4, !tbaa !9
  %748 = zext i32 %747 to i64
  %749 = load ptr, ptr %5, align 8, !tbaa !5
  %750 = getelementptr inbounds %struct.ZSTD_CCtx_params_s, ptr %749, i32 0, i32 5
  store i64 %748, ptr %750, align 8, !tbaa !43
  %751 = load ptr, ptr %5, align 8, !tbaa !5
  %752 = getelementptr inbounds %struct.ZSTD_CCtx_params_s, ptr %751, i32 0, i32 5
  %753 = load i64, ptr %752, align 8, !tbaa !43
  store i64 %753, ptr %4, align 8
  br label %1077

754:                                              ; preds = %17
  %755 = load i32, ptr %7, align 4, !tbaa !9
  %756 = icmp ne i32 %755, 0
  br i1 %756, label %757, label %775

757:                                              ; preds = %754
  br label %758

758:                                              ; preds = %757
  br label %759

759:                                              ; preds = %758
  %760 = load i32, ptr %7, align 4, !tbaa !9
  %761 = call i32 @ZSTD_cParam_withinBounds(i32 noundef 1004, i32 noundef %760)
  %762 = icmp ne i32 %761, 0
  br i1 %762, label %772, label %763

763:                                              ; preds = %759
  br label %764

764:                                              ; preds = %763
  br label %765

765:                                              ; preds = %764
  br label %766

766:                                              ; preds = %765
  br label %767

767:                                              ; preds = %766
  br label %768

768:                                              ; preds = %767
  br label %769

769:                                              ; preds = %768
  br label %770

770:                                              ; preds = %769
  br label %771

771:                                              ; preds = %770
  store i64 -42, ptr %4, align 8
  br label %1077

772:                                              ; preds = %759
  br label %773

773:                                              ; preds = %772
  br label %774

774:                                              ; preds = %773
  br label %775

775:                                              ; preds = %774, %754
  %776 = load i32, ptr %7, align 4, !tbaa !9
  %777 = load ptr, ptr %5, align 8, !tbaa !5
  %778 = getelementptr inbounds %struct.ZSTD_CCtx_params_s, ptr %777, i32 0, i32 6
  store i32 %776, ptr %778, align 8, !tbaa !44
  %779 = load ptr, ptr %5, align 8, !tbaa !5
  %780 = getelementptr inbounds %struct.ZSTD_CCtx_params_s, ptr %779, i32 0, i32 6
  %781 = load i32, ptr %780, align 8, !tbaa !44
  %782 = sext i32 %781 to i64
  store i64 %782, ptr %4, align 8
  br label %1077

783:                                              ; preds = %17
  br label %784

784:                                              ; preds = %783
  br label %785

785:                                              ; preds = %784
  %786 = load i32, ptr %7, align 4, !tbaa !9
  %787 = call i32 @ZSTD_cParam_withinBounds(i32 noundef 1006, i32 noundef %786)
  %788 = icmp ne i32 %787, 0
  br i1 %788, label %798, label %789

789:                                              ; preds = %785
  br label %790

790:                                              ; preds = %789
  br label %791

791:                                              ; preds = %790
  br label %792

792:                                              ; preds = %791
  br label %793

793:                                              ; preds = %792
  br label %794

794:                                              ; preds = %793
  br label %795

795:                                              ; preds = %794
  br label %796

796:                                              ; preds = %795
  br label %797

797:                                              ; preds = %796
  store i64 -42, ptr %4, align 8
  br label %1077

798:                                              ; preds = %785
  br label %799

799:                                              ; preds = %798
  br label %800

800:                                              ; preds = %799
  %801 = load i32, ptr %7, align 4, !tbaa !9
  %802 = load ptr, ptr %5, align 8, !tbaa !5
  %803 = getelementptr inbounds %struct.ZSTD_CCtx_params_s, ptr %802, i32 0, i32 15
  store i32 %801, ptr %803, align 4, !tbaa !45
  %804 = load ptr, ptr %5, align 8, !tbaa !5
  %805 = getelementptr inbounds %struct.ZSTD_CCtx_params_s, ptr %804, i32 0, i32 15
  %806 = load i32, ptr %805, align 4, !tbaa !45
  %807 = zext i32 %806 to i64
  store i64 %807, ptr %4, align 8
  br label %1077

808:                                              ; preds = %17
  br label %809

809:                                              ; preds = %808
  br label %810

810:                                              ; preds = %809
  %811 = load i32, ptr %7, align 4, !tbaa !9
  %812 = call i32 @ZSTD_cParam_withinBounds(i32 noundef 1007, i32 noundef %811)
  %813 = icmp ne i32 %812, 0
  br i1 %813, label %823, label %814

814:                                              ; preds = %810
  br label %815

815:                                              ; preds = %814
  br label %816

816:                                              ; preds = %815
  br label %817

817:                                              ; preds = %816
  br label %818

818:                                              ; preds = %817
  br label %819

819:                                              ; preds = %818
  br label %820

820:                                              ; preds = %819
  br label %821

821:                                              ; preds = %820
  br label %822

822:                                              ; preds = %821
  store i64 -42, ptr %4, align 8
  br label %1077

823:                                              ; preds = %810
  br label %824

824:                                              ; preds = %823
  br label %825

825:                                              ; preds = %824
  %826 = load i32, ptr %7, align 4, !tbaa !9
  %827 = load ptr, ptr %5, align 8, !tbaa !5
  %828 = getelementptr inbounds %struct.ZSTD_CCtx_params_s, ptr %827, i32 0, i32 16
  store i32 %826, ptr %828, align 8, !tbaa !46
  %829 = load ptr, ptr %5, align 8, !tbaa !5
  %830 = getelementptr inbounds %struct.ZSTD_CCtx_params_s, ptr %829, i32 0, i32 16
  %831 = load i32, ptr %830, align 8, !tbaa !46
  %832 = zext i32 %831 to i64
  store i64 %832, ptr %4, align 8
  br label %1077

833:                                              ; preds = %17
  br label %834

834:                                              ; preds = %833
  br label %835

835:                                              ; preds = %834
  %836 = load i32, ptr %7, align 4, !tbaa !9
  %837 = call i32 @ZSTD_cParam_withinBounds(i32 noundef 1008, i32 noundef %836)
  %838 = icmp ne i32 %837, 0
  br i1 %838, label %848, label %839

839:                                              ; preds = %835
  br label %840

840:                                              ; preds = %839
  br label %841

841:                                              ; preds = %840
  br label %842

842:                                              ; preds = %841
  br label %843

843:                                              ; preds = %842
  br label %844

844:                                              ; preds = %843
  br label %845

845:                                              ; preds = %844
  br label %846

846:                                              ; preds = %845
  br label %847

847:                                              ; preds = %846
  store i64 -42, ptr %4, align 8
  br label %1077

848:                                              ; preds = %835
  br label %849

849:                                              ; preds = %848
  br label %850

850:                                              ; preds = %849
  %851 = load i32, ptr %7, align 4, !tbaa !9
  %852 = load ptr, ptr %5, align 8, !tbaa !5
  %853 = getelementptr inbounds %struct.ZSTD_CCtx_params_s, ptr %852, i32 0, i32 17
  store i32 %851, ptr %853, align 4, !tbaa !47
  %854 = load ptr, ptr %5, align 8, !tbaa !5
  %855 = getelementptr inbounds %struct.ZSTD_CCtx_params_s, ptr %854, i32 0, i32 17
  %856 = load i32, ptr %855, align 4, !tbaa !47
  %857 = zext i32 %856 to i64
  store i64 %857, ptr %4, align 8
  br label %1077

858:                                              ; preds = %17
  br label %859

859:                                              ; preds = %858
  br label %860

860:                                              ; preds = %859
  %861 = load i32, ptr %7, align 4, !tbaa !9
  %862 = call i32 @ZSTD_cParam_withinBounds(i32 noundef 1009, i32 noundef %861)
  %863 = icmp ne i32 %862, 0
  br i1 %863, label %873, label %864

864:                                              ; preds = %860
  br label %865

865:                                              ; preds = %864
  br label %866

866:                                              ; preds = %865
  br label %867

867:                                              ; preds = %866
  br label %868

868:                                              ; preds = %867
  br label %869

869:                                              ; preds = %868
  br label %870

870:                                              ; preds = %869
  br label %871

871:                                              ; preds = %870
  br label %872

872:                                              ; preds = %871
  store i64 -42, ptr %4, align 8
  br label %1077

873:                                              ; preds = %860
  br label %874

874:                                              ; preds = %873
  br label %875

875:                                              ; preds = %874
  %876 = load i32, ptr %7, align 4, !tbaa !9
  %877 = load ptr, ptr %5, align 8, !tbaa !5
  %878 = getelementptr inbounds %struct.ZSTD_CCtx_params_s, ptr %877, i32 0, i32 18
  store i32 %876, ptr %878, align 8, !tbaa !48
  %879 = load ptr, ptr %5, align 8, !tbaa !5
  %880 = getelementptr inbounds %struct.ZSTD_CCtx_params_s, ptr %879, i32 0, i32 18
  %881 = load i32, ptr %880, align 8, !tbaa !48
  %882 = sext i32 %881 to i64
  store i64 %882, ptr %4, align 8
  br label %1077

883:                                              ; preds = %17
  br label %884

884:                                              ; preds = %883
  br label %885

885:                                              ; preds = %884
  %886 = load i32, ptr %7, align 4, !tbaa !9
  %887 = call i32 @ZSTD_cParam_withinBounds(i32 noundef 1010, i32 noundef %886)
  %888 = icmp ne i32 %887, 0
  br i1 %888, label %898, label %889

889:                                              ; preds = %885
  br label %890

890:                                              ; preds = %889
  br label %891

891:                                              ; preds = %890
  br label %892

892:                                              ; preds = %891
  br label %893

893:                                              ; preds = %892
  br label %894

894:                                              ; preds = %893
  br label %895

895:                                              ; preds = %894
  br label %896

896:                                              ; preds = %895
  br label %897

897:                                              ; preds = %896
  store i64 -42, ptr %4, align 8
  br label %1077

898:                                              ; preds = %885
  br label %899

899:                                              ; preds = %898
  br label %900

900:                                              ; preds = %899
  %901 = load i32, ptr %7, align 4, !tbaa !9
  %902 = load ptr, ptr %5, align 8, !tbaa !5
  %903 = getelementptr inbounds %struct.ZSTD_CCtx_params_s, ptr %902, i32 0, i32 19
  store i32 %901, ptr %903, align 4, !tbaa !49
  %904 = load ptr, ptr %5, align 8, !tbaa !5
  %905 = getelementptr inbounds %struct.ZSTD_CCtx_params_s, ptr %904, i32 0, i32 19
  %906 = load i32, ptr %905, align 4, !tbaa !49
  %907 = zext i32 %906 to i64
  store i64 %907, ptr %4, align 8
  br label %1077

908:                                              ; preds = %17
  br label %909

909:                                              ; preds = %908
  br label %910

910:                                              ; preds = %909
  %911 = load i32, ptr %7, align 4, !tbaa !9
  %912 = call i32 @ZSTD_cParam_withinBounds(i32 noundef 1011, i32 noundef %911)
  %913 = icmp ne i32 %912, 0
  br i1 %913, label %923, label %914

914:                                              ; preds = %910
  br label %915

915:                                              ; preds = %914
  br label %916

916:                                              ; preds = %915
  br label %917

917:                                              ; preds = %916
  br label %918

918:                                              ; preds = %917
  br label %919

919:                                              ; preds = %918
  br label %920

920:                                              ; preds = %919
  br label %921

921:                                              ; preds = %920
  br label %922

922:                                              ; preds = %921
  store i64 -42, ptr %4, align 8
  br label %1077

923:                                              ; preds = %910
  br label %924

924:                                              ; preds = %923
  br label %925

925:                                              ; preds = %924
  %926 = load i32, ptr %7, align 4, !tbaa !9
  %927 = load ptr, ptr %5, align 8, !tbaa !5
  %928 = getelementptr inbounds %struct.ZSTD_CCtx_params_s, ptr %927, i32 0, i32 20
  store i32 %926, ptr %928, align 8, !tbaa !50
  %929 = load ptr, ptr %5, align 8, !tbaa !5
  %930 = getelementptr inbounds %struct.ZSTD_CCtx_params_s, ptr %929, i32 0, i32 20
  %931 = load i32, ptr %930, align 8, !tbaa !50
  %932 = zext i32 %931 to i64
  store i64 %932, ptr %4, align 8
  br label %1077

933:                                              ; preds = %17
  br label %934

934:                                              ; preds = %933
  br label %935

935:                                              ; preds = %934
  %936 = load i32, ptr %7, align 4, !tbaa !9
  %937 = call i32 @ZSTD_cParam_withinBounds(i32 noundef 1012, i32 noundef %936)
  %938 = icmp ne i32 %937, 0
  br i1 %938, label %948, label %939

939:                                              ; preds = %935
  br label %940

940:                                              ; preds = %939
  br label %941

941:                                              ; preds = %940
  br label %942

942:                                              ; preds = %941
  br label %943

943:                                              ; preds = %942
  br label %944

944:                                              ; preds = %943
  br label %945

945:                                              ; preds = %944
  br label %946

946:                                              ; preds = %945
  br label %947

947:                                              ; preds = %946
  store i64 -42, ptr %4, align 8
  br label %1077

948:                                              ; preds = %935
  br label %949

949:                                              ; preds = %948
  br label %950

950:                                              ; preds = %949
  %951 = load i32, ptr %7, align 4, !tbaa !9
  %952 = icmp ne i32 %951, 0
  %953 = xor i1 %952, true
  %954 = xor i1 %953, true
  %955 = zext i1 %954 to i32
  %956 = load ptr, ptr %5, align 8, !tbaa !5
  %957 = getelementptr inbounds %struct.ZSTD_CCtx_params_s, ptr %956, i32 0, i32 21
  store i32 %955, ptr %957, align 4, !tbaa !51
  %958 = load ptr, ptr %5, align 8, !tbaa !5
  %959 = getelementptr inbounds %struct.ZSTD_CCtx_params_s, ptr %958, i32 0, i32 21
  %960 = load i32, ptr %959, align 4, !tbaa !51
  %961 = sext i32 %960 to i64
  store i64 %961, ptr %4, align 8
  br label %1077

962:                                              ; preds = %17
  br label %963

963:                                              ; preds = %962
  br label %964

964:                                              ; preds = %963
  %965 = load i32, ptr %7, align 4, !tbaa !9
  %966 = call i32 @ZSTD_cParam_withinBounds(i32 noundef 1013, i32 noundef %965)
  %967 = icmp ne i32 %966, 0
  br i1 %967, label %977, label %968

968:                                              ; preds = %964
  br label %969

969:                                              ; preds = %968
  br label %970

970:                                              ; preds = %969
  br label %971

971:                                              ; preds = %970
  br label %972

972:                                              ; preds = %971
  br label %973

973:                                              ; preds = %972
  br label %974

974:                                              ; preds = %973
  br label %975

975:                                              ; preds = %974
  br label %976

976:                                              ; preds = %975
  store i64 -42, ptr %4, align 8
  br label %1077

977:                                              ; preds = %964
  br label %978

978:                                              ; preds = %977
  br label %979

979:                                              ; preds = %978
  %980 = load i32, ptr %7, align 4, !tbaa !9
  %981 = load ptr, ptr %5, align 8, !tbaa !5
  %982 = getelementptr inbounds %struct.ZSTD_CCtx_params_s, ptr %981, i32 0, i32 23
  store i32 %980, ptr %982, align 8, !tbaa !52
  %983 = load ptr, ptr %5, align 8, !tbaa !5
  %984 = getelementptr inbounds %struct.ZSTD_CCtx_params_s, ptr %983, i32 0, i32 23
  %985 = load i32, ptr %984, align 8, !tbaa !52
  %986 = zext i32 %985 to i64
  store i64 %986, ptr %4, align 8
  br label %1077

987:                                              ; preds = %17
  br label %988

988:                                              ; preds = %987
  br label %989

989:                                              ; preds = %988
  %990 = load i32, ptr %7, align 4, !tbaa !9
  %991 = call i32 @ZSTD_cParam_withinBounds(i32 noundef 1014, i32 noundef %990)
  %992 = icmp ne i32 %991, 0
  br i1 %992, label %1002, label %993

993:                                              ; preds = %989
  br label %994

994:                                              ; preds = %993
  br label %995

995:                                              ; preds = %994
  br label %996

996:                                              ; preds = %995
  br label %997

997:                                              ; preds = %996
  br label %998

998:                                              ; preds = %997
  br label %999

999:                                              ; preds = %998
  br label %1000

1000:                                             ; preds = %999
  br label %1001

1001:                                             ; preds = %1000
  store i64 -42, ptr %4, align 8
  br label %1077

1002:                                             ; preds = %989
  br label %1003

1003:                                             ; preds = %1002
  br label %1004

1004:                                             ; preds = %1003
  %1005 = load i32, ptr %7, align 4, !tbaa !9
  %1006 = load ptr, ptr %5, align 8, !tbaa !5
  %1007 = getelementptr inbounds %struct.ZSTD_CCtx_params_s, ptr %1006, i32 0, i32 24
  store i32 %1005, ptr %1007, align 4, !tbaa !53
  %1008 = load ptr, ptr %5, align 8, !tbaa !5
  %1009 = getelementptr inbounds %struct.ZSTD_CCtx_params_s, ptr %1008, i32 0, i32 24
  %1010 = load i32, ptr %1009, align 4, !tbaa !53
  %1011 = sext i32 %1010 to i64
  store i64 %1011, ptr %4, align 8
  br label %1077

1012:                                             ; preds = %17
  %1013 = load i32, ptr %7, align 4, !tbaa !9
  %1014 = icmp ne i32 %1013, 0
  br i1 %1014, label %1015, label %1033

1015:                                             ; preds = %1012
  br label %1016

1016:                                             ; preds = %1015
  br label %1017

1017:                                             ; preds = %1016
  %1018 = load i32, ptr %7, align 4, !tbaa !9
  %1019 = call i32 @ZSTD_cParam_withinBounds(i32 noundef 1015, i32 noundef %1018)
  %1020 = icmp ne i32 %1019, 0
  br i1 %1020, label %1030, label %1021

1021:                                             ; preds = %1017
  br label %1022

1022:                                             ; preds = %1021
  br label %1023

1023:                                             ; preds = %1022
  br label %1024

1024:                                             ; preds = %1023
  br label %1025

1025:                                             ; preds = %1024
  br label %1026

1026:                                             ; preds = %1025
  br label %1027

1027:                                             ; preds = %1026
  br label %1028

1028:                                             ; preds = %1027
  br label %1029

1029:                                             ; preds = %1028
  store i64 -42, ptr %4, align 8
  br label %1077

1030:                                             ; preds = %1017
  br label %1031

1031:                                             ; preds = %1030
  br label %1032

1032:                                             ; preds = %1031
  br label %1033

1033:                                             ; preds = %1032, %1012
  %1034 = load i32, ptr %7, align 4, !tbaa !9
  %1035 = sext i32 %1034 to i64
  %1036 = load ptr, ptr %5, align 8, !tbaa !5
  %1037 = getelementptr inbounds %struct.ZSTD_CCtx_params_s, ptr %1036, i32 0, i32 27
  store i64 %1035, ptr %1037, align 8, !tbaa !54
  %1038 = load ptr, ptr %5, align 8, !tbaa !5
  %1039 = getelementptr inbounds %struct.ZSTD_CCtx_params_s, ptr %1038, i32 0, i32 27
  %1040 = load i64, ptr %1039, align 8, !tbaa !54
  store i64 %1040, ptr %4, align 8
  br label %1077

1041:                                             ; preds = %17
  br label %1042

1042:                                             ; preds = %1041
  br label %1043

1043:                                             ; preds = %1042
  %1044 = load i32, ptr %7, align 4, !tbaa !9
  %1045 = call i32 @ZSTD_cParam_withinBounds(i32 noundef 1016, i32 noundef %1044)
  %1046 = icmp ne i32 %1045, 0
  br i1 %1046, label %1056, label %1047

1047:                                             ; preds = %1043
  br label %1048

1048:                                             ; preds = %1047
  br label %1049

1049:                                             ; preds = %1048
  br label %1050

1050:                                             ; preds = %1049
  br label %1051

1051:                                             ; preds = %1050
  br label %1052

1052:                                             ; preds = %1051
  br label %1053

1053:                                             ; preds = %1052
  br label %1054

1054:                                             ; preds = %1053
  br label %1055

1055:                                             ; preds = %1054
  store i64 -42, ptr %4, align 8
  br label %1077

1056:                                             ; preds = %1043
  br label %1057

1057:                                             ; preds = %1056
  br label %1058

1058:                                             ; preds = %1057
  %1059 = load i32, ptr %7, align 4, !tbaa !9
  %1060 = load ptr, ptr %5, align 8, !tbaa !5
  %1061 = getelementptr inbounds %struct.ZSTD_CCtx_params_s, ptr %1060, i32 0, i32 28
  store i32 %1059, ptr %1061, align 8, !tbaa !55
  %1062 = load ptr, ptr %5, align 8, !tbaa !5
  %1063 = getelementptr inbounds %struct.ZSTD_CCtx_params_s, ptr %1062, i32 0, i32 28
  %1064 = load i32, ptr %1063, align 8, !tbaa !55
  %1065 = zext i32 %1064 to i64
  store i64 %1065, ptr %4, align 8
  br label %1077

1066:                                             ; preds = %17
  br label %1067

1067:                                             ; preds = %1066
  br label %1068

1068:                                             ; preds = %1067
  br label %1069

1069:                                             ; preds = %1068
  br label %1070

1070:                                             ; preds = %1069
  br label %1071

1071:                                             ; preds = %1070
  br label %1072

1072:                                             ; preds = %1071
  br label %1073

1073:                                             ; preds = %1072
  br label %1074

1074:                                             ; preds = %1073
  br label %1075

1075:                                             ; preds = %1074
  store i64 -40, ptr %4, align 8
  br label %1077

1076:                                             ; No predecessors!
  br label %1077

1077:                                             ; preds = %1076, %1075, %1058, %1055, %1033, %1029, %1004, %1001, %979, %976, %950, %947, %925, %922, %900, %897, %875, %872, %850, %847, %825, %822, %800, %797, %775, %771, %746, %742, %708, %704, %677, %673, %646, %642, %615, %611, %584, %581, %557, %549, %546, %517, %514, %485, %482, %445, %442, %419, %386, %344, %328, %314, %302, %290, %286, %259, %256, %232, %228, %204, %200, %173, %169, %142, %138, %111, %107, %89, %84, %66, %36, %33
  %1078 = load i64, ptr %4, align 8
  ret i64 %1078

1079:                                             ; preds = %546, %514, %482, %442, %66
  unreachable
}

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

; Function Attrs: nounwind uwtable
declare hidden i64 @ZSTD_cParam_clampBounds(i32 noundef, ptr noundef) #0

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"int", !7, i64 0}
!11 = !{!12, !10, i64 0}
!12 = !{!"ZSTD_CCtx_params_s", !10, i64 0, !13, i64 4, !14, i64 32, !10, i64 44, !10, i64 48, !15, i64 56, !10, i64 64, !10, i64 68, !10, i64 72, !10, i64 76, !15, i64 80, !10, i64 88, !10, i64 92, !16, i64 96, !10, i64 120, !10, i64 124, !10, i64 128, !10, i64 132, !10, i64 136, !10, i64 140, !10, i64 144, !10, i64 148, !17, i64 152, !10, i64 176, !10, i64 180, !6, i64 184, !6, i64 192, !15, i64 200, !10, i64 208}
!13 = !{!"", !10, i64 0, !10, i64 4, !10, i64 8, !10, i64 12, !10, i64 16, !10, i64 20, !10, i64 24}
!14 = !{!"", !10, i64 0, !10, i64 4, !10, i64 8}
!15 = !{!"long", !7, i64 0}
!16 = !{!"", !10, i64 0, !10, i64 4, !10, i64 8, !10, i64 12, !10, i64 16, !10, i64 20}
!17 = !{!"", !6, i64 0, !6, i64 8, !6, i64 16}
!18 = !{!15, !15, i64 0}
!19 = !{!12, !10, i64 44}
!20 = !{!12, !10, i64 4}
!21 = !{!12, !10, i64 12}
!22 = !{!12, !10, i64 8}
!23 = !{!12, !10, i64 16}
!24 = !{!12, !10, i64 20}
!25 = !{!12, !10, i64 24}
!26 = !{!12, !10, i64 28}
!27 = !{!12, !10, i64 32}
!28 = !{!12, !10, i64 36}
!29 = !{!12, !10, i64 40}
!30 = !{!12, !10, i64 48}
!31 = !{!12, !10, i64 68}
!32 = !{!12, !10, i64 72}
!33 = !{!12, !10, i64 76}
!34 = !{!12, !15, i64 80}
!35 = !{!12, !10, i64 88}
!36 = !{!12, !10, i64 92}
!37 = !{!12, !10, i64 120}
!38 = !{!12, !10, i64 96}
!39 = !{!12, !10, i64 100}
!40 = !{!12, !10, i64 108}
!41 = !{!12, !10, i64 104}
!42 = !{!12, !10, i64 112}
!43 = !{!12, !15, i64 56}
!44 = !{!12, !10, i64 64}
!45 = !{!12, !10, i64 124}
!46 = !{!12, !10, i64 128}
!47 = !{!12, !10, i64 132}
!48 = !{!12, !10, i64 136}
!49 = !{!12, !10, i64 140}
!50 = !{!12, !10, i64 144}
!51 = !{!12, !10, i64 148}
!52 = !{!12, !10, i64 176}
!53 = !{!12, !10, i64 180}
!54 = !{!12, !15, i64 200}
!55 = !{!12, !10, i64 208}


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

; Function Attrs: nounwind uwtable
declare hidden i32 @ERR_isError(i64 noundef) local_unnamed_addr #0

; Function Attrs: nounwind uwtable
define dso_local i64 @ZSTD_CCtxParams_setParameter(ptr nocapture noundef writeonly %0, i32 noundef %1, i32 noundef %2) local_unnamed_addr #0 {
  %4 = alloca i32, align 4
  store i32 %2, ptr %4, align 4, !tbaa !5
  switch i32 %1, label %226 [
    i32 10, label %5
    i32 100, label %9
    i32 101, label %16
    i32 102, label %22
    i32 103, label %28
    i32 104, label %34
    i32 105, label %40
    i32 106, label %46
    i32 107, label %51
    i32 200, label %57
    i32 201, label %62
    i32 202, label %67
    i32 1000, label %73
    i32 1001, label %78
    i32 1002, label %83
    i32 400, label %88
    i32 401, label %95
    i32 402, label %106
    i32 500, label %113
    i32 1005, label %120
    i32 160, label %125
    i32 161, label %130
    i32 162, label %136
    i32 163, label %142
    i32 164, label %148
    i32 130, label %154
    i32 1004, label %162
    i32 1006, label %168
    i32 1007, label %173
    i32 1008, label %178
    i32 1009, label %183
    i32 1010, label %188
    i32 1011, label %193
    i32 1012, label %198
    i32 1013, label %205
    i32 1014, label %210
    i32 1015, label %215
    i32 1016, label %221
  ]

5:                                                ; preds = %3
  %6 = tail call i32 @ZSTD_cParam_withinBounds(i32 noundef 10, i32 noundef %2)
  %.not158 = icmp eq i32 %6, 0
  br i1 %.not158, label %226, label %7

7:                                                ; preds = %5
  store i32 %2, ptr %0, align 8, !tbaa !9
  %8 = zext i32 %2 to i64
  br label %226

9:                                                ; preds = %3
  %10 = call i64 @ZSTD_cParam_clampBounds(i32 noundef 100, ptr noundef nonnull %4)
  %11 = call i32 @ERR_isError(i64 noundef %10)
  %.not157.not = icmp eq i32 %11, 0
  br i1 %.not157.not, label %12, label %226

12:                                               ; preds = %9
  %13 = load i32, ptr %4, align 4, !tbaa !5
  %14 = icmp eq i32 %13, 0
  %spec.select167 = select i1 %14, i32 3, i32 %13
  %15 = getelementptr inbounds i8, ptr %0, i64 44
  store i32 %spec.select167, ptr %15, align 4
  %narrow = call i32 @llvm.smax.i32(i32 %spec.select167, i32 0)
  %spec.select = zext nneg i32 %narrow to i64
  br label %226

16:                                               ; preds = %3
  %.not155 = icmp eq i32 %2, 0
  br i1 %.not155, label %19, label %17

17:                                               ; preds = %16
  %18 = tail call i32 @ZSTD_cParam_withinBounds(i32 noundef 101, i32 noundef %2)
  %.not156 = icmp eq i32 %18, 0
  br i1 %.not156, label %226, label %19

19:                                               ; preds = %17, %16
  %20 = getelementptr inbounds i8, ptr %0, i64 4
  store i32 %2, ptr %20, align 4, !tbaa !17
  %21 = zext i32 %2 to i64
  br label %226

22:                                               ; preds = %3
  %.not153 = icmp eq i32 %2, 0
  br i1 %.not153, label %25, label %23

23:                                               ; preds = %22
  %24 = tail call i32 @ZSTD_cParam_withinBounds(i32 noundef 102, i32 noundef %2)
  %.not154 = icmp eq i32 %24, 0
  br i1 %.not154, label %226, label %25

25:                                               ; preds = %23, %22
  %26 = getelementptr inbounds i8, ptr %0, i64 12
  store i32 %2, ptr %26, align 4, !tbaa !18
  %27 = zext i32 %2 to i64
  br label %226

28:                                               ; preds = %3
  %.not151 = icmp eq i32 %2, 0
  br i1 %.not151, label %31, label %29

29:                                               ; preds = %28
  %30 = tail call i32 @ZSTD_cParam_withinBounds(i32 noundef 103, i32 noundef %2)
  %.not152 = icmp eq i32 %30, 0
  br i1 %.not152, label %226, label %31

31:                                               ; preds = %29, %28
  %32 = getelementptr inbounds i8, ptr %0, i64 8
  store i32 %2, ptr %32, align 4, !tbaa !19
  %33 = zext i32 %2 to i64
  br label %226

34:                                               ; preds = %3
  %.not149 = icmp eq i32 %2, 0
  br i1 %.not149, label %37, label %35

35:                                               ; preds = %34
  %36 = tail call i32 @ZSTD_cParam_withinBounds(i32 noundef 104, i32 noundef %2)
  %.not150 = icmp eq i32 %36, 0
  br i1 %.not150, label %226, label %37

37:                                               ; preds = %35, %34
  %38 = getelementptr inbounds i8, ptr %0, i64 16
  store i32 %2, ptr %38, align 4, !tbaa !20
  %39 = sext i32 %2 to i64
  br label %226

40:                                               ; preds = %3
  %.not147 = icmp eq i32 %2, 0
  br i1 %.not147, label %43, label %41

41:                                               ; preds = %40
  %42 = tail call i32 @ZSTD_cParam_withinBounds(i32 noundef 105, i32 noundef %2)
  %.not148 = icmp eq i32 %42, 0
  br i1 %.not148, label %226, label %43

43:                                               ; preds = %41, %40
  %44 = getelementptr inbounds i8, ptr %0, i64 20
  store i32 %2, ptr %44, align 4, !tbaa !21
  %45 = zext i32 %2 to i64
  br label %226

46:                                               ; preds = %3
  %47 = tail call i32 @ZSTD_cParam_withinBounds(i32 noundef 106, i32 noundef %2)
  %.not146 = icmp eq i32 %47, 0
  br i1 %.not146, label %226, label %48

48:                                               ; preds = %46
  %49 = getelementptr inbounds i8, ptr %0, i64 24
  store i32 %2, ptr %49, align 4, !tbaa !22
  %50 = zext i32 %2 to i64
  br label %226

51:                                               ; preds = %3
  %.not144 = icmp eq i32 %2, 0
  br i1 %.not144, label %54, label %52

52:                                               ; preds = %51
  %53 = tail call i32 @ZSTD_cParam_withinBounds(i32 noundef 107, i32 noundef %2)
  %.not145 = icmp eq i32 %53, 0
  br i1 %.not145, label %226, label %54

54:                                               ; preds = %52, %51
  %55 = getelementptr inbounds i8, ptr %0, i64 28
  store i32 %2, ptr %55, align 4, !tbaa !23
  %56 = zext i32 %2 to i64
  br label %226

57:                                               ; preds = %3
  %58 = icmp ne i32 %2, 0
  %59 = zext i1 %58 to i32
  %60 = getelementptr inbounds i8, ptr %0, i64 32
  store i32 %59, ptr %60, align 8, !tbaa !24
  %61 = zext i1 %58 to i64
  br label %226

62:                                               ; preds = %3
  %63 = icmp ne i32 %2, 0
  %64 = zext i1 %63 to i32
  %65 = getelementptr inbounds i8, ptr %0, i64 36
  store i32 %64, ptr %65, align 4, !tbaa !25
  %66 = zext i1 %63 to i64
  br label %226

67:                                               ; preds = %3
  %68 = icmp ne i32 %2, 0
  %69 = xor i1 %68, true
  %70 = zext i1 %69 to i32
  %71 = getelementptr inbounds i8, ptr %0, i64 40
  store i32 %70, ptr %71, align 8, !tbaa !26
  %72 = zext i1 %68 to i64
  br label %226

73:                                               ; preds = %3
  %74 = icmp ne i32 %2, 0
  %75 = zext i1 %74 to i32
  %76 = getelementptr inbounds i8, ptr %0, i64 48
  store i32 %75, ptr %76, align 8, !tbaa !27
  %77 = zext i1 %74 to i64
  br label %226

78:                                               ; preds = %3
  %79 = tail call i32 @ZSTD_cParam_withinBounds(i32 noundef 1001, i32 noundef %2)
  %.not143 = icmp eq i32 %79, 0
  br i1 %.not143, label %226, label %80

80:                                               ; preds = %78
  %81 = getelementptr inbounds i8, ptr %0, i64 68
  store i32 %2, ptr %81, align 4, !tbaa !28
  %82 = zext i32 %2 to i64
  br label %226

83:                                               ; preds = %3
  %84 = tail call i32 @ZSTD_cParam_withinBounds(i32 noundef 1002, i32 noundef %2)
  %.not142 = icmp eq i32 %84, 0
  br i1 %.not142, label %226, label %85

85:                                               ; preds = %83
  %86 = getelementptr inbounds i8, ptr %0, i64 72
  store i32 %2, ptr %86, align 8, !tbaa !29
  %87 = zext i32 %2 to i64
  br label %226

88:                                               ; preds = %3
  %89 = call i64 @ZSTD_cParam_clampBounds(i32 noundef 400, ptr noundef nonnull %4)
  %90 = call i32 @ERR_isError(i64 noundef %89)
  %.not141.not = icmp eq i32 %90, 0
  br i1 %.not141.not, label %91, label %226

91:                                               ; preds = %88
  %92 = load i32, ptr %4, align 4, !tbaa !5
  %93 = getelementptr inbounds i8, ptr %0, i64 76
  store i32 %92, ptr %93, align 4, !tbaa !30
  %94 = sext i32 %92 to i64
  br label %226

95:                                               ; preds = %3
  %96 = icmp ne i32 %2, 0
  %97 = icmp slt i32 %2, 524288
  %or.cond = and i1 %96, %97
  br i1 %or.cond, label %98, label %99

98:                                               ; preds = %95
  store i32 524288, ptr %4, align 4, !tbaa !5
  br label %99

99:                                               ; preds = %95, %98
  %100 = call i64 @ZSTD_cParam_clampBounds(i32 noundef 401, ptr noundef nonnull %4)
  %101 = call i32 @ERR_isError(i64 noundef %100)
  %.not140.not = icmp eq i32 %101, 0
  br i1 %.not140.not, label %102, label %226

102:                                              ; preds = %99
  %103 = load i32, ptr %4, align 4, !tbaa !5
  %104 = sext i32 %103 to i64
  %105 = getelementptr inbounds i8, ptr %0, i64 80
  store i64 %104, ptr %105, align 8, !tbaa !31
  br label %226

106:                                              ; preds = %3
  %107 = call i64 @ZSTD_cParam_clampBounds(i32 noundef 402, ptr noundef nonnull %4)
  %108 = call i32 @ERR_isError(i64 noundef %107)
  %.not139.not = icmp eq i32 %108, 0
  br i1 %.not139.not, label %109, label %226

109:                                              ; preds = %106
  %110 = load i32, ptr %4, align 4, !tbaa !5
  %111 = getelementptr inbounds i8, ptr %0, i64 88
  store i32 %110, ptr %111, align 8, !tbaa !32
  %112 = sext i32 %110 to i64
  br label %226

113:                                              ; preds = %3
  %114 = call i64 @ZSTD_cParam_clampBounds(i32 noundef 402, ptr noundef nonnull %4)
  %115 = call i32 @ERR_isError(i64 noundef %114)
  %.not138.not = icmp eq i32 %115, 0
  br i1 %.not138.not, label %116, label %226

116:                                              ; preds = %113
  %117 = load i32, ptr %4, align 4, !tbaa !5
  %118 = getelementptr inbounds i8, ptr %0, i64 92
  store i32 %117, ptr %118, align 4, !tbaa !33
  %119 = sext i32 %117 to i64
  br label %226

120:                                              ; preds = %3
  %121 = icmp ne i32 %2, 0
  %122 = zext i1 %121 to i32
  %123 = getelementptr inbounds i8, ptr %0, i64 120
  store i32 %122, ptr %123, align 8, !tbaa !34
  %124 = zext i1 %121 to i64
  br label %226

125:                                              ; preds = %3
  %126 = tail call i32 @ZSTD_cParam_withinBounds(i32 noundef 160, i32 noundef %2)
  %.not137 = icmp eq i32 %126, 0
  br i1 %.not137, label %226, label %127

127:                                              ; preds = %125
  %128 = getelementptr inbounds i8, ptr %0, i64 96
  store i32 %2, ptr %128, align 8, !tbaa !35
  %129 = zext i32 %2 to i64
  br label %226

130:                                              ; preds = %3
  %.not135 = icmp eq i32 %2, 0
  br i1 %.not135, label %133, label %131

131:                                              ; preds = %130
  %132 = tail call i32 @ZSTD_cParam_withinBounds(i32 noundef 161, i32 noundef %2)
  %.not136 = icmp eq i32 %132, 0
  br i1 %.not136, label %226, label %133

133:                                              ; preds = %131, %130
  %134 = getelementptr inbounds i8, ptr %0, i64 100
  store i32 %2, ptr %134, align 4, !tbaa !36
  %135 = zext i32 %2 to i64
  br label %226

136:                                              ; preds = %3
  %.not133 = icmp eq i32 %2, 0
  br i1 %.not133, label %139, label %137

137:                                              ; preds = %136
  %138 = tail call i32 @ZSTD_cParam_withinBounds(i32 noundef 162, i32 noundef %2)
  %.not134 = icmp eq i32 %138, 0
  br i1 %.not134, label %226, label %139

139:                                              ; preds = %137, %136
  %140 = getelementptr inbounds i8, ptr %0, i64 108
  store i32 %2, ptr %140, align 4, !tbaa !37
  %141 = zext i32 %2 to i64
  br label %226

142:                                              ; preds = %3
  %.not131 = icmp eq i32 %2, 0
  br i1 %.not131, label %145, label %143

143:                                              ; preds = %142
  %144 = tail call i32 @ZSTD_cParam_withinBounds(i32 noundef 163, i32 noundef %2)
  %.not132 = icmp eq i32 %144, 0
  br i1 %.not132, label %226, label %145

145:                                              ; preds = %143, %142
  %146 = getelementptr inbounds i8, ptr %0, i64 104
  store i32 %2, ptr %146, align 8, !tbaa !38
  %147 = zext i32 %2 to i64
  br label %226

148:                                              ; preds = %3
  %.not129 = icmp eq i32 %2, 0
  br i1 %.not129, label %151, label %149

149:                                              ; preds = %148
  %150 = tail call i32 @ZSTD_cParam_withinBounds(i32 noundef 164, i32 noundef %2)
  %.not130 = icmp eq i32 %150, 0
  br i1 %.not130, label %226, label %151

151:                                              ; preds = %149, %148
  %152 = getelementptr inbounds i8, ptr %0, i64 112
  store i32 %2, ptr %152, align 8, !tbaa !39
  %153 = zext i32 %2 to i64
  br label %226

154:                                              ; preds = %3
  %.not127 = icmp eq i32 %2, 0
  br i1 %.not127, label %158, label %155

155:                                              ; preds = %154
  %156 = tail call i32 @llvm.smax.i32(i32 %2, i32 1340)
  %157 = tail call i32 @ZSTD_cParam_withinBounds(i32 noundef 130, i32 noundef %156)
  %.not128 = icmp eq i32 %157, 0
  br i1 %.not128, label %226, label %158

158:                                              ; preds = %155, %154
  %159 = phi i32 [ %156, %155 ], [ 0, %154 ]
  %160 = zext nneg i32 %159 to i64
  %161 = getelementptr inbounds i8, ptr %0, i64 56
  store i64 %160, ptr %161, align 8, !tbaa !40
  br label %226

162:                                              ; preds = %3
  %.not125 = icmp eq i32 %2, 0
  br i1 %.not125, label %165, label %163

163:                                              ; preds = %162
  %164 = tail call i32 @ZSTD_cParam_withinBounds(i32 noundef 1004, i32 noundef %2)
  %.not126 = icmp eq i32 %164, 0
  br i1 %.not126, label %226, label %165

165:                                              ; preds = %163, %162
  %166 = getelementptr inbounds i8, ptr %0, i64 64
  store i32 %2, ptr %166, align 8, !tbaa !41
  %167 = sext i32 %2 to i64
  br label %226

168:                                              ; preds = %3
  %169 = tail call i32 @ZSTD_cParam_withinBounds(i32 noundef 1006, i32 noundef %2)
  %.not124 = icmp eq i32 %169, 0
  br i1 %.not124, label %226, label %170

170:                                              ; preds = %168
  %171 = getelementptr inbounds i8, ptr %0, i64 124
  store i32 %2, ptr %171, align 4, !tbaa !42
  %172 = zext i32 %2 to i64
  br label %226

173:                                              ; preds = %3
  %174 = tail call i32 @ZSTD_cParam_withinBounds(i32 noundef 1007, i32 noundef %2)
  %.not123 = icmp eq i32 %174, 0
  br i1 %.not123, label %226, label %175

175:                                              ; preds = %173
  %176 = getelementptr inbounds i8, ptr %0, i64 128
  store i32 %2, ptr %176, align 8, !tbaa !43
  %177 = zext i32 %2 to i64
  br label %226

178:                                              ; preds = %3
  %179 = tail call i32 @ZSTD_cParam_withinBounds(i32 noundef 1008, i32 noundef %2)
  %.not122 = icmp eq i32 %179, 0
  br i1 %.not122, label %226, label %180

180:                                              ; preds = %178
  %181 = getelementptr inbounds i8, ptr %0, i64 132
  store i32 %2, ptr %181, align 4, !tbaa !44
  %182 = zext i32 %2 to i64
  br label %226

183:                                              ; preds = %3
  %184 = tail call i32 @ZSTD_cParam_withinBounds(i32 noundef 1009, i32 noundef %2)
  %.not121 = icmp eq i32 %184, 0
  br i1 %.not121, label %226, label %185

185:                                              ; preds = %183
  %186 = getelementptr inbounds i8, ptr %0, i64 136
  store i32 %2, ptr %186, align 8, !tbaa !45
  %187 = sext i32 %2 to i64
  br label %226

188:                                              ; preds = %3
  %189 = tail call i32 @ZSTD_cParam_withinBounds(i32 noundef 1010, i32 noundef %2)
  %.not120 = icmp eq i32 %189, 0
  br i1 %.not120, label %226, label %190

190:                                              ; preds = %188
  %191 = getelementptr inbounds i8, ptr %0, i64 140
  store i32 %2, ptr %191, align 4, !tbaa !46
  %192 = zext i32 %2 to i64
  br label %226

193:                                              ; preds = %3
  %194 = tail call i32 @ZSTD_cParam_withinBounds(i32 noundef 1011, i32 noundef %2)
  %.not119 = icmp eq i32 %194, 0
  br i1 %.not119, label %226, label %195

195:                                              ; preds = %193
  %196 = getelementptr inbounds i8, ptr %0, i64 144
  store i32 %2, ptr %196, align 8, !tbaa !47
  %197 = zext i32 %2 to i64
  br label %226

198:                                              ; preds = %3
  %199 = tail call i32 @ZSTD_cParam_withinBounds(i32 noundef 1012, i32 noundef %2)
  %.not118 = icmp eq i32 %199, 0
  br i1 %.not118, label %226, label %200

200:                                              ; preds = %198
  %201 = icmp ne i32 %2, 0
  %202 = zext i1 %201 to i32
  %203 = getelementptr inbounds i8, ptr %0, i64 148
  store i32 %202, ptr %203, align 4, !tbaa !48
  %204 = zext i1 %201 to i64
  br label %226

205:                                              ; preds = %3
  %206 = tail call i32 @ZSTD_cParam_withinBounds(i32 noundef 1013, i32 noundef %2)
  %.not117 = icmp eq i32 %206, 0
  br i1 %.not117, label %226, label %207

207:                                              ; preds = %205
  %208 = getelementptr inbounds i8, ptr %0, i64 176
  store i32 %2, ptr %208, align 8, !tbaa !49
  %209 = zext i32 %2 to i64
  br label %226

210:                                              ; preds = %3
  %211 = tail call i32 @ZSTD_cParam_withinBounds(i32 noundef 1014, i32 noundef %2)
  %.not116 = icmp eq i32 %211, 0
  br i1 %.not116, label %226, label %212

212:                                              ; preds = %210
  %213 = getelementptr inbounds i8, ptr %0, i64 180
  store i32 %2, ptr %213, align 4, !tbaa !50
  %214 = sext i32 %2 to i64
  br label %226

215:                                              ; preds = %3
  %.not114 = icmp eq i32 %2, 0
  br i1 %.not114, label %218, label %216

216:                                              ; preds = %215
  %217 = tail call i32 @ZSTD_cParam_withinBounds(i32 noundef 1015, i32 noundef %2)
  %.not115 = icmp eq i32 %217, 0
  br i1 %.not115, label %226, label %218

218:                                              ; preds = %216, %215
  %219 = sext i32 %2 to i64
  %220 = getelementptr inbounds i8, ptr %0, i64 200
  store i64 %219, ptr %220, align 8, !tbaa !51
  br label %226

221:                                              ; preds = %3
  %222 = tail call i32 @ZSTD_cParam_withinBounds(i32 noundef 1016, i32 noundef %2)
  %.not = icmp eq i32 %222, 0
  br i1 %.not, label %226, label %223

223:                                              ; preds = %221
  %224 = getelementptr inbounds i8, ptr %0, i64 208
  store i32 %2, ptr %224, align 8, !tbaa !52
  %225 = zext i32 %2 to i64
  br label %226

226:                                              ; preds = %12, %113, %106, %99, %88, %9, %3, %221, %216, %210, %205, %198, %193, %188, %183, %178, %173, %168, %163, %155, %149, %143, %137, %131, %125, %85, %83, %80, %78, %52, %46, %41, %35, %29, %23, %17, %5, %223, %218, %212, %207, %200, %195, %190, %185, %180, %175, %170, %165, %158, %151, %145, %139, %133, %127, %120, %116, %109, %102, %91, %73, %67, %62, %57, %54, %48, %43, %37, %31, %25, %19, %7
  %.7 = phi i64 [ %225, %223 ], [ %219, %218 ], [ %214, %212 ], [ %209, %207 ], [ %204, %200 ], [ %197, %195 ], [ %192, %190 ], [ %187, %185 ], [ %182, %180 ], [ %177, %175 ], [ %172, %170 ], [ %167, %165 ], [ %160, %158 ], [ %153, %151 ], [ %147, %145 ], [ %141, %139 ], [ %135, %133 ], [ %129, %127 ], [ %124, %120 ], [ %114, %113 ], [ %119, %116 ], [ %107, %106 ], [ %112, %109 ], [ %100, %99 ], [ %104, %102 ], [ %89, %88 ], [ %94, %91 ], [ %77, %73 ], [ %72, %67 ], [ %66, %62 ], [ %61, %57 ], [ %56, %54 ], [ %50, %48 ], [ %45, %43 ], [ %39, %37 ], [ %33, %31 ], [ %27, %25 ], [ %21, %19 ], [ %10, %9 ], [ %8, %7 ], [ -42, %5 ], [ -42, %17 ], [ -42, %23 ], [ -42, %29 ], [ -42, %35 ], [ -42, %41 ], [ -42, %46 ], [ -42, %52 ], [ %82, %80 ], [ -42, %78 ], [ %87, %85 ], [ -42, %83 ], [ -42, %125 ], [ -42, %131 ], [ -42, %137 ], [ -42, %143 ], [ -42, %149 ], [ -42, %155 ], [ -42, %163 ], [ -42, %168 ], [ -42, %173 ], [ -42, %178 ], [ -42, %183 ], [ -42, %188 ], [ -42, %193 ], [ -42, %198 ], [ -42, %205 ], [ -42, %210 ], [ -42, %216 ], [ -42, %221 ], [ -40, %3 ], [ %spec.select, %12 ]
  ret i64 %.7
}

; Function Attrs: inlinehint nounwind uwtable
declare hidden i32 @ZSTD_cParam_withinBounds(i32 noundef, i32 noundef) local_unnamed_addr #1

; Function Attrs: nounwind uwtable
declare hidden i64 @ZSTD_cParam_clampBounds(i32 noundef, ptr noundef) local_unnamed_addr #0

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

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 = { 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 #2 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }

!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, !6, i64 0}
!10 = !{!"ZSTD_CCtx_params_s", !6, i64 0, !11, i64 4, !12, i64 32, !6, i64 44, !6, i64 48, !13, i64 56, !6, i64 64, !6, i64 68, !6, i64 72, !6, i64 76, !13, i64 80, !6, i64 88, !6, i64 92, !14, i64 96, !6, i64 120, !6, i64 124, !6, i64 128, !6, i64 132, !6, i64 136, !6, i64 140, !6, i64 144, !6, i64 148, !15, i64 152, !6, i64 176, !6, i64 180, !16, i64 184, !16, i64 192, !13, i64 200, !6, i64 208}
!11 = !{!"", !6, i64 0, !6, i64 4, !6, i64 8, !6, i64 12, !6, i64 16, !6, i64 20, !6, i64 24}
!12 = !{!"", !6, i64 0, !6, i64 4, !6, i64 8}
!13 = !{!"long", !7, i64 0}
!14 = !{!"", !6, i64 0, !6, i64 4, !6, i64 8, !6, i64 12, !6, i64 16, !6, i64 20}
!15 = !{!"", !16, i64 0, !16, i64 8, !16, i64 16}
!16 = !{!"any pointer", !7, i64 0}
!17 = !{!10, !6, i64 4}
!18 = !{!10, !6, i64 12}
!19 = !{!10, !6, i64 8}
!20 = !{!10, !6, i64 16}
!21 = !{!10, !6, i64 20}
!22 = !{!10, !6, i64 24}
!23 = !{!10, !6, i64 28}
!24 = !{!10, !6, i64 32}
!25 = !{!10, !6, i64 36}
!26 = !{!10, !6, i64 40}
!27 = !{!10, !6, i64 48}
!28 = !{!10, !6, i64 68}
!29 = !{!10, !6, i64 72}
!30 = !{!10, !6, i64 76}
!31 = !{!10, !13, i64 80}
!32 = !{!10, !6, i64 88}
!33 = !{!10, !6, i64 92}
!34 = !{!10, !6, i64 120}
!35 = !{!10, !6, i64 96}
!36 = !{!10, !6, i64 100}
!37 = !{!10, !6, i64 108}
!38 = !{!10, !6, i64 104}
!39 = !{!10, !6, i64 112}
!40 = !{!10, !13, i64 56}
!41 = !{!10, !6, i64 64}
!42 = !{!10, !6, i64 124}
!43 = !{!10, !6, i64 128}
!44 = !{!10, !6, i64 132}
!45 = !{!10, !6, i64 136}
!46 = !{!10, !6, i64 140}
!47 = !{!10, !6, i64 144}
!48 = !{!10, !6, i64 148}
!49 = !{!10, !6, i64 176}
!50 = !{!10, !6, i64 180}
!51 = !{!10, !13, i64 200}
!52 = !{!10, !6, i64 208}


; Effective O3 passes: DSEPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,MergedLoadStoreMotionPass,PostOrderFunctionAttrsPass,SCCPPass,SROAPass,SimplifyCFGPass,TailCallElimPass