; LLVM IR from seppo0010/rlite :: tests (type_hash-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 [21 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 [24 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [18 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local void @type_hash_test() #0 {
  %1 = alloca i32, align 4
  %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
  call void @llvm.lifetime.start.p0(i64 4, ptr %1) #5
  store i32 0, ptr %1, align 4, !tbaa !5
  br label %17

17:                                               ; preds = %273, %0
  %18 = load i32, ptr %1, align 4, !tbaa !5
  %19 = icmp slt i32 %18, 3
  br i1 %19, label %20, label %276

20:                                               ; preds = %17
  br label %21

21:                                               ; preds = %20
  %22 = call i32 @greatest_pre_test(ptr noundef @.str)
  %23 = icmp eq i32 %22, 1
  br i1 %23, label %24, label %28

24:                                               ; preds = %21
  call void @llvm.lifetime.start.p0(i64 4, ptr %2) #5
  %25 = load i32, ptr %1, align 4, !tbaa !5
  %26 = call i32 @basic_test_hset_hget(i32 noundef %25)
  store i32 %26, ptr %2, align 4, !tbaa !5
  %27 = load i32, ptr %2, align 4, !tbaa !5
  call void @greatest_post_test(ptr noundef @.str, i32 noundef %27)
  call void @llvm.lifetime.end.p0(i64 4, ptr %2) #5
  br label %36

28:                                               ; preds = %21
  %29 = load i32, ptr @greatest_info, align 8, !tbaa !9
  %30 = and i32 %29, 4
  %31 = icmp ne i32 %30, 0
  br i1 %31, label %32, label %35

32:                                               ; preds = %28
  %33 = load ptr, ptr @stdout, align 8, !tbaa !14
  %34 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %33, ptr noundef @.str.1, ptr noundef @.str) #5
  br label %35

35:                                               ; preds = %32, %28
  br label %36

36:                                               ; preds = %35, %24
  br label %37

37:                                               ; preds = %36
  br label %38

38:                                               ; preds = %37
  br label %39

39:                                               ; preds = %38
  %40 = call i32 @greatest_pre_test(ptr noundef @.str.2)
  %41 = icmp eq i32 %40, 1
  br i1 %41, label %42, label %46

42:                                               ; preds = %39
  call void @llvm.lifetime.start.p0(i64 4, ptr %3) #5
  %43 = load i32, ptr %1, align 4, !tbaa !5
  %44 = call i32 @basic_test_hset_hexists(i32 noundef %43)
  store i32 %44, ptr %3, align 4, !tbaa !5
  %45 = load i32, ptr %3, align 4, !tbaa !5
  call void @greatest_post_test(ptr noundef @.str.2, i32 noundef %45)
  call void @llvm.lifetime.end.p0(i64 4, ptr %3) #5
  br label %54

46:                                               ; preds = %39
  %47 = load i32, ptr @greatest_info, align 8, !tbaa !9
  %48 = and i32 %47, 4
  %49 = icmp ne i32 %48, 0
  br i1 %49, label %50, label %53

50:                                               ; preds = %46
  %51 = load ptr, ptr @stdout, align 8, !tbaa !14
  %52 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %51, ptr noundef @.str.1, ptr noundef @.str.2) #5
  br label %53

53:                                               ; preds = %50, %46
  br label %54

54:                                               ; preds = %53, %42
  br label %55

55:                                               ; preds = %54
  br label %56

56:                                               ; preds = %55
  br label %57

57:                                               ; preds = %56
  %58 = call i32 @greatest_pre_test(ptr noundef @.str.3)
  %59 = icmp eq i32 %58, 1
  br i1 %59, label %60, label %64

60:                                               ; preds = %57
  call void @llvm.lifetime.start.p0(i64 4, ptr %4) #5
  %61 = load i32, ptr %1, align 4, !tbaa !5
  %62 = call i32 @basic_test_hset_hdel(i32 noundef %61)
  store i32 %62, ptr %4, align 4, !tbaa !5
  %63 = load i32, ptr %4, align 4, !tbaa !5
  call void @greatest_post_test(ptr noundef @.str.3, i32 noundef %63)
  call void @llvm.lifetime.end.p0(i64 4, ptr %4) #5
  br label %72

64:                                               ; preds = %57
  %65 = load i32, ptr @greatest_info, align 8, !tbaa !9
  %66 = and i32 %65, 4
  %67 = icmp ne i32 %66, 0
  br i1 %67, label %68, label %71

68:                                               ; preds = %64
  %69 = load ptr, ptr @stdout, align 8, !tbaa !14
  %70 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %69, ptr noundef @.str.1, ptr noundef @.str.3) #5
  br label %71

71:                                               ; preds = %68, %64
  br label %72

72:                                               ; preds = %71, %60
  br label %73

73:                                               ; preds = %72
  br label %74

74:                                               ; preds = %73
  br label %75

75:                                               ; preds = %74
  %76 = call i32 @greatest_pre_test(ptr noundef @.str.4)
  %77 = icmp eq i32 %76, 1
  br i1 %77, label %78, label %82

78:                                               ; preds = %75
  call void @llvm.lifetime.start.p0(i64 4, ptr %5) #5
  %79 = load i32, ptr %1, align 4, !tbaa !5
  %80 = call i32 @basic_test_hset_hgetall(i32 noundef %79)
  store i32 %80, ptr %5, align 4, !tbaa !5
  %81 = load i32, ptr %5, align 4, !tbaa !5
  call void @greatest_post_test(ptr noundef @.str.4, i32 noundef %81)
  call void @llvm.lifetime.end.p0(i64 4, ptr %5) #5
  br label %90

82:                                               ; preds = %75
  %83 = load i32, ptr @greatest_info, align 8, !tbaa !9
  %84 = and i32 %83, 4
  %85 = icmp ne i32 %84, 0
  br i1 %85, label %86, label %89

86:                                               ; preds = %82
  %87 = load ptr, ptr @stdout, align 8, !tbaa !14
  %88 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %87, ptr noundef @.str.1, ptr noundef @.str.4) #5
  br label %89

