; LLVM IR from seppo0010/rlite :: tests (list-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 [23 x i8], align 1
@greatest_info = external global %struct.greatest_run_info, align 8
@stdout = external global ptr, align 8
@.str.1 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [16 x i8], align 1
@__const.list_test.delete_tests = external hidden unnamed_addr constant [5 x [2 x i64]], align 16
@__const.list_test.delete_tests_name = external hidden unnamed_addr constant [5 x ptr], align 16
@.str.9 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [23 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local void @list_test() #0 {
  %1 = alloca i32, align 4
  %2 = alloca i32, align 4
  %3 = alloca i32, align 4
  %4 = alloca i64, align 8
  %5 = alloca i64, align 8
  %6 = alloca i32, align 4
  %7 = alloca i32, align 4
  %8 = alloca i32, align 4
  %9 = alloca i32, align 4
  %10 = alloca [5 x [2 x i64]], align 16
  %11 = alloca [5 x ptr], align 16
  %12 = alloca i32, align 4
  %13 = alloca i32, align 4
  call void @llvm.lifetime.start.p0(i64 4, ptr %1) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %2) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %3) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %4) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %5) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #5
  store i32 0, ptr %1, align 4, !tbaa !5
  br label %14

14:                                               ; preds = %36, %0
  %15 = load i32, ptr %1, align 4, !tbaa !5
  %16 = icmp slt i32 %15, 4
  br i1 %16, label %17, label %39

17:                                               ; preds = %14
  br label %18

18:                                               ; preds = %17
  %19 = call i32 @greatest_pre_test(ptr noundef @.str)
  %20 = icmp eq i32 %19, 1
  br i1 %20, label %21, label %25

21:                                               ; preds = %18
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #5
  %22 = load i32, ptr %1, align 4, !tbaa !5
  %23 = call i32 @basic_insert_list_test(i32 noundef %22)
  store i32 %23, ptr %7, align 4, !tbaa !5
  %24 = load i32, ptr %7, align 4, !tbaa !5
  call void @greatest_post_test(ptr noundef @.str, i32 noundef %24)
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #5
  br label %33

25:                                               ; preds = %18
  %26 = load i32, ptr @greatest_info, align 8, !tbaa !9
  %27 = and i32 %26, 4
  %28 = icmp ne i32 %27, 0
  br i1 %28, label %29, label %32

29:                                               ; preds = %25
  %30 = load ptr, ptr @stdout, align 8, !tbaa !14
  %31 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %30, ptr noundef @.str.1, ptr noundef @.str) #5
  br label %32

32:                                               ; preds = %29, %25
  br label %33

33:                                               ; preds = %32, %21
  br label %34

34:                                               ; preds = %33
  br label %35

35:                                               ; preds = %34
  br label %36

36:                                               ; preds = %35
  %37 = load i32, ptr %1, align 4, !tbaa !5
  %38 = add nsw i32 %37, 1
  store i32 %38, ptr %1, align 4, !tbaa !5
  br label %14, !llvm.loop !15

39:                                               ; preds = %14
  store i32 0, ptr %1, align 4, !tbaa !5
  br label %40

40:                                               ; preds = %62, %39
  %41 = load i32, ptr %1, align 4, !tbaa !5
  %42 = icmp slt i32 %41, 3
  br i1 %42, label %43, label %65

43:                                               ; preds = %40
  br label %44

44:                                               ; preds = %43
  %45 = call i32 @greatest_pre_test(ptr noundef @.str.2)
  %46 = icmp eq i32 %45, 1
  br i1 %46, label %47, label %51

47:                                               ; preds = %44
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #5
  %48 = load i32, ptr %1, align 4, !tbaa !5
  %49 = call i32 @basic_iterator_list_test(i32 noundef %48)
  store i32 %49, ptr %8, align 4, !tbaa !5
  %50 = load i32, ptr %8, align 4, !tbaa !5
  call void @greatest_post_test(ptr noundef @.str.2, i32 noundef %50)
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #5
  br label %59

51:                                               ; preds = %44
  %52 = load i32, ptr @greatest_info, align 8, !tbaa !9
  %53 = and i32 %52, 4
  %54 = icmp ne i32 %53, 0
  br i1 %54, label %55, label %58

55:                                               ; preds = %51
  %56 = load ptr, ptr @stdout, align 8, !tbaa !14
  %57 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %56, ptr noundef @.str.1, ptr noundef @.str.2) #5
  br label %58

58:                                               ; preds = %55, %51
  br label %59

59:                                               ; preds = %58, %47
  br label %60

60:                                               ; preds = %59
  br label %61

61:                                               ; preds = %60
  br label %62

62:                                               ; preds = %61
  %63 = load i32, ptr %1, align 4, !tbaa !5
  %64 = add nsw i32 %63, 1
  store i32 %64, ptr %1, align 4, !tbaa !5
  br label %40, !llvm.loop !17

65:                                               ; preds = %40
  store i32 0, ptr %1, align 4, !tbaa !5
  br label %66

66:                                               ; preds = %117, %65
  %67 = load i32, ptr %1, align 4, !tbaa !5
  %68 = icmp slt i32 %67, 2
  br i1 %68, label %69, label %120

69:                                               ; preds = %66
  %70 = load i32, ptr %1, align 4, !tbaa !5
  %71 = icmp eq i32 %70, 0
  %72 = zext i1 %71 to i64
  %73 = select i1 %71, i32 100, i32 200
  %74 = sext i32 %73 to i64
  store i64 %74, ptr %4, align 8, !tbaa !18
  store i32 0, ptr %2, align 4, !tbaa !5
  br label %75

75:                                               ; preds = %113, %69
  %76 = load i32, ptr %2, align 4, !tbaa !5
  %77 = icmp slt i32 %76, 2
  br i1 %77, label %78, label %116

78:                                               ; preds = %75
  %79 = load i32, ptr %2, align 4, !tbaa !5
  %80 = icmp eq i32 %79, 0
  %81 = zext i1 %80 to i64
  %82 = select i1 %80, i32 2, i32 10
  %83 = sext i32 %82 to i64
  store i64 %83, ptr %5, align 8, !tbaa !18
  store i32 0, ptr %3, align 4, !tbaa !5
  br label %84

84:                                               ; preds = %109, %78
  %85 = load i32, ptr %3, align 4, !tbaa !5
  %86 = icmp slt i32 %85, 3
  br i1 %86, label %87, label %112

87:                                               ; preds = %84
  %88 = load i32, ptr %3, align 4, !tbaa !5
  store i32 %88, ptr %6, align 4, !tbaa !5
  call void @srand(i32 noundef 1) #5
  br label %89

