; LLVM IR from seppo0010/rlite :: tests (key-test)

; 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.greatest_run_info = type { i32, i32, i32, i32, i32, i32, %struct.greatest_suite_info, ptr, i32, ptr, ptr, ptr, ptr, ptr, i32, i32, ptr, ptr, i64, i64, [1 x %struct.__jmp_buf_tag] }
%struct.greatest_suite_info = type { i32, i32, i32, i32, i64, i64, i64, i64 }
%struct.__jmp_buf_tag = type { [8 x i64], i32, %struct.__sigset_t }
%struct.__sigset_t = type { [16 x i64] }

@.str = external hidden unnamed_addr constant [19 x i8], align 1
@greatest_info = external global %struct.greatest_run_info, align 8
@stdout = external global ptr, align 8
@.str.1 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [22 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local void @key_test() #0 {
  %1 = alloca i64, align 8
  %2 = alloca i32, align 4
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca i32, align 4
  %6 = alloca i32, align 4
  %7 = alloca i32, align 4
  %8 = alloca i32, align 4
  %9 = alloca i32, align 4
  %10 = alloca i32, align 4
  %11 = alloca i32, align 4
  %12 = alloca i32, align 4
  %13 = alloca i32, align 4
  %14 = alloca i32, align 4
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %1) #5
  store i64 0, ptr %1, align 8, !tbaa !5
  br label %25

25:                                               ; preds = %428, %0
  %26 = load i64, ptr %1, align 8, !tbaa !5
  %27 = icmp slt i64 %26, 3
  br i1 %27, label %28, label %431

28:                                               ; preds = %25
  br label %29

29:                                               ; preds = %28
  %30 = call i32 @greatest_pre_test(ptr noundef @.str)
  %31 = icmp eq i32 %30, 1
  br i1 %31, label %32, label %37

32:                                               ; preds = %29
  call void @llvm.lifetime.start.p0(i64 4, ptr %2) #5
  %33 = load i64, ptr %1, align 8, !tbaa !5
  %34 = trunc i64 %33 to i32
  %35 = call i32 @basic_test_set_get(i32 noundef %34)
  store i32 %35, ptr %2, align 4, !tbaa !9
  %36 = load i32, ptr %2, align 4, !tbaa !9
  call void @greatest_post_test(ptr noundef @.str, i32 noundef %36)
  call void @llvm.lifetime.end.p0(i64 4, ptr %2) #5
  br label %45

37:                                               ; preds = %29
  %38 = load i32, ptr @greatest_info, align 8, !tbaa !11
  %39 = and i32 %38, 4
  %40 = icmp ne i32 %39, 0
  br i1 %40, label %41, label %44

41:                                               ; preds = %37
  %42 = load ptr, ptr @stdout, align 8, !tbaa !15
  %43 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %42, ptr noundef @.str.1, ptr noundef @.str) #5
  br label %44

44:                                               ; preds = %41, %37
  br label %45

45:                                               ; preds = %44, %32
  br label %46

46:                                               ; preds = %45
  br label %47

47:                                               ; preds = %46
  br label %48

48:                                               ; preds = %47
  %49 = call i32 @greatest_pre_test(ptr noundef @.str.2)
  %50 = icmp eq i32 %49, 1
  br i1 %50, label %51, label %56

51:                                               ; preds = %48
  call void @llvm.lifetime.start.p0(i64 4, ptr %3) #5
  %52 = load i64, ptr %1, align 8, !tbaa !5
  %53 = trunc i64 %52 to i32
  %54 = call i32 @basic_test_get_or_create(i32 noundef %53)
  store i32 %54, ptr %3, align 4, !tbaa !9
  %55 = load i32, ptr %3, align 4, !tbaa !9
  call void @greatest_post_test(ptr noundef @.str.2, i32 noundef %55)
  call void @llvm.lifetime.end.p0(i64 4, ptr %3) #5
  br label %64

56:                                               ; preds = %48
  %57 = load i32, ptr @greatest_info, align 8, !tbaa !11
  %58 = and i32 %57, 4
  %59 = icmp ne i32 %58, 0
  br i1 %59, label %60, label %63

60:                                               ; preds = %56
  %61 = load ptr, ptr @stdout, align 8, !tbaa !15
  %62 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %61, ptr noundef @.str.1, ptr noundef @.str.2) #5
  br label %63

63:                                               ; preds = %60, %56
  br label %64

64:                                               ; preds = %63, %51
  br label %65

65:                                               ; preds = %64
  br label %66

66:                                               ; preds = %65
  br label %67

67:                                               ; preds = %66
  %68 = call i32 @greatest_pre_test(ptr noundef @.str.3)
  %69 = icmp eq i32 %68, 1
  br i1 %69, label %70, label %75

70:                                               ; preds = %67
  call void @llvm.lifetime.start.p0(i64 4, ptr %4) #5
  %71 = load i64, ptr %1, align 8, !tbaa !5
  %72 = trunc i64 %71 to i32
  %73 = call i32 @basic_test_multidb(i32 noundef %72)
  store i32 %73, ptr %4, align 4, !tbaa !9
  %74 = load i32, ptr %4, align 4, !tbaa !9
  call void @greatest_post_test(ptr noundef @.str.3, i32 noundef %74)
  call void @llvm.lifetime.end.p0(i64 4, ptr %4) #5
  br label %83

75:                                               ; preds = %67
  %76 = load i32, ptr @greatest_info, align 8, !tbaa !11
  %77 = and i32 %76, 4
  %78 = icmp ne i32 %77, 0
  br i1 %78, label %79, label %82

79:                                               ; preds = %75
  %80 = load ptr, ptr @stdout, align 8, !tbaa !15
  %81 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %80, ptr noundef @.str.1, ptr noundef @.str.3) #5
  br label %82

82:                                               ; preds = %79, %75
  br label %83

83:                                               ; preds = %82, %70
  br label %84

84:                                               ; preds = %83
  br label %85

85:                                               ; preds = %84
  br label %86

86:                                               ; preds = %85
  %87 = call i32 @greatest_pre_test(ptr noundef @.str.4)
  %88 = icmp eq i32 %87, 1
  br i1 %88, label %89, label %94

89:                                               ; preds = %86
  call void @llvm.lifetime.start.p0(i64 4, ptr %5) #5
  %90 = load i64, ptr %1, align 8, !tbaa !5
  %91 = trunc i64 %90 to i32
  %92 = call i32 @basic_test_move(i32 noundef %91)
  store i32 %92, ptr %5, align 4, !tbaa !9
  %93 = load i32, ptr %5, align 4, !tbaa !9
  call void @greatest_post_test(ptr noundef @.str.4, i32 noundef %93)
  call void @llvm.lifetime.end.p0(i64 4, ptr %5) #5
  br label %102

94:                                               ; preds = %86
  %95 = load i32, ptr @greatest_info, align 8, !tbaa !11
  %96 = and i32 %95, 4
  %97 = icmp ne i32 %96, 0
  br i1 %97, label %98, label %101

98:                                               ; preds = %94
  %99 = load ptr, ptr @stdout, align 8, !tbaa !15
  %100 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %99, ptr noundef @.str.1, ptr noundef @.str.4) #5
  br label %101

101:                                              ; preds = %98, %94
  br label %102

102:                                              ; preds = %101, %89
  br label %103

103:                                              ; preds = %102
  br label %104

104:                                              ; preds = %103
  br label %105