89:                                               ; preds = %86, %82
  br label %90

90:                                               ; preds = %89, %78
  br label %91

91:                                               ; preds = %90
  br label %92

92:                                               ; preds = %91
  br label %93

93:                                               ; preds = %92
  %94 = call i32 @greatest_pre_test(ptr noundef @.str.5)
  %95 = icmp eq i32 %94, 1
  br i1 %95, label %96, label %100

96:                                               ; preds = %93
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #5
  %97 = load i32, ptr %1, align 4, !tbaa !5
  %98 = call i32 @basic_test_hset_hlen(i32 noundef %97)
  store i32 %98, ptr %6, align 4, !tbaa !5
  %99 = load i32, ptr %6, align 4, !tbaa !5
  call void @greatest_post_test(ptr noundef @.str.5, i32 noundef %99)
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #5
  br label %108

100:                                              ; preds = %93
  %101 = load i32, ptr @greatest_info, align 8, !tbaa !9
  %102 = and i32 %101, 4
  %103 = icmp ne i32 %102, 0
  br i1 %103, label %104, label %107

104:                                              ; preds = %100
  %105 = load ptr, ptr @stdout, align 8, !tbaa !14
  %106 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %105, ptr noundef @.str.1, ptr noundef @.str.5) #5
  br label %107

107:                                              ; preds = %104, %100
  br label %108

108:                                              ; preds = %107, %96
  br label %109

109:                                              ; preds = %108
  br label %110

110:                                              ; preds = %109
  br label %111

111:                                              ; preds = %110
  %112 = call i32 @greatest_pre_test(ptr noundef @.str.6)
  %113 = icmp eq i32 %112, 1
  br i1 %113, label %114, label %118

114:                                              ; preds = %111
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #5
  %115 = load i32, ptr %1, align 4, !tbaa !5
  %116 = call i32 @basic_test_hsetnx(i32 noundef %115)
  store i32 %116, ptr %7, align 4, !tbaa !5
  %117 = load i32, ptr %7, align 4, !tbaa !5
  call void @greatest_post_test(ptr noundef @.str.6, i32 noundef %117)
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #5
  br label %126