89:                                               ; preds = %87
  %90 = call i32 @greatest_pre_test(ptr noundef @.str.3)
  %91 = icmp eq i32 %90, 1
  br i1 %91, label %92, label %98

92:                                               ; preds = %89
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #5
  %93 = load i64, ptr %4, align 8, !tbaa !18
  %94 = load i64, ptr %5, align 8, !tbaa !18
  %95 = load i32, ptr %6, align 4, !tbaa !5
  %96 = call i32 @fuzzy_list_test(i64 noundef %93, i64 noundef %94, i32 noundef %95)
  store i32 %96, ptr %9, align 4, !tbaa !5
  %97 = load i32, ptr %9, align 4, !tbaa !5
  call void @greatest_post_test(ptr noundef @.str.3, i32 noundef %97)
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #5
  br label %106

98:                                               ; preds = %89
  %99 = load i32, ptr @greatest_info, align 8, !tbaa !9
  %100 = and i32 %99, 4
  %101 = icmp ne i32 %100, 0
  br i1 %101, label %102, label %105

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

105:                                              ; preds = %102, %98
  br label %106

106:                                              ; preds = %105, %92
  br label %107

107:                                              ; preds = %106
  br label %108

108:                                              ; preds = %107
  br label %109

109:                                              ; preds = %108
  %110 = load i32, ptr %3, align 4, !tbaa !5
  %111 = add nsw i32 %110, 1
  store i32 %111, ptr %3, align 4, !tbaa !5
  br label %84, !llvm.loop !19

112:                                              ; preds = %84
  br label %113

113:                                              ; preds = %112
  %114 = load i32, ptr %2, align 4, !tbaa !5
  %115 = add nsw i32 %114, 1
  store i32 %115, ptr %2, align 4, !tbaa !5
  br label %75, !llvm.loop !20

116:                                              ; preds = %75
  br label %117

117:                                              ; preds = %116
  %118 = load i32, ptr %1, align 4, !tbaa !5
  %119 = add nsw i32 %118, 1
  store i32 %119, ptr %1, align 4, !tbaa !5
  br label %66, !llvm.loop !21

120:                                              ; preds = %66
  call void @llvm.lifetime.start.p0(i64 80, ptr %10) #5
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %10, ptr align 16 @__const.list_test.delete_tests, i64 80, i1 false)
  call void @llvm.lifetime.start.p0(i64 40, ptr %11) #5
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %11, ptr align 16 @__const.list_test.delete_tests_name, i64 40, i1 false)
  store i32 0, ptr %1, align 4, !tbaa !5
  br label %121

121:                                              ; preds = %156, %120
  %122 = load i32, ptr %1, align 4, !tbaa !5
  %123 = icmp slt i32 %122, 5
  br i1 %123, label %124, label %159

124:                                              ; preds = %121
  br label %125

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

128:                                              ; preds = %125
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #5
  %129 = load i32, ptr %1, align 4, !tbaa !5
  %130 = sext i32 %129 to i64
  %131 = getelementptr inbounds [5 x [2 x i64]], ptr %10, i64 0, i64 %130
  %132 = getelementptr inbounds [2 x i64], ptr %131, i64 0, i64 0
  %133 = load i64, ptr %132, align 16, !tbaa !18
  %134 = load i32, ptr %1, align 4, !tbaa !5
  %135 = sext i32 %134 to i64
  %136 = getelementptr inbounds [5 x [2 x i64]], ptr %10, i64 0, i64 %135
  %137 = getelementptr inbounds [2 x i64], ptr %136, i64 0, i64 1
  %138 = load i64, ptr %137, align 8, !tbaa !18
  %139 = load i32, ptr %1, align 4, !tbaa !5
  %140 = sext i32 %139 to i64
  %141 = getelementptr inbounds [5 x ptr], ptr %11, i64 0, i64 %140
  %142 = load ptr, ptr %141, align 8, !tbaa !14
  %143 = call i32 @basic_delete_list_test(i64 noundef %133, i64 noundef %138, ptr noundef %142)
  store i32 %143, ptr %12, align 4, !tbaa !5
  %144 = load i32, ptr %12, align 4, !tbaa !5
  call void @greatest_post_test(ptr noundef @.str.9, i32 noundef %144)
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #5
  br label %153

145:                                              ; preds = %125
  %146 = load i32, ptr @greatest_info, align 8, !tbaa !9
  %147 = and i32 %146, 4
  %148 = icmp ne i32 %147, 0
  br i1 %148, label %149, label %152

149:                                              ; preds = %145
  %150 = load ptr, ptr @stdout, align 8, !tbaa !14
  %151 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %150, ptr noundef @.str.1, ptr noundef @.str.9) #5
  br label %152

152:                                              ; preds = %149, %145
  br label %153

153:                                              ; preds = %152, %128
  br label %154

154:                                              ; preds = %153
  br label %155

155:                                              ; preds = %154
  br label %156

156:                                              ; preds = %155
  %157 = load i32, ptr %1, align 4, !tbaa !5
  %158 = add nsw i32 %157, 1
  store i32 %158, ptr %1, align 4, !tbaa !5
  br label %121, !llvm.loop !22

159:                                              ; preds = %121
  store i32 0, ptr %1, align 4, !tbaa !5
  br label %160

160:                                              ; preds = %211, %159
  %161 = load i32, ptr %1, align 4, !tbaa !5
  %162 = icmp slt i32 %161, 2
  br i1 %162, label %163, label %214

163:                                              ; preds = %160
  %164 = load i32, ptr %1, align 4, !tbaa !5
  %165 = icmp eq i32 %164, 0
  %166 = zext i1 %165 to i64
  %167 = select i1 %165, i32 100, i32 200
  %168 = sext i32 %167 to i64
  store i64 %168, ptr %4, align 8, !tbaa !18
  store i32 0, ptr %2, align 4, !tbaa !5
  br label %169

169:                                              ; preds = %207, %163
  %170 = load i32, ptr %2, align 4, !tbaa !5
  %171 = icmp slt i32 %170, 2
  br i1 %171, label %172, label %210

172:                                              ; preds = %169
  %173 = load i32, ptr %2, align 4, !tbaa !5
  %174 = icmp eq i32 %173, 0
  %175 = zext i1 %174 to i64
  %176 = select i1 %174, i32 2, i32 10
  %177 = sext i32 %176 to i64
  store i64 %177, ptr %5, align 8, !tbaa !18
  store i32 0, ptr %3, align 4, !tbaa !5
  br label %178