105:                                              ; preds = %104
  %106 = call i32 @greatest_pre_test(ptr noundef @.str.5)
  %107 = icmp eq i32 %106, 1
  br i1 %107, label %108, label %113

108:                                              ; preds = %105
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #5
  %109 = load i64, ptr %1, align 8, !tbaa !5
  %110 = trunc i64 %109 to i32
  %111 = call i32 @existing_test_move(i32 noundef %110)
  store i32 %111, ptr %6, align 4, !tbaa !9
  %112 = load i32, ptr %6, align 4, !tbaa !9
  call void @greatest_post_test(ptr noundef @.str.5, i32 noundef %112)
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #5
  br label %121

113:                                              ; preds = %105
  %114 = load i32, ptr @greatest_info, align 8, !tbaa !11
  %115 = and i32 %114, 4
  %116 = icmp ne i32 %115, 0
  br i1 %116, label %117, label %120

117:                                              ; preds = %113
  %118 = load ptr, ptr @stdout, align 8, !tbaa !15
  %119 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %118, ptr noundef @.str.1, ptr noundef @.str.5) #5
  br label %120

120:                                              ; preds = %117, %113
  br label %121

121:                                              ; preds = %120, %108
  br label %122

122:                                              ; preds = %121
  br label %123

123:                                              ; preds = %122
  br label %124

124:                                              ; preds = %123
  %125 = call i32 @greatest_pre_test(ptr noundef @.str.6)
  %126 = icmp eq i32 %125, 1
  br i1 %126, label %127, label %132

127:                                              ; preds = %124
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #5
  %128 = load i64, ptr %1, align 8, !tbaa !5
  %129 = trunc i64 %128 to i32
  %130 = call i32 @basic_test_expires(i32 noundef %129)
  store i32 %130, ptr %7, align 4, !tbaa !9
  %131 = load i32, ptr %7, align 4, !tbaa !9
  call void @greatest_post_test(ptr noundef @.str.6, i32 noundef %131)
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #5
  br label %140

132:                                              ; preds = %124
  %133 = load i32, ptr @greatest_info, align 8, !tbaa !11
  %134 = and i32 %133, 4
  %135 = icmp ne i32 %134, 0
  br i1 %135, label %136, label %139

136:                                              ; preds = %132
  %137 = load ptr, ptr @stdout, align 8, !tbaa !15
  %138 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %137, ptr noundef @.str.1, ptr noundef @.str.6) #5
  br label %139

139:                                              ; preds = %136, %132
  br label %140

140:                                              ; preds = %139, %127
  br label %141

141:                                              ; preds = %140
  br label %142

142:                                              ; preds = %141
  br label %143

143:                                              ; preds = %142
  %144 = call i32 @greatest_pre_test(ptr noundef @.str.7)
  %145 = icmp eq i32 %144, 1
  br i1 %145, label %146, label %151

146:                                              ; preds = %143
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #5
  %147 = load i64, ptr %1, align 8, !tbaa !5
  %148 = trunc i64 %147 to i32
  %149 = call i32 @basic_test_change_expiration(i32 noundef %148)
  store i32 %149, ptr %8, align 4, !tbaa !9
  %150 = load i32, ptr %8, align 4, !tbaa !9
  call void @greatest_post_test(ptr noundef @.str.7, i32 noundef %150)
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #5
  br label %159

151:                                              ; preds = %143
  %152 = load i32, ptr @greatest_info, align 8, !tbaa !11
  %153 = and i32 %152, 4
  %154 = icmp ne i32 %153, 0
  br i1 %154, label %155, label %158

155:                                              ; preds = %151
  %156 = load ptr, ptr @stdout, align 8, !tbaa !15
  %157 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %156, ptr noundef @.str.1, ptr noundef @.str.7) #5
  br label %158

158:                                              ; preds = %155, %151
  br label %159

159:                                              ; preds = %158, %146
  br label %160

160:                                              ; preds = %159
  br label %161

161:                                              ; preds = %160
  br label %162

162:                                              ; preds = %161
  %163 = call i32 @greatest_pre_test(ptr noundef @.str.8)
  %164 = icmp eq i32 %163, 1
  br i1 %164, label %165, label %170

165:                                              ; preds = %162
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #5
  %166 = load i64, ptr %1, align 8, !tbaa !5
  %167 = trunc i64 %166 to i32
  %168 = call i32 @test_delete_with_value(i32 noundef %167)
  store i32 %168, ptr %9, align 4, !tbaa !9
  %169 = load i32, ptr %9, align 4, !tbaa !9
  call void @greatest_post_test(ptr noundef @.str.8, i32 noundef %169)
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #5
  br label %178

170:                                              ; preds = %162
  %171 = load i32, ptr @greatest_info, align 8, !tbaa !11
  %172 = and i32 %171, 4
  %173 = icmp ne i32 %172, 0
  br i1 %173, label %174, label %177

174:                                              ; preds = %170
  %175 = load ptr, ptr @stdout, align 8, !tbaa !15
  %176 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %175, ptr noundef @.str.1, ptr noundef @.str.8) #5
  br label %177

177:                                              ; preds = %174, %170
  br label %178

178:                                              ; preds = %177, %165
  br label %179

179:                                              ; preds = %178
  br label %180

180:                                              ; preds = %179
  br label %181

181:                                              ; preds = %180
  %182 = call i32 @greatest_pre_test(ptr noundef @.str.9)
  %183 = icmp eq i32 %182, 1
  br i1 %183, label %184, label %189

184:                                              ; preds = %181
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #5
  %185 = load i64, ptr %1, align 8, !tbaa !5
  %186 = trunc i64 %185 to i32
  %187 = call i32 @test_rename_ok(i32 noundef %186)
  store i32 %187, ptr %10, align 4, !tbaa !9
  %188 = load i32, ptr %10, align 4, !tbaa !9
  call void @greatest_post_test(ptr noundef @.str.9, i32 noundef %188)
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #5
  br label %197

189:                                              ; preds = %181
  %190 = load i32, ptr @greatest_info, align 8, !tbaa !11
  %191 = and i32 %190, 4
  %192 = icmp ne i32 %191, 0
  br i1 %192, label %193, label %196

193:                                              ; preds = %189
  %194 = load ptr, ptr @stdout, align 8, !tbaa !15
  %195 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %194, ptr noundef @.str.1, ptr noundef @.str.9) #5
  br label %196

196:                                              ; preds = %193, %189
  br label %197

197:                                              ; preds = %196, %184
  br label %198

198:                                              ; preds = %197
  br label %199

199:                                              ; preds = %198
  br label %200

200:                                              ; preds = %199
  %201 = call i32 @greatest_pre_test(ptr noundef @.str.10)
  %202 = icmp eq i32 %201, 1
  br i1 %202, label %203, label %208

203:                                              ; preds = %200
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #5
  %204 = load i64, ptr %1, align 8, !tbaa !5
  %205 = trunc i64 %204 to i32
  %206 = call i32 @test_rename_overwrite(i32 noundef %205)
  store i32 %206, ptr %11, align 4, !tbaa !9
  %207 = load i32, ptr %11, align 4, !tbaa !9
  call void @greatest_post_test(ptr noundef @.str.10, i32 noundef %207)
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #5
  br label %216

208:                                              ; preds = %200
  %209 = load i32, ptr @greatest_info, align 8, !tbaa !11
  %210 = and i32 %209, 4
  %211 = icmp ne i32 %210, 0
  br i1 %211, label %212, label %215