118:                                              ; preds = %111
  %119 = load i32, ptr @greatest_info, align 8, !tbaa !9
  %120 = and i32 %119, 4
  %121 = icmp ne i32 %120, 0
  br i1 %121, label %122, label %125

122:                                              ; preds = %118
  %123 = load ptr, ptr @stdout, align 8, !tbaa !14
  %124 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %123, ptr noundef @.str.1, ptr noundef @.str.6) #5
  br label %125

125:                                              ; preds = %122, %118
  br label %126

126:                                              ; preds = %125, %114
  br label %127

127:                                              ; preds = %126
  br label %128

128:                                              ; preds = %127
  br label %129

129:                                              ; preds = %128
  %130 = call i32 @greatest_pre_test(ptr noundef @.str.7)
  %131 = icmp eq i32 %130, 1
  br i1 %131, label %132, label %136

132:                                              ; preds = %129
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #5
  %133 = load i32, ptr %1, align 4, !tbaa !5
  %134 = call i32 @basic_test_hset_hmget(i32 noundef %133)
  store i32 %134, ptr %8, align 4, !tbaa !5
  %135 = load i32, ptr %8, align 4, !tbaa !5
  call void @greatest_post_test(ptr noundef @.str.7, i32 noundef %135)
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #5
  br label %144

136:                                              ; preds = %129
  %137 = load i32, ptr @greatest_info, align 8, !tbaa !9
  %138 = and i32 %137, 4
  %139 = icmp ne i32 %138, 0
  br i1 %139, label %140, label %143

140:                                              ; preds = %136
  %141 = load ptr, ptr @stdout, align 8, !tbaa !14
  %142 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %141, ptr noundef @.str.1, ptr noundef @.str.7) #5
  br label %143

143:                                              ; preds = %140, %136
  br label %144

144:                                              ; preds = %143, %132
  br label %145

145:                                              ; preds = %144
  br label %146

146:                                              ; preds = %145
  br label %147

147:                                              ; preds = %146
  %148 = call i32 @greatest_pre_test(ptr noundef @.str.8)
  %149 = icmp eq i32 %148, 1
  br i1 %149, label %150, label %154

150:                                              ; preds = %147
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #5
  %151 = load i32, ptr %1, align 4, !tbaa !5
  %152 = call i32 @basic_test_hmset_hmget(i32 noundef %151)
  store i32 %152, ptr %9, align 4, !tbaa !5
  %153 = load i32, ptr %9, align 4, !tbaa !5
  call void @greatest_post_test(ptr noundef @.str.8, i32 noundef %153)
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #5
  br label %162

154:                                              ; preds = %147
  %155 = load i32, ptr @greatest_info, align 8, !tbaa !9
  %156 = and i32 %155, 4
  %157 = icmp ne i32 %156, 0
  br i1 %157, label %158, label %161

158:                                              ; preds = %154
  %159 = load ptr, ptr @stdout, align 8, !tbaa !14
  %160 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %159, ptr noundef @.str.1, ptr noundef @.str.8) #5
  br label %161

161:                                              ; preds = %158, %154
  br label %162

162:                                              ; preds = %161, %150
  br label %163

163:                                              ; preds = %162
  br label %164

164:                                              ; preds = %163
  br label %165

165:                                              ; preds = %164
  %166 = call i32 @greatest_pre_test(ptr noundef @.str.9)
  %167 = icmp eq i32 %166, 1
  br i1 %167, label %168, label %172

168:                                              ; preds = %165
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #5
  %169 = load i32, ptr %1, align 4, !tbaa !5
  %170 = call i32 @basic_test_hincrby_hget(i32 noundef %169)
  store i32 %170, ptr %10, align 4, !tbaa !5
  %171 = load i32, ptr %10, align 4, !tbaa !5
  call void @greatest_post_test(ptr noundef @.str.9, i32 noundef %171)
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #5
  br label %180

172:                                              ; preds = %165
  %173 = load i32, ptr @greatest_info, align 8, !tbaa !9
  %174 = and i32 %173, 4
  %175 = icmp ne i32 %174, 0
  br i1 %175, label %176, label %179

