; LLVM IR from jrl-umi3218/mc_rtc :: 3rd-party/qhull/src/libqhull (poly2)

; 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.qhT = type { i32, i32, i32, i32, i32, i32, double, i32, i32, i32, i32, i32, i32, i32, i32, double, double, i32, i32, i32, i32, i32, i32, ptr, i32, i32, ptr, i32, i32, i32, i32, i32, i32, i32, double, double, i32, i32, i32, i32, double, double, i32, i32, double, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, [29 x i32], i32, i32, i32, i32, i32, i32, i32, i32, double, double, double, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, double, i32, i32, i32, i32, i32, i32, i32, i32, double, i32, ptr, ptr, i32, i32, i32, i32, i32, ptr, i32, ptr, i32, [256 x i8], i32, [256 x i8], [512 x i8], i32, i32, i32, i32, i32, i32, ptr, ptr, ptr, ptr, double, double, double, double, double, double, double, double, double, double, double, double, double, double, ptr, double, double, double, double, i32, [6 x i8], [1 x %struct.__jmp_buf_tag], [40 x i8], [1 x %struct.__jmp_buf_tag], [40 x i8], ptr, ptr, ptr, ptr, i32, i32, i32, ptr, ptr, ptr, ptr, ptr, i32, i32, ptr, i32, ptr, i32, ptr, ptr, ptr, ptr, i32, i32, i32, i32, i32, i32, i32, i32, i64, i32, i32, i32, i32, i32, ptr, ptr, i32, i32, i32, double, i32, double, double, double, i32, i32, i32, i32, i32, double, double, i32, i32, i32, i32, i32, i32, double, double, i32, i32, i32, i32, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, i32, ptr, ptr, i32, i32, i32, ptr, double, double, double, double, i32, i32, i32, i32, i32, i32, ptr, ptr, i32 }
%struct.__jmp_buf_tag = type { [8 x i64], i32, %struct.__sigset_t }
%struct.__sigset_t = type { [16 x i64] }
%struct.facetT = type { double, double, double, ptr, %union.anon, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, i32, i32, i32 }
%union.anon = type { double }
%struct.vertexT = type { ptr, ptr, ptr, ptr, i32, i32, i8 }

@qh_qh = external global %struct.qhT, align 8
@.str.66 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.88 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.89 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.90 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.91 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.92 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.93 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.94 = external hidden unnamed_addr constant [117 x i8], align 1
@.str.95 = external hidden unnamed_addr constant [147 x i8], align 1
@.str.96 = external hidden unnamed_addr constant [181 x i8], align 1
@.str.97 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.98 = external hidden unnamed_addr constant [124 x i8], align 1
@.str.99 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.100 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.101 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.102 = external hidden unnamed_addr constant [118 x i8], align 1
@.str.103 = external hidden unnamed_addr constant [149 x i8], align 1
@.str.104 = external hidden unnamed_addr constant [185 x i8], align 1
@.str.105 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.106 = external hidden unnamed_addr constant [81 x i8], align 1

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

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

declare void @qh_fprintf(ptr noundef, i32 noundef, ptr noundef, ...) #1

declare void @qh_errexit(i32 noundef, ptr noundef, ptr noundef) #1

declare void @qh_errprint(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #1

; Function Attrs: nounwind uwtable
define dso_local i32 @qh_checklists(ptr noundef %0) #2 {
  %2 = alloca i32, align 4
  %3 = alloca ptr, align 8
  %4 = alloca ptr, align 8
  %5 = alloca ptr, align 8
  %6 = alloca ptr, align 8
  %7 = alloca ptr, align 8
  %8 = alloca ptr, align 8
  %9 = alloca ptr, align 8
  %10 = alloca ptr, align 8
  %11 = alloca ptr, align 8
  %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
  store ptr %0, ptr %3, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %4) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %5) #3
  store ptr null, ptr %5, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %6) #3
  store ptr null, ptr %6, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %7) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %8) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %9) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %10) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #3
  store ptr null, ptr %11, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #3
  store i32 0, ptr %12, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #3
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #3
  store i32 0, ptr %14, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #3
  store i32 0, ptr %15, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #3
  store i32 0, ptr %16, align 4, !tbaa !9
  %18 = load ptr, ptr %3, align 8, !tbaa !5
  %19 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 166), align 8, !tbaa !11
  %20 = icmp eq ptr %18, %19
  br i1 %20, label %25, label %21

21:                                               ; preds = %1
  %22 = load ptr, ptr %3, align 8, !tbaa !5
  %23 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 167), align 8, !tbaa !15
  %24 = icmp eq ptr %22, %23
  br i1 %24, label %25, label %49

25:                                               ; preds = %21, %1
  %26 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 175), align 8, !tbaa !16
  store ptr %26, ptr %9, align 8, !tbaa !5
  store ptr null, ptr %10, align 8, !tbaa !5
  %27 = load i32, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 29), align 8, !tbaa !17
  %28 = icmp sge i32 %27, 2
  br i1 %28, label %29, label %48

29:                                               ; preds = %25
  %30 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 158), align 8, !tbaa !18
  %31 = load ptr, ptr %3, align 8, !tbaa !5
  %32 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 166), align 8, !tbaa !11
  %33 = icmp eq ptr %31, %32
  %34 = zext i1 %33 to i64
  %35 = select i1 %33, ptr @.str.89, ptr @.str.90
  %36 = load ptr, ptr %3, align 8, !tbaa !5
  %37 = getelementptr inbounds %struct.facetT, ptr %36, i32 0, i32 14
  %38 = load i32, ptr %37, align 4, !tbaa !19
  %39 = load ptr, ptr %9, align 8, !tbaa !5
  %40 = icmp ne ptr %39, null
  br i1 %40, label %41, label %45

41:                                               ; preds = %29
  %42 = load ptr, ptr %9, align 8, !tbaa !5
  %43 = getelementptr inbounds %struct.vertexT, ptr %42, i32 0, i32 4
  %44 = load i32, ptr %43, align 8, !tbaa !21
  br label %46

45:                                               ; preds = %29
  br label %46

46:                                               ; preds = %45, %41
  %47 = phi i32 [ %44, %41 ], [ -1, %45 ]
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %30, i32 noundef 2110, ptr noundef @.str.88, ptr noundef %35, i32 noundef %38, i32 noundef %47)
  br label %48

48:                                               ; preds = %46, %25
  br label %79

49:                                               ; preds = %21
  %50 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 175), align 8, !tbaa !16
  store ptr %50, ptr %9, align 8, !tbaa !5
  store ptr null, ptr %10, align 8, !tbaa !5
  %51 = load i32, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 29), align 8, !tbaa !17
  %52 = icmp sge i32 %51, 2
  br i1 %52, label %53, label %78

53:                                               ; preds = %49
  %54 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 158), align 8, !tbaa !18
  %55 = load ptr, ptr %3, align 8, !tbaa !5
  %56 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 163), align 8, !tbaa !23
  %57 = icmp eq ptr %55, %56
  %58 = zext i1 %57 to i64
  %59 = select i1 %57, ptr @.str.92, ptr @.str.93
  %60 = load ptr, ptr %3, align 8, !tbaa !5
  %61 = icmp ne ptr %60, null
  br i1 %61, label %62, label %66

62:                                               ; preds = %53
  %63 = load ptr, ptr %3, align 8, !tbaa !5
  %64 = getelementptr inbounds %struct.facetT, ptr %63, i32 0, i32 14
  %65 = load i32, ptr %64, align 4, !tbaa !19
  br label %67

66:                                               ; preds = %53
  br label %67

67:                                               ; preds = %66, %62
  %68 = phi i32 [ %65, %62 ], [ -1, %66 ]
  %69 = load ptr, ptr %9, align 8, !tbaa !5
  %70 = icmp ne ptr %69, null
  br i1 %70, label %71, label %75

71:                                               ; preds = %67
  %72 = load ptr, ptr %9, align 8, !tbaa !5
  %73 = getelementptr inbounds %struct.vertexT, ptr %72, i32 0, i32 4
  %74 = load i32, ptr %73, align 8, !tbaa !21
  br label %76

75:                                               ; preds = %67
  br label %76

76:                                               ; preds = %75, %71
  %77 = phi i32 [ %74, %71 ], [ -1, %75 ]
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %54, i32 noundef 2111, ptr noundef @.str.91, ptr noundef %59, i32 noundef %68, i32 noundef %77)
  br label %78

78:                                               ; preds = %76, %49
  br label %79

79:                                               ; preds = %78, %48
  %80 = load ptr, ptr %3, align 8, !tbaa !5
  %81 = icmp ne ptr %80, null
  br i1 %81, label %82, label %372

82:                                               ; preds = %79
  %83 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 164), align 8, !tbaa !24
  %84 = icmp eq ptr %83, null
  br i1 %84, label %95, label %85

85:                                               ; preds = %82
  %86 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 164), align 8, !tbaa !24
  %87 = getelementptr inbounds %struct.facetT, ptr %86, i32 0, i32 14
  %88 = load i32, ptr %87, align 4, !tbaa !19
  %89 = icmp ne i32 %88, 0
  br i1 %89, label %95, label %90

90:                                               ; preds = %85
  %91 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 164), align 8, !tbaa !24
  %92 = getelementptr inbounds %struct.facetT, ptr %91, i32 0, i32 7
  %93 = load ptr, ptr %92, align 8, !tbaa !25
  %94 = icmp ne ptr %93, null
  br i1 %94, label %95, label %107

95:                                               ; preds = %90, %85, %82
  %96 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 158), align 8, !tbaa !18
  %97 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 164), align 8, !tbaa !24
  %98 = icmp ne ptr %97, null
  br i1 %98, label %99, label %103

99:                                               ; preds = %95
  %100 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 164), align 8, !tbaa !24
  %101 = getelementptr inbounds %struct.facetT, ptr %100, i32 0, i32 14
  %102 = load i32, ptr %101, align 4, !tbaa !19
  br label %104

103:                                              ; preds = %95
  br label %104

104:                                              ; preds = %103, %99
  %105 = phi i32 [ %102, %99 ], [ -1, %103 ]
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %96, i32 noundef 6397, ptr noundef @.str.94, i32 noundef %105)
  %106 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 164), align 8, !tbaa !24
  call void @qh_errexit(i32 noundef 5, ptr noundef %106, ptr noundef null)
  br label %107

107:                                              ; preds = %104, %90
  %108 = load ptr, ptr %3, align 8, !tbaa !5
  %109 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 163), align 8, !tbaa !23
  %110 = icmp eq ptr %108, %109
  br i1 %110, label %111, label %112

111:                                              ; preds = %107
  br label %116

112:                                              ; preds = %107
  %113 = load ptr, ptr %3, align 8, !tbaa !5
  %114 = getelementptr inbounds %struct.facetT, ptr %113, i32 0, i32 6
  %115 = load ptr, ptr %114, align 8, !tbaa !26
  br label %116

116:                                              ; preds = %112, %111
  %117 = phi ptr [ null, %111 ], [ %115, %112 ]
  store ptr %117, ptr %7, align 8, !tbaa !5
  %118 = load i32, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 217), align 8, !tbaa !27
  %119 = add i32 %118, 1
  store i32 %119, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 217), align 8, !tbaa !27
  %120 = load ptr, ptr %3, align 8, !tbaa !5
  %121 = icmp ne ptr %120, null
  br i1 %121, label %122, label %303

122:                                              ; preds = %116
  %123 = load ptr, ptr %3, align 8, !tbaa !5
  store ptr %123, ptr %4, align 8, !tbaa !5
  br label %124