212:                                              ; preds = %208
  %213 = load ptr, ptr @stdout, align 8, !tbaa !15
  %214 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %213, ptr noundef @.str.1, ptr noundef @.str.10) #5
  br label %215

215:                                              ; preds = %212, %208
  br label %216

216:                                              ; preds = %215, %203
  br label %217

217:                                              ; preds = %216
  br label %218

218:                                              ; preds = %217
  br label %219

219:                                              ; preds = %218
  %220 = call i32 @greatest_pre_test(ptr noundef @.str.11)
  %221 = icmp eq i32 %220, 1
  br i1 %221, label %222, label %227

222:                                              ; preds = %219
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #5
  %223 = load i64, ptr %1, align 8, !tbaa !5
  %224 = trunc i64 %223 to i32
  %225 = call i32 @test_rename_no_overwrite(i32 noundef %224)
  store i32 %225, ptr %12, align 4, !tbaa !9
  %226 = load i32, ptr %12, align 4, !tbaa !9
  call void @greatest_post_test(ptr noundef @.str.11, i32 noundef %226)
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #5
  br label %235

227:                                              ; preds = %219
  %228 = load i32, ptr @greatest_info, align 8, !tbaa !11
  %229 = and i32 %228, 4
  %230 = icmp ne i32 %229, 0
  br i1 %230, label %231, label %234

231:                                              ; preds = %227
  %232 = load ptr, ptr @stdout, align 8, !tbaa !15
  %233 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %232, ptr noundef @.str.1, ptr noundef @.str.11) #5
  br label %234

234:                                              ; preds = %231, %227
  br label %235

235:                                              ; preds = %234, %222
  br label %236

236:                                              ; preds = %235
  br label %237

237:                                              ; preds = %236
  br label %238

238:                                              ; preds = %237
  %239 = call i32 @greatest_pre_test(ptr noundef @.str.12)
  %240 = icmp eq i32 %239, 1
  br i1 %240, label %241, label %246

241:                                              ; preds = %238
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #5
  %242 = load i64, ptr %1, align 8, !tbaa !5
  %243 = trunc i64 %242 to i32
  %244 = call i32 @test_dbsize(i32 noundef %243)
  store i32 %244, ptr %13, align 4, !tbaa !9
  %245 = load i32, ptr %13, align 4, !tbaa !9
  call void @greatest_post_test(ptr noundef @.str.12, i32 noundef %245)
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #5
  br label %254

246:                                              ; preds = %238
  %247 = load i32, ptr @greatest_info, align 8, !tbaa !11
  %248 = and i32 %247, 4
  %249 = icmp ne i32 %248, 0
  br i1 %249, label %250, label %253

250:                                              ; preds = %246
  %251 = load ptr, ptr @stdout, align 8, !tbaa !15
  %252 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %251, ptr noundef @.str.1, ptr noundef @.str.12) #5
  br label %253

253:                                              ; preds = %250, %246
  br label %254

254:                                              ; preds = %253, %241
  br label %255

255:                                              ; preds = %254
  br label %256

256:                                              ; preds = %255
  br label %257

257:                                              ; preds = %256
  %258 = call i32 @greatest_pre_test(ptr noundef @.str.13)
  %259 = icmp eq i32 %258, 1
  br i1 %259, label %260, label %265

260:                                              ; preds = %257
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #5
  %261 = load i64, ptr %1, align 8, !tbaa !5
  %262 = trunc i64 %261 to i32
  %263 = call i32 @test_keys(i32 noundef %262)
  store i32 %263, ptr %14, align 4, !tbaa !9
  %264 = load i32, ptr %14, align 4, !tbaa !9
  call void @greatest_post_test(ptr noundef @.str.13, i32 noundef %264)
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #5
  br label %273

265:                                              ; preds = %257
  %266 = load i32, ptr @greatest_info, align 8, !tbaa !11
  %267 = and i32 %266, 4
  %268 = icmp ne i32 %267, 0
  br i1 %268, label %269, label %272

269:                                              ; preds = %265
  %270 = load ptr, ptr @stdout, align 8, !tbaa !15
  %271 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %270, ptr noundef @.str.1, ptr noundef @.str.13) #5
  br label %272

272:                                              ; preds = %269, %265
  br label %273

273:                                              ; preds = %272, %260
  br label %274

274:                                              ; preds = %273
  br label %275

275:                                              ; preds = %274
  br label %276

276:                                              ; preds = %275
  %277 = call i32 @greatest_pre_test(ptr noundef @.str.14)
  %278 = icmp eq i32 %277, 1
  br i1 %278, label %279, label %284

279:                                              ; preds = %276
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #5
  %280 = load i64, ptr %1, align 8, !tbaa !5
  %281 = trunc i64 %280 to i32
  %282 = call i32 @test_randomkey(i32 noundef %281)
  store i32 %282, ptr %15, align 4, !tbaa !9
  %283 = load i32, ptr %15, align 4, !tbaa !9
  call void @greatest_post_test(ptr noundef @.str.14, i32 noundef %283)
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #5
  br label %292

284:                                              ; preds = %276
  %285 = load i32, ptr @greatest_info, align 8, !tbaa !11
  %286 = and i32 %285, 4
  %287 = icmp ne i32 %286, 0
  br i1 %287, label %288, label %291

288:                                              ; preds = %284
  %289 = load ptr, ptr @stdout, align 8, !tbaa !15
  %290 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %289, ptr noundef @.str.1, ptr noundef @.str.14) #5
  br label %291

291:                                              ; preds = %288, %284
  br label %292

292:                                              ; preds = %291, %279
  br label %293

293:                                              ; preds = %292
  br label %294

294:                                              ; preds = %293
  br label %295

295:                                              ; preds = %294
  %296 = call i32 @greatest_pre_test(ptr noundef @.str.15)
  %297 = icmp eq i32 %296, 1
  br i1 %297, label %298, label %303

298:                                              ; preds = %295
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #5
  %299 = load i64, ptr %1, align 8, !tbaa !5
  %300 = trunc i64 %299 to i32
  %301 = call i32 @test_flushdb(i32 noundef %300)
  store i32 %301, ptr %16, align 4, !tbaa !9
  %302 = load i32, ptr %16, align 4, !tbaa !9
  call void @greatest_post_test(ptr noundef @.str.15, i32 noundef %302)
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #5
  br label %311

303:                                              ; preds = %295
  %304 = load i32, ptr @greatest_info, align 8, !tbaa !11
  %305 = and i32 %304, 4
  %306 = icmp ne i32 %305, 0
  br i1 %306, label %307, label %310

307:                                              ; preds = %303
  %308 = load ptr, ptr @stdout, align 8, !tbaa !15
  %309 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %308, ptr noundef @.str.1, ptr noundef @.str.15) #5
  br label %310

310:                                              ; preds = %307, %303
  br label %311

311:                                              ; preds = %310, %298
  br label %312

312:                                              ; preds = %311
  br label %313

313:                                              ; preds = %312
  br label %314

314:                                              ; preds = %313
  %315 = call i32 @greatest_pre_test(ptr noundef @.str.16)
  %316 = icmp eq i32 %315, 1
  br i1 %316, label %317, label %322