176:                                              ; preds = %172
  %177 = load ptr, ptr @stdout, align 8, !tbaa !14
  %178 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %177, ptr noundef @.str.1, ptr noundef @.str.9) #5
  br label %179

179:                                              ; preds = %176, %172
  br label %180

180:                                              ; preds = %179, %168
  br label %181

181:                                              ; preds = %180
  br label %182

182:                                              ; preds = %181
  br label %183

183:                                              ; preds = %182
  %184 = call i32 @greatest_pre_test(ptr noundef @.str.10)
  %185 = icmp eq i32 %184, 1
  br i1 %185, label %186, label %190

186:                                              ; preds = %183
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #5
  %187 = load i32, ptr %1, align 4, !tbaa !5
  %188 = call i32 @basic_test_hincrby_invalid(i32 noundef %187)
  store i32 %188, ptr %11, align 4, !tbaa !5
  %189 = load i32, ptr %11, align 4, !tbaa !5
  call void @greatest_post_test(ptr noundef @.str.10, i32 noundef %189)
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #5
  br label %198

190:                                              ; preds = %183
  %191 = load i32, ptr @greatest_info, align 8, !tbaa !9
  %192 = and i32 %191, 4
  %193 = icmp ne i32 %192, 0
  br i1 %193, label %194, label %197

194:                                              ; preds = %190
  %195 = load ptr, ptr @stdout, align 8, !tbaa !14
  %196 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %195, ptr noundef @.str.1, ptr noundef @.str.10) #5
  br label %197

197:                                              ; preds = %194, %190
  br label %198

198:                                              ; preds = %197, %186
  br label %199

199:                                              ; preds = %198
  br label %200

200:                                              ; preds = %199
  br label %201

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

204:                                              ; preds = %201
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #5
  %205 = load i32, ptr %1, align 4, !tbaa !5
  %206 = call i32 @basic_test_hincrby_overflow(i32 noundef %205)
  store i32 %206, ptr %12, align 4, !tbaa !5
  %207 = load i32, ptr %12, align 4, !tbaa !5
  call void @greatest_post_test(ptr noundef @.str.11, i32 noundef %207)
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #5
  br label %216

208:                                              ; preds = %201
  %209 = load i32, ptr @greatest_info, align 8, !tbaa !9
  %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 !14
  %214 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %213, ptr noundef @.str.1, ptr noundef @.str.11) #5
  br label %215

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

216:                                              ; preds = %215, %204
  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.12)
  %221 = icmp eq i32 %220, 1
  br i1 %221, label %222, label %226

222:                                              ; preds = %219
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #5
  %223 = load i32, ptr %1, align 4, !tbaa !5
  %224 = call i32 @basic_test_hincrbyfloat_hget(i32 noundef %223)
  store i32 %224, ptr %13, align 4, !tbaa !5
  %225 = load i32, ptr %13, align 4, !tbaa !5
  call void @greatest_post_test(ptr noundef @.str.12, i32 noundef %225)
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #5
  br label %234

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

230:                                              ; preds = %226
  %231 = load ptr, ptr @stdout, align 8, !tbaa !14
  %232 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %231, ptr noundef @.str.1, ptr noundef @.str.12) #5
  br label %233

233:                                              ; preds = %230, %226
  br label %234

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

235:                                              ; preds = %234
  br label %236

236:                                              ; preds = %235
  br label %237

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

240:                                              ; preds = %237
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #5
  %241 = load i32, ptr %1, align 4, !tbaa !5
  %242 = call i32 @basic_test_hincrbyfloat_invalid(i32 noundef %241)
  store i32 %242, ptr %14, align 4, !tbaa !5
  %243 = load i32, ptr %14, align 4, !tbaa !5
  call void @greatest_post_test(ptr noundef @.str.13, i32 noundef %243)
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #5
  br label %252

244:                                              ; preds = %237
  %245 = load i32, ptr @greatest_info, align 8, !tbaa !9
  %246 = and i32 %245, 4
  %247 = icmp ne i32 %246, 0
  br i1 %247, label %248, label %251

248:                                              ; preds = %244
  %249 = load ptr, ptr @stdout, align 8, !tbaa !14
  %250 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %249, ptr noundef @.str.1, ptr noundef @.str.13) #5
  br label %251