124:                                              ; preds = %298, %122
  %125 = load ptr, ptr %4, align 8, !tbaa !5
  %126 = icmp ne ptr %125, null
  br i1 %126, label %127, label %132

127:                                              ; preds = %124
  %128 = load ptr, ptr %4, align 8, !tbaa !5
  %129 = getelementptr inbounds %struct.facetT, ptr %128, i32 0, i32 7
  %130 = load ptr, ptr %129, align 8, !tbaa !25
  %131 = icmp ne ptr %130, null
  br label %132

132:                                              ; preds = %127, %124
  %133 = phi i1 [ false, %124 ], [ %131, %127 ]
  br i1 %133, label %134, label %302

134:                                              ; preds = %132
  %135 = load ptr, ptr %4, align 8, !tbaa !5
  %136 = getelementptr inbounds %struct.facetT, ptr %135, i32 0, i32 13
  %137 = load i32, ptr %136, align 8, !tbaa !28
  %138 = load i32, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 217), align 8, !tbaa !27
  %139 = icmp uge i32 %137, %138
  br i1 %139, label %146, label %140

140:                                              ; preds = %134
  %141 = load ptr, ptr %4, align 8, !tbaa !5
  %142 = getelementptr inbounds %struct.facetT, ptr %141, i32 0, i32 14
  %143 = load i32, ptr %142, align 4, !tbaa !19
  %144 = load i32, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 182), align 8, !tbaa !29
  %145 = icmp uge i32 %143, %144
  br i1 %145, label %146, label %217

146:                                              ; preds = %140, %134
  store i32 1, ptr %12, align 4, !tbaa !9
  %147 = load ptr, ptr %4, align 8, !tbaa !5
  store ptr %147, ptr %5, align 8, !tbaa !5
  %148 = load ptr, ptr %7, align 8, !tbaa !5
  store ptr %148, ptr %6, align 8, !tbaa !5
  %149 = load ptr, ptr %4, align 8, !tbaa !5
  %150 = getelementptr inbounds %struct.facetT, ptr %149, i32 0, i32 13
  %151 = load i32, ptr %150, align 8, !tbaa !28
  %152 = load i32, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 217), align 8, !tbaa !27
  %153 = icmp eq i32 %151, %152
  br i1 %153, label %154, label %188

154:                                              ; preds = %146
  %155 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 158), align 8, !tbaa !18
  %156 = load ptr, ptr %4, align 8, !tbaa !5
  %157 = getelementptr inbounds %struct.facetT, ptr %156, i32 0, i32 14
  %158 = load i32, ptr %157, align 4, !tbaa !19
  %159 = load ptr, ptr %4, align 8, !tbaa !5
  %160 = getelementptr inbounds %struct.facetT, ptr %159, i32 0, i32 14
  %161 = load i32, ptr %160, align 4, !tbaa !19
  %162 = load ptr, ptr %4, align 8, !tbaa !5
  %163 = getelementptr inbounds %struct.facetT, ptr %162, i32 0, i32 7
  %164 = load ptr, ptr %163, align 8, !tbaa !25
  %165 = getelementptr inbounds %struct.facetT, ptr %164, i32 0, i32 14
  %166 = load i32, ptr %165, align 4, !tbaa !19
  %167 = load ptr, ptr %7, align 8, !tbaa !5
  %168 = icmp ne ptr %167, null
  br i1 %168, label %169, label %173

169:                                              ; preds = %154
  %170 = load ptr, ptr %7, align 8, !tbaa !5
  %171 = getelementptr inbounds %struct.facetT, ptr %170, i32 0, i32 14
  %172 = load i32, ptr %171, align 4, !tbaa !19
  br label %174

173:                                              ; preds = %154
  br label %174

174:                                              ; preds = %173, %169
  %175 = phi i32 [ %172, %169 ], [ -1, %173 ]
  %176 = load ptr, ptr %4, align 8, !tbaa !5
  %177 = getelementptr inbounds %struct.facetT, ptr %176, i32 0, i32 14
  %178 = load i32, ptr %177, align 4, !tbaa !19
  %179 = load ptr, ptr %7, align 8, !tbaa !5
  %180 = icmp ne ptr %179, null
  br i1 %180, label %181, label %185

181:                                              ; preds = %174
  %182 = load ptr, ptr %7, align 8, !tbaa !5
  %183 = getelementptr inbounds %struct.facetT, ptr %182, i32 0, i32 14
  %184 = load i32, ptr %183, align 4, !tbaa !19
  br label %186

185:                                              ; preds = %174
  br label %186

186:                                              ; preds = %185, %181
  %187 = phi i32 [ %184, %181 ], [ -1, %185 ]
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %155, i32 noundef 6039, ptr noundef @.str.95, i32 noundef %158, i32 noundef %161, i32 noundef %166, i32 noundef %175, i32 noundef %178, i32 noundef %187)
  br label %207

188:                                              ; preds = %146
  %189 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 158), align 8, !tbaa !18
  %190 = load ptr, ptr %4, align 8, !tbaa !5
  %191 = getelementptr inbounds %struct.facetT, ptr %190, i32 0, i32 14
  %192 = load i32, ptr %191, align 4, !tbaa !19
  %193 = load i32, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 182), align 8, !tbaa !29
  %194 = load ptr, ptr %4, align 8, !tbaa !5
  %195 = getelementptr inbounds %struct.facetT, ptr %194, i32 0, i32 13
  %196 = load i32, ptr %195, align 8, !tbaa !28
  %197 = load i32, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 217), align 8, !tbaa !27
  %198 = load ptr, ptr %7, align 8, !tbaa !5
  %199 = icmp ne ptr %198, null
  br i1 %199, label %200, label %204

200:                                              ; preds = %188
  %201 = load ptr, ptr %7, align 8, !tbaa !5
  %202 = getelementptr inbounds %struct.facetT, ptr %201, i32 0, i32 14
  %203 = load i32, ptr %202, align 4, !tbaa !19
  br label %205

204:                                              ; preds = %188
  br label %205

205:                                              ; preds = %204, %200
  %206 = phi i32 [ %203, %200 ], [ -1, %204 ]
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %189, i32 noundef 6350, ptr noundef @.str.96, i32 noundef %192, i32 noundef %193, i32 noundef %196, i32 noundef %197, i32 noundef %206)
  br label %207

207:                                              ; preds = %205, %186
  %208 = load ptr, ptr %7, align 8, !tbaa !5
  %209 = icmp ne ptr %208, null
  br i1 %209, label %210, label %214

210:                                              ; preds = %207
  %211 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 164), align 8, !tbaa !24
  %212 = load ptr, ptr %7, align 8, !tbaa !5
  %213 = getelementptr inbounds %struct.facetT, ptr %212, i32 0, i32 7
  store ptr %211, ptr %213, align 8, !tbaa !25
  br label %216

214:                                              ; preds = %207
  %215 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 164), align 8, !tbaa !24
  store ptr %215, ptr %3, align 8, !tbaa !5
  br label %216

216:                                              ; preds = %214, %210
  br label %302

217:                                              ; preds = %140
  %218 = load i32, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 217), align 8, !tbaa !27
  %219 = load ptr, ptr %4, align 8, !tbaa !5
  %220 = getelementptr inbounds %struct.facetT, ptr %219, i32 0, i32 13
  store i32 %218, ptr %220, align 8, !tbaa !28
  %221 = load ptr, ptr %4, align 8, !tbaa !5
  %222 = getelementptr inbounds %struct.facetT, ptr %221, i32 0, i32 6
  %223 = load ptr, ptr %222, align 8, !tbaa !26
  %224 = load ptr, ptr %7, align 8, !tbaa !5
  %225 = icmp ne ptr %223, %224
  br i1 %225, label %226, label %257

226:                                              ; preds = %217
  %227 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 158), align 8, !tbaa !18
  %228 = load ptr, ptr %4, align 8, !tbaa !5
  %229 = getelementptr inbounds %struct.facetT, ptr %228, i32 0, i32 14
  %230 = load i32, ptr %229, align 4, !tbaa !19
  %231 = load ptr, ptr %7, align 8, !tbaa !5
  %232 = icmp ne ptr %231, null
  br i1 %232, label %233, label %237

233:                                              ; preds = %226
  %234 = load ptr, ptr %7, align 8, !tbaa !5
  %235 = getelementptr inbounds %struct.facetT, ptr %234, i32 0, i32 14
  %236 = load i32, ptr %235, align 4, !tbaa !19
  br label %238

237:                                              ; preds = %226
  br label %238

238:                                              ; preds = %237, %233
  %239 = phi i32 [ %236, %233 ], [ -1, %237 ]
  %240 = load ptr, ptr %4, align 8, !tbaa !5
  %241 = getelementptr inbounds %struct.facetT, ptr %240, i32 0, i32 6
  %242 = load ptr, ptr %241, align 8, !tbaa !26
  %243 = icmp ne ptr %242, null
  br i1 %243, label %244, label %250

244:                                              ; preds = %238
  %245 = load ptr, ptr %4, align 8, !tbaa !5
  %246 = getelementptr inbounds %struct.facetT, ptr %245, i32 0, i32 6
  %247 = load ptr, ptr %246, align 8, !tbaa !26
  %248 = getelementptr inbounds %struct.facetT, ptr %247, i32 0, i32 14
  %249 = load i32, ptr %248, align 4, !tbaa !19
  br label %251

250:                                              ; preds = %238
  br label %251

251:                                              ; preds = %250, %244
  %252 = phi i32 [ %249, %244 ], [ -1, %250 ]
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %227, i32 noundef 6416, ptr noundef @.str.97, i32 noundef %230, i32 noundef %239, i32 noundef %252)
  store i32 1, ptr %12, align 4, !tbaa !9
  %253 = load ptr, ptr %4, align 8, !tbaa !5
  store ptr %253, ptr %5, align 8, !tbaa !5
  %254 = load ptr, ptr %4, align 8, !tbaa !5
  %255 = getelementptr inbounds %struct.facetT, ptr %254, i32 0, i32 6
  %256 = load ptr, ptr %255, align 8, !tbaa !26
  store ptr %256, ptr %6, align 8, !tbaa !5
  br label %257

257:                                              ; preds = %251, %217
  %258 = load ptr, ptr %4, align 8, !tbaa !5
  store ptr %258, ptr %7, align 8, !tbaa !5
  %259 = load ptr, ptr %3, align 8, !tbaa !5
  %260 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 163), align 8, !tbaa !23
  %261 = icmp eq ptr %259, %260
  br i1 %261, label %262, label %297

262:                                              ; preds = %257
  %263 = load ptr, ptr %4, align 8, !tbaa !5
  %264 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 167), align 8, !tbaa !15
  %265 = icmp eq ptr %263, %264
  br i1 %265, label %266, label %286

266:                                              ; preds = %262
  %267 = load i32, ptr %13, align 4, !tbaa !9
  %268 = icmp ne i32 %267, 0
  br i1 %268, label %269, label %285

269:                                              ; preds = %266
  %270 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 158), align 8, !tbaa !18
  %271 = load ptr, ptr %4, align 8, !tbaa !5
  %272 = getelementptr inbounds %struct.facetT, ptr %271, i32 0, i32 14
  %273 = load i32, ptr %272, align 4, !tbaa !19
  %274 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 166), align 8, !tbaa !11
  %275 = icmp ne ptr %274, null
  br i1 %275, label %276, label %280

276:                                              ; preds = %269
  %277 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 166), align 8, !tbaa !11
  %278 = getelementptr inbounds %struct.facetT, ptr %277, i32 0, i32 14
  %279 = load i32, ptr %278, align 4, !tbaa !19
  br label %281

