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

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

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

21:                                               ; preds = %18
  br label %22

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

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

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

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

36:                                               ; preds = %33, %29
  br label %37

37:                                               ; preds = %36, %25
  br label %38

38:                                               ; preds = %37
  br label %39

39:                                               ; preds = %38
  br label %40

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

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

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

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

54:                                               ; preds = %51, %47
  br label %55

55:                                               ; preds = %54, %43
  br label %56

56:                                               ; preds = %55
  br label %57

57:                                               ; preds = %56
  br label %58

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

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

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

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

72:                                               ; preds = %69, %65
  br label %73

73:                                               ; preds = %72, %61
  br label %74

74:                                               ; preds = %73
  br label %75

75:                                               ; preds = %74
  br label %76

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

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

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

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

90:                                               ; preds = %87, %83
  br label %91

91:                                               ; preds = %90, %79
  br label %92

92:                                               ; preds = %91
  br label %93

93:                                               ; preds = %92
  br label %94

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

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

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

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

108:                                              ; preds = %105, %101
  br label %109

109:                                              ; preds = %108, %97
  br label %110

110:                                              ; preds = %109
  br label %111

111:                                              ; preds = %110
  br label %112

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

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

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

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

126:                                              ; preds = %123, %119
  br label %127

127:                                              ; preds = %126, %115
  br label %128

128:                                              ; preds = %127
  br label %129

129:                                              ; preds = %128
  br label %130

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

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

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

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

144:                                              ; preds = %141, %137
  br label %145

145:                                              ; preds = %144, %133
  br label %146

146:                                              ; preds = %145
  br label %147

147:                                              ; preds = %146
  br label %148

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

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

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

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

162:                                              ; preds = %159, %155
  br label %163

163:                                              ; preds = %162, %151
  br label %164

164:                                              ; preds = %163
  br label %165

165:                                              ; preds = %164
  br label %166

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

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

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

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

180:                                              ; preds = %177, %173
  br label %181

181:                                              ; preds = %180, %169
  br label %182

182:                                              ; preds = %181
  br label %183

183:                                              ; preds = %182
  br label %184

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

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

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

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

198:                                              ; preds = %195, %191
  br label %199

199:                                              ; preds = %198, %187
  br label %200

200:                                              ; preds = %199
  br label %201

201:                                              ; preds = %200
  br label %202

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

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

209:                                              ; preds = %202
  %210 = load i32, ptr @greatest_info, align 8, !tbaa !9
  %211 = and i32 %210, 4
  %212 = icmp ne i32 %211, 0
  br i1 %212, label %213, label %216

213:                                              ; preds = %209
  %214 = load ptr, ptr @stdout, align 8, !tbaa !14
  %215 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %214, ptr noundef @.str.1, ptr noundef @.str.11) #4
  br label %216

216:                                              ; preds = %213, %209
  br label %217

217:                                              ; preds = %216, %205
  br label %218

218:                                              ; preds = %217
  br label %219

219:                                              ; preds = %218
  br label %220

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

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

227:                                              ; preds = %220
  %228 = load i32, ptr @greatest_info, align 8, !tbaa !9
  %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 !14
  %233 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %232, ptr noundef @.str.1, ptr noundef @.str.12) #4
  br label %234

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

235:                                              ; preds = %234, %223
  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.13)
  %240 = icmp eq i32 %239, 1
  br i1 %240, label %241, label %245

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

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

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

252:                                              ; preds = %249, %245
  br label %253

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

254:                                              ; preds = %253
  br label %255

255:                                              ; preds = %254
  br label %256

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

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

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

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

270:                                              ; preds = %267, %263
  br label %271

271:                                              ; preds = %270, %259
  br label %272

272:                                              ; preds = %271
  br label %273

273:                                              ; preds = %272
  br label %274

274:                                              ; preds = %273
  %275 = call i32 @greatest_pre_test(ptr noundef @.str.15)
  %276 = icmp eq i32 %275, 1
  br i1 %276, label %277, label %281