251:                                              ; preds = %248, %244
  br label %252

252:                                              ; preds = %251, %240
  br label %253

253:                                              ; preds = %252
  br label %254

254:                                              ; preds = %253
  br label %255

255:                                              ; preds = %254
  %256 = call i32 @greatest_pre_test(ptr noundef @.str.14)
  %257 = icmp eq i32 %256, 1
  br i1 %257, label %258, label %262

258:                                              ; preds = %255
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #5
  %259 = load i32, ptr %1, align 4, !tbaa !5
  %260 = call i32 @basic_test_hset_del(i32 noundef %259)
  store i32 %260, ptr %15, align 4, !tbaa !5
  %261 = load i32, ptr %15, align 4, !tbaa !5
  call void @greatest_post_test(ptr noundef @.str.14, i32 noundef %261)
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #5
  br label %270

262:                                              ; preds = %255
  %263 = load i32, ptr @greatest_info, align 8, !tbaa !9
  %264 = and i32 %263, 4
  %265 = icmp ne i32 %264, 0
  br i1 %265, label %266, label %269

266:                                              ; preds = %262
  %267 = load ptr, ptr @stdout, align 8, !tbaa !14
  %268 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %267, ptr noundef @.str.1, ptr noundef @.str.14) #5
  br label %269

269:                                              ; preds = %266, %262
  br label %270

270:                                              ; preds = %269, %258
  br label %271

271:                                              ; preds = %270
  br label %272

272:                                              ; preds = %271
  br label %273

273:                                              ; preds = %272
  %274 = load i32, ptr %1, align 4, !tbaa !5
  %275 = add nsw i32 %274, 1
  store i32 %275, ptr %1, align 4, !tbaa !5
  br label %17, !llvm.loop !15

276:                                              ; preds = %17
  br label %277

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

280:                                              ; preds = %277
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #5
  %281 = call i32 @_setjmp(ptr noundef getelementptr inbounds (%struct.greatest_run_info, ptr @greatest_info, i32 0, i32 20)) #6
  store i32 %281, ptr %16, align 4, !tbaa !5
  %282 = load i32, ptr %16, align 4, !tbaa !5
  %283 = icmp eq i32 %282, 0
  br i1 %283, label %284, label %286

284:                                              ; preds = %280
  %285 = call i32 @hiterator_destroy()
  store i32 %285, ptr %16, align 4, !tbaa !5
  br label %286

286:                                              ; preds = %284, %280
  %287 = load i32, ptr %16, align 4, !tbaa !5
  call void @greatest_post_test(ptr noundef @.str.15, i32 noundef %287)
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #5
  br label %296

288:                                              ; preds = %277
  %289 = load i32, ptr @greatest_info, align 8, !tbaa !9
  %290 = and i32 %289, 4
  %291 = icmp ne i32 %290, 0
  br i1 %291, label %292, label %295

292:                                              ; preds = %288
  %293 = load ptr, ptr @stdout, align 8, !tbaa !14
  %294 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %293, ptr noundef @.str.1, ptr noundef @.str.15) #5
  br label %295

295:                                              ; preds = %292, %288
  br label %296

296:                                              ; preds = %295, %286
  br label %297

297:                                              ; preds = %296
  br label %298