280:                                              ; preds = %269
  br label %281

281:                                              ; preds = %280, %276
  %282 = phi i32 [ %279, %276 ], [ -1, %280 ]
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %270, i32 noundef 6285, ptr noundef @.str.98, i32 noundef %273, i32 noundef %282)
  store i32 1, ptr %12, align 4, !tbaa !9
  %283 = load ptr, ptr %4, align 8, !tbaa !5
  store ptr %283, ptr %5, align 8, !tbaa !5
  %284 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 166), align 8, !tbaa !11
  store ptr %284, ptr %6, align 8, !tbaa !5
  br label %285

285:                                              ; preds = %281, %266
  store i32 1, ptr %16, align 4, !tbaa !9
  br label %286

286:                                              ; preds = %285, %262
  %287 = load ptr, ptr %4, align 8, !tbaa !5
  %288 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 166), align 8, !tbaa !11
  %289 = icmp eq ptr %287, %288
  br i1 %289, label %290, label %291

290:                                              ; preds = %286
  store i32 1, ptr %13, align 4, !tbaa !9
  br label %291

291:                                              ; preds = %290, %286
  %292 = load ptr, ptr %4, align 8, !tbaa !5
  %293 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 165), align 8, !tbaa !30
  %294 = icmp eq ptr %292, %293
  br i1 %294, label %295, label %296

295:                                              ; preds = %291
  store i32 1, ptr %14, align 4, !tbaa !9
  br label %296

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

297:                                              ; preds = %296, %257
  br label %298

298:                                              ; preds = %297
  %299 = load ptr, ptr %4, align 8, !tbaa !5
  %300 = getelementptr inbounds %struct.facetT, ptr %299, i32 0, i32 7
  %301 = load ptr, ptr %300, align 8, !tbaa !25
  store ptr %301, ptr %4, align 8, !tbaa !5
  br label %124, !llvm.loop !31

302:                                              ; preds = %216, %132
  br label %303

303:                                              ; preds = %302, %116
  %304 = load ptr, ptr %3, align 8, !tbaa !5
  %305 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 163), align 8, !tbaa !23
  %306 = icmp eq ptr %304, %305
  br i1 %306, label %307, label %371

307:                                              ; preds = %303
  %308 = load i32, ptr %14, align 4, !tbaa !9
  %309 = icmp ne i32 %308, 0
  br i1 %309, label %328, label %310

310:                                              ; preds = %307
  %311 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 165), align 8, !tbaa !30
  %312 = icmp ne ptr %311, null
  br i1 %312, label %313, label %328

313:                                              ; preds = %310
  %314 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 165), align 8, !tbaa !30
  %315 = getelementptr inbounds %struct.facetT, ptr %314, i32 0, i32 7
  %316 = load ptr, ptr %315, align 8, !tbaa !25
  %317 = icmp ne ptr %316, null
  br i1 %317, label %318, label %328

318:                                              ; preds = %313
  %319 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 158), align 8, !tbaa !18
  %320 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 165), align 8, !tbaa !30
  %321 = getelementptr inbounds %struct.facetT, ptr %320, i32 0, i32 14
  %322 = load i32, ptr %321, align 4, !tbaa !19
  %323 = load ptr, ptr %3, align 8, !tbaa !5
  %324 = getelementptr inbounds %struct.facetT, ptr %323, i32 0, i32 14
  %325 = load i32, ptr %324, align 4, !tbaa !19
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %319, i32 noundef 6369, ptr noundef @.str.99, i32 noundef %322, i32 noundef %325)
  store i32 1, ptr %12, align 4, !tbaa !9
  %326 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 165), align 8, !tbaa !30
  store ptr %326, ptr %5, align 8, !tbaa !5
  %327 = load ptr, ptr %3, align 8, !tbaa !5
  store ptr %327, ptr %6, align 8, !tbaa !5
  br label %328

328:                                              ; preds = %318, %313, %310, %307
  %329 = load i32, ptr %13, align 4, !tbaa !9
  %330 = icmp ne i32 %329, 0
  br i1 %330, label %349, label %331

331:                                              ; preds = %328
  %332 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 166), align 8, !tbaa !11
  %333 = icmp ne ptr %332, null
  br i1 %333, label %334, label %349

334:                                              ; preds = %331
  %335 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 166), align 8, !tbaa !11
  %336 = getelementptr inbounds %struct.facetT, ptr %335, i32 0, i32 7
  %337 = load ptr, ptr %336, align 8, !tbaa !25
  %338 = icmp ne ptr %337, null
  br i1 %338, label %339, label %349

339:                                              ; preds = %334
  %340 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 158), align 8, !tbaa !18
  %341 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 166), align 8, !tbaa !11
  %342 = getelementptr inbounds %struct.facetT, ptr %341, i32 0, i32 14
  %343 = load i32, ptr %342, align 4, !tbaa !19
  %344 = load ptr, ptr %3, align 8, !tbaa !5
  %345 = getelementptr inbounds %struct.facetT, ptr %344, i32 0, i32 14
  %346 = load i32, ptr %345, align 4, !tbaa !19
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %340, i32 noundef 6286, ptr noundef @.str.100, i32 noundef %343, i32 noundef %346)
  store i32 1, ptr %12, align 4, !tbaa !9
  %347 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 166), align 8, !tbaa !11
  store ptr %347, ptr %5, align 8, !tbaa !5
  %348 = load ptr, ptr %3, align 8, !tbaa !5
  store ptr %348, ptr %6, align 8, !tbaa !5
  br label %349

349:                                              ; preds = %339, %334, %331, %328
  %350 = load i32, ptr %16, align 4, !tbaa !9
  %351 = icmp ne i32 %350, 0
  br i1 %351, label %370, label %352

352:                                              ; preds = %349
  %353 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 167), align 8, !tbaa !15
  %354 = icmp ne ptr %353, null
  br i1 %354, label %355, label %370

355:                                              ; preds = %352
  %356 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 167), align 8, !tbaa !15
  %357 = getelementptr inbounds %struct.facetT, ptr %356, i32 0, i32 7
  %358 = load ptr, ptr %357, align 8, !tbaa !25
  %359 = icmp ne ptr %358, null
  br i1 %359, label %360, label %370

360:                                              ; preds = %355
  %361 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 158), align 8, !tbaa !18
  %362 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 167), align 8, !tbaa !15
  %363 = getelementptr inbounds %struct.facetT, ptr %362, i32 0, i32 14
  %364 = load i32, ptr %363, align 4, !tbaa !19
  %365 = load ptr, ptr %3, align 8, !tbaa !5
  %366 = getelementptr inbounds %struct.facetT, ptr %365, i32 0, i32 14
  %367 = load i32, ptr %366, align 4, !tbaa !19
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %361, i32 noundef 6138, ptr noundef @.str.101, i32 noundef %364, i32 noundef %367)
  store i32 1, ptr %12, align 4, !tbaa !9
  %368 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 167), align 8, !tbaa !15
  store ptr %368, ptr %5, align 8, !tbaa !5
  %369 = load ptr, ptr %3, align 8, !tbaa !5
  store ptr %369, ptr %6, align 8, !tbaa !5
  br label %370

370:                                              ; preds = %360, %355, %352, %349
  br label %371

371:                                              ; preds = %370, %303
  br label %372

372:                                              ; preds = %371, %79
  %373 = load ptr, ptr %9, align 8, !tbaa !5
  %374 = icmp ne ptr %373, null
  br i1 %374, label %375, label %556

375:                                              ; preds = %372
  %376 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 176), align 8, !tbaa !33
  %377 = icmp eq ptr %376, null
  br i1 %377, label %388, label %378

378:                                              ; preds = %375
  %379 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 176), align 8, !tbaa !33
  %380 = getelementptr inbounds %struct.vertexT, ptr %379, i32 0, i32 4
  %381 = load i32, ptr %380, align 8, !tbaa !21
  %382 = icmp ne i32 %381, 0
  br i1 %382, label %388, label %383

383:                                              ; preds = %378
  %384 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 176), align 8, !tbaa !33
  %385 = getelementptr inbounds %struct.vertexT, ptr %384, i32 0, i32 0
  %386 = load ptr, ptr %385, align 8, !tbaa !34
  %387 = icmp ne ptr %386, null
  br i1 %387, label %388, label %402

388:                                              ; preds = %383, %378, %375
  %389 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 158), align 8, !tbaa !18
  %390 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 176), align 8, !tbaa !33
  %391 = icmp ne ptr %390, null
  br i1 %391, label %392, label %396

392:                                              ; preds = %388
  %393 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 176), align 8, !tbaa !33
  %394 = getelementptr inbounds %struct.vertexT, ptr %393, i32 0, i32 4
  %395 = load i32, ptr %394, align 8, !tbaa !21
  br label %397

396:                                              ; preds = %388
  br label %397

397:                                              ; preds = %396, %392
  %398 = phi i32 [ %395, %392 ], [ -1, %396 ]
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %389, i32 noundef 6366, ptr noundef @.str.102, i32 noundef %398)
  %399 = load ptr, ptr %5, align 8, !tbaa !5
  %400 = load ptr, ptr %6, align 8, !tbaa !5
  %401 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 176), align 8, !tbaa !33
  call void @qh_errprint(ptr noundef @.str.66, ptr noundef %399, ptr noundef %400, ptr noundef null, ptr noundef %401)
  call void @qh_errexit(i32 noundef 5, ptr noundef null, ptr noundef null)
  br label %402

402:                                              ; preds = %397, %383
  %403 = load i32, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 218), align 4, !tbaa !35
  %404 = add i32 %403, 1
  store i32 %404, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 218), align 4, !tbaa !35
  %405 = load ptr, ptr %9, align 8, !tbaa !5
  store ptr %405, ptr %8, align 8, !tbaa !5
  br label %406

406:                                              ; preds = %534, %402
  %407 = load ptr, ptr %8, align 8, !tbaa !5
  %408 = icmp ne ptr %407, null
  br i1 %408, label %409, label %414

409:                                              ; preds = %406
  %410 = load ptr, ptr %8, align 8, !tbaa !5
  %411 = getelementptr inbounds %struct.vertexT, ptr %410, i32 0, i32 0
  %412 = load ptr, ptr %411, align 8, !tbaa !34
  %413 = icmp ne ptr %412, null
  br label %414

414:                                              ; preds = %409, %406
  %415 = phi i1 [ false, %406 ], [ %413, %409 ]
  br i1 %415, label %416, label %538

416:                                              ; preds = %414
  %417 = load ptr, ptr %8, align 8, !tbaa !5
  %418 = getelementptr inbounds %struct.vertexT, ptr %417, i32 0, i32 5
  %419 = load i32, ptr %418, align 4, !tbaa !36
  %420 = load i32, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 218), align 4, !tbaa !35
  %421 = icmp uge i32 %419, %420
  br i1 %421, label %428, label %422

422:                                              ; preds = %416
  %423 = load ptr, ptr %8, align 8, !tbaa !5
  %424 = getelementptr inbounds %struct.vertexT, ptr %423, i32 0, i32 4
  %425 = load i32, ptr %424, align 8, !tbaa !21
  %426 = load i32, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 184), align 8, !tbaa !37
  %427 = icmp uge i32 %425, %426
  br i1 %427, label %428, label %498

428:                                              ; preds = %422, %416
  store i32 1, ptr %12, align 4, !tbaa !9
  %429 = load ptr, ptr %8, align 8, !tbaa !5
  store ptr %429, ptr %11, align 8, !tbaa !5
  %430 = load ptr, ptr %8, align 8, !tbaa !5
  %431 = getelementptr inbounds %struct.vertexT, ptr %430, i32 0, i32 5
  %432 = load i32, ptr %431, align 4, !tbaa !36
  %433 = load i32, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 217), align 8, !tbaa !27
  %434 = icmp eq i32 %432, %433
  br i1 %434, label %435, label %469