317:                                              ; preds = %314
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #5
  %318 = load i64, ptr %1, align 8, !tbaa !5
  %319 = trunc i64 %318 to i32
  %320 = call i32 @string_version_test(i32 noundef %319)
  store i32 %320, ptr %17, align 4, !tbaa !9
  %321 = load i32, ptr %17, align 4, !tbaa !9
  call void @greatest_post_test(ptr noundef @.str.16, i32 noundef %321)
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #5
  br label %330

322:                                              ; preds = %314
  %323 = load i32, ptr @greatest_info, align 8, !tbaa !11
  %324 = and i32 %323, 4
  %325 = icmp ne i32 %324, 0
  br i1 %325, label %326, label %329

326:                                              ; preds = %322
  %327 = load ptr, ptr @stdout, align 8, !tbaa !15
  %328 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %327, ptr noundef @.str.1, ptr noundef @.str.16) #5
  br label %329

329:                                              ; preds = %326, %322
  br label %330

330:                                              ; preds = %329, %317
  br label %331

331:                                              ; preds = %330
  br label %332

332:                                              ; preds = %331
  br label %333

333:                                              ; preds = %332
  %334 = call i32 @greatest_pre_test(ptr noundef @.str.17)
  %335 = icmp eq i32 %334, 1
  br i1 %335, label %336, label %341

336:                                              ; preds = %333
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #5
  %337 = load i64, ptr %1, align 8, !tbaa !5
  %338 = trunc i64 %337 to i32
  %339 = call i32 @list_version_test(i32 noundef %338)
  store i32 %339, ptr %18, align 4, !tbaa !9
  %340 = load i32, ptr %18, align 4, !tbaa !9
  call void @greatest_post_test(ptr noundef @.str.17, i32 noundef %340)
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #5
  br label %349

341:                                              ; preds = %333
  %342 = load i32, ptr @greatest_info, align 8, !tbaa !11
  %343 = and i32 %342, 4
  %344 = icmp ne i32 %343, 0
  br i1 %344, label %345, label %348

345:                                              ; preds = %341
  %346 = load ptr, ptr @stdout, align 8, !tbaa !15
  %347 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %346, ptr noundef @.str.1, ptr noundef @.str.17) #5
  br label %348

348:                                              ; preds = %345, %341
  br label %349

349:                                              ; preds = %348, %336
  br label %350

350:                                              ; preds = %349
  br label %351

351:                                              ; preds = %350
  br label %352

352:                                              ; preds = %351
  %353 = call i32 @greatest_pre_test(ptr noundef @.str.18)
  %354 = icmp eq i32 %353, 1
  br i1 %354, label %355, label %360

355:                                              ; preds = %352
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #5
  %356 = load i64, ptr %1, align 8, !tbaa !5
  %357 = trunc i64 %356 to i32
  %358 = call i32 @set_version_test(i32 noundef %357)
  store i32 %358, ptr %19, align 4, !tbaa !9
  %359 = load i32, ptr %19, align 4, !tbaa !9
  call void @greatest_post_test(ptr noundef @.str.18, i32 noundef %359)
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #5
  br label %368

360:                                              ; preds = %352
  %361 = load i32, ptr @greatest_info, align 8, !tbaa !11
  %362 = and i32 %361, 4
  %363 = icmp ne i32 %362, 0
  br i1 %363, label %364, label %367

364:                                              ; preds = %360
  %365 = load ptr, ptr @stdout, align 8, !tbaa !15
  %366 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %365, ptr noundef @.str.1, ptr noundef @.str.18) #5
  br label %367

367:                                              ; preds = %364, %360
  br label %368

368:                                              ; preds = %367, %355
  br label %369

369:                                              ; preds = %368
  br label %370

370:                                              ; preds = %369
  br label %371

371:                                              ; preds = %370
  %372 = call i32 @greatest_pre_test(ptr noundef @.str.19)
  %373 = icmp eq i32 %372, 1
  br i1 %373, label %374, label %379

374:                                              ; preds = %371
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #5
  %375 = load i64, ptr %1, align 8, !tbaa !5
  %376 = trunc i64 %375 to i32
  %377 = call i32 @zset_version_test(i32 noundef %376)
  store i32 %377, ptr %20, align 4, !tbaa !9
  %378 = load i32, ptr %20, align 4, !tbaa !9
  call void @greatest_post_test(ptr noundef @.str.19, i32 noundef %378)
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #5
  br label %387

379:                                              ; preds = %371
  %380 = load i32, ptr @greatest_info, align 8, !tbaa !11
  %381 = and i32 %380, 4
  %382 = icmp ne i32 %381, 0
  br i1 %382, label %383, label %386

383:                                              ; preds = %379
  %384 = load ptr, ptr @stdout, align 8, !tbaa !15
  %385 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %384, ptr noundef @.str.1, ptr noundef @.str.19) #5
  br label %386

386:                                              ; preds = %383, %379
  br label %387

387:                                              ; preds = %386, %374
  br label %388

388:                                              ; preds = %387
  br label %389

389:                                              ; preds = %388
  br label %390

390:                                              ; preds = %389
  %391 = call i32 @greatest_pre_test(ptr noundef @.str.20)
  %392 = icmp eq i32 %391, 1
  br i1 %392, label %393, label %398

393:                                              ; preds = %390
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #5
  %394 = load i64, ptr %1, align 8, !tbaa !5
  %395 = trunc i64 %394 to i32
  %396 = call i32 @hash_version_test(i32 noundef %395)
  store i32 %396, ptr %21, align 4, !tbaa !9
  %397 = load i32, ptr %21, align 4, !tbaa !9
  call void @greatest_post_test(ptr noundef @.str.20, i32 noundef %397)
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #5
  br label %406

398:                                              ; preds = %390
  %399 = load i32, ptr @greatest_info, align 8, !tbaa !11
  %400 = and i32 %399, 4
  %401 = icmp ne i32 %400, 0
  br i1 %401, label %402, label %405

402:                                              ; preds = %398
  %403 = load ptr, ptr @stdout, align 8, !tbaa !15
  %404 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %403, ptr noundef @.str.1, ptr noundef @.str.20) #5
  br label %405

405:                                              ; preds = %402, %398
  br label %406

406:                                              ; preds = %405, %393
  br label %407

407:                                              ; preds = %406
  br label %408

408:                                              ; preds = %407
  br label %409

409:                                              ; preds = %408
  %410 = call i32 @greatest_pre_test(ptr noundef @.str.21)
  %411 = icmp eq i32 %410, 1
  br i1 %411, label %412, label %417

412:                                              ; preds = %409
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #5
  %413 = load i64, ptr %1, align 8, !tbaa !5
  %414 = trunc i64 %413 to i32
  %415 = call i32 @watch_test(i32 noundef %414)
  store i32 %415, ptr %22, align 4, !tbaa !9
  %416 = load i32, ptr %22, align 4, !tbaa !9
  call void @greatest_post_test(ptr noundef @.str.21, i32 noundef %416)
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #5
  br label %425

417:                                              ; preds = %409
  %418 = load i32, ptr @greatest_info, align 8, !tbaa !11
  %419 = and i32 %418, 4
  %420 = icmp ne i32 %419, 0
  br i1 %420, label %421, label %424

421:                                              ; preds = %417
  %422 = load ptr, ptr @stdout, align 8, !tbaa !15
  %423 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %422, ptr noundef @.str.1, ptr noundef @.str.21) #5
  br label %424

424:                                              ; preds = %421, %417
  br label %425

425:                                              ; preds = %424, %412
  br label %426

426:                                              ; preds = %425
  br label %427