178:                                              ; preds = %203, %172
  %179 = load i32, ptr %3, align 4, !tbaa !5
  %180 = icmp slt i32 %179, 3
  br i1 %180, label %181, label %206

181:                                              ; preds = %178
  %182 = load i32, ptr %3, align 4, !tbaa !5
  store i32 %182, ptr %6, align 4, !tbaa !5
  call void @srand(i32 noundef 1) #5
  br label %183

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

186:                                              ; preds = %183
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #5
  %187 = load i64, ptr %4, align 8, !tbaa !18
  %188 = load i64, ptr %5, align 8, !tbaa !18
  %189 = load i32, ptr %6, align 4, !tbaa !5
  %190 = call i32 @fuzzy_list_delete_test(i64 noundef %187, i64 noundef %188, i32 noundef %189)
  store i32 %190, ptr %13, align 4, !tbaa !5
  %191 = load i32, ptr %13, align 4, !tbaa !5
  call void @greatest_post_test(ptr noundef @.str.10, i32 noundef %191)
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #5
  br label %200

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

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

199:                                              ; preds = %196, %192
  br label %200

200:                                              ; preds = %199, %186
  br label %201

201:                                              ; preds = %200
  br label %202

202:                                              ; preds = %201
  br label %203

203:                                              ; preds = %202
  %204 = load i32, ptr %3, align 4, !tbaa !5
  %205 = add nsw i32 %204, 1
  store i32 %205, ptr %3, align 4, !tbaa !5
  br label %178, !llvm.loop !23

206:                                              ; preds = %178
  br label %207

207:                                              ; preds = %206
  %208 = load i32, ptr %2, align 4, !tbaa !5
  %209 = add nsw i32 %208, 1
  store i32 %209, ptr %2, align 4, !tbaa !5
  br label %169, !llvm.loop !24

210:                                              ; preds = %169
  br label %211

211:                                              ; preds = %210
  %212 = load i32, ptr %1, align 4, !tbaa !5
  %213 = add nsw i32 %212, 1
  store i32 %213, ptr %1, align 4, !tbaa !5
  br label %160, !llvm.loop !25

214:                                              ; preds = %160
  call void @llvm.lifetime.end.p0(i64 40, ptr %11) #5
  call void @llvm.lifetime.end.p0(i64 80, ptr %10) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %5) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %4) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %3) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %2) #5
  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_insert_list_test(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_iterator_list_test(i32 noundef) #0

; Function Attrs: nounwind
declare void @srand(i32 noundef) #3

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

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #4

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

; Function Attrs: nounwind uwtable
declare hidden i32 @fuzzy_list_delete_test(i64 noundef, 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 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #5 = { 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"}
!17 = distinct !{!17, !16}
!18 = !{!12, !12, i64 0}
!19 = distinct !{!19, !16}
!20 = distinct !{!20, !16}
!21 = distinct !{!21, !16}
!22 = distinct !{!22, !16}
!23 = distinct !{!23, !16}
!24 = distinct !{!24, !16}
!25 = distinct !{!25, !16}


; 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 [23 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 [25 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [16 x i8], align 1
@__const.list_test.delete_tests = external hidden unnamed_addr constant [5 x [2 x i64]], align 16
@__const.list_test.delete_tests_name = external hidden unnamed_addr constant [5 x ptr], align 16
@.str.9 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [23 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local void @list_test() local_unnamed_addr #0 {
  %1 = tail call i32 @greatest_pre_test(ptr noundef nonnull @.str) #4
  %2 = icmp eq i32 %1, 1
  br i1 %2, label %3, label %5

3:                                                ; preds = %0
  %4 = tail call i32 @basic_insert_list_test(i32 noundef 0)
  tail call void @greatest_post_test(ptr noundef nonnull @.str, i32 noundef %4) #4
  br label %11

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

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

11:                                               ; preds = %3, %8, %5
  %12 = tail call i32 @greatest_pre_test(ptr noundef nonnull @.str) #4
  %13 = icmp eq i32 %12, 1
  br i1 %13, label %20, label %14

14:                                               ; preds = %11
  %15 = load i32, ptr @greatest_info, align 8, !tbaa !5
  %16 = and i32 %15, 4
  %.not47.1 = icmp eq i32 %16, 0
  br i1 %.not47.1, label %22, label %17

17:                                               ; preds = %14
  %18 = load ptr, ptr @stdout, align 8, !tbaa !13
  %19 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18, ptr noundef nonnull @.str.1, ptr noundef nonnull @.str) #4
  br label %22

20:                                               ; preds = %11
  %21 = tail call i32 @basic_insert_list_test(i32 noundef 1)
  tail call void @greatest_post_test(ptr noundef nonnull @.str, i32 noundef %21) #4
  br label %22

22:                                               ; preds = %20, %17, %14
  %23 = tail call i32 @greatest_pre_test(ptr noundef nonnull @.str) #4
  %24 = icmp eq i32 %23, 1
  br i1 %24, label %31, label %25

25:                                               ; preds = %22
  %26 = load i32, ptr @greatest_info, align 8, !tbaa !5
  %27 = and i32 %26, 4
  %.not47.2 = icmp eq i32 %27, 0
  br i1 %.not47.2, label %33, label %28

28:                                               ; preds = %25
  %29 = load ptr, ptr @stdout, align 8, !tbaa !13
  %30 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %29, ptr noundef nonnull @.str.1, ptr noundef nonnull @.str) #4
  br label %33

31:                                               ; preds = %22
  %32 = tail call i32 @basic_insert_list_test(i32 noundef 2)
  tail call void @greatest_post_test(ptr noundef nonnull @.str, i32 noundef %32) #4
  br label %33

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

36:                                               ; preds = %33
  %37 = load i32, ptr @greatest_info, align 8, !tbaa !5
  %38 = and i32 %37, 4
  %.not47.3 = icmp eq i32 %38, 0
  br i1 %.not47.3, label %.preheader50.preheader, label %39

39:                                               ; preds = %36
  %40 = load ptr, ptr @stdout, align 8, !tbaa !13
  %41 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %40, ptr noundef nonnull @.str.1, ptr noundef nonnull @.str) #4
  br label %.preheader50.preheader

42:                                               ; preds = %33
  %43 = tail call i32 @basic_insert_list_test(i32 noundef 3)
  tail call void @greatest_post_test(ptr noundef nonnull @.str, i32 noundef %43) #4
  br label %.preheader50.preheader

.preheader50.preheader:                           ; preds = %42, %39, %36
  %44 = tail call i32 @greatest_pre_test(ptr noundef nonnull @.str.2) #4
  %45 = icmp eq i32 %44, 1
  br i1 %45, label %46, label %48

46:                                               ; preds = %.preheader50.preheader
  %47 = tail call i32 @basic_iterator_list_test(i32 noundef 0)
  tail call void @greatest_post_test(ptr noundef nonnull @.str.2, i32 noundef %47) #4
  br label %.preheader50.1

48:                                               ; preds = %.preheader50.preheader
  %49 = load i32, ptr @greatest_info, align 8, !tbaa !5
  %50 = and i32 %49, 4
  %.not46 = icmp eq i32 %50, 0
  br i1 %.not46, label %.preheader50.1, label %51

51:                                               ; preds = %48
  %52 = load ptr, ptr @stdout, align 8, !tbaa !13
  %53 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %52, ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.2) #4
  br label %.preheader50.1

.preheader50.1:                                   ; preds = %46, %51, %48
  %54 = tail call i32 @greatest_pre_test(ptr noundef nonnull @.str.2) #4
  %55 = icmp eq i32 %54, 1
  br i1 %55, label %62, label %56

56:                                               ; preds = %.preheader50.1
  %57 = load i32, ptr @greatest_info, align 8, !tbaa !5
  %58 = and i32 %57, 4
  %.not46.1 = icmp eq i32 %58, 0
  br i1 %.not46.1, label %.preheader50.2, label %59

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

62:                                               ; preds = %.preheader50.1
  %63 = tail call i32 @basic_iterator_list_test(i32 noundef 1)
  tail call void @greatest_post_test(ptr noundef nonnull @.str.2, i32 noundef %63) #4
  br label %.preheader50.2

.preheader50.2:                                   ; preds = %62, %59, %56
  %64 = tail call i32 @greatest_pre_test(ptr noundef nonnull @.str.2) #4
  %65 = icmp eq i32 %64, 1
  br i1 %65, label %72, label %66

66:                                               ; preds = %.preheader50.2
  %67 = load i32, ptr @greatest_info, align 8, !tbaa !5
  %68 = and i32 %67, 4
  %.not46.2 = icmp eq i32 %68, 0
  br i1 %.not46.2, label %.preheader49.preheader, label %69

69:                                               ; preds = %66
  %70 = load ptr, ptr @stdout, align 8, !tbaa !13
  %71 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %70, ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.2) #4
  br label %.preheader49.preheader