435:                                              ; preds = %428
  %436 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 158), align 8, !tbaa !18
  %437 = load ptr, ptr %8, align 8, !tbaa !5
  %438 = getelementptr inbounds %struct.vertexT, ptr %437, i32 0, i32 4
  %439 = load i32, ptr %438, align 8, !tbaa !21
  %440 = load ptr, ptr %8, align 8, !tbaa !5
  %441 = getelementptr inbounds %struct.vertexT, ptr %440, i32 0, i32 4
  %442 = load i32, ptr %441, align 8, !tbaa !21
  %443 = load ptr, ptr %8, align 8, !tbaa !5
  %444 = getelementptr inbounds %struct.vertexT, ptr %443, i32 0, i32 0
  %445 = load ptr, ptr %444, align 8, !tbaa !34
  %446 = getelementptr inbounds %struct.vertexT, ptr %445, i32 0, i32 4
  %447 = load i32, ptr %446, align 8, !tbaa !21
  %448 = load ptr, ptr %10, align 8, !tbaa !5
  %449 = icmp ne ptr %448, null
  br i1 %449, label %450, label %454

450:                                              ; preds = %435
  %451 = load ptr, ptr %10, align 8, !tbaa !5
  %452 = getelementptr inbounds %struct.vertexT, ptr %451, i32 0, i32 4
  %453 = load i32, ptr %452, align 8, !tbaa !21
  br label %455

454:                                              ; preds = %435
  br label %455

455:                                              ; preds = %454, %450
  %456 = phi i32 [ %453, %450 ], [ -1, %454 ]
  %457 = load ptr, ptr %8, align 8, !tbaa !5
  %458 = getelementptr inbounds %struct.vertexT, ptr %457, i32 0, i32 4
  %459 = load i32, ptr %458, align 8, !tbaa !21
  %460 = load ptr, ptr %10, align 8, !tbaa !5
  %461 = icmp ne ptr %460, null
  br i1 %461, label %462, label %466

462:                                              ; preds = %455
  %463 = load ptr, ptr %10, align 8, !tbaa !5
  %464 = getelementptr inbounds %struct.vertexT, ptr %463, i32 0, i32 4
  %465 = load i32, ptr %464, align 8, !tbaa !21
  br label %467

466:                                              ; preds = %455
  br label %467

467:                                              ; preds = %466, %462
  %468 = phi i32 [ %465, %462 ], [ -1, %466 ]
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %436, i32 noundef 6367, ptr noundef @.str.103, i32 noundef %439, i32 noundef %442, i32 noundef %447, i32 noundef %456, i32 noundef %459, i32 noundef %468)
  br label %488

469:                                              ; preds = %428
  %470 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 158), align 8, !tbaa !18
  %471 = load ptr, ptr %8, align 8, !tbaa !5
  %472 = getelementptr inbounds %struct.vertexT, ptr %471, i32 0, i32 4
  %473 = load i32, ptr %472, align 8, !tbaa !21
  %474 = load i32, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 184), align 8, !tbaa !37
  %475 = load ptr, ptr %8, align 8, !tbaa !5
  %476 = getelementptr inbounds %struct.vertexT, ptr %475, i32 0, i32 5
  %477 = load i32, ptr %476, align 4, !tbaa !36
  %478 = load i32, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 217), align 8, !tbaa !27
  %479 = load ptr, ptr %10, align 8, !tbaa !5
  %480 = icmp ne ptr %479, null
  br i1 %480, label %481, label %485

481:                                              ; preds = %469
  %482 = load ptr, ptr %10, align 8, !tbaa !5
  %483 = getelementptr inbounds %struct.vertexT, ptr %482, i32 0, i32 4
  %484 = load i32, ptr %483, align 8, !tbaa !21
  br label %486

485:                                              ; preds = %469
  br label %486

486:                                              ; preds = %485, %481
  %487 = phi i32 [ %484, %481 ], [ -1, %485 ]
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %470, i32 noundef 6368, ptr noundef @.str.104, i32 noundef %473, i32 noundef %474, i32 noundef %477, i32 noundef %478, i32 noundef %487)
  br label %488

488:                                              ; preds = %486, %467
  %489 = load ptr, ptr %10, align 8, !tbaa !5
  %490 = icmp ne ptr %489, null
  br i1 %490, label %491, label %495

491:                                              ; preds = %488
  %492 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 176), align 8, !tbaa !33
  %493 = load ptr, ptr %10, align 8, !tbaa !5
  %494 = getelementptr inbounds %struct.vertexT, ptr %493, i32 0, i32 0
  store ptr %492, ptr %494, align 8, !tbaa !34
  br label %497

495:                                              ; preds = %488
  %496 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 176), align 8, !tbaa !33
  store ptr %496, ptr %9, align 8, !tbaa !5
  br label %497

497:                                              ; preds = %495, %491
  br label %538

498:                                              ; preds = %422
  %499 = load i32, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 218), align 4, !tbaa !35
  %500 = load ptr, ptr %8, align 8, !tbaa !5
  %501 = getelementptr inbounds %struct.vertexT, ptr %500, i32 0, i32 5
  store i32 %499, ptr %501, align 4, !tbaa !36
  %502 = load ptr, ptr %8, align 8, !tbaa !5
  %503 = getelementptr inbounds %struct.vertexT, ptr %502, i32 0, i32 1
  %504 = load ptr, ptr %503, align 8, !tbaa !38
  %505 = load ptr, ptr %10, align 8, !tbaa !5
  %506 = icmp ne ptr %504, %505
  br i1 %506, label %507, label %527

507:                                              ; preds = %498
  %508 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 158), align 8, !tbaa !18
  %509 = load ptr, ptr %8, align 8, !tbaa !5
  %510 = getelementptr inbounds %struct.vertexT, ptr %509, i32 0, i32 4
  %511 = load i32, ptr %510, align 8, !tbaa !21
  %512 = load ptr, ptr %10, align 8, !tbaa !5
  %513 = load ptr, ptr %8, align 8, !tbaa !5
  %514 = getelementptr inbounds %struct.vertexT, ptr %513, i32 0, i32 1
  %515 = load ptr, ptr %514, align 8, !tbaa !38
  %516 = icmp ne ptr %515, null
  br i1 %516, label %517, label %523

517:                                              ; preds = %507
  %518 = load ptr, ptr %8, align 8, !tbaa !5
  %519 = getelementptr inbounds %struct.vertexT, ptr %518, i32 0, i32 1
  %520 = load ptr, ptr %519, align 8, !tbaa !38
  %521 = getelementptr inbounds %struct.vertexT, ptr %520, i32 0, i32 4
  %522 = load i32, ptr %521, align 8, !tbaa !21
  br label %524

523:                                              ; preds = %507
  br label %524

524:                                              ; preds = %523, %517
  %525 = phi i32 [ %522, %517 ], [ -1, %523 ]
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %508, i32 noundef 6427, ptr noundef @.str.105, i32 noundef %511, ptr noundef %512, i32 noundef %525)
  store i32 1, ptr %12, align 4, !tbaa !9
  %526 = load ptr, ptr %8, align 8, !tbaa !5
  store ptr %526, ptr %11, align 8, !tbaa !5
  br label %527

527:                                              ; preds = %524, %498
  %528 = load ptr, ptr %8, align 8, !tbaa !5
  store ptr %528, ptr %10, align 8, !tbaa !5
  %529 = load ptr, ptr %8, align 8, !tbaa !5
  %530 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 177), align 8, !tbaa !39
  %531 = icmp eq ptr %529, %530
  br i1 %531, label %532, label %533

532:                                              ; preds = %527
  store i32 1, ptr %15, align 4, !tbaa !9
  br label %533

533:                                              ; preds = %532, %527
  br label %534

534:                                              ; preds = %533
  %535 = load ptr, ptr %8, align 8, !tbaa !5
  %536 = getelementptr inbounds %struct.vertexT, ptr %535, i32 0, i32 0
  %537 = load ptr, ptr %536, align 8, !tbaa !34
  store ptr %537, ptr %8, align 8, !tbaa !5
  br label %406, !llvm.loop !40

538:                                              ; preds = %497, %414
  %539 = load i32, ptr %15, align 4, !tbaa !9
  %540 = icmp ne i32 %539, 0
  br i1 %540, label %555, label %541

541:                                              ; preds = %538
  %542 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 177), align 8, !tbaa !39
  %543 = icmp ne ptr %542, null
  br i1 %543, label %544, label %555

544:                                              ; preds = %541
  %545 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 177), align 8, !tbaa !39
  %546 = getelementptr inbounds %struct.vertexT, ptr %545, i32 0, i32 0
  %547 = load ptr, ptr %546, align 8, !tbaa !34
  %548 = icmp ne ptr %547, null
  br i1 %548, label %549, label %555

549:                                              ; preds = %544
  %550 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 158), align 8, !tbaa !18
  %551 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 177), align 8, !tbaa !39
  %552 = getelementptr inbounds %struct.vertexT, ptr %551, i32 0, i32 4
  %553 = load i32, ptr %552, align 8, !tbaa !21
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %550, i32 noundef 6287, ptr noundef @.str.106, i32 noundef %553)
  store i32 1, ptr %12, align 4, !tbaa !9
  %554 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 177), align 8, !tbaa !39
  store ptr %554, ptr %11, align 8, !tbaa !5
  br label %555

555:                                              ; preds = %549, %544, %541, %538
  br label %556

556:                                              ; preds = %555, %372
  %557 = load i32, ptr %12, align 4, !tbaa !9
  %558 = icmp ne i32 %557, 0
  br i1 %558, label %559, label %563

559:                                              ; preds = %556
  %560 = load ptr, ptr %5, align 8, !tbaa !5
  %561 = load ptr, ptr %6, align 8, !tbaa !5
  %562 = load ptr, ptr %11, align 8, !tbaa !5
  call void @qh_errprint(ptr noundef @.str.66, ptr noundef %560, ptr noundef %561, ptr noundef null, ptr noundef %562)
  store i32 0, ptr %2, align 4
  store i32 1, ptr %17, align 4
  br label %564

563:                                              ; preds = %556
  store i32 1, ptr %2, align 4
  store i32 1, ptr %17, align 4
  br label %564

