; LLVM IR from Discngine/fpocket :: src/qhull/src/libqhull (rboxlib)

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

@rbox_inuse = external dso_local global i32, align 4
@rbox = external dso_local global %struct.rboxT, align 8
@.str = external hidden unnamed_addr constant [73 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [149 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [167 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [154 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [10 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local i32 @qh_rboxpoints(ptr noundef %0, ptr noundef %1, ptr noundef %2) #0 {
  %4 = alloca i32, align 4
  %5 = alloca ptr, align 8
  %6 = alloca ptr, align 8
  %7 = alloca ptr, align 8
  %8 = alloca i32, align 4
  %9 = alloca i32, align 4
  %10 = alloca i32, align 4
  %11 = alloca i32, align 4
  %12 = alloca i32, align 4
  %13 = alloca i32, align 4
  %14 = alloca i32, align 4
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  %26 = alloca i32, align 4
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca i32, align 4
  %30 = alloca i32, align 4
  %31 = alloca i32, align 4
  %32 = alloca i32, align 4
  %33 = alloca i32, align 4
  %34 = alloca i32, align 4
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca i32, align 4
  %38 = alloca i32, align 4
  %39 = alloca i32, align 4
  %40 = alloca i32, align 4
  %41 = alloca double, align 8
  %42 = alloca double, align 8
  %43 = alloca double, align 8
  %44 = alloca double, align 8
  %45 = alloca [200 x double], align 16
  %46 = alloca double, align 8
  %47 = alloca double, align 8
  %48 = alloca double, align 8
  %49 = alloca double, align 8
  %50 = alloca ptr, align 8
  %51 = alloca ptr, align 8
  %52 = alloca ptr, align 8
  %53 = alloca i32, align 4
  %54 = alloca [200 x i32], align 16
  %55 = alloca double, align 8
  %56 = alloca double, align 8
  %57 = alloca double, align 8
  %58 = alloca double, align 8
  %59 = alloca double, align 8
  %60 = alloca double, align 8
  %61 = alloca double, align 8
  %62 = alloca double, align 8
  %63 = alloca double, align 8
  %64 = alloca double, align 8
  %65 = alloca double, align 8
  %66 = alloca double, align 8
  %67 = alloca double, align 8
  %68 = alloca double, align 8
  %69 = alloca [200 x i8], align 16
  %70 = alloca [200 x i8], align 16
  %71 = alloca ptr, align 8
  %72 = alloca ptr, align 8
  %73 = alloca ptr, align 8
  %74 = alloca i64, align 8
  %75 = alloca i32, align 4
  %76 = alloca i32, align 4
  %77 = alloca double, align 8
  store ptr %0, ptr %5, align 8, !tbaa !5
  store ptr %1, ptr %6, align 8, !tbaa !5
  store ptr %2, ptr %7, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #8
  store i32 0, ptr %12, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #8
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #8
  store i32 0, ptr %14, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #8
  store i32 0, ptr %17, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #8
  store i32 3, ptr %20, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #8
  store i32 0, ptr %21, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #8
  store i32 0, ptr %23, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #8
  store i32 0, ptr %24, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #8
  store i32 0, ptr %25, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #8
  store i32 0, ptr %26, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #8
  store i32 0, ptr %27, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #8
  store i32 0, ptr %28, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #8
  store i32 0, ptr %29, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #8
  store i32 0, ptr %30, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #8
  store i32 0, ptr %31, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #8
  store i32 0, ptr %32, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #8
  store i32 0, ptr %33, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #8
  store i32 0, ptr %34, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #8
  store i32 0, ptr %35, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #8
  store i32 0, ptr %36, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #8
  store i32 0, ptr %37, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #8
  store i32 0, ptr %38, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #8
  store i32 0, ptr %39, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #8
  store i32 0, ptr %40, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #8
  store double 0.000000e+00, ptr %41, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #8
  store double 0.000000e+00, ptr %42, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #8
  store double 0.000000e+00, ptr %43, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %44) #8
  store double 0.000000e+00, ptr %44, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 1600, ptr %45) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #8
  store double 3.000000e+00, ptr %47, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #8
  store double 4.000000e+00, ptr %48, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #8
  store double 5.000000e+00, ptr %49, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %51) #8
  store ptr null, ptr %51, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %52) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %53) #8
  call void @llvm.lifetime.start.p0(i64 800, ptr %54) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %55) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %56) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %57) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %58) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %59) #8
  store double 0.000000e+00, ptr %59, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %60) #8
  store double 1.000000e+00, ptr %60, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %61) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %62) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %63) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %64) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %65) #8
  store double 0.000000e+00, ptr %65, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %66) #8
  store double 0.000000e+00, ptr %66, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %67) #8
  store double 5.000000e-01, ptr %67, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %68) #8
  store double 0x41DFFFFFFF800000, ptr %68, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 200, ptr %69) #8
  call void @llvm.lifetime.start.p0(i64 200, ptr %70) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %71) #8
  %78 = getelementptr inbounds [200 x i8], ptr %69, i64 0, i64 0
  store ptr %78, ptr %71, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %72) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %73) #8
  store ptr null, ptr %73, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %74) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %75) #8
  %79 = load i32, ptr @rbox_inuse, align 4, !tbaa !9
  %80 = icmp ne i32 %79, 0
  br i1 %80, label %81, label %83

81:                                               ; preds = %3
  %82 = load ptr, ptr getelementptr inbounds (%struct.rboxT, ptr @rbox, i32 0, i32 1), align 8, !tbaa !13
  call void (ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %82, i32 noundef 6188, ptr noundef @.str)
  store i32 5, ptr %4, align 4
  store i32 1, ptr %76, align 4
  br label %2199

83:                                               ; preds = %3
  store i32 1, ptr @rbox_inuse, align 4, !tbaa !9
  %84 = load ptr, ptr %6, align 8, !tbaa !5
  store ptr %84, ptr getelementptr inbounds (%struct.rboxT, ptr @rbox, i32 0, i32 1), align 8, !tbaa !13
  %85 = load ptr, ptr %5, align 8, !tbaa !5
  store ptr %85, ptr @rbox, align 8, !tbaa !15
  %86 = call i32 @_setjmp(ptr noundef getelementptr inbounds (%struct.rboxT, ptr @rbox, i32 0, i32 4)) #9
  store i32 %86, ptr %75, align 4, !tbaa !9
  %87 = load i32, ptr %75, align 4, !tbaa !9
  %88 = icmp ne i32 %87, 0
  br i1 %88, label %89, label %96

89:                                               ; preds = %83
  %90 = load ptr, ptr %51, align 8, !tbaa !5
  %91 = icmp ne ptr %90, null
  br i1 %91, label %92, label %94

92:                                               ; preds = %89
  %93 = load ptr, ptr %51, align 8, !tbaa !5
  call void @qh_free(ptr noundef %93)
  br label %94

94:                                               ; preds = %92, %89
  store i32 0, ptr @rbox_inuse, align 4, !tbaa !9
  %95 = load i32, ptr %75, align 4, !tbaa !9
  store i32 %95, ptr %4, align 4
  store i32 1, ptr %76, align 4
  br label %2199

96:                                               ; preds = %83
  %97 = getelementptr inbounds [200 x i8], ptr %69, i64 0, i64 0
  store i8 0, ptr %97, align 16, !tbaa !16
  %98 = getelementptr inbounds [200 x i8], ptr %69, i64 0, i64 0
  %99 = load ptr, ptr %7, align 8, !tbaa !5
  %100 = getelementptr inbounds [200 x i8], ptr %69, i64 0, i64 0
  %101 = call i64 @strlen(ptr noundef %100) #10
  %102 = sub i64 200, %101
  %103 = sub i64 %102, 1
  %104 = call ptr @strncat(ptr noundef %98, ptr noundef %99, i64 noundef %103) #8
  br label %105

105:                                              ; preds = %125, %96
  %106 = load ptr, ptr %71, align 8, !tbaa !5
  %107 = load i8, ptr %106, align 1, !tbaa !16
  %108 = sext i8 %107 to i32
  %109 = icmp ne i32 %108, 0
  br i1 %109, label %110, label %123

110:                                              ; preds = %105
  %111 = call ptr @__ctype_b_loc() #11
  %112 = load ptr, ptr %111, align 8, !tbaa !5
  %113 = load ptr, ptr %71, align 8, !tbaa !5
  %114 = load i8, ptr %113, align 1, !tbaa !16
  %115 = sext i8 %114 to i32
  %116 = sext i32 %115 to i64
  %117 = getelementptr inbounds i16, ptr %112, i64 %116
  %118 = load i16, ptr %117, align 2, !tbaa !17
  %119 = zext i16 %118 to i32
  %120 = and i32 %119, 8192
  %121 = icmp ne i32 %120, 0
  %122 = xor i1 %121, true
  br label %123

123:                                              ; preds = %110, %105
  %124 = phi i1 [ false, %105 ], [ %122, %110 ]
  br i1 %124, label %125, label %128

125:                                              ; preds = %123
  %126 = load ptr, ptr %71, align 8, !tbaa !5
  %127 = getelementptr inbounds i8, ptr %126, i32 1
  store ptr %127, ptr %71, align 8, !tbaa !5
  br label %105, !llvm.loop !19

128:                                              ; preds = %123
  br label %129

129:                                              ; preds = %519, %181, %128
  %130 = load ptr, ptr %71, align 8, !tbaa !5
  %131 = load i8, ptr %130, align 1, !tbaa !16
  %132 = icmp ne i8 %131, 0
  br i1 %132, label %133, label %520

133:                                              ; preds = %129
  br label %134

134:                                              ; preds = %153, %133
  %135 = load ptr, ptr %71, align 8, !tbaa !5
  %136 = load i8, ptr %135, align 1, !tbaa !16
  %137 = sext i8 %136 to i32
  %138 = icmp ne i32 %137, 0
  br i1 %138, label %139, label %151

139:                                              ; preds = %134
  %140 = call ptr @__ctype_b_loc() #11
  %141 = load ptr, ptr %140, align 8, !tbaa !5
  %142 = load ptr, ptr %71, align 8, !tbaa !5
  %143 = load i8, ptr %142, align 1, !tbaa !16
  %144 = sext i8 %143 to i32
  %145 = sext i32 %144 to i64
  %146 = getelementptr inbounds i16, ptr %141, i64 %145
  %147 = load i16, ptr %146, align 2, !tbaa !17
  %148 = zext i16 %147 to i32
  %149 = and i32 %148, 8192
  %150 = icmp ne i32 %149, 0
  br label %151

151:                                              ; preds = %139, %134
  %152 = phi i1 [ false, %134 ], [ %150, %139 ]
  br i1 %152, label %153, label %156

153:                                              ; preds = %151
  %154 = load ptr, ptr %71, align 8, !tbaa !5
  %155 = getelementptr inbounds i8, ptr %154, i32 1
  store ptr %155, ptr %71, align 8, !tbaa !5
  br label %134, !llvm.loop !21

156:                                              ; preds = %151
  %157 = load ptr, ptr %71, align 8, !tbaa !5
  %158 = load i8, ptr %157, align 1, !tbaa !16
  %159 = sext i8 %158 to i32
  %160 = icmp eq i32 %159, 45
  br i1 %160, label %161, label %164

161:                                              ; preds = %156
  %162 = load ptr, ptr %71, align 8, !tbaa !5
  %163 = getelementptr inbounds i8, ptr %162, i32 1
  store ptr %163, ptr %71, align 8, !tbaa !5
  br label %164

164:                                              ; preds = %161, %156
  %165 = load ptr, ptr %71, align 8, !tbaa !5
  %166 = load i8, ptr %165, align 1, !tbaa !16
  %167 = icmp ne i8 %166, 0
  br i1 %167, label %169, label %168

168:                                              ; preds = %164
  br label %520

169:                                              ; preds = %164
  %170 = call ptr @__ctype_b_loc() #11
  %171 = load ptr, ptr %170, align 8, !tbaa !5
  %172 = load ptr, ptr %71, align 8, !tbaa !5
  %173 = load i8, ptr %172, align 1, !tbaa !16
  %174 = sext i8 %173 to i32
  %175 = sext i32 %174 to i64
  %176 = getelementptr inbounds i16, ptr %171, i64 %175
  %177 = load i16, ptr %176, align 2, !tbaa !17
  %178 = zext i16 %177 to i32
  %179 = and i32 %178, 2048
  %180 = icmp ne i32 %179, 0
  br i1 %180, label %181, label %184

181:                                              ; preds = %169
  %182 = load ptr, ptr %71, align 8, !tbaa !5
  %183 = call i32 @qh_strtol(ptr noundef %182, ptr noundef %71)
  store i32 %183, ptr %21, align 4, !tbaa !9
  br label %129, !llvm.loop !22

184:                                              ; preds = %169
  %185 = load ptr, ptr %71, align 8, !tbaa !5
  %186 = getelementptr inbounds i8, ptr %185, i32 1
  store ptr %186, ptr %71, align 8, !tbaa !5
  %187 = load i8, ptr %185, align 1, !tbaa !16
  %188 = sext i8 %187 to i32
  switch i32 %188, label %496 [
    i32 99, label %189
    i32 100, label %216
    i32 104, label %243
    i32 108, label %244
    i32 110, label %245
    i32 114, label %246
    i32 115, label %247
    i32 116, label %248
    i32 120, label %265
    i32 121, label %266
    i32 122, label %267
    i32 66, label %268
    i32 67, label %271
    i32 68, label %338
    i32 71, label %350
    i32 76, label %367
    i32 77, label %384
    i32 79, label %440
    i32 80, label %443
    i32 87, label %476
    i32 90, label %479
  ]

189:                                              ; preds = %184
  store i32 1, ptr %30, align 4, !tbaa !9
  %190 = load ptr, ptr %71, align 8, !tbaa !5
  store ptr %190, ptr %72, align 8, !tbaa !5
  br label %191

191:                                              ; preds = %203, %189
  %192 = call ptr @__ctype_b_loc() #11
  %193 = load ptr, ptr %192, align 8, !tbaa !5
  %194 = load ptr, ptr %72, align 8, !tbaa !5
  %195 = load i8, ptr %194, align 1, !tbaa !16
  %196 = sext i8 %195 to i32
  %197 = sext i32 %196 to i64
  %198 = getelementptr inbounds i16, ptr %193, i64 %197
  %199 = load i16, ptr %198, align 2, !tbaa !17
  %200 = zext i16 %199 to i32
  %201 = and i32 %200, 8192
  %202 = icmp ne i32 %201, 0
  br i1 %202, label %203, label %206

203:                                              ; preds = %191
  %204 = load ptr, ptr %72, align 8, !tbaa !5
  %205 = getelementptr inbounds i8, ptr %204, i32 1
  store ptr %205, ptr %72, align 8, !tbaa !5
  br label %191, !llvm.loop !23

206:                                              ; preds = %191
  %207 = load ptr, ptr %72, align 8, !tbaa !5
  %208 = load i8, ptr %207, align 1, !tbaa !16
  %209 = sext i8 %208 to i32
  %210 = icmp eq i32 %209, 71
  br i1 %210, label %211, label %215

211:                                              ; preds = %206
  %212 = load ptr, ptr %72, align 8, !tbaa !5
  %213 = getelementptr inbounds i8, ptr %212, i32 1
  store ptr %213, ptr %72, align 8, !tbaa !5
  %214 = call double @qh_strtod(ptr noundef %213, ptr noundef %71)
  store double %214, ptr %65, align 8, !tbaa !11
  br label %215

215:                                              ; preds = %211, %206
  br label %499

216:                                              ; preds = %184
  store i32 1, ptr %34, align 4, !tbaa !9
  %217 = load ptr, ptr %71, align 8, !tbaa !5
  store ptr %217, ptr %72, align 8, !tbaa !5
  br label %218

218:                                              ; preds = %230, %216
  %219 = call ptr @__ctype_b_loc() #11
  %220 = load ptr, ptr %219, align 8, !tbaa !5
  %221 = load ptr, ptr %72, align 8, !tbaa !5
  %222 = load i8, ptr %221, align 1, !tbaa !16
  %223 = sext i8 %222 to i32
  %224 = sext i32 %223 to i64
  %225 = getelementptr inbounds i16, ptr %220, i64 %224
  %226 = load i16, ptr %225, align 2, !tbaa !17
  %227 = zext i16 %226 to i32
  %228 = and i32 %227, 8192
  %229 = icmp ne i32 %228, 0
  br i1 %229, label %230, label %233

230:                                              ; preds = %218
  %231 = load ptr, ptr %72, align 8, !tbaa !5
  %232 = getelementptr inbounds i8, ptr %231, i32 1
  store ptr %232, ptr %72, align 8, !tbaa !5
  br label %218, !llvm.loop !24

233:                                              ; preds = %218
  %234 = load ptr, ptr %72, align 8, !tbaa !5
  %235 = load i8, ptr %234, align 1, !tbaa !16
  %236 = sext i8 %235 to i32
  %237 = icmp eq i32 %236, 71
  br i1 %237, label %238, label %242

238:                                              ; preds = %233
  %239 = load ptr, ptr %72, align 8, !tbaa !5
  %240 = getelementptr inbounds i8, ptr %239, i32 1
  store ptr %240, ptr %72, align 8, !tbaa !5
  %241 = call double @qh_strtod(ptr noundef %240, ptr noundef %71)
  store double %241, ptr %66, align 8, !tbaa !11
  br label %242

242:                                              ; preds = %238, %233
  br label %499

243:                                              ; preds = %184
  store i32 1, ptr %26, align 4, !tbaa !9
  br label %499

244:                                              ; preds = %184
  store i32 1, ptr %32, align 4, !tbaa !9
  br label %499

245:                                              ; preds = %184
  store i32 1, ptr %33, align 4, !tbaa !9
  br label %499

246:                                              ; preds = %184
  store i32 1, ptr %28, align 4, !tbaa !9
  br label %499

247:                                              ; preds = %184
  store i32 1, ptr %24, align 4, !tbaa !9
  br label %499

248:                                              ; preds = %184
  store i32 1, ptr %36, align 4, !tbaa !9
  %249 = call ptr @__ctype_b_loc() #11
  %250 = load ptr, ptr %249, align 8, !tbaa !5
  %251 = load ptr, ptr %71, align 8, !tbaa !5
  %252 = load i8, ptr %251, align 1, !tbaa !16
  %253 = sext i8 %252 to i32
  %254 = sext i32 %253 to i64
  %255 = getelementptr inbounds i16, ptr %250, i64 %254
  %256 = load i16, ptr %255, align 2, !tbaa !17
  %257 = zext i16 %256 to i32
  %258 = and i32 %257, 2048
  %259 = icmp ne i32 %258, 0
  br i1 %259, label %260, label %263

260:                                              ; preds = %248
  %261 = load ptr, ptr %71, align 8, !tbaa !5
  %262 = call i32 @qh_strtol(ptr noundef %261, ptr noundef %71)
  store i32 %262, ptr %17, align 4, !tbaa !9
  store i32 0, ptr %35, align 4, !tbaa !9
  br label %264

263:                                              ; preds = %248
  store i32 1, ptr %35, align 4, !tbaa !9
  br label %264

264:                                              ; preds = %263, %260
  br label %499

265:                                              ; preds = %184
  store i32 1, ptr %38, align 4, !tbaa !9
  br label %499

266:                                              ; preds = %184
  store i32 1, ptr %39, align 4, !tbaa !9
  br label %499

267:                                              ; preds = %184
  store i32 1, ptr getelementptr inbounds (%struct.rboxT, ptr @rbox, i32 0, i32 2), align 8, !tbaa !25
  br label %499

268:                                              ; preds = %184
  %269 = load ptr, ptr %71, align 8, !tbaa !5
  %270 = call double @qh_strtod(ptr noundef %269, ptr noundef %71)
  store double %270, ptr %67, align 8, !tbaa !11
  store i32 1, ptr %37, align 4, !tbaa !9
  br label %499

271:                                              ; preds = %184
  %272 = load ptr, ptr %71, align 8, !tbaa !5
  %273 = load i8, ptr %272, align 1, !tbaa !16
  %274 = icmp ne i8 %273, 0
  br i1 %274, label %275, label %278

275:                                              ; preds = %271
  %276 = load ptr, ptr %71, align 8, !tbaa !5
  %277 = call i32 @qh_strtol(ptr noundef %276, ptr noundef %71)
  store i32 %277, ptr %14, align 4, !tbaa !9
  br label %278

278:                                              ; preds = %275, %271
  %279 = load ptr, ptr %71, align 8, !tbaa !5
  %280 = load i8, ptr %279, align 1, !tbaa !16
  %281 = sext i8 %280 to i32
  %282 = icmp eq i32 %281, 44
  br i1 %282, label %283, label %288

283:                                              ; preds = %278
  %284 = load ptr, ptr %71, align 8, !tbaa !5
  %285 = getelementptr inbounds i8, ptr %284, i32 1
  store ptr %285, ptr %71, align 8, !tbaa !5
  %286 = load ptr, ptr %71, align 8, !tbaa !5
  %287 = call double @qh_strtod(ptr noundef %286, ptr noundef %71)
  store double %287, ptr %44, align 8, !tbaa !11
  br label %288

288:                                              ; preds = %283, %278
  %289 = load ptr, ptr %71, align 8, !tbaa !5
  %290 = load i8, ptr %289, align 1, !tbaa !16
  %291 = sext i8 %290 to i32
  %292 = icmp eq i32 %291, 44
  br i1 %292, label %293, label %298

293:                                              ; preds = %288
  %294 = load ptr, ptr %71, align 8, !tbaa !5
  %295 = getelementptr inbounds i8, ptr %294, i32 1
  store ptr %295, ptr %71, align 8, !tbaa !5
  %296 = load ptr, ptr %71, align 8, !tbaa !5
  %297 = call i32 @qh_strtol(ptr noundef %296, ptr noundef %71)
  store i32 %297, ptr %13, align 4, !tbaa !9
  br label %298

298:                                              ; preds = %293, %288
  %299 = load ptr, ptr %71, align 8, !tbaa !5
  %300 = load i8, ptr %299, align 1, !tbaa !16
  %301 = sext i8 %300 to i32
  %302 = icmp ne i32 %301, 0
  br i1 %302, label %303, label %318

303:                                              ; preds = %298
  %304 = call ptr @__ctype_b_loc() #11
  %305 = load ptr, ptr %304, align 8, !tbaa !5
  %306 = load ptr, ptr %71, align 8, !tbaa !5
  %307 = load i8, ptr %306, align 1, !tbaa !16
  %308 = sext i8 %307 to i32
  %309 = sext i32 %308 to i64
  %310 = getelementptr inbounds i16, ptr %305, i64 %309
  %311 = load i16, ptr %310, align 2, !tbaa !17
  %312 = zext i16 %311 to i32
  %313 = and i32 %312, 8192
  %314 = icmp ne i32 %313, 0
  br i1 %314, label %318, label %315

315:                                              ; preds = %303
  %316 = load ptr, ptr getelementptr inbounds (%struct.rboxT, ptr @rbox, i32 0, i32 1), align 8, !tbaa !13
  %317 = load ptr, ptr %71, align 8, !tbaa !5
  call void (ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %316, i32 noundef 7080, ptr noundef @.str.1, ptr noundef %317)
  call void @qh_errexit_rbox(i32 noundef 1)
  br label %318

318:                                              ; preds = %315, %303, %298
  %319 = load i32, ptr %14, align 4, !tbaa !9
  %320 = icmp eq i32 %319, 0
  br i1 %320, label %321, label %323

321:                                              ; preds = %318
  %322 = load ptr, ptr getelementptr inbounds (%struct.rboxT, ptr @rbox, i32 0, i32 1), align 8, !tbaa !13
  call void (ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %322, i32 noundef 6268, ptr noundef @.str.2)
  call void @qh_errexit_rbox(i32 noundef 1)
  br label %323

323:                                              ; preds = %321, %318
  %324 = load i32, ptr %14, align 4, !tbaa !9
  %325 = icmp slt i32 %324, 0
  br i1 %325, label %332, label %326

326:                                              ; preds = %323
  %327 = load i32, ptr %13, align 4, !tbaa !9
  %328 = icmp slt i32 %327, 0
  br i1 %328, label %332, label %329

329:                                              ; preds = %326
  %330 = load double, ptr %44, align 8, !tbaa !11
  %331 = fcmp olt double %330, 0.000000e+00
  br i1 %331, label %332, label %337

332:                                              ; preds = %329, %326, %323
  %333 = load ptr, ptr getelementptr inbounds (%struct.rboxT, ptr @rbox, i32 0, i32 1), align 8, !tbaa !13
  %334 = load i32, ptr %14, align 4, !tbaa !9
  %335 = load i32, ptr %13, align 4, !tbaa !9
  %336 = load double, ptr %44, align 8, !tbaa !11
  call void (ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %333, i32 noundef 6269, ptr noundef @.str.3, i32 noundef %334, i32 noundef %335, double noundef %336)
  call void @qh_errexit_rbox(i32 noundef 1)
  br label %337

337:                                              ; preds = %332, %329
  br label %499

338:                                              ; preds = %184
  %339 = load ptr, ptr %71, align 8, !tbaa !5
  %340 = call i32 @qh_strtol(ptr noundef %339, ptr noundef %71)
  store i32 %340, ptr %20, align 4, !tbaa !9
  %341 = load i32, ptr %20, align 4, !tbaa !9
  %342 = icmp slt i32 %341, 1
  br i1 %342, label %346, label %343

343:                                              ; preds = %338
  %344 = load i32, ptr %20, align 4, !tbaa !9
  %345 = icmp sgt i32 %344, 200
  br i1 %345, label %346, label %349

346:                                              ; preds = %343, %338
  %347 = load ptr, ptr getelementptr inbounds (%struct.rboxT, ptr @rbox, i32 0, i32 1), align 8, !tbaa !13
  %348 = load i32, ptr %20, align 4, !tbaa !9
  call void (ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %347, i32 noundef 6189, ptr noundef @.str.4, i32 noundef %348, i32 noundef 200)
  call void @qh_errexit_rbox(i32 noundef 1)
  br label %349

349:                                              ; preds = %346, %343
  br label %499

350:                                              ; preds = %184
  %351 = call ptr @__ctype_b_loc() #11
  %352 = load ptr, ptr %351, align 8, !tbaa !5
  %353 = load ptr, ptr %71, align 8, !tbaa !5
  %354 = load i8, ptr %353, align 1, !tbaa !16
  %355 = sext i8 %354 to i32
  %356 = sext i32 %355 to i64
  %357 = getelementptr inbounds i16, ptr %352, i64 %356
  %358 = load i16, ptr %357, align 2, !tbaa !17
  %359 = zext i16 %358 to i32
  %360 = and i32 %359, 2048
  %361 = icmp ne i32 %360, 0
  br i1 %361, label %362, label %365

362:                                              ; preds = %350
  %363 = load ptr, ptr %71, align 8, !tbaa !5
  %364 = call double @qh_strtod(ptr noundef %363, ptr noundef %71)
  store double %364, ptr %42, align 8, !tbaa !11
  br label %366

365:                                              ; preds = %350
  store double 5.000000e-01, ptr %42, align 8, !tbaa !11
  br label %366

366:                                              ; preds = %365, %362
  store i32 1, ptr %31, align 4, !tbaa !9
  br label %499

367:                                              ; preds = %184
  %368 = call ptr @__ctype_b_loc() #11
  %369 = load ptr, ptr %368, align 8, !tbaa !5
  %370 = load ptr, ptr %71, align 8, !tbaa !5
  %371 = load i8, ptr %370, align 1, !tbaa !16
  %372 = sext i8 %371 to i32
  %373 = sext i32 %372 to i64
  %374 = getelementptr inbounds i16, ptr %369, i64 %373
  %375 = load i16, ptr %374, align 2, !tbaa !17
  %376 = zext i16 %375 to i32
  %377 = and i32 %376, 2048
  %378 = icmp ne i32 %377, 0
  br i1 %378, label %379, label %382

379:                                              ; preds = %367
  %380 = load ptr, ptr %71, align 8, !tbaa !5
  %381 = call double @qh_strtod(ptr noundef %380, ptr noundef %71)
  store double %381, ptr %43, align 8, !tbaa !11
  br label %383

382:                                              ; preds = %367
  store double 1.000000e+01, ptr %43, align 8, !tbaa !11
  br label %383

383:                                              ; preds = %382, %379
  store i32 1, ptr %27, align 4, !tbaa !9
  br label %499

384:                                              ; preds = %184
  store i32 1, ptr %40, align 4, !tbaa !9
  %385 = load ptr, ptr %71, align 8, !tbaa !5
  %386 = load i8, ptr %385, align 1, !tbaa !16
  %387 = icmp ne i8 %386, 0
  br i1 %387, label %388, label %391

388:                                              ; preds = %384
  %389 = load ptr, ptr %71, align 8, !tbaa !5
  %390 = call double @qh_strtod(ptr noundef %389, ptr noundef %71)
  store double %390, ptr %48, align 8, !tbaa !11
  br label %391

391:                                              ; preds = %388, %384
  %392 = load ptr, ptr %71, align 8, !tbaa !5
  %393 = load i8, ptr %392, align 1, !tbaa !16
  %394 = sext i8 %393 to i32
  %395 = icmp eq i32 %394, 44
  br i1 %395, label %396, label %401

396:                                              ; preds = %391
  %397 = load ptr, ptr %71, align 8, !tbaa !5
  %398 = getelementptr inbounds i8, ptr %397, i32 1
  store ptr %398, ptr %71, align 8, !tbaa !5
  %399 = load ptr, ptr %71, align 8, !tbaa !5
  %400 = call double @qh_strtod(ptr noundef %399, ptr noundef %71)
  store double %400, ptr %47, align 8, !tbaa !11
  br label %402

401:                                              ; preds = %391
  store double 0.000000e+00, ptr %47, align 8, !tbaa !11
  br label %402

402:                                              ; preds = %401, %396
  %403 = load ptr, ptr %71, align 8, !tbaa !5
  %404 = load i8, ptr %403, align 1, !tbaa !16
  %405 = sext i8 %404 to i32
  %406 = icmp eq i32 %405, 44
  br i1 %406, label %407, label %412

407:                                              ; preds = %402
  %408 = load ptr, ptr %71, align 8, !tbaa !5
  %409 = getelementptr inbounds i8, ptr %408, i32 1
  store ptr %409, ptr %71, align 8, !tbaa !5
  %410 = load ptr, ptr %71, align 8, !tbaa !5
  %411 = call double @qh_strtod(ptr noundef %410, ptr noundef %71)
  store double %411, ptr %49, align 8, !tbaa !11
  br label %420

412:                                              ; preds = %402
  %413 = load double, ptr %48, align 8, !tbaa !11
  %414 = load double, ptr %48, align 8, !tbaa !11
  %415 = load double, ptr %47, align 8, !tbaa !11
  %416 = load double, ptr %47, align 8, !tbaa !11
  %417 = fmul double %415, %416
  %418 = call double @llvm.fmuladd.f64(double %413, double %414, double %417)
  %419 = call double @sqrt(double noundef %418) #8
  store double %419, ptr %49, align 8, !tbaa !11
  br label %420

420:                                              ; preds = %412, %407
  %421 = load ptr, ptr %71, align 8, !tbaa !5
  %422 = load i8, ptr %421, align 1, !tbaa !16
  %423 = sext i8 %422 to i32
  %424 = icmp ne i32 %423, 0
  br i1 %424, label %425, label %439

425:                                              ; preds = %420
  %426 = call ptr @__ctype_b_loc() #11
  %427 = load ptr, ptr %426, align 8, !tbaa !5
  %428 = load ptr, ptr %71, align 8, !tbaa !5
  %429 = load i8, ptr %428, align 1, !tbaa !16
  %430 = sext i8 %429 to i32
  %431 = sext i32 %430 to i64
  %432 = getelementptr inbounds i16, ptr %427, i64 %431
  %433 = load i16, ptr %432, align 2, !tbaa !17
  %434 = zext i16 %433 to i32
  %435 = and i32 %434, 8192
  %436 = icmp ne i32 %435, 0
  br i1 %436, label %439, label %437

437:                                              ; preds = %425
  %438 = load ptr, ptr getelementptr inbounds (%struct.rboxT, ptr @rbox, i32 0, i32 1), align 8, !tbaa !13
  call void (ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %438, i32 noundef 7069, ptr noundef @.str.5)
  store double 3.000000e+00, ptr %48, align 8, !tbaa !11
  store double 4.000000e+00, ptr %47, align 8, !tbaa !11
  store double 5.000000e+00, ptr %49, align 8, !tbaa !11
  br label %439

439:                                              ; preds = %437, %425, %420
  br label %499

440:                                              ; preds = %184
  %441 = load ptr, ptr %71, align 8, !tbaa !5
  %442 = call double @qh_strtod(ptr noundef %441, ptr noundef %71)
  store double %442, ptr getelementptr inbounds (%struct.rboxT, ptr @rbox, i32 0, i32 3), align 8, !tbaa !26
  br label %499

443:                                              ; preds = %184
  %444 = load ptr, ptr %73, align 8, !tbaa !5
  %445 = icmp ne ptr %444, null
  br i1 %445, label %449, label %446

446:                                              ; preds = %443
  %447 = load ptr, ptr %71, align 8, !tbaa !5
  %448 = getelementptr inbounds i8, ptr %447, i64 -1
  store ptr %448, ptr %73, align 8, !tbaa !5
  br label %449

449:                                              ; preds = %446, %443
  %450 = load i32, ptr %23, align 4, !tbaa !9
  %451 = add nsw i32 %450, 1
  store i32 %451, ptr %23, align 4, !tbaa !9
  br label %452

452:                                              ; preds = %472, %449
  %453 = load ptr, ptr %71, align 8, !tbaa !5
  %454 = load i8, ptr %453, align 1, !tbaa !16
  %455 = sext i8 %454 to i32
  %456 = icmp ne i32 %455, 0
  br i1 %456, label %457, label %470

457:                                              ; preds = %452
  %458 = call ptr @__ctype_b_loc() #11
  %459 = load ptr, ptr %458, align 8, !tbaa !5
  %460 = load ptr, ptr %71, align 8, !tbaa !5
  %461 = load i8, ptr %460, align 1, !tbaa !16
  %462 = sext i8 %461 to i32
  %463 = sext i32 %462 to i64
  %464 = getelementptr inbounds i16, ptr %459, i64 %463
  %465 = load i16, ptr %464, align 2, !tbaa !17
  %466 = zext i16 %465 to i32
  %467 = and i32 %466, 8192
  %468 = icmp ne i32 %467, 0
  %469 = xor i1 %468, true
  br label %470

470:                                              ; preds = %457, %452
  %471 = phi i1 [ false, %452 ], [ %469, %457 ]
  br i1 %471, label %472, label %475

472:                                              ; preds = %470
  %473 = load ptr, ptr %71, align 8, !tbaa !5
  %474 = getelementptr inbounds i8, ptr %473, i32 1
  store ptr %474, ptr %71, align 8, !tbaa !5
  br label %452, !llvm.loop !27

475:                                              ; preds = %470
  br label %499

476:                                              ; preds = %184
  %477 = load ptr, ptr %71, align 8, !tbaa !5
  %478 = call double @qh_strtod(ptr noundef %477, ptr noundef %71)
  store double %478, ptr %41, align 8, !tbaa !11
  store i32 1, ptr %29, align 4, !tbaa !9
  br label %499

479:                                              ; preds = %184
  %480 = call ptr @__ctype_b_loc() #11
  %481 = load ptr, ptr %480, align 8, !tbaa !5
  %482 = load ptr, ptr %71, align 8, !tbaa !5
  %483 = load i8, ptr %482, align 1, !tbaa !16
  %484 = sext i8 %483 to i32
  %485 = sext i32 %484 to i64
  %486 = getelementptr inbounds i16, ptr %481, i64 %485
  %487 = load i16, ptr %486, align 2, !tbaa !17
  %488 = zext i16 %487 to i32
  %489 = and i32 %488, 2048
  %490 = icmp ne i32 %489, 0
  br i1 %490, label %491, label %494

491:                                              ; preds = %479
  %492 = load ptr, ptr %71, align 8, !tbaa !5
  %493 = call double @qh_strtod(ptr noundef %492, ptr noundef %71)
  store double %493, ptr %43, align 8, !tbaa !11
  br label %495

494:                                              ; preds = %479
  store double 1.000000e+00, ptr %43, align 8, !tbaa !11
  br label %495

495:                                              ; preds = %494, %491
  store i32 1, ptr %25, align 4, !tbaa !9
  br label %499

496:                                              ; preds = %184
  %497 = load ptr, ptr getelementptr inbounds (%struct.rboxT, ptr @rbox, i32 0, i32 1), align 8, !tbaa !13
  %498 = load ptr, ptr %71, align 8, !tbaa !5
  call void (ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %497, i32 noundef 7070, ptr noundef @.str.6, ptr noundef %498)
  call void @qh_errexit_rbox(i32 noundef 1)
  br label %499

499:                                              ; preds = %496, %495, %476, %475, %440, %439, %383, %366, %349, %337, %268, %267, %266, %265, %264, %247, %246, %245, %244, %243, %242, %215
  %500 = load ptr, ptr %71, align 8, !tbaa !5
  %501 = load i8, ptr %500, align 1, !tbaa !16
  %502 = sext i8 %501 to i32
  %503 = icmp ne i32 %502, 0
  br i1 %503, label %504, label %519

504:                                              ; preds = %499
  %505 = call ptr @__ctype_b_loc() #11
  %506 = load ptr, ptr %505, align 8, !tbaa !5
  %507 = load ptr, ptr %71, align 8, !tbaa !5
  %508 = load i8, ptr %507, align 1, !tbaa !16
  %509 = sext i8 %508 to i32
  %510 = sext i32 %509 to i64
  %511 = getelementptr inbounds i16, ptr %506, i64 %510
  %512 = load i16, ptr %511, align 2, !tbaa !17
  %513 = zext i16 %512 to i32
  %514 = and i32 %513, 8192
  %515 = icmp ne i32 %514, 0
  br i1 %515, label %519, label %516

516:                                              ; preds = %504
  %517 = load ptr, ptr getelementptr inbounds (%struct.rboxT, ptr @rbox, i32 0, i32 1), align 8, !tbaa !13
  %518 = load ptr, ptr %71, align 8, !tbaa !5
  call void (ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %517, i32 noundef 7071, ptr noundef @.str.7, ptr noundef %518)
  call void @qh_errexit_rbox(i32 noundef 1)
  br label %519

519:                                              ; preds = %516, %504, %499
  br label %129, !llvm.loop !22

520:                                              ; preds = %168, %129
  %521 = load i32, ptr getelementptr inbounds (%struct.rboxT, ptr @rbox, i32 0, i32 2), align 8, !tbaa !25
  %522 = icmp ne i32 %521, 0
  br i1 %522, label %523, label %527

523:                                              ; preds = %520
  %524 = load i32, ptr %37, align 4, !tbaa !9
  %525 = icmp ne i32 %524, 0
  br i1 %525, label %527, label %526

526:                                              ; preds = %523
  store double 1.000000e+06, ptr %67, align 8, !tbaa !11
  br label %527

527:                                              ; preds = %526, %523, %520
  %528 = load i32, ptr %30, align 4, !tbaa !9
  %529 = icmp ne i32 %528, 0
  br i1 %529, label %530, label %541

530:                                              ; preds = %527
  %531 = load i32, ptr %20, align 4, !tbaa !9
  %532 = call double @ldexp(double noundef 1.000000e+00, i32 noundef %531) #8
  %533 = fadd double %532, 5.000000e-01
  %534 = call double @llvm.floor.f64(double %533)
  %535 = fptosi double %534 to i32
  store i32 %535, ptr %15, align 4, !tbaa !9
  %536 = load double, ptr %65, align 8, !tbaa !11
  %537 = fcmp oeq double %536, 0.000000e+00
  br i1 %537, label %538, label %540

538:                                              ; preds = %530
  %539 = load double, ptr %67, align 8, !tbaa !11
  store double %539, ptr %65, align 8, !tbaa !11
  br label %540

540:                                              ; preds = %538, %530
  br label %542

541:                                              ; preds = %527
  store i32 0, ptr %15, align 4, !tbaa !9
  br label %542

542:                                              ; preds = %541, %540
  %543 = load i32, ptr %34, align 4, !tbaa !9
  %544 = icmp ne i32 %543, 0
  br i1 %544, label %545, label %553

545:                                              ; preds = %542
  %546 = load i32, ptr %20, align 4, !tbaa !9
  %547 = mul nsw i32 2, %546
  store i32 %547, ptr %16, align 4, !tbaa !9
  %548 = load double, ptr %66, align 8, !tbaa !11
  %549 = fcmp oeq double %548, 0.000000e+00
  br i1 %549, label %550, label %552

550:                                              ; preds = %545
  %551 = load double, ptr %67, align 8, !tbaa !11
  store double %551, ptr %66, align 8, !tbaa !11
  br label %552

552:                                              ; preds = %550, %545
  br label %554

553:                                              ; preds = %542
  store i32 0, ptr %16, align 4, !tbaa !9
  br label %554

554:                                              ; preds = %553, %552
  %555 = load i32, ptr %27, align 4, !tbaa !9
  %556 = icmp ne i32 %555, 0
  br i1 %556, label %557, label %576

557:                                              ; preds = %554
  %558 = load i32, ptr %25, align 4, !tbaa !9
  %559 = icmp ne i32 %558, 0
  br i1 %559, label %560, label %562

560:                                              ; preds = %557
  %561 = load ptr, ptr getelementptr inbounds (%struct.rboxT, ptr @rbox, i32 0, i32 1), align 8, !tbaa !13
  call void (ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %561, i32 noundef 6190, ptr noundef @.str.8)
  call void @qh_errexit_rbox(i32 noundef 1)
  br label %562

562:                                              ; preds = %560, %557
  %563 = load double, ptr %43, align 8, !tbaa !11
  %564 = fcmp ole double %563, 1.000000e+00
  br i1 %564, label %565, label %568

565:                                              ; preds = %562
  %566 = load ptr, ptr getelementptr inbounds (%struct.rboxT, ptr @rbox, i32 0, i32 1), align 8, !tbaa !13
  %567 = load double, ptr %43, align 8, !tbaa !11
  call void (ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %566, i32 noundef 6191, ptr noundef @.str.9, double noundef %567)
  call void @qh_errexit_rbox(i32 noundef 1)
  br label %568

568:                                              ; preds = %565, %562
  %569 = load double, ptr %43, align 8, !tbaa !11
  %570 = fdiv double 1.000000e+00, %569
  %571 = call double @asin(double noundef %570) #8
  store double %571, ptr %59, align 8, !tbaa !11
  %572 = load double, ptr %43, align 8, !tbaa !11
  %573 = load double, ptr %59, align 8, !tbaa !11
  %574 = call double @cos(double noundef %573) #8
  %575 = fmul double %572, %574
  store double %575, ptr %60, align 8, !tbaa !11
  br label %576

576:                                              ; preds = %568, %554
  %577 = load i32, ptr %21, align 4, !tbaa !9
  %578 = icmp ne i32 %577, 0
  br i1 %578, label %614, label %579

579:                                              ; preds = %576
  %580 = load i32, ptr %39, align 4, !tbaa !9
  %581 = icmp ne i32 %580, 0
  br i1 %581, label %582, label %583

582:                                              ; preds = %579
  br label %613

583:                                              ; preds = %579
  %584 = load i32, ptr %28, align 4, !tbaa !9
  %585 = load i32, ptr %38, align 4, !tbaa !9
  %586 = add nsw i32 %584, %585
  %587 = load i32, ptr %27, align 4, !tbaa !9
  %588 = add nsw i32 %586, %587
  %589 = load i32, ptr %24, align 4, !tbaa !9
  %590 = add nsw i32 %588, %589
  %591 = load i32, ptr %25, align 4, !tbaa !9
  %592 = add nsw i32 %590, %591
  %593 = load i32, ptr %32, align 4, !tbaa !9
  %594 = add nsw i32 %592, %593
  %595 = load i32, ptr %29, align 4, !tbaa !9
  %596 = add nsw i32 %594, %595
  %597 = load i32, ptr %40, align 4, !tbaa !9
  %598 = add nsw i32 %596, %597
  %599 = icmp ne i32 %598, 0
  br i1 %599, label %600, label %602

600:                                              ; preds = %583
  %601 = load ptr, ptr getelementptr inbounds (%struct.rboxT, ptr @rbox, i32 0, i32 1), align 8, !tbaa !13
  call void (ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %601, i32 noundef 6192, ptr noundef @.str.10)
  call void @qh_errexit_rbox(i32 noundef 1)
  br label %612

602:                                              ; preds = %583
  %603 = load i32, ptr %34, align 4, !tbaa !9
  %604 = load i32, ptr %30, align 4, !tbaa !9
  %605 = add nsw i32 %603, %604
  %606 = load i32, ptr %23, align 4, !tbaa !9
  %607 = add nsw i32 %605, %606
  %608 = icmp ne i32 %607, 0
  br i1 %608, label %609, label %610

609:                                              ; preds = %602
  br label %611

610:                                              ; preds = %602
  store i32 50, ptr %21, align 4, !tbaa !9
  store i32 1, ptr %24, align 4, !tbaa !9
  br label %611

611:                                              ; preds = %610, %609
  br label %612

612:                                              ; preds = %611, %600
  br label %613

613:                                              ; preds = %612, %582
  br label %614

614:                                              ; preds = %613, %576
  %615 = load i32, ptr %38, align 4, !tbaa !9
  %616 = load i32, ptr %27, align 4, !tbaa !9
  %617 = add nsw i32 %615, %616
  %618 = load i32, ptr %32, align 4, !tbaa !9
  %619 = add nsw i32 %617, %618
  %620 = load i32, ptr %40, align 4, !tbaa !9
  %621 = add nsw i32 %619, %620
  %622 = icmp sgt i32 %621, 1
  br i1 %622, label %632, label %623

623:                                              ; preds = %614
  %624 = load i32, ptr %38, align 4, !tbaa !9
  %625 = load i32, ptr %24, align 4, !tbaa !9
  %626 = add nsw i32 %624, %625
  %627 = load i32, ptr %32, align 4, !tbaa !9
  %628 = add nsw i32 %626, %627
  %629 = load i32, ptr %40, align 4, !tbaa !9
  %630 = add nsw i32 %628, %629
  %631 = icmp sgt i32 %630, 1
  br i1 %631, label %632, label %634

632:                                              ; preds = %623, %614
  %633 = load ptr, ptr getelementptr inbounds (%struct.rboxT, ptr @rbox, i32 0, i32 1), align 8, !tbaa !13
  call void (ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %633, i32 noundef 6193, ptr noundef @.str.11)
  call void @qh_errexit_rbox(i32 noundef 1)
  br label %634

634:                                              ; preds = %632, %623
  %635 = load i32, ptr %14, align 4, !tbaa !9
  %636 = icmp sgt i32 %635, 0
  br i1 %636, label %637, label %648

637:                                              ; preds = %634
  %638 = load i32, ptr %21, align 4, !tbaa !9
  %639 = icmp eq i32 %638, 0
  br i1 %639, label %644, label %640

640:                                              ; preds = %637
  %641 = load i32, ptr %13, align 4, !tbaa !9
  %642 = load i32, ptr %21, align 4, !tbaa !9
  %643 = icmp sgt i32 %641, %642
  br i1 %643, label %644, label %648

644:                                              ; preds = %640, %637
  %645 = load ptr, ptr getelementptr inbounds (%struct.rboxT, ptr @rbox, i32 0, i32 1), align 8, !tbaa !13
  %646 = load i32, ptr %13, align 4, !tbaa !9
  %647 = load i32, ptr %21, align 4, !tbaa !9
  call void (ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %645, i32 noundef 6270, ptr noundef @.str.12, i32 noundef %646, i32 noundef %647)
  call void @qh_errexit_rbox(i32 noundef 1)
  br label %648

648:                                              ; preds = %644, %640, %634
  %649 = load i32, ptr %13, align 4, !tbaa !9
  %650 = icmp eq i32 %649, 0
  br i1 %650, label %651, label %653

651:                                              ; preds = %648
  %652 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %652, ptr %13, align 4, !tbaa !9
  br label %653

653:                                              ; preds = %651, %648
  %654 = load i32, ptr %38, align 4, !tbaa !9
  %655 = icmp ne i32 %654, 0
  br i1 %655, label %659, label %656

656:                                              ; preds = %653
  %657 = load i32, ptr %40, align 4, !tbaa !9
  %658 = icmp ne i32 %657, 0
  br i1 %658, label %659, label %661

659:                                              ; preds = %656, %653
  %660 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %660, ptr %22, align 4, !tbaa !9
  br label %717

661:                                              ; preds = %656
  %662 = load i32, ptr %39, align 4, !tbaa !9
  %663 = icmp ne i32 %662, 0
  br i1 %663, label %664, label %669

664:                                              ; preds = %661
  %665 = load i32, ptr %21, align 4, !tbaa !9
  %666 = load i32, ptr %20, align 4, !tbaa !9
  %667 = add nsw i32 %665, %666
  %668 = add nsw i32 %667, 1
  store i32 %668, ptr %22, align 4, !tbaa !9
  br label %716

669:                                              ; preds = %661
  %670 = load i32, ptr %28, align 4, !tbaa !9
  %671 = icmp ne i32 %670, 0
  br i1 %671, label %672, label %711

672:                                              ; preds = %669
  %673 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %673, ptr %22, align 4, !tbaa !9
  %674 = load i32, ptr %20, align 4, !tbaa !9
  %675 = icmp eq i32 %674, 2
  br i1 %675, label %676, label %685

676:                                              ; preds = %672
  %677 = load i32, ptr %27, align 4, !tbaa !9
  %678 = icmp ne i32 %677, 0
  br i1 %678, label %679, label %684

679:                                              ; preds = %676
  %680 = load i32, ptr %21, align 4, !tbaa !9
  %681 = sub nsw i32 %680, 2
  %682 = load i32, ptr %22, align 4, !tbaa !9
  %683 = add nsw i32 %682, %681
  store i32 %683, ptr %22, align 4, !tbaa !9
  br label %684

684:                                              ; preds = %679, %676
  br label %710

685:                                              ; preds = %672
  %686 = load i32, ptr %20, align 4, !tbaa !9
  %687 = icmp eq i32 %686, 3
  br i1 %687, label %688, label %709

688:                                              ; preds = %685
  %689 = load i32, ptr %27, align 4, !tbaa !9
  %690 = icmp ne i32 %689, 0
  br i1 %690, label %691, label %696

691:                                              ; preds = %688
  %692 = load i32, ptr %21, align 4, !tbaa !9
  %693 = mul nsw i32 2, %692
  %694 = load i32, ptr %22, align 4, !tbaa !9
  %695 = add nsw i32 %694, %693
  store i32 %695, ptr %22, align 4, !tbaa !9
  br label %708

696:                                              ; preds = %688
  %697 = load i32, ptr %31, align 4, !tbaa !9
  %698 = icmp ne i32 %697, 0
  br i1 %698, label %699, label %704

699:                                              ; preds = %696
  %700 = load i32, ptr %21, align 4, !tbaa !9
  %701 = add nsw i32 1, %700
  %702 = load i32, ptr %22, align 4, !tbaa !9
  %703 = add nsw i32 %702, %701
  store i32 %703, ptr %22, align 4, !tbaa !9
  br label %707

704:                                              ; preds = %696
  %705 = load i32, ptr %22, align 4, !tbaa !9
  %706 = add nsw i32 %705, 2
  store i32 %706, ptr %22, align 4, !tbaa !9
  br label %707

707:                                              ; preds = %704, %699
  br label %708

708:                                              ; preds = %707, %691
  br label %709

709:                                              ; preds = %708, %685
  br label %710

710:                                              ; preds = %709, %684
  br label %715

711:                                              ; preds = %669
  %712 = load i32, ptr %21, align 4, !tbaa !9
  %713 = load i32, ptr %25, align 4, !tbaa !9
  %714 = add nsw i32 %712, %713
  store i32 %714, ptr %22, align 4, !tbaa !9
  br label %715

715:                                              ; preds = %711, %710
  br label %716

716:                                              ; preds = %715, %664
  br label %717

717:                                              ; preds = %716, %659
  %718 = load i32, ptr %15, align 4, !tbaa !9
  %719 = load i32, ptr %16, align 4, !tbaa !9
  %720 = add nsw i32 %718, %719
  %721 = load i32, ptr %23, align 4, !tbaa !9
  %722 = add nsw i32 %720, %721
  %723 = load i32, ptr %22, align 4, !tbaa !9
  %724 = add nsw i32 %723, %722
  store i32 %724, ptr %22, align 4, !tbaa !9
  %725 = load i32, ptr %14, align 4, !tbaa !9
  %726 = load i32, ptr %13, align 4, !tbaa !9
  %727 = mul nsw i32 %725, %726
  %728 = load i32, ptr %22, align 4, !tbaa !9
  %729 = add nsw i32 %728, %727
  store i32 %729, ptr %22, align 4, !tbaa !9
  %730 = load i32, ptr %36, align 4, !tbaa !9
  %731 = icmp eq i32 %730, 0
  br i1 %731, label %732, label %760

732:                                              ; preds = %717
  %733 = getelementptr inbounds [200 x i8], ptr %69, i64 0, i64 0
  store ptr %733, ptr %71, align 8, !tbaa !5
  br label %734

734:                                              ; preds = %756, %732
  %735 = load ptr, ptr %71, align 8, !tbaa !5
  %736 = load i8, ptr %735, align 1, !tbaa !16
  %737 = icmp ne i8 %736, 0
  br i1 %737, label %738, label %759

738:                                              ; preds = %734
  %739 = load i32, ptr %39, align 4, !tbaa !9
  %740 = icmp ne i32 %739, 0
  br i1 %740, label %741, label %747

741:                                              ; preds = %738
  %742 = load ptr, ptr %71, align 8, !tbaa !5
  %743 = load i8, ptr %742, align 1, !tbaa !16
  %744 = sext i8 %743 to i32
  %745 = icmp eq i32 %744, 121
  br i1 %745, label %746, label %747

746:                                              ; preds = %741
  store i32 120, ptr %8, align 4, !tbaa !9
  br label %751

747:                                              ; preds = %741, %738
  %748 = load ptr, ptr %71, align 8, !tbaa !5
  %749 = load i8, ptr %748, align 1, !tbaa !16
  %750 = sext i8 %749 to i32
  store i32 %750, ptr %8, align 4, !tbaa !9
  br label %751

751:                                              ; preds = %747, %746
  %752 = load i32, ptr %17, align 4, !tbaa !9
  %753 = mul nsw i32 11, %752
  %754 = load i32, ptr %8, align 4, !tbaa !9
  %755 = add nsw i32 %753, %754
  store i32 %755, ptr %17, align 4, !tbaa !9
  br label %756

756:                                              ; preds = %751
  %757 = load ptr, ptr %71, align 8, !tbaa !5
  %758 = getelementptr inbounds i8, ptr %757, i32 1
  store ptr %758, ptr %71, align 8, !tbaa !5
  br label %734, !llvm.loop !28

759:                                              ; preds = %734
  br label %788

760:                                              ; preds = %717
  %761 = load i32, ptr %35, align 4, !tbaa !9
  %762 = icmp ne i32 %761, 0
  br i1 %762, label %763, label %787

763:                                              ; preds = %760
  %764 = call i64 @time(ptr noundef %74) #8
  %765 = trunc i64 %764 to i32
  store i32 %765, ptr %17, align 4, !tbaa !9
  %766 = getelementptr inbounds [200 x i8], ptr %70, i64 0, i64 0
  %767 = load i32, ptr %17, align 4, !tbaa !9
  %768 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef %766, ptr noundef @.str.13, i32 noundef %767) #8
  %769 = getelementptr inbounds [200 x i8], ptr %69, i64 0, i64 0
  %770 = getelementptr inbounds [200 x i8], ptr %70, i64 0, i64 0
  %771 = getelementptr inbounds [200 x i8], ptr %69, i64 0, i64 0
  %772 = call i64 @strlen(ptr noundef %771) #10
  %773 = sub i64 200, %772
  %774 = sub i64 %773, 1
  %775 = call ptr @strncat(ptr noundef %769, ptr noundef %770, i64 noundef %774) #8
  %776 = getelementptr inbounds [200 x i8], ptr %69, i64 0, i64 0
  %777 = call ptr @strstr(ptr noundef %776, ptr noundef @.str.14) #10
  store ptr %777, ptr %72, align 8, !tbaa !5
  %778 = load ptr, ptr %72, align 8, !tbaa !5
  %779 = icmp ne ptr %778, null
  br i1 %779, label %780, label %786

780:                                              ; preds = %763
  %781 = load ptr, ptr %72, align 8, !tbaa !5
  %782 = getelementptr inbounds i8, ptr %781, i64 1
  %783 = load ptr, ptr %72, align 8, !tbaa !5
  %784 = getelementptr inbounds i8, ptr %783, i64 3
  %785 = call ptr @strcpy(ptr noundef %782, ptr noundef %784) #8
  br label %786

786:                                              ; preds = %780, %763
  br label %787

787:                                              ; preds = %786, %760
  br label %788

788:                                              ; preds = %787, %759
  %789 = load i32, ptr %17, align 4, !tbaa !9
  call void @qh_srand(i32 noundef %789)
  %790 = load i32, ptr %26, align 4, !tbaa !9
  %791 = icmp ne i32 %790, 0
  br i1 %791, label %792, label %808

792:                                              ; preds = %788
  %793 = load ptr, ptr @rbox, align 8, !tbaa !15
  %794 = load i32, ptr %33, align 4, !tbaa !9
  %795 = icmp ne i32 %794, 0
  br i1 %795, label %796, label %797

796:                                              ; preds = %792
  br label %799

797:                                              ; preds = %792
  %798 = getelementptr inbounds [200 x i8], ptr %69, i64 0, i64 0
  br label %799

799:                                              ; preds = %797, %796
  %800 = phi ptr [ @.str.16, %796 ], [ %798, %797 ]
  %801 = load i32, ptr %22, align 4, !tbaa !9
  %802 = load i32, ptr %20, align 4, !tbaa !9
  %803 = add nsw i32 %802, 1
  %804 = load i32, ptr getelementptr inbounds (%struct.rboxT, ptr @rbox, i32 0, i32 2), align 8, !tbaa !25
  %805 = icmp ne i32 %804, 0
  %806 = zext i1 %805 to i64
  %807 = select i1 %805, ptr @.str.17, ptr @.str.18
  call void (ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %793, i32 noundef 9391, ptr noundef @.str.15, ptr noundef %800, i32 noundef %801, i32 noundef %803, ptr noundef %807)
  br label %821

808:                                              ; preds = %788
  %809 = load i32, ptr %33, align 4, !tbaa !9
  %810 = icmp ne i32 %809, 0
  br i1 %810, label %811, label %815

811:                                              ; preds = %808
  %812 = load ptr, ptr @rbox, align 8, !tbaa !15
  %813 = load i32, ptr %20, align 4, !tbaa !9
  %814 = load i32, ptr %22, align 4, !tbaa !9
  call void (ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %812, i32 noundef 9392, ptr noundef @.str.19, i32 noundef %813, i32 noundef %814)
  br label %820

815:                                              ; preds = %808
  %816 = load ptr, ptr @rbox, align 8, !tbaa !15
  %817 = load i32, ptr %20, align 4, !tbaa !9
  %818 = getelementptr inbounds [200 x i8], ptr %69, i64 0, i64 0
  %819 = load i32, ptr %22, align 4, !tbaa !9
  call void (ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %816, i32 noundef 9393, ptr noundef @.str.20, i32 noundef %817, ptr noundef %818, i32 noundef %819)
  br label %820

820:                                              ; preds = %815, %811
  br label %821

821:                                              ; preds = %820, %799
  %822 = load ptr, ptr %73, align 8, !tbaa !5
  store ptr %822, ptr %71, align 8, !tbaa !5
  %823 = icmp ne ptr %822, null
  br i1 %823, label %824, label %922

824:                                              ; preds = %821
  br label %825

825:                                              ; preds = %920, %824
  %826 = load ptr, ptr %71, align 8, !tbaa !5
  %827 = icmp ne ptr %826, null
  br i1 %827, label %828, label %833

828:                                              ; preds = %825
  %829 = load ptr, ptr %71, align 8, !tbaa !5
  %830 = load i8, ptr %829, align 1, !tbaa !16
  %831 = sext i8 %830 to i32
  %832 = icmp ne i32 %831, 0
  br label %833

833:                                              ; preds = %828, %825
  %834 = phi i1 [ false, %825 ], [ %832, %828 ]
  br i1 %834, label %835, label %921

835:                                              ; preds = %833
  store i32 0, ptr %18, align 4, !tbaa !9
  %836 = load i32, ptr %26, align 4, !tbaa !9
  %837 = icmp ne i32 %836, 0
  br i1 %837, label %838, label %839

838:                                              ; preds = %835
  call void @qh_out1(double noundef 1.000000e+00)
  br label %839

839:                                              ; preds = %838, %835
  br label %840

840:                                              ; preds = %874, %839
  %841 = load ptr, ptr %71, align 8, !tbaa !5
  %842 = getelementptr inbounds i8, ptr %841, i32 1
  store ptr %842, ptr %71, align 8, !tbaa !5
  %843 = load i8, ptr %842, align 1, !tbaa !16
  %844 = icmp ne i8 %843, 0
  br i1 %844, label %845, label %875

845:                                              ; preds = %840
  %846 = load ptr, ptr %71, align 8, !tbaa !5
  %847 = call double @qh_strtod(ptr noundef %846, ptr noundef %71)
  call void @qh_out1(double noundef %847)
  %848 = load i32, ptr %18, align 4, !tbaa !9
  %849 = add nsw i32 %848, 1
  store i32 %849, ptr %18, align 4, !tbaa !9
  %850 = call ptr @__ctype_b_loc() #11
  %851 = load ptr, ptr %850, align 8, !tbaa !5
  %852 = load ptr, ptr %71, align 8, !tbaa !5
  %853 = load i8, ptr %852, align 1, !tbaa !16
  %854 = sext i8 %853 to i32
  %855 = sext i32 %854 to i64
  %856 = getelementptr inbounds i16, ptr %851, i64 %855
  %857 = load i16, ptr %856, align 2, !tbaa !17
  %858 = zext i16 %857 to i32
  %859 = and i32 %858, 8192
  %860 = icmp ne i32 %859, 0
  br i1 %860, label %865, label %861

861:                                              ; preds = %845
  %862 = load ptr, ptr %71, align 8, !tbaa !5
  %863 = load i8, ptr %862, align 1, !tbaa !16
  %864 = icmp ne i8 %863, 0
  br i1 %864, label %866, label %865

865:                                              ; preds = %861, %845
  br label %875

866:                                              ; preds = %861
  %867 = load ptr, ptr %71, align 8, !tbaa !5
  %868 = load i8, ptr %867, align 1, !tbaa !16
  %869 = sext i8 %868 to i32
  %870 = icmp ne i32 %869, 44
  br i1 %870, label %871, label %874

871:                                              ; preds = %866
  %872 = load ptr, ptr getelementptr inbounds (%struct.rboxT, ptr @rbox, i32 0, i32 1), align 8, !tbaa !13
  %873 = load ptr, ptr %71, align 8, !tbaa !5
  call void (ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %872, i32 noundef 6194, ptr noundef @.str.21, ptr noundef %873)
  call void @qh_errexit_rbox(i32 noundef 1)
  br label %874

874:                                              ; preds = %871, %866
  br label %840, !llvm.loop !29

875:                                              ; preds = %865, %840
  %876 = load i32, ptr %18, align 4, !tbaa !9
  %877 = load i32, ptr %20, align 4, !tbaa !9
  %878 = icmp slt i32 %876, %877
  br i1 %878, label %879, label %889

879:                                              ; preds = %875
  %880 = load i32, ptr %20, align 4, !tbaa !9
  %881 = load i32, ptr %18, align 4, !tbaa !9
  %882 = sub nsw i32 %880, %881
  store i32 %882, ptr %10, align 4, !tbaa !9
  br label %883

883:                                              ; preds = %887, %879
  %884 = load i32, ptr %10, align 4, !tbaa !9
  %885 = add nsw i32 %884, -1
  store i32 %885, ptr %10, align 4, !tbaa !9
  %886 = icmp ne i32 %884, 0
  br i1 %886, label %887, label %888

887:                                              ; preds = %883
  call void @qh_out1(double noundef 0.000000e+00)
  br label %883, !llvm.loop !30

888:                                              ; preds = %883
  br label %899

889:                                              ; preds = %875
  %890 = load i32, ptr %18, align 4, !tbaa !9
  %891 = load i32, ptr %20, align 4, !tbaa !9
  %892 = icmp sgt i32 %890, %891
  br i1 %892, label %893, label %898

893:                                              ; preds = %889
  %894 = load ptr, ptr getelementptr inbounds (%struct.rboxT, ptr @rbox, i32 0, i32 1), align 8, !tbaa !13
  %895 = load i32, ptr %18, align 4, !tbaa !9
  %896 = load i32, ptr %20, align 4, !tbaa !9
  %897 = load ptr, ptr %71, align 8, !tbaa !5
  call void (ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %894, i32 noundef 6195, ptr noundef @.str.22, i32 noundef %895, i32 noundef %896, ptr noundef %897)
  call void @qh_errexit_rbox(i32 noundef 1)
  br label %898

898:                                              ; preds = %893, %889
  br label %899

899:                                              ; preds = %898, %888
  %900 = load ptr, ptr @rbox, align 8, !tbaa !15
  call void (ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %900, i32 noundef 9394, ptr noundef @.str.23)
  br label %901

901:                                              ; preds = %919, %899
  %902 = load ptr, ptr %71, align 8, !tbaa !5
  %903 = call ptr @strchr(ptr noundef %902, i32 noundef 80) #10
  store ptr %903, ptr %71, align 8, !tbaa !5
  %904 = icmp ne ptr %903, null
  br i1 %904, label %905, label %920

905:                                              ; preds = %901
  %906 = call ptr @__ctype_b_loc() #11
  %907 = load ptr, ptr %906, align 8, !tbaa !5
  %908 = load ptr, ptr %71, align 8, !tbaa !5
  %909 = getelementptr inbounds i8, ptr %908, i64 -1
  %910 = load i8, ptr %909, align 1, !tbaa !16
  %911 = sext i8 %910 to i32
  %912 = sext i32 %911 to i64
  %913 = getelementptr inbounds i16, ptr %907, i64 %912
  %914 = load i16, ptr %913, align 2, !tbaa !17
  %915 = zext i16 %914 to i32
  %916 = and i32 %915, 8192
  %917 = icmp ne i32 %916, 0
  br i1 %917, label %918, label %919

918:                                              ; preds = %905
  br label %920

919:                                              ; preds = %905
  br label %901, !llvm.loop !31

920:                                              ; preds = %918, %901
  br label %825, !llvm.loop !32

921:                                              ; preds = %833
  br label %922

922:                                              ; preds = %921, %821
  %923 = load i32, ptr %38, align 4, !tbaa !9
  %924 = load i32, ptr %39, align 4, !tbaa !9
  %925 = add nsw i32 %923, %924
  %926 = icmp ne i32 %925, 0
  br i1 %926, label %927, label %1156

927:                                              ; preds = %922
  %928 = load i32, ptr %20, align 4, !tbaa !9
  %929 = load i32, ptr %20, align 4, !tbaa !9
  %930 = add nsw i32 %929, 1
  %931 = mul nsw i32 %928, %930
  %932 = sext i32 %931 to i64
  %933 = mul i64 %932, 8
  %934 = call ptr @qh_malloc(i64 noundef %933)
  store ptr %934, ptr %51, align 8, !tbaa !5
  %935 = icmp ne ptr %934, null
  br i1 %935, label %938, label %936

936:                                              ; preds = %927
  %937 = load ptr, ptr getelementptr inbounds (%struct.rboxT, ptr @rbox, i32 0, i32 1), align 8, !tbaa !13
  call void (ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %937, i32 noundef 6196, ptr noundef @.str.24)
  call void @qh_errexit_rbox(i32 noundef 4)
  br label %938

938:                                              ; preds = %936, %927
  %939 = load ptr, ptr %51, align 8, !tbaa !5
  store ptr %939, ptr %52, align 8, !tbaa !5
  %940 = load i32, ptr %28, align 4, !tbaa !9
  %941 = icmp ne i32 %940, 0
  br i1 %941, label %942, label %979

942:                                              ; preds = %938
  store i32 0, ptr %8, align 4, !tbaa !9
  br label %943

943:                                              ; preds = %964, %942
  %944 = load i32, ptr %8, align 4, !tbaa !9
  %945 = load i32, ptr %20, align 4, !tbaa !9
  %946 = icmp slt i32 %944, %945
  br i1 %946, label %947, label %967

947:                                              ; preds = %943
  store i32 0, ptr %10, align 4, !tbaa !9
  br label %948

948:                                              ; preds = %960, %947
  %949 = load i32, ptr %10, align 4, !tbaa !9
  %950 = load i32, ptr %20, align 4, !tbaa !9
  %951 = icmp slt i32 %949, %950
  br i1 %951, label %952, label %963

952:                                              ; preds = %948
  %953 = load i32, ptr %8, align 4, !tbaa !9
  %954 = load i32, ptr %10, align 4, !tbaa !9
  %955 = icmp eq i32 %953, %954
  %956 = zext i1 %955 to i64
  %957 = select i1 %955, double 1.000000e+00, double 0.000000e+00
  %958 = load ptr, ptr %52, align 8, !tbaa !5
  %959 = getelementptr inbounds double, ptr %958, i32 1
  store ptr %959, ptr %52, align 8, !tbaa !5
  store double %957, ptr %958, align 8, !tbaa !11
  br label %960

960:                                              ; preds = %952
  %961 = load i32, ptr %10, align 4, !tbaa !9
  %962 = add nsw i32 %961, 1
  store i32 %962, ptr %10, align 4, !tbaa !9
  br label %948, !llvm.loop !33

963:                                              ; preds = %948
  br label %964

964:                                              ; preds = %963
  %965 = load i32, ptr %8, align 4, !tbaa !9
  %966 = add nsw i32 %965, 1
  store i32 %966, ptr %8, align 4, !tbaa !9
  br label %943, !llvm.loop !34

967:                                              ; preds = %943
  store i32 0, ptr %10, align 4, !tbaa !9
  br label %968

968:                                              ; preds = %975, %967
  %969 = load i32, ptr %10, align 4, !tbaa !9
  %970 = load i32, ptr %20, align 4, !tbaa !9
  %971 = icmp slt i32 %969, %970
  br i1 %971, label %972, label %978

972:                                              ; preds = %968
  %973 = load ptr, ptr %52, align 8, !tbaa !5
  %974 = getelementptr inbounds double, ptr %973, i32 1
  store ptr %974, ptr %52, align 8, !tbaa !5
  store double -1.000000e+00, ptr %973, align 8, !tbaa !11
  br label %975

975:                                              ; preds = %972
  %976 = load i32, ptr %10, align 4, !tbaa !9
  %977 = add nsw i32 %976, 1
  store i32 %977, ptr %10, align 4, !tbaa !9
  br label %968, !llvm.loop !35

978:                                              ; preds = %968
  br label %1008

979:                                              ; preds = %938
  store i32 0, ptr %8, align 4, !tbaa !9
  br label %980

980:                                              ; preds = %1004, %979
  %981 = load i32, ptr %8, align 4, !tbaa !9
  %982 = load i32, ptr %20, align 4, !tbaa !9
  %983 = add nsw i32 %982, 1
  %984 = icmp slt i32 %981, %983
  br i1 %984, label %985, label %1007

985:                                              ; preds = %980
  store i32 0, ptr %10, align 4, !tbaa !9
  br label %986

986:                                              ; preds = %1000, %985
  %987 = load i32, ptr %10, align 4, !tbaa !9
  %988 = load i32, ptr %20, align 4, !tbaa !9
  %989 = icmp slt i32 %987, %988
  br i1 %989, label %990, label %1003

990:                                              ; preds = %986
  %991 = call i32 @qh_rand()
  %992 = sitofp i32 %991 to double
  store double %992, ptr %57, align 8, !tbaa !11
  %993 = load double, ptr %57, align 8, !tbaa !11
  %994 = fmul double 2.000000e+00, %993
  %995 = load double, ptr %68, align 8, !tbaa !11
  %996 = fdiv double %994, %995
  %997 = fsub double %996, 1.000000e+00
  %998 = load ptr, ptr %52, align 8, !tbaa !5
  %999 = getelementptr inbounds double, ptr %998, i32 1
  store ptr %999, ptr %52, align 8, !tbaa !5
  store double %997, ptr %998, align 8, !tbaa !11
  br label %1000

1000:                                             ; preds = %990
  %1001 = load i32, ptr %10, align 4, !tbaa !9
  %1002 = add nsw i32 %1001, 1
  store i32 %1002, ptr %10, align 4, !tbaa !9
  br label %986, !llvm.loop !36

1003:                                             ; preds = %986
  br label %1004

1004:                                             ; preds = %1003
  %1005 = load i32, ptr %8, align 4, !tbaa !9
  %1006 = add nsw i32 %1005, 1
  store i32 %1006, ptr %8, align 4, !tbaa !9
  br label %980, !llvm.loop !37

1007:                                             ; preds = %980
  br label %1008

1008:                                             ; preds = %1007, %978
  %1009 = load i32, ptr %39, align 4, !tbaa !9
  %1010 = icmp ne i32 %1009, 0
  br i1 %1010, label %1011, label %1042

1011:                                             ; preds = %1008
  %1012 = load ptr, ptr %51, align 8, !tbaa !5
  store ptr %1012, ptr %52, align 8, !tbaa !5
  store i32 0, ptr %8, align 4, !tbaa !9
  br label %1013

1013:                                             ; preds = %1038, %1011
  %1014 = load i32, ptr %8, align 4, !tbaa !9
  %1015 = load i32, ptr %20, align 4, !tbaa !9
  %1016 = add nsw i32 %1015, 1
  %1017 = icmp slt i32 %1014, %1016
  br i1 %1017, label %1018, label %1041

1018:                                             ; preds = %1013
  %1019 = load i32, ptr %26, align 4, !tbaa !9
  %1020 = icmp ne i32 %1019, 0
  br i1 %1020, label %1021, label %1022

1021:                                             ; preds = %1018
  call void @qh_out1(double noundef 1.000000e+00)
  br label %1022

1022:                                             ; preds = %1021, %1018
  store i32 0, ptr %10, align 4, !tbaa !9
  br label %1023

1023:                                             ; preds = %1033, %1022
  %1024 = load i32, ptr %10, align 4, !tbaa !9
  %1025 = load i32, ptr %20, align 4, !tbaa !9
  %1026 = icmp slt i32 %1024, %1025
  br i1 %1026, label %1027, label %1036

1027:                                             ; preds = %1023
  %1028 = load ptr, ptr %52, align 8, !tbaa !5
  %1029 = getelementptr inbounds double, ptr %1028, i32 1
  store ptr %1029, ptr %52, align 8, !tbaa !5
  %1030 = load double, ptr %1028, align 8, !tbaa !11
  %1031 = load double, ptr %67, align 8, !tbaa !11
  %1032 = fmul double %1030, %1031
  call void @qh_out1(double noundef %1032)
  br label %1033

1033:                                             ; preds = %1027
  %1034 = load i32, ptr %10, align 4, !tbaa !9
  %1035 = add nsw i32 %1034, 1
  store i32 %1035, ptr %10, align 4, !tbaa !9
  br label %1023, !llvm.loop !38

1036:                                             ; preds = %1023
  %1037 = load ptr, ptr @rbox, align 8, !tbaa !15
  call void (ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %1037, i32 noundef 9395, ptr noundef @.str.23)
  br label %1038

1038:                                             ; preds = %1036
  %1039 = load i32, ptr %8, align 4, !tbaa !9
  %1040 = add nsw i32 %1039, 1
  store i32 %1040, ptr %8, align 4, !tbaa !9
  br label %1013, !llvm.loop !39

1041:                                             ; preds = %1013
  br label %1042

1042:                                             ; preds = %1041, %1008
  store i32 0, ptr %9, align 4, !tbaa !9
  br label %1043

1043:                                             ; preds = %1152, %1042
  %1044 = load i32, ptr %9, align 4, !tbaa !9
  %1045 = load i32, ptr %21, align 4, !tbaa !9
  %1046 = icmp slt i32 %1044, %1045
  br i1 %1046, label %1047, label %1155

1047:                                             ; preds = %1043
  %1048 = load i32, ptr %29, align 4, !tbaa !9
  %1049 = icmp ne i32 %1048, 0
  br i1 %1049, label %1050, label %1055

1050:                                             ; preds = %1047
  %1051 = call i32 @qh_rand()
  %1052 = load i32, ptr %20, align 4, !tbaa !9
  %1053 = add nsw i32 %1052, 1
  %1054 = srem i32 %1051, %1053
  store i32 %1054, ptr %19, align 4, !tbaa !9
  br label %1056

1055:                                             ; preds = %1047
  store i32 -1, ptr %19, align 4, !tbaa !9
  br label %1056

1056:                                             ; preds = %1055, %1050
  store i32 0, ptr %10, align 4, !tbaa !9
  br label %1057

1057:                                             ; preds = %1065, %1056
  %1058 = load i32, ptr %10, align 4, !tbaa !9
  %1059 = load i32, ptr %20, align 4, !tbaa !9
  %1060 = icmp slt i32 %1058, %1059
  br i1 %1060, label %1061, label %1068

1061:                                             ; preds = %1057
  %1062 = load i32, ptr %10, align 4, !tbaa !9
  %1063 = sext i32 %1062 to i64
  %1064 = getelementptr inbounds [200 x double], ptr %45, i64 0, i64 %1063
  store double 0.000000e+00, ptr %1064, align 8, !tbaa !11
  br label %1065

1065:                                             ; preds = %1061
  %1066 = load i32, ptr %10, align 4, !tbaa !9
  %1067 = add nsw i32 %1066, 1
  store i32 %1067, ptr %10, align 4, !tbaa !9
  br label %1057, !llvm.loop !40

1068:                                             ; preds = %1057
  store double 0.000000e+00, ptr %55, align 8, !tbaa !11
  store i32 0, ptr %8, align 4, !tbaa !9
  br label %1069

1069:                                             ; preds = %1117, %1068
  %1070 = load i32, ptr %8, align 4, !tbaa !9
  %1071 = load i32, ptr %20, align 4, !tbaa !9
  %1072 = add nsw i32 %1071, 1
  %1073 = icmp slt i32 %1070, %1072
  br i1 %1073, label %1074, label %1120

1074:                                             ; preds = %1069
  %1075 = call i32 @qh_rand()
  %1076 = sitofp i32 %1075 to double
  store double %1076, ptr %57, align 8, !tbaa !11
  %1077 = load double, ptr %57, align 8, !tbaa !11
  %1078 = load double, ptr %68, align 8, !tbaa !11
  %1079 = fdiv double %1077, %1078
  store double %1079, ptr %56, align 8, !tbaa !11
  %1080 = load i32, ptr %8, align 4, !tbaa !9
  %1081 = load i32, ptr %19, align 4, !tbaa !9
  %1082 = icmp eq i32 %1080, %1081
  br i1 %1082, label %1083, label %1087

1083:                                             ; preds = %1074
  %1084 = load double, ptr %41, align 8, !tbaa !11
  %1085 = load double, ptr %56, align 8, !tbaa !11
  %1086 = fmul double %1085, %1084
  store double %1086, ptr %56, align 8, !tbaa !11
  br label %1087

1087:                                             ; preds = %1083, %1074
  %1088 = load double, ptr %56, align 8, !tbaa !11
  %1089 = load double, ptr %55, align 8, !tbaa !11
  %1090 = fadd double %1089, %1088
  store double %1090, ptr %55, align 8, !tbaa !11
  store i32 0, ptr %10, align 4, !tbaa !9
  br label %1091

1091:                                             ; preds = %1113, %1087
  %1092 = load i32, ptr %10, align 4, !tbaa !9
  %1093 = load i32, ptr %20, align 4, !tbaa !9
  %1094 = icmp slt i32 %1092, %1093
  br i1 %1094, label %1095, label %1116

1095:                                             ; preds = %1091
  %1096 = load ptr, ptr %51, align 8, !tbaa !5
  %1097 = load i32, ptr %8, align 4, !tbaa !9
  %1098 = load i32, ptr %20, align 4, !tbaa !9
  %1099 = mul nsw i32 %1097, %1098
  %1100 = sext i32 %1099 to i64
  %1101 = getelementptr inbounds double, ptr %1096, i64 %1100
  %1102 = load i32, ptr %10, align 4, !tbaa !9
  %1103 = sext i32 %1102 to i64
  %1104 = getelementptr inbounds double, ptr %1101, i64 %1103
  store ptr %1104, ptr %52, align 8, !tbaa !5
  %1105 = load double, ptr %56, align 8, !tbaa !11
  %1106 = load ptr, ptr %52, align 8, !tbaa !5
  %1107 = load double, ptr %1106, align 8, !tbaa !11
  %1108 = load i32, ptr %10, align 4, !tbaa !9
  %1109 = sext i32 %1108 to i64
  %1110 = getelementptr inbounds [200 x double], ptr %45, i64 0, i64 %1109
  %1111 = load double, ptr %1110, align 8, !tbaa !11
  %1112 = call double @llvm.fmuladd.f64(double %1105, double %1107, double %1111)
  store double %1112, ptr %1110, align 8, !tbaa !11
  br label %1113

1113:                                             ; preds = %1095
  %1114 = load i32, ptr %10, align 4, !tbaa !9
  %1115 = add nsw i32 %1114, 1
  store i32 %1115, ptr %10, align 4, !tbaa !9
  br label %1091, !llvm.loop !41

1116:                                             ; preds = %1091
  br label %1117

1117:                                             ; preds = %1116
  %1118 = load i32, ptr %8, align 4, !tbaa !9
  %1119 = add nsw i32 %1118, 1
  store i32 %1119, ptr %8, align 4, !tbaa !9
  br label %1069, !llvm.loop !42

1120:                                             ; preds = %1069
  store i32 0, ptr %10, align 4, !tbaa !9
  br label %1121

1121:                                             ; preds = %1134, %1120
  %1122 = load i32, ptr %10, align 4, !tbaa !9
  %1123 = load i32, ptr %20, align 4, !tbaa !9
  %1124 = icmp slt i32 %1122, %1123
  br i1 %1124, label %1125, label %1137

1125:                                             ; preds = %1121
  %1126 = load double, ptr %67, align 8, !tbaa !11
  %1127 = load double, ptr %55, align 8, !tbaa !11
  %1128 = fdiv double %1126, %1127
  %1129 = load i32, ptr %10, align 4, !tbaa !9
  %1130 = sext i32 %1129 to i64
  %1131 = getelementptr inbounds [200 x double], ptr %45, i64 0, i64 %1130
  %1132 = load double, ptr %1131, align 8, !tbaa !11
  %1133 = fmul double %1132, %1128
  store double %1133, ptr %1131, align 8, !tbaa !11
  br label %1134

1134:                                             ; preds = %1125
  %1135 = load i32, ptr %10, align 4, !tbaa !9
  %1136 = add nsw i32 %1135, 1
  store i32 %1136, ptr %10, align 4, !tbaa !9
  br label %1121, !llvm.loop !43

1137:                                             ; preds = %1121
  %1138 = load i32, ptr %26, align 4, !tbaa !9
  %1139 = getelementptr inbounds [200 x double], ptr %45, i64 0, i64 0
  %1140 = load i32, ptr %20, align 4, !tbaa !9
  call void @qh_outcoord(i32 noundef %1138, ptr noundef %1139, i32 noundef %1140)
  %1141 = load i32, ptr %12, align 4, !tbaa !9
  %1142 = add nsw i32 %1141, 1
  store i32 %1142, ptr %12, align 4, !tbaa !9
  %1143 = load i32, ptr %13, align 4, !tbaa !9
  %1144 = icmp slt i32 %1141, %1143
  br i1 %1144, label %1145, label %1151

1145:                                             ; preds = %1137
  %1146 = load i32, ptr %14, align 4, !tbaa !9
  %1147 = load double, ptr %44, align 8, !tbaa !11
  %1148 = load i32, ptr %26, align 4, !tbaa !9
  %1149 = getelementptr inbounds [200 x double], ptr %45, i64 0, i64 0
  %1150 = load i32, ptr %20, align 4, !tbaa !9
  call void @qh_outcoincident(i32 noundef %1146, double noundef %1147, i32 noundef %1148, ptr noundef %1149, i32 noundef %1150)
  br label %1151

1151:                                             ; preds = %1145, %1137
  br label %1152

1152:                                             ; preds = %1151
  %1153 = load i32, ptr %9, align 4, !tbaa !9
  %1154 = add nsw i32 %1153, 1
  store i32 %1154, ptr %9, align 4, !tbaa !9
  br label %1043, !llvm.loop !44

1155:                                             ; preds = %1043
  store i32 0, ptr %28, align 4, !tbaa !9
  store i32 0, ptr %21, align 4, !tbaa !9
  br label %1156

1156:                                             ; preds = %1155, %922
  %1157 = load i32, ptr %40, align 4, !tbaa !9
  %1158 = icmp ne i32 %1157, 0
  br i1 %1158, label %1159, label %1276

1159:                                             ; preds = %1156
  %1160 = load i32, ptr %21, align 4, !tbaa !9
  %1161 = sitofp i32 %1160 to double
  %1162 = load i32, ptr %20, align 4, !tbaa !9
  %1163 = sitofp i32 %1162 to double
  %1164 = fdiv double 1.000000e+00, %1163
  %1165 = call double @pow(double noundef %1161, double noundef %1164) #8
  %1166 = fadd double %1165, 9.999900e-01
  %1167 = fptosi double %1166 to i32
  store i32 %1167, ptr %53, align 4, !tbaa !9
  %1168 = load i32, ptr %20, align 4, !tbaa !9
  store i32 %1168, ptr %10, align 4, !tbaa !9
  br label %1169

1169:                                             ; preds = %1173, %1159
  %1170 = load i32, ptr %10, align 4, !tbaa !9
  %1171 = add nsw i32 %1170, -1
  store i32 %1171, ptr %10, align 4, !tbaa !9
  %1172 = icmp ne i32 %1170, 0
  br i1 %1172, label %1173, label %1177

1173:                                             ; preds = %1169
  %1174 = load i32, ptr %10, align 4, !tbaa !9
  %1175 = sext i32 %1174 to i64
  %1176 = getelementptr inbounds [200 x i32], ptr %54, i64 0, i64 %1175
  store i32 0, ptr %1176, align 4, !tbaa !9
  br label %1169, !llvm.loop !45

1177:                                             ; preds = %1169
  store i32 0, ptr %8, align 4, !tbaa !9
  br label %1178

1178:                                             ; preds = %1272, %1177
  %1179 = load i32, ptr %8, align 4, !tbaa !9
  %1180 = load i32, ptr %21, align 4, !tbaa !9
  %1181 = icmp slt i32 %1179, %1180
  br i1 %1181, label %1182, label %1275

1182:                                             ; preds = %1178
  %1183 = getelementptr inbounds [200 x double], ptr %45, i64 0, i64 0
  store ptr %1183, ptr %50, align 8, !tbaa !5
  store i32 0, ptr %10, align 4, !tbaa !9
  br label %1184

1184:                                             ; preds = %1233, %1182
  %1185 = load i32, ptr %10, align 4, !tbaa !9
  %1186 = load i32, ptr %20, align 4, !tbaa !9
  %1187 = icmp slt i32 %1185, %1186
  br i1 %1187, label %1188, label %1236

1188:                                             ; preds = %1184
  %1189 = load i32, ptr %10, align 4, !tbaa !9
  %1190 = icmp eq i32 %1189, 0
  br i1 %1190, label %1191, label %1205

1191:                                             ; preds = %1188
  %1192 = getelementptr inbounds [200 x i32], ptr %54, i64 0, i64 0
  %1193 = load i32, ptr %1192, align 16, !tbaa !9
  %1194 = sitofp i32 %1193 to double
  %1195 = load double, ptr %48, align 8, !tbaa !11
  %1196 = getelementptr inbounds [200 x i32], ptr %54, i64 0, i64 1
  %1197 = load i32, ptr %1196, align 4, !tbaa !9
  %1198 = sitofp i32 %1197 to double
  %1199 = load double, ptr %47, align 8, !tbaa !11
  %1200 = fneg double %1199
  %1201 = fmul double %1198, %1200
  %1202 = call double @llvm.fmuladd.f64(double %1194, double %1195, double %1201)
  %1203 = load ptr, ptr %50, align 8, !tbaa !5
  %1204 = getelementptr inbounds double, ptr %1203, i32 1
  store ptr %1204, ptr %50, align 8, !tbaa !5
  store double %1202, ptr %1203, align 8, !tbaa !11
  br label %1232

1205:                                             ; preds = %1188
  %1206 = load i32, ptr %10, align 4, !tbaa !9
  %1207 = icmp eq i32 %1206, 1
  br i1 %1207, label %1208, label %1221

1208:                                             ; preds = %1205
  %1209 = getelementptr inbounds [200 x i32], ptr %54, i64 0, i64 0
  %1210 = load i32, ptr %1209, align 16, !tbaa !9
  %1211 = sitofp i32 %1210 to double
  %1212 = load double, ptr %47, align 8, !tbaa !11
  %1213 = getelementptr inbounds [200 x i32], ptr %54, i64 0, i64 1
  %1214 = load i32, ptr %1213, align 4, !tbaa !9
  %1215 = sitofp i32 %1214 to double
  %1216 = load double, ptr %48, align 8, !tbaa !11
  %1217 = fmul double %1215, %1216
  %1218 = call double @llvm.fmuladd.f64(double %1211, double %1212, double %1217)
  %1219 = load ptr, ptr %50, align 8, !tbaa !5
  %1220 = getelementptr inbounds double, ptr %1219, i32 1
  store ptr %1220, ptr %50, align 8, !tbaa !5
  store double %1218, ptr %1219, align 8, !tbaa !11
  br label %1231

1221:                                             ; preds = %1205
  %1222 = load i32, ptr %10, align 4, !tbaa !9
  %1223 = sext i32 %1222 to i64
  %1224 = getelementptr inbounds [200 x i32], ptr %54, i64 0, i64 %1223
  %1225 = load i32, ptr %1224, align 4, !tbaa !9
  %1226 = sitofp i32 %1225 to double
  %1227 = load double, ptr %49, align 8, !tbaa !11
  %1228 = fmul double %1226, %1227
  %1229 = load ptr, ptr %50, align 8, !tbaa !5
  %1230 = getelementptr inbounds double, ptr %1229, i32 1
  store ptr %1230, ptr %50, align 8, !tbaa !5
  store double %1228, ptr %1229, align 8, !tbaa !11
  br label %1231

1231:                                             ; preds = %1221, %1208
  br label %1232

1232:                                             ; preds = %1231, %1191
  br label %1233

1233:                                             ; preds = %1232
  %1234 = load i32, ptr %10, align 4, !tbaa !9
  %1235 = add nsw i32 %1234, 1
  store i32 %1235, ptr %10, align 4, !tbaa !9
  br label %1184, !llvm.loop !46

1236:                                             ; preds = %1184
  %1237 = load i32, ptr %26, align 4, !tbaa !9
  %1238 = getelementptr inbounds [200 x double], ptr %45, i64 0, i64 0
  %1239 = load i32, ptr %20, align 4, !tbaa !9
  call void @qh_outcoord(i32 noundef %1237, ptr noundef %1238, i32 noundef %1239)
  %1240 = load i32, ptr %12, align 4, !tbaa !9
  %1241 = add nsw i32 %1240, 1
  store i32 %1241, ptr %12, align 4, !tbaa !9
  %1242 = load i32, ptr %13, align 4, !tbaa !9
  %1243 = icmp slt i32 %1240, %1242
  br i1 %1243, label %1244, label %1250

1244:                                             ; preds = %1236
  %1245 = load i32, ptr %14, align 4, !tbaa !9
  %1246 = load double, ptr %44, align 8, !tbaa !11
  %1247 = load i32, ptr %26, align 4, !tbaa !9
  %1248 = getelementptr inbounds [200 x double], ptr %45, i64 0, i64 0
  %1249 = load i32, ptr %20, align 4, !tbaa !9
  call void @qh_outcoincident(i32 noundef %1245, double noundef %1246, i32 noundef %1247, ptr noundef %1248, i32 noundef %1249)
  br label %1250

1250:                                             ; preds = %1244, %1236
  store i32 0, ptr %10, align 4, !tbaa !9
  br label %1251

1251:                                             ; preds = %1268, %1250
  %1252 = load i32, ptr %10, align 4, !tbaa !9
  %1253 = load i32, ptr %20, align 4, !tbaa !9
  %1254 = icmp slt i32 %1252, %1253
  br i1 %1254, label %1255, label %1271

1255:                                             ; preds = %1251
  %1256 = load i32, ptr %10, align 4, !tbaa !9
  %1257 = sext i32 %1256 to i64
  %1258 = getelementptr inbounds [200 x i32], ptr %54, i64 0, i64 %1257
  %1259 = load i32, ptr %1258, align 4, !tbaa !9
  %1260 = add nsw i32 %1259, 1
  store i32 %1260, ptr %1258, align 4, !tbaa !9
  %1261 = load i32, ptr %53, align 4, !tbaa !9
  %1262 = icmp slt i32 %1260, %1261
  br i1 %1262, label %1263, label %1264

1263:                                             ; preds = %1255
  br label %1271

1264:                                             ; preds = %1255
  %1265 = load i32, ptr %10, align 4, !tbaa !9
  %1266 = sext i32 %1265 to i64
  %1267 = getelementptr inbounds [200 x i32], ptr %54, i64 0, i64 %1266
  store i32 0, ptr %1267, align 4, !tbaa !9
  br label %1268

1268:                                             ; preds = %1264
  %1269 = load i32, ptr %10, align 4, !tbaa !9
  %1270 = add nsw i32 %1269, 1
  store i32 %1270, ptr %10, align 4, !tbaa !9
  br label %1251, !llvm.loop !47

1271:                                             ; preds = %1263, %1251
  br label %1272

1272:                                             ; preds = %1271
  %1273 = load i32, ptr %8, align 4, !tbaa !9
  %1274 = add nsw i32 %1273, 1
  store i32 %1274, ptr %8, align 4, !tbaa !9
  br label %1178, !llvm.loop !48

1275:                                             ; preds = %1178
  br label %2109

1276:                                             ; preds = %1156
  %1277 = load i32, ptr %28, align 4, !tbaa !9
  %1278 = icmp ne i32 %1277, 0
  br i1 %1278, label %1279, label %1416

1279:                                             ; preds = %1276
  %1280 = load i32, ptr %27, align 4, !tbaa !9
  %1281 = icmp ne i32 %1280, 0
  br i1 %1281, label %1416, label %1282

1282:                                             ; preds = %1279
  %1283 = load i32, ptr %20, align 4, !tbaa !9
  %1284 = icmp ne i32 %1283, 2
  br i1 %1284, label %1285, label %1291

1285:                                             ; preds = %1282
  %1286 = load i32, ptr %20, align 4, !tbaa !9
  %1287 = icmp ne i32 %1286, 3
  br i1 %1287, label %1288, label %1291

1288:                                             ; preds = %1285
  %1289 = load ptr, ptr %51, align 8, !tbaa !5
  call void @qh_free(ptr noundef %1289)
  %1290 = load ptr, ptr getelementptr inbounds (%struct.rboxT, ptr @rbox, i32 0, i32 1), align 8, !tbaa !13
  call void (ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %1290, i32 noundef 6197, ptr noundef @.str.25)
  call void @qh_errexit_rbox(i32 noundef 1)
  br label %1291

1291:                                             ; preds = %1288, %1285, %1282
  %1292 = load i32, ptr %25, align 4, !tbaa !9
  %1293 = icmp ne i32 %1292, 0
  br i1 %1293, label %1294, label %1297

1294:                                             ; preds = %1291
  %1295 = load double, ptr %43, align 8, !tbaa !11
  %1296 = fcmp oeq double %1295, 0.000000e+00
  br i1 %1296, label %1297, label %1298

1297:                                             ; preds = %1294, %1291
  store i32 1, ptr %25, align 4, !tbaa !9
  store double 1.000000e+00, ptr %43, align 8, !tbaa !11
  br label %1298

1298:                                             ; preds = %1297, %1294
  %1299 = load i32, ptr %20, align 4, !tbaa !9
  %1300 = icmp eq i32 %1299, 3
  br i1 %1300, label %1301, label %1317

1301:                                             ; preds = %1298
  %1302 = load i32, ptr %26, align 4, !tbaa !9
  %1303 = icmp ne i32 %1302, 0
  br i1 %1303, label %1304, label %1305

1304:                                             ; preds = %1301
  call void @qh_out1(double noundef 1.000000e+00)
  br label %1305

1305:                                             ; preds = %1304, %1301
  %1306 = load double, ptr %67, align 8, !tbaa !11
  %1307 = fneg double %1306
  call void @qh_out3n(double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef %1307)
  %1308 = load i32, ptr %31, align 4, !tbaa !9
  %1309 = icmp ne i32 %1308, 0
  br i1 %1309, label %1316, label %1310

1310:                                             ; preds = %1305
  %1311 = load i32, ptr %26, align 4, !tbaa !9
  %1312 = icmp ne i32 %1311, 0
  br i1 %1312, label %1313, label %1314

1313:                                             ; preds = %1310
  call void @qh_out1(double noundef 1.000000e+00)
  br label %1314

1314:                                             ; preds = %1313, %1310
  %1315 = load double, ptr %67, align 8, !tbaa !11
  call void @qh_out3n(double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef %1315)
  br label %1316

1316:                                             ; preds = %1314, %1305
  br label %1317

1317:                                             ; preds = %1316, %1298
  store double 0.000000e+00, ptr %62, align 8, !tbaa !11
  %1318 = load i32, ptr %21, align 4, !tbaa !9
  %1319 = sitofp i32 %1318 to double
  %1320 = fdiv double 0x401921FB54442D18, %1319
  store double %1320, ptr %61, align 8, !tbaa !11
  store i32 0, ptr %8, align 4, !tbaa !9
  br label %1321

1321:                                             ; preds = %1412, %1317
  %1322 = load i32, ptr %8, align 4, !tbaa !9
  %1323 = load i32, ptr %21, align 4, !tbaa !9
  %1324 = icmp slt i32 %1322, %1323
  br i1 %1324, label %1325, label %1415

1325:                                             ; preds = %1321
  %1326 = load double, ptr %61, align 8, !tbaa !11
  %1327 = load double, ptr %62, align 8, !tbaa !11
  %1328 = fadd double %1327, %1326
  store double %1328, ptr %62, align 8, !tbaa !11
  %1329 = load double, ptr %43, align 8, !tbaa !11
  %1330 = load double, ptr %62, align 8, !tbaa !11
  %1331 = call double @cos(double noundef %1330) #8
  %1332 = fmul double %1329, %1331
  store double %1332, ptr %63, align 8, !tbaa !11
  %1333 = load double, ptr %43, align 8, !tbaa !11
  %1334 = load double, ptr %62, align 8, !tbaa !11
  %1335 = call double @sin(double noundef %1334) #8
  %1336 = fmul double %1333, %1335
  store double %1336, ptr %64, align 8, !tbaa !11
  %1337 = load i32, ptr %20, align 4, !tbaa !9
  %1338 = icmp eq i32 %1337, 2
  br i1 %1338, label %1339, label %1350

1339:                                             ; preds = %1325
  %1340 = load i32, ptr %26, align 4, !tbaa !9
  %1341 = icmp ne i32 %1340, 0
  br i1 %1341, label %1342, label %1343

1342:                                             ; preds = %1339
  call void @qh_out1(double noundef 1.000000e+00)
  br label %1343

1343:                                             ; preds = %1342, %1339
  %1344 = load double, ptr %63, align 8, !tbaa !11
  %1345 = load double, ptr %67, align 8, !tbaa !11
  %1346 = fmul double %1344, %1345
  %1347 = load double, ptr %64, align 8, !tbaa !11
  %1348 = load double, ptr %67, align 8, !tbaa !11
  %1349 = fmul double %1347, %1348
  call void @qh_out2n(double noundef %1346, double noundef %1349)
  br label %1411

1350:                                             ; preds = %1325
  %1351 = load double, ptr %63, align 8, !tbaa !11
  %1352 = load double, ptr %63, align 8, !tbaa !11
  %1353 = call double @llvm.fmuladd.f64(double %1351, double %1352, double 1.000000e+00)
  %1354 = load double, ptr %64, align 8, !tbaa !11
  %1355 = load double, ptr %64, align 8, !tbaa !11
  %1356 = call double @llvm.fmuladd.f64(double %1354, double %1355, double %1353)
  %1357 = call double @sqrt(double noundef %1356) #8
  store double %1357, ptr %55, align 8, !tbaa !11
  %1358 = load i32, ptr %26, align 4, !tbaa !9
  %1359 = icmp ne i32 %1358, 0
  br i1 %1359, label %1360, label %1361

1360:                                             ; preds = %1350
  call void @qh_out1(double noundef 1.000000e+00)
  br label %1361

1361:                                             ; preds = %1360, %1350
  %1362 = load double, ptr %67, align 8, !tbaa !11
  %1363 = load double, ptr %63, align 8, !tbaa !11
  %1364 = fmul double %1362, %1363
  %1365 = load double, ptr %55, align 8, !tbaa !11
  %1366 = fdiv double %1364, %1365
  %1367 = load double, ptr %67, align 8, !tbaa !11
  %1368 = load double, ptr %64, align 8, !tbaa !11
  %1369 = fmul double %1367, %1368
  %1370 = load double, ptr %55, align 8, !tbaa !11
  %1371 = fdiv double %1369, %1370
  %1372 = load double, ptr %67, align 8, !tbaa !11
  %1373 = load double, ptr %55, align 8, !tbaa !11
  %1374 = fdiv double %1372, %1373
  call void @qh_out3n(double noundef %1366, double noundef %1371, double noundef %1374)
  %1375 = load i32, ptr %31, align 4, !tbaa !9
  %1376 = icmp ne i32 %1375, 0
  br i1 %1376, label %1377, label %1410

1377:                                             ; preds = %1361
  %1378 = load double, ptr %42, align 8, !tbaa !11
  %1379 = fsub double 1.000000e+00, %1378
  %1380 = load double, ptr %63, align 8, !tbaa !11
  %1381 = fmul double %1380, %1379
  store double %1381, ptr %63, align 8, !tbaa !11
  %1382 = load double, ptr %42, align 8, !tbaa !11
  %1383 = fsub double 1.000000e+00, %1382
  %1384 = load double, ptr %64, align 8, !tbaa !11
  %1385 = fmul double %1384, %1383
  store double %1385, ptr %64, align 8, !tbaa !11
  %1386 = load double, ptr %63, align 8, !tbaa !11
  %1387 = load double, ptr %63, align 8, !tbaa !11
  %1388 = call double @llvm.fmuladd.f64(double %1386, double %1387, double 1.000000e+00)
  %1389 = load double, ptr %64, align 8, !tbaa !11
  %1390 = load double, ptr %64, align 8, !tbaa !11
  %1391 = call double @llvm.fmuladd.f64(double %1389, double %1390, double %1388)
  %1392 = call double @sqrt(double noundef %1391) #8
  store double %1392, ptr %55, align 8, !tbaa !11
  %1393 = load i32, ptr %26, align 4, !tbaa !9
  %1394 = icmp ne i32 %1393, 0
  br i1 %1394, label %1395, label %1396

1395:                                             ; preds = %1377
  call void @qh_out1(double noundef 1.000000e+00)
  br label %1396

1396:                                             ; preds = %1395, %1377
  %1397 = load double, ptr %67, align 8, !tbaa !11
  %1398 = load double, ptr %63, align 8, !tbaa !11
  %1399 = fmul double %1397, %1398
  %1400 = load double, ptr %55, align 8, !tbaa !11
  %1401 = fdiv double %1399, %1400
  %1402 = load double, ptr %67, align 8, !tbaa !11
  %1403 = load double, ptr %64, align 8, !tbaa !11
  %1404 = fmul double %1402, %1403
  %1405 = load double, ptr %55, align 8, !tbaa !11
  %1406 = fdiv double %1404, %1405
  %1407 = load double, ptr %67, align 8, !tbaa !11
  %1408 = load double, ptr %55, align 8, !tbaa !11
  %1409 = fdiv double %1407, %1408
  call void @qh_out3n(double noundef %1401, double noundef %1406, double noundef %1409)
  br label %1410

1410:                                             ; preds = %1396, %1361
  br label %1411

1411:                                             ; preds = %1410, %1343
  br label %1412

1412:                                             ; preds = %1411
  %1413 = load i32, ptr %8, align 4, !tbaa !9
  %1414 = add nsw i32 %1413, 1
  store i32 %1414, ptr %8, align 4, !tbaa !9
  br label %1321, !llvm.loop !49

1415:                                             ; preds = %1321
  br label %2108

1416:                                             ; preds = %1279, %1276
  %1417 = load i32, ptr %28, align 4, !tbaa !9
  %1418 = icmp ne i32 %1417, 0
  br i1 %1418, label %1419, label %1487

1419:                                             ; preds = %1416
  %1420 = load i32, ptr %27, align 4, !tbaa !9
  %1421 = icmp ne i32 %1420, 0
  br i1 %1421, label %1422, label %1487

1422:                                             ; preds = %1419
  %1423 = load i32, ptr %20, align 4, !tbaa !9
  %1424 = icmp eq i32 %1423, 2
  br i1 %1424, label %1425, label %1487

1425:                                             ; preds = %1422
  call void @llvm.lifetime.start.p0(i64 8, ptr %77) #8
  %1426 = load double, ptr %59, align 8, !tbaa !11
  store double %1426, ptr %62, align 8, !tbaa !11
  %1427 = load double, ptr %59, align 8, !tbaa !11
  %1428 = fmul double 2.000000e+00, %1427
  %1429 = load i32, ptr %21, align 4, !tbaa !9
  %1430 = sub nsw i32 %1429, 1
  %1431 = sitofp i32 %1430 to double
  %1432 = fdiv double %1428, %1431
  store double %1432, ptr %61, align 8, !tbaa !11
  %1433 = load double, ptr %59, align 8, !tbaa !11
  %1434 = call double @cos(double noundef %1433) #8
  store double %1434, ptr %77, align 8, !tbaa !11
  store i32 0, ptr %8, align 4, !tbaa !9
  br label %1435

1435:                                             ; preds = %1480, %1425
  %1436 = load i32, ptr %8, align 4, !tbaa !9
  %1437 = load i32, ptr %21, align 4, !tbaa !9
  %1438 = icmp slt i32 %1436, %1437
  br i1 %1438, label %1439, label %1486

1439:                                             ; preds = %1435
  %1440 = load double, ptr %43, align 8, !tbaa !11
  %1441 = load double, ptr %62, align 8, !tbaa !11
  %1442 = call double @sin(double noundef %1441) #8
  %1443 = fmul double %1440, %1442
  store double %1443, ptr %63, align 8, !tbaa !11
  %1444 = load double, ptr %43, align 8, !tbaa !11
  %1445 = load double, ptr %62, align 8, !tbaa !11
  %1446 = call double @cos(double noundef %1445) #8
  %1447 = load double, ptr %77, align 8, !tbaa !11
  %1448 = fsub double %1446, %1447
  %1449 = fmul double %1444, %1448
  store double %1449, ptr %64, align 8, !tbaa !11
  %1450 = load i32, ptr %26, align 4, !tbaa !9
  %1451 = icmp ne i32 %1450, 0
  br i1 %1451, label %1452, label %1453

1452:                                             ; preds = %1439
  call void @qh_out1(double noundef 1.000000e+00)
  br label %1453

1453:                                             ; preds = %1452, %1439
  %1454 = load double, ptr %63, align 8, !tbaa !11
  %1455 = load double, ptr %67, align 8, !tbaa !11
  %1456 = fmul double %1454, %1455
  %1457 = load double, ptr %64, align 8, !tbaa !11
  %1458 = load double, ptr %67, align 8, !tbaa !11
  %1459 = fmul double %1457, %1458
  call void @qh_out2n(double noundef %1456, double noundef %1459)
  %1460 = load i32, ptr %8, align 4, !tbaa !9
  %1461 = icmp ne i32 %1460, 0
  br i1 %1461, label %1462, label %1479

1462:                                             ; preds = %1453
  %1463 = load i32, ptr %8, align 4, !tbaa !9
  %1464 = load i32, ptr %21, align 4, !tbaa !9
  %1465 = sub nsw i32 %1464, 1
  %1466 = icmp ne i32 %1463, %1465
  br i1 %1466, label %1467, label %1479

1467:                                             ; preds = %1462
  %1468 = load i32, ptr %26, align 4, !tbaa !9
  %1469 = icmp ne i32 %1468, 0
  br i1 %1469, label %1470, label %1471

1470:                                             ; preds = %1467
  call void @qh_out1(double noundef 1.000000e+00)
  br label %1471

1471:                                             ; preds = %1470, %1467
  %1472 = load double, ptr %63, align 8, !tbaa !11
  %1473 = load double, ptr %67, align 8, !tbaa !11
  %1474 = fmul double %1472, %1473
  %1475 = load double, ptr %64, align 8, !tbaa !11
  %1476 = fneg double %1475
  %1477 = load double, ptr %67, align 8, !tbaa !11
  %1478 = fmul double %1476, %1477
  call void @qh_out2n(double noundef %1474, double noundef %1478)
  br label %1479

1479:                                             ; preds = %1471, %1462, %1453
  br label %1480

1480:                                             ; preds = %1479
  %1481 = load i32, ptr %8, align 4, !tbaa !9
  %1482 = add nsw i32 %1481, 1
  store i32 %1482, ptr %8, align 4, !tbaa !9
  %1483 = load double, ptr %61, align 8, !tbaa !11
  %1484 = load double, ptr %62, align 8, !tbaa !11
  %1485 = fsub double %1484, %1483
  store double %1485, ptr %62, align 8, !tbaa !11
  br label %1435, !llvm.loop !50

1486:                                             ; preds = %1435
  call void @llvm.lifetime.end.p0(i64 8, ptr %77) #8
  br label %2107

1487:                                             ; preds = %1422, %1419, %1416
  %1488 = load i32, ptr %28, align 4, !tbaa !9
  %1489 = icmp ne i32 %1488, 0
  br i1 %1489, label %1490, label %1583

1490:                                             ; preds = %1487
  %1491 = load i32, ptr %27, align 4, !tbaa !9
  %1492 = icmp ne i32 %1491, 0
  br i1 %1492, label %1493, label %1583

1493:                                             ; preds = %1490
  %1494 = load i32, ptr %20, align 4, !tbaa !9
  %1495 = icmp ne i32 %1494, 2
  br i1 %1495, label %1496, label %1583

1496:                                             ; preds = %1493
  %1497 = load i32, ptr %20, align 4, !tbaa !9
  %1498 = icmp ne i32 %1497, 3
  br i1 %1498, label %1499, label %1502

1499:                                             ; preds = %1496
  %1500 = load ptr, ptr %51, align 8, !tbaa !5
  call void @qh_free(ptr noundef %1500)
  %1501 = load ptr, ptr getelementptr inbounds (%struct.rboxT, ptr @rbox, i32 0, i32 1), align 8, !tbaa !13
  call void (ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %1501, i32 noundef 6198, ptr noundef @.str.25)
  call void @qh_errexit_rbox(i32 noundef 1)
  br label %1502

1502:                                             ; preds = %1499, %1496
  store double 0.000000e+00, ptr %62, align 8, !tbaa !11
  %1503 = load i32, ptr %21, align 4, !tbaa !9
  %1504 = sitofp i32 %1503 to double
  %1505 = fdiv double 0x401921FB54442D18, %1504
  store double %1505, ptr %61, align 8, !tbaa !11
  %1506 = load i32, ptr %31, align 4, !tbaa !9
  %1507 = icmp ne i32 %1506, 0
  br i1 %1507, label %1509, label %1508

1508:                                             ; preds = %1502
  store i32 1, ptr %31, align 4, !tbaa !9
  store double 5.000000e-01, ptr %42, align 8, !tbaa !11
  br label %1509

1509:                                             ; preds = %1508, %1502
  %1510 = load double, ptr %43, align 8, !tbaa !11
  %1511 = load double, ptr %43, align 8, !tbaa !11
  %1512 = load double, ptr %42, align 8, !tbaa !11
  %1513 = fsub double 1.000000e+00, %1512
  %1514 = load double, ptr %42, align 8, !tbaa !11
  %1515 = fsub double 1.000000e+00, %1514
  %1516 = fmul double %1513, %1515
  %1517 = fneg double %1516
  %1518 = call double @llvm.fmuladd.f64(double %1510, double %1511, double %1517)
  %1519 = call double @sqrt(double noundef %1518) #8
  %1520 = load double, ptr %60, align 8, !tbaa !11
  %1521 = fsub double %1519, %1520
  store double %1521, ptr %46, align 8, !tbaa !11
  store i32 0, ptr %8, align 4, !tbaa !9
  br label %1522

1522:                                             ; preds = %1576, %1509
  %1523 = load i32, ptr %8, align 4, !tbaa !9
  %1524 = load i32, ptr %21, align 4, !tbaa !9
  %1525 = icmp slt i32 %1523, %1524
  br i1 %1525, label %1526, label %1582

1526:                                             ; preds = %1522
  %1527 = load double, ptr %62, align 8, !tbaa !11
  %1528 = call double @cos(double noundef %1527) #8
  store double %1528, ptr %63, align 8, !tbaa !11
  %1529 = load double, ptr %62, align 8, !tbaa !11
  %1530 = call double @sin(double noundef %1529) #8
  store double %1530, ptr %64, align 8, !tbaa !11
  %1531 = load i32, ptr %26, align 4, !tbaa !9
  %1532 = icmp ne i32 %1531, 0
  br i1 %1532, label %1533, label %1534

1533:                                             ; preds = %1526
  call void @qh_out1(double noundef 1.000000e+00)
  br label %1534

1534:                                             ; preds = %1533, %1526
  %1535 = load double, ptr %67, align 8, !tbaa !11
  %1536 = load double, ptr %63, align 8, !tbaa !11
  %1537 = fmul double %1535, %1536
  %1538 = load double, ptr %67, align 8, !tbaa !11
  %1539 = load double, ptr %64, align 8, !tbaa !11
  %1540 = fmul double %1538, %1539
  call void @qh_out3n(double noundef %1537, double noundef %1540, double noundef 0.000000e+00)
  %1541 = load double, ptr %42, align 8, !tbaa !11
  %1542 = fsub double 1.000000e+00, %1541
  %1543 = load double, ptr %63, align 8, !tbaa !11
  %1544 = fmul double %1543, %1542
  store double %1544, ptr %63, align 8, !tbaa !11
  %1545 = load double, ptr %42, align 8, !tbaa !11
  %1546 = fsub double 1.000000e+00, %1545
  %1547 = load double, ptr %64, align 8, !tbaa !11
  %1548 = fmul double %1547, %1546
  store double %1548, ptr %64, align 8, !tbaa !11
  %1549 = load i32, ptr %26, align 4, !tbaa !9
  %1550 = icmp ne i32 %1549, 0
  br i1 %1550, label %1551, label %1552

1551:                                             ; preds = %1534
  call void @qh_out1(double noundef 1.000000e+00)
  br label %1552

1552:                                             ; preds = %1551, %1534
  %1553 = load double, ptr %67, align 8, !tbaa !11
  %1554 = load double, ptr %63, align 8, !tbaa !11
  %1555 = fmul double %1553, %1554
  %1556 = load double, ptr %67, align 8, !tbaa !11
  %1557 = load double, ptr %64, align 8, !tbaa !11
  %1558 = fmul double %1556, %1557
  %1559 = load double, ptr %67, align 8, !tbaa !11
  %1560 = load double, ptr %46, align 8, !tbaa !11
  %1561 = fmul double %1559, %1560
  call void @qh_out3n(double noundef %1555, double noundef %1558, double noundef %1561)
  %1562 = load i32, ptr %26, align 4, !tbaa !9
  %1563 = icmp ne i32 %1562, 0
  br i1 %1563, label %1564, label %1565

1564:                                             ; preds = %1552
  call void @qh_out1(double noundef 1.000000e+00)
  br label %1565

1565:                                             ; preds = %1564, %1552
  %1566 = load double, ptr %67, align 8, !tbaa !11
  %1567 = load double, ptr %63, align 8, !tbaa !11
  %1568 = fmul double %1566, %1567
  %1569 = load double, ptr %67, align 8, !tbaa !11
  %1570 = load double, ptr %64, align 8, !tbaa !11
  %1571 = fmul double %1569, %1570
  %1572 = load double, ptr %67, align 8, !tbaa !11
  %1573 = fneg double %1572
  %1574 = load double, ptr %46, align 8, !tbaa !11
  %1575 = fmul double %1573, %1574
  call void @qh_out3n(double noundef %1568, double noundef %1571, double noundef %1575)
  br label %1576

1576:                                             ; preds = %1565
  %1577 = load i32, ptr %8, align 4, !tbaa !9
  %1578 = add nsw i32 %1577, 1
  store i32 %1578, ptr %8, align 4, !tbaa !9
  %1579 = load double, ptr %61, align 8, !tbaa !11
  %1580 = load double, ptr %62, align 8, !tbaa !11
  %1581 = fadd double %1580, %1579
  store double %1581, ptr %62, align 8, !tbaa !11
  br label %1522, !llvm.loop !51

1582:                                             ; preds = %1522
  br label %2106

1583:                                             ; preds = %1493, %1490, %1487
  %1584 = load i32, ptr %25, align 4, !tbaa !9
  %1585 = icmp ne i32 %1584, 0
  br i1 %1585, label %1586, label %1605

1586:                                             ; preds = %1583
  %1587 = load i32, ptr %20, align 4, !tbaa !9
  %1588 = sub nsw i32 %1587, 1
  store i32 %1588, ptr %11, align 4, !tbaa !9
  %1589 = load i32, ptr %26, align 4, !tbaa !9
  %1590 = icmp ne i32 %1589, 0
  br i1 %1590, label %1591, label %1592

1591:                                             ; preds = %1586
  call void @qh_out1(double noundef 1.000000e+00)
  br label %1592

1592:                                             ; preds = %1591, %1586
  store i32 0, ptr %9, align 4, !tbaa !9
  br label %1593

1593:                                             ; preds = %1598, %1592
  %1594 = load i32, ptr %9, align 4, !tbaa !9
  %1595 = load i32, ptr %11, align 4, !tbaa !9
  %1596 = icmp slt i32 %1594, %1595
  br i1 %1596, label %1597, label %1601

1597:                                             ; preds = %1593
  call void @qh_out1(double noundef 0.000000e+00)
  br label %1598

1598:                                             ; preds = %1597
  %1599 = load i32, ptr %9, align 4, !tbaa !9
  %1600 = add nsw i32 %1599, 1
  store i32 %1600, ptr %9, align 4, !tbaa !9
  br label %1593, !llvm.loop !52

1601:                                             ; preds = %1593
  %1602 = load double, ptr %67, align 8, !tbaa !11
  %1603 = fneg double %1602
  call void @qh_out1(double noundef %1603)
  %1604 = load ptr, ptr @rbox, align 8, !tbaa !15
  call void (ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %1604, i32 noundef 9398, ptr noundef @.str.23)
  br label %1614

1605:                                             ; preds = %1583
  %1606 = load i32, ptr %27, align 4, !tbaa !9
  %1607 = icmp ne i32 %1606, 0
  br i1 %1607, label %1608, label %1611

1608:                                             ; preds = %1605
  %1609 = load i32, ptr %20, align 4, !tbaa !9
  %1610 = sub nsw i32 %1609, 1
  store i32 %1610, ptr %11, align 4, !tbaa !9
  br label %1613

1611:                                             ; preds = %1605
  %1612 = load i32, ptr %20, align 4, !tbaa !9
  store i32 %1612, ptr %11, align 4, !tbaa !9
  br label %1613

1613:                                             ; preds = %1611, %1608
  br label %1614

1614:                                             ; preds = %1613, %1601
  store i32 0, ptr %8, align 4, !tbaa !9
  br label %1615

1615:                                             ; preds = %2102, %1614
  %1616 = load i32, ptr %8, align 4, !tbaa !9
  %1617 = load i32, ptr %21, align 4, !tbaa !9
  %1618 = icmp slt i32 %1616, %1617
  br i1 %1618, label %1619, label %2105

1619:                                             ; preds = %1615
  store double 0.000000e+00, ptr %55, align 8, !tbaa !11
  store i32 0, ptr %9, align 4, !tbaa !9
  br label %1620

1620:                                             ; preds = %1645, %1619
  %1621 = load i32, ptr %9, align 4, !tbaa !9
  %1622 = load i32, ptr %11, align 4, !tbaa !9
  %1623 = icmp slt i32 %1621, %1622
  br i1 %1623, label %1624, label %1648

1624:                                             ; preds = %1620
  %1625 = call i32 @qh_rand()
  %1626 = sitofp i32 %1625 to double
  store double %1626, ptr %57, align 8, !tbaa !11
  %1627 = load double, ptr %57, align 8, !tbaa !11
  %1628 = fmul double 2.000000e+00, %1627
  %1629 = load double, ptr %68, align 8, !tbaa !11
  %1630 = fdiv double %1628, %1629
  %1631 = fsub double %1630, 1.000000e+00
  %1632 = load i32, ptr %9, align 4, !tbaa !9
  %1633 = sext i32 %1632 to i64
  %1634 = getelementptr inbounds [200 x double], ptr %45, i64 0, i64 %1633
  store double %1631, ptr %1634, align 8, !tbaa !11
  %1635 = load i32, ptr %9, align 4, !tbaa !9
  %1636 = sext i32 %1635 to i64
  %1637 = getelementptr inbounds [200 x double], ptr %45, i64 0, i64 %1636
  %1638 = load double, ptr %1637, align 8, !tbaa !11
  %1639 = load i32, ptr %9, align 4, !tbaa !9
  %1640 = sext i32 %1639 to i64
  %1641 = getelementptr inbounds [200 x double], ptr %45, i64 0, i64 %1640
  %1642 = load double, ptr %1641, align 8, !tbaa !11
  %1643 = load double, ptr %55, align 8, !tbaa !11
  %1644 = call double @llvm.fmuladd.f64(double %1638, double %1642, double %1643)
  store double %1644, ptr %55, align 8, !tbaa !11
  br label %1645

1645:                                             ; preds = %1624
  %1646 = load i32, ptr %9, align 4, !tbaa !9
  %1647 = add nsw i32 %1646, 1
  store i32 %1647, ptr %9, align 4, !tbaa !9
  br label %1620, !llvm.loop !53

1648:                                             ; preds = %1620
  %1649 = load double, ptr %55, align 8, !tbaa !11
  %1650 = call double @sqrt(double noundef %1649) #8
  store double %1650, ptr %55, align 8, !tbaa !11
  %1651 = load i32, ptr %25, align 4, !tbaa !9
  %1652 = icmp ne i32 %1651, 0
  br i1 %1652, label %1653, label %1689

1653:                                             ; preds = %1648
  %1654 = load i32, ptr %31, align 4, !tbaa !9
  %1655 = icmp ne i32 %1654, 0
  br i1 %1655, label %1657, label %1656

1656:                                             ; preds = %1653
  store i32 1, ptr %31, align 4, !tbaa !9
  store double 1.000000e+00, ptr %42, align 8, !tbaa !11
  br label %1657

1657:                                             ; preds = %1656, %1653
  %1658 = call i32 @qh_rand()
  %1659 = sitofp i32 %1658 to double
  store double %1659, ptr %57, align 8, !tbaa !11
  %1660 = load double, ptr %42, align 8, !tbaa !11
  %1661 = load double, ptr %57, align 8, !tbaa !11
  %1662 = fmul double %1660, %1661
  %1663 = load double, ptr %68, align 8, !tbaa !11
  %1664 = fdiv double %1662, %1663
  %1665 = fsub double 1.000000e+00, %1664
  store double %1665, ptr %58, align 8, !tbaa !11
  %1666 = load double, ptr %43, align 8, !tbaa !11
  %1667 = load double, ptr %58, align 8, !tbaa !11
  %1668 = fmul double %1666, %1667
  %1669 = load double, ptr %55, align 8, !tbaa !11
  %1670 = fdiv double %1668, %1669
  store double %1670, ptr %56, align 8, !tbaa !11
  store i32 0, ptr %9, align 4, !tbaa !9
  br label %1671

1671:                                             ; preds = %1685, %1657
  %1672 = load i32, ptr %9, align 4, !tbaa !9
  %1673 = load i32, ptr %11, align 4, !tbaa !9
  %1674 = icmp slt i32 %1672, %1673
  br i1 %1674, label %1675, label %1688

1675:                                             ; preds = %1671
  %1676 = load double, ptr %56, align 8, !tbaa !11
  %1677 = load i32, ptr %9, align 4, !tbaa !9
  %1678 = sext i32 %1677 to i64
  %1679 = getelementptr inbounds [200 x double], ptr %45, i64 0, i64 %1678
  %1680 = load double, ptr %1679, align 8, !tbaa !11
  %1681 = fmul double %1676, %1680
  %1682 = load i32, ptr %9, align 4, !tbaa !9
  %1683 = sext i32 %1682 to i64
  %1684 = getelementptr inbounds [200 x double], ptr %45, i64 0, i64 %1683
  store double %1681, ptr %1684, align 8, !tbaa !11
  br label %1685

1685:                                             ; preds = %1675
  %1686 = load i32, ptr %9, align 4, !tbaa !9
  %1687 = add nsw i32 %1686, 1
  store i32 %1687, ptr %9, align 4, !tbaa !9
  br label %1671, !llvm.loop !54

1688:                                             ; preds = %1671
  br label %1850

1689:                                             ; preds = %1648
  %1690 = load i32, ptr %27, align 4, !tbaa !9
  %1691 = icmp ne i32 %1690, 0
  br i1 %1691, label %1692, label %1729

1692:                                             ; preds = %1689
  %1693 = load i32, ptr %24, align 4, !tbaa !9
  %1694 = icmp ne i32 %1693, 0
  br i1 %1694, label %1695, label %1729

1695:                                             ; preds = %1692
  %1696 = load i32, ptr %31, align 4, !tbaa !9
  %1697 = icmp ne i32 %1696, 0
  br i1 %1697, label %1699, label %1698

1698:                                             ; preds = %1695
  store i32 1, ptr %31, align 4, !tbaa !9
  store double 1.000000e+00, ptr %42, align 8, !tbaa !11
  br label %1699

1699:                                             ; preds = %1698, %1695
  %1700 = call i32 @qh_rand()
  %1701 = sitofp i32 %1700 to double
  store double %1701, ptr %57, align 8, !tbaa !11
  %1702 = load double, ptr %42, align 8, !tbaa !11
  %1703 = load double, ptr %57, align 8, !tbaa !11
  %1704 = fmul double %1702, %1703
  %1705 = load double, ptr %68, align 8, !tbaa !11
  %1706 = fdiv double %1704, %1705
  %1707 = fsub double 1.000000e+00, %1706
  store double %1707, ptr %58, align 8, !tbaa !11
  %1708 = load double, ptr %58, align 8, !tbaa !11
  %1709 = load double, ptr %55, align 8, !tbaa !11
  %1710 = fdiv double %1708, %1709
  store double %1710, ptr %56, align 8, !tbaa !11
  store i32 0, ptr %9, align 4, !tbaa !9
  br label %1711

1711:                                             ; preds = %1725, %1699
  %1712 = load i32, ptr %9, align 4, !tbaa !9
  %1713 = load i32, ptr %11, align 4, !tbaa !9
  %1714 = icmp slt i32 %1712, %1713
  br i1 %1714, label %1715, label %1728

1715:                                             ; preds = %1711
  %1716 = load double, ptr %56, align 8, !tbaa !11
  %1717 = load i32, ptr %9, align 4, !tbaa !9
  %1718 = sext i32 %1717 to i64
  %1719 = getelementptr inbounds [200 x double], ptr %45, i64 0, i64 %1718
  %1720 = load double, ptr %1719, align 8, !tbaa !11
  %1721 = fmul double %1716, %1720
  %1722 = load i32, ptr %9, align 4, !tbaa !9
  %1723 = sext i32 %1722 to i64
  %1724 = getelementptr inbounds [200 x double], ptr %45, i64 0, i64 %1723
  store double %1721, ptr %1724, align 8, !tbaa !11
  br label %1725

1725:                                             ; preds = %1715
  %1726 = load i32, ptr %9, align 4, !tbaa !9
  %1727 = add nsw i32 %1726, 1
  store i32 %1727, ptr %9, align 4, !tbaa !9
  br label %1711, !llvm.loop !55

1728:                                             ; preds = %1711
  br label %1849

1729:                                             ; preds = %1692, %1689
  %1730 = load i32, ptr %27, align 4, !tbaa !9
  %1731 = icmp ne i32 %1730, 0
  br i1 %1731, label %1732, label %1771

1732:                                             ; preds = %1729
  %1733 = load i32, ptr %24, align 4, !tbaa !9
  %1734 = icmp ne i32 %1733, 0
  br i1 %1734, label %1771, label %1735

1735:                                             ; preds = %1732
  %1736 = load i32, ptr %31, align 4, !tbaa !9
  %1737 = icmp ne i32 %1736, 0
  br i1 %1737, label %1739, label %1738

1738:                                             ; preds = %1735
  store i32 1, ptr %31, align 4, !tbaa !9
  store double 1.000000e+00, ptr %42, align 8, !tbaa !11
  br label %1739

1739:                                             ; preds = %1738, %1735
  %1740 = call i32 @qh_rand()
  %1741 = load i32, ptr %11, align 4, !tbaa !9
  %1742 = srem i32 %1740, %1741
  store i32 %1742, ptr %9, align 4, !tbaa !9
  %1743 = load i32, ptr %9, align 4, !tbaa !9
  %1744 = sext i32 %1743 to i64
  %1745 = getelementptr inbounds [200 x double], ptr %45, i64 0, i64 %1744
  %1746 = load double, ptr %1745, align 8, !tbaa !11
  %1747 = fcmp olt double %1746, 0.000000e+00
  br i1 %1747, label %1748, label %1759

1748:                                             ; preds = %1739
  %1749 = load i32, ptr %9, align 4, !tbaa !9
  %1750 = sext i32 %1749 to i64
  %1751 = getelementptr inbounds [200 x double], ptr %45, i64 0, i64 %1750
  %1752 = load double, ptr %1751, align 8, !tbaa !11
  %1753 = load double, ptr %42, align 8, !tbaa !11
  %1754 = fneg double %1752
  %1755 = call double @llvm.fmuladd.f64(double %1754, double %1753, double -1.000000e+00)
  %1756 = load i32, ptr %9, align 4, !tbaa !9
  %1757 = sext i32 %1756 to i64
  %1758 = getelementptr inbounds [200 x double], ptr %45, i64 0, i64 %1757
  store double %1755, ptr %1758, align 8, !tbaa !11
  br label %1770

1759:                                             ; preds = %1739
  %1760 = load i32, ptr %9, align 4, !tbaa !9
  %1761 = sext i32 %1760 to i64
  %1762 = getelementptr inbounds [200 x double], ptr %45, i64 0, i64 %1761
  %1763 = load double, ptr %1762, align 8, !tbaa !11
  %1764 = load double, ptr %42, align 8, !tbaa !11
  %1765 = fneg double %1763
  %1766 = call double @llvm.fmuladd.f64(double %1765, double %1764, double 1.000000e+00)
  %1767 = load i32, ptr %9, align 4, !tbaa !9
  %1768 = sext i32 %1767 to i64
  %1769 = getelementptr inbounds [200 x double], ptr %45, i64 0, i64 %1768
  store double %1766, ptr %1769, align 8, !tbaa !11
  br label %1770

1770:                                             ; preds = %1759, %1748
  br label %1848

1771:                                             ; preds = %1732, %1729
  %1772 = load i32, ptr %32, align 4, !tbaa !9
  %1773 = icmp ne i32 %1772, 0
  br i1 %1773, label %1774, label %1808

1774:                                             ; preds = %1771
  %1775 = load i32, ptr %20, align 4, !tbaa !9
  %1776 = icmp ne i32 %1775, 3
  br i1 %1776, label %1777, label %1780

1777:                                             ; preds = %1774
  %1778 = load ptr, ptr %51, align 8, !tbaa !5
  call void @qh_free(ptr noundef %1778)
  %1779 = load ptr, ptr getelementptr inbounds (%struct.rboxT, ptr @rbox, i32 0, i32 1), align 8, !tbaa !13
  call void (ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %1779, i32 noundef 6199, ptr noundef @.str.26)
  call void @qh_errexit_rbox(i32 noundef 1)
  br label %1780

1780:                                             ; preds = %1777, %1774
  %1781 = load i32, ptr %8, align 4, !tbaa !9
  %1782 = sitofp i32 %1781 to double
  %1783 = fmul double 0x401921FB54442D18, %1782
  %1784 = load i32, ptr %21, align 4, !tbaa !9
  %1785 = sub nsw i32 %1784, 1
  %1786 = sitofp i32 %1785 to double
  %1787 = fdiv double %1783, %1786
  %1788 = call double @cos(double noundef %1787) #8
  %1789 = getelementptr inbounds [200 x double], ptr %45, i64 0, i64 0
  store double %1788, ptr %1789, align 16, !tbaa !11
  %1790 = load i32, ptr %8, align 4, !tbaa !9
  %1791 = sitofp i32 %1790 to double
  %1792 = fmul double 0x401921FB54442D18, %1791
  %1793 = load i32, ptr %21, align 4, !tbaa !9
  %1794 = sub nsw i32 %1793, 1
  %1795 = sitofp i32 %1794 to double
  %1796 = fdiv double %1792, %1795
  %1797 = call double @sin(double noundef %1796) #8
  %1798 = getelementptr inbounds [200 x double], ptr %45, i64 0, i64 1
  store double %1797, ptr %1798, align 8, !tbaa !11
  %1799 = load i32, ptr %8, align 4, !tbaa !9
  %1800 = sitofp i32 %1799 to double
  %1801 = fmul double 2.000000e+00, %1800
  %1802 = load i32, ptr %21, align 4, !tbaa !9
  %1803 = sub nsw i32 %1802, 1
  %1804 = sitofp i32 %1803 to double
  %1805 = fdiv double %1801, %1804
  %1806 = fsub double %1805, 1.000000e+00
  %1807 = getelementptr inbounds [200 x double], ptr %45, i64 0, i64 2
  store double %1806, ptr %1807, align 16, !tbaa !11
  br label %1847

1808:                                             ; preds = %1771
  %1809 = load i32, ptr %24, align 4, !tbaa !9
  %1810 = icmp ne i32 %1809, 0
  br i1 %1810, label %1811, label %1846

1811:                                             ; preds = %1808
  %1812 = load double, ptr %55, align 8, !tbaa !11
  %1813 = fdiv double 1.000000e+00, %1812
  store double %1813, ptr %56, align 8, !tbaa !11
  %1814 = load i32, ptr %29, align 4, !tbaa !9
  %1815 = icmp ne i32 %1814, 0
  br i1 %1815, label %1816, label %1827

1816:                                             ; preds = %1811
  %1817 = call i32 @qh_rand()
  %1818 = sitofp i32 %1817 to double
  store double %1818, ptr %57, align 8, !tbaa !11
  %1819 = load double, ptr %41, align 8, !tbaa !11
  %1820 = load double, ptr %57, align 8, !tbaa !11
  %1821 = fmul double %1819, %1820
  %1822 = load double, ptr %68, align 8, !tbaa !11
  %1823 = fdiv double %1821, %1822
  %1824 = fsub double 1.000000e+00, %1823
  %1825 = load double, ptr %56, align 8, !tbaa !11
  %1826 = fmul double %1825, %1824
  store double %1826, ptr %56, align 8, !tbaa !11
  br label %1827

1827:                                             ; preds = %1816, %1811
  store i32 0, ptr %9, align 4, !tbaa !9
  br label %1828

1828:                                             ; preds = %1842, %1827
  %1829 = load i32, ptr %9, align 4, !tbaa !9
  %1830 = load i32, ptr %20, align 4, !tbaa !9
  %1831 = icmp slt i32 %1829, %1830
  br i1 %1831, label %1832, label %1845

1832:                                             ; preds = %1828
  %1833 = load double, ptr %56, align 8, !tbaa !11
  %1834 = load i32, ptr %9, align 4, !tbaa !9
  %1835 = sext i32 %1834 to i64
  %1836 = getelementptr inbounds [200 x double], ptr %45, i64 0, i64 %1835
  %1837 = load double, ptr %1836, align 8, !tbaa !11
  %1838 = fmul double %1833, %1837
  %1839 = load i32, ptr %9, align 4, !tbaa !9
  %1840 = sext i32 %1839 to i64
  %1841 = getelementptr inbounds [200 x double], ptr %45, i64 0, i64 %1840
  store double %1838, ptr %1841, align 8, !tbaa !11
  br label %1842

1842:                                             ; preds = %1832
  %1843 = load i32, ptr %9, align 4, !tbaa !9
  %1844 = add nsw i32 %1843, 1
  store i32 %1844, ptr %9, align 4, !tbaa !9
  br label %1828, !llvm.loop !56

1845:                                             ; preds = %1828
  br label %1846

1846:                                             ; preds = %1845, %1808
  br label %1847

1847:                                             ; preds = %1846, %1780
  br label %1848

1848:                                             ; preds = %1847, %1770
  br label %1849

1849:                                             ; preds = %1848, %1728
  br label %1850

1850:                                             ; preds = %1849, %1688
  %1851 = load i32, ptr %25, align 4, !tbaa !9
  %1852 = icmp ne i32 %1851, 0
  br i1 %1852, label %1853, label %1918

1853:                                             ; preds = %1850
  %1854 = load i32, ptr %24, align 4, !tbaa !9
  %1855 = icmp ne i32 %1854, 0
  br i1 %1855, label %1856, label %1918

1856:                                             ; preds = %1853
  %1857 = load i32, ptr %20, align 4, !tbaa !9
  %1858 = sub nsw i32 %1857, 1
  %1859 = sext i32 %1858 to i64
  %1860 = getelementptr inbounds [200 x double], ptr %45, i64 0, i64 %1859
  store double 1.000000e+00, ptr %1860, align 8, !tbaa !11
  store double 1.000000e+00, ptr %55, align 8, !tbaa !11
  store i32 0, ptr %9, align 4, !tbaa !9
  br label %1861

1861:                                             ; preds = %1876, %1856
  %1862 = load i32, ptr %9, align 4, !tbaa !9
  %1863 = load i32, ptr %11, align 4, !tbaa !9
  %1864 = icmp slt i32 %1862, %1863
  br i1 %1864, label %1865, label %1879

1865:                                             ; preds = %1861
  %1866 = load i32, ptr %9, align 4, !tbaa !9
  %1867 = sext i32 %1866 to i64
  %1868 = getelementptr inbounds [200 x double], ptr %45, i64 0, i64 %1867
  %1869 = load double, ptr %1868, align 8, !tbaa !11
  %1870 = load i32, ptr %9, align 4, !tbaa !9
  %1871 = sext i32 %1870 to i64
  %1872 = getelementptr inbounds [200 x double], ptr %45, i64 0, i64 %1871
  %1873 = load double, ptr %1872, align 8, !tbaa !11
  %1874 = load double, ptr %55, align 8, !tbaa !11
  %1875 = call double @llvm.fmuladd.f64(double %1869, double %1873, double %1874)
  store double %1875, ptr %55, align 8, !tbaa !11
  br label %1876

1876:                                             ; preds = %1865
  %1877 = load i32, ptr %9, align 4, !tbaa !9
  %1878 = add nsw i32 %1877, 1
  store i32 %1878, ptr %9, align 4, !tbaa !9
  br label %1861, !llvm.loop !57

1879:                                             ; preds = %1861
  %1880 = load double, ptr %55, align 8, !tbaa !11
  %1881 = call double @sqrt(double noundef %1880) #8
  store double %1881, ptr %55, align 8, !tbaa !11
  store i32 0, ptr %9, align 4, !tbaa !9
  br label %1882

1882:                                             ; preds = %1896, %1879
  %1883 = load i32, ptr %9, align 4, !tbaa !9
  %1884 = load i32, ptr %20, align 4, !tbaa !9
  %1885 = icmp slt i32 %1883, %1884
  br i1 %1885, label %1886, label %1899

1886:                                             ; preds = %1882
  %1887 = load i32, ptr %9, align 4, !tbaa !9
  %1888 = sext i32 %1887 to i64
  %1889 = getelementptr inbounds [200 x double], ptr %45, i64 0, i64 %1888
  %1890 = load double, ptr %1889, align 8, !tbaa !11
  %1891 = load double, ptr %55, align 8, !tbaa !11
  %1892 = fdiv double %1890, %1891
  %1893 = load i32, ptr %9, align 4, !tbaa !9
  %1894 = sext i32 %1893 to i64
  %1895 = getelementptr inbounds [200 x double], ptr %45, i64 0, i64 %1894
  store double %1892, ptr %1895, align 8, !tbaa !11
  br label %1896

1896:                                             ; preds = %1886
  %1897 = load i32, ptr %9, align 4, !tbaa !9
  %1898 = add nsw i32 %1897, 1
  store i32 %1898, ptr %9, align 4, !tbaa !9
  br label %1882, !llvm.loop !58

1899:                                             ; preds = %1882
  %1900 = load i32, ptr %29, align 4, !tbaa !9
  %1901 = icmp ne i32 %1900, 0
  br i1 %1901, label %1902, label %1917

1902:                                             ; preds = %1899
  %1903 = call i32 @qh_rand()
  %1904 = sitofp i32 %1903 to double
  store double %1904, ptr %57, align 8, !tbaa !11
  %1905 = load double, ptr %41, align 8, !tbaa !11
  %1906 = load double, ptr %57, align 8, !tbaa !11
  %1907 = fmul double %1905, %1906
  %1908 = load double, ptr %68, align 8, !tbaa !11
  %1909 = fdiv double %1907, %1908
  %1910 = fsub double 1.000000e+00, %1909
  %1911 = load i32, ptr %20, align 4, !tbaa !9
  %1912 = sub nsw i32 %1911, 1
  %1913 = sext i32 %1912 to i64
  %1914 = getelementptr inbounds [200 x double], ptr %45, i64 0, i64 %1913
  %1915 = load double, ptr %1914, align 8, !tbaa !11
  %1916 = fmul double %1915, %1910
  store double %1916, ptr %1914, align 8, !tbaa !11
  br label %1917

1917:                                             ; preds = %1902, %1899
  br label %2069

1918:                                             ; preds = %1853, %1850
  %1919 = load i32, ptr %25, align 4, !tbaa !9
  %1920 = icmp ne i32 %1919, 0
  br i1 %1920, label %1921, label %1936

1921:                                             ; preds = %1918
  %1922 = load i32, ptr %24, align 4, !tbaa !9
  %1923 = icmp ne i32 %1922, 0
  br i1 %1923, label %1936, label %1924

1924:                                             ; preds = %1921
  %1925 = call i32 @qh_rand()
  %1926 = sitofp i32 %1925 to double
  store double %1926, ptr %57, align 8, !tbaa !11
  %1927 = load double, ptr %57, align 8, !tbaa !11
  %1928 = fmul double 2.000000e+00, %1927
  %1929 = load double, ptr %68, align 8, !tbaa !11
  %1930 = fdiv double %1928, %1929
  %1931 = fsub double %1930, 1.000000e+00
  %1932 = load i32, ptr %20, align 4, !tbaa !9
  %1933 = sub nsw i32 %1932, 1
  %1934 = sext i32 %1933 to i64
  %1935 = getelementptr inbounds [200 x double], ptr %45, i64 0, i64 %1934
  store double %1931, ptr %1935, align 8, !tbaa !11
  br label %2068

1936:                                             ; preds = %1921, %1918
  %1937 = load i32, ptr %27, align 4, !tbaa !9
  %1938 = icmp ne i32 %1937, 0
  br i1 %1938, label %1939, label %2028

1939:                                             ; preds = %1936
  %1940 = load double, ptr %60, align 8, !tbaa !11
  %1941 = load i32, ptr %20, align 4, !tbaa !9
  %1942 = sub nsw i32 %1941, 1
  %1943 = sext i32 %1942 to i64
  %1944 = getelementptr inbounds [200 x double], ptr %45, i64 0, i64 %1943
  store double %1940, ptr %1944, align 8, !tbaa !11
  store i32 0, ptr %9, align 4, !tbaa !9
  store double 0.000000e+00, ptr %55, align 8, !tbaa !11
  br label %1945

1945:                                             ; preds = %1960, %1939
  %1946 = load i32, ptr %9, align 4, !tbaa !9
  %1947 = load i32, ptr %20, align 4, !tbaa !9
  %1948 = icmp slt i32 %1946, %1947
  br i1 %1948, label %1949, label %1963

1949:                                             ; preds = %1945
  %1950 = load i32, ptr %9, align 4, !tbaa !9
  %1951 = sext i32 %1950 to i64
  %1952 = getelementptr inbounds [200 x double], ptr %45, i64 0, i64 %1951
  %1953 = load double, ptr %1952, align 8, !tbaa !11
  %1954 = load i32, ptr %9, align 4, !tbaa !9
  %1955 = sext i32 %1954 to i64
  %1956 = getelementptr inbounds [200 x double], ptr %45, i64 0, i64 %1955
  %1957 = load double, ptr %1956, align 8, !tbaa !11
  %1958 = load double, ptr %55, align 8, !tbaa !11
  %1959 = call double @llvm.fmuladd.f64(double %1953, double %1957, double %1958)
  store double %1959, ptr %55, align 8, !tbaa !11
  br label %1960

1960:                                             ; preds = %1949
  %1961 = load i32, ptr %9, align 4, !tbaa !9
  %1962 = add nsw i32 %1961, 1
  store i32 %1962, ptr %9, align 4, !tbaa !9
  br label %1945, !llvm.loop !59

1963:                                             ; preds = %1945
  %1964 = load double, ptr %55, align 8, !tbaa !11
  %1965 = call double @sqrt(double noundef %1964) #8
  store double %1965, ptr %55, align 8, !tbaa !11
  store i32 0, ptr %9, align 4, !tbaa !9
  br label %1966

1966:                                             ; preds = %1982, %1963
  %1967 = load i32, ptr %9, align 4, !tbaa !9
  %1968 = load i32, ptr %20, align 4, !tbaa !9
  %1969 = icmp slt i32 %1967, %1968
  br i1 %1969, label %1970, label %1985

1970:                                             ; preds = %1966
  %1971 = load i32, ptr %9, align 4, !tbaa !9
  %1972 = sext i32 %1971 to i64
  %1973 = getelementptr inbounds [200 x double], ptr %45, i64 0, i64 %1972
  %1974 = load double, ptr %1973, align 8, !tbaa !11
  %1975 = load double, ptr %43, align 8, !tbaa !11
  %1976 = fmul double %1974, %1975
  %1977 = load double, ptr %55, align 8, !tbaa !11
  %1978 = fdiv double %1976, %1977
  %1979 = load i32, ptr %9, align 4, !tbaa !9
  %1980 = sext i32 %1979 to i64
  %1981 = getelementptr inbounds [200 x double], ptr %45, i64 0, i64 %1980
  store double %1978, ptr %1981, align 8, !tbaa !11
  br label %1982

1982:                                             ; preds = %1970
  %1983 = load i32, ptr %9, align 4, !tbaa !9
  %1984 = add nsw i32 %1983, 1
  store i32 %1984, ptr %9, align 4, !tbaa !9
  br label %1966, !llvm.loop !60

1985:                                             ; preds = %1966
  %1986 = load double, ptr %60, align 8, !tbaa !11
  %1987 = load i32, ptr %20, align 4, !tbaa !9
  %1988 = sub nsw i32 %1987, 1
  %1989 = sext i32 %1988 to i64
  %1990 = getelementptr inbounds [200 x double], ptr %45, i64 0, i64 %1989
  %1991 = load double, ptr %1990, align 8, !tbaa !11
  %1992 = fsub double %1991, %1986
  store double %1992, ptr %1990, align 8, !tbaa !11
  %1993 = load i32, ptr %29, align 4, !tbaa !9
  %1994 = icmp ne i32 %1993, 0
  br i1 %1994, label %1995, label %2010

1995:                                             ; preds = %1985
  %1996 = call i32 @qh_rand()
  %1997 = sitofp i32 %1996 to double
  store double %1997, ptr %57, align 8, !tbaa !11
  %1998 = load double, ptr %41, align 8, !tbaa !11
  %1999 = load double, ptr %57, align 8, !tbaa !11
  %2000 = fmul double %1998, %1999
  %2001 = load double, ptr %68, align 8, !tbaa !11
  %2002 = fdiv double %2000, %2001
  %2003 = fsub double 1.000000e+00, %2002
  %2004 = load i32, ptr %20, align 4, !tbaa !9
  %2005 = sub nsw i32 %2004, 1
  %2006 = sext i32 %2005 to i64
  %2007 = getelementptr inbounds [200 x double], ptr %45, i64 0, i64 %2006
  %2008 = load double, ptr %2007, align 8, !tbaa !11
  %2009 = fmul double %2008, %2003
  store double %2009, ptr %2007, align 8, !tbaa !11
  br label %2010

2010:                                             ; preds = %1995, %1985
  %2011 = call i32 @qh_rand()
  %2012 = sitofp i32 %2011 to double
  %2013 = load double, ptr %68, align 8, !tbaa !11
  %2014 = fdiv double %2013, 2.000000e+00
  %2015 = fcmp ogt double %2012, %2014
  br i1 %2015, label %2016, label %2027

2016:                                             ; preds = %2010
  %2017 = load i32, ptr %20, align 4, !tbaa !9
  %2018 = sub nsw i32 %2017, 1
  %2019 = sext i32 %2018 to i64
  %2020 = getelementptr inbounds [200 x double], ptr %45, i64 0, i64 %2019
  %2021 = load double, ptr %2020, align 8, !tbaa !11
  %2022 = fneg double %2021
  %2023 = load i32, ptr %20, align 4, !tbaa !9
  %2024 = sub nsw i32 %2023, 1
  %2025 = sext i32 %2024 to i64
  %2026 = getelementptr inbounds [200 x double], ptr %45, i64 0, i64 %2025
  store double %2022, ptr %2026, align 8, !tbaa !11
  br label %2027

2027:                                             ; preds = %2016, %2010
  br label %2067

2028:                                             ; preds = %1936
  %2029 = load i32, ptr %29, align 4, !tbaa !9
  %2030 = icmp ne i32 %2029, 0
  br i1 %2030, label %2031, label %2066

2031:                                             ; preds = %2028
  %2032 = load i32, ptr %24, align 4, !tbaa !9
  %2033 = icmp ne i32 %2032, 0
  br i1 %2033, label %2066, label %2034

2034:                                             ; preds = %2031
  %2035 = call i32 @qh_rand()
  %2036 = load i32, ptr %11, align 4, !tbaa !9
  %2037 = srem i32 %2035, %2036
  store i32 %2037, ptr %9, align 4, !tbaa !9
  %2038 = load i32, ptr %9, align 4, !tbaa !9
  %2039 = sext i32 %2038 to i64
  %2040 = getelementptr inbounds [200 x double], ptr %45, i64 0, i64 %2039
  %2041 = load double, ptr %2040, align 8, !tbaa !11
  %2042 = fcmp olt double %2041, 0.000000e+00
  br i1 %2042, label %2043, label %2054

2043:                                             ; preds = %2034
  %2044 = load i32, ptr %9, align 4, !tbaa !9
  %2045 = sext i32 %2044 to i64
  %2046 = getelementptr inbounds [200 x double], ptr %45, i64 0, i64 %2045
  %2047 = load double, ptr %2046, align 8, !tbaa !11
  %2048 = load double, ptr %41, align 8, !tbaa !11
  %2049 = fneg double %2047
  %2050 = call double @llvm.fmuladd.f64(double %2049, double %2048, double -1.000000e+00)
  %2051 = load i32, ptr %9, align 4, !tbaa !9
  %2052 = sext i32 %2051 to i64
  %2053 = getelementptr inbounds [200 x double], ptr %45, i64 0, i64 %2052
  store double %2050, ptr %2053, align 8, !tbaa !11
  br label %2065

2054:                                             ; preds = %2034
  %2055 = load i32, ptr %9, align 4, !tbaa !9
  %2056 = sext i32 %2055 to i64
  %2057 = getelementptr inbounds [200 x double], ptr %45, i64 0, i64 %2056
  %2058 = load double, ptr %2057, align 8, !tbaa !11
  %2059 = load double, ptr %41, align 8, !tbaa !11
  %2060 = fneg double %2058
  %2061 = call double @llvm.fmuladd.f64(double %2060, double %2059, double 1.000000e+00)
  %2062 = load i32, ptr %9, align 4, !tbaa !9
  %2063 = sext i32 %2062 to i64
  %2064 = getelementptr inbounds [200 x double], ptr %45, i64 0, i64 %2063
  store double %2061, ptr %2064, align 8, !tbaa !11
  br label %2065

2065:                                             ; preds = %2054, %2043
  br label %2066

2066:                                             ; preds = %2065, %2031, %2028
  br label %2067

2067:                                             ; preds = %2066, %2027
  br label %2068

2068:                                             ; preds = %2067, %1924
  br label %2069

2069:                                             ; preds = %2068, %1917
  store i32 0, ptr %10, align 4, !tbaa !9
  br label %2070

2070:                                             ; preds = %2084, %2069
  %2071 = load i32, ptr %10, align 4, !tbaa !9
  %2072 = load i32, ptr %20, align 4, !tbaa !9
  %2073 = icmp slt i32 %2071, %2072
  br i1 %2073, label %2074, label %2087

2074:                                             ; preds = %2070
  %2075 = load i32, ptr %10, align 4, !tbaa !9
  %2076 = sext i32 %2075 to i64
  %2077 = getelementptr inbounds [200 x double], ptr %45, i64 0, i64 %2076
  %2078 = load double, ptr %2077, align 8, !tbaa !11
  %2079 = load double, ptr %67, align 8, !tbaa !11
  %2080 = fmul double %2078, %2079
  %2081 = load i32, ptr %10, align 4, !tbaa !9
  %2082 = sext i32 %2081 to i64
  %2083 = getelementptr inbounds [200 x double], ptr %45, i64 0, i64 %2082
  store double %2080, ptr %2083, align 8, !tbaa !11
  br label %2084

2084:                                             ; preds = %2074
  %2085 = load i32, ptr %10, align 4, !tbaa !9
  %2086 = add nsw i32 %2085, 1
  store i32 %2086, ptr %10, align 4, !tbaa !9
  br label %2070, !llvm.loop !61

2087:                                             ; preds = %2070
  %2088 = load i32, ptr %26, align 4, !tbaa !9
  %2089 = getelementptr inbounds [200 x double], ptr %45, i64 0, i64 0
  %2090 = load i32, ptr %20, align 4, !tbaa !9
  call void @qh_outcoord(i32 noundef %2088, ptr noundef %2089, i32 noundef %2090)
  %2091 = load i32, ptr %12, align 4, !tbaa !9
  %2092 = add nsw i32 %2091, 1
  store i32 %2092, ptr %12, align 4, !tbaa !9
  %2093 = load i32, ptr %13, align 4, !tbaa !9
  %2094 = icmp slt i32 %2091, %2093
  br i1 %2094, label %2095, label %2101

2095:                                             ; preds = %2087
  %2096 = load i32, ptr %14, align 4, !tbaa !9
  %2097 = load double, ptr %44, align 8, !tbaa !11
  %2098 = load i32, ptr %26, align 4, !tbaa !9
  %2099 = getelementptr inbounds [200 x double], ptr %45, i64 0, i64 0
  %2100 = load i32, ptr %20, align 4, !tbaa !9
  call void @qh_outcoincident(i32 noundef %2096, double noundef %2097, i32 noundef %2098, ptr noundef %2099, i32 noundef %2100)
  br label %2101

2101:                                             ; preds = %2095, %2087
  br label %2102

2102:                                             ; preds = %2101
  %2103 = load i32, ptr %8, align 4, !tbaa !9
  %2104 = add nsw i32 %2103, 1
  store i32 %2104, ptr %8, align 4, !tbaa !9
  br label %1615, !llvm.loop !62

2105:                                             ; preds = %1615
  br label %2106

2106:                                             ; preds = %2105, %1582
  br label %2107

2107:                                             ; preds = %2106, %1486
  br label %2108

2108:                                             ; preds = %2107, %1415
  br label %2109

2109:                                             ; preds = %2108, %1275
  %2110 = load i32, ptr %30, align 4, !tbaa !9
  %2111 = icmp ne i32 %2110, 0
  br i1 %2111, label %2112, label %2148

2112:                                             ; preds = %2109
  store i32 0, ptr %9, align 4, !tbaa !9
  br label %2113

2113:                                             ; preds = %2144, %2112
  %2114 = load i32, ptr %9, align 4, !tbaa !9
  %2115 = load i32, ptr %15, align 4, !tbaa !9
  %2116 = icmp slt i32 %2114, %2115
  br i1 %2116, label %2117, label %2147

2117:                                             ; preds = %2113
  %2118 = load i32, ptr %26, align 4, !tbaa !9
  %2119 = icmp ne i32 %2118, 0
  br i1 %2119, label %2120, label %2121

2120:                                             ; preds = %2117
  call void @qh_out1(double noundef 1.000000e+00)
  br label %2121

2121:                                             ; preds = %2120, %2117
  %2122 = load i32, ptr %20, align 4, !tbaa !9
  %2123 = sub nsw i32 %2122, 1
  store i32 %2123, ptr %10, align 4, !tbaa !9
  br label %2124

2124:                                             ; preds = %2139, %2121
  %2125 = load i32, ptr %10, align 4, !tbaa !9
  %2126 = icmp sge i32 %2125, 0
  br i1 %2126, label %2127, label %2142

2127:                                             ; preds = %2124
  %2128 = load i32, ptr %9, align 4, !tbaa !9
  %2129 = load i32, ptr %10, align 4, !tbaa !9
  %2130 = shl i32 1, %2129
  %2131 = and i32 %2128, %2130
  %2132 = icmp ne i32 %2131, 0
  br i1 %2132, label %2133, label %2135

2133:                                             ; preds = %2127
  %2134 = load double, ptr %65, align 8, !tbaa !11
  call void @qh_out1(double noundef %2134)
  br label %2138

2135:                                             ; preds = %2127
  %2136 = load double, ptr %65, align 8, !tbaa !11
  %2137 = fneg double %2136
  call void @qh_out1(double noundef %2137)
  br label %2138

2138:                                             ; preds = %2135, %2133
  br label %2139

2139:                                             ; preds = %2138
  %2140 = load i32, ptr %10, align 4, !tbaa !9
  %2141 = add nsw i32 %2140, -1
  store i32 %2141, ptr %10, align 4, !tbaa !9
  br label %2124, !llvm.loop !63

2142:                                             ; preds = %2124
  %2143 = load ptr, ptr @rbox, align 8, !tbaa !15
  call void (ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %2143, i32 noundef 9400, ptr noundef @.str.23)
  br label %2144

2144:                                             ; preds = %2142
  %2145 = load i32, ptr %9, align 4, !tbaa !9
  %2146 = add nsw i32 %2145, 1
  store i32 %2146, ptr %9, align 4, !tbaa !9
  br label %2113, !llvm.loop !64

2147:                                             ; preds = %2113
  br label %2148

2148:                                             ; preds = %2147, %2109
  %2149 = load i32, ptr %34, align 4, !tbaa !9
  %2150 = icmp ne i32 %2149, 0
  br i1 %2150, label %2151, label %2192

2151:                                             ; preds = %2148
  store i32 0, ptr %9, align 4, !tbaa !9
  br label %2152

2152:                                             ; preds = %2188, %2151
  %2153 = load i32, ptr %9, align 4, !tbaa !9
  %2154 = load i32, ptr %16, align 4, !tbaa !9
  %2155 = icmp slt i32 %2153, %2154
  br i1 %2155, label %2156, label %2191

2156:                                             ; preds = %2152
  %2157 = load i32, ptr %26, align 4, !tbaa !9
  %2158 = icmp ne i32 %2157, 0
  br i1 %2158, label %2159, label %2160

2159:                                             ; preds = %2156
  call void @qh_out1(double noundef 1.000000e+00)
  br label %2160

2160:                                             ; preds = %2159, %2156
  %2161 = load i32, ptr %20, align 4, !tbaa !9
  %2162 = sub nsw i32 %2161, 1
  store i32 %2162, ptr %10, align 4, !tbaa !9
  br label %2163

2163:                                             ; preds = %2183, %2160
  %2164 = load i32, ptr %10, align 4, !tbaa !9
  %2165 = icmp sge i32 %2164, 0
  br i1 %2165, label %2166, label %2186

2166:                                             ; preds = %2163
  %2167 = load i32, ptr %9, align 4, !tbaa !9
  %2168 = sdiv i32 %2167, 2
  %2169 = load i32, ptr %10, align 4, !tbaa !9
  %2170 = icmp ne i32 %2168, %2169
  br i1 %2170, label %2171, label %2172

2171:                                             ; preds = %2166
  call void @qh_out1(double noundef 0.000000e+00)
  br label %2182

2172:                                             ; preds = %2166
  %2173 = load i32, ptr %9, align 4, !tbaa !9
  %2174 = and i32 %2173, 1
  %2175 = icmp ne i32 %2174, 0
  br i1 %2175, label %2176, label %2178

2176:                                             ; preds = %2172
  %2177 = load double, ptr %66, align 8, !tbaa !11
  call void @qh_out1(double noundef %2177)
  br label %2181

2178:                                             ; preds = %2172
  %2179 = load double, ptr %66, align 8, !tbaa !11
  %2180 = fneg double %2179
  call void @qh_out1(double noundef %2180)
  br label %2181

2181:                                             ; preds = %2178, %2176
  br label %2182

2182:                                             ; preds = %2181, %2171
  br label %2183

2183:                                             ; preds = %2182
  %2184 = load i32, ptr %10, align 4, !tbaa !9
  %2185 = add nsw i32 %2184, -1
  store i32 %2185, ptr %10, align 4, !tbaa !9
  br label %2163, !llvm.loop !65

2186:                                             ; preds = %2163
  %2187 = load ptr, ptr @rbox, align 8, !tbaa !15
  call void (ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %2187, i32 noundef 9401, ptr noundef @.str.23)
  br label %2188

2188:                                             ; preds = %2186
  %2189 = load i32, ptr %9, align 4, !tbaa !9
  %2190 = add nsw i32 %2189, 1
  store i32 %2190, ptr %9, align 4, !tbaa !9
  br label %2152, !llvm.loop !66

2191:                                             ; preds = %2152
  br label %2192

2192:                                             ; preds = %2191, %2148
  %2193 = load i32, ptr %26, align 4, !tbaa !9
  %2194 = icmp ne i32 %2193, 0
  br i1 %2194, label %2195, label %2197

2195:                                             ; preds = %2192
  %2196 = load ptr, ptr @rbox, align 8, !tbaa !15
  call void (ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %2196, i32 noundef 9402, ptr noundef @.str.27)
  br label %2197

2197:                                             ; preds = %2195, %2192
  %2198 = load ptr, ptr %51, align 8, !tbaa !5
  call void @qh_free(ptr noundef %2198)
  store i32 0, ptr @rbox_inuse, align 4, !tbaa !9
  store i32 0, ptr %4, align 4
  store i32 1, ptr %76, align 4
  br label %2199

2199:                                             ; preds = %2197, %94, %81
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #8
  call void @llvm.lifetime.end.p0(i64 200, ptr %70) #8
  call void @llvm.lifetime.end.p0(i64 200, ptr %69) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #8
  call void @llvm.lifetime.end.p0(i64 800, ptr %54) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #8
  call void @llvm.lifetime.end.p0(i64 1600, ptr %45) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #8
  %2200 = load i32, ptr %4, align 4
  ret i32 %2200
}

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

declare void @qh_fprintf_rbox(ptr noundef, i32 noundef, ptr noundef, ...) #2

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

declare void @qh_free(ptr noundef) #2

; Function Attrs: nounwind
declare ptr @strncat(ptr noundef, ptr noundef, i64 noundef) #4

; Function Attrs: nounwind willreturn memory(read)
declare i64 @strlen(ptr noundef) #5

; Function Attrs: nounwind willreturn memory(none)
declare ptr @__ctype_b_loc() #6

declare i32 @qh_strtol(ptr noundef, ptr noundef) #2

declare double @qh_strtod(ptr noundef, ptr noundef) #2

; Function Attrs: nounwind uwtable
declare dso_local void @qh_errexit_rbox(i32 noundef) #0

; Function Attrs: nounwind
declare double @sqrt(double noundef) #4

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare double @llvm.fmuladd.f64(double, double, double) #7

; Function Attrs: nounwind
declare double @ldexp(double noundef, i32 noundef) #4

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare double @llvm.floor.f64(double) #7

; Function Attrs: nounwind
declare double @asin(double noundef) #4

; Function Attrs: nounwind
declare double @cos(double noundef) #4

; Function Attrs: nounwind
declare i64 @time(ptr noundef) #4

; Function Attrs: nounwind
declare i32 @sprintf(ptr noundef, ptr noundef, ...) #4

; Function Attrs: nounwind willreturn memory(read)
declare ptr @strstr(ptr noundef, ptr noundef) #5

; Function Attrs: nounwind
declare ptr @strcpy(ptr noundef, ptr noundef) #4

declare void @qh_srand(i32 noundef) #2

; Function Attrs: nounwind uwtable
declare dso_local void @qh_out1(double noundef) #0

; Function Attrs: nounwind willreturn memory(read)
declare ptr @strchr(ptr noundef, i32 noundef) #5

declare ptr @qh_malloc(i64 noundef) #2

declare i32 @qh_rand() #2

; Function Attrs: nounwind uwtable
declare dso_local void @qh_outcoord(i32 noundef, ptr noundef, i32 noundef) #0

; Function Attrs: nounwind uwtable
declare dso_local void @qh_outcoincident(i32 noundef, double noundef, i32 noundef, ptr noundef, i32 noundef) #0

; Function Attrs: nounwind
declare double @pow(double noundef, double noundef) #4

; Function Attrs: nounwind uwtable
declare dso_local void @qh_out3n(double noundef, double noundef, double noundef) #0

; Function Attrs: nounwind
declare double @sin(double noundef) #4

; Function Attrs: nounwind uwtable
declare dso_local void @qh_out2n(double noundef, double noundef) #0

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

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

!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, !12, i64 0}
!12 = !{!"double", !7, i64 0}
!13 = !{!14, !6, i64 8}
!14 = !{!"rboxT", !6, i64 0, !6, i64 8, !10, i64 16, !12, i64 24, !7, i64 32, !7, i64 232}
!15 = !{!14, !6, i64 0}
!16 = !{!7, !7, i64 0}
!17 = !{!18, !18, i64 0}
!18 = !{!"short", !7, i64 0}
!19 = distinct !{!19, !20}
!20 = !{!"llvm.loop.mustprogress"}
!21 = distinct !{!21, !20}
!22 = distinct !{!22, !20}
!23 = distinct !{!23, !20}
!24 = distinct !{!24, !20}
!25 = !{!14, !10, i64 16}
!26 = !{!14, !12, i64 24}
!27 = distinct !{!27, !20}
!28 = distinct !{!28, !20}
!29 = distinct !{!29, !20}
!30 = distinct !{!30, !20}
!31 = distinct !{!31, !20}
!32 = distinct !{!32, !20}
!33 = distinct !{!33, !20}
!34 = distinct !{!34, !20}
!35 = distinct !{!35, !20}
!36 = distinct !{!36, !20}
!37 = distinct !{!37, !20}
!38 = distinct !{!38, !20}
!39 = distinct !{!39, !20}
!40 = distinct !{!40, !20}
!41 = distinct !{!41, !20}
!42 = distinct !{!42, !20}
!43 = distinct !{!43, !20}
!44 = distinct !{!44, !20}
!45 = distinct !{!45, !20}
!46 = distinct !{!46, !20}
!47 = distinct !{!47, !20}
!48 = distinct !{!48, !20}
!49 = distinct !{!49, !20}
!50 = distinct !{!50, !20}
!51 = distinct !{!51, !20}
!52 = distinct !{!52, !20}
!53 = distinct !{!53, !20}
!54 = distinct !{!54, !20}
!55 = distinct !{!55, !20}
!56 = distinct !{!56, !20}
!57 = distinct !{!57, !20}
!58 = distinct !{!58, !20}
!59 = distinct !{!59, !20}
!60 = distinct !{!60, !20}
!61 = distinct !{!61, !20}
!62 = distinct !{!62, !20}
!63 = distinct !{!63, !20}
!64 = distinct !{!64, !20}
!65 = distinct !{!65, !20}
!66 = distinct !{!66, !20}


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

@rbox_inuse = external dso_local local_unnamed_addr global i32, align 4
@rbox = external dso_local global %struct.rboxT, align 8
@.str = external hidden unnamed_addr constant [73 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [149 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [167 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [154 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [10 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local i32 @qh_rboxpoints(ptr noundef %0, ptr noundef %1, ptr nocapture noundef readonly %2) local_unnamed_addr #0 {
  %4 = alloca [200 x double], align 16
  %5 = alloca [200 x i32], align 16
  %6 = alloca [200 x i8], align 16
  %7 = alloca [200 x i8], align 16
  %8 = alloca ptr, align 8
  %9 = alloca i64, align 8
  call void @llvm.lifetime.start.p0(i64 1600, ptr nonnull %4) #14
  call void @llvm.lifetime.start.p0(i64 800, ptr nonnull %5) #14
  call void @llvm.lifetime.start.p0(i64 200, ptr nonnull %6) #14
  call void @llvm.lifetime.start.p0(i64 200, ptr nonnull %7) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) #14
  store ptr %6, ptr %8, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #14
  %10 = load i32, ptr @rbox_inuse, align 4, !tbaa !9
  %.not = icmp eq i32 %10, 0
  br i1 %.not, label %13, label %11

11:                                               ; preds = %3
  %12 = load ptr, ptr getelementptr inbounds (i8, ptr @rbox, i64 8), align 8, !tbaa !11
  call void (ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %12, i32 noundef 6188, ptr noundef nonnull @.str) #14
  br label %948

13:                                               ; preds = %3
  store i32 1, ptr @rbox_inuse, align 4, !tbaa !9
  store ptr %1, ptr getelementptr inbounds (i8, ptr @rbox, i64 8), align 8, !tbaa !11
  store ptr %0, ptr @rbox, align 8, !tbaa !14
  %14 = call i32 @_setjmp(ptr noundef nonnull getelementptr inbounds (i8, ptr @rbox, i64 32)) #15
  %.not792 = icmp eq i32 %14, 0
  br i1 %.not792, label %16, label %15

15:                                               ; preds = %13
  store i32 0, ptr @rbox_inuse, align 4, !tbaa !9
  br label %948

16:                                               ; preds = %13
  store i8 0, ptr %6, align 16, !tbaa !15
  %17 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %6) #16
  %18 = sub i64 199, %17
  %19 = call ptr @strncat(ptr noundef nonnull dereferenceable(1) %6, ptr noundef %2, i64 noundef %18) #14
  %.promoted = load ptr, ptr %8, align 8, !tbaa !5
  %20 = load i8, ptr %.promoted, align 1, !tbaa !15
  %.not793941 = icmp eq i8 %20, 0
  br i1 %.not793941, label %.thread1626, label %.lr.ph

.lr.ph:                                           ; preds = %16
  %21 = call ptr @__ctype_b_loc() #17
  br label %22

22:                                               ; preds = %.lr.ph, %30
  %23 = phi i8 [ %20, %.lr.ph ], [ %32, %30 ]
  %24 = phi ptr [ %.promoted, %.lr.ph ], [ %31, %30 ]
  %25 = load ptr, ptr %21, align 8, !tbaa !5
  %26 = sext i8 %23 to i64
  %27 = getelementptr inbounds i16, ptr %25, i64 %26
  %28 = load i16, ptr %27, align 2, !tbaa !16
  %29 = and i16 %28, 8192
  %.not794 = icmp eq i16 %29, 0
  br i1 %.not794, label %30, label %.preheader933.lr.ph.preheader

30:                                               ; preds = %22
  %31 = getelementptr inbounds i8, ptr %24, i64 1
  store ptr %31, ptr %8, align 8, !tbaa !5
  %32 = load i8, ptr %31, align 1, !tbaa !15
  %.not793 = icmp eq i8 %32, 0
  br i1 %.not793, label %.thread1626, label %22, !llvm.loop !18

.thread1626:                                      ; preds = %30, %16
  %33 = load i32, ptr getelementptr inbounds (i8, ptr @rbox, i64 16), align 8, !tbaa !20
  %34 = icmp eq i32 %33, 0
  %.26371521 = select i1 %34, double 5.000000e-01, double 1.000000e+06
  br label %256

.preheader933.lr.ph.preheader:                    ; preds = %22
  %35 = call ptr @__ctype_b_loc() #17
  br label %.preheader933.lr.ph

.preheader933.lr.ph:                              ; preds = %.preheader933.lr.ph.preheader, %.outer
  %36 = phi i8 [ %225, %.outer ], [ %23, %.preheader933.lr.ph.preheader ]
  %.promoted9431442 = phi ptr [ %226, %.outer ], [ %24, %.preheader933.lr.ph.preheader ]
  %.0620.ph1087 = phi ptr [ %.2622, %.outer ], [ null, %.preheader933.lr.ph.preheader ]
  %.0635.ph1086 = phi double [ %.1636, %.outer ], [ 5.000000e-01, %.preheader933.lr.ph.preheader ]
  %.0638.ph1085 = phi double [ %.1639, %.outer ], [ 0.000000e+00, %.preheader933.lr.ph.preheader ]
  %.0641.ph1084 = phi double [ %.1642, %.outer ], [ 0.000000e+00, %.preheader933.lr.ph.preheader ]
  %.0677.ph1083 = phi double [ %.2679, %.outer ], [ 5.000000e+00, %.preheader933.lr.ph.preheader ]
  %.0680.ph1082 = phi double [ %.2682, %.outer ], [ 4.000000e+00, %.preheader933.lr.ph.preheader ]
  %.0683.ph1081 = phi double [ %.2685, %.outer ], [ 3.000000e+00, %.preheader933.lr.ph.preheader ]
  %.0687.ph1080 = phi double [ %.2689, %.outer ], [ 0.000000e+00, %.preheader933.lr.ph.preheader ]
  %.0690.ph1079 = phi double [ %.3693, %.outer ], [ 0.000000e+00, %.preheader933.lr.ph.preheader ]
  %.0695.ph1078 = phi double [ %.2697, %.outer ], [ 0.000000e+00, %.preheader933.lr.ph.preheader ]
  %.0704.ph1077 = phi double [ %.1705, %.outer ], [ 0.000000e+00, %.preheader933.lr.ph.preheader ]
  %.0706.ph1076 = phi i32 [ %.1707, %.outer ], [ 0, %.preheader933.lr.ph.preheader ]
  %.0708.ph1075 = phi i32 [ %.1709, %.outer ], [ 0, %.preheader933.lr.ph.preheader ]
  %.0710.ph1074 = phi i32 [ %.1711, %.outer ], [ 0, %.preheader933.lr.ph.preheader ]
  %.0712.ph1073 = phi i32 [ %.1713, %.outer ], [ 0, %.preheader933.lr.ph.preheader ]
  %.0714.ph1072 = phi i32 [ %.1715, %.outer ], [ 0, %.preheader933.lr.ph.preheader ]
  %.0716.ph1071 = phi i32 [ %.1717, %.outer ], [ 0, %.preheader933.lr.ph.preheader ]
  %.0718.ph1070 = phi i32 [ %.1719, %.outer ], [ 0, %.preheader933.lr.ph.preheader ]
  %.0720.ph1069 = phi i32 [ %.1721, %.outer ], [ 0, %.preheader933.lr.ph.preheader ]
  %.0722.ph1068 = phi i32 [ %.1723, %.outer ], [ 0, %.preheader933.lr.ph.preheader ]
  %.0724.ph1067 = phi i32 [ %.1725, %.outer ], [ 0, %.preheader933.lr.ph.preheader ]
  %.0731.ph1066 = phi i32 [ %.1732, %.outer ], [ 0, %.preheader933.lr.ph.preheader ]
  %.0733.ph1065 = phi i32 [ %.1734, %.outer ], [ 0, %.preheader933.lr.ph.preheader ]
  %.0735.ph1064 = phi i32 [ %.1736, %.outer ], [ 0, %.preheader933.lr.ph.preheader ]
  %.0738.ph1063 = phi i32 [ %.1739, %.outer ], [ 0, %.preheader933.lr.ph.preheader ]
  %.0740.ph1062 = phi i32 [ %.1741, %.outer ], [ 0, %.preheader933.lr.ph.preheader ]
  %.0742.ph1061 = phi i32 [ %.1743, %.outer ], [ 0, %.preheader933.lr.ph.preheader ]
  %.0744.ph1060 = phi i32 [ %.1745, %.outer ], [ 0, %.preheader933.lr.ph.preheader ]
  %.0747.ph1059 = phi i32 [ %.1748, %.outer ], [ 0, %.preheader933.lr.ph.preheader ]
  %.0750.ph1058 = phi i32 [ %.0750947, %.outer ], [ 0, %.preheader933.lr.ph.preheader ]
  %.0753.ph1057 = phi i32 [ %.1754, %.outer ], [ 3, %.preheader933.lr.ph.preheader ]
  %.0758.ph1056 = phi i32 [ %.1759, %.outer ], [ 0, %.preheader933.lr.ph.preheader ]
  %.0764.ph1055 = phi i32 [ %.2766, %.outer ], [ 0, %.preheader933.lr.ph.preheader ]
  %.0767.ph1054 = phi i32 [ %.2769, %.outer ], [ 0, %.preheader933.lr.ph.preheader ]
  br label %.lr.ph945

.lr.ph945:                                        ; preds = %59, %.preheader933.lr.ph
  %37 = phi i8 [ %36, %.preheader933.lr.ph ], [ %62, %59 ]
  %.promoted943 = phi ptr [ %.promoted9431442, %.preheader933.lr.ph ], [ %61, %59 ]
  %.0750947 = phi i32 [ %.0750.ph1058, %.preheader933.lr.ph ], [ %60, %59 ]
  br label %38

38:                                               ; preds = %.lr.ph945, %46
  %39 = phi i8 [ %37, %.lr.ph945 ], [ %48, %46 ]
  %40 = phi ptr [ %.promoted943, %.lr.ph945 ], [ %47, %46 ]
  %41 = load ptr, ptr %35, align 8, !tbaa !5
  %42 = sext i8 %39 to i64
  %43 = getelementptr inbounds i16, ptr %41, i64 %42
  %44 = load i16, ptr %43, align 2, !tbaa !16
  %45 = and i16 %44, 8192
  %.not797 = icmp eq i16 %45, 0
  br i1 %.not797, label %.critedge2, label %46

46:                                               ; preds = %38
  %47 = getelementptr inbounds i8, ptr %40, i64 1
  store ptr %47, ptr %8, align 8, !tbaa !5
  %48 = load i8, ptr %47, align 1, !tbaa !15
  %.not796 = icmp eq i8 %48, 0
  br i1 %.not796, label %.outer._crit_edge, label %38, !llvm.loop !21

.critedge2:                                       ; preds = %38
  %49 = icmp eq i8 %39, 45
  br i1 %49, label %.critedge2.thread, label %.critedge2.thread.thread1462

.critedge2.thread:                                ; preds = %.critedge2
  %50 = getelementptr inbounds i8, ptr %40, i64 1
  store ptr %50, ptr %8, align 8, !tbaa !5
  %.pre = load i8, ptr %50, align 1, !tbaa !15
  %.not798 = icmp eq i8 %.pre, 0
  br i1 %.not798, label %.outer._crit_edge, label %.critedge2.thread.thread1462

.critedge2.thread.thread1462:                     ; preds = %.critedge2, %.critedge2.thread
  %51 = phi ptr [ %50, %.critedge2.thread ], [ %40, %.critedge2 ]
  %52 = phi i8 [ %.pre, %.critedge2.thread ], [ %39, %.critedge2 ]
  %53 = call ptr @__ctype_b_loc() #17
  %54 = load ptr, ptr %53, align 8, !tbaa !5
  %55 = sext i8 %52 to i64
  %56 = getelementptr inbounds i16, ptr %54, i64 %55
  %57 = load i16, ptr %56, align 2, !tbaa !16
  %58 = and i16 %57, 2048
  %.not848 = icmp eq i16 %58, 0
  br i1 %.not848, label %63, label %59

59:                                               ; preds = %.critedge2.thread.thread1462
  %60 = call i32 @qh_strtol(ptr noundef nonnull %51, ptr noundef nonnull %8) #14
  %61 = load ptr, ptr %8, align 8, !tbaa !5
  %62 = load i8, ptr %61, align 1, !tbaa !15
  %.not795 = icmp eq i8 %62, 0
  br i1 %.not795, label %.outer._crit_edge, label %.lr.ph945, !llvm.loop !22

63:                                               ; preds = %.critedge2.thread.thread1462
  %64 = getelementptr inbounds i8, ptr %51, i64 1
  store ptr %64, ptr %8, align 8, !tbaa !5
  %65 = load i8, ptr %51, align 1, !tbaa !15
  switch i8 %65, label %213 [
    i8 99, label %.preheader931
    i8 100, label %.preheader932
    i8 104, label %.critedge9
    i8 108, label %90
    i8 110, label %91
    i8 114, label %92
    i8 115, label %93
    i8 116, label %94
    i8 120, label %103
    i8 121, label %104
    i8 122, label %105
    i8 66, label %106
    i8 67, label %108
    i8 68, label %139
    i8 71, label %144
    i8 76, label %153
    i8 77, label %162
    i8 79, label %187
    i8 80, label %189
    i8 87, label %202
    i8 90, label %204
  ]

.preheader932:                                    ; preds = %63
  %66 = load ptr, ptr %53, align 8, !tbaa !5
  br label %79

.preheader931:                                    ; preds = %63
  %67 = load ptr, ptr %53, align 8, !tbaa !5
  br label %68

68:                                               ; preds = %68, %.preheader931
  %.0623 = phi ptr [ %74, %68 ], [ %64, %.preheader931 ]
  %69 = load i8, ptr %.0623, align 1, !tbaa !15
  %70 = sext i8 %69 to i64
  %71 = getelementptr inbounds i16, ptr %67, i64 %70
  %72 = load i16, ptr %71, align 2, !tbaa !16
  %73 = and i16 %72, 8192
  %.not863 = icmp eq i16 %73, 0
  %74 = getelementptr inbounds i8, ptr %.0623, i64 1
  br i1 %.not863, label %75, label %68, !llvm.loop !23

75:                                               ; preds = %68
  %76 = icmp eq i8 %69, 71
  br i1 %76, label %77, label %.critedge9

77:                                               ; preds = %75
  %78 = call double @qh_strtod(ptr noundef nonnull %74, ptr noundef nonnull %8) #14
  br label %.critedge9

79:                                               ; preds = %79, %.preheader932
  %.1624 = phi ptr [ %85, %79 ], [ %64, %.preheader932 ]
  %80 = load i8, ptr %.1624, align 1, !tbaa !15
  %81 = sext i8 %80 to i64
  %82 = getelementptr inbounds i16, ptr %66, i64 %81
  %83 = load i16, ptr %82, align 2, !tbaa !16
  %84 = and i16 %83, 8192
  %.not862 = icmp eq i16 %84, 0
  %85 = getelementptr inbounds i8, ptr %.1624, i64 1
  br i1 %.not862, label %86, label %79, !llvm.loop !24

86:                                               ; preds = %79
  %87 = icmp eq i8 %80, 71
  br i1 %87, label %88, label %.critedge9

88:                                               ; preds = %86
  %89 = call double @qh_strtod(ptr noundef nonnull %85, ptr noundef nonnull %8) #14
  br label %.critedge9

90:                                               ; preds = %63
  br label %.critedge9

91:                                               ; preds = %63
  br label %.critedge9

92:                                               ; preds = %63
  br label %.critedge9

93:                                               ; preds = %63
  br label %.critedge9

94:                                               ; preds = %63
  %95 = load ptr, ptr %53, align 8, !tbaa !5
  %96 = load i8, ptr %64, align 1, !tbaa !15
  %97 = sext i8 %96 to i64
  %98 = getelementptr inbounds i16, ptr %95, i64 %97
  %99 = load i16, ptr %98, align 2, !tbaa !16
  %100 = and i16 %99, 2048
  %.not861 = icmp eq i16 %100, 0
  br i1 %.not861, label %.critedge9, label %101

101:                                              ; preds = %94
  %102 = call i32 @qh_strtol(ptr noundef nonnull %64, ptr noundef nonnull %8) #14
  br label %.critedge9

103:                                              ; preds = %63
  br label %.critedge9

104:                                              ; preds = %63
  br label %.critedge9

105:                                              ; preds = %63
  store i32 1, ptr getelementptr inbounds (i8, ptr @rbox, i64 16), align 8, !tbaa !20
  br label %.critedge9

106:                                              ; preds = %63
  %107 = call double @qh_strtod(ptr noundef nonnull %64, ptr noundef nonnull %8) #14
  br label %.critedge9

108:                                              ; preds = %63
  %109 = load i8, ptr %64, align 1, !tbaa !15
  %.not858 = icmp eq i8 %109, 0
  br i1 %.not858, label %.thread1467.thread, label %110

110:                                              ; preds = %108
  %111 = call i32 @qh_strtol(ptr noundef nonnull %64, ptr noundef nonnull %8) #14
  %.pre1449 = load ptr, ptr %8, align 8, !tbaa !5
  %.pre1450 = load i8, ptr %.pre1449, align 1, !tbaa !15
  %112 = icmp eq i8 %.pre1450, 44
  br i1 %112, label %113, label %.thread1467

113:                                              ; preds = %110
  %114 = getelementptr inbounds i8, ptr %.pre1449, i64 1
  store ptr %114, ptr %8, align 8, !tbaa !5
  %115 = call double @qh_strtod(ptr noundef nonnull %114, ptr noundef nonnull %8) #14
  %.pre1451 = load ptr, ptr %8, align 8, !tbaa !5
  %.pre1452 = load i8, ptr %.pre1451, align 1, !tbaa !15
  %116 = icmp eq i8 %.pre1452, 44
  br i1 %116, label %117, label %.thread1467

117:                                              ; preds = %113
  %118 = getelementptr inbounds i8, ptr %.pre1451, i64 1
  store ptr %118, ptr %8, align 8, !tbaa !5
  %119 = call i32 @qh_strtol(ptr noundef nonnull %118, ptr noundef nonnull %8) #14
  %.pre1453 = load ptr, ptr %8, align 8, !tbaa !5
  %.pre1454 = load i8, ptr %.pre1453, align 1, !tbaa !15
  br label %.thread1467

.thread1467:                                      ; preds = %110, %117, %113
  %.16881471 = phi double [ %115, %117 ], [ %115, %113 ], [ %.0687.ph1080, %110 ]
  %120 = phi i8 [ %.pre1454, %117 ], [ %.pre1452, %113 ], [ %.pre1450, %110 ]
  %121 = phi ptr [ %.pre1453, %117 ], [ %.pre1451, %113 ], [ %.pre1449, %110 ]
  %.1768 = phi i32 [ %119, %117 ], [ %.0767.ph1054, %113 ], [ %.0767.ph1054, %110 ]
  %.not859 = icmp eq i8 %120, 0
  br i1 %.not859, label %.thread1467.thread, label %122

122:                                              ; preds = %.thread1467
  %123 = load ptr, ptr %53, align 8, !tbaa !5
  %124 = sext i8 %120 to i64
  %125 = getelementptr inbounds i16, ptr %123, i64 %124
  %126 = load i16, ptr %125, align 2, !tbaa !16
  %127 = and i16 %126, 8192
  %.not860 = icmp eq i16 %127, 0
  br i1 %.not860, label %128, label %.thread1467.thread

128:                                              ; preds = %122
  %129 = load ptr, ptr getelementptr inbounds (i8, ptr @rbox, i64 8), align 8, !tbaa !11
  call void (ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %129, i32 noundef 7080, ptr noundef nonnull @.str.1, ptr noundef nonnull %121) #14
  call void @qh_errexit_rbox(i32 noundef 1)
  br label %.thread1467.thread

.thread1467.thread:                               ; preds = %108, %128, %122, %.thread1467
  %.17681711 = phi i32 [ %.1768, %128 ], [ %.1768, %122 ], [ %.1768, %.thread1467 ], [ %.0767.ph1054, %108 ]
  %.1765146514701710 = phi i32 [ %111, %128 ], [ %111, %122 ], [ %111, %.thread1467 ], [ %.0764.ph1055, %108 ]
  %.168814711709 = phi double [ %.16881471, %128 ], [ %.16881471, %122 ], [ %.16881471, %.thread1467 ], [ %.0687.ph1080, %108 ]
  %130 = icmp eq i32 %.1765146514701710, 0
  br i1 %130, label %131, label %133

131:                                              ; preds = %.thread1467.thread
  %132 = load ptr, ptr getelementptr inbounds (i8, ptr @rbox, i64 8), align 8, !tbaa !11
  call void (ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %132, i32 noundef 6268, ptr noundef nonnull @.str.2) #14
  call void @qh_errexit_rbox(i32 noundef 1)
  br label %133

133:                                              ; preds = %131, %.thread1467.thread
  %134 = icmp slt i32 %.1765146514701710, 0
  %135 = icmp slt i32 %.17681711, 0
  %or.cond = select i1 %134, i1 true, i1 %135
  %136 = fcmp olt double %.168814711709, 0.000000e+00
  %or.cond5 = select i1 %or.cond, i1 true, i1 %136
  br i1 %or.cond5, label %137, label %.critedge9

137:                                              ; preds = %133
  %138 = load ptr, ptr getelementptr inbounds (i8, ptr @rbox, i64 8), align 8, !tbaa !11
  call void (ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %138, i32 noundef 6269, ptr noundef nonnull @.str.3, i32 noundef %.1765146514701710, i32 noundef %.17681711, double noundef %.168814711709) #14
  call void @qh_errexit_rbox(i32 noundef 1)
  br label %.critedge9

139:                                              ; preds = %63
  %140 = call i32 @qh_strtol(ptr noundef nonnull %64, ptr noundef nonnull %8) #14
  %141 = add i32 %140, -201
  %or.cond7 = icmp ult i32 %141, -200
  br i1 %or.cond7, label %142, label %.critedge9

142:                                              ; preds = %139
  %143 = load ptr, ptr getelementptr inbounds (i8, ptr @rbox, i64 8), align 8, !tbaa !11
  call void (ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %143, i32 noundef 6189, ptr noundef nonnull @.str.4, i32 noundef %140, i32 noundef 200) #14
  call void @qh_errexit_rbox(i32 noundef 1)
  br label %.critedge9

144:                                              ; preds = %63
  %145 = load ptr, ptr %53, align 8, !tbaa !5
  %146 = load i8, ptr %64, align 1, !tbaa !15
  %147 = sext i8 %146 to i64
  %148 = getelementptr inbounds i16, ptr %145, i64 %147
  %149 = load i16, ptr %148, align 2, !tbaa !16
  %150 = and i16 %149, 2048
  %.not857 = icmp eq i16 %150, 0
  br i1 %.not857, label %.critedge9, label %151

151:                                              ; preds = %144
  %152 = call double @qh_strtod(ptr noundef nonnull %64, ptr noundef nonnull %8) #14
  br label %.critedge9

153:                                              ; preds = %63
  %154 = load ptr, ptr %53, align 8, !tbaa !5
  %155 = load i8, ptr %64, align 1, !tbaa !15
  %156 = sext i8 %155 to i64
  %157 = getelementptr inbounds i16, ptr %154, i64 %156
  %158 = load i16, ptr %157, align 2, !tbaa !16
  %159 = and i16 %158, 2048
  %.not856 = icmp eq i16 %159, 0
  br i1 %.not856, label %.critedge9, label %160

160:                                              ; preds = %153
  %161 = call double @qh_strtod(ptr noundef nonnull %64, ptr noundef nonnull %8) #14
  br label %.critedge9

162:                                              ; preds = %63
  %163 = load i8, ptr %64, align 1, !tbaa !15
  %.not853 = icmp eq i8 %163, 0
  br i1 %.not853, label %.thread1478, label %164

164:                                              ; preds = %162
  %165 = call double @qh_strtod(ptr noundef nonnull %64, ptr noundef nonnull %8) #14
  %.pre1443 = load ptr, ptr %8, align 8, !tbaa !5
  %.pre1444 = load i8, ptr %.pre1443, align 1, !tbaa !15
  %166 = icmp eq i8 %.pre1444, 44
  br i1 %166, label %167, label %.thread1478

167:                                              ; preds = %164
  %168 = getelementptr inbounds i8, ptr %.pre1443, i64 1
  store ptr %168, ptr %8, align 8, !tbaa !5
  %169 = call double @qh_strtod(ptr noundef nonnull %168, ptr noundef nonnull %8) #14
  %.pre1445 = load ptr, ptr %8, align 8, !tbaa !5
  %.pre1446 = load i8, ptr %.pre1445, align 1, !tbaa !15
  %170 = icmp eq i8 %.pre1446, 44
  br i1 %170, label %171, label %.thread1478

171:                                              ; preds = %167
  %172 = getelementptr inbounds i8, ptr %.pre1445, i64 1
  store ptr %172, ptr %8, align 8, !tbaa !5
  %173 = call double @qh_strtod(ptr noundef nonnull %172, ptr noundef nonnull %8) #14
  %.pre1447 = load ptr, ptr %8, align 8, !tbaa !5
  %.pre1448 = load i8, ptr %.pre1447, align 1, !tbaa !15
  br label %177

.thread1478:                                      ; preds = %162, %164, %167
  %.16841483 = phi double [ %169, %167 ], [ 0.000000e+00, %164 ], [ 0.000000e+00, %162 ]
  %174 = phi i8 [ %.pre1446, %167 ], [ %.pre1444, %164 ], [ 0, %162 ]
  %.168114741481 = phi double [ %165, %167 ], [ %165, %164 ], [ %.0680.ph1082, %162 ]
  %175 = fmul double %.16841483, %.16841483
  %176 = call double @llvm.fmuladd.f64(double %.168114741481, double %.168114741481, double %175)
  %sqrt = call double @llvm.sqrt.f64(double %176)
  br label %177

177:                                              ; preds = %.thread1478, %171
  %.16841484 = phi double [ %169, %171 ], [ %.16841483, %.thread1478 ]
  %.168114741482 = phi double [ %165, %171 ], [ %.168114741481, %.thread1478 ]
  %178 = phi i8 [ %.pre1448, %171 ], [ %174, %.thread1478 ]
  %.1678 = phi double [ %173, %171 ], [ %sqrt, %.thread1478 ]
  %.not854 = icmp eq i8 %178, 0
  br i1 %.not854, label %.critedge9, label %179

179:                                              ; preds = %177
  %180 = load ptr, ptr %53, align 8, !tbaa !5
  %181 = sext i8 %178 to i64
  %182 = getelementptr inbounds i16, ptr %180, i64 %181
  %183 = load i16, ptr %182, align 2, !tbaa !16
  %184 = and i16 %183, 8192
  %.not855 = icmp eq i16 %184, 0
  br i1 %.not855, label %185, label %.critedge9

185:                                              ; preds = %179
  %186 = load ptr, ptr getelementptr inbounds (i8, ptr @rbox, i64 8), align 8, !tbaa !11
  call void (ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %186, i32 noundef 7069, ptr noundef nonnull @.str.5) #14
  br label %.critedge9

187:                                              ; preds = %63
  %188 = call double @qh_strtod(ptr noundef nonnull %64, ptr noundef nonnull %8) #14
  store double %188, ptr getelementptr inbounds (i8, ptr @rbox, i64 24), align 8, !tbaa !25
  br label %.critedge9

189:                                              ; preds = %63
  %.not850 = icmp eq ptr %.0620.ph1087, null
  %spec.select = select i1 %.not850, ptr %51, ptr %.0620.ph1087
  %190 = add nsw i32 %.0747.ph1059, 1
  %191 = load i8, ptr %64, align 1, !tbaa !15
  %.not8511049 = icmp eq i8 %191, 0
  br i1 %.not8511049, label %.critedge9, label %.lr.ph1051

.lr.ph1051:                                       ; preds = %189, %199
  %192 = phi i8 [ %201, %199 ], [ %191, %189 ]
  %193 = phi ptr [ %200, %199 ], [ %64, %189 ]
  %194 = load ptr, ptr %53, align 8, !tbaa !5
  %195 = sext i8 %192 to i64
  %196 = getelementptr inbounds i16, ptr %194, i64 %195
  %197 = load i16, ptr %196, align 2, !tbaa !16
  %198 = and i16 %197, 8192
  %.not852 = icmp eq i16 %198, 0
  br i1 %.not852, label %199, label %.critedge9

199:                                              ; preds = %.lr.ph1051
  %200 = getelementptr inbounds i8, ptr %193, i64 1
  store ptr %200, ptr %8, align 8, !tbaa !5
  %201 = load i8, ptr %200, align 1, !tbaa !15
  %.not851 = icmp eq i8 %201, 0
  br i1 %.not851, label %.critedge9, label %.lr.ph1051, !llvm.loop !26

202:                                              ; preds = %63
  %203 = call double @qh_strtod(ptr noundef nonnull %64, ptr noundef nonnull %8) #14
  br label %.critedge9

204:                                              ; preds = %63
  %205 = load ptr, ptr %53, align 8, !tbaa !5
  %206 = load i8, ptr %64, align 1, !tbaa !15
  %207 = sext i8 %206 to i64
  %208 = getelementptr inbounds i16, ptr %205, i64 %207
  %209 = load i16, ptr %208, align 2, !tbaa !16
  %210 = and i16 %209, 2048
  %.not849 = icmp eq i16 %210, 0
  br i1 %.not849, label %.critedge9, label %211

211:                                              ; preds = %204
  %212 = call double @qh_strtod(ptr noundef nonnull %64, ptr noundef nonnull %8) #14
  br label %.critedge9

213:                                              ; preds = %63
  %214 = load ptr, ptr getelementptr inbounds (i8, ptr @rbox, i64 8), align 8, !tbaa !11
  call void (ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %214, i32 noundef 7070, ptr noundef nonnull @.str.6, ptr noundef nonnull %64) #14
  call void @qh_errexit_rbox(i32 noundef 1)
  br label %.critedge9

.critedge9:                                       ; preds = %199, %.lr.ph1051, %189, %211, %204, %160, %153, %151, %144, %94, %63, %177, %179, %185, %142, %139, %137, %133, %101, %86, %88, %75, %77, %213, %202, %187, %106, %105, %104, %103, %93, %92, %91, %90
  %.2769 = phi i32 [ %.0767.ph1054, %213 ], [ %.0767.ph1054, %202 ], [ %.0767.ph1054, %187 ], [ %.0767.ph1054, %179 ], [ %.0767.ph1054, %185 ], [ %.0767.ph1054, %177 ], [ %.0767.ph1054, %142 ], [ %.0767.ph1054, %139 ], [ %.17681711, %137 ], [ %.17681711, %133 ], [ %.0767.ph1054, %106 ], [ %.0767.ph1054, %105 ], [ %.0767.ph1054, %104 ], [ %.0767.ph1054, %103 ], [ %.0767.ph1054, %101 ], [ %.0767.ph1054, %93 ], [ %.0767.ph1054, %92 ], [ %.0767.ph1054, %91 ], [ %.0767.ph1054, %90 ], [ %.0767.ph1054, %88 ], [ %.0767.ph1054, %86 ], [ %.0767.ph1054, %77 ], [ %.0767.ph1054, %75 ], [ %.0767.ph1054, %63 ], [ %.0767.ph1054, %94 ], [ %.0767.ph1054, %144 ], [ %.0767.ph1054, %151 ], [ %.0767.ph1054, %153 ], [ %.0767.ph1054, %160 ], [ %.0767.ph1054, %204 ], [ %.0767.ph1054, %211 ], [ %.0767.ph1054, %189 ], [ %.0767.ph1054, %.lr.ph1051 ], [ %.0767.ph1054, %199 ]
  %.2766 = phi i32 [ %.0764.ph1055, %213 ], [ %.0764.ph1055, %202 ], [ %.0764.ph1055, %187 ], [ %.0764.ph1055, %179 ], [ %.0764.ph1055, %185 ], [ %.0764.ph1055, %177 ], [ %.0764.ph1055, %142 ], [ %.0764.ph1055, %139 ], [ %.1765146514701710, %137 ], [ %.1765146514701710, %133 ], [ %.0764.ph1055, %106 ], [ %.0764.ph1055, %105 ], [ %.0764.ph1055, %104 ], [ %.0764.ph1055, %103 ], [ %.0764.ph1055, %101 ], [ %.0764.ph1055, %93 ], [ %.0764.ph1055, %92 ], [ %.0764.ph1055, %91 ], [ %.0764.ph1055, %90 ], [ %.0764.ph1055, %88 ], [ %.0764.ph1055, %86 ], [ %.0764.ph1055, %77 ], [ %.0764.ph1055, %75 ], [ %.0764.ph1055, %63 ], [ %.0764.ph1055, %94 ], [ %.0764.ph1055, %144 ], [ %.0764.ph1055, %151 ], [ %.0764.ph1055, %153 ], [ %.0764.ph1055, %160 ], [ %.0764.ph1055, %204 ], [ %.0764.ph1055, %211 ], [ %.0764.ph1055, %189 ], [ %.0764.ph1055, %.lr.ph1051 ], [ %.0764.ph1055, %199 ]
  %.1759 = phi i32 [ %.0758.ph1056, %213 ], [ %.0758.ph1056, %202 ], [ %.0758.ph1056, %187 ], [ %.0758.ph1056, %179 ], [ %.0758.ph1056, %185 ], [ %.0758.ph1056, %177 ], [ %.0758.ph1056, %142 ], [ %.0758.ph1056, %139 ], [ %.0758.ph1056, %137 ], [ %.0758.ph1056, %133 ], [ %.0758.ph1056, %106 ], [ %.0758.ph1056, %105 ], [ %.0758.ph1056, %104 ], [ %.0758.ph1056, %103 ], [ %102, %101 ], [ %.0758.ph1056, %93 ], [ %.0758.ph1056, %92 ], [ %.0758.ph1056, %91 ], [ %.0758.ph1056, %90 ], [ %.0758.ph1056, %88 ], [ %.0758.ph1056, %86 ], [ %.0758.ph1056, %77 ], [ %.0758.ph1056, %75 ], [ %.0758.ph1056, %63 ], [ %.0758.ph1056, %94 ], [ %.0758.ph1056, %144 ], [ %.0758.ph1056, %151 ], [ %.0758.ph1056, %153 ], [ %.0758.ph1056, %160 ], [ %.0758.ph1056, %204 ], [ %.0758.ph1056, %211 ], [ %.0758.ph1056, %189 ], [ %.0758.ph1056, %.lr.ph1051 ], [ %.0758.ph1056, %199 ]
  %.1754 = phi i32 [ %.0753.ph1057, %213 ], [ %.0753.ph1057, %202 ], [ %.0753.ph1057, %187 ], [ %.0753.ph1057, %179 ], [ %.0753.ph1057, %185 ], [ %.0753.ph1057, %177 ], [ %140, %142 ], [ %140, %139 ], [ %.0753.ph1057, %137 ], [ %.0753.ph1057, %133 ], [ %.0753.ph1057, %106 ], [ %.0753.ph1057, %105 ], [ %.0753.ph1057, %104 ], [ %.0753.ph1057, %103 ], [ %.0753.ph1057, %101 ], [ %.0753.ph1057, %93 ], [ %.0753.ph1057, %92 ], [ %.0753.ph1057, %91 ], [ %.0753.ph1057, %90 ], [ %.0753.ph1057, %88 ], [ %.0753.ph1057, %86 ], [ %.0753.ph1057, %77 ], [ %.0753.ph1057, %75 ], [ %.0753.ph1057, %63 ], [ %.0753.ph1057, %94 ], [ %.0753.ph1057, %144 ], [ %.0753.ph1057, %151 ], [ %.0753.ph1057, %153 ], [ %.0753.ph1057, %160 ], [ %.0753.ph1057, %204 ], [ %.0753.ph1057, %211 ], [ %.0753.ph1057, %189 ], [ %.0753.ph1057, %.lr.ph1051 ], [ %.0753.ph1057, %199 ]
  %.1748 = phi i32 [ %.0747.ph1059, %213 ], [ %.0747.ph1059, %202 ], [ %.0747.ph1059, %187 ], [ %.0747.ph1059, %179 ], [ %.0747.ph1059, %185 ], [ %.0747.ph1059, %177 ], [ %.0747.ph1059, %142 ], [ %.0747.ph1059, %139 ], [ %.0747.ph1059, %137 ], [ %.0747.ph1059, %133 ], [ %.0747.ph1059, %106 ], [ %.0747.ph1059, %105 ], [ %.0747.ph1059, %104 ], [ %.0747.ph1059, %103 ], [ %.0747.ph1059, %101 ], [ %.0747.ph1059, %93 ], [ %.0747.ph1059, %92 ], [ %.0747.ph1059, %91 ], [ %.0747.ph1059, %90 ], [ %.0747.ph1059, %88 ], [ %.0747.ph1059, %86 ], [ %.0747.ph1059, %77 ], [ %.0747.ph1059, %75 ], [ %.0747.ph1059, %63 ], [ %.0747.ph1059, %94 ], [ %.0747.ph1059, %144 ], [ %.0747.ph1059, %151 ], [ %.0747.ph1059, %153 ], [ %.0747.ph1059, %160 ], [ %.0747.ph1059, %204 ], [ %.0747.ph1059, %211 ], [ %190, %189 ], [ %190, %.lr.ph1051 ], [ %190, %199 ]
  %.1745 = phi i32 [ %.0744.ph1060, %213 ], [ %.0744.ph1060, %202 ], [ %.0744.ph1060, %187 ], [ %.0744.ph1060, %179 ], [ %.0744.ph1060, %185 ], [ %.0744.ph1060, %177 ], [ %.0744.ph1060, %142 ], [ %.0744.ph1060, %139 ], [ %.0744.ph1060, %137 ], [ %.0744.ph1060, %133 ], [ %.0744.ph1060, %106 ], [ %.0744.ph1060, %105 ], [ %.0744.ph1060, %104 ], [ %.0744.ph1060, %103 ], [ %.0744.ph1060, %101 ], [ 1, %93 ], [ %.0744.ph1060, %92 ], [ %.0744.ph1060, %91 ], [ %.0744.ph1060, %90 ], [ %.0744.ph1060, %88 ], [ %.0744.ph1060, %86 ], [ %.0744.ph1060, %77 ], [ %.0744.ph1060, %75 ], [ %.0744.ph1060, %63 ], [ %.0744.ph1060, %94 ], [ %.0744.ph1060, %144 ], [ %.0744.ph1060, %151 ], [ %.0744.ph1060, %153 ], [ %.0744.ph1060, %160 ], [ %.0744.ph1060, %204 ], [ %.0744.ph1060, %211 ], [ %.0744.ph1060, %189 ], [ %.0744.ph1060, %.lr.ph1051 ], [ %.0744.ph1060, %199 ]
  %.1743 = phi i32 [ %.0742.ph1061, %213 ], [ %.0742.ph1061, %202 ], [ %.0742.ph1061, %187 ], [ %.0742.ph1061, %179 ], [ %.0742.ph1061, %185 ], [ %.0742.ph1061, %177 ], [ %.0742.ph1061, %142 ], [ %.0742.ph1061, %139 ], [ %.0742.ph1061, %137 ], [ %.0742.ph1061, %133 ], [ %.0742.ph1061, %106 ], [ %.0742.ph1061, %105 ], [ %.0742.ph1061, %104 ], [ %.0742.ph1061, %103 ], [ %.0742.ph1061, %101 ], [ %.0742.ph1061, %93 ], [ %.0742.ph1061, %92 ], [ %.0742.ph1061, %91 ], [ %.0742.ph1061, %90 ], [ %.0742.ph1061, %88 ], [ %.0742.ph1061, %86 ], [ %.0742.ph1061, %77 ], [ %.0742.ph1061, %75 ], [ %.0742.ph1061, %63 ], [ %.0742.ph1061, %94 ], [ %.0742.ph1061, %144 ], [ %.0742.ph1061, %151 ], [ %.0742.ph1061, %153 ], [ %.0742.ph1061, %160 ], [ 1, %204 ], [ 1, %211 ], [ %.0742.ph1061, %189 ], [ %.0742.ph1061, %.lr.ph1051 ], [ %.0742.ph1061, %199 ]
  %.1741 = phi i32 [ %.0740.ph1062, %213 ], [ %.0740.ph1062, %202 ], [ %.0740.ph1062, %187 ], [ %.0740.ph1062, %179 ], [ %.0740.ph1062, %185 ], [ %.0740.ph1062, %177 ], [ %.0740.ph1062, %142 ], [ %.0740.ph1062, %139 ], [ %.0740.ph1062, %137 ], [ %.0740.ph1062, %133 ], [ %.0740.ph1062, %106 ], [ %.0740.ph1062, %105 ], [ %.0740.ph1062, %104 ], [ %.0740.ph1062, %103 ], [ %.0740.ph1062, %101 ], [ %.0740.ph1062, %93 ], [ %.0740.ph1062, %92 ], [ %.0740.ph1062, %91 ], [ %.0740.ph1062, %90 ], [ %.0740.ph1062, %88 ], [ %.0740.ph1062, %86 ], [ %.0740.ph1062, %77 ], [ %.0740.ph1062, %75 ], [ 1, %63 ], [ %.0740.ph1062, %94 ], [ %.0740.ph1062, %144 ], [ %.0740.ph1062, %151 ], [ %.0740.ph1062, %153 ], [ %.0740.ph1062, %160 ], [ %.0740.ph1062, %204 ], [ %.0740.ph1062, %211 ], [ %.0740.ph1062, %189 ], [ %.0740.ph1062, %.lr.ph1051 ], [ %.0740.ph1062, %199 ]
  %.1739 = phi i32 [ %.0738.ph1063, %213 ], [ %.0738.ph1063, %202 ], [ %.0738.ph1063, %187 ], [ %.0738.ph1063, %179 ], [ %.0738.ph1063, %185 ], [ %.0738.ph1063, %177 ], [ %.0738.ph1063, %142 ], [ %.0738.ph1063, %139 ], [ %.0738.ph1063, %137 ], [ %.0738.ph1063, %133 ], [ %.0738.ph1063, %106 ], [ %.0738.ph1063, %105 ], [ %.0738.ph1063, %104 ], [ %.0738.ph1063, %103 ], [ %.0738.ph1063, %101 ], [ %.0738.ph1063, %93 ], [ %.0738.ph1063, %92 ], [ %.0738.ph1063, %91 ], [ %.0738.ph1063, %90 ], [ %.0738.ph1063, %88 ], [ %.0738.ph1063, %86 ], [ %.0738.ph1063, %77 ], [ %.0738.ph1063, %75 ], [ %.0738.ph1063, %63 ], [ %.0738.ph1063, %94 ], [ %.0738.ph1063, %144 ], [ %.0738.ph1063, %151 ], [ 1, %153 ], [ 1, %160 ], [ %.0738.ph1063, %204 ], [ %.0738.ph1063, %211 ], [ %.0738.ph1063, %189 ], [ %.0738.ph1063, %.lr.ph1051 ], [ %.0738.ph1063, %199 ]
  %.1736 = phi i32 [ %.0735.ph1064, %213 ], [ %.0735.ph1064, %202 ], [ %.0735.ph1064, %187 ], [ %.0735.ph1064, %179 ], [ %.0735.ph1064, %185 ], [ %.0735.ph1064, %177 ], [ %.0735.ph1064, %142 ], [ %.0735.ph1064, %139 ], [ %.0735.ph1064, %137 ], [ %.0735.ph1064, %133 ], [ %.0735.ph1064, %106 ], [ %.0735.ph1064, %105 ], [ %.0735.ph1064, %104 ], [ %.0735.ph1064, %103 ], [ %.0735.ph1064, %101 ], [ %.0735.ph1064, %93 ], [ 1, %92 ], [ %.0735.ph1064, %91 ], [ %.0735.ph1064, %90 ], [ %.0735.ph1064, %88 ], [ %.0735.ph1064, %86 ], [ %.0735.ph1064, %77 ], [ %.0735.ph1064, %75 ], [ %.0735.ph1064, %63 ], [ %.0735.ph1064, %94 ], [ %.0735.ph1064, %144 ], [ %.0735.ph1064, %151 ], [ %.0735.ph1064, %153 ], [ %.0735.ph1064, %160 ], [ %.0735.ph1064, %204 ], [ %.0735.ph1064, %211 ], [ %.0735.ph1064, %189 ], [ %.0735.ph1064, %.lr.ph1051 ], [ %.0735.ph1064, %199 ]
  %.1734 = phi i32 [ %.0733.ph1065, %213 ], [ 1, %202 ], [ %.0733.ph1065, %187 ], [ %.0733.ph1065, %179 ], [ %.0733.ph1065, %185 ], [ %.0733.ph1065, %177 ], [ %.0733.ph1065, %142 ], [ %.0733.ph1065, %139 ], [ %.0733.ph1065, %137 ], [ %.0733.ph1065, %133 ], [ %.0733.ph1065, %106 ], [ %.0733.ph1065, %105 ], [ %.0733.ph1065, %104 ], [ %.0733.ph1065, %103 ], [ %.0733.ph1065, %101 ], [ %.0733.ph1065, %93 ], [ %.0733.ph1065, %92 ], [ %.0733.ph1065, %91 ], [ %.0733.ph1065, %90 ], [ %.0733.ph1065, %88 ], [ %.0733.ph1065, %86 ], [ %.0733.ph1065, %77 ], [ %.0733.ph1065, %75 ], [ %.0733.ph1065, %63 ], [ %.0733.ph1065, %94 ], [ %.0733.ph1065, %144 ], [ %.0733.ph1065, %151 ], [ %.0733.ph1065, %153 ], [ %.0733.ph1065, %160 ], [ %.0733.ph1065, %204 ], [ %.0733.ph1065, %211 ], [ %.0733.ph1065, %189 ], [ %.0733.ph1065, %.lr.ph1051 ], [ %.0733.ph1065, %199 ]
  %.1732 = phi i32 [ %.0731.ph1066, %213 ], [ %.0731.ph1066, %202 ], [ %.0731.ph1066, %187 ], [ %.0731.ph1066, %179 ], [ %.0731.ph1066, %185 ], [ %.0731.ph1066, %177 ], [ %.0731.ph1066, %142 ], [ %.0731.ph1066, %139 ], [ %.0731.ph1066, %137 ], [ %.0731.ph1066, %133 ], [ %.0731.ph1066, %106 ], [ %.0731.ph1066, %105 ], [ %.0731.ph1066, %104 ], [ %.0731.ph1066, %103 ], [ %.0731.ph1066, %101 ], [ %.0731.ph1066, %93 ], [ %.0731.ph1066, %92 ], [ %.0731.ph1066, %91 ], [ %.0731.ph1066, %90 ], [ %.0731.ph1066, %88 ], [ %.0731.ph1066, %86 ], [ 1, %77 ], [ 1, %75 ], [ %.0731.ph1066, %63 ], [ %.0731.ph1066, %94 ], [ %.0731.ph1066, %144 ], [ %.0731.ph1066, %151 ], [ %.0731.ph1066, %153 ], [ %.0731.ph1066, %160 ], [ %.0731.ph1066, %204 ], [ %.0731.ph1066, %211 ], [ %.0731.ph1066, %189 ], [ %.0731.ph1066, %.lr.ph1051 ], [ %.0731.ph1066, %199 ]
  %.1725 = phi i32 [ %.0724.ph1067, %213 ], [ %.0724.ph1067, %202 ], [ %.0724.ph1067, %187 ], [ %.0724.ph1067, %179 ], [ %.0724.ph1067, %185 ], [ %.0724.ph1067, %177 ], [ %.0724.ph1067, %142 ], [ %.0724.ph1067, %139 ], [ %.0724.ph1067, %137 ], [ %.0724.ph1067, %133 ], [ %.0724.ph1067, %106 ], [ %.0724.ph1067, %105 ], [ %.0724.ph1067, %104 ], [ %.0724.ph1067, %103 ], [ %.0724.ph1067, %101 ], [ %.0724.ph1067, %93 ], [ %.0724.ph1067, %92 ], [ %.0724.ph1067, %91 ], [ %.0724.ph1067, %90 ], [ %.0724.ph1067, %88 ], [ %.0724.ph1067, %86 ], [ %.0724.ph1067, %77 ], [ %.0724.ph1067, %75 ], [ %.0724.ph1067, %63 ], [ %.0724.ph1067, %94 ], [ 1, %144 ], [ 1, %151 ], [ %.0724.ph1067, %153 ], [ %.0724.ph1067, %160 ], [ %.0724.ph1067, %204 ], [ %.0724.ph1067, %211 ], [ %.0724.ph1067, %189 ], [ %.0724.ph1067, %.lr.ph1051 ], [ %.0724.ph1067, %199 ]
  %.1723 = phi i32 [ %.0722.ph1068, %213 ], [ %.0722.ph1068, %202 ], [ %.0722.ph1068, %187 ], [ %.0722.ph1068, %179 ], [ %.0722.ph1068, %185 ], [ %.0722.ph1068, %177 ], [ %.0722.ph1068, %142 ], [ %.0722.ph1068, %139 ], [ %.0722.ph1068, %137 ], [ %.0722.ph1068, %133 ], [ %.0722.ph1068, %106 ], [ %.0722.ph1068, %105 ], [ %.0722.ph1068, %104 ], [ %.0722.ph1068, %103 ], [ %.0722.ph1068, %101 ], [ %.0722.ph1068, %93 ], [ %.0722.ph1068, %92 ], [ %.0722.ph1068, %91 ], [ 1, %90 ], [ %.0722.ph1068, %88 ], [ %.0722.ph1068, %86 ], [ %.0722.ph1068, %77 ], [ %.0722.ph1068, %75 ], [ %.0722.ph1068, %63 ], [ %.0722.ph1068, %94 ], [ %.0722.ph1068, %144 ], [ %.0722.ph1068, %151 ], [ %.0722.ph1068, %153 ], [ %.0722.ph1068, %160 ], [ %.0722.ph1068, %204 ], [ %.0722.ph1068, %211 ], [ %.0722.ph1068, %189 ], [ %.0722.ph1068, %.lr.ph1051 ], [ %.0722.ph1068, %199 ]
  %.1721 = phi i32 [ %.0720.ph1069, %213 ], [ %.0720.ph1069, %202 ], [ %.0720.ph1069, %187 ], [ %.0720.ph1069, %179 ], [ %.0720.ph1069, %185 ], [ %.0720.ph1069, %177 ], [ %.0720.ph1069, %142 ], [ %.0720.ph1069, %139 ], [ %.0720.ph1069, %137 ], [ %.0720.ph1069, %133 ], [ %.0720.ph1069, %106 ], [ %.0720.ph1069, %105 ], [ %.0720.ph1069, %104 ], [ %.0720.ph1069, %103 ], [ %.0720.ph1069, %101 ], [ %.0720.ph1069, %93 ], [ %.0720.ph1069, %92 ], [ 1, %91 ], [ %.0720.ph1069, %90 ], [ %.0720.ph1069, %88 ], [ %.0720.ph1069, %86 ], [ %.0720.ph1069, %77 ], [ %.0720.ph1069, %75 ], [ %.0720.ph1069, %63 ], [ %.0720.ph1069, %94 ], [ %.0720.ph1069, %144 ], [ %.0720.ph1069, %151 ], [ %.0720.ph1069, %153 ], [ %.0720.ph1069, %160 ], [ %.0720.ph1069, %204 ], [ %.0720.ph1069, %211 ], [ %.0720.ph1069, %189 ], [ %.0720.ph1069, %.lr.ph1051 ], [ %.0720.ph1069, %199 ]
  %.1719 = phi i32 [ %.0718.ph1070, %213 ], [ %.0718.ph1070, %202 ], [ %.0718.ph1070, %187 ], [ %.0718.ph1070, %179 ], [ %.0718.ph1070, %185 ], [ %.0718.ph1070, %177 ], [ %.0718.ph1070, %142 ], [ %.0718.ph1070, %139 ], [ %.0718.ph1070, %137 ], [ %.0718.ph1070, %133 ], [ %.0718.ph1070, %106 ], [ %.0718.ph1070, %105 ], [ %.0718.ph1070, %104 ], [ %.0718.ph1070, %103 ], [ %.0718.ph1070, %101 ], [ %.0718.ph1070, %93 ], [ %.0718.ph1070, %92 ], [ %.0718.ph1070, %91 ], [ %.0718.ph1070, %90 ], [ 1, %88 ], [ 1, %86 ], [ %.0718.ph1070, %77 ], [ %.0718.ph1070, %75 ], [ %.0718.ph1070, %63 ], [ %.0718.ph1070, %94 ], [ %.0718.ph1070, %144 ], [ %.0718.ph1070, %151 ], [ %.0718.ph1070, %153 ], [ %.0718.ph1070, %160 ], [ %.0718.ph1070, %204 ], [ %.0718.ph1070, %211 ], [ %.0718.ph1070, %189 ], [ %.0718.ph1070, %.lr.ph1051 ], [ %.0718.ph1070, %199 ]
  %.1717 = phi i32 [ %.0716.ph1071, %213 ], [ %.0716.ph1071, %202 ], [ %.0716.ph1071, %187 ], [ %.0716.ph1071, %179 ], [ %.0716.ph1071, %185 ], [ %.0716.ph1071, %177 ], [ %.0716.ph1071, %142 ], [ %.0716.ph1071, %139 ], [ %.0716.ph1071, %137 ], [ %.0716.ph1071, %133 ], [ %.0716.ph1071, %106 ], [ %.0716.ph1071, %105 ], [ %.0716.ph1071, %104 ], [ %.0716.ph1071, %103 ], [ 0, %101 ], [ %.0716.ph1071, %93 ], [ %.0716.ph1071, %92 ], [ %.0716.ph1071, %91 ], [ %.0716.ph1071, %90 ], [ %.0716.ph1071, %88 ], [ %.0716.ph1071, %86 ], [ %.0716.ph1071, %77 ], [ %.0716.ph1071, %75 ], [ %.0716.ph1071, %63 ], [ 1, %94 ], [ %.0716.ph1071, %144 ], [ %.0716.ph1071, %151 ], [ %.0716.ph1071, %153 ], [ %.0716.ph1071, %160 ], [ %.0716.ph1071, %204 ], [ %.0716.ph1071, %211 ], [ %.0716.ph1071, %189 ], [ %.0716.ph1071, %.lr.ph1051 ], [ %.0716.ph1071, %199 ]
  %.1715 = phi i32 [ %.0714.ph1072, %213 ], [ %.0714.ph1072, %202 ], [ %.0714.ph1072, %187 ], [ %.0714.ph1072, %179 ], [ %.0714.ph1072, %185 ], [ %.0714.ph1072, %177 ], [ %.0714.ph1072, %142 ], [ %.0714.ph1072, %139 ], [ %.0714.ph1072, %137 ], [ %.0714.ph1072, %133 ], [ %.0714.ph1072, %106 ], [ %.0714.ph1072, %105 ], [ %.0714.ph1072, %104 ], [ %.0714.ph1072, %103 ], [ 1, %101 ], [ %.0714.ph1072, %93 ], [ %.0714.ph1072, %92 ], [ %.0714.ph1072, %91 ], [ %.0714.ph1072, %90 ], [ %.0714.ph1072, %88 ], [ %.0714.ph1072, %86 ], [ %.0714.ph1072, %77 ], [ %.0714.ph1072, %75 ], [ %.0714.ph1072, %63 ], [ 1, %94 ], [ %.0714.ph1072, %144 ], [ %.0714.ph1072, %151 ], [ %.0714.ph1072, %153 ], [ %.0714.ph1072, %160 ], [ %.0714.ph1072, %204 ], [ %.0714.ph1072, %211 ], [ %.0714.ph1072, %189 ], [ %.0714.ph1072, %.lr.ph1051 ], [ %.0714.ph1072, %199 ]
  %.1713 = phi i32 [ %.0712.ph1073, %213 ], [ %.0712.ph1073, %202 ], [ %.0712.ph1073, %187 ], [ %.0712.ph1073, %179 ], [ %.0712.ph1073, %185 ], [ %.0712.ph1073, %177 ], [ %.0712.ph1073, %142 ], [ %.0712.ph1073, %139 ], [ %.0712.ph1073, %137 ], [ %.0712.ph1073, %133 ], [ 1, %106 ], [ %.0712.ph1073, %105 ], [ %.0712.ph1073, %104 ], [ %.0712.ph1073, %103 ], [ %.0712.ph1073, %101 ], [ %.0712.ph1073, %93 ], [ %.0712.ph1073, %92 ], [ %.0712.ph1073, %91 ], [ %.0712.ph1073, %90 ], [ %.0712.ph1073, %88 ], [ %.0712.ph1073, %86 ], [ %.0712.ph1073, %77 ], [ %.0712.ph1073, %75 ], [ %.0712.ph1073, %63 ], [ %.0712.ph1073, %94 ], [ %.0712.ph1073, %144 ], [ %.0712.ph1073, %151 ], [ %.0712.ph1073, %153 ], [ %.0712.ph1073, %160 ], [ %.0712.ph1073, %204 ], [ %.0712.ph1073, %211 ], [ %.0712.ph1073, %189 ], [ %.0712.ph1073, %.lr.ph1051 ], [ %.0712.ph1073, %199 ]
  %.1711 = phi i32 [ %.0710.ph1074, %213 ], [ %.0710.ph1074, %202 ], [ %.0710.ph1074, %187 ], [ %.0710.ph1074, %179 ], [ %.0710.ph1074, %185 ], [ %.0710.ph1074, %177 ], [ %.0710.ph1074, %142 ], [ %.0710.ph1074, %139 ], [ %.0710.ph1074, %137 ], [ %.0710.ph1074, %133 ], [ %.0710.ph1074, %106 ], [ %.0710.ph1074, %105 ], [ %.0710.ph1074, %104 ], [ 1, %103 ], [ %.0710.ph1074, %101 ], [ %.0710.ph1074, %93 ], [ %.0710.ph1074, %92 ], [ %.0710.ph1074, %91 ], [ %.0710.ph1074, %90 ], [ %.0710.ph1074, %88 ], [ %.0710.ph1074, %86 ], [ %.0710.ph1074, %77 ], [ %.0710.ph1074, %75 ], [ %.0710.ph1074, %63 ], [ %.0710.ph1074, %94 ], [ %.0710.ph1074, %144 ], [ %.0710.ph1074, %151 ], [ %.0710.ph1074, %153 ], [ %.0710.ph1074, %160 ], [ %.0710.ph1074, %204 ], [ %.0710.ph1074, %211 ], [ %.0710.ph1074, %189 ], [ %.0710.ph1074, %.lr.ph1051 ], [ %.0710.ph1074, %199 ]
  %.1709 = phi i32 [ %.0708.ph1075, %213 ], [ %.0708.ph1075, %202 ], [ %.0708.ph1075, %187 ], [ %.0708.ph1075, %179 ], [ %.0708.ph1075, %185 ], [ %.0708.ph1075, %177 ], [ %.0708.ph1075, %142 ], [ %.0708.ph1075, %139 ], [ %.0708.ph1075, %137 ], [ %.0708.ph1075, %133 ], [ %.0708.ph1075, %106 ], [ %.0708.ph1075, %105 ], [ 1, %104 ], [ %.0708.ph1075, %103 ], [ %.0708.ph1075, %101 ], [ %.0708.ph1075, %93 ], [ %.0708.ph1075, %92 ], [ %.0708.ph1075, %91 ], [ %.0708.ph1075, %90 ], [ %.0708.ph1075, %88 ], [ %.0708.ph1075, %86 ], [ %.0708.ph1075, %77 ], [ %.0708.ph1075, %75 ], [ %.0708.ph1075, %63 ], [ %.0708.ph1075, %94 ], [ %.0708.ph1075, %144 ], [ %.0708.ph1075, %151 ], [ %.0708.ph1075, %153 ], [ %.0708.ph1075, %160 ], [ %.0708.ph1075, %204 ], [ %.0708.ph1075, %211 ], [ %.0708.ph1075, %189 ], [ %.0708.ph1075, %.lr.ph1051 ], [ %.0708.ph1075, %199 ]
  %.1707 = phi i32 [ %.0706.ph1076, %213 ], [ %.0706.ph1076, %202 ], [ %.0706.ph1076, %187 ], [ 1, %179 ], [ 1, %185 ], [ 1, %177 ], [ %.0706.ph1076, %142 ], [ %.0706.ph1076, %139 ], [ %.0706.ph1076, %137 ], [ %.0706.ph1076, %133 ], [ %.0706.ph1076, %106 ], [ %.0706.ph1076, %105 ], [ %.0706.ph1076, %104 ], [ %.0706.ph1076, %103 ], [ %.0706.ph1076, %101 ], [ %.0706.ph1076, %93 ], [ %.0706.ph1076, %92 ], [ %.0706.ph1076, %91 ], [ %.0706.ph1076, %90 ], [ %.0706.ph1076, %88 ], [ %.0706.ph1076, %86 ], [ %.0706.ph1076, %77 ], [ %.0706.ph1076, %75 ], [ %.0706.ph1076, %63 ], [ %.0706.ph1076, %94 ], [ %.0706.ph1076, %144 ], [ %.0706.ph1076, %151 ], [ %.0706.ph1076, %153 ], [ %.0706.ph1076, %160 ], [ %.0706.ph1076, %204 ], [ %.0706.ph1076, %211 ], [ %.0706.ph1076, %189 ], [ %.0706.ph1076, %.lr.ph1051 ], [ %.0706.ph1076, %199 ]
  %.1705 = phi double [ %.0704.ph1077, %213 ], [ %203, %202 ], [ %.0704.ph1077, %187 ], [ %.0704.ph1077, %179 ], [ %.0704.ph1077, %185 ], [ %.0704.ph1077, %177 ], [ %.0704.ph1077, %142 ], [ %.0704.ph1077, %139 ], [ %.0704.ph1077, %137 ], [ %.0704.ph1077, %133 ], [ %.0704.ph1077, %106 ], [ %.0704.ph1077, %105 ], [ %.0704.ph1077, %104 ], [ %.0704.ph1077, %103 ], [ %.0704.ph1077, %101 ], [ %.0704.ph1077, %93 ], [ %.0704.ph1077, %92 ], [ %.0704.ph1077, %91 ], [ %.0704.ph1077, %90 ], [ %.0704.ph1077, %88 ], [ %.0704.ph1077, %86 ], [ %.0704.ph1077, %77 ], [ %.0704.ph1077, %75 ], [ %.0704.ph1077, %63 ], [ %.0704.ph1077, %94 ], [ %.0704.ph1077, %144 ], [ %.0704.ph1077, %151 ], [ %.0704.ph1077, %153 ], [ %.0704.ph1077, %160 ], [ %.0704.ph1077, %204 ], [ %.0704.ph1077, %211 ], [ %.0704.ph1077, %189 ], [ %.0704.ph1077, %.lr.ph1051 ], [ %.0704.ph1077, %199 ]
  %.2697 = phi double [ %.0695.ph1078, %213 ], [ %.0695.ph1078, %202 ], [ %.0695.ph1078, %187 ], [ %.0695.ph1078, %179 ], [ %.0695.ph1078, %185 ], [ %.0695.ph1078, %177 ], [ %.0695.ph1078, %142 ], [ %.0695.ph1078, %139 ], [ %.0695.ph1078, %137 ], [ %.0695.ph1078, %133 ], [ %.0695.ph1078, %106 ], [ %.0695.ph1078, %105 ], [ %.0695.ph1078, %104 ], [ %.0695.ph1078, %103 ], [ %.0695.ph1078, %101 ], [ %.0695.ph1078, %93 ], [ %.0695.ph1078, %92 ], [ %.0695.ph1078, %91 ], [ %.0695.ph1078, %90 ], [ %.0695.ph1078, %88 ], [ %.0695.ph1078, %86 ], [ %.0695.ph1078, %77 ], [ %.0695.ph1078, %75 ], [ %.0695.ph1078, %63 ], [ %.0695.ph1078, %94 ], [ 5.000000e-01, %144 ], [ %152, %151 ], [ %.0695.ph1078, %153 ], [ %.0695.ph1078, %160 ], [ %.0695.ph1078, %204 ], [ %.0695.ph1078, %211 ], [ %.0695.ph1078, %189 ], [ %.0695.ph1078, %.lr.ph1051 ], [ %.0695.ph1078, %199 ]
  %.3693 = phi double [ %.0690.ph1079, %213 ], [ %.0690.ph1079, %202 ], [ %.0690.ph1079, %187 ], [ %.0690.ph1079, %179 ], [ %.0690.ph1079, %185 ], [ %.0690.ph1079, %177 ], [ %.0690.ph1079, %142 ], [ %.0690.ph1079, %139 ], [ %.0690.ph1079, %137 ], [ %.0690.ph1079, %133 ], [ %.0690.ph1079, %106 ], [ %.0690.ph1079, %105 ], [ %.0690.ph1079, %104 ], [ %.0690.ph1079, %103 ], [ %.0690.ph1079, %101 ], [ %.0690.ph1079, %93 ], [ %.0690.ph1079, %92 ], [ %.0690.ph1079, %91 ], [ %.0690.ph1079, %90 ], [ %.0690.ph1079, %88 ], [ %.0690.ph1079, %86 ], [ %.0690.ph1079, %77 ], [ %.0690.ph1079, %75 ], [ %.0690.ph1079, %63 ], [ %.0690.ph1079, %94 ], [ %.0690.ph1079, %144 ], [ %.0690.ph1079, %151 ], [ 1.000000e+01, %153 ], [ %161, %160 ], [ 1.000000e+00, %204 ], [ %212, %211 ], [ %.0690.ph1079, %189 ], [ %.0690.ph1079, %.lr.ph1051 ], [ %.0690.ph1079, %199 ]
  %.2689 = phi double [ %.0687.ph1080, %213 ], [ %.0687.ph1080, %202 ], [ %.0687.ph1080, %187 ], [ %.0687.ph1080, %179 ], [ %.0687.ph1080, %185 ], [ %.0687.ph1080, %177 ], [ %.0687.ph1080, %142 ], [ %.0687.ph1080, %139 ], [ %.168814711709, %137 ], [ %.168814711709, %133 ], [ %.0687.ph1080, %106 ], [ %.0687.ph1080, %105 ], [ %.0687.ph1080, %104 ], [ %.0687.ph1080, %103 ], [ %.0687.ph1080, %101 ], [ %.0687.ph1080, %93 ], [ %.0687.ph1080, %92 ], [ %.0687.ph1080, %91 ], [ %.0687.ph1080, %90 ], [ %.0687.ph1080, %88 ], [ %.0687.ph1080, %86 ], [ %.0687.ph1080, %77 ], [ %.0687.ph1080, %75 ], [ %.0687.ph1080, %63 ], [ %.0687.ph1080, %94 ], [ %.0687.ph1080, %144 ], [ %.0687.ph1080, %151 ], [ %.0687.ph1080, %153 ], [ %.0687.ph1080, %160 ], [ %.0687.ph1080, %204 ], [ %.0687.ph1080, %211 ], [ %.0687.ph1080, %189 ], [ %.0687.ph1080, %.lr.ph1051 ], [ %.0687.ph1080, %199 ]
  %.2685 = phi double [ %.0683.ph1081, %213 ], [ %.0683.ph1081, %202 ], [ %.0683.ph1081, %187 ], [ %.16841484, %179 ], [ 4.000000e+00, %185 ], [ %.16841484, %177 ], [ %.0683.ph1081, %142 ], [ %.0683.ph1081, %139 ], [ %.0683.ph1081, %137 ], [ %.0683.ph1081, %133 ], [ %.0683.ph1081, %106 ], [ %.0683.ph1081, %105 ], [ %.0683.ph1081, %104 ], [ %.0683.ph1081, %103 ], [ %.0683.ph1081, %101 ], [ %.0683.ph1081, %93 ], [ %.0683.ph1081, %92 ], [ %.0683.ph1081, %91 ], [ %.0683.ph1081, %90 ], [ %.0683.ph1081, %88 ], [ %.0683.ph1081, %86 ], [ %.0683.ph1081, %77 ], [ %.0683.ph1081, %75 ], [ %.0683.ph1081, %63 ], [ %.0683.ph1081, %94 ], [ %.0683.ph1081, %144 ], [ %.0683.ph1081, %151 ], [ %.0683.ph1081, %153 ], [ %.0683.ph1081, %160 ], [ %.0683.ph1081, %204 ], [ %.0683.ph1081, %211 ], [ %.0683.ph1081, %189 ], [ %.0683.ph1081, %.lr.ph1051 ], [ %.0683.ph1081, %199 ]
  %.2682 = phi double [ %.0680.ph1082, %213 ], [ %.0680.ph1082, %202 ], [ %.0680.ph1082, %187 ], [ %.168114741482, %179 ], [ 3.000000e+00, %185 ], [ %.168114741482, %177 ], [ %.0680.ph1082, %142 ], [ %.0680.ph1082, %139 ], [ %.0680.ph1082, %137 ], [ %.0680.ph1082, %133 ], [ %.0680.ph1082, %106 ], [ %.0680.ph1082, %105 ], [ %.0680.ph1082, %104 ], [ %.0680.ph1082, %103 ], [ %.0680.ph1082, %101 ], [ %.0680.ph1082, %93 ], [ %.0680.ph1082, %92 ], [ %.0680.ph1082, %91 ], [ %.0680.ph1082, %90 ], [ %.0680.ph1082, %88 ], [ %.0680.ph1082, %86 ], [ %.0680.ph1082, %77 ], [ %.0680.ph1082, %75 ], [ %.0680.ph1082, %63 ], [ %.0680.ph1082, %94 ], [ %.0680.ph1082, %144 ], [ %.0680.ph1082, %151 ], [ %.0680.ph1082, %153 ], [ %.0680.ph1082, %160 ], [ %.0680.ph1082, %204 ], [ %.0680.ph1082, %211 ], [ %.0680.ph1082, %189 ], [ %.0680.ph1082, %.lr.ph1051 ], [ %.0680.ph1082, %199 ]
  %.2679 = phi double [ %.0677.ph1083, %213 ], [ %.0677.ph1083, %202 ], [ %.0677.ph1083, %187 ], [ %.1678, %179 ], [ 5.000000e+00, %185 ], [ %.1678, %177 ], [ %.0677.ph1083, %142 ], [ %.0677.ph1083, %139 ], [ %.0677.ph1083, %137 ], [ %.0677.ph1083, %133 ], [ %.0677.ph1083, %106 ], [ %.0677.ph1083, %105 ], [ %.0677.ph1083, %104 ], [ %.0677.ph1083, %103 ], [ %.0677.ph1083, %101 ], [ %.0677.ph1083, %93 ], [ %.0677.ph1083, %92 ], [ %.0677.ph1083, %91 ], [ %.0677.ph1083, %90 ], [ %.0677.ph1083, %88 ], [ %.0677.ph1083, %86 ], [ %.0677.ph1083, %77 ], [ %.0677.ph1083, %75 ], [ %.0677.ph1083, %63 ], [ %.0677.ph1083, %94 ], [ %.0677.ph1083, %144 ], [ %.0677.ph1083, %151 ], [ %.0677.ph1083, %153 ], [ %.0677.ph1083, %160 ], [ %.0677.ph1083, %204 ], [ %.0677.ph1083, %211 ], [ %.0677.ph1083, %189 ], [ %.0677.ph1083, %.lr.ph1051 ], [ %.0677.ph1083, %199 ]
  %.1642 = phi double [ %.0641.ph1084, %213 ], [ %.0641.ph1084, %202 ], [ %.0641.ph1084, %187 ], [ %.0641.ph1084, %179 ], [ %.0641.ph1084, %185 ], [ %.0641.ph1084, %177 ], [ %.0641.ph1084, %142 ], [ %.0641.ph1084, %139 ], [ %.0641.ph1084, %137 ], [ %.0641.ph1084, %133 ], [ %.0641.ph1084, %106 ], [ %.0641.ph1084, %105 ], [ %.0641.ph1084, %104 ], [ %.0641.ph1084, %103 ], [ %.0641.ph1084, %101 ], [ %.0641.ph1084, %93 ], [ %.0641.ph1084, %92 ], [ %.0641.ph1084, %91 ], [ %.0641.ph1084, %90 ], [ %.0641.ph1084, %88 ], [ %.0641.ph1084, %86 ], [ %78, %77 ], [ %.0641.ph1084, %75 ], [ %.0641.ph1084, %63 ], [ %.0641.ph1084, %94 ], [ %.0641.ph1084, %144 ], [ %.0641.ph1084, %151 ], [ %.0641.ph1084, %153 ], [ %.0641.ph1084, %160 ], [ %.0641.ph1084, %204 ], [ %.0641.ph1084, %211 ], [ %.0641.ph1084, %189 ], [ %.0641.ph1084, %.lr.ph1051 ], [ %.0641.ph1084, %199 ]
  %.1639 = phi double [ %.0638.ph1085, %213 ], [ %.0638.ph1085, %202 ], [ %.0638.ph1085, %187 ], [ %.0638.ph1085, %179 ], [ %.0638.ph1085, %185 ], [ %.0638.ph1085, %177 ], [ %.0638.ph1085, %142 ], [ %.0638.ph1085, %139 ], [ %.0638.ph1085, %137 ], [ %.0638.ph1085, %133 ], [ %.0638.ph1085, %106 ], [ %.0638.ph1085, %105 ], [ %.0638.ph1085, %104 ], [ %.0638.ph1085, %103 ], [ %.0638.ph1085, %101 ], [ %.0638.ph1085, %93 ], [ %.0638.ph1085, %92 ], [ %.0638.ph1085, %91 ], [ %.0638.ph1085, %90 ], [ %89, %88 ], [ %.0638.ph1085, %86 ], [ %.0638.ph1085, %77 ], [ %.0638.ph1085, %75 ], [ %.0638.ph1085, %63 ], [ %.0638.ph1085, %94 ], [ %.0638.ph1085, %144 ], [ %.0638.ph1085, %151 ], [ %.0638.ph1085, %153 ], [ %.0638.ph1085, %160 ], [ %.0638.ph1085, %204 ], [ %.0638.ph1085, %211 ], [ %.0638.ph1085, %189 ], [ %.0638.ph1085, %.lr.ph1051 ], [ %.0638.ph1085, %199 ]
  %.1636 = phi double [ %.0635.ph1086, %213 ], [ %.0635.ph1086, %202 ], [ %.0635.ph1086, %187 ], [ %.0635.ph1086, %179 ], [ %.0635.ph1086, %185 ], [ %.0635.ph1086, %177 ], [ %.0635.ph1086, %142 ], [ %.0635.ph1086, %139 ], [ %.0635.ph1086, %137 ], [ %.0635.ph1086, %133 ], [ %107, %106 ], [ %.0635.ph1086, %105 ], [ %.0635.ph1086, %104 ], [ %.0635.ph1086, %103 ], [ %.0635.ph1086, %101 ], [ %.0635.ph1086, %93 ], [ %.0635.ph1086, %92 ], [ %.0635.ph1086, %91 ], [ %.0635.ph1086, %90 ], [ %.0635.ph1086, %88 ], [ %.0635.ph1086, %86 ], [ %.0635.ph1086, %77 ], [ %.0635.ph1086, %75 ], [ %.0635.ph1086, %63 ], [ %.0635.ph1086, %94 ], [ %.0635.ph1086, %144 ], [ %.0635.ph1086, %151 ], [ %.0635.ph1086, %153 ], [ %.0635.ph1086, %160 ], [ %.0635.ph1086, %204 ], [ %.0635.ph1086, %211 ], [ %.0635.ph1086, %189 ], [ %.0635.ph1086, %.lr.ph1051 ], [ %.0635.ph1086, %199 ]
  %.2622 = phi ptr [ %.0620.ph1087, %213 ], [ %.0620.ph1087, %202 ], [ %.0620.ph1087, %187 ], [ %.0620.ph1087, %179 ], [ %.0620.ph1087, %185 ], [ %.0620.ph1087, %177 ], [ %.0620.ph1087, %142 ], [ %.0620.ph1087, %139 ], [ %.0620.ph1087, %137 ], [ %.0620.ph1087, %133 ], [ %.0620.ph1087, %106 ], [ %.0620.ph1087, %105 ], [ %.0620.ph1087, %104 ], [ %.0620.ph1087, %103 ], [ %.0620.ph1087, %101 ], [ %.0620.ph1087, %93 ], [ %.0620.ph1087, %92 ], [ %.0620.ph1087, %91 ], [ %.0620.ph1087, %90 ], [ %.0620.ph1087, %88 ], [ %.0620.ph1087, %86 ], [ %.0620.ph1087, %77 ], [ %.0620.ph1087, %75 ], [ %.0620.ph1087, %63 ], [ %.0620.ph1087, %94 ], [ %.0620.ph1087, %144 ], [ %.0620.ph1087, %151 ], [ %.0620.ph1087, %153 ], [ %.0620.ph1087, %160 ], [ %.0620.ph1087, %204 ], [ %.0620.ph1087, %211 ], [ %spec.select, %189 ], [ %spec.select, %.lr.ph1051 ], [ %spec.select, %199 ]
  %215 = load ptr, ptr %8, align 8, !tbaa !5
  %216 = load i8, ptr %215, align 1, !tbaa !15
  %.not864 = icmp eq i8 %216, 0
  br i1 %.not864, label %.outer._crit_edge, label %217

217:                                              ; preds = %.critedge9
  %218 = load ptr, ptr %53, align 8, !tbaa !5
  %219 = sext i8 %216 to i64
  %220 = getelementptr inbounds i16, ptr %218, i64 %219
  %221 = load i16, ptr %220, align 2, !tbaa !16
  %222 = and i16 %221, 8192
  %.not865 = icmp eq i16 %222, 0
  br i1 %.not865, label %223, label %.outer

223:                                              ; preds = %217
  %224 = load ptr, ptr getelementptr inbounds (i8, ptr @rbox, i64 8), align 8, !tbaa !11
  call void (ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %224, i32 noundef 7071, ptr noundef nonnull @.str.7, ptr noundef nonnull %215) #14
  call void @qh_errexit_rbox(i32 noundef 1)
  %.pre1455 = load ptr, ptr %8, align 8, !tbaa !5
  %.pre1456 = load i8, ptr %.pre1455, align 1, !tbaa !15
  br label %.outer

.outer:                                           ; preds = %223, %217
  %225 = phi i8 [ %.pre1456, %223 ], [ %216, %217 ]
  %226 = phi ptr [ %.pre1455, %223 ], [ %215, %217 ]
  %.not795946 = icmp eq i8 %225, 0
  br i1 %.not795946, label %.outer._crit_edge, label %.preheader933.lr.ph, !llvm.loop !22

.outer._crit_edge:                                ; preds = %.critedge9, %.outer, %59, %.critedge2.thread, %46
  %.0767.ph.lcssa = phi i32 [ %.0767.ph1054, %46 ], [ %.0767.ph1054, %.critedge2.thread ], [ %.0767.ph1054, %59 ], [ %.2769, %.outer ], [ %.2769, %.critedge9 ]
  %.0764.ph.lcssa = phi i32 [ %.0764.ph1055, %46 ], [ %.0764.ph1055, %.critedge2.thread ], [ %.0764.ph1055, %59 ], [ %.2766, %.outer ], [ %.2766, %.critedge9 ]
  %.0758.ph.lcssa = phi i32 [ %.0758.ph1056, %46 ], [ %.0758.ph1056, %.critedge2.thread ], [ %.0758.ph1056, %59 ], [ %.1759, %.outer ], [ %.1759, %.critedge9 ]
  %.0753.ph.lcssa = phi i32 [ %.0753.ph1057, %46 ], [ %.0753.ph1057, %.critedge2.thread ], [ %.0753.ph1057, %59 ], [ %.1754, %.outer ], [ %.1754, %.critedge9 ]
  %.0747.ph.lcssa = phi i32 [ %.0747.ph1059, %46 ], [ %.0747.ph1059, %.critedge2.thread ], [ %.0747.ph1059, %59 ], [ %.1748, %.outer ], [ %.1748, %.critedge9 ]
  %.0744.ph.lcssa = phi i32 [ %.0744.ph1060, %46 ], [ %.0744.ph1060, %.critedge2.thread ], [ %.0744.ph1060, %59 ], [ %.1745, %.outer ], [ %.1745, %.critedge9 ]
  %.0742.ph.lcssa = phi i32 [ %.0742.ph1061, %46 ], [ %.0742.ph1061, %.critedge2.thread ], [ %.0742.ph1061, %59 ], [ %.1743, %.outer ], [ %.1743, %.critedge9 ]
  %.0740.ph.lcssa = phi i32 [ %.0740.ph1062, %46 ], [ %.0740.ph1062, %.critedge2.thread ], [ %.0740.ph1062, %59 ], [ %.1741, %.outer ], [ %.1741, %.critedge9 ]
  %.0738.ph.lcssa = phi i32 [ %.0738.ph1063, %46 ], [ %.0738.ph1063, %.critedge2.thread ], [ %.0738.ph1063, %59 ], [ %.1739, %.outer ], [ %.1739, %.critedge9 ]
  %.0735.ph.lcssa = phi i32 [ %.0735.ph1064, %46 ], [ %.0735.ph1064, %.critedge2.thread ], [ %.0735.ph1064, %59 ], [ %.1736, %.outer ], [ %.1736, %.critedge9 ]
  %.0733.ph.lcssa = phi i32 [ %.0733.ph1065, %46 ], [ %.0733.ph1065, %.critedge2.thread ], [ %.0733.ph1065, %59 ], [ %.1734, %.outer ], [ %.1734, %.critedge9 ]
  %.0731.ph.lcssa = phi i32 [ %.0731.ph1066, %46 ], [ %.0731.ph1066, %.critedge2.thread ], [ %.0731.ph1066, %59 ], [ %.1732, %.outer ], [ %.1732, %.critedge9 ]
  %.0724.ph.lcssa = phi i32 [ %.0724.ph1067, %46 ], [ %.0724.ph1067, %.critedge2.thread ], [ %.0724.ph1067, %59 ], [ %.1725, %.outer ], [ %.1725, %.critedge9 ]
  %.0722.ph.lcssa = phi i32 [ %.0722.ph1068, %46 ], [ %.0722.ph1068, %.critedge2.thread ], [ %.0722.ph1068, %59 ], [ %.1723, %.outer ], [ %.1723, %.critedge9 ]
  %.0720.ph.lcssa = phi i32 [ %.0720.ph1069, %46 ], [ %.0720.ph1069, %.critedge2.thread ], [ %.0720.ph1069, %59 ], [ %.1721, %.outer ], [ %.1721, %.critedge9 ]
  %.0718.ph.lcssa = phi i32 [ %.0718.ph1070, %46 ], [ %.0718.ph1070, %.critedge2.thread ], [ %.0718.ph1070, %59 ], [ %.1719, %.outer ], [ %.1719, %.critedge9 ]
  %.0716.ph.lcssa = phi i32 [ %.0716.ph1071, %46 ], [ %.0716.ph1071, %.critedge2.thread ], [ %.0716.ph1071, %59 ], [ %.1717, %.outer ], [ %.1717, %.critedge9 ]
  %.0714.ph.lcssa = phi i32 [ %.0714.ph1072, %46 ], [ %.0714.ph1072, %.critedge2.thread ], [ %.0714.ph1072, %59 ], [ %.1715, %.outer ], [ %.1715, %.critedge9 ]
  %.0712.ph.lcssa = phi i32 [ %.0712.ph1073, %46 ], [ %.0712.ph1073, %.critedge2.thread ], [ %.0712.ph1073, %59 ], [ %.1713, %.outer ], [ %.1713, %.critedge9 ]
  %.0710.ph.lcssa = phi i32 [ %.0710.ph1074, %46 ], [ %.0710.ph1074, %.critedge2.thread ], [ %.0710.ph1074, %59 ], [ %.1711, %.outer ], [ %.1711, %.critedge9 ]
  %.0708.ph.lcssa = phi i32 [ %.0708.ph1075, %46 ], [ %.0708.ph1075, %.critedge2.thread ], [ %.0708.ph1075, %59 ], [ %.1709, %.outer ], [ %.1709, %.critedge9 ]
  %.0706.ph.lcssa = phi i32 [ %.0706.ph1076, %46 ], [ %.0706.ph1076, %.critedge2.thread ], [ %.0706.ph1076, %59 ], [ %.1707, %.outer ], [ %.1707, %.critedge9 ]
  %.0704.ph.lcssa = phi double [ %.0704.ph1077, %46 ], [ %.0704.ph1077, %.critedge2.thread ], [ %.0704.ph1077, %59 ], [ %.1705, %.outer ], [ %.1705, %.critedge9 ]
  %.0695.ph.lcssa = phi double [ %.0695.ph1078, %46 ], [ %.0695.ph1078, %.critedge2.thread ], [ %.0695.ph1078, %59 ], [ %.2697, %.outer ], [ %.2697, %.critedge9 ]
  %.0690.ph.lcssa = phi double [ %.0690.ph1079, %46 ], [ %.0690.ph1079, %.critedge2.thread ], [ %.0690.ph1079, %59 ], [ %.3693, %.outer ], [ %.3693, %.critedge9 ]
  %.0687.ph.lcssa = phi double [ %.0687.ph1080, %46 ], [ %.0687.ph1080, %.critedge2.thread ], [ %.0687.ph1080, %59 ], [ %.2689, %.outer ], [ %.2689, %.critedge9 ]
  %.0683.ph.lcssa = phi double [ %.0683.ph1081, %46 ], [ %.0683.ph1081, %.critedge2.thread ], [ %.0683.ph1081, %59 ], [ %.2685, %.outer ], [ %.2685, %.critedge9 ]
  %.0680.ph.lcssa = phi double [ %.0680.ph1082, %46 ], [ %.0680.ph1082, %.critedge2.thread ], [ %.0680.ph1082, %59 ], [ %.2682, %.outer ], [ %.2682, %.critedge9 ]
  %.0677.ph.lcssa = phi double [ %.0677.ph1083, %46 ], [ %.0677.ph1083, %.critedge2.thread ], [ %.0677.ph1083, %59 ], [ %.2679, %.outer ], [ %.2679, %.critedge9 ]
  %.0641.ph.lcssa = phi double [ %.0641.ph1084, %46 ], [ %.0641.ph1084, %.critedge2.thread ], [ %.0641.ph1084, %59 ], [ %.1642, %.outer ], [ %.1642, %.critedge9 ]
  %.0638.ph.lcssa = phi double [ %.0638.ph1085, %46 ], [ %.0638.ph1085, %.critedge2.thread ], [ %.0638.ph1085, %59 ], [ %.1639, %.outer ], [ %.1639, %.critedge9 ]
  %.0635.ph.lcssa = phi double [ %.0635.ph1086, %46 ], [ %.0635.ph1086, %.critedge2.thread ], [ %.0635.ph1086, %59 ], [ %.1636, %.outer ], [ %.1636, %.critedge9 ]
  %227 = phi ptr [ %.0620.ph1087, %46 ], [ %.0620.ph1087, %.critedge2.thread ], [ %.0620.ph1087, %59 ], [ %.2622, %.outer ], [ %.2622, %.critedge9 ]
  %.0750.lcssa = phi i32 [ %.0750947, %46 ], [ %60, %59 ], [ %.0750947, %.critedge2.thread ], [ %.0750947, %.outer ], [ %.0750947, %.critedge9 ]
  %.0753.ph.lcssa.fr = freeze i32 %.0753.ph.lcssa
  %228 = load i32, ptr getelementptr inbounds (i8, ptr @rbox, i64 16), align 8, !tbaa !20
  %229 = icmp eq i32 %228, 0
  %230 = icmp ne i32 %.0712.ph.lcssa, 0
  %or.cond11 = select i1 %229, i1 true, i1 %230
  %.2637 = select i1 %or.cond11, double %.0635.ph.lcssa, double 1.000000e+06
  %.not799.not = icmp ne i32 %.0731.ph.lcssa, 0
  br i1 %.not799.not, label %231, label %238

231:                                              ; preds = %.outer._crit_edge
  %232 = call double @ldexp(double noundef 1.000000e+00, i32 noundef %.0753.ph.lcssa.fr) #14
  %233 = fadd double %232, 5.000000e-01
  %234 = call double @llvm.floor.f64(double %233)
  %235 = fptosi double %234 to i32
  %236 = fcmp oeq double %.0641.ph.lcssa, 0.000000e+00
  br i1 %236, label %237, label %238

237:                                              ; preds = %231
  br label %238

238:                                              ; preds = %.outer._crit_edge, %231, %237
  %.0731.ph.lcssa1533 = phi i32 [ %.0731.ph.lcssa, %237 ], [ %.0731.ph.lcssa, %231 ], [ 0, %.outer._crit_edge ]
  %.0763 = phi i32 [ %235, %237 ], [ %235, %231 ], [ 0, %.outer._crit_edge ]
  %.2643 = phi double [ %.2637, %237 ], [ %.0641.ph.lcssa, %231 ], [ %.0641.ph.lcssa, %.outer._crit_edge ]
  %.not800.not = icmp ne i32 %.0718.ph.lcssa, 0
  br i1 %.not800.not, label %239, label %243

239:                                              ; preds = %238
  %240 = shl nsw i32 %.0753.ph.lcssa.fr, 1
  %241 = fcmp oeq double %.0638.ph.lcssa, 0.000000e+00
  br i1 %241, label %242, label %243

242:                                              ; preds = %239
  br label %243

243:                                              ; preds = %238, %239, %242
  %.0718.ph.lcssa15381608 = phi i32 [ %.0718.ph.lcssa, %242 ], [ %.0718.ph.lcssa, %239 ], [ 0, %238 ]
  %.0762 = phi i32 [ %240, %242 ], [ %240, %239 ], [ 0, %238 ]
  %.2640 = phi double [ %.2637, %242 ], [ %.0638.ph.lcssa, %239 ], [ %.0638.ph.lcssa, %238 ]
  %.not1820 = icmp eq i32 %.0738.ph.lcssa, 0
  br i1 %.not1820, label %256, label %244

244:                                              ; preds = %243
  %.not801 = icmp eq i32 %.0742.ph.lcssa, 0
  br i1 %.not801, label %247, label %245

245:                                              ; preds = %244
  %246 = load ptr, ptr getelementptr inbounds (i8, ptr @rbox, i64 8), align 8, !tbaa !11
  call void (ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %246, i32 noundef 6190, ptr noundef nonnull @.str.8) #14
  call void @qh_errexit_rbox(i32 noundef 1)
  br label %247

247:                                              ; preds = %245, %244
  %248 = fcmp ugt double %.0690.ph.lcssa, 1.000000e+00
  br i1 %248, label %251, label %249

249:                                              ; preds = %247
  %250 = load ptr, ptr getelementptr inbounds (i8, ptr @rbox, i64 8), align 8, !tbaa !11
  call void (ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %250, i32 noundef 6191, ptr noundef nonnull @.str.9, double noundef %.0690.ph.lcssa) #14
  call void @qh_errexit_rbox(i32 noundef 1)
  br label %251

251:                                              ; preds = %249, %247
  %252 = fdiv double 1.000000e+00, %.0690.ph.lcssa
  %253 = call double @asin(double noundef %252) #14
  %254 = call double @cos(double noundef %253) #14
  %255 = fmul double %.0690.ph.lcssa, %254
  br label %256

256:                                              ; preds = %.thread1626, %251, %243
  %257 = phi i1 [ true, %251 ], [ false, %243 ], [ false, %.thread1626 ]
  %.26401698 = phi double [ %.2640, %251 ], [ %.2640, %243 ], [ 0.000000e+00, %.thread1626 ]
  %.07621697 = phi i32 [ %.0762, %251 ], [ %.0762, %243 ], [ 0, %.thread1626 ]
  %.not799155515921696 = phi i1 [ %.not799.not, %251 ], [ %.not799.not, %243 ], [ false, %.thread1626 ]
  %.2637155415931695 = phi double [ %.2637, %251 ], [ %.2637, %243 ], [ %.26371521, %.thread1626 ]
  %.0753.ph.lcssa.fr155315941694 = phi i32 [ %.0753.ph.lcssa.fr, %251 ], [ %.0753.ph.lcssa.fr, %243 ], [ 3, %.thread1626 ]
  %.0750.lcssa155215951693 = phi i32 [ %.0750.lcssa, %251 ], [ %.0750.lcssa, %243 ], [ 0, %.thread1626 ]
  %258 = phi ptr [ %227, %251 ], [ %227, %243 ], [ null, %.thread1626 ]
  %.0677.ph.lcssa155015961692 = phi double [ %.0677.ph.lcssa, %251 ], [ %.0677.ph.lcssa, %243 ], [ 5.000000e+00, %.thread1626 ]
  %.0680.ph.lcssa154915971691 = phi double [ %.0680.ph.lcssa, %251 ], [ %.0680.ph.lcssa, %243 ], [ 4.000000e+00, %.thread1626 ]
  %.0683.ph.lcssa154815981690 = phi double [ %.0683.ph.lcssa, %251 ], [ %.0683.ph.lcssa, %243 ], [ 3.000000e+00, %.thread1626 ]
  %.0687.ph.lcssa154715991689 = phi double [ %.0687.ph.lcssa, %251 ], [ %.0687.ph.lcssa, %243 ], [ 0.000000e+00, %.thread1626 ]
  %.0690.ph.lcssa154616001688 = phi double [ %.0690.ph.lcssa, %251 ], [ %.0690.ph.lcssa, %243 ], [ 0.000000e+00, %.thread1626 ]
  %.0695.ph.lcssa154516011687 = phi double [ %.0695.ph.lcssa, %251 ], [ %.0695.ph.lcssa, %243 ], [ 0.000000e+00, %.thread1626 ]
  %.0704.ph.lcssa154416021686 = phi double [ %.0704.ph.lcssa, %251 ], [ %.0704.ph.lcssa, %243 ], [ 0.000000e+00, %.thread1626 ]
  %.0706.ph.lcssa154316031685 = phi i32 [ %.0706.ph.lcssa, %251 ], [ %.0706.ph.lcssa, %243 ], [ 0, %.thread1626 ]
  %.0708.ph.lcssa154216041684 = phi i32 [ %.0708.ph.lcssa, %251 ], [ %.0708.ph.lcssa, %243 ], [ 0, %.thread1626 ]
  %.0710.ph.lcssa154116051683 = phi i32 [ %.0710.ph.lcssa, %251 ], [ %.0710.ph.lcssa, %243 ], [ 0, %.thread1626 ]
  %.0714.ph.lcssa154016061682 = phi i32 [ %.0714.ph.lcssa, %251 ], [ %.0714.ph.lcssa, %243 ], [ 0, %.thread1626 ]
  %.0716.ph.lcssa153916071681 = phi i32 [ %.0716.ph.lcssa, %251 ], [ %.0716.ph.lcssa, %243 ], [ 0, %.thread1626 ]
  %.0718.ph.lcssa153816081680 = phi i32 [ %.0718.ph.lcssa15381608, %251 ], [ %.0718.ph.lcssa15381608, %243 ], [ 0, %.thread1626 ]
  %.0720.ph.lcssa153716091679 = phi i32 [ %.0720.ph.lcssa, %251 ], [ %.0720.ph.lcssa, %243 ], [ 0, %.thread1626 ]
  %.0722.ph.lcssa153616101678 = phi i32 [ %.0722.ph.lcssa, %251 ], [ %.0722.ph.lcssa, %243 ], [ 0, %.thread1626 ]
  %.0724.ph.lcssa153416111677 = phi i32 [ %.0724.ph.lcssa, %251 ], [ %.0724.ph.lcssa, %243 ], [ 0, %.thread1626 ]
  %.0731.ph.lcssa153316121676 = phi i32 [ %.0731.ph.lcssa1533, %251 ], [ %.0731.ph.lcssa1533, %243 ], [ 0, %.thread1626 ]
  %.0733.ph.lcssa153216131675 = phi i32 [ %.0733.ph.lcssa, %251 ], [ %.0733.ph.lcssa, %243 ], [ 0, %.thread1626 ]
  %.0735.ph.lcssa153116141674 = phi i32 [ %.0735.ph.lcssa, %251 ], [ %.0735.ph.lcssa, %243 ], [ 0, %.thread1626 ]
  %.0738.ph.lcssa153016151673 = phi i32 [ %.0738.ph.lcssa, %251 ], [ 0, %243 ], [ 0, %.thread1626 ]
  %.0740.ph.lcssa152916161672 = phi i32 [ %.0740.ph.lcssa, %251 ], [ %.0740.ph.lcssa, %243 ], [ 0, %.thread1626 ]
  %.0742.ph.lcssa152816171671 = phi i32 [ %.0742.ph.lcssa, %251 ], [ %.0742.ph.lcssa, %243 ], [ 0, %.thread1626 ]
  %.0744.ph.lcssa152716181670 = phi i32 [ %.0744.ph.lcssa, %251 ], [ %.0744.ph.lcssa, %243 ], [ 0, %.thread1626 ]
  %.0747.ph.lcssa152616191669 = phi i32 [ %.0747.ph.lcssa, %251 ], [ %.0747.ph.lcssa, %243 ], [ 0, %.thread1626 ]
  %.0758.ph.lcssa152516201668 = phi i32 [ %.0758.ph.lcssa, %251 ], [ %.0758.ph.lcssa, %243 ], [ 0, %.thread1626 ]
  %.0764.ph.lcssa152416211667 = phi i32 [ %.0764.ph.lcssa, %251 ], [ %.0764.ph.lcssa, %243 ], [ 0, %.thread1626 ]
  %.0767.ph.lcssa152316221666 = phi i32 [ %.0767.ph.lcssa, %251 ], [ %.0767.ph.lcssa, %243 ], [ 0, %.thread1626 ]
  %.076316231665 = phi i32 [ %.0763, %251 ], [ %.0763, %243 ], [ 0, %.thread1626 ]
  %.264316241664 = phi double [ %.2643, %251 ], [ %.2643, %243 ], [ 0.000000e+00, %.thread1626 ]
  %.not80016251663 = phi i1 [ %.not800.not, %251 ], [ %.not800.not, %243 ], [ false, %.thread1626 ]
  %.0648 = phi double [ %253, %251 ], [ 0.000000e+00, %243 ], [ 0.000000e+00, %.thread1626 ]
  %.0647 = phi double [ %255, %251 ], [ 1.000000e+00, %243 ], [ 1.000000e+00, %.thread1626 ]
  %259 = icmp ne i32 %.0750.lcssa155215951693, 0
  %260 = icmp ne i32 %.0708.ph.lcssa154216041684, 0
  %or.cond41 = select i1 %259, i1 true, i1 %260
  %.pre1459 = add nuw nsw i32 %.0710.ph.lcssa154116051683, %.0722.ph.lcssa153616101678
  br i1 %or.cond41, label %._crit_edge, label %261

261:                                              ; preds = %256
  %262 = add nuw nsw i32 %.pre1459, %.0744.ph.lcssa152716181670
  %263 = add nuw nsw i32 %262, %.0742.ph.lcssa152816171671
  %264 = add nuw nsw i32 %263, %.0738.ph.lcssa153016151673
  %265 = add nuw nsw i32 %264, %.0735.ph.lcssa153116141674
  %266 = add nuw nsw i32 %265, %.0733.ph.lcssa153216131675
  %267 = or i32 %266, %.0706.ph.lcssa154316031685
  %.not802 = icmp eq i32 %267, 0
  br i1 %.not802, label %270, label %268

268:                                              ; preds = %261
  %269 = load ptr, ptr getelementptr inbounds (i8, ptr @rbox, i64 8), align 8, !tbaa !11
  call void (ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %269, i32 noundef 6192, ptr noundef nonnull @.str.10) #14
  call void @qh_errexit_rbox(i32 noundef 1)
  br label %._crit_edge

270:                                              ; preds = %261
  %271 = add nuw nsw i32 %.0718.ph.lcssa153816081680, %.0731.ph.lcssa153316121676
  %272 = sub i32 0, %.0747.ph.lcssa152616191669
  %.not803 = icmp eq i32 %271, %272
  %spec.select866 = select i1 %.not803, i32 50, i32 0
  %spec.select867 = select i1 %.not803, i32 1, i32 %.0744.ph.lcssa152716181670
  br label %._crit_edge

._crit_edge:                                      ; preds = %256, %270, %268
  %.1751 = phi i32 [ %spec.select866, %270 ], [ 0, %268 ], [ %.0750.lcssa155215951693, %256 ]
  %.2746 = phi i32 [ %spec.select867, %270 ], [ %.0744.ph.lcssa152716181670, %268 ], [ %.0744.ph.lcssa152716181670, %256 ]
  %273 = add nuw nsw i32 %.pre1459, %.0738.ph.lcssa153016151673
  %274 = add nuw nsw i32 %273, %.0706.ph.lcssa154316031685
  %275 = icmp sgt i32 %274, 1
  br i1 %275, label %280, label %276

276:                                              ; preds = %._crit_edge
  %277 = add nuw nsw i32 %.pre1459, %.0706.ph.lcssa154316031685
  %278 = add nuw nsw i32 %277, %.2746
  %279 = icmp sgt i32 %278, 1
  br i1 %279, label %280, label %282

280:                                              ; preds = %276, %._crit_edge
  %281 = load ptr, ptr getelementptr inbounds (i8, ptr @rbox, i64 8), align 8, !tbaa !11
  call void (ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %281, i32 noundef 6193, ptr noundef nonnull @.str.11) #14
  call void @qh_errexit_rbox(i32 noundef 1)
  br label %282

282:                                              ; preds = %280, %276
  %283 = icmp sgt i32 %.0764.ph.lcssa152416211667, 0
  br i1 %283, label %284, label %289

284:                                              ; preds = %282
  %285 = icmp eq i32 %.1751, 0
  %286 = icmp sgt i32 %.0767.ph.lcssa152316221666, %.1751
  %or.cond869 = select i1 %285, i1 true, i1 %286
  br i1 %or.cond869, label %287, label %289

287:                                              ; preds = %284
  %288 = load ptr, ptr getelementptr inbounds (i8, ptr @rbox, i64 8), align 8, !tbaa !11
  call void (ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %288, i32 noundef 6270, ptr noundef nonnull @.str.12, i32 noundef %.0767.ph.lcssa152316221666, i32 noundef %.1751) #14
  call void @qh_errexit_rbox(i32 noundef 1)
  br label %289

289:                                              ; preds = %284, %287, %282
  %290 = icmp eq i32 %.0767.ph.lcssa152316221666, 0
  %spec.select870 = select i1 %290, i32 %.1751, i32 %.0767.ph.lcssa152316221666
  %291 = icmp ne i32 %.0710.ph.lcssa154116051683, 0
  %292 = icmp ne i32 %.0706.ph.lcssa154316031685, 0
  %or.cond13 = select i1 %291, i1 true, i1 %292
  br i1 %or.cond13, label %312, label %293

293:                                              ; preds = %289
  br i1 %260, label %294, label %297

294:                                              ; preds = %293
  %295 = add i32 %.0753.ph.lcssa.fr155315941694, 1
  %296 = add i32 %295, %.1751
  br label %312

297:                                              ; preds = %293
  %.not804 = icmp eq i32 %.0735.ph.lcssa153116141674, 0
  br i1 %.not804, label %310, label %298

298:                                              ; preds = %297
  switch i32 %.0753.ph.lcssa.fr155315941694, label %312 [
    i32 2, label %299
    i32 3, label %302
  ]

299:                                              ; preds = %298
  br i1 %257, label %300, label %312

300:                                              ; preds = %299
  %reass.add806 = shl i32 %.1751, 1
  %301 = add i32 %reass.add806, -2
  br label %312

302:                                              ; preds = %298
  br i1 %257, label %303, label %305

303:                                              ; preds = %302
  %304 = mul nsw i32 %.1751, 3
  br label %312

305:                                              ; preds = %302
  %.not805 = icmp eq i32 %.0724.ph.lcssa153416111677, 0
  br i1 %.not805, label %308, label %306

306:                                              ; preds = %305
  %reass.add = shl i32 %.1751, 1
  %307 = or disjoint i32 %reass.add, 1
  br label %312

308:                                              ; preds = %305
  %309 = add nsw i32 %.1751, 2
  br label %312

310:                                              ; preds = %297
  %311 = add nsw i32 %.1751, %.0742.ph.lcssa152816171671
  br label %312

312:                                              ; preds = %298, %289, %294, %300, %299, %303, %308, %306, %310
  %.0749 = phi i32 [ %296, %294 ], [ %301, %300 ], [ %.1751, %299 ], [ %304, %303 ], [ %307, %306 ], [ %309, %308 ], [ %311, %310 ], [ %.1751, %289 ], [ %.1751, %298 ]
  %313 = mul nsw i32 %spec.select870, %.0764.ph.lcssa152416211667
  %314 = add i32 %.076316231665, %.0747.ph.lcssa152616191669
  %315 = add i32 %314, %.07621697
  %316 = add i32 %315, %313
  %317 = add i32 %316, %.0749
  %318 = icmp eq i32 %.0714.ph.lcssa154016061682, 0
  br i1 %318, label %.preheader929, label %327

.preheader929:                                    ; preds = %312
  %319 = load i8, ptr %6, align 16, !tbaa !15
  %.not8091122 = icmp eq i8 %319, 0
  br i1 %.not8091122, label %.loopexit930, label %.lr.ph1125

.lr.ph1125:                                       ; preds = %.preheader929, %.lr.ph1125
  %320 = phi i8 [ %326, %.lr.ph1125 ], [ %319, %.preheader929 ]
  %.27601124 = phi i32 [ %324, %.lr.ph1125 ], [ %.0758.ph.lcssa152516201668, %.preheader929 ]
  %storemerge1123 = phi ptr [ %325, %.lr.ph1125 ], [ %6, %.preheader929 ]
  %321 = icmp eq i8 %320, 121
  %or.cond872 = and i1 %260, %321
  %322 = sext i8 %320 to i32
  %spec.select897 = select i1 %or.cond872, i32 120, i32 %322
  %323 = mul nsw i32 %.27601124, 11
  %324 = add nsw i32 %spec.select897, %323
  %325 = getelementptr inbounds i8, ptr %storemerge1123, i64 1
  %326 = load i8, ptr %325, align 1, !tbaa !15
  %.not809 = icmp eq i8 %326, 0
  br i1 %.not809, label %.loopexit930, label %.lr.ph1125, !llvm.loop !27

327:                                              ; preds = %312
  %.not807 = icmp eq i32 %.0716.ph.lcssa153916071681, 0
  br i1 %.not807, label %340, label %328

328:                                              ; preds = %327
  %329 = call i64 @time(ptr noundef nonnull %9) #14
  %330 = trunc i64 %329 to i32
  %331 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %7, ptr noundef nonnull dereferenceable(1) @.str.13, i32 noundef %330) #14
  %332 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %6) #16
  %333 = sub i64 199, %332
  %334 = call ptr @strncat(ptr noundef nonnull dereferenceable(1) %6, ptr noundef nonnull %7, i64 noundef %333) #14
  %335 = call ptr @strstr(ptr noundef nonnull dereferenceable(1) %6, ptr noundef nonnull dereferenceable(1) @.str.14) #16
  %.not808 = icmp eq ptr %335, null
  br i1 %.not808, label %340, label %336

336:                                              ; preds = %328
  %337 = getelementptr inbounds i8, ptr %335, i64 1
  %338 = getelementptr inbounds i8, ptr %335, i64 3
  %339 = call ptr @strcpy(ptr noundef nonnull dereferenceable(1) %337, ptr noundef nonnull dereferenceable(1) %338) #14
  br label %340

.loopexit930:                                     ; preds = %.lr.ph1125, %.preheader929
  %storemerge.lcssa = phi ptr [ %6, %.preheader929 ], [ %325, %.lr.ph1125 ]
  %.2760.lcssa = phi i32 [ %.0758.ph.lcssa152516201668, %.preheader929 ], [ %324, %.lr.ph1125 ]
  store ptr %storemerge.lcssa, ptr %8, align 8, !tbaa !5
  br label %340

340:                                              ; preds = %.loopexit930, %327, %336, %328
  %.3761 = phi i32 [ %330, %336 ], [ %330, %328 ], [ %.0758.ph.lcssa152516201668, %327 ], [ %.2760.lcssa, %.loopexit930 ]
  call void @qh_srand(i32 noundef %.3761) #14
  %.not810 = icmp eq i32 %.0740.ph.lcssa152916161672, 0
  br i1 %.not810, label %347, label %341

341:                                              ; preds = %340
  %342 = load ptr, ptr @rbox, align 8, !tbaa !14
  %.not812 = icmp eq i32 %.0720.ph.lcssa153716091679, 0
  %343 = select i1 %.not812, ptr %6, ptr @.str.16
  %344 = add nsw i32 %.0753.ph.lcssa.fr155315941694, 1
  %345 = load i32, ptr getelementptr inbounds (i8, ptr @rbox, i64 16), align 8, !tbaa !20
  %.not813 = icmp eq i32 %345, 0
  %346 = select i1 %.not813, ptr @.str.18, ptr @.str.17
  call void (ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %342, i32 noundef 9391, ptr noundef nonnull @.str.15, ptr noundef nonnull %343, i32 noundef %317, i32 noundef %344, ptr noundef nonnull %346) #14
  br label %351

347:                                              ; preds = %340
  %.not811 = icmp eq i32 %.0720.ph.lcssa153716091679, 0
  %348 = load ptr, ptr @rbox, align 8, !tbaa !14
  br i1 %.not811, label %350, label %349

349:                                              ; preds = %347
  call void (ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %348, i32 noundef 9392, ptr noundef nonnull @.str.19, i32 noundef %.0753.ph.lcssa.fr155315941694, i32 noundef %317) #14
  br label %351

350:                                              ; preds = %347
  call void (ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %348, i32 noundef 9393, ptr noundef nonnull @.str.20, i32 noundef %.0753.ph.lcssa.fr155315941694, ptr noundef nonnull %6, i32 noundef %317) #14
  br label %351

351:                                              ; preds = %349, %350, %341
  store ptr %258, ptr %8, align 8, !tbaa !5
  %.not814 = icmp eq ptr %258, null
  br i1 %.not814, label %.critedge15, label %.preheader927

.preheader927:                                    ; preds = %351
  %352 = load i8, ptr %258, align 1, !tbaa !15
  %.not8151141 = icmp eq i8 %352, 0
  br i1 %.not8151141, label %.critedge15, label %.lr.ph1142

.loopexit925:                                     ; preds = %391
  %353 = load i8, ptr %390, align 1, !tbaa !15
  %.not815 = icmp eq i8 %353, 0
  br i1 %.not815, label %.critedge15, label %.lr.ph1142, !llvm.loop !28

.lr.ph1142:                                       ; preds = %.preheader927, %.loopexit925
  %354 = phi ptr [ %390, %.loopexit925 ], [ %258, %.preheader927 ]
  br i1 %.not810, label %356, label %355

355:                                              ; preds = %.lr.ph1142
  call void @qh_out1(double noundef 1.000000e+00)
  %.pre1457 = load ptr, ptr %8, align 8, !tbaa !5
  br label %356

356:                                              ; preds = %355, %.lr.ph1142
  %357 = phi ptr [ %.pre1457, %355 ], [ %354, %.lr.ph1142 ]
  %358 = getelementptr inbounds i8, ptr %357, i64 1
  store ptr %358, ptr %8, align 8, !tbaa !5
  %359 = load i8, ptr %358, align 1, !tbaa !15
  %.not8161128 = icmp eq i8 %359, 0
  br i1 %.not8161128, label %._crit_edge1132, label %.lr.ph1131

.lr.ph1131:                                       ; preds = %356, %374
  %360 = phi ptr [ %376, %374 ], [ %358, %356 ]
  %.07561129 = phi i32 [ %362, %374 ], [ 0, %356 ]
  %361 = call double @qh_strtod(ptr noundef nonnull %360, ptr noundef nonnull %8) #14
  call void @qh_out1(double noundef %361)
  %362 = add nuw nsw i32 %.07561129, 1
  %363 = call ptr @__ctype_b_loc() #17
  %364 = load ptr, ptr %363, align 8, !tbaa !5
  %365 = load ptr, ptr %8, align 8, !tbaa !5
  %366 = load i8, ptr %365, align 1, !tbaa !15
  %367 = sext i8 %366 to i64
  %368 = getelementptr inbounds i16, ptr %364, i64 %367
  %369 = load i16, ptr %368, align 2, !tbaa !16
  %370 = and i16 %369, 8192
  %.not817 = icmp ne i16 %370, 0
  %.not818 = icmp eq i8 %366, 0
  %or.cond873 = or i1 %.not818, %.not817
  br i1 %or.cond873, label %._crit_edge1132, label %371

371:                                              ; preds = %.lr.ph1131
  %.not819 = icmp eq i8 %366, 44
  br i1 %.not819, label %374, label %372

372:                                              ; preds = %371
  %373 = load ptr, ptr getelementptr inbounds (i8, ptr @rbox, i64 8), align 8, !tbaa !11
  call void (ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %373, i32 noundef 6194, ptr noundef nonnull @.str.21, ptr noundef nonnull %365) #14
  call void @qh_errexit_rbox(i32 noundef 1)
  %.pre1458 = load ptr, ptr %8, align 8, !tbaa !5
  br label %374

374:                                              ; preds = %372, %371
  %375 = phi ptr [ %.pre1458, %372 ], [ %365, %371 ]
  %376 = getelementptr inbounds i8, ptr %375, i64 1
  store ptr %376, ptr %8, align 8, !tbaa !5
  %377 = load i8, ptr %376, align 1, !tbaa !15
  %.not816 = icmp eq i8 %377, 0
  br i1 %.not816, label %._crit_edge1132, label %.lr.ph1131, !llvm.loop !29

._crit_edge1132:                                  ; preds = %374, %.lr.ph1131, %356
  %378 = phi ptr [ %358, %356 ], [ %376, %374 ], [ %365, %.lr.ph1131 ]
  %.1757 = phi i32 [ 0, %356 ], [ %362, %.lr.ph1131 ], [ %362, %374 ]
  %379 = icmp slt i32 %.1757, %.0753.ph.lcssa.fr155315941694
  br i1 %379, label %380, label %383

380:                                              ; preds = %._crit_edge1132
  %381 = sub nsw i32 %.0753.ph.lcssa.fr155315941694, %.1757
  %.not8201136 = icmp eq i32 %381, 0
  br i1 %.not8201136, label %.loopexit926, label %.lr.ph1139

.lr.ph1139:                                       ; preds = %380, %.lr.ph1139
  %.06551137 = phi i32 [ %382, %.lr.ph1139 ], [ %381, %380 ]
  %382 = add nsw i32 %.06551137, -1
  call void @qh_out1(double noundef 0.000000e+00)
  %.not820 = icmp eq i32 %382, 0
  br i1 %.not820, label %.loopexit926, label %.lr.ph1139, !llvm.loop !30

383:                                              ; preds = %._crit_edge1132
  %384 = icmp sgt i32 %.1757, %.0753.ph.lcssa.fr155315941694
  br i1 %384, label %385, label %.loopexit926

385:                                              ; preds = %383
  %386 = load ptr, ptr getelementptr inbounds (i8, ptr @rbox, i64 8), align 8, !tbaa !11
  call void (ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %386, i32 noundef 6195, ptr noundef nonnull @.str.22, i32 noundef %.1757, i32 noundef %.0753.ph.lcssa.fr155315941694, ptr noundef nonnull %378) #14
  call void @qh_errexit_rbox(i32 noundef 1)
  br label %.loopexit926

.loopexit926:                                     ; preds = %.lr.ph1139, %380, %383, %385
  %387 = load ptr, ptr @rbox, align 8, !tbaa !14
  call void (ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %387, i32 noundef 9394, ptr noundef nonnull @.str.23) #14
  %.promoted1140 = load ptr, ptr %8, align 8, !tbaa !5
  br label %388

388:                                              ; preds = %391, %.loopexit926
  %389 = phi ptr [ %390, %391 ], [ %.promoted1140, %.loopexit926 ]
  %390 = call ptr @strchr(ptr noundef nonnull dereferenceable(1) %389, i32 noundef 80) #16
  store ptr %390, ptr %8, align 8, !tbaa !5
  %.not821 = icmp eq ptr %390, null
  br i1 %.not821, label %.critedge15, label %391

391:                                              ; preds = %388
  %392 = call ptr @__ctype_b_loc() #17
  %393 = load ptr, ptr %392, align 8, !tbaa !5
  %394 = getelementptr inbounds i8, ptr %390, i64 -1
  %395 = load i8, ptr %394, align 1, !tbaa !15
  %396 = sext i8 %395 to i64
  %397 = getelementptr inbounds i16, ptr %393, i64 %396
  %398 = load i16, ptr %397, align 2, !tbaa !16
  %399 = and i16 %398, 8192
  %.not822 = icmp eq i16 %399, 0
  br i1 %.not822, label %388, label %.loopexit925, !llvm.loop !28

.critedge15:                                      ; preds = %.loopexit925, %388, %.preheader927, %351
  %400 = or i32 %.0708.ph.lcssa154216041684, %.0710.ph.lcssa154116051683
  %.not823 = icmp eq i32 %400, 0
  br i1 %.not823, label %.loopexit915, label %401

401:                                              ; preds = %.critedge15
  %402 = add i32 %.0753.ph.lcssa.fr155315941694, 1
  %403 = mul nsw i32 %402, %.0753.ph.lcssa.fr155315941694
  %404 = sext i32 %403 to i64
  %405 = shl nsw i64 %404, 3
  %406 = call ptr @qh_malloc(i64 noundef %405) #14
  %.not824 = icmp eq ptr %406, null
  br i1 %.not824, label %407, label %409

407:                                              ; preds = %401
  %408 = load ptr, ptr getelementptr inbounds (i8, ptr @rbox, i64 8), align 8, !tbaa !11
  call void (ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %408, i32 noundef 6196, ptr noundef nonnull @.str.24) #14
  call void @qh_errexit_rbox(i32 noundef 4)
  br label %409

409:                                              ; preds = %407, %401
  %.not825 = icmp eq i32 %.0735.ph.lcssa153116141674, 0
  br i1 %.not825, label %.preheader919, label %.preheader924

.preheader924:                                    ; preds = %409
  %410 = icmp sgt i32 %.0753.ph.lcssa.fr155315941694, 0
  br i1 %410, label %.preheader923.us.preheader, label %.loopexit920

.preheader923.us.preheader:                       ; preds = %.preheader924
  %411 = zext nneg i32 %.0753.ph.lcssa.fr155315941694 to i64
  %min.iters.check = icmp ult i32 %.0753.ph.lcssa.fr155315941694, 4
  %n.vec = and i64 %411, 2147483644
  %ind.end = trunc nuw nsw i64 %n.vec to i32
  %412 = shl nuw nsw i64 %n.vec, 3
  %cmp.n = icmp eq i64 %n.vec, %411
  br label %.preheader923.us

.preheader923.us:                                 ; preds = %.preheader923.us.preheader, %._crit_edge1146.us
  %.11149.us = phi i32 [ %423, %._crit_edge1146.us ], [ 0, %.preheader923.us.preheader ]
  %.06671148.us = phi ptr [ %.lcssa1841, %._crit_edge1146.us ], [ %406, %.preheader923.us.preheader ]
  br i1 %min.iters.check, label %scalar.ph.preheader, label %vector.ph

vector.ph:                                        ; preds = %.preheader923.us
  %ind.end1929 = getelementptr i8, ptr %.06671148.us, i64 %412
  %broadcast.splatinsert = insertelement <2 x i32> poison, i32 %.11149.us, i64 0
  %broadcast.splat = shufflevector <2 x i32> %broadcast.splatinsert, <2 x i32> poison, <2 x i32> zeroinitializer
  br label %vector.body

vector.body:                                      ; preds = %vector.body, %vector.ph
  %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
  %vec.ind = phi <2 x i32> [ <i32 0, i32 1>, %vector.ph ], [ %vec.ind.next, %vector.body ]
  %step.add = add <2 x i32> %vec.ind, <i32 2, i32 2>
  %offset.idx = shl i64 %index, 3
  %next.gep = getelementptr i8, ptr %.06671148.us, i64 %offset.idx
  %413 = icmp eq <2 x i32> %broadcast.splat, %vec.ind
  %414 = icmp eq <2 x i32> %broadcast.splat, %step.add
  %415 = select <2 x i1> %413, <2 x double> <double 1.000000e+00, double 1.000000e+00>, <2 x double> zeroinitializer
  %416 = select <2 x i1> %414, <2 x double> <double 1.000000e+00, double 1.000000e+00>, <2 x double> zeroinitializer
  %417 = getelementptr i8, ptr %next.gep, i64 16
  store <2 x double> %415, ptr %next.gep, align 8, !tbaa !31
  store <2 x double> %416, ptr %417, align 8, !tbaa !31
  %index.next = add nuw i64 %index, 4
  %vec.ind.next = add <2 x i32> %vec.ind, <i32 4, i32 4>
  %418 = icmp eq i64 %index.next, %n.vec
  br i1 %418, label %middle.block, label %vector.body, !llvm.loop !32

middle.block:                                     ; preds = %vector.body
  br i1 %cmp.n, label %._crit_edge1146.us, label %scalar.ph.preheader

scalar.ph.preheader:                              ; preds = %middle.block, %.preheader923.us
  %.16561144.us.ph = phi i32 [ 0, %.preheader923.us ], [ %ind.end, %middle.block ]
  %.16681143.us.ph = phi ptr [ %.06671148.us, %.preheader923.us ], [ %ind.end1929, %middle.block ]
  br label %scalar.ph

scalar.ph:                                        ; preds = %scalar.ph.preheader, %scalar.ph
  %.16561144.us = phi i32 [ %422, %scalar.ph ], [ %.16561144.us.ph, %scalar.ph.preheader ]
  %.16681143.us = phi ptr [ %421, %scalar.ph ], [ %.16681143.us.ph, %scalar.ph.preheader ]
  %419 = icmp eq i32 %.11149.us, %.16561144.us
  %420 = select i1 %419, double 1.000000e+00, double 0.000000e+00
  %421 = getelementptr inbounds i8, ptr %.16681143.us, i64 8
  store double %420, ptr %.16681143.us, align 8, !tbaa !31
  %422 = add nuw nsw i32 %.16561144.us, 1
  %exitcond.not = icmp eq i32 %422, %.0753.ph.lcssa.fr155315941694
  br i1 %exitcond.not, label %._crit_edge1146.us, label %scalar.ph, !llvm.loop !35

._crit_edge1146.us:                               ; preds = %scalar.ph, %middle.block
  %.lcssa1841 = phi ptr [ %ind.end1929, %middle.block ], [ %421, %scalar.ph ]
  %423 = add nuw nsw i32 %.11149.us, 1
  %exitcond1353.not = icmp eq i32 %423, %.0753.ph.lcssa.fr155315941694
  br i1 %exitcond1353.not, label %.preheader921, label %.preheader923.us, !llvm.loop !36

.preheader919:                                    ; preds = %409
  %.not8261159 = icmp slt i32 %.0753.ph.lcssa.fr155315941694, 0
  br i1 %.not8261159, label %.loopexit917, label %.preheader918.lr.ph

.preheader918.lr.ph:                              ; preds = %.preheader919
  %.not1286 = icmp eq i32 %.0753.ph.lcssa.fr155315941694, 0
  br i1 %.not1286, label %.loopexit920, label %.preheader918.us

.preheader918.us:                                 ; preds = %.preheader918.lr.ph, %._crit_edge1157.us
  %.21161.us = phi i32 [ %432, %._crit_edge1157.us ], [ 0, %.preheader918.lr.ph ]
  %.36701160.us = phi ptr [ %430, %._crit_edge1157.us ], [ %406, %.preheader918.lr.ph ]
  br label %424

424:                                              ; preds = %.preheader918.us, %424
  %.36581155.us = phi i32 [ 0, %.preheader918.us ], [ %431, %424 ]
  %.46711154.us = phi ptr [ %.36701160.us, %.preheader918.us ], [ %430, %424 ]
  %425 = call i32 @qh_rand() #14
  %426 = sitofp i32 %425 to double
  %427 = fmul double %426, 2.000000e+00
  %428 = fdiv double %427, 0x41DFFFFFFF800000
  %429 = fadd double %428, -1.000000e+00
  %430 = getelementptr inbounds i8, ptr %.46711154.us, i64 8
  store double %429, ptr %.46711154.us, align 8, !tbaa !31
  %431 = add nuw nsw i32 %.36581155.us, 1
  %exitcond1355.not = icmp eq i32 %431, %.0753.ph.lcssa.fr155315941694
  br i1 %exitcond1355.not, label %._crit_edge1157.us, label %424, !llvm.loop !37

._crit_edge1157.us:                               ; preds = %424
  %432 = add nuw i32 %.21161.us, 1
  %exitcond1356.not = icmp eq i32 %.21161.us, %.0753.ph.lcssa.fr155315941694
  br i1 %exitcond1356.not, label %.loopexit920, label %.preheader918.us, !llvm.loop !38

.preheader921:                                    ; preds = %._crit_edge1146.us
  br i1 %410, label %.lr.ph1153.preheader, label %.loopexit917

.lr.ph1153.preheader:                             ; preds = %.preheader921
  %min.iters.check1935 = icmp ult i32 %.0753.ph.lcssa.fr155315941694, 4
  br i1 %min.iters.check1935, label %.lr.ph1153.preheader2092, label %vector.ph1936

vector.ph1936:                                    ; preds = %.lr.ph1153.preheader
  %n.vec1938 = and i64 %411, 2147483644
  %ind.end1939 = trunc nuw nsw i64 %n.vec1938 to i32
  %433 = shl nuw nsw i64 %n.vec1938, 3
  %ind.end1941 = getelementptr i8, ptr %.lcssa1841, i64 %433
  br label %vector.body1943

vector.body1943:                                  ; preds = %vector.body1943, %vector.ph1936
  %index1944 = phi i64 [ 0, %vector.ph1936 ], [ %index.next1948, %vector.body1943 ]
  %offset.idx1945 = shl i64 %index1944, 3
  %next.gep1946 = getelementptr i8, ptr %.lcssa1841, i64 %offset.idx1945
  %434 = getelementptr i8, ptr %next.gep1946, i64 16
  store <2 x double> <double -1.000000e+00, double -1.000000e+00>, ptr %next.gep1946, align 8, !tbaa !31
  store <2 x double> <double -1.000000e+00, double -1.000000e+00>, ptr %434, align 8, !tbaa !31
  %index.next1948 = add nuw i64 %index1944, 4
  %435 = icmp eq i64 %index.next1948, %n.vec1938
  br i1 %435, label %middle.block1933, label %vector.body1943, !llvm.loop !39

middle.block1933:                                 ; preds = %vector.body1943
  %cmp.n1949 = icmp eq i64 %n.vec1938, %411
  br i1 %cmp.n1949, label %.loopexit920, label %.lr.ph1153.preheader2092

.lr.ph1153.preheader2092:                         ; preds = %middle.block1933, %.lr.ph1153.preheader
  %.26571152.ph = phi i32 [ 0, %.lr.ph1153.preheader ], [ %ind.end1939, %middle.block1933 ]
  %.26691151.ph = phi ptr [ %.lcssa1841, %.lr.ph1153.preheader ], [ %ind.end1941, %middle.block1933 ]
  br label %.lr.ph1153

.lr.ph1153:                                       ; preds = %.lr.ph1153.preheader2092, %.lr.ph1153
  %.26571152 = phi i32 [ %437, %.lr.ph1153 ], [ %.26571152.ph, %.lr.ph1153.preheader2092 ]
  %.26691151 = phi ptr [ %436, %.lr.ph1153 ], [ %.26691151.ph, %.lr.ph1153.preheader2092 ]
  %436 = getelementptr inbounds i8, ptr %.26691151, i64 8
  store double -1.000000e+00, ptr %.26691151, align 8, !tbaa !31
  %437 = add nuw nsw i32 %.26571152, 1
  %exitcond1354.not = icmp eq i32 %437, %.0753.ph.lcssa.fr155315941694
  br i1 %exitcond1354.not, label %.loopexit920, label %.lr.ph1153, !llvm.loop !40

.loopexit920:                                     ; preds = %.lr.ph1153, %._crit_edge1157.us, %middle.block1933, %.preheader924, %.preheader918.lr.ph
  %.not8271168 = icmp sgt i32 %.0753.ph.lcssa.fr155315941694, -1
  %or.cond1283.not = and i1 %260, %.not8271168
  br i1 %or.cond1283.not, label %.lr.ph1171, label %.loopexit917

.lr.ph1171:                                       ; preds = %.loopexit920
  %.not1821 = icmp eq i32 %.0753.ph.lcssa.fr155315941694, 0
  br label %438

438:                                              ; preds = %.lr.ph1171, %._crit_edge1166
  %.31170 = phi i32 [ 0, %.lr.ph1171 ], [ %446, %._crit_edge1166 ]
  %.56721169 = phi ptr [ %406, %.lr.ph1171 ], [ %.6673.lcssa, %._crit_edge1166 ]
  br i1 %.not810, label %440, label %439

439:                                              ; preds = %438
  call void @qh_out1(double noundef 1.000000e+00)
  br label %440

440:                                              ; preds = %439, %438
  br i1 %.not1821, label %._crit_edge1166, label %.lr.ph1165

.lr.ph1165:                                       ; preds = %440, %.lr.ph1165
  %.46591163 = phi i32 [ %444, %.lr.ph1165 ], [ 0, %440 ]
  %.66731162 = phi ptr [ %441, %.lr.ph1165 ], [ %.56721169, %440 ]
  %441 = getelementptr inbounds i8, ptr %.66731162, i64 8
  %442 = load double, ptr %.66731162, align 8, !tbaa !31
  %443 = fmul double %.2637155415931695, %442
  call void @qh_out1(double noundef %443)
  %444 = add nuw nsw i32 %.46591163, 1
  %exitcond1357.not = icmp eq i32 %444, %.0753.ph.lcssa.fr155315941694
  br i1 %exitcond1357.not, label %._crit_edge1166, label %.lr.ph1165, !llvm.loop !41

._crit_edge1166:                                  ; preds = %.lr.ph1165, %440
  %.6673.lcssa = phi ptr [ %.56721169, %440 ], [ %441, %.lr.ph1165 ]
  %445 = load ptr, ptr @rbox, align 8, !tbaa !14
  call void (ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %445, i32 noundef 9395, ptr noundef nonnull @.str.23) #14
  %446 = add nuw i32 %.31170, 1
  %exitcond1358.not = icmp eq i32 %.31170, %.0753.ph.lcssa.fr155315941694
  br i1 %exitcond1358.not, label %.loopexit917, label %438, !llvm.loop !42

.loopexit917:                                     ; preds = %._crit_edge1166, %.preheader919, %.preheader921, %.loopexit920
  %447 = icmp sgt i32 %.1751, 0
  br i1 %447, label %.lr.ph1191, label %.loopexit915

.lr.ph1191:                                       ; preds = %.loopexit917
  %.not846 = icmp eq i32 %.0733.ph.lcssa153216131675, 0
  %448 = icmp sgt i32 %.0753.ph.lcssa.fr155315941694, 0
  %.not8471179 = icmp slt i32 %.0753.ph.lcssa.fr155315941694, 0
  %449 = zext i32 %.0753.ph.lcssa.fr155315941694 to i64
  %450 = shl nuw nsw i64 %449, 3
  %wide.trip.count1366 = zext i32 %402 to i64
  %451 = shl nuw nsw i64 %449, 3
  %scevgep1964 = getelementptr i8, ptr %4, i64 %451
  %452 = mul nuw i64 %449, %wide.trip.count1366
  %453 = shl i64 %452, 3
  %scevgep1965 = getelementptr i8, ptr %406, i64 %453
  %min.iters.check1968 = icmp ult i32 %.0753.ph.lcssa.fr155315941694, 4
  %bound0 = icmp ult ptr %4, %scevgep1965
  %bound1 = icmp ult ptr %406, %scevgep1964
  %found.conflict = and i1 %bound0, %bound1
  %n.vec1971 = and i64 %449, 2147483644
  %cmp.n1982 = icmp eq i64 %n.vec1971, %449
  %xtraiter = and i64 %449, 1
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  %454 = add nsw i64 %449, -1
  %min.iters.check1952 = icmp ult i32 %.0753.ph.lcssa.fr155315941694, 4
  %n.vec1955 = and i64 %449, 2147483644
  %cmp.n1963 = icmp eq i64 %n.vec1955, %449
  br label %455

455:                                              ; preds = %.lr.ph1191, %510
  %.06251189 = phi i32 [ 0, %.lr.ph1191 ], [ %507, %510 ]
  br i1 %.not846, label %459, label %456

456:                                              ; preds = %455
  %457 = call i32 @qh_rand() #14
  %458 = srem i32 %457, %402
  br label %459

459:                                              ; preds = %455, %456
  %.0755 = phi i32 [ %458, %456 ], [ -1, %455 ]
  br i1 %448, label %.lr.ph1177.us.preheader, label %.preheader914

.preheader914:                                    ; preds = %459
  br i1 %.not8471179, label %._crit_edge1187, label %.lr.ph1182.split

.lr.ph1177.us.preheader:                          ; preds = %459
  call void @llvm.memset.p0.i64(ptr nonnull align 16 %4, i8 0, i64 %450, i1 false), !tbaa !31
  %460 = zext i32 %.0755 to i64
  br label %.lr.ph1177.us

.lr.ph1177.us:                                    ; preds = %.lr.ph1177.us.preheader, %._crit_edge1178.us
  %indvars.iv1363 = phi i64 [ 0, %.lr.ph1177.us.preheader ], [ %indvars.iv.next1364, %._crit_edge1178.us ]
  %.06511180.us = phi double [ 0.000000e+00, %.lr.ph1177.us.preheader ], [ %491, %._crit_edge1178.us ]
  %461 = call i32 @qh_rand() #14
  %462 = sitofp i32 %461 to double
  %463 = fdiv double %462, 0x41DFFFFFFF800000
  %464 = icmp eq i64 %indvars.iv1363, %460
  %465 = select i1 %464, double %.0704.ph.lcssa154416021686, double 1.000000e+00
  %.0649.us = fmul double %465, %463
  %466 = mul nuw nsw i64 %indvars.iv1363, %449
  %467 = getelementptr inbounds double, ptr %406, i64 %466
  %brmerge = select i1 %min.iters.check1968, i1 true, i1 %found.conflict
  br i1 %brmerge, label %scalar.ph1967.preheader, label %vector.ph1969

vector.ph1969:                                    ; preds = %.lr.ph1177.us
  %broadcast.splatinsert1979 = insertelement <2 x double> poison, double %.0649.us, i64 0
  %broadcast.splat1980 = shufflevector <2 x double> %broadcast.splatinsert1979, <2 x double> poison, <2 x i32> zeroinitializer
  br label %vector.body1973

vector.body1973:                                  ; preds = %vector.body1973, %vector.ph1969
  %index1974 = phi i64 [ 0, %vector.ph1969 ], [ %index.next1981, %vector.body1973 ]
  %468 = getelementptr inbounds double, ptr %467, i64 %index1974
  %469 = getelementptr inbounds i8, ptr %468, i64 16
  %wide.load1975 = load <2 x double>, ptr %468, align 8, !tbaa !31, !alias.scope !43
  %wide.load1976 = load <2 x double>, ptr %469, align 8, !tbaa !31, !alias.scope !43
  %470 = getelementptr inbounds [200 x double], ptr %4, i64 0, i64 %index1974
  %471 = getelementptr inbounds i8, ptr %470, i64 16
  %wide.load1977 = load <2 x double>, ptr %470, align 16, !tbaa !31, !alias.scope !46, !noalias !43
  %wide.load1978 = load <2 x double>, ptr %471, align 16, !tbaa !31, !alias.scope !46, !noalias !43
  %472 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %broadcast.splat1980, <2 x double> %wide.load1975, <2 x double> %wide.load1977)
  %473 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %broadcast.splat1980, <2 x double> %wide.load1976, <2 x double> %wide.load1978)
  store <2 x double> %472, ptr %470, align 16, !tbaa !31, !alias.scope !46, !noalias !43
  store <2 x double> %473, ptr %471, align 16, !tbaa !31, !alias.scope !46, !noalias !43
  %index.next1981 = add nuw i64 %index1974, 4
  %474 = icmp eq i64 %index.next1981, %n.vec1971
  br i1 %474, label %middle.block1966, label %vector.body1973, !llvm.loop !48

middle.block1966:                                 ; preds = %vector.body1973
  br i1 %cmp.n1982, label %._crit_edge1178.us, label %scalar.ph1967.preheader

scalar.ph1967.preheader:                          ; preds = %.lr.ph1177.us, %middle.block1966
  %indvars.iv.ph = phi i64 [ 0, %.lr.ph1177.us ], [ %n.vec1971, %middle.block1966 ]
  br i1 %lcmp.mod.not, label %scalar.ph1967.prol.loopexit, label %scalar.ph1967.prol

scalar.ph1967.prol:                               ; preds = %scalar.ph1967.preheader
  %475 = getelementptr inbounds double, ptr %467, i64 %indvars.iv.ph
  %476 = load double, ptr %475, align 8, !tbaa !31
  %477 = getelementptr inbounds [200 x double], ptr %4, i64 0, i64 %indvars.iv.ph
  %478 = load double, ptr %477, align 16, !tbaa !31
  %479 = call double @llvm.fmuladd.f64(double %.0649.us, double %476, double %478)
  store double %479, ptr %477, align 16, !tbaa !31
  %indvars.iv.next.prol = or disjoint i64 %indvars.iv.ph, 1
  br label %scalar.ph1967.prol.loopexit

scalar.ph1967.prol.loopexit:                      ; preds = %scalar.ph1967.prol, %scalar.ph1967.preheader
  %indvars.iv.unr = phi i64 [ %indvars.iv.ph, %scalar.ph1967.preheader ], [ %indvars.iv.next.prol, %scalar.ph1967.prol ]
  %480 = icmp eq i64 %indvars.iv.ph, %454
  br i1 %480, label %._crit_edge1178.us, label %scalar.ph1967

scalar.ph1967:                                    ; preds = %scalar.ph1967.prol.loopexit, %scalar.ph1967
  %indvars.iv = phi i64 [ %indvars.iv.next.1, %scalar.ph1967 ], [ %indvars.iv.unr, %scalar.ph1967.prol.loopexit ]
  %481 = getelementptr inbounds double, ptr %467, i64 %indvars.iv
  %482 = load double, ptr %481, align 8, !tbaa !31
  %483 = getelementptr inbounds [200 x double], ptr %4, i64 0, i64 %indvars.iv
  %484 = load double, ptr %483, align 8, !tbaa !31
  %485 = call double @llvm.fmuladd.f64(double %.0649.us, double %482, double %484)
  store double %485, ptr %483, align 8, !tbaa !31
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %486 = getelementptr inbounds double, ptr %467, i64 %indvars.iv.next
  %487 = load double, ptr %486, align 8, !tbaa !31
  %488 = getelementptr inbounds [200 x double], ptr %4, i64 0, i64 %indvars.iv.next
  %489 = load double, ptr %488, align 8, !tbaa !31
  %490 = call double @llvm.fmuladd.f64(double %.0649.us, double %487, double %489)
  store double %490, ptr %488, align 8, !tbaa !31
  %indvars.iv.next.1 = add nuw nsw i64 %indvars.iv, 2
  %exitcond1362.not.1 = icmp eq i64 %indvars.iv.next.1, %449
  br i1 %exitcond1362.not.1, label %._crit_edge1178.us, label %scalar.ph1967, !llvm.loop !49

._crit_edge1178.us:                               ; preds = %scalar.ph1967.prol.loopexit, %scalar.ph1967, %middle.block1966
  %491 = fadd double %.06511180.us, %.0649.us
  %indvars.iv.next1364 = add nuw nsw i64 %indvars.iv1363, 1
  %exitcond1367.not = icmp eq i64 %indvars.iv.next1364, %wide.trip.count1366
  br i1 %exitcond1367.not, label %.preheader913, label %.lr.ph1177.us, !llvm.loop !50

.preheader913:                                    ; preds = %._crit_edge1178.us, %.lr.ph1182.split
  %.0651.lcssa = phi double [ %503, %.lr.ph1182.split ], [ %491, %._crit_edge1178.us ]
  br i1 %448, label %.lr.ph1186, label %._crit_edge1187

.lr.ph1186:                                       ; preds = %.preheader913
  %492 = fdiv double %.2637155415931695, %.0651.lcssa
  br i1 %min.iters.check1952, label %scalar.ph1951.preheader, label %vector.ph1953

scalar.ph1951.preheader:                          ; preds = %middle.block1950, %.lr.ph1186
  %indvars.iv1368.ph = phi i64 [ 0, %.lr.ph1186 ], [ %n.vec1955, %middle.block1950 ]
  br label %scalar.ph1951

vector.ph1953:                                    ; preds = %.lr.ph1186
  %broadcast.splatinsert1960 = insertelement <2 x double> poison, double %492, i64 0
  %broadcast.splat1961 = shufflevector <2 x double> %broadcast.splatinsert1960, <2 x double> poison, <2 x i32> zeroinitializer
  br label %vector.body1957

vector.body1957:                                  ; preds = %vector.body1957, %vector.ph1953
  %index1958 = phi i64 [ 0, %vector.ph1953 ], [ %index.next1962, %vector.body1957 ]
  %493 = getelementptr inbounds [200 x double], ptr %4, i64 0, i64 %index1958
  %494 = getelementptr inbounds i8, ptr %493, i64 16
  %wide.load = load <2 x double>, ptr %493, align 16, !tbaa !31
  %wide.load1959 = load <2 x double>, ptr %494, align 16, !tbaa !31
  %495 = fmul <2 x double> %broadcast.splat1961, %wide.load
  %496 = fmul <2 x double> %broadcast.splat1961, %wide.load1959
  store <2 x double> %495, ptr %493, align 16, !tbaa !31
  store <2 x double> %496, ptr %494, align 16, !tbaa !31
  %index.next1962 = add nuw i64 %index1958, 4
  %497 = icmp eq i64 %index.next1962, %n.vec1955
  br i1 %497, label %middle.block1950, label %vector.body1957, !llvm.loop !51

middle.block1950:                                 ; preds = %vector.body1957
  br i1 %cmp.n1963, label %._crit_edge1187, label %scalar.ph1951.preheader

.lr.ph1182.split:                                 ; preds = %.preheader914
  %498 = call i32 @qh_rand() #14
  %499 = icmp eq i32 %.0755, 0
  %500 = select i1 %499, double %.0704.ph.lcssa154416021686, double 1.000000e+00
  %501 = sitofp i32 %498 to double
  %502 = fdiv double %501, 0x41DFFFFFFF800000
  %.0649 = fmul double %500, %502
  %503 = fadd double %.0649, 0.000000e+00
  br label %.preheader913

scalar.ph1951:                                    ; preds = %scalar.ph1951.preheader, %scalar.ph1951
  %indvars.iv1368 = phi i64 [ %indvars.iv.next1369, %scalar.ph1951 ], [ %indvars.iv1368.ph, %scalar.ph1951.preheader ]
  %504 = getelementptr inbounds [200 x double], ptr %4, i64 0, i64 %indvars.iv1368
  %505 = load double, ptr %504, align 8, !tbaa !31
  %506 = fmul double %492, %505
  store double %506, ptr %504, align 8, !tbaa !31
  %indvars.iv.next1369 = add nuw nsw i64 %indvars.iv1368, 1
  %exitcond1372.not = icmp eq i64 %indvars.iv.next1369, %449
  br i1 %exitcond1372.not, label %._crit_edge1187, label %scalar.ph1951, !llvm.loop !52

._crit_edge1187:                                  ; preds = %scalar.ph1951, %middle.block1950, %.preheader914, %.preheader913
  call void @qh_outcoord(i32 noundef %.0740.ph.lcssa152916161672, ptr noundef nonnull %4, i32 noundef %.0753.ph.lcssa.fr155315941694)
  %507 = add nuw nsw i32 %.06251189, 1
  %508 = icmp slt i32 %.06251189, %spec.select870
  br i1 %508, label %509, label %510

509:                                              ; preds = %._crit_edge1187
  call void @qh_outcoincident(i32 noundef %.0764.ph.lcssa152416211667, double noundef %.0687.ph.lcssa154715991689, i32 noundef %.0740.ph.lcssa152916161672, ptr noundef nonnull %4, i32 noundef %.0753.ph.lcssa.fr155315941694)
  br label %510

510:                                              ; preds = %._crit_edge1187, %509
  %exitcond1373.not = icmp eq i32 %507, %.1751
  br i1 %exitcond1373.not, label %.loopexit915, label %455, !llvm.loop !53

.loopexit915:                                     ; preds = %510, %.loopexit917, %.critedge15
  %.1772 = phi i32 [ 0, %.critedge15 ], [ 0, %.loopexit917 ], [ %.1751, %510 ]
  %.2752 = phi i32 [ %.1751, %.critedge15 ], [ 0, %.loopexit917 ], [ 0, %510 ]
  %.2737 = phi i32 [ %.0735.ph.lcssa153116141674, %.critedge15 ], [ 0, %.loopexit917 ], [ 0, %510 ]
  %.0674 = phi ptr [ null, %.critedge15 ], [ %406, %.loopexit917 ], [ %406, %510 ]
  br i1 %292, label %511, label %569

511:                                              ; preds = %.loopexit915
  %512 = sitofp i32 %.2752 to double
  %513 = sitofp i32 %.0753.ph.lcssa.fr155315941694 to double
  %514 = fdiv double 1.000000e+00, %513
  %515 = call double @pow(double noundef %512, double noundef %514) #14
  %516 = fadd double %515, 9.999900e-01
  %517 = fptosi double %516 to i32
  %.not8421253 = icmp eq i32 %.0753.ph.lcssa.fr155315941694, 0
  br i1 %.not8421253, label %.preheader903, label %.lr.ph1256.preheader

.lr.ph1256.preheader:                             ; preds = %511
  %518 = add i32 %.0753.ph.lcssa.fr155315941694, -1
  %519 = sext i32 %518 to i64
  %520 = zext i32 %518 to i64
  %521 = sub nsw i64 %519, %520
  %522 = shl nsw i64 %521, 2
  %scevgep = getelementptr i8, ptr %5, i64 %522
  %523 = zext i32 %.0753.ph.lcssa.fr155315941694 to i64
  %524 = shl nuw nsw i64 %523, 2
  call void @llvm.memset.p0.i64(ptr align 4 %scevgep, i8 0, i64 %524, i1 false), !tbaa !9
  br label %.preheader903

.preheader903:                                    ; preds = %.lr.ph1256.preheader, %511
  %525 = icmp sgt i32 %.2752, 0
  br i1 %525, label %.preheader902.lr.ph, label %.loopexit904

.preheader902.lr.ph:                              ; preds = %.preheader903
  %526 = icmp sgt i32 %.0753.ph.lcssa.fr155315941694, 0
  %527 = getelementptr inbounds i8, ptr %5, i64 4
  %528 = fneg double %.0683.ph.lcssa154815981690
  %wide.trip.count1431 = zext i32 %.0753.ph.lcssa.fr155315941694 to i64
  %wide.trip.count1436 = zext nneg i32 %.0753.ph.lcssa.fr155315941694 to i64
  %xtraiter2194 = and i64 %wide.trip.count1431, 1
  %529 = icmp eq i32 %.0753.ph.lcssa.fr155315941694, 1
  %unroll_iter2197 = and i64 %wide.trip.count1431, 2147483646
  %lcmp.mod2196.not = icmp eq i64 %xtraiter2194, 0
  br label %.preheader902

.preheader902:                                    ; preds = %.preheader902.lr.ph, %._crit_edge1264
  %.51267 = phi i32 [ 0, %.preheader902.lr.ph ], [ %568, %._crit_edge1264 ]
  %.27731266 = phi i32 [ %.1772, %.preheader902.lr.ph ], [ %559, %._crit_edge1264 ]
  br i1 %526, label %.lr.ph1259, label %._crit_edge1260

.lr.ph1259:                                       ; preds = %.preheader902
  %530 = load i32, ptr %5, align 16
  %531 = sitofp i32 %530 to double
  %532 = load i32, ptr %527, align 4
  %533 = sitofp i32 %532 to double
  %534 = fmul double %.0680.ph.lcssa154915971691, %533
  %535 = call double @llvm.fmuladd.f64(double %531, double %.0683.ph.lcssa154815981690, double %534)
  %536 = fmul double %528, %533
  %537 = call double @llvm.fmuladd.f64(double %531, double %.0680.ph.lcssa154915971691, double %536)
  br i1 %529, label %._crit_edge1260.loopexit.unr-lcssa, label %.lr.ph1259.new

.lr.ph1259.new:                                   ; preds = %.lr.ph1259, %551
  %indvars.iv1428 = phi i64 [ %indvars.iv.next1429.1, %551 ], [ 0, %.lr.ph1259 ]
  %.06751257 = phi ptr [ %.1676.1, %551 ], [ %4, %.lr.ph1259 ]
  %niter2198 = phi i64 [ %niter2198.next.1, %551 ], [ 0, %.lr.ph1259 ]
  %538 = trunc nuw nsw i64 %indvars.iv1428 to i32
  %cond = icmp eq i32 %538, 0
  br i1 %cond, label %544, label %539

539:                                              ; preds = %.lr.ph1259.new
  %540 = getelementptr inbounds [200 x i32], ptr %5, i64 0, i64 %indvars.iv1428
  %541 = load i32, ptr %540, align 8, !tbaa !9
  %542 = sitofp i32 %541 to double
  %543 = fmul double %.0677.ph.lcssa155015961692, %542
  br label %544

544:                                              ; preds = %.lr.ph1259.new, %539
  %.sink = phi double [ %543, %539 ], [ %537, %.lr.ph1259.new ]
  store double %.sink, ptr %.06751257, align 8, !tbaa !31
  %.1676 = getelementptr inbounds i8, ptr %.06751257, i64 8
  %indvars.iv.next1429 = or disjoint i64 %indvars.iv1428, 1
  %545 = trunc nuw nsw i64 %indvars.iv.next1429 to i32
  %cond2294 = icmp eq i32 %545, 1
  br i1 %cond2294, label %551, label %546

546:                                              ; preds = %544
  %547 = getelementptr inbounds [200 x i32], ptr %5, i64 0, i64 %indvars.iv.next1429
  %548 = load i32, ptr %547, align 4, !tbaa !9
  %549 = sitofp i32 %548 to double
  %550 = fmul double %.0677.ph.lcssa155015961692, %549
  br label %551

551:                                              ; preds = %544, %546
  %.sink.1 = phi double [ %550, %546 ], [ %535, %544 ]
  store double %.sink.1, ptr %.1676, align 8, !tbaa !31
  %.1676.1 = getelementptr inbounds i8, ptr %.06751257, i64 16
  %indvars.iv.next1429.1 = add nuw nsw i64 %indvars.iv1428, 2
  %niter2198.next.1 = add i64 %niter2198, 2
  %niter2198.ncmp.1 = icmp eq i64 %niter2198.next.1, %unroll_iter2197
  br i1 %niter2198.ncmp.1, label %._crit_edge1260.loopexit.unr-lcssa, label %.lr.ph1259.new, !llvm.loop !54

._crit_edge1260.loopexit.unr-lcssa:               ; preds = %551, %.lr.ph1259
  %indvars.iv1428.unr = phi i64 [ 0, %.lr.ph1259 ], [ %indvars.iv.next1429.1, %551 ]
  %.06751257.unr = phi ptr [ %4, %.lr.ph1259 ], [ %.1676.1, %551 ]
  br i1 %lcmp.mod2196.not, label %._crit_edge1260, label %.epil.preheader

.epil.preheader:                                  ; preds = %._crit_edge1260.loopexit.unr-lcssa
  %552 = trunc nuw nsw i64 %indvars.iv1428.unr to i32
  switch i32 %552, label %554 [
    i32 0, label %._crit_edge1260.loopexit.epilog-lcssa
    i32 1, label %553
  ]

553:                                              ; preds = %.epil.preheader
  br label %._crit_edge1260.loopexit.epilog-lcssa

554:                                              ; preds = %.epil.preheader
  %555 = getelementptr inbounds [200 x i32], ptr %5, i64 0, i64 %indvars.iv1428.unr
  %556 = load i32, ptr %555, align 4, !tbaa !9
  %557 = sitofp i32 %556 to double
  %558 = fmul double %.0677.ph.lcssa155015961692, %557
  br label %._crit_edge1260.loopexit.epilog-lcssa

._crit_edge1260.loopexit.epilog-lcssa:            ; preds = %554, %553, %.epil.preheader
  %.sink.epil = phi double [ %558, %554 ], [ %535, %553 ], [ %537, %.epil.preheader ]
  store double %.sink.epil, ptr %.06751257.unr, align 8, !tbaa !31
  br label %._crit_edge1260

._crit_edge1260:                                  ; preds = %._crit_edge1260.loopexit.epilog-lcssa, %._crit_edge1260.loopexit.unr-lcssa, %.preheader902
  call void @qh_outcoord(i32 noundef %.0740.ph.lcssa152916161672, ptr noundef nonnull %4, i32 noundef %.0753.ph.lcssa.fr155315941694)
  %559 = add nuw nsw i32 %.27731266, 1
  %560 = icmp slt i32 %.27731266, %spec.select870
  br i1 %560, label %561, label %562

561:                                              ; preds = %._crit_edge1260
  call void @qh_outcoincident(i32 noundef %.0764.ph.lcssa152416211667, double noundef %.0687.ph.lcssa154715991689, i32 noundef %.0740.ph.lcssa152916161672, ptr noundef nonnull %4, i32 noundef %.0753.ph.lcssa.fr155315941694)
  br label %562

562:                                              ; preds = %561, %._crit_edge1260
  br i1 %526, label %.lr.ph1263, label %._crit_edge1264

.lr.ph1263:                                       ; preds = %562, %567
  %indvars.iv1433 = phi i64 [ %indvars.iv.next1434, %567 ], [ 0, %562 ]
  %563 = getelementptr inbounds [200 x i32], ptr %5, i64 0, i64 %indvars.iv1433
  %564 = load i32, ptr %563, align 4, !tbaa !9
  %565 = add nsw i32 %564, 1
  store i32 %565, ptr %563, align 4, !tbaa !9
  %566 = icmp slt i32 %565, %517
  br i1 %566, label %._crit_edge1264, label %567

567:                                              ; preds = %.lr.ph1263
  store i32 0, ptr %563, align 4, !tbaa !9
  %indvars.iv.next1434 = add nuw nsw i64 %indvars.iv1433, 1
  %exitcond1437.not = icmp eq i64 %indvars.iv.next1434, %wide.trip.count1436
  br i1 %exitcond1437.not, label %._crit_edge1264, label %.lr.ph1263, !llvm.loop !55

._crit_edge1264:                                  ; preds = %.lr.ph1263, %567, %562
  %568 = add nuw nsw i32 %.51267, 1
  %exitcond1438.not = icmp eq i32 %568, %.2752
  br i1 %exitcond1438.not, label %.loopexit904, label %.preheader902, !llvm.loop !56

569:                                              ; preds = %.loopexit915
  %570 = icmp eq i32 %.2737, 0
  %or.cond17 = or i1 %257, %570
  br i1 %or.cond17, label %627, label %571

571:                                              ; preds = %569
  %572 = add i32 %.0753.ph.lcssa.fr155315941694, -4
  %or.cond19 = icmp ult i32 %572, -2
  br i1 %or.cond19, label %.thread876, label %576

.thread876:                                       ; preds = %571
  call void @qh_free(ptr noundef %.0674) #14
  %573 = load ptr, ptr getelementptr inbounds (i8, ptr @rbox, i64 8), align 8, !tbaa !11
  call void (ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %573, i32 noundef 6197, ptr noundef nonnull @.str.25) #14
  call void @qh_errexit_rbox(i32 noundef 1)
  %574 = icmp eq i32 %.0742.ph.lcssa152816171671, 0
  %575 = fcmp oeq double %.0690.ph.lcssa154616001688, 0.000000e+00
  %or.cond21877 = select i1 %574, i1 true, i1 %575
  %.4694878 = select i1 %or.cond21877, double 1.000000e+00, double %.0690.ph.lcssa154616001688
  br label %586

576:                                              ; preds = %571
  %577 = icmp eq i32 %.0742.ph.lcssa152816171671, 0
  %578 = fcmp oeq double %.0690.ph.lcssa154616001688, 0.000000e+00
  %or.cond21 = select i1 %577, i1 true, i1 %578
  %.4694 = select i1 %or.cond21, double 1.000000e+00, double %.0690.ph.lcssa154616001688
  %579 = icmp eq i32 %.0753.ph.lcssa.fr155315941694, 3
  br i1 %579, label %580, label %586

580:                                              ; preds = %576
  br i1 %.not810, label %581, label %.thread880

581:                                              ; preds = %580
  %582 = fneg double %.2637155415931695
  call void @qh_out3n(double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef %582)
  %.not828 = icmp eq i32 %.0724.ph.lcssa153416111677, 0
  br i1 %.not828, label %585, label %586

.thread880:                                       ; preds = %580
  call void @qh_out1(double noundef 1.000000e+00)
  %583 = fneg double %.2637155415931695
  call void @qh_out3n(double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef %583)
  %.not828881 = icmp eq i32 %.0724.ph.lcssa153416111677, 0
  br i1 %.not828881, label %584, label %586

584:                                              ; preds = %.thread880
  call void @qh_out1(double noundef 1.000000e+00)
  br label %585

585:                                              ; preds = %581, %584
  call void @qh_out3n(double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef %.2637155415931695)
  br label %586

586:                                              ; preds = %.thread880, %.thread876, %581, %585, %576
  %.0724.ph.lcssa1535 = phi i32 [ %.0724.ph.lcssa153416111677, %.thread876 ], [ %.0724.ph.lcssa153416111677, %581 ], [ 0, %585 ], [ %.0724.ph.lcssa153416111677, %576 ], [ %.0724.ph.lcssa153416111677, %.thread880 ]
  %.4694879 = phi double [ %.4694878, %.thread876 ], [ %.4694, %581 ], [ %.4694, %585 ], [ %.4694, %576 ], [ %.4694, %.thread880 ]
  %587 = sitofp i32 %.2752 to double
  %588 = fdiv double 0x401921FB54442D18, %587
  %589 = icmp sgt i32 %.2752, 0
  br i1 %589, label %.lr.ph1196, label %.loopexit904

.lr.ph1196:                                       ; preds = %586
  %590 = icmp eq i32 %.0753.ph.lcssa.fr155315941694, 2
  %.not829 = icmp eq i32 %.0724.ph.lcssa1535, 0
  %591 = fsub double 1.000000e+00, %.0695.ph.lcssa154516011687
  br label %592

592:                                              ; preds = %.lr.ph1196, %625
  %.61194 = phi i32 [ 0, %.lr.ph1196 ], [ %626, %625 ]
  %.06441193 = phi double [ 0.000000e+00, %.lr.ph1196 ], [ %593, %625 ]
  %593 = fadd double %588, %.06441193
  %594 = call double @cos(double noundef %593) #14
  %595 = fmul double %.4694879, %594
  %596 = call double @sin(double noundef %593) #14
  %597 = fmul double %.4694879, %596
  br i1 %590, label %598, label %603

598:                                              ; preds = %592
  br i1 %.not810, label %600, label %599

599:                                              ; preds = %598
  call void @qh_out1(double noundef 1.000000e+00)
  br label %600

600:                                              ; preds = %599, %598
  %601 = fmul double %.2637155415931695, %595
  %602 = fmul double %.2637155415931695, %597
  call void @qh_out2n(double noundef %601, double noundef %602)
  br label %625

603:                                              ; preds = %592
  %604 = call double @llvm.fmuladd.f64(double %595, double %595, double 1.000000e+00)
  %605 = call double @llvm.fmuladd.f64(double %597, double %597, double %604)
  %sqrt898 = call double @llvm.sqrt.f64(double %605)
  br i1 %.not810, label %607, label %606

606:                                              ; preds = %603
  call void @qh_out1(double noundef 1.000000e+00)
  br label %607

607:                                              ; preds = %606, %603
  %608 = fmul double %.2637155415931695, %595
  %609 = fdiv double %608, %sqrt898
  %610 = fmul double %.2637155415931695, %597
  %611 = fdiv double %610, %sqrt898
  %612 = fdiv double %.2637155415931695, %sqrt898
  call void @qh_out3n(double noundef %609, double noundef %611, double noundef %612)
  br i1 %.not829, label %625, label %613

613:                                              ; preds = %607
  %614 = fmul double %591, %595
  %615 = fmul double %591, %597
  %616 = call double @llvm.fmuladd.f64(double %614, double %614, double 1.000000e+00)
  %617 = call double @llvm.fmuladd.f64(double %615, double %615, double %616)
  %sqrt899 = call double @llvm.sqrt.f64(double %617)
  br i1 %.not810, label %619, label %618

618:                                              ; preds = %613
  call void @qh_out1(double noundef 1.000000e+00)
  br label %619

619:                                              ; preds = %618, %613
  %620 = fmul double %.2637155415931695, %614
  %621 = fdiv double %620, %sqrt899
  %622 = fmul double %.2637155415931695, %615
  %623 = fdiv double %622, %sqrt899
  %624 = fdiv double %.2637155415931695, %sqrt899
  call void @qh_out3n(double noundef %621, double noundef %623, double noundef %624)
  br label %625

625:                                              ; preds = %600, %619, %607
  %626 = add nuw nsw i32 %.61194, 1
  %exitcond1374.not = icmp eq i32 %626, %.2752
  br i1 %exitcond1374.not, label %.loopexit904, label %592, !llvm.loop !57

627:                                              ; preds = %569
  %628 = icmp ne i32 %.2737, 0
  %or.cond23 = and i1 %257, %628
  %629 = icmp eq i32 %.0753.ph.lcssa.fr155315941694, 2
  %or.cond25 = and i1 %or.cond23, %629
  br i1 %or.cond25, label %630, label %662

630:                                              ; preds = %627
  %631 = fmul double %.0648, 2.000000e+00
  %632 = add nsw i32 %.2752, -1
  %633 = sitofp i32 %632 to double
  %634 = fdiv double %631, %633
  %635 = call double @cos(double noundef %.0648) #14
  %636 = icmp sgt i32 %.2752, 0
  br i1 %636, label %.lr.ph1252.preheader, label %.loopexit904

.lr.ph1252.preheader:                             ; preds = %630
  %637 = call double @sin(double noundef %.0648) #14
  %638 = fmul double %.0690.ph.lcssa154616001688, %637
  %639 = call double @cos(double noundef %.0648) #14
  %640 = fsub double %639, %635
  %641 = fmul double %.0690.ph.lcssa154616001688, %640
  br i1 %.not810, label %643, label %642

642:                                              ; preds = %.lr.ph1252.preheader
  call void @qh_out1(double noundef 1.000000e+00)
  br label %643

643:                                              ; preds = %.lr.ph1252.preheader, %642
  %644 = fmul double %.2637155415931695, %638
  %645 = fmul double %.2637155415931695, %641
  call void @qh_out2n(double noundef %644, double noundef %645)
  %exitcond1423.peel.not = icmp eq i32 %.2752, 1
  br i1 %exitcond1423.peel.not, label %.loopexit904, label %.lr.ph1252

.lr.ph1252:                                       ; preds = %643, %660
  %.71250 = phi i32 [ %661, %660 ], [ 1, %643 ]
  %.16451249.pn = phi double [ %.16451249, %660 ], [ %.0648, %643 ]
  %.16451249 = fsub double %.16451249.pn, %634
  %646 = call double @sin(double noundef %.16451249) #14
  %647 = fmul double %.0690.ph.lcssa154616001688, %646
  %648 = call double @cos(double noundef %.16451249) #14
  %649 = fsub double %648, %635
  %650 = fmul double %.0690.ph.lcssa154616001688, %649
  br i1 %.not810, label %652, label %651

651:                                              ; preds = %.lr.ph1252
  call void @qh_out1(double noundef 1.000000e+00)
  br label %652

652:                                              ; preds = %651, %.lr.ph1252
  %653 = fmul double %.2637155415931695, %647
  %654 = fmul double %.2637155415931695, %650
  call void @qh_out2n(double noundef %653, double noundef %654)
  %.not841 = icmp eq i32 %.71250, %632
  br i1 %.not841, label %660, label %655

655:                                              ; preds = %652
  br i1 %.not810, label %657, label %656

656:                                              ; preds = %655
  call void @qh_out1(double noundef 1.000000e+00)
  br label %657

657:                                              ; preds = %656, %655
  %658 = fneg double %650
  %659 = fmul double %.2637155415931695, %658
  call void @qh_out2n(double noundef %653, double noundef %659)
  br label %660

660:                                              ; preds = %652, %657
  %661 = add nuw nsw i32 %.71250, 1
  %exitcond1423.not = icmp eq i32 %661, %.2752
  br i1 %exitcond1423.not, label %.loopexit904, label %.lr.ph1252, !llvm.loop !58

662:                                              ; preds = %627
  %663 = icmp ne i32 %.0753.ph.lcssa.fr155315941694, 2
  %or.cond29 = and i1 %or.cond23, %663
  br i1 %or.cond29, label %664, label %700

664:                                              ; preds = %662
  %.not838 = icmp eq i32 %.0753.ph.lcssa.fr155315941694, 3
  br i1 %.not838, label %667, label %665

665:                                              ; preds = %664
  call void @qh_free(ptr noundef %.0674) #14
  %666 = load ptr, ptr getelementptr inbounds (i8, ptr @rbox, i64 8), align 8, !tbaa !11
  call void (ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %666, i32 noundef 6198, ptr noundef nonnull @.str.25) #14
  call void @qh_errexit_rbox(i32 noundef 1)
  br label %667

667:                                              ; preds = %665, %664
  %668 = sitofp i32 %.2752 to double
  %669 = fdiv double 0x401921FB54442D18, %668
  %.not839 = icmp eq i32 %.0724.ph.lcssa153416111677, 0
  %670 = fsub double 1.000000e+00, %.0695.ph.lcssa154516011687
  %671 = select i1 %.not839, double 5.000000e-01, double %670
  %672 = fneg double %671
  %673 = fmul double %671, %672
  %674 = call double @llvm.fmuladd.f64(double %.0690.ph.lcssa154616001688, double %.0690.ph.lcssa154616001688, double %673)
  %675 = call double @sqrt(double noundef %674) #14
  %676 = icmp sgt i32 %.2752, 0
  br i1 %676, label %.lr.ph1248, label %.loopexit904

.lr.ph1248:                                       ; preds = %667
  %677 = fsub double %675, %.0647
  %678 = fmul double %.2637155415931695, %677
  %679 = fneg double %.2637155415931695
  %680 = fmul double %677, %679
  br label %681

681:                                              ; preds = %.lr.ph1248, %695
  %.81246 = phi i32 [ 0, %.lr.ph1248 ], [ %698, %695 ]
  %.26461245 = phi double [ 0.000000e+00, %.lr.ph1248 ], [ %699, %695 ]
  %682 = call double @cos(double noundef %.26461245) #14
  %683 = call double @sin(double noundef %.26461245) #14
  br i1 %.not810, label %685, label %684

684:                                              ; preds = %681
  call void @qh_out1(double noundef 1.000000e+00)
  br label %685

685:                                              ; preds = %684, %681
  %686 = fmul double %.2637155415931695, %682
  %687 = fmul double %.2637155415931695, %683
  call void @qh_out3n(double noundef %686, double noundef %687, double noundef 0.000000e+00)
  %688 = fmul double %671, %682
  %689 = fmul double %671, %683
  br i1 %.not810, label %.thread1703, label %692

.thread1703:                                      ; preds = %685
  %690 = fmul double %.2637155415931695, %688
  %691 = fmul double %.2637155415931695, %689
  call void @qh_out3n(double noundef %690, double noundef %691, double noundef %678)
  br label %695

692:                                              ; preds = %685
  call void @qh_out1(double noundef 1.000000e+00)
  %693 = fmul double %.2637155415931695, %688
  %694 = fmul double %.2637155415931695, %689
  call void @qh_out3n(double noundef %693, double noundef %694, double noundef %678)
  call void @qh_out1(double noundef 1.000000e+00)
  br label %695

695:                                              ; preds = %.thread1703, %692
  %696 = phi double [ %691, %.thread1703 ], [ %694, %692 ]
  %697 = phi double [ %690, %.thread1703 ], [ %693, %692 ]
  call void @qh_out3n(double noundef %697, double noundef %696, double noundef %680)
  %698 = add nuw nsw i32 %.81246, 1
  %699 = fadd double %669, %.26461245
  %exitcond1422.not = icmp eq i32 %698, %.2752
  br i1 %exitcond1422.not, label %.loopexit904, label %681, !llvm.loop !60

700:                                              ; preds = %662
  %701 = icmp ne i32 %.0742.ph.lcssa152816171671, 0
  br i1 %701, label %702, label %710

702:                                              ; preds = %700
  %703 = add i32 %.0753.ph.lcssa.fr155315941694, -1
  br i1 %.not810, label %705, label %704

704:                                              ; preds = %702
  call void @qh_out1(double noundef 1.000000e+00)
  br label %705

705:                                              ; preds = %704, %702
  %706 = icmp sgt i32 %.0753.ph.lcssa.fr155315941694, 1
  br i1 %706, label %.lr.ph1199, label %._crit_edge1200

.lr.ph1199:                                       ; preds = %705, %.lr.ph1199
  %.16261197 = phi i32 [ %707, %.lr.ph1199 ], [ 0, %705 ]
  call void @qh_out1(double noundef 0.000000e+00)
  %707 = add nuw nsw i32 %.16261197, 1
  %exitcond1375.not = icmp eq i32 %707, %703
  br i1 %exitcond1375.not, label %._crit_edge1200, label %.lr.ph1199, !llvm.loop !61

._crit_edge1200:                                  ; preds = %.lr.ph1199, %705
  %708 = fneg double %.2637155415931695
  call void @qh_out1(double noundef %708)
  %709 = load ptr, ptr @rbox, align 8, !tbaa !14
  call void (ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %709, i32 noundef 9398, ptr noundef nonnull @.str.23) #14
  br label %712

710:                                              ; preds = %700
  %711 = sext i1 %257 to i32
  %spec.select875 = add nsw i32 %.0753.ph.lcssa.fr155315941694, %711
  br label %712

712:                                              ; preds = %710, %._crit_edge1200
  %.0686 = phi i32 [ %703, %._crit_edge1200 ], [ %spec.select875, %710 ]
  %713 = icmp sgt i32 %.2752, 0
  br i1 %713, label %.preheader910.lr.ph, label %.loopexit904

.preheader910.lr.ph:                              ; preds = %712
  %714 = icmp sgt i32 %.0686, 0
  %715 = icmp ne i32 %.2746, 0
  %or.cond31 = select i1 %257, i1 %715, i1 false
  %716 = icmp eq i32 %.0738.ph.lcssa153016151673, 0
  %or.cond33 = select i1 %716, i1 true, i1 %715
  %.not831 = icmp eq i32 %.0722.ph.lcssa153616101678, 0
  %.not833 = icmp eq i32 %.0753.ph.lcssa.fr155315941694, 3
  %717 = add nsw i32 %.2752, -1
  %718 = uitofp nneg i32 %717 to double
  %719 = getelementptr inbounds i8, ptr %4, i64 8
  %720 = getelementptr inbounds i8, ptr %4, i64 16
  %.not832 = icmp eq i32 %.0733.ph.lcssa153216131675, 0
  %721 = icmp sgt i32 %.0753.ph.lcssa.fr155315941694, 0
  %or.cond35 = select i1 %701, i1 %715, i1 false
  %722 = icmp eq i32 %.0742.ph.lcssa152816171671, 0
  %or.cond37 = select i1 %722, i1 true, i1 %715
  %723 = add nsw i32 %.0753.ph.lcssa.fr155315941694, -1
  %724 = sext i32 %723 to i64
  %725 = getelementptr inbounds [200 x double], ptr %4, i64 0, i64 %724
  %wide.trip.count1379 = zext i32 %.0686 to i64
  %wide.trip.count1384 = zext i32 %.0753.ph.lcssa.fr155315941694 to i64
  %wide.trip.count1389 = zext nneg i32 %.0686 to i64
  %wide.trip.count1394 = zext nneg i32 %.0686 to i64
  %wide.trip.count1404 = zext nneg i32 %.0753.ph.lcssa.fr155315941694 to i64
  %wide.trip.count1414 = zext nneg i32 %.0753.ph.lcssa.fr155315941694 to i64
  %wide.trip.count1419 = zext nneg i32 %.0753.ph.lcssa.fr155315941694 to i64
  %726 = add nsw i64 %wide.trip.count1384, -1
  %min.iters.check2060 = icmp ult i32 %.0753.ph.lcssa.fr155315941694, 4
  %n.vec2063 = and i64 %wide.trip.count1384, 2147483644
  %cmp.n2072 = icmp eq i64 %n.vec2063, %wide.trip.count1384
  %min.iters.check2045 = icmp ult i32 %.0686, 4
  %n.vec2048 = and i64 %wide.trip.count1379, 2147483644
  %cmp.n2057 = icmp eq i64 %n.vec2048, %wide.trip.count1379
  %min.iters.check2030 = icmp ult i32 %.0686, 4
  %n.vec2033 = and i64 %wide.trip.count1379, 2147483644
  %cmp.n2042 = icmp eq i64 %n.vec2033, %wide.trip.count1379
  %xtraiter2185 = and i64 %wide.trip.count1384, 3
  %727 = icmp ult i64 %726, 3
  %unroll_iter = and i64 %wide.trip.count1384, 2147483644
  %lcmp.mod2186.not = icmp eq i64 %xtraiter2185, 0
  %min.iters.check2014 = icmp eq i32 %.0753.ph.lcssa.fr155315941694, 1
  %n.vec2017 = and i64 %wide.trip.count1384, 2147483646
  %broadcast.splatinsert2022 = insertelement <2 x double> poison, double %.0690.ph.lcssa154616001688, i64 0
  %broadcast.splat2023 = shufflevector <2 x double> %broadcast.splatinsert2022, <2 x double> poison, <2 x i32> zeroinitializer
  %cmp.n2027 = icmp eq i64 %n.vec2017, %wide.trip.count1384
  %xtraiter2188 = and i64 %wide.trip.count1379, 3
  %728 = icmp ult i32 %.0686, 4
  %unroll_iter2192 = and i64 %wide.trip.count1379, 2147483644
  %lcmp.mod2190.not = icmp eq i64 %xtraiter2188, 0
  %min.iters.check2000 = icmp eq i32 %.0753.ph.lcssa.fr155315941694, 1
  %n.vec2003 = and i64 %wide.trip.count1384, 2147483646
  %cmp.n2011 = icmp eq i64 %n.vec2003, %wide.trip.count1384
  %min.iters.check1985 = icmp ult i32 %.0753.ph.lcssa.fr155315941694, 4
  %n.vec1988 = and i64 %wide.trip.count1384, 2147483644
  %broadcast.splatinsert1994 = insertelement <2 x double> poison, double %.2637155415931695, i64 0
  %broadcast.splat1995 = shufflevector <2 x double> %broadcast.splatinsert1994, <2 x double> poison, <2 x i32> zeroinitializer
  %cmp.n1997 = icmp eq i64 %n.vec1988, %wide.trip.count1384
  br label %.preheader910

.preheader910:                                    ; preds = %.preheader910.lr.ph, %920
  %.91242 = phi i32 [ 0, %.preheader910.lr.ph ], [ %921, %920 ]
  %.46991241 = phi double [ %.0695.ph.lcssa154516011687, %.preheader910.lr.ph ], [ %.8703889, %920 ]
  %.27261240 = phi i32 [ %.0724.ph.lcssa153416111677, %.preheader910.lr.ph ], [ %.6730887, %920 ]
  %.37741239 = phi i32 [ %.1772, %.preheader910.lr.ph ], [ %917, %920 ]
  br i1 %714, label %.lr.ph1203, label %._crit_edge1204

.lr.ph1203:                                       ; preds = %.preheader910, %.lr.ph1203
  %indvars.iv1376 = phi i64 [ %indvars.iv.next1377, %.lr.ph1203 ], [ 0, %.preheader910 ]
  %.16521201 = phi double [ %735, %.lr.ph1203 ], [ 0.000000e+00, %.preheader910 ]
  %729 = call i32 @qh_rand() #14
  %730 = sitofp i32 %729 to double
  %731 = fmul double %730, 2.000000e+00
  %732 = fdiv double %731, 0x41DFFFFFFF800000
  %733 = fadd double %732, -1.000000e+00
  %734 = getelementptr inbounds [200 x double], ptr %4, i64 0, i64 %indvars.iv1376
  store double %733, ptr %734, align 8, !tbaa !31
  %735 = call double @llvm.fmuladd.f64(double %733, double %733, double %.16521201)
  %indvars.iv.next1377 = add nuw nsw i64 %indvars.iv1376, 1
  %exitcond1380.not = icmp eq i64 %indvars.iv.next1377, %wide.trip.count1379
  br i1 %exitcond1380.not, label %._crit_edge1204, label %.lr.ph1203, !llvm.loop !62

._crit_edge1204:                                  ; preds = %.lr.ph1203, %.preheader910
  %.1652.lcssa = phi double [ 0.000000e+00, %.preheader910 ], [ %735, %.lr.ph1203 ]
  %736 = call double @sqrt(double noundef %.1652.lcssa) #14
  br i1 %701, label %737, label %753

737:                                              ; preds = %._crit_edge1204
  %.not835 = icmp eq i32 %.27261240, 0
  %.5700 = select i1 %.not835, double 1.000000e+00, double %.46991241
  %738 = call i32 @qh_rand() #14
  %739 = sitofp i32 %738 to double
  %740 = fmul double %.5700, %739
  %741 = fdiv double %740, 0x41DFFFFFFF800000
  %742 = fsub double 1.000000e+00, %741
  %743 = fmul double %.0690.ph.lcssa154616001688, %742
  %744 = fdiv double %743, %736
  br i1 %714, label %.lr.ph1214.preheader, label %.loopexit907

.lr.ph1214.preheader:                             ; preds = %737
  br i1 %min.iters.check2030, label %.lr.ph1214.preheader2080, label %vector.ph2031

vector.ph2031:                                    ; preds = %.lr.ph1214.preheader
  %broadcast.splatinsert2039 = insertelement <2 x double> poison, double %744, i64 0
  %broadcast.splat2040 = shufflevector <2 x double> %broadcast.splatinsert2039, <2 x double> poison, <2 x i32> zeroinitializer
  br label %vector.body2035

vector.body2035:                                  ; preds = %vector.body2035, %vector.ph2031
  %index2036 = phi i64 [ 0, %vector.ph2031 ], [ %index.next2041, %vector.body2035 ]
  %745 = getelementptr inbounds [200 x double], ptr %4, i64 0, i64 %index2036
  %746 = getelementptr inbounds i8, ptr %745, i64 16
  %wide.load2037 = load <2 x double>, ptr %745, align 16, !tbaa !31
  %wide.load2038 = load <2 x double>, ptr %746, align 16, !tbaa !31
  %747 = fmul <2 x double> %broadcast.splat2040, %wide.load2037
  %748 = fmul <2 x double> %broadcast.splat2040, %wide.load2038
  store <2 x double> %747, ptr %745, align 16, !tbaa !31
  store <2 x double> %748, ptr %746, align 16, !tbaa !31
  %index.next2041 = add nuw i64 %index2036, 4
  %749 = icmp eq i64 %index.next2041, %n.vec2033
  br i1 %749, label %middle.block2028, label %vector.body2035, !llvm.loop !63

middle.block2028:                                 ; preds = %vector.body2035
  br i1 %cmp.n2042, label %.loopexit907, label %.lr.ph1214.preheader2080

.lr.ph1214.preheader2080:                         ; preds = %middle.block2028, %.lr.ph1214.preheader
  %indvars.iv1391.ph = phi i64 [ 0, %.lr.ph1214.preheader ], [ %n.vec2033, %middle.block2028 ]
  br label %.lr.ph1214

.lr.ph1214:                                       ; preds = %.lr.ph1214.preheader2080, %.lr.ph1214
  %indvars.iv1391 = phi i64 [ %indvars.iv.next1392, %.lr.ph1214 ], [ %indvars.iv1391.ph, %.lr.ph1214.preheader2080 ]
  %750 = getelementptr inbounds [200 x double], ptr %4, i64 0, i64 %indvars.iv1391
  %751 = load double, ptr %750, align 8, !tbaa !31
  %752 = fmul double %744, %751
  store double %752, ptr %750, align 8, !tbaa !31
  %indvars.iv.next1392 = add nuw nsw i64 %indvars.iv1391, 1
  %exitcond1395.not = icmp eq i64 %indvars.iv.next1392, %wide.trip.count1394
  br i1 %exitcond1395.not, label %.loopexit907, label %.lr.ph1214, !llvm.loop !64

753:                                              ; preds = %._crit_edge1204
  br i1 %or.cond31, label %754, label %769

754:                                              ; preds = %753
  %.not834 = icmp eq i32 %.27261240, 0
  %.6701 = select i1 %.not834, double 1.000000e+00, double %.46991241
  %755 = call i32 @qh_rand() #14
  %756 = sitofp i32 %755 to double
  %757 = fmul double %.6701, %756
  %758 = fdiv double %757, 0x41DFFFFFFF800000
  %759 = fsub double 1.000000e+00, %758
  %760 = fdiv double %759, %736
  br i1 %714, label %.lr.ph1211.preheader, label %.loopexit907

.lr.ph1211.preheader:                             ; preds = %754
  br i1 %min.iters.check2045, label %.lr.ph1211.preheader2081, label %vector.ph2046

vector.ph2046:                                    ; preds = %.lr.ph1211.preheader
  %broadcast.splatinsert2054 = insertelement <2 x double> poison, double %760, i64 0
  %broadcast.splat2055 = shufflevector <2 x double> %broadcast.splatinsert2054, <2 x double> poison, <2 x i32> zeroinitializer
  br label %vector.body2050

vector.body2050:                                  ; preds = %vector.body2050, %vector.ph2046
  %index2051 = phi i64 [ 0, %vector.ph2046 ], [ %index.next2056, %vector.body2050 ]
  %761 = getelementptr inbounds [200 x double], ptr %4, i64 0, i64 %index2051
  %762 = getelementptr inbounds i8, ptr %761, i64 16
  %wide.load2052 = load <2 x double>, ptr %761, align 16, !tbaa !31
  %wide.load2053 = load <2 x double>, ptr %762, align 16, !tbaa !31
  %763 = fmul <2 x double> %broadcast.splat2055, %wide.load2052
  %764 = fmul <2 x double> %broadcast.splat2055, %wide.load2053
  store <2 x double> %763, ptr %761, align 16, !tbaa !31
  store <2 x double> %764, ptr %762, align 16, !tbaa !31
  %index.next2056 = add nuw i64 %index2051, 4
  %765 = icmp eq i64 %index.next2056, %n.vec2048
  br i1 %765, label %middle.block2043, label %vector.body2050, !llvm.loop !65

middle.block2043:                                 ; preds = %vector.body2050
  br i1 %cmp.n2057, label %.loopexit907, label %.lr.ph1211.preheader2081

.lr.ph1211.preheader2081:                         ; preds = %middle.block2043, %.lr.ph1211.preheader
  %indvars.iv1386.ph = phi i64 [ 0, %.lr.ph1211.preheader ], [ %n.vec2048, %middle.block2043 ]
  br label %.lr.ph1211

.lr.ph1211:                                       ; preds = %.lr.ph1211.preheader2081, %.lr.ph1211
  %indvars.iv1386 = phi i64 [ %indvars.iv.next1387, %.lr.ph1211 ], [ %indvars.iv1386.ph, %.lr.ph1211.preheader2081 ]
  %766 = getelementptr inbounds [200 x double], ptr %4, i64 0, i64 %indvars.iv1386
  %767 = load double, ptr %766, align 8, !tbaa !31
  %768 = fmul double %760, %767
  store double %768, ptr %766, align 8, !tbaa !31
  %indvars.iv.next1387 = add nuw nsw i64 %indvars.iv1386, 1
  %exitcond1390.not = icmp eq i64 %indvars.iv.next1387, %wide.trip.count1389
  br i1 %exitcond1390.not, label %.loopexit907, label %.lr.ph1211, !llvm.loop !66

769:                                              ; preds = %753
  br i1 %or.cond33, label %782, label %770

770:                                              ; preds = %769
  %.not830 = icmp eq i32 %.27261240, 0
  %.7702 = select i1 %.not830, double 1.000000e+00, double %.46991241
  %771 = call i32 @qh_rand() #14
  %772 = srem i32 %771, %.0686
  %773 = sext i32 %772 to i64
  %774 = getelementptr inbounds [200 x double], ptr %4, i64 0, i64 %773
  %775 = load double, ptr %774, align 8, !tbaa !31
  %776 = fcmp olt double %775, 0.000000e+00
  %777 = fneg double %775
  br i1 %776, label %778, label %780

778:                                              ; preds = %770
  %779 = call double @llvm.fmuladd.f64(double %777, double %.7702, double -1.000000e+00)
  store double %779, ptr %774, align 8, !tbaa !31
  br label %.thread891

780:                                              ; preds = %770
  %781 = call double @llvm.fmuladd.f64(double %777, double %.7702, double 1.000000e+00)
  store double %781, ptr %774, align 8, !tbaa !31
  br label %.thread891

782:                                              ; preds = %769
  br i1 %.not831, label %796, label %783

783:                                              ; preds = %782
  br i1 %.not833, label %786, label %784

784:                                              ; preds = %783
  call void @qh_free(ptr noundef %.0674) #14
  %785 = load ptr, ptr getelementptr inbounds (i8, ptr @rbox, i64 8), align 8, !tbaa !11
  call void (ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %785, i32 noundef 6199, ptr noundef nonnull @.str.26) #14
  call void @qh_errexit_rbox(i32 noundef 1)
  br label %786

786:                                              ; preds = %784, %783
  %787 = uitofp nneg i32 %.91242 to double
  %788 = fmul double %787, 0x401921FB54442D18
  %789 = fdiv double %788, %718
  %790 = call double @cos(double noundef %789) #14
  store double %790, ptr %4, align 16, !tbaa !31
  %791 = call double @sin(double noundef %789) #14
  store double %791, ptr %719, align 8, !tbaa !31
  %792 = shl nuw i32 %.91242, 1
  %793 = uitofp i32 %792 to double
  %794 = fdiv double %793, %718
  %795 = fadd double %794, -1.000000e+00
  store double %795, ptr %720, align 16, !tbaa !31
  br label %.thread891

796:                                              ; preds = %782
  br i1 %715, label %797, label %.thread891

797:                                              ; preds = %796
  %798 = fdiv double 1.000000e+00, %736
  br i1 %.not832, label %806, label %799

799:                                              ; preds = %797
  %800 = call i32 @qh_rand() #14
  %801 = sitofp i32 %800 to double
  %802 = fmul double %.0704.ph.lcssa154416021686, %801
  %803 = fdiv double %802, 0x41DFFFFFFF800000
  %804 = fsub double 1.000000e+00, %803
  %805 = fmul double %798, %804
  br label %806

806:                                              ; preds = %799, %797
  %.1650 = phi double [ %805, %799 ], [ %798, %797 ]
  br i1 %721, label %.lr.ph1208.preheader, label %.loopexit907

.lr.ph1208.preheader:                             ; preds = %806
  br i1 %min.iters.check2060, label %.lr.ph1208.preheader2083, label %vector.ph2061

vector.ph2061:                                    ; preds = %.lr.ph1208.preheader
  %broadcast.splatinsert2069 = insertelement <2 x double> poison, double %.1650, i64 0
  %broadcast.splat2070 = shufflevector <2 x double> %broadcast.splatinsert2069, <2 x double> poison, <2 x i32> zeroinitializer
  br label %vector.body2065

vector.body2065:                                  ; preds = %vector.body2065, %vector.ph2061
  %index2066 = phi i64 [ 0, %vector.ph2061 ], [ %index.next2071, %vector.body2065 ]
  %807 = getelementptr inbounds [200 x double], ptr %4, i64 0, i64 %index2066
  %808 = getelementptr inbounds i8, ptr %807, i64 16
  %wide.load2067 = load <2 x double>, ptr %807, align 16, !tbaa !31
  %wide.load2068 = load <2 x double>, ptr %808, align 16, !tbaa !31
  %809 = fmul <2 x double> %broadcast.splat2070, %wide.load2067
  %810 = fmul <2 x double> %broadcast.splat2070, %wide.load2068
  store <2 x double> %809, ptr %807, align 16, !tbaa !31
  store <2 x double> %810, ptr %808, align 16, !tbaa !31
  %index.next2071 = add nuw i64 %index2066, 4
  %811 = icmp eq i64 %index.next2071, %n.vec2063
  br i1 %811, label %middle.block2058, label %vector.body2065, !llvm.loop !67

middle.block2058:                                 ; preds = %vector.body2065
  br i1 %cmp.n2072, label %.loopexit907, label %.lr.ph1208.preheader2083

.lr.ph1208.preheader2083:                         ; preds = %middle.block2058, %.lr.ph1208.preheader
  %indvars.iv1381.ph = phi i64 [ 0, %.lr.ph1208.preheader ], [ %n.vec2063, %middle.block2058 ]
  br label %.lr.ph1208

.lr.ph1208:                                       ; preds = %.lr.ph1208.preheader2083, %.lr.ph1208
  %indvars.iv1381 = phi i64 [ %indvars.iv.next1382, %.lr.ph1208 ], [ %indvars.iv1381.ph, %.lr.ph1208.preheader2083 ]
  %812 = getelementptr inbounds [200 x double], ptr %4, i64 0, i64 %indvars.iv1381
  %813 = load double, ptr %812, align 8, !tbaa !31
  %814 = fmul double %.1650, %813
  store double %814, ptr %812, align 8, !tbaa !31
  %indvars.iv.next1382 = add nuw nsw i64 %indvars.iv1381, 1
  %exitcond1385.not = icmp eq i64 %indvars.iv.next1382, %wide.trip.count1384
  br i1 %exitcond1385.not, label %.loopexit907, label %.lr.ph1208, !llvm.loop !68

.loopexit907:                                     ; preds = %.lr.ph1208, %.lr.ph1211, %.lr.ph1214, %middle.block2058, %middle.block2043, %middle.block2028, %806, %754, %737
  %.6730 = phi i32 [ 1, %737 ], [ 1, %754 ], [ %.27261240, %806 ], [ 1, %middle.block2028 ], [ 1, %middle.block2043 ], [ %.27261240, %middle.block2058 ], [ 1, %.lr.ph1214 ], [ 1, %.lr.ph1211 ], [ %.27261240, %.lr.ph1208 ]
  %.8703 = phi double [ %.5700, %737 ], [ %.6701, %754 ], [ %.46991241, %806 ], [ %.5700, %middle.block2028 ], [ %.6701, %middle.block2043 ], [ %.46991241, %middle.block2058 ], [ %.5700, %.lr.ph1214 ], [ %.6701, %.lr.ph1211 ], [ %.46991241, %.lr.ph1208 ]
  br i1 %or.cond35, label %815, label %846

815:                                              ; preds = %.loopexit907
  store double 1.000000e+00, ptr %725, align 8, !tbaa !31
  br i1 %714, label %.lr.ph1228.preheader, label %._crit_edge1229

.lr.ph1228.preheader:                             ; preds = %815
  br i1 %728, label %._crit_edge1229.loopexit.unr-lcssa, label %.lr.ph1228

.lr.ph1228:                                       ; preds = %.lr.ph1228.preheader, %.lr.ph1228
  %indvars.iv1406 = phi i64 [ %indvars.iv.next1407.3, %.lr.ph1228 ], [ 0, %.lr.ph1228.preheader ]
  %.26531225 = phi double [ %827, %.lr.ph1228 ], [ 1.000000e+00, %.lr.ph1228.preheader ]
  %niter2193 = phi i64 [ %niter2193.next.3, %.lr.ph1228 ], [ 0, %.lr.ph1228.preheader ]
  %816 = getelementptr inbounds [200 x double], ptr %4, i64 0, i64 %indvars.iv1406
  %817 = load double, ptr %816, align 16, !tbaa !31
  %818 = call double @llvm.fmuladd.f64(double %817, double %817, double %.26531225)
  %indvars.iv.next1407 = or disjoint i64 %indvars.iv1406, 1
  %819 = getelementptr inbounds [200 x double], ptr %4, i64 0, i64 %indvars.iv.next1407
  %820 = load double, ptr %819, align 8, !tbaa !31
  %821 = call double @llvm.fmuladd.f64(double %820, double %820, double %818)
  %indvars.iv.next1407.1 = or disjoint i64 %indvars.iv1406, 2
  %822 = getelementptr inbounds [200 x double], ptr %4, i64 0, i64 %indvars.iv.next1407.1
  %823 = load double, ptr %822, align 16, !tbaa !31
  %824 = call double @llvm.fmuladd.f64(double %823, double %823, double %821)
  %indvars.iv.next1407.2 = or disjoint i64 %indvars.iv1406, 3
  %825 = getelementptr inbounds [200 x double], ptr %4, i64 0, i64 %indvars.iv.next1407.2
  %826 = load double, ptr %825, align 8, !tbaa !31
  %827 = call double @llvm.fmuladd.f64(double %826, double %826, double %824)
  %indvars.iv.next1407.3 = add nuw nsw i64 %indvars.iv1406, 4
  %niter2193.next.3 = add i64 %niter2193, 4
  %niter2193.ncmp.3 = icmp eq i64 %niter2193.next.3, %unroll_iter2192
  br i1 %niter2193.ncmp.3, label %._crit_edge1229.loopexit.unr-lcssa, label %.lr.ph1228, !llvm.loop !69

._crit_edge1229.loopexit.unr-lcssa:               ; preds = %.lr.ph1228, %.lr.ph1228.preheader
  %.lcssa2087.ph = phi double [ poison, %.lr.ph1228.preheader ], [ %827, %.lr.ph1228 ]
  %indvars.iv1406.unr = phi i64 [ 0, %.lr.ph1228.preheader ], [ %indvars.iv.next1407.3, %.lr.ph1228 ]
  %.26531225.unr = phi double [ 1.000000e+00, %.lr.ph1228.preheader ], [ %827, %.lr.ph1228 ]
  br i1 %lcmp.mod2190.not, label %._crit_edge1229, label %.lr.ph1228.epil

.lr.ph1228.epil:                                  ; preds = %._crit_edge1229.loopexit.unr-lcssa, %.lr.ph1228.epil
  %indvars.iv1406.epil = phi i64 [ %indvars.iv.next1407.epil, %.lr.ph1228.epil ], [ %indvars.iv1406.unr, %._crit_edge1229.loopexit.unr-lcssa ]
  %.26531225.epil = phi double [ %830, %.lr.ph1228.epil ], [ %.26531225.unr, %._crit_edge1229.loopexit.unr-lcssa ]
  %epil.iter2189 = phi i64 [ %epil.iter2189.next, %.lr.ph1228.epil ], [ 0, %._crit_edge1229.loopexit.unr-lcssa ]
  %828 = getelementptr inbounds [200 x double], ptr %4, i64 0, i64 %indvars.iv1406.epil
  %829 = load double, ptr %828, align 8, !tbaa !31
  %830 = call double @llvm.fmuladd.f64(double %829, double %829, double %.26531225.epil)
  %indvars.iv.next1407.epil = add nuw nsw i64 %indvars.iv1406.epil, 1
  %epil.iter2189.next = add i64 %epil.iter2189, 1
  %epil.iter2189.cmp.not = icmp eq i64 %epil.iter2189.next, %xtraiter2188
  br i1 %epil.iter2189.cmp.not, label %._crit_edge1229, label %.lr.ph1228.epil, !llvm.loop !70

._crit_edge1229:                                  ; preds = %._crit_edge1229.loopexit.unr-lcssa, %.lr.ph1228.epil, %815
  %.2653.lcssa = phi double [ 1.000000e+00, %815 ], [ %.lcssa2087.ph, %._crit_edge1229.loopexit.unr-lcssa ], [ %830, %.lr.ph1228.epil ]
  %831 = call double @sqrt(double noundef %.2653.lcssa) #14
  br i1 %721, label %.lr.ph1233.preheader, label %._crit_edge1234

.lr.ph1233.preheader:                             ; preds = %._crit_edge1229
  br i1 %min.iters.check2000, label %.lr.ph1233.preheader2078, label %vector.ph2001

vector.ph2001:                                    ; preds = %.lr.ph1233.preheader
  %broadcast.splatinsert2008 = insertelement <2 x double> poison, double %831, i64 0
  %broadcast.splat2009 = shufflevector <2 x double> %broadcast.splatinsert2008, <2 x double> poison, <2 x i32> zeroinitializer
  br label %vector.body2005

vector.body2005:                                  ; preds = %vector.body2005, %vector.ph2001
  %index2006 = phi i64 [ 0, %vector.ph2001 ], [ %index.next2010, %vector.body2005 ]
  %832 = getelementptr inbounds [200 x double], ptr %4, i64 0, i64 %index2006
  %wide.load2007 = load <2 x double>, ptr %832, align 16, !tbaa !31
  %833 = fdiv <2 x double> %wide.load2007, %broadcast.splat2009
  store <2 x double> %833, ptr %832, align 16, !tbaa !31
  %index.next2010 = add nuw i64 %index2006, 2
  %834 = icmp eq i64 %index.next2010, %n.vec2003
  br i1 %834, label %middle.block1998, label %vector.body2005, !llvm.loop !72

middle.block1998:                                 ; preds = %vector.body2005
  br i1 %cmp.n2011, label %._crit_edge1234, label %.lr.ph1233.preheader2078

.lr.ph1233.preheader2078:                         ; preds = %middle.block1998, %.lr.ph1233.preheader
  %indvars.iv1411.ph = phi i64 [ 0, %.lr.ph1233.preheader ], [ %n.vec2003, %middle.block1998 ]
  br label %.lr.ph1233

.lr.ph1233:                                       ; preds = %.lr.ph1233.preheader2078, %.lr.ph1233
  %indvars.iv1411 = phi i64 [ %indvars.iv.next1412, %.lr.ph1233 ], [ %indvars.iv1411.ph, %.lr.ph1233.preheader2078 ]
  %835 = getelementptr inbounds [200 x double], ptr %4, i64 0, i64 %indvars.iv1411
  %836 = load double, ptr %835, align 8, !tbaa !31
  %837 = fdiv double %836, %831
  store double %837, ptr %835, align 8, !tbaa !31
  %indvars.iv.next1412 = add nuw nsw i64 %indvars.iv1411, 1
  %exitcond1415.not = icmp eq i64 %indvars.iv.next1412, %wide.trip.count1414
  br i1 %exitcond1415.not, label %._crit_edge1234, label %.lr.ph1233, !llvm.loop !73

._crit_edge1234:                                  ; preds = %.lr.ph1233, %middle.block1998, %._crit_edge1229
  br i1 %.not832, label %908, label %838

838:                                              ; preds = %._crit_edge1234
  %839 = call i32 @qh_rand() #14
  %840 = sitofp i32 %839 to double
  %841 = fmul double %.0704.ph.lcssa154416021686, %840
  %842 = fdiv double %841, 0x41DFFFFFFF800000
  %843 = fsub double 1.000000e+00, %842
  %844 = load double, ptr %725, align 8, !tbaa !31
  %845 = fmul double %844, %843
  store double %845, ptr %725, align 8, !tbaa !31
  br label %908

846:                                              ; preds = %.loopexit907
  br i1 %or.cond37, label %.thread891, label %847

847:                                              ; preds = %846
  %848 = call i32 @qh_rand() #14
  %849 = sitofp i32 %848 to double
  %850 = fmul double %849, 2.000000e+00
  %851 = fdiv double %850, 0x41DFFFFFFF800000
  %852 = fadd double %851, -1.000000e+00
  store double %852, ptr %725, align 8, !tbaa !31
  br label %908

.thread891:                                       ; preds = %786, %796, %778, %780, %846
  %.6730888896 = phi i32 [ %.6730, %846 ], [ 1, %780 ], [ 1, %778 ], [ %.27261240, %796 ], [ %.27261240, %786 ]
  %.8703890895 = phi double [ %.8703, %846 ], [ %.7702, %780 ], [ %.7702, %778 ], [ %.46991241, %796 ], [ %.46991241, %786 ]
  %853 = phi i1 [ %715, %846 ], [ false, %780 ], [ false, %778 ], [ false, %796 ], [ %715, %786 ]
  br i1 %257, label %854, label %895

854:                                              ; preds = %.thread891
  store double %.0647, ptr %725, align 8, !tbaa !31
  br i1 %721, label %.lr.ph1218.preheader, label %._crit_edge1224

.lr.ph1218.preheader:                             ; preds = %854
  br i1 %727, label %._crit_edge1219.unr-lcssa, label %.lr.ph1218

.lr.ph1218:                                       ; preds = %.lr.ph1218.preheader, %.lr.ph1218
  %indvars.iv1396 = phi i64 [ %indvars.iv.next1397.3, %.lr.ph1218 ], [ 0, %.lr.ph1218.preheader ]
  %.36541215 = phi double [ %866, %.lr.ph1218 ], [ 0.000000e+00, %.lr.ph1218.preheader ]
  %niter = phi i64 [ %niter.next.3, %.lr.ph1218 ], [ 0, %.lr.ph1218.preheader ]
  %855 = getelementptr inbounds [200 x double], ptr %4, i64 0, i64 %indvars.iv1396
  %856 = load double, ptr %855, align 16, !tbaa !31
  %857 = call double @llvm.fmuladd.f64(double %856, double %856, double %.36541215)
  %indvars.iv.next1397 = or disjoint i64 %indvars.iv1396, 1
  %858 = getelementptr inbounds [200 x double], ptr %4, i64 0, i64 %indvars.iv.next1397
  %859 = load double, ptr %858, align 8, !tbaa !31
  %860 = call double @llvm.fmuladd.f64(double %859, double %859, double %857)
  %indvars.iv.next1397.1 = or disjoint i64 %indvars.iv1396, 2
  %861 = getelementptr inbounds [200 x double], ptr %4, i64 0, i64 %indvars.iv.next1397.1
  %862 = load double, ptr %861, align 16, !tbaa !31
  %863 = call double @llvm.fmuladd.f64(double %862, double %862, double %860)
  %indvars.iv.next1397.2 = or disjoint i64 %indvars.iv1396, 3
  %864 = getelementptr inbounds [200 x double], ptr %4, i64 0, i64 %indvars.iv.next1397.2
  %865 = load double, ptr %864, align 8, !tbaa !31
  %866 = call double @llvm.fmuladd.f64(double %865, double %865, double %863)
  %indvars.iv.next1397.3 = add nuw nsw i64 %indvars.iv1396, 4
  %niter.next.3 = add i64 %niter, 4
  %niter.ncmp.3 = icmp eq i64 %niter.next.3, %unroll_iter
  br i1 %niter.ncmp.3, label %._crit_edge1219.unr-lcssa, label %.lr.ph1218, !llvm.loop !74

._crit_edge1219.unr-lcssa:                        ; preds = %.lr.ph1218, %.lr.ph1218.preheader
  %.lcssa2086.ph = phi double [ poison, %.lr.ph1218.preheader ], [ %866, %.lr.ph1218 ]
  %indvars.iv1396.unr = phi i64 [ 0, %.lr.ph1218.preheader ], [ %indvars.iv.next1397.3, %.lr.ph1218 ]
  %.36541215.unr = phi double [ 0.000000e+00, %.lr.ph1218.preheader ], [ %866, %.lr.ph1218 ]
  br i1 %lcmp.mod2186.not, label %._crit_edge1219, label %.lr.ph1218.epil

.lr.ph1218.epil:                                  ; preds = %._crit_edge1219.unr-lcssa, %.lr.ph1218.epil
  %indvars.iv1396.epil = phi i64 [ %indvars.iv.next1397.epil, %.lr.ph1218.epil ], [ %indvars.iv1396.unr, %._crit_edge1219.unr-lcssa ]
  %.36541215.epil = phi double [ %869, %.lr.ph1218.epil ], [ %.36541215.unr, %._crit_edge1219.unr-lcssa ]
  %epil.iter = phi i64 [ %epil.iter.next, %.lr.ph1218.epil ], [ 0, %._crit_edge1219.unr-lcssa ]
  %867 = getelementptr inbounds [200 x double], ptr %4, i64 0, i64 %indvars.iv1396.epil
  %868 = load double, ptr %867, align 8, !tbaa !31
  %869 = call double @llvm.fmuladd.f64(double %868, double %868, double %.36541215.epil)
  %indvars.iv.next1397.epil = add nuw nsw i64 %indvars.iv1396.epil, 1
  %epil.iter.next = add i64 %epil.iter, 1
  %epil.iter.cmp.not = icmp eq i64 %epil.iter.next, %xtraiter2185
  br i1 %epil.iter.cmp.not, label %._crit_edge1219, label %.lr.ph1218.epil, !llvm.loop !75

._crit_edge1219:                                  ; preds = %.lr.ph1218.epil, %._crit_edge1219.unr-lcssa
  %.lcssa2086 = phi double [ %.lcssa2086.ph, %._crit_edge1219.unr-lcssa ], [ %869, %.lr.ph1218.epil ]
  %870 = call double @sqrt(double noundef %.lcssa2086) #14
  br i1 %721, label %.lr.ph1223.preheader, label %._crit_edge1224

.lr.ph1223.preheader:                             ; preds = %._crit_edge1219
  br i1 %min.iters.check2014, label %.lr.ph1223.preheader2079, label %vector.ph2015

vector.ph2015:                                    ; preds = %.lr.ph1223.preheader
  %broadcast.splatinsert2024 = insertelement <2 x double> poison, double %870, i64 0
  %broadcast.splat2025 = shufflevector <2 x double> %broadcast.splatinsert2024, <2 x double> poison, <2 x i32> zeroinitializer
  br label %vector.body2019

vector.body2019:                                  ; preds = %vector.body2019, %vector.ph2015
  %index2020 = phi i64 [ 0, %vector.ph2015 ], [ %index.next2026, %vector.body2019 ]
  %871 = getelementptr inbounds [200 x double], ptr %4, i64 0, i64 %index2020
  %wide.load2021 = load <2 x double>, ptr %871, align 16, !tbaa !31
  %872 = fmul <2 x double> %broadcast.splat2023, %wide.load2021
  %873 = fdiv <2 x double> %872, %broadcast.splat2025
  store <2 x double> %873, ptr %871, align 16, !tbaa !31
  %index.next2026 = add nuw i64 %index2020, 2
  %874 = icmp eq i64 %index.next2026, %n.vec2017
  br i1 %874, label %middle.block2012, label %vector.body2019, !llvm.loop !76

middle.block2012:                                 ; preds = %vector.body2019
  br i1 %cmp.n2027, label %._crit_edge1224, label %.lr.ph1223.preheader2079

.lr.ph1223.preheader2079:                         ; preds = %middle.block2012, %.lr.ph1223.preheader
  %indvars.iv1401.ph = phi i64 [ 0, %.lr.ph1223.preheader ], [ %n.vec2017, %middle.block2012 ]
  br label %.lr.ph1223

.lr.ph1223:                                       ; preds = %.lr.ph1223.preheader2079, %.lr.ph1223
  %indvars.iv1401 = phi i64 [ %indvars.iv.next1402, %.lr.ph1223 ], [ %indvars.iv1401.ph, %.lr.ph1223.preheader2079 ]
  %875 = getelementptr inbounds [200 x double], ptr %4, i64 0, i64 %indvars.iv1401
  %876 = load double, ptr %875, align 8, !tbaa !31
  %877 = fmul double %.0690.ph.lcssa154616001688, %876
  %878 = fdiv double %877, %870
  store double %878, ptr %875, align 8, !tbaa !31
  %indvars.iv.next1402 = add nuw nsw i64 %indvars.iv1401, 1
  %exitcond1405.not = icmp eq i64 %indvars.iv.next1402, %wide.trip.count1404
  br i1 %exitcond1405.not, label %._crit_edge1224, label %.lr.ph1223, !llvm.loop !77

._crit_edge1224:                                  ; preds = %.lr.ph1223, %middle.block2012, %854, %._crit_edge1219
  %879 = load double, ptr %725, align 8, !tbaa !31
  %880 = fsub double %879, %.0647
  store double %880, ptr %725, align 8, !tbaa !31
  br i1 %.not832, label %889, label %881

881:                                              ; preds = %._crit_edge1224
  %882 = call i32 @qh_rand() #14
  %883 = sitofp i32 %882 to double
  %884 = fmul double %.0704.ph.lcssa154416021686, %883
  %885 = fdiv double %884, 0x41DFFFFFFF800000
  %886 = fsub double 1.000000e+00, %885
  %887 = load double, ptr %725, align 8, !tbaa !31
  %888 = fmul double %887, %886
  store double %888, ptr %725, align 8, !tbaa !31
  br label %889

889:                                              ; preds = %881, %._crit_edge1224
  %890 = call i32 @qh_rand() #14
  %891 = icmp sgt i32 %890, 1073741823
  br i1 %891, label %892, label %908

892:                                              ; preds = %889
  %893 = load double, ptr %725, align 8, !tbaa !31
  %894 = fneg double %893
  store double %894, ptr %725, align 8, !tbaa !31
  br label %908

895:                                              ; preds = %.thread891
  %or.cond39 = select i1 %.not832, i1 true, i1 %853
  br i1 %or.cond39, label %908, label %896

896:                                              ; preds = %895
  %897 = call i32 @qh_rand() #14
  %898 = srem i32 %897, %.0686
  %899 = sext i32 %898 to i64
  %900 = getelementptr inbounds [200 x double], ptr %4, i64 0, i64 %899
  %901 = load double, ptr %900, align 8, !tbaa !31
  %902 = fcmp olt double %901, 0.000000e+00
  %903 = fneg double %901
  br i1 %902, label %904, label %906

904:                                              ; preds = %896
  %905 = call double @llvm.fmuladd.f64(double %903, double %.0704.ph.lcssa154416021686, double -1.000000e+00)
  store double %905, ptr %900, align 8, !tbaa !31
  br label %908

906:                                              ; preds = %896
  %907 = call double @llvm.fmuladd.f64(double %903, double %.0704.ph.lcssa154416021686, double 1.000000e+00)
  store double %907, ptr %900, align 8, !tbaa !31
  br label %908

908:                                              ; preds = %847, %895, %906, %904, %889, %892, %._crit_edge1234, %838
  %.8703889 = phi double [ %.8703, %847 ], [ %.8703890895, %895 ], [ %.8703890895, %906 ], [ %.8703890895, %904 ], [ %.8703890895, %889 ], [ %.8703890895, %892 ], [ %.8703, %._crit_edge1234 ], [ %.8703, %838 ]
  %.6730887 = phi i32 [ %.6730, %847 ], [ %.6730888896, %895 ], [ %.6730888896, %906 ], [ %.6730888896, %904 ], [ %.6730888896, %889 ], [ %.6730888896, %892 ], [ %.6730, %._crit_edge1234 ], [ %.6730, %838 ]
  br i1 %721, label %.lr.ph1237.preheader, label %._crit_edge1238

.lr.ph1237.preheader:                             ; preds = %908
  br i1 %min.iters.check1985, label %.lr.ph1237.preheader2077, label %vector.body1990

vector.body1990:                                  ; preds = %.lr.ph1237.preheader, %vector.body1990
  %index1991 = phi i64 [ %index.next1996, %vector.body1990 ], [ 0, %.lr.ph1237.preheader ]
  %909 = getelementptr inbounds [200 x double], ptr %4, i64 0, i64 %index1991
  %910 = getelementptr inbounds i8, ptr %909, i64 16
  %wide.load1992 = load <2 x double>, ptr %909, align 16, !tbaa !31
  %wide.load1993 = load <2 x double>, ptr %910, align 16, !tbaa !31
  %911 = fmul <2 x double> %broadcast.splat1995, %wide.load1992
  %912 = fmul <2 x double> %broadcast.splat1995, %wide.load1993
  store <2 x double> %911, ptr %909, align 16, !tbaa !31
  store <2 x double> %912, ptr %910, align 16, !tbaa !31
  %index.next1996 = add nuw i64 %index1991, 4
  %913 = icmp eq i64 %index.next1996, %n.vec1988
  br i1 %913, label %middle.block1983, label %vector.body1990, !llvm.loop !78

middle.block1983:                                 ; preds = %vector.body1990
  br i1 %cmp.n1997, label %._crit_edge1238, label %.lr.ph1237.preheader2077

.lr.ph1237.preheader2077:                         ; preds = %middle.block1983, %.lr.ph1237.preheader
  %indvars.iv1416.ph = phi i64 [ 0, %.lr.ph1237.preheader ], [ %n.vec1988, %middle.block1983 ]
  br label %.lr.ph1237

.lr.ph1237:                                       ; preds = %.lr.ph1237.preheader2077, %.lr.ph1237
  %indvars.iv1416 = phi i64 [ %indvars.iv.next1417, %.lr.ph1237 ], [ %indvars.iv1416.ph, %.lr.ph1237.preheader2077 ]
  %914 = getelementptr inbounds [200 x double], ptr %4, i64 0, i64 %indvars.iv1416
  %915 = load double, ptr %914, align 8, !tbaa !31
  %916 = fmul double %.2637155415931695, %915
  store double %916, ptr %914, align 8, !tbaa !31
  %indvars.iv.next1417 = add nuw nsw i64 %indvars.iv1416, 1
  %exitcond1420.not = icmp eq i64 %indvars.iv.next1417, %wide.trip.count1419
  br i1 %exitcond1420.not, label %._crit_edge1238, label %.lr.ph1237, !llvm.loop !79

._crit_edge1238:                                  ; preds = %.lr.ph1237, %middle.block1983, %908
  call void @qh_outcoord(i32 noundef %.0740.ph.lcssa152916161672, ptr noundef nonnull %4, i32 noundef %.0753.ph.lcssa.fr155315941694)
  %917 = add nuw nsw i32 %.37741239, 1
  %918 = icmp slt i32 %.37741239, %spec.select870
  br i1 %918, label %919, label %920

919:                                              ; preds = %._crit_edge1238
  call void @qh_outcoincident(i32 noundef %.0764.ph.lcssa152416211667, double noundef %.0687.ph.lcssa154715991689, i32 noundef %.0740.ph.lcssa152916161672, ptr noundef nonnull %4, i32 noundef %.0753.ph.lcssa.fr155315941694)
  br label %920

920:                                              ; preds = %._crit_edge1238, %919
  %921 = add nuw nsw i32 %.91242, 1
  %exitcond1421.not = icmp eq i32 %921, %.2752
  br i1 %exitcond1421.not, label %.loopexit904, label %.preheader910, !llvm.loop !80

.loopexit904:                                     ; preds = %625, %920, %695, %660, %._crit_edge1264, %643, %586, %712, %667, %630, %.preheader903
  %922 = icmp sgt i32 %.076316231665, 0
  %or.cond1284 = select i1 %.not799155515921696, i1 %922, i1 false
  br i1 %or.cond1284, label %.lr.ph1274, label %.loopexit901

.lr.ph1274:                                       ; preds = %.loopexit904
  %923 = icmp sgt i32 %.0753.ph.lcssa.fr155315941694, 0
  %924 = fneg double %.264316241664
  br label %925

925:                                              ; preds = %.lr.ph1274, %._crit_edge1272
  %.101273 = phi i32 [ 0, %.lr.ph1274 ], [ %932, %._crit_edge1272 ]
  br i1 %.not810, label %927, label %926

926:                                              ; preds = %925
  call void @qh_out1(double noundef 1.000000e+00)
  br label %927

927:                                              ; preds = %926, %925
  br i1 %923, label %.lr.ph1271, label %._crit_edge1272

.lr.ph1271:                                       ; preds = %927, %.lr.ph1271
  %.121269.in = phi i32 [ %.121269, %.lr.ph1271 ], [ %.0753.ph.lcssa.fr155315941694, %927 ]
  %.121269 = add nsw i32 %.121269.in, -1
  %928 = shl nuw i32 1, %.121269
  %929 = and i32 %928, %.101273
  %.not845 = icmp eq i32 %929, 0
  %..264316241664 = select i1 %.not845, double %924, double %.264316241664
  call void @qh_out1(double noundef %..264316241664)
  %930 = icmp ugt i32 %.121269.in, 1
  br i1 %930, label %.lr.ph1271, label %._crit_edge1272, !llvm.loop !81

._crit_edge1272:                                  ; preds = %.lr.ph1271, %927
  %931 = load ptr, ptr @rbox, align 8, !tbaa !14
  call void (ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %931, i32 noundef 9400, ptr noundef nonnull @.str.23) #14
  %932 = add nuw nsw i32 %.101273, 1
  %exitcond1439.not = icmp eq i32 %932, %.076316231665
  br i1 %exitcond1439.not, label %.loopexit901, label %925, !llvm.loop !82

.loopexit901:                                     ; preds = %._crit_edge1272, %.loopexit904
  %933 = icmp sgt i32 %.07621697, 0
  %or.cond1285 = select i1 %.not80016251663, i1 %933, i1 false
  br i1 %or.cond1285, label %.lr.ph1281, label %.loopexit

.lr.ph1281:                                       ; preds = %.loopexit901
  %.131275 = add nsw i32 %.0753.ph.lcssa.fr155315941694, -1
  %934 = icmp sgt i32 %.0753.ph.lcssa.fr155315941694, 0
  %935 = fneg double %.26401698
  br label %936

936:                                              ; preds = %.lr.ph1281, %._crit_edge1279
  %.111280 = phi i32 [ 0, %.lr.ph1281 ], [ %944, %._crit_edge1279 ]
  br i1 %.not810, label %938, label %937

937:                                              ; preds = %936
  call void @qh_out1(double noundef 1.000000e+00)
  br label %938

938:                                              ; preds = %937, %936
  br i1 %934, label %.lr.ph1278, label %._crit_edge1279

.lr.ph1278:                                       ; preds = %938
  %939 = lshr i32 %.111280, 1
  %940 = and i32 %.111280, 1
  %.not844 = icmp eq i32 %940, 0
  br i1 %.not844, label %.lr.ph1278.split.us, label %.lr.ph1278.split

.lr.ph1278.split.us:                              ; preds = %.lr.ph1278, %.lr.ph1278.split.us
  %.131276.us = phi i32 [ %.13.us, %.lr.ph1278.split.us ], [ %.131275, %.lr.ph1278 ]
  %.not843.us = icmp eq i32 %939, %.131276.us
  %. = select i1 %.not843.us, double %935, double 0.000000e+00
  call void @qh_out1(double noundef %.)
  %.13.us = add nsw i32 %.131276.us, -1
  %941 = icmp sgt i32 %.131276.us, 0
  br i1 %941, label %.lr.ph1278.split.us, label %._crit_edge1279, !llvm.loop !83

.lr.ph1278.split:                                 ; preds = %.lr.ph1278, %.lr.ph1278.split
  %.131276 = phi i32 [ %.13, %.lr.ph1278.split ], [ %.131275, %.lr.ph1278 ]
  %.not843 = icmp eq i32 %939, %.131276
  %.26401698. = select i1 %.not843, double %.26401698, double 0.000000e+00
  call void @qh_out1(double noundef %.26401698.)
  %.13 = add nsw i32 %.131276, -1
  %942 = icmp sgt i32 %.131276, 0
  br i1 %942, label %.lr.ph1278.split, label %._crit_edge1279, !llvm.loop !83

._crit_edge1279:                                  ; preds = %.lr.ph1278.split, %.lr.ph1278.split.us, %938
  %943 = load ptr, ptr @rbox, align 8, !tbaa !14
  call void (ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %943, i32 noundef 9401, ptr noundef nonnull @.str.23) #14
  %944 = add nuw nsw i32 %.111280, 1
  %exitcond1440.not = icmp eq i32 %944, %.07621697
  br i1 %exitcond1440.not, label %.loopexit, label %936, !llvm.loop !84

.loopexit:                                        ; preds = %._crit_edge1279, %.loopexit901
  br i1 %.not810, label %947, label %945

945:                                              ; preds = %.loopexit
  %946 = load ptr, ptr @rbox, align 8, !tbaa !14
  call void (ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %946, i32 noundef 9402, ptr noundef nonnull @.str.27) #14
  br label %947

947:                                              ; preds = %945, %.loopexit
  call void @qh_free(ptr noundef %.0674) #14
  store i32 0, ptr @rbox_inuse, align 4, !tbaa !9
  br label %948

948:                                              ; preds = %947, %15, %11
  %.0 = phi i32 [ 5, %11 ], [ %14, %15 ], [ 0, %947 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #14
  call void @llvm.lifetime.end.p0(i64 200, ptr nonnull %7) #14
  call void @llvm.lifetime.end.p0(i64 200, ptr nonnull %6) #14
  call void @llvm.lifetime.end.p0(i64 800, ptr nonnull %5) #14
  call void @llvm.lifetime.end.p0(i64 1600, ptr nonnull %4) #14
  ret i32 %.0
}

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

declare void @qh_fprintf_rbox(ptr noundef, i32 noundef, ptr noundef, ...) local_unnamed_addr #2

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

declare void @qh_free(ptr noundef) local_unnamed_addr #2

; Function Attrs: mustprogress nofree nounwind willreturn memory(argmem: readwrite)
declare ptr @strncat(ptr noalias noundef returned, ptr noalias nocapture noundef readonly, i64 noundef) local_unnamed_addr #4

; Function Attrs: mustprogress nofree nounwind willreturn memory(argmem: read)
declare i64 @strlen(ptr nocapture noundef) local_unnamed_addr #5

; Function Attrs: mustprogress nofree nosync nounwind willreturn memory(none)
declare ptr @__ctype_b_loc() local_unnamed_addr #6

declare i32 @qh_strtol(ptr noundef, ptr noundef) local_unnamed_addr #2

declare double @qh_strtod(ptr noundef, ptr noundef) local_unnamed_addr #2

; Function Attrs: nounwind uwtable
declare dso_local void @qh_errexit_rbox(i32 noundef) local_unnamed_addr #0

; Function Attrs: mustprogress nofree nounwind willreturn memory(write)
declare double @sqrt(double noundef) local_unnamed_addr #7

; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare double @llvm.fmuladd.f64(double, double, double) #8

; Function Attrs: mustprogress nofree nounwind willreturn
declare double @ldexp(double noundef, i32 noundef) local_unnamed_addr #9

; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare double @llvm.floor.f64(double) #8

; Function Attrs: mustprogress nofree nounwind willreturn memory(write)
declare double @asin(double noundef) local_unnamed_addr #7

; Function Attrs: mustprogress nofree nounwind willreturn memory(write)
declare double @cos(double noundef) local_unnamed_addr #7

; Function Attrs: nounwind
declare i64 @time(ptr noundef) local_unnamed_addr #10

; Function Attrs: nofree nounwind
declare noundef i32 @sprintf(ptr noalias nocapture noundef writeonly, ptr nocapture noundef readonly, ...) local_unnamed_addr #11

; Function Attrs: mustprogress nofree nounwind willreturn memory(argmem: read)
declare ptr @strstr(ptr noundef, ptr nocapture noundef) local_unnamed_addr #5

; Function Attrs: mustprogress nofree nounwind willreturn memory(argmem: readwrite)
declare ptr @strcpy(ptr noalias noundef returned writeonly, ptr noalias nocapture noundef readonly) local_unnamed_addr #4

declare void @qh_srand(i32 noundef) local_unnamed_addr #2

; Function Attrs: nounwind uwtable
declare dso_local void @qh_out1(double noundef) local_unnamed_addr #0

; Function Attrs: mustprogress nofree nounwind willreturn memory(argmem: read)
declare ptr @strchr(ptr noundef, i32 noundef) local_unnamed_addr #5

declare ptr @qh_malloc(i64 noundef) local_unnamed_addr #2

declare i32 @qh_rand() local_unnamed_addr #2

; Function Attrs: nounwind uwtable
declare dso_local void @qh_outcoord(i32 noundef, ptr noundef, i32 noundef) local_unnamed_addr #0

; Function Attrs: nounwind uwtable
declare dso_local void @qh_outcoincident(i32 noundef, double noundef, i32 noundef, ptr noundef, i32 noundef) local_unnamed_addr #0

; Function Attrs: mustprogress nofree nounwind willreturn memory(write)
declare double @pow(double noundef, double noundef) local_unnamed_addr #7

; Function Attrs: nounwind uwtable
declare dso_local void @qh_out3n(double noundef, double noundef, double noundef) local_unnamed_addr #0

; Function Attrs: mustprogress nofree nounwind willreturn memory(write)
declare double @sin(double noundef) local_unnamed_addr #7

; Function Attrs: nounwind uwtable
declare dso_local void @qh_out2n(double noundef, double noundef) local_unnamed_addr #0

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

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare double @llvm.sqrt.f64(double) #12

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #13

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare <2 x double> @llvm.fmuladd.v2f64(<2 x double>, <2 x double>, <2 x double>) #12

attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { nounwind returns_twice "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { mustprogress nofree nounwind willreturn memory(argmem: readwrite) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { mustprogress nofree nounwind willreturn memory(argmem: read) "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 #6 = { mustprogress nofree nosync nounwind willreturn memory(none) "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 #7 = { mustprogress nofree nounwind willreturn memory(write) "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 #8 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #9 = { mustprogress nofree nounwind willreturn "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 #10 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #11 = { nofree nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #12 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #13 = { nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #14 = { nounwind }
attributes #15 = { nounwind returns_twice }
attributes #16 = { nounwind willreturn memory(read) }
attributes #17 = { nounwind willreturn memory(none) }

!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 8}
!12 = !{!"rboxT", !6, i64 0, !6, i64 8, !10, i64 16, !13, i64 24, !7, i64 32, !7, i64 232}
!13 = !{!"double", !7, i64 0}
!14 = !{!12, !6, i64 0}
!15 = !{!7, !7, i64 0}
!16 = !{!17, !17, i64 0}
!17 = !{!"short", !7, i64 0}
!18 = distinct !{!18, !19}
!19 = !{!"llvm.loop.mustprogress"}
!20 = !{!12, !10, i64 16}
!21 = distinct !{!21, !19}
!22 = distinct !{!22, !19}
!23 = distinct !{!23, !19}
!24 = distinct !{!24, !19}
!25 = !{!12, !13, i64 24}
!26 = distinct !{!26, !19}
!27 = distinct !{!27, !19}
!28 = distinct !{!28, !19}
!29 = distinct !{!29, !19}
!30 = distinct !{!30, !19}
!31 = !{!13, !13, i64 0}
!32 = distinct !{!32, !19, !33, !34}
!33 = !{!"llvm.loop.isvectorized", i32 1}
!34 = !{!"llvm.loop.unroll.runtime.disable"}
!35 = distinct !{!35, !19, !34, !33}
!36 = distinct !{!36, !19}
!37 = distinct !{!37, !19}
!38 = distinct !{!38, !19}
!39 = distinct !{!39, !19, !33, !34}
!40 = distinct !{!40, !19, !34, !33}
!41 = distinct !{!41, !19}
!42 = distinct !{!42, !19}
!43 = !{!44}
!44 = distinct !{!44, !45}
!45 = distinct !{!45, !"LVerDomain"}
!46 = !{!47}
!47 = distinct !{!47, !45}
!48 = distinct !{!48, !19, !33, !34}
!49 = distinct !{!49, !19, !33}
!50 = distinct !{!50, !19}
!51 = distinct !{!51, !19, !33, !34}
!52 = distinct !{!52, !19, !34, !33}
!53 = distinct !{!53, !19}
!54 = distinct !{!54, !19}
!55 = distinct !{!55, !19}
!56 = distinct !{!56, !19}
!57 = distinct !{!57, !19}
!58 = distinct !{!58, !19, !59}
!59 = !{!"llvm.loop.peeled.count", i32 1}
!60 = distinct !{!60, !19}
!61 = distinct !{!61, !19}
!62 = distinct !{!62, !19}
!63 = distinct !{!63, !19, !33, !34}
!64 = distinct !{!64, !19, !34, !33}
!65 = distinct !{!65, !19, !33, !34}
!66 = distinct !{!66, !19, !34, !33}
!67 = distinct !{!67, !19, !33, !34}
!68 = distinct !{!68, !19, !34, !33}
!69 = distinct !{!69, !19}
!70 = distinct !{!70, !71}
!71 = !{!"llvm.loop.unroll.disable"}
!72 = distinct !{!72, !19, !33, !34}
!73 = distinct !{!73, !19, !34, !33}
!74 = distinct !{!74, !19}
!75 = distinct !{!75, !71}
!76 = distinct !{!76, !19, !33, !34}
!77 = distinct !{!77, !19, !34, !33}
!78 = distinct !{!78, !19, !33, !34}
!79 = distinct !{!79, !19, !34, !33}
!80 = distinct !{!80, !19}
!81 = distinct !{!81, !19}
!82 = distinct !{!82, !19}
!83 = distinct !{!83, !19}
!84 = distinct !{!84, !19}


; Effective O3 passes: AggressiveInstCombinePass,BDCEPass,CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferAlignmentPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopFullUnrollPass,LoopIdiomRecognizePass,LoopInstSimplifyPass,LoopLoadEliminationPass,LoopRotatePass,LoopSimplifyCFGPass,LoopSimplifyPass,LoopUnrollPass,LoopVectorizePass,PostOrderFunctionAttrsPass,ReassociatePass,SCCPPass,SROAPass,SimplifyCFGPass