72:                                               ; preds = %.preheader50.2
  %73 = tail call i32 @basic_iterator_list_test(i32 noundef 2)
  tail call void @greatest_post_test(ptr noundef nonnull @.str.2, i32 noundef %73) #4
  br label %.preheader49.preheader

.preheader49.preheader:                           ; preds = %72, %69, %66
  tail call void @srand(i32 noundef 1) #4
  %74 = tail call i32 @greatest_pre_test(ptr noundef nonnull @.str.3) #4
  %75 = icmp eq i32 %74, 1
  br i1 %75, label %76, label %78

76:                                               ; preds = %.preheader49.preheader
  %77 = tail call i32 @fuzzy_list_test(i64 noundef 100, i64 noundef 2, i32 noundef 0)
  tail call void @greatest_post_test(ptr noundef nonnull @.str.3, i32 noundef %77) #4
  br label %84

78:                                               ; preds = %.preheader49.preheader
  %79 = load i32, ptr @greatest_info, align 8, !tbaa !5
  %80 = and i32 %79, 4
  %.not45 = icmp eq i32 %80, 0
  br i1 %.not45, label %84, label %81

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

84:                                               ; preds = %76, %81, %78
  tail call void @srand(i32 noundef 1) #4
  %85 = tail call i32 @greatest_pre_test(ptr noundef nonnull @.str.3) #4
  %86 = icmp eq i32 %85, 1
  br i1 %86, label %93, label %87

87:                                               ; preds = %84
  %88 = load i32, ptr @greatest_info, align 8, !tbaa !5
  %89 = and i32 %88, 4
  %.not45.1 = icmp eq i32 %89, 0
  br i1 %.not45.1, label %95, label %90

90:                                               ; preds = %87
  %91 = load ptr, ptr @stdout, align 8, !tbaa !13
  %92 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %91, ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.3) #4
  br label %95

93:                                               ; preds = %84
  %94 = tail call i32 @fuzzy_list_test(i64 noundef 100, i64 noundef 2, i32 noundef 1)
  tail call void @greatest_post_test(ptr noundef nonnull @.str.3, i32 noundef %94) #4
  br label %95

95:                                               ; preds = %93, %90, %87
  tail call void @srand(i32 noundef 1) #4
  %96 = tail call i32 @greatest_pre_test(ptr noundef nonnull @.str.3) #4
  %97 = icmp eq i32 %96, 1
  br i1 %97, label %104, label %98

98:                                               ; preds = %95
  %99 = load i32, ptr @greatest_info, align 8, !tbaa !5
  %100 = and i32 %99, 4
  %.not45.2 = icmp eq i32 %100, 0
  br i1 %.not45.2, label %106, label %101

101:                                              ; preds = %98
  %102 = load ptr, ptr @stdout, align 8, !tbaa !13
  %103 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %102, ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.3) #4
  br label %106

104:                                              ; preds = %95
  %105 = tail call i32 @fuzzy_list_test(i64 noundef 100, i64 noundef 2, i32 noundef 2)
  tail call void @greatest_post_test(ptr noundef nonnull @.str.3, i32 noundef %105) #4
  br label %106

106:                                              ; preds = %104, %101, %98
  tail call void @srand(i32 noundef 1) #4
  %107 = tail call i32 @greatest_pre_test(ptr noundef nonnull @.str.3) #4
  %108 = icmp eq i32 %107, 1
  br i1 %108, label %115, label %109

109:                                              ; preds = %106
  %110 = load i32, ptr @greatest_info, align 8, !tbaa !5
  %111 = and i32 %110, 4
  %.not45.160 = icmp eq i32 %111, 0
  br i1 %.not45.160, label %117, label %112

112:                                              ; preds = %109
  %113 = load ptr, ptr @stdout, align 8, !tbaa !13
  %114 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %113, ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.3) #4
  br label %117

115:                                              ; preds = %106
  %116 = tail call i32 @fuzzy_list_test(i64 noundef 100, i64 noundef 10, i32 noundef 0)
  tail call void @greatest_post_test(ptr noundef nonnull @.str.3, i32 noundef %116) #4
  br label %117

117:                                              ; preds = %115, %112, %109
  tail call void @srand(i32 noundef 1) #4
  %118 = tail call i32 @greatest_pre_test(ptr noundef nonnull @.str.3) #4
  %119 = icmp eq i32 %118, 1
  br i1 %119, label %126, label %120