564:                                              ; preds = %563, %559
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %6) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %5) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %4) #3
  %565 = load i32, ptr %2, align 4
  ret i32 %565
}

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"int", !7, i64 0}
!11 = !{!12, !6, i64 2480}
!12 = !{!"qhT", !10, i64 0, !10, i64 4, !10, i64 8, !10, i64 12, !10, i64 16, !10, i64 20, !13, i64 24, !10, i64 32, !10, i64 36, !10, i64 40, !10, i64 44, !10, i64 48, !10, i64 52, !10, i64 56, !10, i64 60, !13, i64 64, !13, i64 72, !10, i64 80, !10, i64 84, !10, i64 88, !10, i64 92, !10, i64 96, !10, i64 100, !6, i64 104, !10, i64 112, !10, i64 116, !6, i64 120, !10, i64 128, !10, i64 132, !10, i64 136, !10, i64 140, !10, i64 144, !10, i64 148, !10, i64 152, !13, i64 160, !13, i64 168, !10, i64 176, !10, i64 180, !10, i64 184, !10, i64 188, !13, i64 192, !13, i64 200, !10, i64 208, !10, i64 212, !13, i64 216, !10, i64 224, !10, i64 228, !10, i64 232, !10, i64 236, !10, i64 240, !10, i64 244, !10, i64 248, !10, i64 252, !10, i64 256, !10, i64 260, !10, i64 264, !10, i64 268, !10, i64 272, !10, i64 276, !10, i64 280, !10, i64 284, !10, i64 288, !10, i64 292, !10, i64 296, !7, i64 300, !10, i64 416, !10, i64 420, !10, i64 424, !10, i64 428, !10, i64 432, !10, i64 436, !10, i64 440, !10, i64 444, !13, i64 448, !13, i64 456, !13, i64 464, !10, i64 472, !10, i64 476, !10, i64 480, !10, i64 484, !10, i64 488, !10, i64 492, !10, i64 496, !10, i64 500, !10, i64 504, !10, i64 508, !10, i64 512, !10, i64 516, !10, i64 520, !10, i64 524, !10, i64 528, !10, i64 532, !10, i64 536, !10, i64 540, !10, i64 544, !13, i64 552, !10, i64 560, !10, i64 564, !10, i64 568, !10, i64 572, !10, i64 576, !10, i64 580, !10, i64 584, !10, i64 588, !13, i64 592, !10, i64 600, !6, i64 608, !6, i64 616, !10, i64 624, !10, i64 628, !10, i64 632, !10, i64 636, !10, i64 640, !6, i64 648, !10, i64 656, !6, i64 664, !10, i64 672, !7, i64 676, !10, i64 932, !7, i64 936, !7, i64 1192, !10, i64 1704, !10, i64 1708, !10, i64 1712, !10, i64 1716, !10, i64 1720, !10, i64 1724, !6, i64 1728, !6, i64 1736, !6, i64 1744, !6, i64 1752, !13, i64 1760, !13, i64 1768, !13, i64 1776, !13, i64 1784, !13, i64 1792, !13, i64 1800, !13, i64 1808, !13, i64 1816, !13, i64 1824, !13, i64 1832, !13, i64 1840, !13, i64 1848, !13, i64 1856, !13, i64 1864, !6, i64 1872, !13, i64 1880, !13, i64 1888, !13, i64 1896, !13, i64 1904, !10, i64 1912, !7, i64 1916, !7, i64 1928, !7, i64 2128, !7, i64 2168, !7, i64 2368, !6, i64 2408, !6, i64 2416, !6, i64 2424, !6, i64 2432, !10, i64 2440, !10, i64 2444, !10, i64 2448, !6, i64 2456, !6, i64 2464, !6, i64 2472, !6, i64 2480, !6, i64 2488, !10, i64 2496, !10, i64 2500, !6, i64 2504, !10, i64 2512, !6, i64 2520, !10, i64 2528, !6, i64 2536, !6, i64 2544, !6, i64 2552, !6, i64 2560, !10, i64 2568, !10, i64 2572, !10, i64 2576, !10, i64 2580, !10, i64 2584, !10, i64 2588, !10, i64 2592, !10, i64 2596, !14, i64 2600, !10, i64 2608, !10, i64 2612, !10, i64 2616, !10, i64 2620, !10, i64 2624, !6, i64 2632, !6, i64 2640, !10, i64 2648, !10, i64 2652, !10, i64 2656, !13, i64 2664, !10, i64 2672, !13, i64 2680, !13, i64 2688, !13, i64 2696, !10, i64 2704, !10, i64 2708, !10, i64 2712, !10, i64 2716, !10, i64 2720, !13, i64 2728, !13, i64 2736, !10, i64 2744, !10, i64 2748, !10, i64 2752, !10, i64 2756, !10, i64 2760, !10, i64 2764, !13, i64 2768, !13, i64 2776, !10, i64 2784, !10, i64 2788, !10, i64 2792, !10, i64 2796, !6, i64 2800, !6, i64 2808, !6, i64 2816, !6, i64 2824, !6, i64 2832, !6, i64 2840, !6, i64 2848, !6, i64 2856, !6, i64 2864, !10, i64 2872, !6, i64 2880, !6, i64 2888, !10, i64 2896, !10, i64 2900, !10, i64 2904, !6, i64 2912, !13, i64 2920, !13, i64 2928, !13, i64 2936, !13, i64 2944, !10, i64 2952, !10, i64 2956, !10, i64 2960, !10, i64 2964, !10, i64 2968, !10, i64 2972, !6, i64 2976, !6, i64 2984, !10, i64 2992}
!13 = !{!"double", !7, i64 0}
!14 = !{!"long", !7, i64 0}
!15 = !{!12, !6, i64 2488}
!16 = !{!12, !6, i64 2544}
!17 = !{!12, !10, i64 136}
!18 = !{!12, !6, i64 2424}
!19 = !{!20, !10, i64 108}
!20 = !{!"facetT", !13, i64 0, !13, i64 8, !13, i64 16, !6, i64 24, !7, i64 32, !6, i64 40, !6, i64 48, !6, i64 56, !6, i64 64, !6, i64 72, !6, i64 80, !6, i64 88, !6, i64 96, !10, i64 104, !10, i64 108, !10, i64 112, !10, i64 113, !10, i64 113, !10, i64 113, !10, i64 113, !10, i64 113, !10, i64 113, !10, i64 113, !10, i64 114, !10, i64 114, !10, i64 114, !10, i64 114, !10, i64 114, !10, i64 114, !10, i64 114, !10, i64 114, !10, i64 115, !10, i64 115, !10, i64 115, !10, i64 115, !10, i64 115, !10, i64 115, !10, i64 115, !10, i64 115}
!21 = !{!22, !10, i64 32}
!22 = !{!"vertexT", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !10, i64 32, !10, i64 36, !10, i64 40, !10, i64 40, !10, i64 40, !10, i64 40, !10, i64 40, !10, i64 40}
!23 = !{!12, !6, i64 2456}
!24 = !{!12, !6, i64 2464}
!25 = !{!20, !6, i64 56}
!26 = !{!20, !6, i64 48}
!27 = !{!12, !10, i64 2784}
!28 = !{!20, !10, i64 104}
!29 = !{!12, !10, i64 2584}
!30 = !{!12, !6, i64 2472}
!31 = distinct !{!31, !32}
!32 = !{!"llvm.loop.mustprogress"}
!33 = !{!12, !6, i64 2552}
!34 = !{!22, !6, i64 0}
!35 = !{!12, !10, i64 2788}
!36 = !{!22, !10, i64 36}
!37 = !{!12, !10, i64 2592}
!38 = !{!22, !6, i64 8}
!39 = !{!12, !6, i64 2560}
!40 = distinct !{!40, !32}


; 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.qhT = type { i32, i32, i32, i32, i32, i32, double, i32, i32, i32, i32, i32, i32, i32, i32, double, double, i32, i32, i32, i32, i32, i32, ptr, i32, i32, ptr, i32, i32, i32, i32, i32, i32, i32, double, double, i32, i32, i32, i32, double, double, i32, i32, double, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, [29 x i32], i32, i32, i32, i32, i32, i32, i32, i32, double, double, double, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, double, i32, i32, i32, i32, i32, i32, i32, i32, double, i32, ptr, ptr, i32, i32, i32, i32, i32, ptr, i32, ptr, i32, [256 x i8], i32, [256 x i8], [512 x i8], i32, i32, i32, i32, i32, i32, ptr, ptr, ptr, ptr, double, double, double, double, double, double, double, double, double, double, double, double, double, double, ptr, double, double, double, double, i32, [6 x i8], [1 x %struct.__jmp_buf_tag], [40 x i8], [1 x %struct.__jmp_buf_tag], [40 x i8], ptr, ptr, ptr, ptr, i32, i32, i32, ptr, ptr, ptr, ptr, ptr, i32, i32, ptr, i32, ptr, i32, ptr, ptr, ptr, ptr, i32, i32, i32, i32, i32, i32, i32, i32, i64, i32, i32, i32, i32, i32, ptr, ptr, i32, i32, i32, double, i32, double, double, double, i32, i32, i32, i32, i32, double, double, i32, i32, i32, i32, i32, i32, double, double, i32, i32, i32, i32, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, i32, ptr, ptr, i32, i32, i32, ptr, double, double, double, double, i32, i32, i32, i32, i32, i32, ptr, ptr, i32 }
%struct.__jmp_buf_tag = type { [8 x i64], i32, %struct.__sigset_t }
%struct.__sigset_t = type { [16 x i64] }

@qh_qh = external local_unnamed_addr global %struct.qhT, align 8
@.str.66 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.88 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.89 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.90 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.91 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.92 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.93 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.94 = external hidden unnamed_addr constant [117 x i8], align 1
@.str.95 = external hidden unnamed_addr constant [147 x i8], align 1
@.str.96 = external hidden unnamed_addr constant [181 x i8], align 1
@.str.97 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.98 = external hidden unnamed_addr constant [124 x i8], align 1
@.str.99 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.100 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.101 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.102 = external hidden unnamed_addr constant [118 x i8], align 1
@.str.103 = external hidden unnamed_addr constant [149 x i8], align 1
@.str.104 = external hidden unnamed_addr constant [185 x i8], align 1
@.str.105 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.106 = external hidden unnamed_addr constant [81 x i8], align 1

declare void @qh_fprintf(ptr noundef, i32 noundef, ptr noundef, ...) local_unnamed_addr #0

declare void @qh_errexit(i32 noundef, ptr noundef, ptr noundef) local_unnamed_addr #0

declare void @qh_errprint(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #0

; Function Attrs: nounwind uwtable
define dso_local range(i32 0, 2) i32 @qh_checklists(ptr noundef %0) local_unnamed_addr #1 {
  %2 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2480), align 8, !tbaa !5
  %3 = icmp eq ptr %2, %0
  %4 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2488), align 8
  %5 = icmp eq ptr %4, %0
  %or.cond216 = select i1 %3, i1 true, i1 %5
  %6 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2544), align 8, !tbaa !13
  %7 = load i32, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 136), align 8, !tbaa !14
  %8 = icmp sgt i32 %7, 1
  br i1 %or.cond216, label %9, label %19

9:                                                ; preds = %1
  br i1 %8, label %10, label %35

10:                                               ; preds = %9
  %11 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2424), align 8, !tbaa !15
  %12 = select i1 %3, ptr @.str.89, ptr @.str.90
  %13 = getelementptr inbounds i8, ptr %0, i64 108
  %14 = load i32, ptr %13, align 4, !tbaa !16
  %.not180 = icmp eq ptr %6, null
  br i1 %.not180, label %.thread, label %15

15:                                               ; preds = %10
  %16 = getelementptr inbounds i8, ptr %6, i64 32
  %17 = load i32, ptr %16, align 8, !tbaa !18
  br label %.thread

.thread:                                          ; preds = %15, %10
  %18 = phi i32 [ %17, %15 ], [ -1, %10 ]
  tail call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %11, i32 noundef 2110, ptr noundef nonnull @.str.88, ptr noundef nonnull %12, i32 noundef %14, i32 noundef %18) #2
  br label %36

19:                                               ; preds = %1
  br i1 %8, label %20, label %35

20:                                               ; preds = %19
  %21 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2424), align 8, !tbaa !15
  %22 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2456), align 8, !tbaa !20
  %23 = icmp eq ptr %22, %0
  %24 = select i1 %23, ptr @.str.92, ptr @.str.93
  %.not = icmp eq ptr %0, null
  br i1 %.not, label %28, label %25

25:                                               ; preds = %20
  %26 = getelementptr inbounds i8, ptr %0, i64 108
  %27 = load i32, ptr %26, align 4, !tbaa !16
  br label %28