427:                                              ; preds = %426
  br label %428

428:                                              ; preds = %427
  %429 = load i64, ptr %1, align 8, !tbaa !5
  %430 = add nsw i64 %429, 1
  store i64 %430, ptr %1, align 8, !tbaa !5
  br label %25, !llvm.loop !16

431:                                              ; preds = %25
  br label %432

432:                                              ; preds = %431
  %433 = call i32 @greatest_pre_test(ptr noundef @.str.22)
  %434 = icmp eq i32 %433, 1
  br i1 %434, label %435, label %443

435:                                              ; preds = %432
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #5
  %436 = call i32 @_setjmp(ptr noundef getelementptr inbounds (%struct.greatest_run_info, ptr @greatest_info, i32 0, i32 20)) #6
  store i32 %436, ptr %23, align 4, !tbaa !9
  %437 = load i32, ptr %23, align 4, !tbaa !9
  %438 = icmp eq i32 %437, 0
  br i1 %438, label %439, label %441

439:                                              ; preds = %435
  %440 = call i32 @basic_test_get_unexisting()
  store i32 %440, ptr %23, align 4, !tbaa !9
  br label %441

441:                                              ; preds = %439, %435
  %442 = load i32, ptr %23, align 4, !tbaa !9
  call void @greatest_post_test(ptr noundef @.str.22, i32 noundef %442)
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #5
  br label %451

443:                                              ; preds = %432
  %444 = load i32, ptr @greatest_info, align 8, !tbaa !11
  %445 = and i32 %444, 4
  %446 = icmp ne i32 %445, 0
  br i1 %446, label %447, label %450

447:                                              ; preds = %443
  %448 = load ptr, ptr @stdout, align 8, !tbaa !15
  %449 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %448, ptr noundef @.str.1, ptr noundef @.str.22) #5
  br label %450

450:                                              ; preds = %447, %443
  br label %451

451:                                              ; preds = %450, %441
  br label %452

452:                                              ; preds = %451
  br label %453

453:                                              ; preds = %452
  br label %454

454:                                              ; preds = %453
  %455 = call i32 @greatest_pre_test(ptr noundef @.str.23)
  %456 = icmp eq i32 %455, 1
  br i1 %456, label %457, label %465

457:                                              ; preds = %454
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #5
  %458 = call i32 @_setjmp(ptr noundef getelementptr inbounds (%struct.greatest_run_info, ptr @greatest_info, i32 0, i32 20)) #6
  store i32 %458, ptr %24, align 4, !tbaa !9
  %459 = load i32, ptr %24, align 4, !tbaa !9
  %460 = icmp eq i32 %459, 0
  br i1 %460, label %461, label %463

461:                                              ; preds = %457
  %462 = call i32 @basic_test_set_delete()
  store i32 %462, ptr %24, align 4, !tbaa !9
  br label %463

463:                                              ; preds = %461, %457
  %464 = load i32, ptr %24, align 4, !tbaa !9
  call void @greatest_post_test(ptr noundef @.str.23, i32 noundef %464)
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #5
  br label %473

465:                                              ; preds = %454
  %466 = load i32, ptr @greatest_info, align 8, !tbaa !11
  %467 = and i32 %466, 4
  %468 = icmp ne i32 %467, 0
  br i1 %468, label %469, label %472

469:                                              ; preds = %465
  %470 = load ptr, ptr @stdout, align 8, !tbaa !15
  %471 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %470, ptr noundef @.str.1, ptr noundef @.str.23) #5
  br label %472

472:                                              ; preds = %469, %465
  br label %473

473:                                              ; preds = %472, %463
  br label %474

474:                                              ; preds = %473
  br label %475

475:                                              ; preds = %474
  call void @llvm.lifetime.end.p0(i64 8, ptr %1) #5
  ret void
}

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

declare i32 @greatest_pre_test(ptr noundef) #2

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

declare void @greatest_post_test(ptr noundef, i32 noundef) #2

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: nounwind returns_twice
declare i32 @_setjmp(ptr noundef) #4

; Function Attrs: nounwind uwtable
declare hidden i32 @basic_test_get_unexisting() #0

; Function Attrs: nounwind uwtable
declare hidden i32 @basic_test_set_delete() #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 = { "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 "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { nounwind returns_twice "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { nounwind }
attributes #6 = { nounwind returns_twice }

!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 = !{!"long", !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 = !{!"greatest_run_info", !10, i64 0, !10, i64 4, !10, i64 8, !10, i64 12, !10, i64 16, !10, i64 20, !13, i64 24, !14, i64 72, !10, i64 80, !14, i64 88, !14, i64 96, !14, i64 104, !14, i64 112, !14, i64 120, !10, i64 128, !10, i64 132, !14, i64 136, !14, i64 144, !6, i64 152, !6, i64 160, !7, i64 168}
!13 = !{!"greatest_suite_info", !10, i64 0, !10, i64 4, !10, i64 8, !10, i64 12, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40}
!14 = !{!"any pointer", !7, i64 0}
!15 = !{!14, !14, i64 0}
!16 = distinct !{!16, !17}
!17 = !{!"llvm.loop.mustprogress"}


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

%struct.greatest_run_info = type { i32, i32, i32, i32, i32, i32, %struct.greatest_suite_info, ptr, i32, ptr, ptr, ptr, ptr, ptr, i32, i32, ptr, ptr, i64, i64, [1 x %struct.__jmp_buf_tag] }
%struct.greatest_suite_info = type { i32, i32, i32, i32, i64, i64, i64, i64 }
%struct.__jmp_buf_tag = type { [8 x i64], i32, %struct.__sigset_t }
%struct.__sigset_t = type { [16 x i64] }

@.str = external hidden unnamed_addr constant [19 x i8], align 1
@greatest_info = external global %struct.greatest_run_info, align 8
@stdout = external local_unnamed_addr global ptr, align 8
@.str.1 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [22 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local void @key_test() local_unnamed_addr #0 {
  br label %1

1:                                                ; preds = %0, %253
  %.04974 = phi i64 [ 0, %0 ], [ %254, %253 ]
  %2 = call i32 @greatest_pre_test(ptr noundef nonnull @.str) #4
  %3 = icmp eq i32 %2, 1
  br i1 %3, label %4, label %7

4:                                                ; preds = %1
  %5 = trunc nuw i64 %.04974 to i32
  %6 = call i32 @basic_test_set_get(i32 noundef %5)
  call void @greatest_post_test(ptr noundef nonnull @.str, i32 noundef %6) #4
  br label %13

7:                                                ; preds = %1
  %8 = load i32, ptr @greatest_info, align 8, !tbaa !5
  %9 = and i32 %8, 4
  %.not53 = icmp eq i32 %9, 0
  br i1 %.not53, label %13, label %10

10:                                               ; preds = %7
  %11 = load ptr, ptr @stdout, align 8, !tbaa !13
  %12 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11, ptr noundef nonnull @.str.1, ptr noundef nonnull @.str) #4
  br label %13

13:                                               ; preds = %4, %10, %7
  %14 = call i32 @greatest_pre_test(ptr noundef nonnull @.str.2) #4
  %15 = icmp eq i32 %14, 1
  br i1 %15, label %16, label %19

16:                                               ; preds = %13
  %17 = trunc nuw i64 %.04974 to i32
  %18 = call i32 @basic_test_get_or_create(i32 noundef %17)
  call void @greatest_post_test(ptr noundef nonnull @.str.2, i32 noundef %18) #4
  br label %25

19:                                               ; preds = %13
  %20 = load i32, ptr @greatest_info, align 8, !tbaa !5
  %21 = and i32 %20, 4
  %.not54 = icmp eq i32 %21, 0
  br i1 %.not54, label %25, label %22

22:                                               ; preds = %19
  %23 = load ptr, ptr @stdout, align 8, !tbaa !13
  %24 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %23, ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.2) #4
  br label %25