298:                                              ; preds = %297
  call void @llvm.lifetime.end.p0(i64 4, 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_hset_hget(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_hset_hexists(i32 noundef) #0

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

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: nounwind uwtable
declare hidden i32 @hiterator_destroy() #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 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !6, i64 0}
!10 = !{!"greatest_run_info", !6, i64 0, !6, i64 4, !6, i64 8, !6, i64 12, !6, i64 16, !6, i64 20, !11, i64 24, !13, i64 72, !6, i64 80, !13, i64 88, !13, i64 96, !13, i64 104, !13, i64 112, !13, i64 120, !6, i64 128, !6, i64 132, !13, i64 136, !13, i64 144, !12, i64 152, !12, i64 160, !7, i64 168}
!11 = !{!"greatest_suite_info", !6, i64 0, !6, i64 4, !6, i64 8, !6, i64 12, !12, i64 16, !12, i64 24, !12, i64 32, !12, i64 40}
!12 = !{!"long", !7, i64 0}
!13 = !{!"any pointer", !7, i64 0}
!14 = !{!13, !13, i64 0}
!15 = distinct !{!15, !16}
!16 = !{!"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 [21 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 [24 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [18 x i8], align 1

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

1:                                                ; preds = %0, %155
  %.03248 = phi i32 [ 0, %0 ], [ %156, %155 ]
  %2 = call i32 @greatest_pre_test(ptr noundef nonnull @.str) #4
  %3 = icmp eq i32 %2, 1
  br i1 %3, label %4, label %6

4:                                                ; preds = %1
  %5 = call i32 @basic_test_hset_hget(i32 noundef %.03248)
  call void @greatest_post_test(ptr noundef nonnull @.str, i32 noundef %5) #4
  br label %12

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

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

12:                                               ; preds = %4, %9, %6
  %13 = call i32 @greatest_pre_test(ptr noundef nonnull @.str.2) #4
  %14 = icmp eq i32 %13, 1
  br i1 %14, label %15, label %17

15:                                               ; preds = %12
  %16 = call i32 @basic_test_hset_hexists(i32 noundef %.03248)
  call void @greatest_post_test(ptr noundef nonnull @.str.2, i32 noundef %16) #4
  br label %23

17:                                               ; preds = %12
  %18 = load i32, ptr @greatest_info, align 8, !tbaa !5
  %19 = and i32 %18, 4
  %.not35 = icmp eq i32 %19, 0
  br i1 %.not35, label %23, label %20

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

23:                                               ; preds = %15, %20, %17
  %24 = call i32 @greatest_pre_test(ptr noundef nonnull @.str.3) #4
  %25 = icmp eq i32 %24, 1
  br i1 %25, label %26, label %28

26:                                               ; preds = %23
  %27 = call i32 @basic_test_hset_hdel(i32 noundef %.03248)
  call void @greatest_post_test(ptr noundef nonnull @.str.3, i32 noundef %27) #4
  br label %34

28:                                               ; preds = %23
  %29 = load i32, ptr @greatest_info, align 8, !tbaa !5
  %30 = and i32 %29, 4
  %.not36 = icmp eq i32 %30, 0
  br i1 %.not36, label %34, label %31

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

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

37:                                               ; preds = %34
  %38 = call i32 @basic_test_hset_hgetall(i32 noundef %.03248)
  call void @greatest_post_test(ptr noundef nonnull @.str.4, i32 noundef %38) #4
  br label %45

39:                                               ; preds = %34
  %40 = load i32, ptr @greatest_info, align 8, !tbaa !5
  %41 = and i32 %40, 4
  %.not37 = icmp eq i32 %41, 0
  br i1 %.not37, label %45, label %42

42:                                               ; preds = %39
  %43 = load ptr, ptr @stdout, align 8, !tbaa !13
  %44 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %43, ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.4) #4
  br label %45

45:                                               ; preds = %37, %42, %39
  %46 = call i32 @greatest_pre_test(ptr noundef nonnull @.str.5) #4
  %47 = icmp eq i32 %46, 1
  br i1 %47, label %48, label %50

48:                                               ; preds = %45
  %49 = call i32 @basic_test_hset_hlen(i32 noundef %.03248)
  call void @greatest_post_test(ptr noundef nonnull @.str.5, i32 noundef %49) #4
  br label %56

50:                                               ; preds = %45
  %51 = load i32, ptr @greatest_info, align 8, !tbaa !5
  %52 = and i32 %51, 4
  %.not38 = icmp eq i32 %52, 0
  br i1 %.not38, label %56, label %53

53:                                               ; preds = %50
  %54 = load ptr, ptr @stdout, align 8, !tbaa !13
  %55 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %54, ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.5) #4
  br label %56

56:                                               ; preds = %48, %53, %50
  %57 = call i32 @greatest_pre_test(ptr noundef nonnull @.str.6) #4
  %58 = icmp eq i32 %57, 1
  br i1 %58, label %59, label %61

59:                                               ; preds = %56
  %60 = call i32 @basic_test_hsetnx(i32 noundef %.03248)
  call void @greatest_post_test(ptr noundef nonnull @.str.6, i32 noundef %60) #4
  br label %67

61:                                               ; preds = %56
  %62 = load i32, ptr @greatest_info, align 8, !tbaa !5
  %63 = and i32 %62, 4
  %.not39 = icmp eq i32 %63, 0
  br i1 %.not39, label %67, label %64

64:                                               ; preds = %61
  %65 = load ptr, ptr @stdout, align 8, !tbaa !13
  %66 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %65, ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.6) #4
  br label %67