28:                                               ; preds = %20, %25
  %29 = phi i32 [ %27, %25 ], [ -1, %20 ]
  %.not179 = icmp eq ptr %6, null
  br i1 %.not179, label %33, label %30

30:                                               ; preds = %28
  %31 = getelementptr inbounds i8, ptr %6, i64 32
  %32 = load i32, ptr %31, align 8, !tbaa !18
  br label %33

33:                                               ; preds = %28, %30
  %34 = phi i32 [ %32, %30 ], [ -1, %28 ]
  tail call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %21, i32 noundef 2111, ptr noundef nonnull @.str.91, ptr noundef nonnull %24, i32 noundef %29, i32 noundef %34) #2
  br label %35

35:                                               ; preds = %19, %33, %9
  %.not181 = icmp eq ptr %0, null
  br i1 %.not181, label %174, label %36

36:                                               ; preds = %.thread, %35
  %37 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2464), align 8, !tbaa !21
  %38 = icmp eq ptr %37, null
  br i1 %38, label %45, label %39

39:                                               ; preds = %36
  %40 = getelementptr inbounds i8, ptr %37, i64 108
  %41 = load i32, ptr %40, align 4, !tbaa !16
  %.not182 = icmp eq i32 %41, 0
  br i1 %.not182, label %42, label %45

42:                                               ; preds = %39
  %43 = getelementptr inbounds i8, ptr %37, i64 56
  %44 = load ptr, ptr %43, align 8, !tbaa !22
  %.not183 = icmp eq ptr %44, null
  br i1 %.not183, label %49, label %45

45:                                               ; preds = %39, %42, %36
  %46 = phi i32 [ -1, %36 ], [ 0, %42 ], [ %41, %39 ]
  %47 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2424), align 8, !tbaa !15
  tail call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %47, i32 noundef 6397, ptr noundef nonnull @.str.94, i32 noundef %46) #2
  %48 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2464), align 8, !tbaa !21
  tail call void @qh_errexit(i32 noundef 5, ptr noundef %48, ptr noundef null) #2
  br label %49

49:                                               ; preds = %45, %42
  %50 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2456), align 8, !tbaa !20
  %51 = icmp eq ptr %50, %0
  br i1 %51, label %.lr.ph.preheader, label %52

52:                                               ; preds = %49
  %53 = getelementptr inbounds i8, ptr %0, i64 48
  %54 = load ptr, ptr %53, align 8, !tbaa !23
  br label %.lr.ph.preheader

.lr.ph.preheader:                                 ; preds = %52, %49
  %55 = phi ptr [ %54, %52 ], [ null, %49 ]
  %56 = load i32, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2784), align 8, !tbaa !24
  %57 = add i32 %56, 1
  store i32 %57, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2784), align 8, !tbaa !24
  br label %.lr.ph

.lr.ph:                                           ; preds = %.lr.ph.preheader, %128
  %.0263 = phi i32 [ %.2, %128 ], [ 0, %.lr.ph.preheader ]
  %.0117262 = phi i32 [ %.1118, %128 ], [ 0, %.lr.ph.preheader ]
  %.0120261 = phi i32 [ %.2122, %128 ], [ 0, %.lr.ph.preheader ]
  %.0124260 = phi i32 [ %.4, %128 ], [ 0, %.lr.ph.preheader ]
  %.0136259 = phi ptr [ %.0155256, %128 ], [ %55, %.lr.ph.preheader ]
  %.0137258 = phi ptr [ %.4141, %128 ], [ null, %.lr.ph.preheader ]
  %.0146257 = phi ptr [ %.4150, %128 ], [ null, %.lr.ph.preheader ]
  %.0155256 = phi ptr [ %129, %128 ], [ %0, %.lr.ph.preheader ]
  %58 = getelementptr inbounds i8, ptr %.0155256, i64 56
  %59 = load ptr, ptr %58, align 8, !tbaa !22
  %.not186 = icmp eq ptr %59, null
  br i1 %.not186, label %.critedge, label %60

60:                                               ; preds = %.lr.ph
  %61 = getelementptr inbounds i8, ptr %.0155256, i64 104
  %62 = load i32, ptr %61, align 8, !tbaa !25
  %63 = load i32, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2784), align 8, !tbaa !24
  %.not187 = icmp ult i32 %62, %63
  br i1 %.not187, label %64, label %68

64:                                               ; preds = %60
  %65 = getelementptr inbounds i8, ptr %.0155256, i64 108
  %66 = load i32, ptr %65, align 4, !tbaa !16
  %67 = load i32, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2584), align 8, !tbaa !26
  %.not188 = icmp ult i32 %66, %67
  br i1 %.not188, label %91, label %68

68:                                               ; preds = %64, %60
  %69 = icmp eq i32 %62, %63
  %70 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2424), align 8, !tbaa !15
  %71 = getelementptr inbounds i8, ptr %.0155256, i64 108
  %72 = load i32, ptr %71, align 4, !tbaa !16
  br i1 %69, label %73, label %80

73:                                               ; preds = %68
  %74 = getelementptr inbounds i8, ptr %59, i64 108
  %75 = load i32, ptr %74, align 4, !tbaa !16
  %.not195 = icmp eq ptr %.0136259, null
  br i1 %.not195, label %.thread224, label %76

76:                                               ; preds = %73
  %77 = getelementptr inbounds i8, ptr %.0136259, i64 108
  %78 = load i32, ptr %77, align 4, !tbaa !16
  br label %.thread224

.thread224:                                       ; preds = %73, %76
  %79 = phi i32 [ %78, %76 ], [ -1, %73 ]
  tail call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %70, i32 noundef 6039, ptr noundef nonnull @.str.95, i32 noundef %72, i32 noundef %72, i32 noundef %75, i32 noundef %79, i32 noundef %72, i32 noundef %79) #2
  br label %87

80:                                               ; preds = %68
  %81 = load i32, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2584), align 8, !tbaa !26
  %.not194 = icmp eq ptr %.0136259, null
  br i1 %.not194, label %85, label %82

82:                                               ; preds = %80
  %83 = getelementptr inbounds i8, ptr %.0136259, i64 108
  %84 = load i32, ptr %83, align 4, !tbaa !16
  br label %85

85:                                               ; preds = %80, %82
  %86 = phi i32 [ %84, %82 ], [ -1, %80 ]
  tail call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %70, i32 noundef 6350, ptr noundef nonnull @.str.96, i32 noundef %72, i32 noundef %81, i32 noundef %62, i32 noundef %63, i32 noundef %86) #2
  br label %87

87:                                               ; preds = %85, %.thread224
  %.not196 = icmp eq ptr %.0136259, null
  %88 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2464), align 8, !tbaa !21
  br i1 %.not196, label %.critedge, label %89

89:                                               ; preds = %87
  %90 = getelementptr inbounds i8, ptr %.0136259, i64 56
  store ptr %88, ptr %90, align 8, !tbaa !22
  br label %.critedge

91:                                               ; preds = %64
  store i32 %63, ptr %61, align 8, !tbaa !25
  %92 = getelementptr inbounds i8, ptr %.0155256, i64 48
  %93 = load ptr, ptr %92, align 8, !tbaa !23
  %.not189 = icmp eq ptr %93, %.0136259
  br i1 %.not189, label %107, label %94

94:                                               ; preds = %91
  %95 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2424), align 8, !tbaa !15
  %.not190 = icmp eq ptr %.0136259, null
  br i1 %.not190, label %99, label %96

96:                                               ; preds = %94
  %97 = getelementptr inbounds i8, ptr %.0136259, i64 108
  %98 = load i32, ptr %97, align 4, !tbaa !16
  br label %99

99:                                               ; preds = %94, %96
  %100 = phi i32 [ %98, %96 ], [ -1, %94 ]
  %.not191 = icmp eq ptr %93, null
  br i1 %.not191, label %104, label %101

101:                                              ; preds = %99
  %102 = getelementptr inbounds i8, ptr %93, i64 108
  %103 = load i32, ptr %102, align 4, !tbaa !16
  br label %104

104:                                              ; preds = %99, %101
  %105 = phi i32 [ %103, %101 ], [ -1, %99 ]
  tail call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %95, i32 noundef 6416, ptr noundef nonnull @.str.97, i32 noundef %66, i32 noundef %100, i32 noundef %105) #2
  %106 = load ptr, ptr %92, align 8, !tbaa !23
  br label %107

107:                                              ; preds = %104, %91
  %.1147 = phi ptr [ %.0155256, %104 ], [ %.0146257, %91 ]
  %.1138 = phi ptr [ %106, %104 ], [ %.0137258, %91 ]
  %.1125 = phi i32 [ 1, %104 ], [ %.0124260, %91 ]
  %108 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2456), align 8, !tbaa !20
  %109 = icmp eq ptr %108, %0
  br i1 %109, label %110, label %128

110:                                              ; preds = %107
  %111 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2488), align 8, !tbaa !27
  %112 = icmp eq ptr %.0155256, %111
  br i1 %112, label %113, label %._crit_edge

._crit_edge:                                      ; preds = %110
  %.pre = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2480), align 8, !tbaa !5
  br label %123

113:                                              ; preds = %110
  %.not192 = icmp eq i32 %.0120261, 0
  %.pre295 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2480), align 8, !tbaa !5
  br i1 %.not192, label %123, label %114

114:                                              ; preds = %113
  %115 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2424), align 8, !tbaa !15
  %116 = load i32, ptr %65, align 4, !tbaa !16
  %.not193 = icmp eq ptr %.pre295, null
  br i1 %.not193, label %120, label %117

117:                                              ; preds = %114
  %118 = getelementptr inbounds i8, ptr %.pre295, i64 108
  %119 = load i32, ptr %118, align 4, !tbaa !16
  br label %120

120:                                              ; preds = %114, %117
  %121 = phi i32 [ %119, %117 ], [ -1, %114 ]
  tail call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %115, i32 noundef 6285, ptr noundef nonnull @.str.98, i32 noundef %116, i32 noundef %121) #2
  %122 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2480), align 8, !tbaa !5
  br label %123

123:                                              ; preds = %._crit_edge, %113, %120
  %124 = phi ptr [ %.pre, %._crit_edge ], [ %122, %120 ], [ %.pre295, %113 ]
  %.3149 = phi ptr [ %.1147, %._crit_edge ], [ %.0155256, %120 ], [ %.1147, %113 ]
  %.3140 = phi ptr [ %.1138, %._crit_edge ], [ %122, %120 ], [ %.1138, %113 ]
  %.3127 = phi i32 [ %.1125, %._crit_edge ], [ 1, %120 ], [ %.1125, %113 ]
  %.1 = phi i32 [ %.0263, %._crit_edge ], [ 1, %120 ], [ 1, %113 ]
  %125 = icmp eq ptr %.0155256, %124
  %spec.select = select i1 %125, i32 1, i32 %.0120261
  %126 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2472), align 8, !tbaa !28
  %127 = icmp eq ptr %.0155256, %126
  %spec.select218 = select i1 %127, i32 1, i32 %.0117262
  br label %128

128:                                              ; preds = %123, %107
  %.4150 = phi ptr [ %.1147, %107 ], [ %.3149, %123 ]
  %.4141 = phi ptr [ %.1138, %107 ], [ %.3140, %123 ]
  %.4 = phi i32 [ %.1125, %107 ], [ %.3127, %123 ]
  %.2122 = phi i32 [ %.0120261, %107 ], [ %spec.select, %123 ]
  %.1118 = phi i32 [ %.0117262, %107 ], [ %spec.select218, %123 ]
  %.2 = phi i32 [ %.0263, %107 ], [ %.1, %123 ]
  %129 = load ptr, ptr %58, align 8, !tbaa !22
  %.not185 = icmp eq ptr %129, null
  br i1 %.not185, label %.critedge, label %.lr.ph, !llvm.loop !29