120:                                              ; preds = %117
  %121 = load i32, ptr @greatest_info, align 8, !tbaa !5
  %122 = and i32 %121, 4
  %.not45.1.1 = icmp eq i32 %122, 0
  br i1 %.not45.1.1, label %128, label %123

123:                                              ; preds = %120
  %124 = load ptr, ptr @stdout, align 8, !tbaa !13
  %125 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %124, ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.3) #4
  br label %128

126:                                              ; preds = %117
  %127 = tail call i32 @fuzzy_list_test(i64 noundef 100, i64 noundef 10, i32 noundef 1)
  tail call void @greatest_post_test(ptr noundef nonnull @.str.3, i32 noundef %127) #4
  br label %128

128:                                              ; preds = %126, %123, %120
  tail call void @srand(i32 noundef 1) #4
  %129 = tail call i32 @greatest_pre_test(ptr noundef nonnull @.str.3) #4
  %130 = icmp eq i32 %129, 1
  br i1 %130, label %137, label %131

131:                                              ; preds = %128
  %132 = load i32, ptr @greatest_info, align 8, !tbaa !5
  %133 = and i32 %132, 4
  %.not45.2.1 = icmp eq i32 %133, 0
  br i1 %.not45.2.1, label %.preheader49.1, label %134

134:                                              ; preds = %131
  %135 = load ptr, ptr @stdout, align 8, !tbaa !13
  %136 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %135, ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.3) #4
  br label %.preheader49.1

137:                                              ; preds = %128
  %138 = tail call i32 @fuzzy_list_test(i64 noundef 100, i64 noundef 10, i32 noundef 2)
  tail call void @greatest_post_test(ptr noundef nonnull @.str.3, i32 noundef %138) #4
  br label %.preheader49.1

.preheader49.1:                                   ; preds = %137, %134, %131
  tail call void @srand(i32 noundef 1) #4
  %139 = tail call i32 @greatest_pre_test(ptr noundef nonnull @.str.3) #4
  %140 = icmp eq i32 %139, 1
  br i1 %140, label %147, label %141

141:                                              ; preds = %.preheader49.1
  %142 = load i32, ptr @greatest_info, align 8, !tbaa !5
  %143 = and i32 %142, 4
  %.not45.161 = icmp eq i32 %143, 0
  br i1 %.not45.161, label %149, label %144

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

147:                                              ; preds = %.preheader49.1
  %148 = tail call i32 @fuzzy_list_test(i64 noundef 200, i64 noundef 2, i32 noundef 0)
  tail call void @greatest_post_test(ptr noundef nonnull @.str.3, i32 noundef %148) #4
  br label %149

149:                                              ; preds = %147, %144, %141
  tail call void @srand(i32 noundef 1) #4
  %150 = tail call i32 @greatest_pre_test(ptr noundef nonnull @.str.3) #4
  %151 = icmp eq i32 %150, 1
  br i1 %151, label %158, label %152

152:                                              ; preds = %149
  %153 = load i32, ptr @greatest_info, align 8, !tbaa !5
  %154 = and i32 %153, 4
  %.not45.1.162 = icmp eq i32 %154, 0
  br i1 %.not45.1.162, label %160, label %155

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

158:                                              ; preds = %149
  %159 = tail call i32 @fuzzy_list_test(i64 noundef 200, i64 noundef 2, i32 noundef 1)
  tail call void @greatest_post_test(ptr noundef nonnull @.str.3, i32 noundef %159) #4
  br label %160

160:                                              ; preds = %158, %155, %152
  tail call void @srand(i32 noundef 1) #4
  %161 = tail call i32 @greatest_pre_test(ptr noundef nonnull @.str.3) #4
  %162 = icmp eq i32 %161, 1
  br i1 %162, label %169, label %163

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

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

169:                                              ; preds = %160
  %170 = tail call i32 @fuzzy_list_test(i64 noundef 200, i64 noundef 2, i32 noundef 2)
  tail call void @greatest_post_test(ptr noundef nonnull @.str.3, i32 noundef %170) #4
  br label %171

171:                                              ; preds = %169, %166, %163
  tail call void @srand(i32 noundef 1) #4
  %172 = tail call i32 @greatest_pre_test(ptr noundef nonnull @.str.3) #4
  %173 = icmp eq i32 %172, 1
  br i1 %173, label %180, label %174

174:                                              ; preds = %171
  %175 = load i32, ptr @greatest_info, align 8, !tbaa !5
  %176 = and i32 %175, 4
  %.not45.160.1 = icmp eq i32 %176, 0
  br i1 %.not45.160.1, label %182, label %177

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

180:                                              ; preds = %171
  %181 = tail call i32 @fuzzy_list_test(i64 noundef 200, i64 noundef 10, i32 noundef 0)
  tail call void @greatest_post_test(ptr noundef nonnull @.str.3, i32 noundef %181) #4
  br label %182

182:                                              ; preds = %180, %177, %174
  tail call void @srand(i32 noundef 1) #4
  %183 = tail call i32 @greatest_pre_test(ptr noundef nonnull @.str.3) #4
  %184 = icmp eq i32 %183, 1
  br i1 %184, label %191, label %185

185:                                              ; preds = %182
  %186 = load i32, ptr @greatest_info, align 8, !tbaa !5
  %187 = and i32 %186, 4
  %.not45.1.1.1 = icmp eq i32 %187, 0
  br i1 %.not45.1.1.1, label %193, label %188

188:                                              ; preds = %185
  %189 = load ptr, ptr @stdout, align 8, !tbaa !13
  %190 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %189, ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.3) #4
  br label %193

191:                                              ; preds = %182
  %192 = tail call i32 @fuzzy_list_test(i64 noundef 200, i64 noundef 10, i32 noundef 1)
  tail call void @greatest_post_test(ptr noundef nonnull @.str.3, i32 noundef %192) #4
  br label %193

193:                                              ; preds = %191, %188, %185
  tail call void @srand(i32 noundef 1) #4
  %194 = tail call i32 @greatest_pre_test(ptr noundef nonnull @.str.3) #4
  %195 = icmp eq i32 %194, 1
  br i1 %195, label %202, label %196

196:                                              ; preds = %193
  %197 = load i32, ptr @greatest_info, align 8, !tbaa !5
  %198 = and i32 %197, 4
  %.not45.2.1.1 = icmp eq i32 %198, 0
  br i1 %.not45.2.1.1, label %.preheader48.preheader, label %199

199:                                              ; preds = %196
  %200 = load ptr, ptr @stdout, align 8, !tbaa !13
  %201 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %200, ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.3) #4
  br label %.preheader48.preheader