25:                                               ; preds = %16, %22, %19
  %26 = call i32 @greatest_pre_test(ptr noundef nonnull @.str.3) #4
  %27 = icmp eq i32 %26, 1
  br i1 %27, label %28, label %31

28:                                               ; preds = %25
  %29 = trunc nuw i64 %.04974 to i32
  %30 = call i32 @basic_test_multidb(i32 noundef %29)
  call void @greatest_post_test(ptr noundef nonnull @.str.3, i32 noundef %30) #4
  br label %37

31:                                               ; preds = %25
  %32 = load i32, ptr @greatest_info, align 8, !tbaa !5
  %33 = and i32 %32, 4
  %.not55 = icmp eq i32 %33, 0
  br i1 %.not55, label %37, label %34

34:                                               ; preds = %31
  %35 = load ptr, ptr @stdout, align 8, !tbaa !13
  %36 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %35, ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.3) #4
  br label %37

37:                                               ; preds = %28, %34, %31
  %38 = call i32 @greatest_pre_test(ptr noundef nonnull @.str.4) #4
  %39 = icmp eq i32 %38, 1
  br i1 %39, label %40, label %43

40:                                               ; preds = %37
  %41 = trunc nuw i64 %.04974 to i32
  %42 = call i32 @basic_test_move(i32 noundef %41)
  call void @greatest_post_test(ptr noundef nonnull @.str.4, i32 noundef %42) #4
  br label %49

43:                                               ; preds = %37
  %44 = load i32, ptr @greatest_info, align 8, !tbaa !5
  %45 = and i32 %44, 4
  %.not56 = icmp eq i32 %45, 0
  br i1 %.not56, label %49, label %46

46:                                               ; preds = %43
  %47 = load ptr, ptr @stdout, align 8, !tbaa !13
  %48 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %47, ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.4) #4
  br label %49

49:                                               ; preds = %40, %46, %43
  %50 = call i32 @greatest_pre_test(ptr noundef nonnull @.str.5) #4
  %51 = icmp eq i32 %50, 1
  br i1 %51, label %52, label %55

52:                                               ; preds = %49
  %53 = trunc nuw i64 %.04974 to i32
  %54 = call i32 @existing_test_move(i32 noundef %53)
  call void @greatest_post_test(ptr noundef nonnull @.str.5, i32 noundef %54) #4
  br label %61

55:                                               ; preds = %49
  %56 = load i32, ptr @greatest_info, align 8, !tbaa !5
  %57 = and i32 %56, 4
  %.not57 = icmp eq i32 %57, 0
  br i1 %.not57, label %61, label %58

58:                                               ; preds = %55
  %59 = load ptr, ptr @stdout, align 8, !tbaa !13
  %60 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %59, ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.5) #4
  br label %61

61:                                               ; preds = %52, %58, %55
  %62 = call i32 @greatest_pre_test(ptr noundef nonnull @.str.6) #4
  %63 = icmp eq i32 %62, 1
  br i1 %63, label %64, label %67

64:                                               ; preds = %61
  %65 = trunc nuw i64 %.04974 to i32
  %66 = call i32 @basic_test_expires(i32 noundef %65)
  call void @greatest_post_test(ptr noundef nonnull @.str.6, i32 noundef %66) #4
  br label %73

67:                                               ; preds = %61
  %68 = load i32, ptr @greatest_info, align 8, !tbaa !5
  %69 = and i32 %68, 4
  %.not58 = icmp eq i32 %69, 0
  br i1 %.not58, label %73, label %70

70:                                               ; preds = %67
  %71 = load ptr, ptr @stdout, align 8, !tbaa !13
  %72 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %71, ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.6) #4
  br label %73

73:                                               ; preds = %64, %70, %67
  %74 = call i32 @greatest_pre_test(ptr noundef nonnull @.str.7) #4
  %75 = icmp eq i32 %74, 1
  br i1 %75, label %76, label %79

76:                                               ; preds = %73
  %77 = trunc nuw i64 %.04974 to i32
  %78 = call i32 @basic_test_change_expiration(i32 noundef %77)
  call void @greatest_post_test(ptr noundef nonnull @.str.7, i32 noundef %78) #4
  br label %85

79:                                               ; preds = %73
  %80 = load i32, ptr @greatest_info, align 8, !tbaa !5
  %81 = and i32 %80, 4
  %.not59 = icmp eq i32 %81, 0
  br i1 %.not59, label %85, label %82

82:                                               ; preds = %79
  %83 = load ptr, ptr @stdout, align 8, !tbaa !13
  %84 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %83, ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.7) #4
  br label %85

85:                                               ; preds = %76, %82, %79
  %86 = call i32 @greatest_pre_test(ptr noundef nonnull @.str.8) #4
  %87 = icmp eq i32 %86, 1
  br i1 %87, label %88, label %91

88:                                               ; preds = %85
  %89 = trunc nuw i64 %.04974 to i32
  %90 = call i32 @test_delete_with_value(i32 noundef %89)
  call void @greatest_post_test(ptr noundef nonnull @.str.8, i32 noundef %90) #4
  br label %97

91:                                               ; preds = %85
  %92 = load i32, ptr @greatest_info, align 8, !tbaa !5
  %93 = and i32 %92, 4
  %.not60 = icmp eq i32 %93, 0
  br i1 %.not60, label %97, label %94

94:                                               ; preds = %91
  %95 = load ptr, ptr @stdout, align 8, !tbaa !13
  %96 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %95, ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.8) #4
  br label %97

97:                                               ; preds = %88, %94, %91
  %98 = call i32 @greatest_pre_test(ptr noundef nonnull @.str.9) #4
  %99 = icmp eq i32 %98, 1
  br i1 %99, label %100, label %103

100:                                              ; preds = %97
  %101 = trunc nuw i64 %.04974 to i32
  %102 = call i32 @test_rename_ok(i32 noundef %101)
  call void @greatest_post_test(ptr noundef nonnull @.str.9, i32 noundef %102) #4
  br label %109

103:                                              ; preds = %97
  %104 = load i32, ptr @greatest_info, align 8, !tbaa !5
  %105 = and i32 %104, 4
  %.not61 = icmp eq i32 %105, 0
  br i1 %.not61, label %109, label %106

106:                                              ; preds = %103
  %107 = load ptr, ptr @stdout, align 8, !tbaa !13
  %108 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %107, ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.9) #4
  br label %109

109:                                              ; preds = %100, %106, %103
  %110 = call i32 @greatest_pre_test(ptr noundef nonnull @.str.10) #4
  %111 = icmp eq i32 %110, 1
  br i1 %111, label %112, label %115

112:                                              ; preds = %109
  %113 = trunc nuw i64 %.04974 to i32
  %114 = call i32 @test_rename_overwrite(i32 noundef %113)
  call void @greatest_post_test(ptr noundef nonnull @.str.10, i32 noundef %114) #4
  br label %121