.critedge:                                        ; preds = %128, %.lr.ph, %87, %89
  %.0120246 = phi i32 [ %.0120261, %89 ], [ %.0120261, %87 ], [ %.2122, %128 ], [ %.0120261, %.lr.ph ]
  %.0117244 = phi i32 [ %.0117262, %89 ], [ %.0117262, %87 ], [ %.1118, %128 ], [ %.0117262, %.lr.ph ]
  %.0242 = phi i32 [ %.0263, %89 ], [ %.0263, %87 ], [ %.2, %128 ], [ %.0263, %.lr.ph ]
  %.0156 = phi ptr [ %0, %89 ], [ %88, %87 ], [ %0, %.lr.ph ], [ %0, %128 ]
  %.5151 = phi ptr [ %.0155256, %89 ], [ %.0155256, %87 ], [ %.4150, %128 ], [ %.0146257, %.lr.ph ]
  %.5142 = phi ptr [ %.0136259, %89 ], [ null, %87 ], [ %.4141, %128 ], [ %.0137258, %.lr.ph ]
  %.5 = phi i32 [ 1, %89 ], [ 1, %87 ], [ %.4, %128 ], [ %.0124260, %.lr.ph ]
  %130 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2456), align 8, !tbaa !20
  %131 = icmp eq ptr %.0156, %130
  br i1 %131, label %132, label %174

132:                                              ; preds = %.critedge
  %133 = icmp eq i32 %.0117244, 0
  %134 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2472), align 8
  %135 = icmp ne ptr %134, null
  %or.cond = select i1 %133, i1 %135, i1 false
  br i1 %or.cond, label %136, label %146

136:                                              ; preds = %132
  %137 = getelementptr inbounds i8, ptr %134, i64 56
  %138 = load ptr, ptr %137, align 8, !tbaa !22
  %.not197 = icmp eq ptr %138, null
  br i1 %.not197, label %146, label %139

139:                                              ; preds = %136
  %140 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2424), align 8, !tbaa !15
  %141 = getelementptr inbounds i8, ptr %134, i64 108
  %142 = load i32, ptr %141, align 4, !tbaa !16
  %143 = getelementptr inbounds i8, ptr %.0156, i64 108
  %144 = load i32, ptr %143, align 4, !tbaa !16
  tail call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %140, i32 noundef 6369, ptr noundef nonnull @.str.99, i32 noundef %142, i32 noundef %144) #2
  %145 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2472), align 8, !tbaa !28
  br label %146

146:                                              ; preds = %139, %136, %132
  %.6152 = phi ptr [ %145, %139 ], [ %.5151, %136 ], [ %.5151, %132 ]
  %.6143 = phi ptr [ %.0156, %139 ], [ %.5142, %136 ], [ %.5142, %132 ]
  %.6 = phi i32 [ 1, %139 ], [ %.5, %136 ], [ %.5, %132 ]
  %147 = icmp eq i32 %.0120246, 0
  %148 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2480), align 8
  %149 = icmp ne ptr %148, null
  %or.cond3 = select i1 %147, i1 %149, i1 false
  br i1 %or.cond3, label %150, label %160

150:                                              ; preds = %146
  %151 = getelementptr inbounds i8, ptr %148, i64 56
  %152 = load ptr, ptr %151, align 8, !tbaa !22
  %.not198 = icmp eq ptr %152, null
  br i1 %.not198, label %160, label %153

153:                                              ; preds = %150
  %154 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2424), align 8, !tbaa !15
  %155 = getelementptr inbounds i8, ptr %148, i64 108
  %156 = load i32, ptr %155, align 4, !tbaa !16
  %157 = getelementptr inbounds i8, ptr %.0156, i64 108
  %158 = load i32, ptr %157, align 4, !tbaa !16
  tail call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %154, i32 noundef 6286, ptr noundef nonnull @.str.100, i32 noundef %156, i32 noundef %158) #2
  %159 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2480), align 8, !tbaa !5
  br label %160

160:                                              ; preds = %153, %150, %146
  %.7153 = phi ptr [ %159, %153 ], [ %.6152, %150 ], [ %.6152, %146 ]
  %.7144 = phi ptr [ %.0156, %153 ], [ %.6143, %150 ], [ %.6143, %146 ]
  %.7 = phi i32 [ 1, %153 ], [ %.6, %150 ], [ %.6, %146 ]
  %161 = icmp eq i32 %.0242, 0
  %162 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2488), align 8
  %163 = icmp ne ptr %162, null
  %or.cond5 = select i1 %161, i1 %163, i1 false
  br i1 %or.cond5, label %164, label %174

164:                                              ; preds = %160
  %165 = getelementptr inbounds i8, ptr %162, i64 56
  %166 = load ptr, ptr %165, align 8, !tbaa !22
  %.not199 = icmp eq ptr %166, null
  br i1 %.not199, label %174, label %167

167:                                              ; preds = %164
  %168 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2424), align 8, !tbaa !15
  %169 = getelementptr inbounds i8, ptr %162, i64 108
  %170 = load i32, ptr %169, align 4, !tbaa !16
  %171 = getelementptr inbounds i8, ptr %.0156, i64 108
  %172 = load i32, ptr %171, align 4, !tbaa !16
  tail call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %168, i32 noundef 6138, ptr noundef nonnull @.str.101, i32 noundef %170, i32 noundef %172) #2
  %173 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2488), align 8, !tbaa !27
  br label %174

174:                                              ; preds = %.critedge, %167, %164, %160, %35
  %.8154 = phi ptr [ %173, %167 ], [ %.7153, %164 ], [ %.7153, %160 ], [ %.5151, %.critedge ], [ null, %35 ]
  %.8145 = phi ptr [ %.0156, %167 ], [ %.7144, %164 ], [ %.7144, %160 ], [ %.5142, %.critedge ], [ null, %35 ]
  %.8 = phi i32 [ 1, %167 ], [ %.7, %164 ], [ %.7, %160 ], [ %.5, %.critedge ], [ 0, %35 ]
  %.not200 = icmp eq ptr %6, null
  br i1 %.not200, label %246, label %175

175:                                              ; preds = %174
  %176 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2552), align 8, !tbaa !31
  %177 = icmp eq ptr %176, null
  br i1 %177, label %183, label %178

178:                                              ; preds = %175
  %179 = getelementptr inbounds i8, ptr %176, i64 32
  %180 = load i32, ptr %179, align 8, !tbaa !18
  %.not201 = icmp eq i32 %180, 0
  br i1 %.not201, label %181, label %183

181:                                              ; preds = %178
  %182 = load ptr, ptr %176, align 8, !tbaa !32
  %.not202 = icmp eq ptr %182, null
  br i1 %.not202, label %187, label %183

183:                                              ; preds = %178, %181, %175
  %184 = phi i32 [ -1, %175 ], [ 0, %181 ], [ %180, %178 ]
  %185 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2424), align 8, !tbaa !15
  tail call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %185, i32 noundef 6366, ptr noundef nonnull @.str.102, i32 noundef %184) #2
  %186 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2552), align 8, !tbaa !31
  tail call void @qh_errprint(ptr noundef nonnull @.str.66, ptr noundef %.8154, ptr noundef %.8145, ptr noundef null, ptr noundef %186) #2
  tail call void @qh_errexit(i32 noundef 5, ptr noundef null, ptr noundef null) #2
  br label %187

187:                                              ; preds = %183, %181
  %188 = load i32, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2788), align 4, !tbaa !33
  %189 = add i32 %188, 1
  store i32 %189, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2788), align 4, !tbaa !33
  br label %190

190:                                              ; preds = %187, %233
  %.0115280 = phi i32 [ 0, %187 ], [ %spec.select217, %233 ]
  %.9279 = phi i32 [ %.8, %187 ], [ %.10, %233 ]
  %.0128278 = phi ptr [ null, %187 ], [ %.1129, %233 ]
  %.1133277 = phi ptr [ null, %187 ], [ %.0135276, %233 ]
  %.0135276 = phi ptr [ %6, %187 ], [ %234, %233 ]
  %191 = load ptr, ptr %.0135276, align 8, !tbaa !32
  %.not205 = icmp eq ptr %191, null
  br i1 %.not205, label %.critedge7, label %192

192:                                              ; preds = %190
  %193 = getelementptr inbounds i8, ptr %.0135276, i64 36
  %194 = load i32, ptr %193, align 4, !tbaa !34
  %195 = load i32, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2788), align 4, !tbaa !33
  %.not206 = icmp ult i32 %194, %195
  br i1 %.not206, label %196, label %200

196:                                              ; preds = %192
  %197 = getelementptr inbounds i8, ptr %.0135276, i64 32
  %198 = load i32, ptr %197, align 8, !tbaa !18
  %199 = load i32, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2592), align 8, !tbaa !35
  %.not207 = icmp ult i32 %198, %199
  br i1 %.not207, label %223, label %200

200:                                              ; preds = %196, %192
  %201 = load i32, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2784), align 8, !tbaa !24
  %202 = icmp eq i32 %194, %201
  %203 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2424), align 8, !tbaa !15
  %204 = getelementptr inbounds i8, ptr %.0135276, i64 32
  %205 = load i32, ptr %204, align 8, !tbaa !18
  br i1 %202, label %206, label %213

206:                                              ; preds = %200
  %207 = getelementptr inbounds i8, ptr %191, i64 32
  %208 = load i32, ptr %207, align 8, !tbaa !18
  %.not211 = icmp eq ptr %.1133277, null
  br i1 %.not211, label %.thread227, label %209

209:                                              ; preds = %206
  %210 = getelementptr inbounds i8, ptr %.1133277, i64 32
  %211 = load i32, ptr %210, align 8, !tbaa !18
  br label %.thread227

.thread227:                                       ; preds = %206, %209
  %212 = phi i32 [ %211, %209 ], [ -1, %206 ]
  tail call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %203, i32 noundef 6367, ptr noundef nonnull @.str.103, i32 noundef %205, i32 noundef %205, i32 noundef %208, i32 noundef %212, i32 noundef %205, i32 noundef %212) #2
  br label %220

213:                                              ; preds = %200
  %214 = load i32, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2592), align 8, !tbaa !35
  %.not210 = icmp eq ptr %.1133277, null
  br i1 %.not210, label %218, label %215

215:                                              ; preds = %213
  %216 = getelementptr inbounds i8, ptr %.1133277, i64 32
  %217 = load i32, ptr %216, align 8, !tbaa !18
  br label %218

218:                                              ; preds = %213, %215
  %219 = phi i32 [ %217, %215 ], [ -1, %213 ]
  tail call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %203, i32 noundef 6368, ptr noundef nonnull @.str.104, i32 noundef %205, i32 noundef %214, i32 noundef %194, i32 noundef %201, i32 noundef %219) #2
  br label %220

220:                                              ; preds = %218, %.thread227
  %.not212 = icmp eq ptr %.1133277, null
  br i1 %.not212, label %.critedge7, label %221

221:                                              ; preds = %220
  %222 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2552), align 8, !tbaa !31
  store ptr %222, ptr %.1133277, align 8, !tbaa !32
  br label %.critedge7

223:                                              ; preds = %196
  store i32 %195, ptr %193, align 4, !tbaa !34
  %224 = getelementptr inbounds i8, ptr %.0135276, i64 8
  %225 = load ptr, ptr %224, align 8, !tbaa !36
  %.not208 = icmp eq ptr %225, %.1133277
  br i1 %.not208, label %233, label %226