202:                                              ; preds = %193
  %203 = tail call i32 @fuzzy_list_test(i64 noundef 200, i64 noundef 10, i32 noundef 2)
  tail call void @greatest_post_test(ptr noundef nonnull @.str.3, i32 noundef %203) #4
  br label %.preheader48.preheader

.preheader48.preheader:                           ; preds = %202, %199, %196
  %204 = tail call i32 @greatest_pre_test(ptr noundef nonnull @.str.9) #4
  %205 = icmp eq i32 %204, 1
  br i1 %205, label %206, label %211

206:                                              ; preds = %.preheader48.preheader
  %207 = load i64, ptr @__const.list_test.delete_tests, align 16, !tbaa !14
  %208 = load i64, ptr getelementptr inbounds (i8, ptr @__const.list_test.delete_tests, i64 8), align 8, !tbaa !14
  %209 = load ptr, ptr @__const.list_test.delete_tests_name, align 16, !tbaa !13
  %210 = tail call i32 @basic_delete_list_test(i64 noundef %207, i64 noundef %208, ptr noundef %209)
  tail call void @greatest_post_test(ptr noundef nonnull @.str.9, i32 noundef %210) #4
  br label %.preheader48.1

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

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

.preheader48.1:                                   ; preds = %206, %214, %211
  %217 = tail call i32 @greatest_pre_test(ptr noundef nonnull @.str.9) #4
  %218 = icmp eq i32 %217, 1
  br i1 %218, label %225, label %219

219:                                              ; preds = %.preheader48.1
  %220 = load i32, ptr @greatest_info, align 8, !tbaa !5
  %221 = and i32 %220, 4
  %.not44.1 = icmp eq i32 %221, 0
  br i1 %.not44.1, label %.preheader48.2, label %222

222:                                              ; preds = %219
  %223 = load ptr, ptr @stdout, align 8, !tbaa !13
  %224 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %223, ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.9) #4
  br label %.preheader48.2

225:                                              ; preds = %.preheader48.1
  %226 = load i64, ptr getelementptr inbounds (i8, ptr @__const.list_test.delete_tests, i64 16), align 16, !tbaa !14
  %227 = load i64, ptr getelementptr inbounds (i8, ptr @__const.list_test.delete_tests, i64 24), align 8, !tbaa !14
  %228 = load ptr, ptr getelementptr inbounds (i8, ptr @__const.list_test.delete_tests_name, i64 8), align 8, !tbaa !13
  %229 = tail call i32 @basic_delete_list_test(i64 noundef %226, i64 noundef %227, ptr noundef %228)
  tail call void @greatest_post_test(ptr noundef nonnull @.str.9, i32 noundef %229) #4
  br label %.preheader48.2

.preheader48.2:                                   ; preds = %225, %222, %219
  %230 = tail call i32 @greatest_pre_test(ptr noundef nonnull @.str.9) #4
  %231 = icmp eq i32 %230, 1
  br i1 %231, label %238, label %232

232:                                              ; preds = %.preheader48.2
  %233 = load i32, ptr @greatest_info, align 8, !tbaa !5
  %234 = and i32 %233, 4
  %.not44.2 = icmp eq i32 %234, 0
  br i1 %.not44.2, label %.preheader48.3, label %235

235:                                              ; preds = %232
  %236 = load ptr, ptr @stdout, align 8, !tbaa !13
  %237 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %236, ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.9) #4
  br label %.preheader48.3

238:                                              ; preds = %.preheader48.2
  %239 = load i64, ptr getelementptr inbounds (i8, ptr @__const.list_test.delete_tests, i64 32), align 16, !tbaa !14
  %240 = load i64, ptr getelementptr inbounds (i8, ptr @__const.list_test.delete_tests, i64 40), align 8, !tbaa !14
  %241 = load ptr, ptr getelementptr inbounds (i8, ptr @__const.list_test.delete_tests_name, i64 16), align 16, !tbaa !13
  %242 = tail call i32 @basic_delete_list_test(i64 noundef %239, i64 noundef %240, ptr noundef %241)
  tail call void @greatest_post_test(ptr noundef nonnull @.str.9, i32 noundef %242) #4
  br label %.preheader48.3

.preheader48.3:                                   ; preds = %238, %235, %232
  %243 = tail call i32 @greatest_pre_test(ptr noundef nonnull @.str.9) #4
  %244 = icmp eq i32 %243, 1
  br i1 %244, label %251, label %245

245:                                              ; preds = %.preheader48.3
  %246 = load i32, ptr @greatest_info, align 8, !tbaa !5
  %247 = and i32 %246, 4
  %.not44.3 = icmp eq i32 %247, 0
  br i1 %.not44.3, label %.preheader48.4, label %248

248:                                              ; preds = %245
  %249 = load ptr, ptr @stdout, align 8, !tbaa !13
  %250 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %249, ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.9) #4
  br label %.preheader48.4

251:                                              ; preds = %.preheader48.3
  %252 = load i64, ptr getelementptr inbounds (i8, ptr @__const.list_test.delete_tests, i64 48), align 16, !tbaa !14
  %253 = load i64, ptr getelementptr inbounds (i8, ptr @__const.list_test.delete_tests, i64 56), align 8, !tbaa !14
  %254 = load ptr, ptr getelementptr inbounds (i8, ptr @__const.list_test.delete_tests_name, i64 24), align 8, !tbaa !13
  %255 = tail call i32 @basic_delete_list_test(i64 noundef %252, i64 noundef %253, ptr noundef %254)
  tail call void @greatest_post_test(ptr noundef nonnull @.str.9, i32 noundef %255) #4
  br label %.preheader48.4

.preheader48.4:                                   ; preds = %251, %248, %245
  %256 = tail call i32 @greatest_pre_test(ptr noundef nonnull @.str.9) #4
  %257 = icmp eq i32 %256, 1
  br i1 %257, label %264, label %258

258:                                              ; preds = %.preheader48.4
  %259 = load i32, ptr @greatest_info, align 8, !tbaa !5
  %260 = and i32 %259, 4
  %.not44.4 = icmp eq i32 %260, 0
  br i1 %.not44.4, label %.preheader.preheader, label %261

261:                                              ; preds = %258
  %262 = load ptr, ptr @stdout, align 8, !tbaa !13
  %263 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %262, ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.9) #4
  br label %.preheader.preheader