115:                                              ; preds = %109
  %116 = load i32, ptr @greatest_info, align 8, !tbaa !5
  %117 = and i32 %116, 4
  %.not62 = icmp eq i32 %117, 0
  br i1 %.not62, label %121, label %118

118:                                              ; preds = %115
  %119 = load ptr, ptr @stdout, align 8, !tbaa !13
  %120 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %119, ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.10) #4
  br label %121

121:                                              ; preds = %112, %118, %115
  %122 = call i32 @greatest_pre_test(ptr noundef nonnull @.str.11) #4
  %123 = icmp eq i32 %122, 1
  br i1 %123, label %124, label %127

124:                                              ; preds = %121
  %125 = trunc nuw i64 %.04974 to i32
  %126 = call i32 @test_rename_no_overwrite(i32 noundef %125)
  call void @greatest_post_test(ptr noundef nonnull @.str.11, i32 noundef %126) #4
  br label %133

127:                                              ; preds = %121
  %128 = load i32, ptr @greatest_info, align 8, !tbaa !5
  %129 = and i32 %128, 4
  %.not63 = icmp eq i32 %129, 0
  br i1 %.not63, label %133, label %130

130:                                              ; preds = %127
  %131 = load ptr, ptr @stdout, align 8, !tbaa !13
  %132 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %131, ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.11) #4
  br label %133

133:                                              ; preds = %124, %130, %127
  %134 = call i32 @greatest_pre_test(ptr noundef nonnull @.str.12) #4
  %135 = icmp eq i32 %134, 1
  br i1 %135, label %136, label %139

136:                                              ; preds = %133
  %137 = trunc nuw i64 %.04974 to i32
  %138 = call i32 @test_dbsize(i32 noundef %137)
  call void @greatest_post_test(ptr noundef nonnull @.str.12, i32 noundef %138) #4
  br label %145

139:                                              ; preds = %133
  %140 = load i32, ptr @greatest_info, align 8, !tbaa !5
  %141 = and i32 %140, 4
  %.not64 = icmp eq i32 %141, 0
  br i1 %.not64, label %145, label %142

142:                                              ; preds = %139
  %143 = load ptr, ptr @stdout, align 8, !tbaa !13
  %144 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %143, ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.12) #4
  br label %145

145:                                              ; preds = %136, %142, %139
  %146 = call i32 @greatest_pre_test(ptr noundef nonnull @.str.13) #4
  %147 = icmp eq i32 %146, 1
  br i1 %147, label %148, label %151

148:                                              ; preds = %145
  %149 = trunc nuw i64 %.04974 to i32
  %150 = call i32 @test_keys(i32 noundef %149)
  call void @greatest_post_test(ptr noundef nonnull @.str.13, i32 noundef %150) #4
  br label %157

151:                                              ; preds = %145
  %152 = load i32, ptr @greatest_info, align 8, !tbaa !5
  %153 = and i32 %152, 4
  %.not65 = icmp eq i32 %153, 0
  br i1 %.not65, label %157, label %154

154:                                              ; preds = %151
  %155 = load ptr, ptr @stdout, align 8, !tbaa !13
  %156 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %155, ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.13) #4
  br label %157

157:                                              ; preds = %148, %154, %151
  %158 = call i32 @greatest_pre_test(ptr noundef nonnull @.str.14) #4
  %159 = icmp eq i32 %158, 1
  br i1 %159, label %160, label %163

160:                                              ; preds = %157
  %161 = trunc nuw i64 %.04974 to i32
  %162 = call i32 @test_randomkey(i32 noundef %161)
  call void @greatest_post_test(ptr noundef nonnull @.str.14, i32 noundef %162) #4
  br label %169

163:                                              ; preds = %157
  %164 = load i32, ptr @greatest_info, align 8, !tbaa !5
  %165 = and i32 %164, 4
  %.not66 = icmp eq i32 %165, 0
  br i1 %.not66, label %169, label %166

166:                                              ; preds = %163
  %167 = load ptr, ptr @stdout, align 8, !tbaa !13
  %168 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %167, ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.14) #4
  br label %169

169:                                              ; preds = %160, %166, %163
  %170 = call i32 @greatest_pre_test(ptr noundef nonnull @.str.15) #4
  %171 = icmp eq i32 %170, 1
  br i1 %171, label %172, label %175

172:                                              ; preds = %169
  %173 = trunc nuw i64 %.04974 to i32
  %174 = call i32 @test_flushdb(i32 noundef %173)
  call void @greatest_post_test(ptr noundef nonnull @.str.15, i32 noundef %174) #4
  br label %181

175:                                              ; preds = %169
  %176 = load i32, ptr @greatest_info, align 8, !tbaa !5
  %177 = and i32 %176, 4
  %.not67 = icmp eq i32 %177, 0
  br i1 %.not67, label %181, label %178

178:                                              ; preds = %175
  %179 = load ptr, ptr @stdout, align 8, !tbaa !13
  %180 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %179, ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.15) #4
  br label %181

181:                                              ; preds = %172, %178, %175
  %182 = call i32 @greatest_pre_test(ptr noundef nonnull @.str.16) #4
  %183 = icmp eq i32 %182, 1
  br i1 %183, label %184, label %187

184:                                              ; preds = %181
  %185 = trunc nuw i64 %.04974 to i32
  %186 = call i32 @string_version_test(i32 noundef %185)
  call void @greatest_post_test(ptr noundef nonnull @.str.16, i32 noundef %186) #4
  br label %193

187:                                              ; preds = %181
  %188 = load i32, ptr @greatest_info, align 8, !tbaa !5
  %189 = and i32 %188, 4
  %.not68 = icmp eq i32 %189, 0
  br i1 %.not68, label %193, label %190

190:                                              ; preds = %187
  %191 = load ptr, ptr @stdout, align 8, !tbaa !13
  %192 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %191, ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.16) #4
  br label %193

193:                                              ; preds = %184, %190, %187
  %194 = call i32 @greatest_pre_test(ptr noundef nonnull @.str.17) #4
  %195 = icmp eq i32 %194, 1
  br i1 %195, label %196, label %199

196:                                              ; preds = %193
  %197 = trunc nuw i64 %.04974 to i32
  %198 = call i32 @list_version_test(i32 noundef %197)
  call void @greatest_post_test(ptr noundef nonnull @.str.17, i32 noundef %198) #4
  br label %205

199:                                              ; preds = %193
  %200 = load i32, ptr @greatest_info, align 8, !tbaa !5
  %201 = and i32 %200, 4
  %.not69 = icmp eq i32 %201, 0
  br i1 %.not69, label %205, label %202

202:                                              ; preds = %199
  %203 = load ptr, ptr @stdout, align 8, !tbaa !13
  %204 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %203, ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.17) #4
  br label %205

205:                                              ; preds = %196, %202, %199
  %206 = call i32 @greatest_pre_test(ptr noundef nonnull @.str.18) #4
  %207 = icmp eq i32 %206, 1
  br i1 %207, label %208, label %211

208:                                              ; preds = %205
  %209 = trunc nuw i64 %.04974 to i32
  %210 = call i32 @set_version_test(i32 noundef %209)
  call void @greatest_post_test(ptr noundef nonnull @.str.18, i32 noundef %210) #4
  br label %217

211:                                              ; preds = %205
  %212 = load i32, ptr @greatest_info, align 8, !tbaa !5
  %213 = and i32 %212, 4
  %.not70 = icmp eq i32 %213, 0
  br i1 %.not70, label %217, label %214