277:                                              ; preds = %274
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #4
  %278 = load i32, ptr %1, align 4, !tbaa !5
  %279 = call i32 @fuzzy_test_srandmembers_unique(i64 noundef 10, i32 noundef %278)
  store i32 %279, ptr %16, align 4, !tbaa !5
  %280 = load i32, ptr %16, align 4, !tbaa !5
  call void @greatest_post_test(ptr noundef @.str.15, i32 noundef %280)
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #4
  br label %289

281:                                              ; preds = %274
  %282 = load i32, ptr @greatest_info, align 8, !tbaa !9
  %283 = and i32 %282, 4
  %284 = icmp ne i32 %283, 0
  br i1 %284, label %285, label %288

285:                                              ; preds = %281
  %286 = load ptr, ptr @stdout, align 8, !tbaa !14
  %287 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %286, ptr noundef @.str.1, ptr noundef @.str.15) #4
  br label %288

288:                                              ; preds = %285, %281
  br label %289

289:                                              ; preds = %288, %277
  br label %290

290:                                              ; preds = %289
  br label %291

291:                                              ; preds = %290
  br label %292

292:                                              ; preds = %291
  %293 = call i32 @greatest_pre_test(ptr noundef @.str.15)
  %294 = icmp eq i32 %293, 1
  br i1 %294, label %295, label %299

295:                                              ; preds = %292
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #4
  %296 = load i32, ptr %1, align 4, !tbaa !5
  %297 = call i32 @fuzzy_test_srandmembers_unique(i64 noundef 1000, i32 noundef %296)
  store i32 %297, ptr %17, align 4, !tbaa !5
  %298 = load i32, ptr %17, align 4, !tbaa !5
  call void @greatest_post_test(ptr noundef @.str.15, i32 noundef %298)
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #4
  br label %307

299:                                              ; preds = %292
  %300 = load i32, ptr @greatest_info, align 8, !tbaa !9
  %301 = and i32 %300, 4
  %302 = icmp ne i32 %301, 0
  br i1 %302, label %303, label %306

303:                                              ; preds = %299
  %304 = load ptr, ptr @stdout, align 8, !tbaa !14
  %305 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %304, ptr noundef @.str.1, ptr noundef @.str.15) #4
  br label %306

306:                                              ; preds = %303, %299
  br label %307

307:                                              ; preds = %306, %295
  br label %308

308:                                              ; preds = %307
  br label %309

309:                                              ; preds = %308
  br label %310

310:                                              ; preds = %309
  %311 = load i32, ptr %1, align 4, !tbaa !5
  %312 = add nsw i32 %311, 1
  store i32 %312, ptr %1, align 4, !tbaa !5
  br label %18, !llvm.loop !15