264:                                              ; preds = %.preheader48.4
  %265 = load i64, ptr getelementptr inbounds (i8, ptr @__const.list_test.delete_tests, i64 64), align 16, !tbaa !14
  %266 = load i64, ptr getelementptr inbounds (i8, ptr @__const.list_test.delete_tests, i64 72), align 8, !tbaa !14
  %267 = load ptr, ptr getelementptr inbounds (i8, ptr @__const.list_test.delete_tests_name, i64 32), align 16, !tbaa !13
  %268 = tail call i32 @basic_delete_list_test(i64 noundef %265, i64 noundef %266, ptr noundef %267)
  tail call void @greatest_post_test(ptr noundef nonnull @.str.9, i32 noundef %268) #4
  br label %.preheader.preheader

.preheader.preheader:                             ; preds = %264, %261, %258
  tail call void @srand(i32 noundef 1) #4
  %269 = tail call i32 @greatest_pre_test(ptr noundef nonnull @.str.10) #4
  %270 = icmp eq i32 %269, 1
  br i1 %270, label %271, label %273

271:                                              ; preds = %.preheader.preheader
  %272 = tail call i32 @fuzzy_list_delete_test(i64 noundef 100, i64 noundef 2, i32 noundef 0)
  tail call void @greatest_post_test(ptr noundef nonnull @.str.10, i32 noundef %272) #4
  br label %279

273:                                              ; preds = %.preheader.preheader
  %274 = load i32, ptr @greatest_info, align 8, !tbaa !5
  %275 = and i32 %274, 4
  %.not = icmp eq i32 %275, 0
  br i1 %.not, label %279, label %276

276:                                              ; preds = %273
  %277 = load ptr, ptr @stdout, align 8, !tbaa !13
  %278 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %277, ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.10) #4
  br label %279

279:                                              ; preds = %271, %276, %273
  tail call void @srand(i32 noundef 1) #4
  %280 = tail call i32 @greatest_pre_test(ptr noundef nonnull @.str.10) #4
  %281 = icmp eq i32 %280, 1
  br i1 %281, label %288, label %282

282:                                              ; preds = %279
  %283 = load i32, ptr @greatest_info, align 8, !tbaa !5
  %284 = and i32 %283, 4
  %.not.1 = icmp eq i32 %284, 0
  br i1 %.not.1, label %290, label %285

285:                                              ; preds = %282
  %286 = load ptr, ptr @stdout, align 8, !tbaa !13
  %287 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %286, ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.10) #4
  br label %290

288:                                              ; preds = %279
  %289 = tail call i32 @fuzzy_list_delete_test(i64 noundef 100, i64 noundef 2, i32 noundef 1)
  tail call void @greatest_post_test(ptr noundef nonnull @.str.10, i32 noundef %289) #4
  br label %290

290:                                              ; preds = %288, %285, %282
  tail call void @srand(i32 noundef 1) #4
  %291 = tail call i32 @greatest_pre_test(ptr noundef nonnull @.str.10) #4
  %292 = icmp eq i32 %291, 1
  br i1 %292, label %299, label %293

293:                                              ; preds = %290
  %294 = load i32, ptr @greatest_info, align 8, !tbaa !5
  %295 = and i32 %294, 4
  %.not.2 = icmp eq i32 %295, 0
  br i1 %.not.2, label %301, label %296

296:                                              ; preds = %293
  %297 = load ptr, ptr @stdout, align 8, !tbaa !13
  %298 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %297, ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.10) #4
  br label %301

299:                                              ; preds = %290
  %300 = tail call i32 @fuzzy_list_delete_test(i64 noundef 100, i64 noundef 2, i32 noundef 2)
  tail call void @greatest_post_test(ptr noundef nonnull @.str.10, i32 noundef %300) #4
  br label %301

301:                                              ; preds = %299, %296, %293
  tail call void @srand(i32 noundef 1) #4
  %302 = tail call i32 @greatest_pre_test(ptr noundef nonnull @.str.10) #4
  %303 = icmp eq i32 %302, 1
  br i1 %303, label %310, label %304

304:                                              ; preds = %301
  %305 = load i32, ptr @greatest_info, align 8, !tbaa !5
  %306 = and i32 %305, 4
  %.not.165 = icmp eq i32 %306, 0
  br i1 %.not.165, label %312, label %307

307:                                              ; preds = %304
  %308 = load ptr, ptr @stdout, align 8, !tbaa !13
  %309 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %308, ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.10) #4
  br label %312

310:                                              ; preds = %301
  %311 = tail call i32 @fuzzy_list_delete_test(i64 noundef 100, i64 noundef 10, i32 noundef 0)
  tail call void @greatest_post_test(ptr noundef nonnull @.str.10, i32 noundef %311) #4
  br label %312

312:                                              ; preds = %310, %307, %304
  tail call void @srand(i32 noundef 1) #4
  %313 = tail call i32 @greatest_pre_test(ptr noundef nonnull @.str.10) #4
  %314 = icmp eq i32 %313, 1
  br i1 %314, label %321, label %315

315:                                              ; preds = %312
  %316 = load i32, ptr @greatest_info, align 8, !tbaa !5
  %317 = and i32 %316, 4
  %.not.1.1 = icmp eq i32 %317, 0
  br i1 %.not.1.1, label %323, label %318

318:                                              ; preds = %315
  %319 = load ptr, ptr @stdout, align 8, !tbaa !13
  %320 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %319, ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.10) #4
  br label %323

321:                                              ; preds = %312
  %322 = tail call i32 @fuzzy_list_delete_test(i64 noundef 100, i64 noundef 10, i32 noundef 1)
  tail call void @greatest_post_test(ptr noundef nonnull @.str.10, i32 noundef %322) #4
  br label %323

323:                                              ; preds = %321, %318, %315
  tail call void @srand(i32 noundef 1) #4
  %324 = tail call i32 @greatest_pre_test(ptr noundef nonnull @.str.10) #4
  %325 = icmp eq i32 %324, 1
  br i1 %325, label %332, label %326

326:                                              ; preds = %323
  %327 = load i32, ptr @greatest_info, align 8, !tbaa !5
  %328 = and i32 %327, 4
  %.not.2.1 = icmp eq i32 %328, 0
  br i1 %.not.2.1, label %.preheader.1, label %329

329:                                              ; preds = %326
  %330 = load ptr, ptr @stdout, align 8, !tbaa !13
  %331 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %330, ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.10) #4
  br label %.preheader.1

332:                                              ; preds = %323
  %333 = tail call i32 @fuzzy_list_delete_test(i64 noundef 100, i64 noundef 10, i32 noundef 2)
  tail call void @greatest_post_test(ptr noundef nonnull @.str.10, i32 noundef %333) #4
  br label %.preheader.1