214:                                              ; preds = %211
  %215 = load ptr, ptr @stdout, align 8, !tbaa !13
  %216 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %215, ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.18) #4
  br label %217

217:                                              ; preds = %208, %214, %211
  %218 = call i32 @greatest_pre_test(ptr noundef nonnull @.str.19) #4
  %219 = icmp eq i32 %218, 1
  br i1 %219, label %220, label %223

220:                                              ; preds = %217
  %221 = trunc nuw i64 %.04974 to i32
  %222 = call i32 @zset_version_test(i32 noundef %221)
  call void @greatest_post_test(ptr noundef nonnull @.str.19, i32 noundef %222) #4
  br label %229

223:                                              ; preds = %217
  %224 = load i32, ptr @greatest_info, align 8, !tbaa !5
  %225 = and i32 %224, 4
  %.not71 = icmp eq i32 %225, 0
  br i1 %.not71, label %229, label %226

226:                                              ; preds = %223
  %227 = load ptr, ptr @stdout, align 8, !tbaa !13
  %228 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %227, ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.19) #4
  br label %229

229:                                              ; preds = %220, %226, %223
  %230 = call i32 @greatest_pre_test(ptr noundef nonnull @.str.20) #4
  %231 = icmp eq i32 %230, 1
  br i1 %231, label %232, label %235

232:                                              ; preds = %229
  %233 = trunc nuw i64 %.04974 to i32
  %234 = call i32 @hash_version_test(i32 noundef %233)
  call void @greatest_post_test(ptr noundef nonnull @.str.20, i32 noundef %234) #4
  br label %241

235:                                              ; preds = %229
  %236 = load i32, ptr @greatest_info, align 8, !tbaa !5
  %237 = and i32 %236, 4
  %.not72 = icmp eq i32 %237, 0
  br i1 %.not72, label %241, label %238

238:                                              ; preds = %235
  %239 = load ptr, ptr @stdout, align 8, !tbaa !13
  %240 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %239, ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.20) #4
  br label %241

241:                                              ; preds = %232, %238, %235
  %242 = call i32 @greatest_pre_test(ptr noundef nonnull @.str.21) #4
  %243 = icmp eq i32 %242, 1
  br i1 %243, label %244, label %247

244:                                              ; preds = %241
  %245 = trunc nuw i64 %.04974 to i32
  %246 = call i32 @watch_test(i32 noundef %245)
  call void @greatest_post_test(ptr noundef nonnull @.str.21, i32 noundef %246) #4
  br label %253

247:                                              ; preds = %241
  %248 = load i32, ptr @greatest_info, align 8, !tbaa !5
  %249 = and i32 %248, 4
  %.not73 = icmp eq i32 %249, 0
  br i1 %.not73, label %253, label %250

250:                                              ; preds = %247
  %251 = load ptr, ptr @stdout, align 8, !tbaa !13
  %252 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %251, ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.21) #4
  br label %253

253:                                              ; preds = %244, %250, %247
  %254 = add nuw nsw i64 %.04974, 1
  %exitcond.not = icmp eq i64 %254, 3
  br i1 %exitcond.not, label %255, label %1, !llvm.loop !14

255:                                              ; preds = %253
  %256 = call i32 @greatest_pre_test(ptr noundef nonnull @.str.22) #4
  %257 = icmp eq i32 %256, 1
  br i1 %257, label %258, label %264

258:                                              ; preds = %255
  %259 = call i32 @_setjmp(ptr noundef nonnull getelementptr inbounds (i8, ptr @greatest_info, i64 168)) #5
  %260 = icmp eq i32 %259, 0
  br i1 %260, label %261, label %263

261:                                              ; preds = %258
  %262 = call i32 @basic_test_get_unexisting()
  br label %263

263:                                              ; preds = %261, %258
  %.048 = phi i32 [ %262, %261 ], [ %259, %258 ]
  call void @greatest_post_test(ptr noundef nonnull @.str.22, i32 noundef %.048) #4
  br label %270

264:                                              ; preds = %255
  %265 = load i32, ptr @greatest_info, align 8, !tbaa !5
  %266 = and i32 %265, 4
  %.not = icmp eq i32 %266, 0
  br i1 %.not, label %270, label %267

267:                                              ; preds = %264
  %268 = load ptr, ptr @stdout, align 8, !tbaa !13
  %269 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %268, ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.22) #4
  br label %270

270:                                              ; preds = %263, %267, %264
  %271 = call i32 @greatest_pre_test(ptr noundef nonnull @.str.23) #4
  %272 = icmp eq i32 %271, 1
  br i1 %272, label %273, label %279

273:                                              ; preds = %270
  %274 = call i32 @_setjmp(ptr noundef nonnull getelementptr inbounds (i8, ptr @greatest_info, i64 168)) #5
  %275 = icmp eq i32 %274, 0
  br i1 %275, label %276, label %278

276:                                              ; preds = %273
  %277 = call i32 @basic_test_set_delete()
  br label %278

278:                                              ; preds = %276, %273
  %.0 = phi i32 [ %277, %276 ], [ %274, %273 ]
  call void @greatest_post_test(ptr noundef nonnull @.str.23, i32 noundef %.0) #4
  br label %285

279:                                              ; preds = %270
  %280 = load i32, ptr @greatest_info, align 8, !tbaa !5
  %281 = and i32 %280, 4
  %.not52 = icmp eq i32 %281, 0
  br i1 %.not52, label %285, label %282

282:                                              ; preds = %279
  %283 = load ptr, ptr @stdout, align 8, !tbaa !13
  %284 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %283, ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.23) #4
  br label %285

285:                                              ; preds = %279, %282, %278
  ret void
}

declare i32 @greatest_pre_test(ptr noundef) local_unnamed_addr #1

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

declare void @greatest_post_test(ptr noundef, i32 noundef) local_unnamed_addr #1

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: nounwind returns_twice
declare i32 @_setjmp(ptr noundef) local_unnamed_addr #3

; Function Attrs: nounwind uwtable
declare hidden i32 @basic_test_get_unexisting() local_unnamed_addr #0

; Function Attrs: nounwind uwtable
declare hidden i32 @basic_test_set_delete() local_unnamed_addr #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 = { "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 = { nofree nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { nounwind returns_twice "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { nounwind }
attributes #5 = { nounwind returns_twice }

!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, !7, i64 0}
!6 = !{!"greatest_run_info", !7, i64 0, !7, i64 4, !7, i64 8, !7, i64 12, !7, i64 16, !7, i64 20, !10, i64 24, !12, i64 72, !7, i64 80, !12, i64 88, !12, i64 96, !12, i64 104, !12, i64 112, !12, i64 120, !7, i64 128, !7, i64 132, !12, i64 136, !12, i64 144, !11, i64 152, !11, i64 160, !8, i64 168}
!7 = !{!"int", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C/C++ TBAA"}
!10 = !{!"greatest_suite_info", !7, i64 0, !7, i64 4, !7, i64 8, !7, i64 12, !11, i64 16, !11, i64 24, !11, i64 32, !11, i64 40}
!11 = !{!"long", !8, i64 0}
!12 = !{!"any pointer", !8, i64 0}
!13 = !{!12, !12, i64 0}
!14 = distinct !{!14, !15}
!15 = !{!"llvm.loop.mustprogress"}


; Effective O3 passes: GlobalOptPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,LoopRotatePass,SROAPass,SimplifyCFGPass