67:                                               ; preds = %59, %64, %61
  %68 = call i32 @greatest_pre_test(ptr noundef nonnull @.str.7) #4
  %69 = icmp eq i32 %68, 1
  br i1 %69, label %70, label %72

70:                                               ; preds = %67
  %71 = call i32 @basic_test_hset_hmget(i32 noundef %.03248)
  call void @greatest_post_test(ptr noundef nonnull @.str.7, i32 noundef %71) #4
  br label %78

72:                                               ; preds = %67
  %73 = load i32, ptr @greatest_info, align 8, !tbaa !5
  %74 = and i32 %73, 4
  %.not40 = icmp eq i32 %74, 0
  br i1 %.not40, label %78, label %75

75:                                               ; preds = %72
  %76 = load ptr, ptr @stdout, align 8, !tbaa !13
  %77 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %76, ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.7) #4
  br label %78

78:                                               ; preds = %70, %75, %72
  %79 = call i32 @greatest_pre_test(ptr noundef nonnull @.str.8) #4
  %80 = icmp eq i32 %79, 1
  br i1 %80, label %81, label %83

81:                                               ; preds = %78
  %82 = call i32 @basic_test_hmset_hmget(i32 noundef %.03248)
  call void @greatest_post_test(ptr noundef nonnull @.str.8, i32 noundef %82) #4
  br label %89

83:                                               ; preds = %78
  %84 = load i32, ptr @greatest_info, align 8, !tbaa !5
  %85 = and i32 %84, 4
  %.not41 = icmp eq i32 %85, 0
  br i1 %.not41, label %89, label %86

86:                                               ; preds = %83
  %87 = load ptr, ptr @stdout, align 8, !tbaa !13
  %88 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %87, ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.8) #4
  br label %89

89:                                               ; preds = %81, %86, %83
  %90 = call i32 @greatest_pre_test(ptr noundef nonnull @.str.9) #4
  %91 = icmp eq i32 %90, 1
  br i1 %91, label %92, label %94

92:                                               ; preds = %89
  %93 = call i32 @basic_test_hincrby_hget(i32 noundef %.03248)
  call void @greatest_post_test(ptr noundef nonnull @.str.9, i32 noundef %93) #4
  br label %100

94:                                               ; preds = %89
  %95 = load i32, ptr @greatest_info, align 8, !tbaa !5
  %96 = and i32 %95, 4
  %.not42 = icmp eq i32 %96, 0
  br i1 %.not42, label %100, label %97

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

100:                                              ; preds = %92, %97, %94
  %101 = call i32 @greatest_pre_test(ptr noundef nonnull @.str.10) #4
  %102 = icmp eq i32 %101, 1
  br i1 %102, label %103, label %105

103:                                              ; preds = %100
  %104 = call i32 @basic_test_hincrby_invalid(i32 noundef %.03248)
  call void @greatest_post_test(ptr noundef nonnull @.str.10, i32 noundef %104) #4
  br label %111

105:                                              ; preds = %100
  %106 = load i32, ptr @greatest_info, align 8, !tbaa !5
  %107 = and i32 %106, 4
  %.not43 = icmp eq i32 %107, 0
  br i1 %.not43, label %111, label %108

108:                                              ; preds = %105
  %109 = load ptr, ptr @stdout, align 8, !tbaa !13
  %110 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %109, ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.10) #4
  br label %111

111:                                              ; preds = %103, %108, %105
  %112 = call i32 @greatest_pre_test(ptr noundef nonnull @.str.11) #4
  %113 = icmp eq i32 %112, 1
  br i1 %113, label %114, label %116