.preheader.1:                                     ; preds = %332, %329, %326
  tail call void @srand(i32 noundef 1) #4
  %334 = tail call i32 @greatest_pre_test(ptr noundef nonnull @.str.10) #4
  %335 = icmp eq i32 %334, 1
  br i1 %335, label %342, label %336

336:                                              ; preds = %.preheader.1
  %337 = load i32, ptr @greatest_info, align 8, !tbaa !5
  %338 = and i32 %337, 4
  %.not.166 = icmp eq i32 %338, 0
  br i1 %.not.166, label %344, label %339

339:                                              ; preds = %336
  %340 = load ptr, ptr @stdout, align 8, !tbaa !13
  %341 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %340, ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.10) #4
  br label %344

342:                                              ; preds = %.preheader.1
  %343 = tail call i32 @fuzzy_list_delete_test(i64 noundef 200, i64 noundef 2, i32 noundef 0)
  tail call void @greatest_post_test(ptr noundef nonnull @.str.10, i32 noundef %343) #4
  br label %344

344:                                              ; preds = %342, %339, %336
  tail call void @srand(i32 noundef 1) #4
  %345 = tail call i32 @greatest_pre_test(ptr noundef nonnull @.str.10) #4
  %346 = icmp eq i32 %345, 1
  br i1 %346, label %353, label %347

347:                                              ; preds = %344
  %348 = load i32, ptr @greatest_info, align 8, !tbaa !5
  %349 = and i32 %348, 4
  %.not.1.167 = icmp eq i32 %349, 0
  br i1 %.not.1.167, label %355, label %350

350:                                              ; preds = %347
  %351 = load ptr, ptr @stdout, align 8, !tbaa !13
  %352 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %351, ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.10) #4
  br label %355

353:                                              ; preds = %344
  %354 = tail call i32 @fuzzy_list_delete_test(i64 noundef 200, i64 noundef 2, i32 noundef 1)
  tail call void @greatest_post_test(ptr noundef nonnull @.str.10, i32 noundef %354) #4
  br label %355

355:                                              ; preds = %353, %350, %347
  tail call void @srand(i32 noundef 1) #4
  %356 = tail call i32 @greatest_pre_test(ptr noundef nonnull @.str.10) #4
  %357 = icmp eq i32 %356, 1
  br i1 %357, label %364, label %358

358:                                              ; preds = %355
  %359 = load i32, ptr @greatest_info, align 8, !tbaa !5
  %360 = and i32 %359, 4
  %.not.2.168 = icmp eq i32 %360, 0
  br i1 %.not.2.168, label %366, label %361

361:                                              ; preds = %358
  %362 = load ptr, ptr @stdout, align 8, !tbaa !13
  %363 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %362, ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.10) #4
  br label %366

364:                                              ; preds = %355
  %365 = tail call i32 @fuzzy_list_delete_test(i64 noundef 200, i64 noundef 2, i32 noundef 2)
  tail call void @greatest_post_test(ptr noundef nonnull @.str.10, i32 noundef %365) #4
  br label %366

366:                                              ; preds = %364, %361, %358
  tail call void @srand(i32 noundef 1) #4
  %367 = tail call i32 @greatest_pre_test(ptr noundef nonnull @.str.10) #4
  %368 = icmp eq i32 %367, 1
  br i1 %368, label %375, label %369

369:                                              ; preds = %366
  %370 = load i32, ptr @greatest_info, align 8, !tbaa !5
  %371 = and i32 %370, 4
  %.not.165.1 = icmp eq i32 %371, 0
  br i1 %.not.165.1, label %377, label %372

372:                                              ; preds = %369
  %373 = load ptr, ptr @stdout, align 8, !tbaa !13
  %374 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %373, ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.10) #4
  br label %377

375:                                              ; preds = %366
  %376 = tail call i32 @fuzzy_list_delete_test(i64 noundef 200, i64 noundef 10, i32 noundef 0)
  tail call void @greatest_post_test(ptr noundef nonnull @.str.10, i32 noundef %376) #4
  br label %377

377:                                              ; preds = %375, %372, %369
  tail call void @srand(i32 noundef 1) #4
  %378 = tail call i32 @greatest_pre_test(ptr noundef nonnull @.str.10) #4
  %379 = icmp eq i32 %378, 1
  br i1 %379, label %386, label %380

380:                                              ; preds = %377
  %381 = load i32, ptr @greatest_info, align 8, !tbaa !5
  %382 = and i32 %381, 4
  %.not.1.1.1 = icmp eq i32 %382, 0
  br i1 %.not.1.1.1, label %388, label %383

383:                                              ; preds = %380
  %384 = load ptr, ptr @stdout, align 8, !tbaa !13
  %385 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %384, ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.10) #4
  br label %388

386:                                              ; preds = %377
  %387 = tail call i32 @fuzzy_list_delete_test(i64 noundef 200, i64 noundef 10, i32 noundef 1)
  tail call void @greatest_post_test(ptr noundef nonnull @.str.10, i32 noundef %387) #4
  br label %388

388:                                              ; preds = %386, %383, %380
  tail call void @srand(i32 noundef 1) #4
  %389 = tail call i32 @greatest_pre_test(ptr noundef nonnull @.str.10) #4
  %390 = icmp eq i32 %389, 1
  br i1 %390, label %397, label %391

391:                                              ; preds = %388
  %392 = load i32, ptr @greatest_info, align 8, !tbaa !5
  %393 = and i32 %392, 4
  %.not.2.1.1 = icmp eq i32 %393, 0
  br i1 %.not.2.1.1, label %399, label %394

394:                                              ; preds = %391
  %395 = load ptr, ptr @stdout, align 8, !tbaa !13
  %396 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %395, ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.10) #4
  br label %399

397:                                              ; preds = %388
  %398 = tail call i32 @fuzzy_list_delete_test(i64 noundef 200, i64 noundef 10, i32 noundef 2)
  tail call void @greatest_post_test(ptr noundef nonnull @.str.10, i32 noundef %398) #4
  br label %399

399:                                              ; preds = %397, %394, %391
  ret void
}

declare i32 @greatest_pre_test(ptr noundef) local_unnamed_addr #1

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

; Function Attrs: nounwind
declare void @srand(i32 noundef) local_unnamed_addr #3

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

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

; Function Attrs: nounwind uwtable
declare hidden i32 @fuzzy_list_delete_test(i64 noundef, 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 "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, !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 = !{!11, !11, i64 0}


; Effective O3 passes: EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferAlignmentPass,InferFunctionAttrsPass,InstCombinePass,LoopRotatePass,LoopSimplifyPass,SROAPass,SimplifyCFGPass,TailCallElimPass