313:                                              ; preds = %18
  call void @llvm.lifetime.end.p0(i64 4, ptr %1) #4
  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_sadd_sismember(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_sadd_scard(i32 noundef) #0

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

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

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

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

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

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

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

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

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

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

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

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

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

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

!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 [26 x i8], align 1
@greatest_info = external local_unnamed_addr 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 [22 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [31 x i8], align 1

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

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

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

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

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

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

15:                                               ; preds = %12
  %16 = tail call i32 @basic_test_sadd_scard(i32 noundef %.049)
  tail call void @greatest_post_test(ptr noundef nonnull @.str.2, i32 noundef %16) #3
  br label %23

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

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

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

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

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

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

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

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

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

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

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

48:                                               ; preds = %45
  %49 = tail call i32 @basic_test_sadd_smembers(i32 noundef %.049)
  tail call void @greatest_post_test(ptr noundef nonnull @.str.5, i32 noundef %49) #3
  br label %56

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

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

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

59:                                               ; preds = %56
  %60 = tail call i32 @basic_test_sadd_spop(i32 noundef %.049)
  tail call void @greatest_post_test(ptr noundef nonnull @.str.6, i32 noundef %60) #3
  br label %67

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

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

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

70:                                               ; preds = %67
  %71 = tail call i32 @basic_test_sadd_sdiff(i32 noundef %.049)
  tail call void @greatest_post_test(ptr noundef nonnull @.str.7, i32 noundef %71) #3
  br label %78

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

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

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

81:                                               ; preds = %78
  %82 = tail call i32 @basic_test_sadd_sdiffstore(i32 noundef %.049)
  tail call void @greatest_post_test(ptr noundef nonnull @.str.8, i32 noundef %82) #3
  br label %89

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

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

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

92:                                               ; preds = %89
  %93 = tail call i32 @basic_test_sadd_sdiff_nonexistent(i32 noundef %.049)
  tail call void @greatest_post_test(ptr noundef nonnull @.str.9, i32 noundef %93) #3
  br label %100

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

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

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

103:                                              ; preds = %100
  %104 = tail call i32 @basic_test_sadd_sinter(i32 noundef %.049)
  tail call void @greatest_post_test(ptr noundef nonnull @.str.10, i32 noundef %104) #3
  br label %111

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

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

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

114:                                              ; preds = %111
  %115 = tail call i32 @basic_test_sadd_sinterstore(i32 noundef %.049)
  tail call void @greatest_post_test(ptr noundef nonnull @.str.11, i32 noundef %115) #3
  br label %122

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

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

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

125:                                              ; preds = %122
  %126 = tail call i32 @basic_test_sadd_sunion(i32 noundef %.049)
  tail call void @greatest_post_test(ptr noundef nonnull @.str.12, i32 noundef %126) #3
  br label %133

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

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

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

136:                                              ; preds = %133
  %137 = tail call i32 @basic_test_sadd_sunionstore(i32 noundef %.049)
  tail call void @greatest_post_test(ptr noundef nonnull @.str.13, i32 noundef %137) #3
  br label %144

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

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

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

147:                                              ; preds = %144
  %148 = tail call i32 @basic_test_sadd_sunionstore_empty(i32 noundef %.049)
  tail call void @greatest_post_test(ptr noundef nonnull @.str.14, i32 noundef %148) #3
  br label %155

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

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

155:                                              ; preds = %147, %152, %149
  %156 = tail call i32 @greatest_pre_test(ptr noundef nonnull @.str.15) #3
  %157 = icmp eq i32 %156, 1
  br i1 %157, label %158, label %160

158:                                              ; preds = %155
  %159 = tail call i32 @fuzzy_test_srandmembers_unique(i64 noundef 10, i32 noundef %.049)
  tail call void @greatest_post_test(ptr noundef nonnull @.str.15, i32 noundef %159) #3
  br label %166

160:                                              ; preds = %155
  %161 = load i32, ptr @greatest_info, align 8, !tbaa !5
  %162 = and i32 %161, 4
  %.not47 = icmp eq i32 %162, 0
  br i1 %.not47, label %166, label %163

163:                                              ; preds = %160
  %164 = load ptr, ptr @stdout, align 8, !tbaa !13
  %165 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %164, ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.15) #3
  br label %166

166:                                              ; preds = %158, %163, %160
  %167 = tail call i32 @greatest_pre_test(ptr noundef nonnull @.str.15) #3
  %168 = icmp eq i32 %167, 1
  br i1 %168, label %169, label %171

169:                                              ; preds = %166
  %170 = tail call i32 @fuzzy_test_srandmembers_unique(i64 noundef 1000, i32 noundef %.049)
  tail call void @greatest_post_test(ptr noundef nonnull @.str.15, i32 noundef %170) #3
  br label %177

171:                                              ; preds = %166
  %172 = load i32, ptr @greatest_info, align 8, !tbaa !5
  %173 = and i32 %172, 4
  %.not48 = icmp eq i32 %173, 0
  br i1 %.not48, label %177, label %174

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

177:                                              ; preds = %169, %174, %171
  %178 = add nuw nsw i32 %.049, 1
  %exitcond.not = icmp eq i32 %178, 3
  br i1 %exitcond.not, label %179, label %1, !llvm.loop !14

179:                                              ; preds = %177
  ret void
}

declare i32 @greatest_pre_test(ptr noundef) local_unnamed_addr #1

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

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: nounwind uwtable
declare hidden i32 @fuzzy_test_srandmembers_unique(i64 noundef, i32 noundef) 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 }

!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,TailCallElimPass