114:                                              ; preds = %111
  %115 = call i32 @basic_test_hincrby_overflow(i32 noundef %.03248)
  call void @greatest_post_test(ptr noundef nonnull @.str.11, i32 noundef %115) #4
  br label %122

116:                                              ; preds = %111
  %117 = load i32, ptr @greatest_info, align 8, !tbaa !5
  %118 = and i32 %117, 4
  %.not44 = icmp eq i32 %118, 0
  br i1 %.not44, label %122, label %119

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

122:                                              ; preds = %114, %119, %116
  %123 = call i32 @greatest_pre_test(ptr noundef nonnull @.str.12) #4
  %124 = icmp eq i32 %123, 1
  br i1 %124, label %125, label %127

125:                                              ; preds = %122
  %126 = call i32 @basic_test_hincrbyfloat_hget(i32 noundef %.03248)
  call void @greatest_post_test(ptr noundef nonnull @.str.12, i32 noundef %126) #4
  br label %133

127:                                              ; preds = %122
  %128 = load i32, ptr @greatest_info, align 8, !tbaa !5
  %129 = and i32 %128, 4
  %.not45 = icmp eq i32 %129, 0
  br i1 %.not45, 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.12) #4
  br label %133

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

136:                                              ; preds = %133
  %137 = call i32 @basic_test_hincrbyfloat_invalid(i32 noundef %.03248)
  call void @greatest_post_test(ptr noundef nonnull @.str.13, i32 noundef %137) #4
  br label %144

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

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

144:                                              ; preds = %136, %141, %138
  %145 = call i32 @greatest_pre_test(ptr noundef nonnull @.str.14) #4
  %146 = icmp eq i32 %145, 1
  br i1 %146, label %147, label %149

147:                                              ; preds = %144
  %148 = call i32 @basic_test_hset_del(i32 noundef %.03248)
  call void @greatest_post_test(ptr noundef nonnull @.str.14, i32 noundef %148) #4
  br label %155

149:                                              ; preds = %144
  %150 = load i32, ptr @greatest_info, align 8, !tbaa !5
  %151 = and i32 %150, 4
  %.not47 = icmp eq i32 %151, 0
  br i1 %.not47, label %155, label %152

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

155:                                              ; preds = %147, %152, %149
  %156 = add nuw nsw i32 %.03248, 1
  %exitcond.not = icmp eq i32 %156, 3
  br i1 %exitcond.not, label %157, label %1, !llvm.loop !14

157:                                              ; preds = %155
  %158 = call i32 @greatest_pre_test(ptr noundef nonnull @.str.15) #4
  %159 = icmp eq i32 %158, 1
  br i1 %159, label %160, label %166

160:                                              ; preds = %157
  %161 = call i32 @_setjmp(ptr noundef nonnull getelementptr inbounds (i8, ptr @greatest_info, i64 168)) #5
  %162 = icmp eq i32 %161, 0
  br i1 %162, label %163, label %165

163:                                              ; preds = %160
  %164 = call i32 @hiterator_destroy()
  br label %165

165:                                              ; preds = %163, %160
  %.0 = phi i32 [ %164, %163 ], [ %161, %160 ]
  call void @greatest_post_test(ptr noundef nonnull @.str.15, i32 noundef %.0) #4
  br label %172

166:                                              ; preds = %157
  %167 = load i32, ptr @greatest_info, align 8, !tbaa !5
  %168 = and i32 %167, 4
  %.not = icmp eq i32 %168, 0
  br i1 %.not, label %172, label %169

169:                                              ; preds = %166
  %170 = load ptr, ptr @stdout, align 8, !tbaa !13
  %171 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %170, ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.15) #4
  br label %172

172:                                              ; preds = %166, %169, %165
  ret void
}

declare i32 @greatest_pre_test(ptr noundef) local_unnamed_addr #1

; Function Attrs: nounwind uwtable
declare hidden i32 @basic_test_hset_hget(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_hset_hexists(i32 noundef) local_unnamed_addr #0

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: nounwind uwtable
declare hidden i32 @basic_test_hset_del(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 @hiterator_destroy() 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