226:                                              ; preds = %223
  %227 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2424), align 8, !tbaa !15
  %.not209 = icmp eq ptr %225, null
  br i1 %.not209, label %231, label %228

228:                                              ; preds = %226
  %229 = getelementptr inbounds i8, ptr %225, i64 32
  %230 = load i32, ptr %229, align 8, !tbaa !18
  br label %231

231:                                              ; preds = %226, %228
  %232 = phi i32 [ %230, %228 ], [ -1, %226 ]
  tail call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %227, i32 noundef 6427, ptr noundef nonnull @.str.105, i32 noundef %198, ptr noundef %.1133277, i32 noundef %232) #2
  %.pre296 = load ptr, ptr %.0135276, align 8, !tbaa !32
  br label %233

233:                                              ; preds = %231, %223
  %234 = phi ptr [ %.pre296, %231 ], [ %191, %223 ]
  %.1129 = phi ptr [ %.0135276, %231 ], [ %.0128278, %223 ]
  %.10 = phi i32 [ 1, %231 ], [ %.9279, %223 ]
  %235 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2560), align 8, !tbaa !37
  %236 = icmp eq ptr %.0135276, %235
  %spec.select217 = select i1 %236, i32 1, i32 %.0115280
  %.not204 = icmp eq ptr %234, null
  br i1 %.not204, label %.critedge7, label %190, !llvm.loop !38

.critedge7:                                       ; preds = %233, %190, %220, %221
  %.0115234 = phi i32 [ %.0115280, %221 ], [ %.0115280, %220 ], [ %.0115280, %190 ], [ %spec.select217, %233 ]
  %.2130 = phi ptr [ %.0135276, %221 ], [ %.0135276, %220 ], [ %.0128278, %190 ], [ %.1129, %233 ]
  %.11 = phi i32 [ 1, %221 ], [ 1, %220 ], [ %.9279, %190 ], [ %.10, %233 ]
  %237 = icmp eq i32 %.0115234, 0
  %238 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2560), align 8
  %239 = icmp ne ptr %238, null
  %or.cond9 = select i1 %237, i1 %239, i1 false
  br i1 %or.cond9, label %240, label %246

240:                                              ; preds = %.critedge7
  %241 = load ptr, ptr %238, align 8, !tbaa !32
  %.not213 = icmp eq ptr %241, null
  br i1 %.not213, label %246, label %.thread228

.thread228:                                       ; preds = %240
  %242 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2424), align 8, !tbaa !15
  %243 = getelementptr inbounds i8, ptr %238, i64 32
  %244 = load i32, ptr %243, align 8, !tbaa !18
  tail call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %242, i32 noundef 6287, ptr noundef nonnull @.str.106, i32 noundef %244) #2
  %245 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2560), align 8, !tbaa !37
  br label %247

246:                                              ; preds = %.critedge7, %240, %174
  %.3131 = phi ptr [ %.2130, %240 ], [ %.2130, %.critedge7 ], [ null, %174 ]
  %.12 = phi i32 [ %.11, %240 ], [ %.11, %.critedge7 ], [ %.8, %174 ]
  %.not214 = icmp eq i32 %.12, 0
  br i1 %.not214, label %248, label %247

247:                                              ; preds = %.thread228, %246
  %.3131232 = phi ptr [ %245, %.thread228 ], [ %.3131, %246 ]
  tail call void @qh_errprint(ptr noundef nonnull @.str.66, ptr noundef %.8154, ptr noundef %.8145, ptr noundef null, ptr noundef %.3131232) #2
  br label %248

248:                                              ; preds = %246, %247
  %.0157 = phi i32 [ 0, %247 ], [ 1, %246 ]
  ret i32 %.0157
}

attributes #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 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { 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, !11, i64 2480}
!6 = !{!"qhT", !7, i64 0, !7, i64 4, !7, i64 8, !7, i64 12, !7, i64 16, !7, i64 20, !10, i64 24, !7, i64 32, !7, i64 36, !7, i64 40, !7, i64 44, !7, i64 48, !7, i64 52, !7, i64 56, !7, i64 60, !10, i64 64, !10, i64 72, !7, i64 80, !7, i64 84, !7, i64 88, !7, i64 92, !7, i64 96, !7, i64 100, !11, i64 104, !7, i64 112, !7, i64 116, !11, i64 120, !7, i64 128, !7, i64 132, !7, i64 136, !7, i64 140, !7, i64 144, !7, i64 148, !7, i64 152, !10, i64 160, !10, i64 168, !7, i64 176, !7, i64 180, !7, i64 184, !7, i64 188, !10, i64 192, !10, i64 200, !7, i64 208, !7, i64 212, !10, i64 216, !7, i64 224, !7, i64 228, !7, i64 232, !7, i64 236, !7, i64 240, !7, i64 244, !7, i64 248, !7, i64 252, !7, i64 256, !7, i64 260, !7, i64 264, !7, i64 268, !7, i64 272, !7, i64 276, !7, i64 280, !7, i64 284, !7, i64 288, !7, i64 292, !7, i64 296, !8, i64 300, !7, i64 416, !7, i64 420, !7, i64 424, !7, i64 428, !7, i64 432, !7, i64 436, !7, i64 440, !7, i64 444, !10, i64 448, !10, i64 456, !10, i64 464, !7, i64 472, !7, i64 476, !7, i64 480, !7, i64 484, !7, i64 488, !7, i64 492, !7, i64 496, !7, i64 500, !7, i64 504, !7, i64 508, !7, i64 512, !7, i64 516, !7, i64 520, !7, i64 524, !7, i64 528, !7, i64 532, !7, i64 536, !7, i64 540, !7, i64 544, !10, i64 552, !7, i64 560, !7, i64 564, !7, i64 568, !7, i64 572, !7, i64 576, !7, i64 580, !7, i64 584, !7, i64 588, !10, i64 592, !7, i64 600, !11, i64 608, !11, i64 616, !7, i64 624, !7, i64 628, !7, i64 632, !7, i64 636, !7, i64 640, !11, i64 648, !7, i64 656, !11, i64 664, !7, i64 672, !8, i64 676, !7, i64 932, !8, i64 936, !8, i64 1192, !7, i64 1704, !7, i64 1708, !7, i64 1712, !7, i64 1716, !7, i64 1720, !7, i64 1724, !11, i64 1728, !11, i64 1736, !11, i64 1744, !11, i64 1752, !10, i64 1760, !10, i64 1768, !10, i64 1776, !10, i64 1784, !10, i64 1792, !10, i64 1800, !10, i64 1808, !10, i64 1816, !10, i64 1824, !10, i64 1832, !10, i64 1840, !10, i64 1848, !10, i64 1856, !10, i64 1864, !11, i64 1872, !10, i64 1880, !10, i64 1888, !10, i64 1896, !10, i64 1904, !7, i64 1912, !8, i64 1916, !8, i64 1928, !8, i64 2128, !8, i64 2168, !8, i64 2368, !11, i64 2408, !11, i64 2416, !11, i64 2424, !11, i64 2432, !7, i64 2440, !7, i64 2444, !7, i64 2448, !11, i64 2456, !11, i64 2464, !11, i64 2472, !11, i64 2480, !11, i64 2488, !7, i64 2496, !7, i64 2500, !11, i64 2504, !7, i64 2512, !11, i64 2520, !7, i64 2528, !11, i64 2536, !11, i64 2544, !11, i64 2552, !11, i64 2560, !7, i64 2568, !7, i64 2572, !7, i64 2576, !7, i64 2580, !7, i64 2584, !7, i64 2588, !7, i64 2592, !7, i64 2596, !12, i64 2600, !7, i64 2608, !7, i64 2612, !7, i64 2616, !7, i64 2620, !7, i64 2624, !11, i64 2632, !11, i64 2640, !7, i64 2648, !7, i64 2652, !7, i64 2656, !10, i64 2664, !7, i64 2672, !10, i64 2680, !10, i64 2688, !10, i64 2696, !7, i64 2704, !7, i64 2708, !7, i64 2712, !7, i64 2716, !7, i64 2720, !10, i64 2728, !10, i64 2736, !7, i64 2744, !7, i64 2748, !7, i64 2752, !7, i64 2756, !7, i64 2760, !7, i64 2764, !10, i64 2768, !10, i64 2776, !7, i64 2784, !7, i64 2788, !7, i64 2792, !7, i64 2796, !11, i64 2800, !11, i64 2808, !11, i64 2816, !11, i64 2824, !11, i64 2832, !11, i64 2840, !11, i64 2848, !11, i64 2856, !11, i64 2864, !7, i64 2872, !11, i64 2880, !11, i64 2888, !7, i64 2896, !7, i64 2900, !7, i64 2904, !11, i64 2912, !10, i64 2920, !10, i64 2928, !10, i64 2936, !10, i64 2944, !7, i64 2952, !7, i64 2956, !7, i64 2960, !7, i64 2964, !7, i64 2968, !7, i64 2972, !11, i64 2976, !11, i64 2984, !7, i64 2992}
!7 = !{!"int", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C/C++ TBAA"}
!10 = !{!"double", !8, i64 0}
!11 = !{!"any pointer", !8, i64 0}
!12 = !{!"long", !8, i64 0}
!13 = !{!6, !11, i64 2544}
!14 = !{!6, !7, i64 136}
!15 = !{!6, !11, i64 2424}
!16 = !{!17, !7, i64 108}
!17 = !{!"facetT", !10, i64 0, !10, i64 8, !10, i64 16, !11, i64 24, !8, i64 32, !11, i64 40, !11, i64 48, !11, i64 56, !11, i64 64, !11, i64 72, !11, i64 80, !11, i64 88, !11, i64 96, !7, i64 104, !7, i64 108, !7, i64 112, !7, i64 113, !7, i64 113, !7, i64 113, !7, i64 113, !7, i64 113, !7, i64 113, !7, i64 113, !7, i64 114, !7, i64 114, !7, i64 114, !7, i64 114, !7, i64 114, !7, i64 114, !7, i64 114, !7, i64 114, !7, i64 115, !7, i64 115, !7, i64 115, !7, i64 115, !7, i64 115, !7, i64 115, !7, i64 115, !7, i64 115}
!18 = !{!19, !7, i64 32}
!19 = !{!"vertexT", !11, i64 0, !11, i64 8, !11, i64 16, !11, i64 24, !7, i64 32, !7, i64 36, !7, i64 40, !7, i64 40, !7, i64 40, !7, i64 40, !7, i64 40, !7, i64 40}
!20 = !{!6, !11, i64 2456}
!21 = !{!6, !11, i64 2464}
!22 = !{!17, !11, i64 56}
!23 = !{!17, !11, i64 48}
!24 = !{!6, !7, i64 2784}
!25 = !{!17, !7, i64 104}
!26 = !{!6, !7, i64 2584}
!27 = !{!6, !11, i64 2488}
!28 = !{!6, !11, i64 2472}
!29 = distinct !{!29, !30}
!30 = !{!"llvm.loop.mustprogress"}
!31 = !{!6, !11, i64 2552}
!32 = !{!19, !11, i64 0}
!33 = !{!6, !7, i64 2788}
!34 = !{!19, !7, i64 36}
!35 = !{!6, !7, i64 2592}
!36 = !{!19, !11, i64 8}
!37 = !{!6, !11, i64 2560}
!38 = distinct !{!38, !30}


; Effective O3 passes: CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,SROAPass,SimplifyCFGPass,TailCallElimPass