; LLVM IR from jrl-umi3218/mc_rtc :: 3rd-party/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 = external dso_local global %struct.rboxT, align 8
@.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 [57 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [87 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 [66 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [10 x i8], align 1

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

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

82:                                               ; preds = %102, %2
  %83 = load ptr, ptr %68, align 8, !tbaa !5
  %84 = load i8, ptr %83, align 1, !tbaa !13
  %85 = sext i8 %84 to i32
  %86 = icmp ne i32 %85, 0
  br i1 %86, label %87, label %100

87:                                               ; preds = %82
  %88 = call ptr @__ctype_b_loc() #9
  %89 = load ptr, ptr %88, align 8, !tbaa !5
  %90 = load ptr, ptr %68, align 8, !tbaa !5
  %91 = load i8, ptr %90, align 1, !tbaa !13
  %92 = sext i8 %91 to i32
  %93 = sext i32 %92 to i64
  %94 = getelementptr inbounds i16, ptr %89, i64 %93
  %95 = load i16, ptr %94, align 2, !tbaa !14
  %96 = zext i16 %95 to i32
  %97 = and i32 %96, 8192
  %98 = icmp ne i32 %97, 0
  %99 = xor i1 %98, true
  br label %100

100:                                              ; preds = %87, %82
  %101 = phi i1 [ false, %82 ], [ %99, %87 ]
  br i1 %101, label %102, label %105

102:                                              ; preds = %100
  %103 = load ptr, ptr %68, align 8, !tbaa !5
  %104 = getelementptr inbounds i8, ptr %103, i32 1
  store ptr %104, ptr %68, align 8, !tbaa !5
  br label %82, !llvm.loop !16

105:                                              ; preds = %100
  br label %106

106:                                              ; preds = %497, %158, %105
  %107 = load ptr, ptr %68, align 8, !tbaa !5
  %108 = load i8, ptr %107, align 1, !tbaa !13
  %109 = icmp ne i8 %108, 0
  br i1 %109, label %110, label %498

110:                                              ; preds = %106
  br label %111

111:                                              ; preds = %130, %110
  %112 = load ptr, ptr %68, align 8, !tbaa !5
  %113 = load i8, ptr %112, align 1, !tbaa !13
  %114 = sext i8 %113 to i32
  %115 = icmp ne i32 %114, 0
  br i1 %115, label %116, label %128

116:                                              ; preds = %111
  %117 = call ptr @__ctype_b_loc() #9
  %118 = load ptr, ptr %117, align 8, !tbaa !5
  %119 = load ptr, ptr %68, align 8, !tbaa !5
  %120 = load i8, ptr %119, align 1, !tbaa !13
  %121 = sext i8 %120 to i32
  %122 = sext i32 %121 to i64
  %123 = getelementptr inbounds i16, ptr %118, i64 %122
  %124 = load i16, ptr %123, align 2, !tbaa !14
  %125 = zext i16 %124 to i32
  %126 = and i32 %125, 8192
  %127 = icmp ne i32 %126, 0
  br label %128

128:                                              ; preds = %116, %111
  %129 = phi i1 [ false, %111 ], [ %127, %116 ]
  br i1 %129, label %130, label %133

130:                                              ; preds = %128
  %131 = load ptr, ptr %68, align 8, !tbaa !5
  %132 = getelementptr inbounds i8, ptr %131, i32 1
  store ptr %132, ptr %68, align 8, !tbaa !5
  br label %111, !llvm.loop !18

133:                                              ; preds = %128
  %134 = load ptr, ptr %68, align 8, !tbaa !5
  %135 = load i8, ptr %134, align 1, !tbaa !13
  %136 = sext i8 %135 to i32
  %137 = icmp eq i32 %136, 45
  br i1 %137, label %138, label %141

138:                                              ; preds = %133
  %139 = load ptr, ptr %68, align 8, !tbaa !5
  %140 = getelementptr inbounds i8, ptr %139, i32 1
  store ptr %140, ptr %68, align 8, !tbaa !5
  br label %141

141:                                              ; preds = %138, %133
  %142 = load ptr, ptr %68, align 8, !tbaa !5
  %143 = load i8, ptr %142, align 1, !tbaa !13
  %144 = icmp ne i8 %143, 0
  br i1 %144, label %146, label %145

145:                                              ; preds = %141
  br label %498

146:                                              ; preds = %141
  %147 = call ptr @__ctype_b_loc() #9
  %148 = load ptr, ptr %147, align 8, !tbaa !5
  %149 = load ptr, ptr %68, align 8, !tbaa !5
  %150 = load i8, ptr %149, align 1, !tbaa !13
  %151 = sext i8 %150 to i32
  %152 = sext i32 %151 to i64
  %153 = getelementptr inbounds i16, ptr %148, i64 %152
  %154 = load i16, ptr %153, align 2, !tbaa !14
  %155 = zext i16 %154 to i32
  %156 = and i32 %155, 2048
  %157 = icmp ne i32 %156, 0
  br i1 %157, label %158, label %161

158:                                              ; preds = %146
  %159 = load ptr, ptr %68, align 8, !tbaa !5
  %160 = call i32 @qh_strtol(ptr noundef %159, ptr noundef %68)
  store i32 %160, ptr %18, align 4, !tbaa !9
  br label %106, !llvm.loop !19

161:                                              ; preds = %146
  %162 = load ptr, ptr %68, align 8, !tbaa !5
  %163 = getelementptr inbounds i8, ptr %162, i32 1
  store ptr %163, ptr %68, align 8, !tbaa !5
  %164 = load i8, ptr %162, align 1, !tbaa !13
  %165 = sext i8 %164 to i32
  switch i32 %165, label %473 [
    i32 99, label %166
    i32 100, label %193
    i32 104, label %220
    i32 108, label %221
    i32 110, label %222
    i32 114, label %223
    i32 115, label %224
    i32 116, label %225
    i32 120, label %242
    i32 121, label %243
    i32 122, label %244
    i32 66, label %245
    i32 67, label %248
    i32 68, label %315
    i32 71, label %327
    i32 76, label %344
    i32 77, label %361
    i32 79, label %417
    i32 80, label %420
    i32 87, label %453
    i32 90, label %456
  ]

166:                                              ; preds = %161
  store i32 1, ptr %27, align 4, !tbaa !9
  %167 = load ptr, ptr %68, align 8, !tbaa !5
  store ptr %167, ptr %69, align 8, !tbaa !5
  br label %168

168:                                              ; preds = %180, %166
  %169 = call ptr @__ctype_b_loc() #9
  %170 = load ptr, ptr %169, align 8, !tbaa !5
  %171 = load ptr, ptr %69, align 8, !tbaa !5
  %172 = load i8, ptr %171, align 1, !tbaa !13
  %173 = sext i8 %172 to i32
  %174 = sext i32 %173 to i64
  %175 = getelementptr inbounds i16, ptr %170, i64 %174
  %176 = load i16, ptr %175, align 2, !tbaa !14
  %177 = zext i16 %176 to i32
  %178 = and i32 %177, 8192
  %179 = icmp ne i32 %178, 0
  br i1 %179, label %180, label %183

180:                                              ; preds = %168
  %181 = load ptr, ptr %69, align 8, !tbaa !5
  %182 = getelementptr inbounds i8, ptr %181, i32 1
  store ptr %182, ptr %69, align 8, !tbaa !5
  br label %168, !llvm.loop !20

183:                                              ; preds = %168
  %184 = load ptr, ptr %69, align 8, !tbaa !5
  %185 = load i8, ptr %184, align 1, !tbaa !13
  %186 = sext i8 %185 to i32
  %187 = icmp eq i32 %186, 71
  br i1 %187, label %188, label %192

188:                                              ; preds = %183
  %189 = load ptr, ptr %69, align 8, !tbaa !5
  %190 = getelementptr inbounds i8, ptr %189, i32 1
  store ptr %190, ptr %69, align 8, !tbaa !5
  %191 = call double @qh_strtod(ptr noundef %190, ptr noundef %68)
  store double %191, ptr %62, align 8, !tbaa !11
  br label %192

192:                                              ; preds = %188, %183
  br label %477

193:                                              ; preds = %161
  store i32 1, ptr %31, align 4, !tbaa !9
  %194 = load ptr, ptr %68, align 8, !tbaa !5
  store ptr %194, ptr %69, align 8, !tbaa !5
  br label %195

195:                                              ; preds = %207, %193
  %196 = call ptr @__ctype_b_loc() #9
  %197 = load ptr, ptr %196, align 8, !tbaa !5
  %198 = load ptr, ptr %69, align 8, !tbaa !5
  %199 = load i8, ptr %198, align 1, !tbaa !13
  %200 = sext i8 %199 to i32
  %201 = sext i32 %200 to i64
  %202 = getelementptr inbounds i16, ptr %197, i64 %201
  %203 = load i16, ptr %202, align 2, !tbaa !14
  %204 = zext i16 %203 to i32
  %205 = and i32 %204, 8192
  %206 = icmp ne i32 %205, 0
  br i1 %206, label %207, label %210

207:                                              ; preds = %195
  %208 = load ptr, ptr %69, align 8, !tbaa !5
  %209 = getelementptr inbounds i8, ptr %208, i32 1
  store ptr %209, ptr %69, align 8, !tbaa !5
  br label %195, !llvm.loop !21

210:                                              ; preds = %195
  %211 = load ptr, ptr %69, align 8, !tbaa !5
  %212 = load i8, ptr %211, align 1, !tbaa !13
  %213 = sext i8 %212 to i32
  %214 = icmp eq i32 %213, 71
  br i1 %214, label %215, label %219

215:                                              ; preds = %210
  %216 = load ptr, ptr %69, align 8, !tbaa !5
  %217 = getelementptr inbounds i8, ptr %216, i32 1
  store ptr %217, ptr %69, align 8, !tbaa !5
  %218 = call double @qh_strtod(ptr noundef %217, ptr noundef %68)
  store double %218, ptr %63, align 8, !tbaa !11
  br label %219

219:                                              ; preds = %215, %210
  br label %477

220:                                              ; preds = %161
  store i32 1, ptr %23, align 4, !tbaa !9
  br label %477

221:                                              ; preds = %161
  store i32 1, ptr %29, align 4, !tbaa !9
  br label %477

222:                                              ; preds = %161
  store i32 1, ptr %30, align 4, !tbaa !9
  br label %477

223:                                              ; preds = %161
  store i32 1, ptr %25, align 4, !tbaa !9
  br label %477

224:                                              ; preds = %161
  store i32 1, ptr %21, align 4, !tbaa !9
  br label %477

225:                                              ; preds = %161
  store i32 1, ptr %33, align 4, !tbaa !9
  %226 = call ptr @__ctype_b_loc() #9
  %227 = load ptr, ptr %226, align 8, !tbaa !5
  %228 = load ptr, ptr %68, align 8, !tbaa !5
  %229 = load i8, ptr %228, align 1, !tbaa !13
  %230 = sext i8 %229 to i32
  %231 = sext i32 %230 to i64
  %232 = getelementptr inbounds i16, ptr %227, i64 %231
  %233 = load i16, ptr %232, align 2, !tbaa !14
  %234 = zext i16 %233 to i32
  %235 = and i32 %234, 2048
  %236 = icmp ne i32 %235, 0
  br i1 %236, label %237, label %240

237:                                              ; preds = %225
  %238 = load ptr, ptr %68, align 8, !tbaa !5
  %239 = call i32 @qh_strtol(ptr noundef %238, ptr noundef %68)
  store i32 %239, ptr %14, align 4, !tbaa !9
  store i32 0, ptr %32, align 4, !tbaa !9
  br label %241

240:                                              ; preds = %225
  store i32 1, ptr %32, align 4, !tbaa !9
  br label %241

241:                                              ; preds = %240, %237
  br label %477

242:                                              ; preds = %161
  store i32 1, ptr %35, align 4, !tbaa !9
  br label %477

243:                                              ; preds = %161
  store i32 1, ptr %36, align 4, !tbaa !9
  br label %477

244:                                              ; preds = %161
  store i32 1, ptr getelementptr inbounds (%struct.rboxT, ptr @rbox, i32 0, i32 2), align 8, !tbaa !22
  br label %477

245:                                              ; preds = %161
  %246 = load ptr, ptr %68, align 8, !tbaa !5
  %247 = call double @qh_strtod(ptr noundef %246, ptr noundef %68)
  store double %247, ptr %64, align 8, !tbaa !11
  store i32 1, ptr %34, align 4, !tbaa !9
  br label %477

248:                                              ; preds = %161
  %249 = load ptr, ptr %68, align 8, !tbaa !5
  %250 = load i8, ptr %249, align 1, !tbaa !13
  %251 = icmp ne i8 %250, 0
  br i1 %251, label %252, label %255

252:                                              ; preds = %248
  %253 = load ptr, ptr %68, align 8, !tbaa !5
  %254 = call i32 @qh_strtol(ptr noundef %253, ptr noundef %68)
  store i32 %254, ptr %11, align 4, !tbaa !9
  br label %255

255:                                              ; preds = %252, %248
  %256 = load ptr, ptr %68, align 8, !tbaa !5
  %257 = load i8, ptr %256, align 1, !tbaa !13
  %258 = sext i8 %257 to i32
  %259 = icmp eq i32 %258, 44
  br i1 %259, label %260, label %265

260:                                              ; preds = %255
  %261 = load ptr, ptr %68, align 8, !tbaa !5
  %262 = getelementptr inbounds i8, ptr %261, i32 1
  store ptr %262, ptr %68, align 8, !tbaa !5
  %263 = load ptr, ptr %68, align 8, !tbaa !5
  %264 = call double @qh_strtod(ptr noundef %263, ptr noundef %68)
  store double %264, ptr %41, align 8, !tbaa !11
  br label %265

265:                                              ; preds = %260, %255
  %266 = load ptr, ptr %68, align 8, !tbaa !5
  %267 = load i8, ptr %266, align 1, !tbaa !13
  %268 = sext i8 %267 to i32
  %269 = icmp eq i32 %268, 44
  br i1 %269, label %270, label %275

270:                                              ; preds = %265
  %271 = load ptr, ptr %68, align 8, !tbaa !5
  %272 = getelementptr inbounds i8, ptr %271, i32 1
  store ptr %272, ptr %68, align 8, !tbaa !5
  %273 = load ptr, ptr %68, align 8, !tbaa !5
  %274 = call i32 @qh_strtol(ptr noundef %273, ptr noundef %68)
  store i32 %274, ptr %10, align 4, !tbaa !9
  br label %275

275:                                              ; preds = %270, %265
  %276 = load ptr, ptr %68, align 8, !tbaa !5
  %277 = load i8, ptr %276, align 1, !tbaa !13
  %278 = sext i8 %277 to i32
  %279 = icmp ne i32 %278, 0
  br i1 %279, label %280, label %295

280:                                              ; preds = %275
  %281 = call ptr @__ctype_b_loc() #9
  %282 = load ptr, ptr %281, align 8, !tbaa !5
  %283 = load ptr, ptr %68, align 8, !tbaa !5
  %284 = load i8, ptr %283, align 1, !tbaa !13
  %285 = sext i8 %284 to i32
  %286 = sext i32 %285 to i64
  %287 = getelementptr inbounds i16, ptr %282, i64 %286
  %288 = load i16, ptr %287, align 2, !tbaa !14
  %289 = zext i16 %288 to i32
  %290 = and i32 %289, 8192
  %291 = icmp ne i32 %290, 0
  br i1 %291, label %295, label %292

292:                                              ; preds = %280
  %293 = load ptr, ptr getelementptr inbounds (%struct.rboxT, ptr @rbox, i32 0, i32 1), align 8, !tbaa !24
  %294 = load ptr, ptr %68, align 8, !tbaa !5
  call void (ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %293, i32 noundef 7080, ptr noundef @.str.1, ptr noundef %294)
  call void @qh_errexit_rbox(i32 noundef 1)
  br label %295

295:                                              ; preds = %292, %280, %275
  %296 = load i32, ptr %11, align 4, !tbaa !9
  %297 = icmp eq i32 %296, 0
  br i1 %297, label %298, label %300

298:                                              ; preds = %295
  %299 = load ptr, ptr getelementptr inbounds (%struct.rboxT, ptr @rbox, i32 0, i32 1), align 8, !tbaa !24
  call void (ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %299, i32 noundef 6268, ptr noundef @.str.2)
  call void @qh_errexit_rbox(i32 noundef 1)
  br label %300

300:                                              ; preds = %298, %295
  %301 = load i32, ptr %11, align 4, !tbaa !9
  %302 = icmp slt i32 %301, 0
  br i1 %302, label %309, label %303

303:                                              ; preds = %300
  %304 = load i32, ptr %10, align 4, !tbaa !9
  %305 = icmp slt i32 %304, 0
  br i1 %305, label %309, label %306

306:                                              ; preds = %303
  %307 = load double, ptr %41, align 8, !tbaa !11
  %308 = fcmp olt double %307, 0.000000e+00
  br i1 %308, label %309, label %314

309:                                              ; preds = %306, %303, %300
  %310 = load ptr, ptr getelementptr inbounds (%struct.rboxT, ptr @rbox, i32 0, i32 1), align 8, !tbaa !24
  %311 = load i32, ptr %11, align 4, !tbaa !9
  %312 = load i32, ptr %10, align 4, !tbaa !9
  %313 = load double, ptr %41, align 8, !tbaa !11
  call void (ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %310, i32 noundef 6269, ptr noundef @.str.3, i32 noundef %311, i32 noundef %312, double noundef %313)
  call void @qh_errexit_rbox(i32 noundef 1)
  br label %314

314:                                              ; preds = %309, %306
  br label %477

315:                                              ; preds = %161
  %316 = load ptr, ptr %68, align 8, !tbaa !5
  %317 = call i32 @qh_strtol(ptr noundef %316, ptr noundef %68)
  store i32 %317, ptr %17, align 4, !tbaa !9
  %318 = load i32, ptr %17, align 4, !tbaa !9
  %319 = icmp slt i32 %318, 1
  br i1 %319, label %323, label %320

320:                                              ; preds = %315
  %321 = load i32, ptr %17, align 4, !tbaa !9
  %322 = icmp sgt i32 %321, 200
  br i1 %322, label %323, label %326

323:                                              ; preds = %320, %315
  %324 = load ptr, ptr getelementptr inbounds (%struct.rboxT, ptr @rbox, i32 0, i32 1), align 8, !tbaa !24
  %325 = load i32, ptr %17, align 4, !tbaa !9
  call void (ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %324, i32 noundef 6189, ptr noundef @.str.4, i32 noundef %325, i32 noundef 200)
  call void @qh_errexit_rbox(i32 noundef 1)
  br label %326

326:                                              ; preds = %323, %320
  br label %477

327:                                              ; preds = %161
  %328 = call ptr @__ctype_b_loc() #9
  %329 = load ptr, ptr %328, align 8, !tbaa !5
  %330 = load ptr, ptr %68, align 8, !tbaa !5
  %331 = load i8, ptr %330, align 1, !tbaa !13
  %332 = sext i8 %331 to i32
  %333 = sext i32 %332 to i64
  %334 = getelementptr inbounds i16, ptr %329, i64 %333
  %335 = load i16, ptr %334, align 2, !tbaa !14
  %336 = zext i16 %335 to i32
  %337 = and i32 %336, 2048
  %338 = icmp ne i32 %337, 0
  br i1 %338, label %339, label %342

339:                                              ; preds = %327
  %340 = load ptr, ptr %68, align 8, !tbaa !5
  %341 = call double @qh_strtod(ptr noundef %340, ptr noundef %68)
  store double %341, ptr %39, align 8, !tbaa !11
  br label %343

342:                                              ; preds = %327
  store double 5.000000e-01, ptr %39, align 8, !tbaa !11
  br label %343

343:                                              ; preds = %342, %339
  store i32 1, ptr %28, align 4, !tbaa !9
  br label %477

344:                                              ; preds = %161
  %345 = call ptr @__ctype_b_loc() #9
  %346 = load ptr, ptr %345, align 8, !tbaa !5
  %347 = load ptr, ptr %68, align 8, !tbaa !5
  %348 = load i8, ptr %347, align 1, !tbaa !13
  %349 = sext i8 %348 to i32
  %350 = sext i32 %349 to i64
  %351 = getelementptr inbounds i16, ptr %346, i64 %350
  %352 = load i16, ptr %351, align 2, !tbaa !14
  %353 = zext i16 %352 to i32
  %354 = and i32 %353, 2048
  %355 = icmp ne i32 %354, 0
  br i1 %355, label %356, label %359

356:                                              ; preds = %344
  %357 = load ptr, ptr %68, align 8, !tbaa !5
  %358 = call double @qh_strtod(ptr noundef %357, ptr noundef %68)
  store double %358, ptr %40, align 8, !tbaa !11
  br label %360

359:                                              ; preds = %344
  store double 1.000000e+01, ptr %40, align 8, !tbaa !11
  br label %360

360:                                              ; preds = %359, %356
  store i32 1, ptr %24, align 4, !tbaa !9
  br label %477

361:                                              ; preds = %161
  store i32 1, ptr %37, align 4, !tbaa !9
  %362 = load ptr, ptr %68, align 8, !tbaa !5
  %363 = load i8, ptr %362, align 1, !tbaa !13
  %364 = icmp ne i8 %363, 0
  br i1 %364, label %365, label %368

365:                                              ; preds = %361
  %366 = load ptr, ptr %68, align 8, !tbaa !5
  %367 = call double @qh_strtod(ptr noundef %366, ptr noundef %68)
  store double %367, ptr %45, align 8, !tbaa !11
  br label %368

368:                                              ; preds = %365, %361
  %369 = load ptr, ptr %68, align 8, !tbaa !5
  %370 = load i8, ptr %369, align 1, !tbaa !13
  %371 = sext i8 %370 to i32
  %372 = icmp eq i32 %371, 44
  br i1 %372, label %373, label %378

373:                                              ; preds = %368
  %374 = load ptr, ptr %68, align 8, !tbaa !5
  %375 = getelementptr inbounds i8, ptr %374, i32 1
  store ptr %375, ptr %68, align 8, !tbaa !5
  %376 = load ptr, ptr %68, align 8, !tbaa !5
  %377 = call double @qh_strtod(ptr noundef %376, ptr noundef %68)
  store double %377, ptr %44, align 8, !tbaa !11
  br label %379

378:                                              ; preds = %368
  store double 0.000000e+00, ptr %44, align 8, !tbaa !11
  br label %379

379:                                              ; preds = %378, %373
  %380 = load ptr, ptr %68, align 8, !tbaa !5
  %381 = load i8, ptr %380, align 1, !tbaa !13
  %382 = sext i8 %381 to i32
  %383 = icmp eq i32 %382, 44
  br i1 %383, label %384, label %389

384:                                              ; preds = %379
  %385 = load ptr, ptr %68, align 8, !tbaa !5
  %386 = getelementptr inbounds i8, ptr %385, i32 1
  store ptr %386, ptr %68, align 8, !tbaa !5
  %387 = load ptr, ptr %68, align 8, !tbaa !5
  %388 = call double @qh_strtod(ptr noundef %387, ptr noundef %68)
  store double %388, ptr %46, align 8, !tbaa !11
  br label %397

389:                                              ; preds = %379
  %390 = load double, ptr %45, align 8, !tbaa !11
  %391 = load double, ptr %45, align 8, !tbaa !11
  %392 = load double, ptr %44, align 8, !tbaa !11
  %393 = load double, ptr %44, align 8, !tbaa !11
  %394 = fmul double %392, %393
  %395 = call double @llvm.fmuladd.f64(double %390, double %391, double %394)
  %396 = call double @sqrt(double noundef %395) #7
  store double %396, ptr %46, align 8, !tbaa !11
  br label %397

397:                                              ; preds = %389, %384
  %398 = load ptr, ptr %68, align 8, !tbaa !5
  %399 = load i8, ptr %398, align 1, !tbaa !13
  %400 = sext i8 %399 to i32
  %401 = icmp ne i32 %400, 0
  br i1 %401, label %402, label %416

402:                                              ; preds = %397
  %403 = call ptr @__ctype_b_loc() #9
  %404 = load ptr, ptr %403, align 8, !tbaa !5
  %405 = load ptr, ptr %68, align 8, !tbaa !5
  %406 = load i8, ptr %405, align 1, !tbaa !13
  %407 = sext i8 %406 to i32
  %408 = sext i32 %407 to i64
  %409 = getelementptr inbounds i16, ptr %404, i64 %408
  %410 = load i16, ptr %409, align 2, !tbaa !14
  %411 = zext i16 %410 to i32
  %412 = and i32 %411, 8192
  %413 = icmp ne i32 %412, 0
  br i1 %413, label %416, label %414

414:                                              ; preds = %402
  %415 = load ptr, ptr getelementptr inbounds (%struct.rboxT, ptr @rbox, i32 0, i32 1), align 8, !tbaa !24
  call void (ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %415, i32 noundef 7069, ptr noundef @.str.5)
  store double 3.000000e+00, ptr %45, align 8, !tbaa !11
  store double 4.000000e+00, ptr %44, align 8, !tbaa !11
  store double 5.000000e+00, ptr %46, align 8, !tbaa !11
  br label %416

416:                                              ; preds = %414, %402, %397
  br label %477

417:                                              ; preds = %161
  %418 = load ptr, ptr %68, align 8, !tbaa !5
  %419 = call double @qh_strtod(ptr noundef %418, ptr noundef %68)
  store double %419, ptr getelementptr inbounds (%struct.rboxT, ptr @rbox, i32 0, i32 3), align 8, !tbaa !25
  br label %477

420:                                              ; preds = %161
  %421 = load ptr, ptr %70, align 8, !tbaa !5
  %422 = icmp ne ptr %421, null
  br i1 %422, label %426, label %423

423:                                              ; preds = %420
  %424 = load ptr, ptr %68, align 8, !tbaa !5
  %425 = getelementptr inbounds i8, ptr %424, i64 -1
  store ptr %425, ptr %70, align 8, !tbaa !5
  br label %426

426:                                              ; preds = %423, %420
  %427 = load i32, ptr %20, align 4, !tbaa !9
  %428 = add nsw i32 %427, 1
  store i32 %428, ptr %20, align 4, !tbaa !9
  br label %429

429:                                              ; preds = %449, %426
  %430 = load ptr, ptr %68, align 8, !tbaa !5
  %431 = load i8, ptr %430, align 1, !tbaa !13
  %432 = sext i8 %431 to i32
  %433 = icmp ne i32 %432, 0
  br i1 %433, label %434, label %447

434:                                              ; preds = %429
  %435 = call ptr @__ctype_b_loc() #9
  %436 = load ptr, ptr %435, align 8, !tbaa !5
  %437 = load ptr, ptr %68, align 8, !tbaa !5
  %438 = load i8, ptr %437, align 1, !tbaa !13
  %439 = sext i8 %438 to i32
  %440 = sext i32 %439 to i64
  %441 = getelementptr inbounds i16, ptr %436, i64 %440
  %442 = load i16, ptr %441, align 2, !tbaa !14
  %443 = zext i16 %442 to i32
  %444 = and i32 %443, 8192
  %445 = icmp ne i32 %444, 0
  %446 = xor i1 %445, true
  br label %447

447:                                              ; preds = %434, %429
  %448 = phi i1 [ false, %429 ], [ %446, %434 ]
  br i1 %448, label %449, label %452

449:                                              ; preds = %447
  %450 = load ptr, ptr %68, align 8, !tbaa !5
  %451 = getelementptr inbounds i8, ptr %450, i32 1
  store ptr %451, ptr %68, align 8, !tbaa !5
  br label %429, !llvm.loop !26

452:                                              ; preds = %447
  br label %477

453:                                              ; preds = %161
  %454 = load ptr, ptr %68, align 8, !tbaa !5
  %455 = call double @qh_strtod(ptr noundef %454, ptr noundef %68)
  store double %455, ptr %38, align 8, !tbaa !11
  store i32 1, ptr %26, align 4, !tbaa !9
  br label %477

456:                                              ; preds = %161
  %457 = call ptr @__ctype_b_loc() #9
  %458 = load ptr, ptr %457, align 8, !tbaa !5
  %459 = load ptr, ptr %68, align 8, !tbaa !5
  %460 = load i8, ptr %459, align 1, !tbaa !13
  %461 = sext i8 %460 to i32
  %462 = sext i32 %461 to i64
  %463 = getelementptr inbounds i16, ptr %458, i64 %462
  %464 = load i16, ptr %463, align 2, !tbaa !14
  %465 = zext i16 %464 to i32
  %466 = and i32 %465, 2048
  %467 = icmp ne i32 %466, 0
  br i1 %467, label %468, label %471

468:                                              ; preds = %456
  %469 = load ptr, ptr %68, align 8, !tbaa !5
  %470 = call double @qh_strtod(ptr noundef %469, ptr noundef %68)
  store double %470, ptr %40, align 8, !tbaa !11
  br label %472

471:                                              ; preds = %456
  store double 1.000000e+00, ptr %40, align 8, !tbaa !11
  br label %472

472:                                              ; preds = %471, %468
  store i32 1, ptr %22, align 4, !tbaa !9
  br label %477

473:                                              ; preds = %161
  %474 = load ptr, ptr getelementptr inbounds (%struct.rboxT, ptr @rbox, i32 0, i32 1), align 8, !tbaa !24
  %475 = load ptr, ptr %68, align 8, !tbaa !5
  %476 = getelementptr inbounds i8, ptr %475, i64 -1
  call void (ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %474, i32 noundef 6352, ptr noundef @.str.6, ptr noundef %476)
  call void @qh_errexit_rbox(i32 noundef 1)
  br label %477

477:                                              ; preds = %473, %472, %453, %452, %417, %416, %360, %343, %326, %314, %245, %244, %243, %242, %241, %224, %223, %222, %221, %220, %219, %192
  %478 = load ptr, ptr %68, align 8, !tbaa !5
  %479 = load i8, ptr %478, align 1, !tbaa !13
  %480 = sext i8 %479 to i32
  %481 = icmp ne i32 %480, 0
  br i1 %481, label %482, label %497

482:                                              ; preds = %477
  %483 = call ptr @__ctype_b_loc() #9
  %484 = load ptr, ptr %483, align 8, !tbaa !5
  %485 = load ptr, ptr %68, align 8, !tbaa !5
  %486 = load i8, ptr %485, align 1, !tbaa !13
  %487 = sext i8 %486 to i32
  %488 = sext i32 %487 to i64
  %489 = getelementptr inbounds i16, ptr %484, i64 %488
  %490 = load i16, ptr %489, align 2, !tbaa !14
  %491 = zext i16 %490 to i32
  %492 = and i32 %491, 8192
  %493 = icmp ne i32 %492, 0
  br i1 %493, label %497, label %494

494:                                              ; preds = %482
  %495 = load ptr, ptr getelementptr inbounds (%struct.rboxT, ptr @rbox, i32 0, i32 1), align 8, !tbaa !24
  %496 = load ptr, ptr %68, align 8, !tbaa !5
  call void (ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %495, i32 noundef 6353, ptr noundef @.str.7, ptr noundef %496)
  call void @qh_errexit_rbox(i32 noundef 1)
  br label %497

497:                                              ; preds = %494, %482, %477
  br label %106, !llvm.loop !19

498:                                              ; preds = %145, %106
  %499 = load i32, ptr getelementptr inbounds (%struct.rboxT, ptr @rbox, i32 0, i32 2), align 8, !tbaa !22
  %500 = icmp ne i32 %499, 0
  br i1 %500, label %501, label %505

501:                                              ; preds = %498
  %502 = load i32, ptr %34, align 4, !tbaa !9
  %503 = icmp ne i32 %502, 0
  br i1 %503, label %505, label %504

504:                                              ; preds = %501
  store double 1.000000e+06, ptr %64, align 8, !tbaa !11
  br label %505

505:                                              ; preds = %504, %501, %498
  %506 = load i32, ptr %27, align 4, !tbaa !9
  %507 = icmp ne i32 %506, 0
  br i1 %507, label %508, label %520

508:                                              ; preds = %505
  %509 = load i32, ptr %17, align 4, !tbaa !9
  %510 = call double @ldexp(double noundef 1.000000e+00, i32 noundef %509) #7
  %511 = fadd double %510, 5.000000e-01
  %512 = call double @llvm.floor.f64(double %511)
  store double %512, ptr %55, align 8, !tbaa !11
  %513 = load double, ptr %55, align 8, !tbaa !11
  %514 = fptosi double %513 to i32
  store i32 %514, ptr %12, align 4, !tbaa !9
  %515 = load double, ptr %62, align 8, !tbaa !11
  %516 = fcmp oeq double %515, 0.000000e+00
  br i1 %516, label %517, label %519

517:                                              ; preds = %508
  %518 = load double, ptr %64, align 8, !tbaa !11
  store double %518, ptr %62, align 8, !tbaa !11
  br label %519

519:                                              ; preds = %517, %508
  br label %521

520:                                              ; preds = %505
  store i32 0, ptr %12, align 4, !tbaa !9
  br label %521

521:                                              ; preds = %520, %519
  %522 = load i32, ptr %31, align 4, !tbaa !9
  %523 = icmp ne i32 %522, 0
  br i1 %523, label %524, label %532

524:                                              ; preds = %521
  %525 = load i32, ptr %17, align 4, !tbaa !9
  %526 = mul nsw i32 2, %525
  store i32 %526, ptr %13, align 4, !tbaa !9
  %527 = load double, ptr %63, align 8, !tbaa !11
  %528 = fcmp oeq double %527, 0.000000e+00
  br i1 %528, label %529, label %531

529:                                              ; preds = %524
  %530 = load double, ptr %64, align 8, !tbaa !11
  store double %530, ptr %63, align 8, !tbaa !11
  br label %531

531:                                              ; preds = %529, %524
  br label %533

532:                                              ; preds = %521
  store i32 0, ptr %13, align 4, !tbaa !9
  br label %533

533:                                              ; preds = %532, %531
  %534 = load i32, ptr %24, align 4, !tbaa !9
  %535 = icmp ne i32 %534, 0
  br i1 %535, label %536, label %555

536:                                              ; preds = %533
  %537 = load i32, ptr %22, align 4, !tbaa !9
  %538 = icmp ne i32 %537, 0
  br i1 %538, label %539, label %541

539:                                              ; preds = %536
  %540 = load ptr, ptr getelementptr inbounds (%struct.rboxT, ptr @rbox, i32 0, i32 1), align 8, !tbaa !24
  call void (ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %540, i32 noundef 6190, ptr noundef @.str.8)
  call void @qh_errexit_rbox(i32 noundef 1)
  br label %541

541:                                              ; preds = %539, %536
  %542 = load double, ptr %40, align 8, !tbaa !11
  %543 = fcmp ole double %542, 1.000000e+00
  br i1 %543, label %544, label %547

544:                                              ; preds = %541
  %545 = load ptr, ptr getelementptr inbounds (%struct.rboxT, ptr @rbox, i32 0, i32 1), align 8, !tbaa !24
  %546 = load double, ptr %40, align 8, !tbaa !11
  call void (ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %545, i32 noundef 6191, ptr noundef @.str.9, double noundef %546)
  call void @qh_errexit_rbox(i32 noundef 1)
  br label %547

547:                                              ; preds = %544, %541
  %548 = load double, ptr %40, align 8, !tbaa !11
  %549 = fdiv double 1.000000e+00, %548
  %550 = call double @asin(double noundef %549) #7
  store double %550, ptr %56, align 8, !tbaa !11
  %551 = load double, ptr %40, align 8, !tbaa !11
  %552 = load double, ptr %56, align 8, !tbaa !11
  %553 = call double @cos(double noundef %552) #7
  %554 = fmul double %551, %553
  store double %554, ptr %57, align 8, !tbaa !11
  br label %555

555:                                              ; preds = %547, %533
  %556 = load i32, ptr %18, align 4, !tbaa !9
  %557 = icmp ne i32 %556, 0
  br i1 %557, label %593, label %558

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

561:                                              ; preds = %558
  br label %592

562:                                              ; preds = %558
  %563 = load i32, ptr %25, align 4, !tbaa !9
  %564 = load i32, ptr %35, align 4, !tbaa !9
  %565 = add nsw i32 %563, %564
  %566 = load i32, ptr %24, align 4, !tbaa !9
  %567 = add nsw i32 %565, %566
  %568 = load i32, ptr %21, align 4, !tbaa !9
  %569 = add nsw i32 %567, %568
  %570 = load i32, ptr %22, align 4, !tbaa !9
  %571 = add nsw i32 %569, %570
  %572 = load i32, ptr %29, align 4, !tbaa !9
  %573 = add nsw i32 %571, %572
  %574 = load i32, ptr %26, align 4, !tbaa !9
  %575 = add nsw i32 %573, %574
  %576 = load i32, ptr %37, align 4, !tbaa !9
  %577 = add nsw i32 %575, %576
  %578 = icmp ne i32 %577, 0
  br i1 %578, label %579, label %581

579:                                              ; preds = %562
  %580 = load ptr, ptr getelementptr inbounds (%struct.rboxT, ptr @rbox, i32 0, i32 1), align 8, !tbaa !24
  call void (ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %580, i32 noundef 6192, ptr noundef @.str.10)
  call void @qh_errexit_rbox(i32 noundef 1)
  br label %591

581:                                              ; preds = %562
  %582 = load i32, ptr %31, align 4, !tbaa !9
  %583 = load i32, ptr %27, align 4, !tbaa !9
  %584 = add nsw i32 %582, %583
  %585 = load i32, ptr %20, align 4, !tbaa !9
  %586 = add nsw i32 %584, %585
  %587 = icmp ne i32 %586, 0
  br i1 %587, label %588, label %589

588:                                              ; preds = %581
  br label %590

589:                                              ; preds = %581
  store i32 50, ptr %18, align 4, !tbaa !9
  store i32 1, ptr %21, align 4, !tbaa !9
  br label %590

590:                                              ; preds = %589, %588
  br label %591

591:                                              ; preds = %590, %579
  br label %592

592:                                              ; preds = %591, %561
  br label %593

593:                                              ; preds = %592, %555
  %594 = load i32, ptr %35, align 4, !tbaa !9
  %595 = load i32, ptr %24, align 4, !tbaa !9
  %596 = add nsw i32 %594, %595
  %597 = load i32, ptr %29, align 4, !tbaa !9
  %598 = add nsw i32 %596, %597
  %599 = load i32, ptr %37, align 4, !tbaa !9
  %600 = add nsw i32 %598, %599
  %601 = icmp sgt i32 %600, 1
  br i1 %601, label %611, label %602

602:                                              ; preds = %593
  %603 = load i32, ptr %35, align 4, !tbaa !9
  %604 = load i32, ptr %21, align 4, !tbaa !9
  %605 = add nsw i32 %603, %604
  %606 = load i32, ptr %29, align 4, !tbaa !9
  %607 = add nsw i32 %605, %606
  %608 = load i32, ptr %37, align 4, !tbaa !9
  %609 = add nsw i32 %607, %608
  %610 = icmp sgt i32 %609, 1
  br i1 %610, label %611, label %613

611:                                              ; preds = %602, %593
  %612 = load ptr, ptr getelementptr inbounds (%struct.rboxT, ptr @rbox, i32 0, i32 1), align 8, !tbaa !24
  call void (ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %612, i32 noundef 6193, ptr noundef @.str.11)
  call void @qh_errexit_rbox(i32 noundef 1)
  br label %613

613:                                              ; preds = %611, %602
  %614 = load i32, ptr %11, align 4, !tbaa !9
  %615 = icmp sgt i32 %614, 0
  br i1 %615, label %616, label %627

616:                                              ; preds = %613
  %617 = load i32, ptr %18, align 4, !tbaa !9
  %618 = icmp eq i32 %617, 0
  br i1 %618, label %623, label %619

619:                                              ; preds = %616
  %620 = load i32, ptr %10, align 4, !tbaa !9
  %621 = load i32, ptr %18, align 4, !tbaa !9
  %622 = icmp sgt i32 %620, %621
  br i1 %622, label %623, label %627

623:                                              ; preds = %619, %616
  %624 = load ptr, ptr getelementptr inbounds (%struct.rboxT, ptr @rbox, i32 0, i32 1), align 8, !tbaa !24
  %625 = load i32, ptr %10, align 4, !tbaa !9
  %626 = load i32, ptr %18, align 4, !tbaa !9
  call void (ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %624, i32 noundef 6270, ptr noundef @.str.12, i32 noundef %625, i32 noundef %626)
  call void @qh_errexit_rbox(i32 noundef 1)
  br label %627

627:                                              ; preds = %623, %619, %613
  %628 = load i32, ptr %11, align 4, !tbaa !9
  %629 = icmp sgt i32 %628, 0
  br i1 %629, label %630, label %635

630:                                              ; preds = %627
  %631 = load i32, ptr %25, align 4, !tbaa !9
  %632 = icmp ne i32 %631, 0
  br i1 %632, label %633, label %635

633:                                              ; preds = %630
  %634 = load ptr, ptr getelementptr inbounds (%struct.rboxT, ptr @rbox, i32 0, i32 1), align 8, !tbaa !24
  call void (ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %634, i32 noundef 6423, ptr noundef @.str.13)
  call void @qh_errexit_rbox(i32 noundef 1)
  br label %635

635:                                              ; preds = %633, %630, %627
  %636 = load i32, ptr %10, align 4, !tbaa !9
  %637 = icmp eq i32 %636, 0
  br i1 %637, label %638, label %640

638:                                              ; preds = %635
  %639 = load i32, ptr %18, align 4, !tbaa !9
  store i32 %639, ptr %10, align 4, !tbaa !9
  br label %640

640:                                              ; preds = %638, %635
  %641 = load i32, ptr %35, align 4, !tbaa !9
  %642 = icmp ne i32 %641, 0
  br i1 %642, label %646, label %643

643:                                              ; preds = %640
  %644 = load i32, ptr %37, align 4, !tbaa !9
  %645 = icmp ne i32 %644, 0
  br i1 %645, label %646, label %648

646:                                              ; preds = %643, %640
  %647 = load i32, ptr %18, align 4, !tbaa !9
  store i32 %647, ptr %19, align 4, !tbaa !9
  br label %704

648:                                              ; preds = %643
  %649 = load i32, ptr %36, align 4, !tbaa !9
  %650 = icmp ne i32 %649, 0
  br i1 %650, label %651, label %656

651:                                              ; preds = %648
  %652 = load i32, ptr %18, align 4, !tbaa !9
  %653 = load i32, ptr %17, align 4, !tbaa !9
  %654 = add nsw i32 %652, %653
  %655 = add nsw i32 %654, 1
  store i32 %655, ptr %19, align 4, !tbaa !9
  br label %703

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

659:                                              ; preds = %656
  %660 = load i32, ptr %18, align 4, !tbaa !9
  store i32 %660, ptr %19, align 4, !tbaa !9
  %661 = load i32, ptr %17, align 4, !tbaa !9
  %662 = icmp eq i32 %661, 2
  br i1 %662, label %663, label %672

663:                                              ; preds = %659
  %664 = load i32, ptr %24, align 4, !tbaa !9
  %665 = icmp ne i32 %664, 0
  br i1 %665, label %666, label %671

666:                                              ; preds = %663
  %667 = load i32, ptr %18, align 4, !tbaa !9
  %668 = sub nsw i32 %667, 2
  %669 = load i32, ptr %19, align 4, !tbaa !9
  %670 = add nsw i32 %669, %668
  store i32 %670, ptr %19, align 4, !tbaa !9
  br label %671

671:                                              ; preds = %666, %663
  br label %697

672:                                              ; preds = %659
  %673 = load i32, ptr %17, align 4, !tbaa !9
  %674 = icmp eq i32 %673, 3
  br i1 %674, label %675, label %696

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

678:                                              ; preds = %675
  %679 = load i32, ptr %18, align 4, !tbaa !9
  %680 = mul nsw i32 2, %679
  %681 = load i32, ptr %19, align 4, !tbaa !9
  %682 = add nsw i32 %681, %680
  store i32 %682, ptr %19, align 4, !tbaa !9
  br label %695

683:                                              ; preds = %675
  %684 = load i32, ptr %28, align 4, !tbaa !9
  %685 = icmp ne i32 %684, 0
  br i1 %685, label %686, label %691

686:                                              ; preds = %683
  %687 = load i32, ptr %18, align 4, !tbaa !9
  %688 = add nsw i32 1, %687
  %689 = load i32, ptr %19, align 4, !tbaa !9
  %690 = add nsw i32 %689, %688
  store i32 %690, ptr %19, align 4, !tbaa !9
  br label %694

691:                                              ; preds = %683
  %692 = load i32, ptr %19, align 4, !tbaa !9
  %693 = add nsw i32 %692, 2
  store i32 %693, ptr %19, align 4, !tbaa !9
  br label %694

694:                                              ; preds = %691, %686
  br label %695

695:                                              ; preds = %694, %678
  br label %696

696:                                              ; preds = %695, %672
  br label %697

697:                                              ; preds = %696, %671
  br label %702

698:                                              ; preds = %656
  %699 = load i32, ptr %18, align 4, !tbaa !9
  %700 = load i32, ptr %22, align 4, !tbaa !9
  %701 = add nsw i32 %699, %700
  store i32 %701, ptr %19, align 4, !tbaa !9
  br label %702

702:                                              ; preds = %698, %697
  br label %703

703:                                              ; preds = %702, %651
  br label %704

704:                                              ; preds = %703, %646
  %705 = load i32, ptr %12, align 4, !tbaa !9
  %706 = load i32, ptr %13, align 4, !tbaa !9
  %707 = add nsw i32 %705, %706
  %708 = load i32, ptr %20, align 4, !tbaa !9
  %709 = add nsw i32 %707, %708
  %710 = load i32, ptr %19, align 4, !tbaa !9
  %711 = add nsw i32 %710, %709
  store i32 %711, ptr %19, align 4, !tbaa !9
  %712 = load i32, ptr %11, align 4, !tbaa !9
  %713 = load i32, ptr %10, align 4, !tbaa !9
  %714 = mul nsw i32 %712, %713
  %715 = load i32, ptr %19, align 4, !tbaa !9
  %716 = add nsw i32 %715, %714
  store i32 %716, ptr %19, align 4, !tbaa !9
  %717 = load i32, ptr %33, align 4, !tbaa !9
  %718 = icmp eq i32 %717, 0
  br i1 %718, label %719, label %747

719:                                              ; preds = %704
  %720 = getelementptr inbounds [250 x i8], ptr %66, i64 0, i64 0
  store ptr %720, ptr %68, align 8, !tbaa !5
  br label %721

721:                                              ; preds = %743, %719
  %722 = load ptr, ptr %68, align 8, !tbaa !5
  %723 = load i8, ptr %722, align 1, !tbaa !13
  %724 = icmp ne i8 %723, 0
  br i1 %724, label %725, label %746

725:                                              ; preds = %721
  %726 = load i32, ptr %36, align 4, !tbaa !9
  %727 = icmp ne i32 %726, 0
  br i1 %727, label %728, label %734

728:                                              ; preds = %725
  %729 = load ptr, ptr %68, align 8, !tbaa !5
  %730 = load i8, ptr %729, align 1, !tbaa !13
  %731 = sext i8 %730 to i32
  %732 = icmp eq i32 %731, 121
  br i1 %732, label %733, label %734

733:                                              ; preds = %728
  store i32 120, ptr %5, align 4, !tbaa !9
  br label %738

734:                                              ; preds = %728, %725
  %735 = load ptr, ptr %68, align 8, !tbaa !5
  %736 = load i8, ptr %735, align 1, !tbaa !13
  %737 = sext i8 %736 to i32
  store i32 %737, ptr %5, align 4, !tbaa !9
  br label %738

738:                                              ; preds = %734, %733
  %739 = load i32, ptr %14, align 4, !tbaa !9
  %740 = mul nsw i32 11, %739
  %741 = load i32, ptr %5, align 4, !tbaa !9
  %742 = add nsw i32 %740, %741
  store i32 %742, ptr %14, align 4, !tbaa !9
  br label %743

743:                                              ; preds = %738
  %744 = load ptr, ptr %68, align 8, !tbaa !5
  %745 = getelementptr inbounds i8, ptr %744, i32 1
  store ptr %745, ptr %68, align 8, !tbaa !5
  br label %721, !llvm.loop !27

746:                                              ; preds = %721
  br label %775

747:                                              ; preds = %704
  %748 = load i32, ptr %32, align 4, !tbaa !9
  %749 = icmp ne i32 %748, 0
  br i1 %749, label %750, label %774

750:                                              ; preds = %747
  %751 = call i64 @time(ptr noundef %71) #7
  %752 = trunc i64 %751 to i32
  store i32 %752, ptr %14, align 4, !tbaa !9
  %753 = getelementptr inbounds [50 x i8], ptr %67, i64 0, i64 0
  %754 = load i32, ptr %14, align 4, !tbaa !9
  %755 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef %753, ptr noundef @.str.14, i32 noundef %754) #7
  %756 = getelementptr inbounds [250 x i8], ptr %66, i64 0, i64 0
  %757 = getelementptr inbounds [50 x i8], ptr %67, i64 0, i64 0
  %758 = getelementptr inbounds [250 x i8], ptr %66, i64 0, i64 0
  %759 = call i64 @strlen(ptr noundef %758) #8
  %760 = sub i64 250, %759
  %761 = sub i64 %760, 1
  %762 = call ptr @strncat(ptr noundef %756, ptr noundef %757, i64 noundef %761) #7
  %763 = getelementptr inbounds [250 x i8], ptr %66, i64 0, i64 0
  %764 = call ptr @strstr(ptr noundef %763, ptr noundef @.str.15) #8
  store ptr %764, ptr %69, align 8, !tbaa !5
  %765 = load ptr, ptr %69, align 8, !tbaa !5
  %766 = icmp ne ptr %765, null
  br i1 %766, label %767, label %773

767:                                              ; preds = %750
  %768 = load ptr, ptr %69, align 8, !tbaa !5
  %769 = getelementptr inbounds i8, ptr %768, i64 1
  %770 = load ptr, ptr %69, align 8, !tbaa !5
  %771 = getelementptr inbounds i8, ptr %770, i64 3
  %772 = call ptr @strcpy(ptr noundef %769, ptr noundef %771) #7
  br label %773

773:                                              ; preds = %767, %750
  br label %774

774:                                              ; preds = %773, %747
  br label %775

775:                                              ; preds = %774, %746
  %776 = load i32, ptr %14, align 4, !tbaa !9
  call void @qh_srand(i32 noundef %776)
  %777 = load i32, ptr %23, align 4, !tbaa !9
  %778 = icmp ne i32 %777, 0
  br i1 %778, label %779, label %795

779:                                              ; preds = %775
  %780 = load ptr, ptr @rbox, align 8, !tbaa !28
  %781 = load i32, ptr %30, align 4, !tbaa !9
  %782 = icmp ne i32 %781, 0
  br i1 %782, label %783, label %784

783:                                              ; preds = %779
  br label %786

784:                                              ; preds = %779
  %785 = getelementptr inbounds [250 x i8], ptr %66, i64 0, i64 0
  br label %786

786:                                              ; preds = %784, %783
  %787 = phi ptr [ @.str.17, %783 ], [ %785, %784 ]
  %788 = load i32, ptr %19, align 4, !tbaa !9
  %789 = load i32, ptr %17, align 4, !tbaa !9
  %790 = add nsw i32 %789, 1
  %791 = load i32, ptr getelementptr inbounds (%struct.rboxT, ptr @rbox, i32 0, i32 2), align 8, !tbaa !22
  %792 = icmp ne i32 %791, 0
  %793 = zext i1 %792 to i64
  %794 = select i1 %792, ptr @.str.18, ptr @.str.19
  call void (ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %780, i32 noundef 9391, ptr noundef @.str.16, ptr noundef %787, i32 noundef %788, i32 noundef %790, ptr noundef %794)
  br label %808

795:                                              ; preds = %775
  %796 = load i32, ptr %30, align 4, !tbaa !9
  %797 = icmp ne i32 %796, 0
  br i1 %797, label %798, label %802

798:                                              ; preds = %795
  %799 = load ptr, ptr @rbox, align 8, !tbaa !28
  %800 = load i32, ptr %17, align 4, !tbaa !9
  %801 = load i32, ptr %19, align 4, !tbaa !9
  call void (ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %799, i32 noundef 9392, ptr noundef @.str.20, i32 noundef %800, i32 noundef %801)
  br label %807

802:                                              ; preds = %795
  %803 = load ptr, ptr @rbox, align 8, !tbaa !28
  %804 = load i32, ptr %17, align 4, !tbaa !9
  %805 = getelementptr inbounds [250 x i8], ptr %66, i64 0, i64 0
  %806 = load i32, ptr %19, align 4, !tbaa !9
  call void (ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %803, i32 noundef 9393, ptr noundef @.str.21, i32 noundef %804, ptr noundef %805, i32 noundef %806)
  br label %807

807:                                              ; preds = %802, %798
  br label %808

808:                                              ; preds = %807, %786
  %809 = load ptr, ptr %70, align 8, !tbaa !5
  store ptr %809, ptr %68, align 8, !tbaa !5
  %810 = icmp ne ptr %809, null
  br i1 %810, label %811, label %909

811:                                              ; preds = %808
  br label %812

812:                                              ; preds = %907, %811
  %813 = load ptr, ptr %68, align 8, !tbaa !5
  %814 = icmp ne ptr %813, null
  br i1 %814, label %815, label %820

815:                                              ; preds = %812
  %816 = load ptr, ptr %68, align 8, !tbaa !5
  %817 = load i8, ptr %816, align 1, !tbaa !13
  %818 = sext i8 %817 to i32
  %819 = icmp ne i32 %818, 0
  br label %820

820:                                              ; preds = %815, %812
  %821 = phi i1 [ false, %812 ], [ %819, %815 ]
  br i1 %821, label %822, label %908

822:                                              ; preds = %820
  store i32 0, ptr %15, align 4, !tbaa !9
  %823 = load i32, ptr %23, align 4, !tbaa !9
  %824 = icmp ne i32 %823, 0
  br i1 %824, label %825, label %826

825:                                              ; preds = %822
  call void @qh_out1(double noundef 1.000000e+00)
  br label %826

826:                                              ; preds = %825, %822
  br label %827

827:                                              ; preds = %861, %826
  %828 = load ptr, ptr %68, align 8, !tbaa !5
  %829 = getelementptr inbounds i8, ptr %828, i32 1
  store ptr %829, ptr %68, align 8, !tbaa !5
  %830 = load i8, ptr %829, align 1, !tbaa !13
  %831 = icmp ne i8 %830, 0
  br i1 %831, label %832, label %862

832:                                              ; preds = %827
  %833 = load ptr, ptr %68, align 8, !tbaa !5
  %834 = call double @qh_strtod(ptr noundef %833, ptr noundef %68)
  call void @qh_out1(double noundef %834)
  %835 = load i32, ptr %15, align 4, !tbaa !9
  %836 = add nsw i32 %835, 1
  store i32 %836, ptr %15, align 4, !tbaa !9
  %837 = call ptr @__ctype_b_loc() #9
  %838 = load ptr, ptr %837, align 8, !tbaa !5
  %839 = load ptr, ptr %68, align 8, !tbaa !5
  %840 = load i8, ptr %839, align 1, !tbaa !13
  %841 = sext i8 %840 to i32
  %842 = sext i32 %841 to i64
  %843 = getelementptr inbounds i16, ptr %838, i64 %842
  %844 = load i16, ptr %843, align 2, !tbaa !14
  %845 = zext i16 %844 to i32
  %846 = and i32 %845, 8192
  %847 = icmp ne i32 %846, 0
  br i1 %847, label %852, label %848

848:                                              ; preds = %832
  %849 = load ptr, ptr %68, align 8, !tbaa !5
  %850 = load i8, ptr %849, align 1, !tbaa !13
  %851 = icmp ne i8 %850, 0
  br i1 %851, label %853, label %852

852:                                              ; preds = %848, %832
  br label %862

853:                                              ; preds = %848
  %854 = load ptr, ptr %68, align 8, !tbaa !5
  %855 = load i8, ptr %854, align 1, !tbaa !13
  %856 = sext i8 %855 to i32
  %857 = icmp ne i32 %856, 44
  br i1 %857, label %858, label %861

858:                                              ; preds = %853
  %859 = load ptr, ptr getelementptr inbounds (%struct.rboxT, ptr @rbox, i32 0, i32 1), align 8, !tbaa !24
  %860 = load ptr, ptr %68, align 8, !tbaa !5
  call void (ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %859, i32 noundef 6194, ptr noundef @.str.22, ptr noundef %860)
  call void @qh_errexit_rbox(i32 noundef 1)
  br label %861

861:                                              ; preds = %858, %853
  br label %827, !llvm.loop !29

862:                                              ; preds = %852, %827
  %863 = load i32, ptr %15, align 4, !tbaa !9
  %864 = load i32, ptr %17, align 4, !tbaa !9
  %865 = icmp slt i32 %863, %864
  br i1 %865, label %866, label %876

866:                                              ; preds = %862
  %867 = load i32, ptr %17, align 4, !tbaa !9
  %868 = load i32, ptr %15, align 4, !tbaa !9
  %869 = sub nsw i32 %867, %868
  store i32 %869, ptr %7, align 4, !tbaa !9
  br label %870

870:                                              ; preds = %874, %866
  %871 = load i32, ptr %7, align 4, !tbaa !9
  %872 = add nsw i32 %871, -1
  store i32 %872, ptr %7, align 4, !tbaa !9
  %873 = icmp ne i32 %871, 0
  br i1 %873, label %874, label %875

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

875:                                              ; preds = %870
  br label %886

876:                                              ; preds = %862
  %877 = load i32, ptr %15, align 4, !tbaa !9
  %878 = load i32, ptr %17, align 4, !tbaa !9
  %879 = icmp sgt i32 %877, %878
  br i1 %879, label %880, label %885

880:                                              ; preds = %876
  %881 = load ptr, ptr getelementptr inbounds (%struct.rboxT, ptr @rbox, i32 0, i32 1), align 8, !tbaa !24
  %882 = load i32, ptr %15, align 4, !tbaa !9
  %883 = load i32, ptr %17, align 4, !tbaa !9
  %884 = load ptr, ptr %68, align 8, !tbaa !5
  call void (ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %881, i32 noundef 6195, ptr noundef @.str.23, i32 noundef %882, i32 noundef %883, ptr noundef %884)
  call void @qh_errexit_rbox(i32 noundef 1)
  br label %885

885:                                              ; preds = %880, %876
  br label %886

886:                                              ; preds = %885, %875
  %887 = load ptr, ptr @rbox, align 8, !tbaa !28
  call void (ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %887, i32 noundef 9394, ptr noundef @.str.24)
  br label %888

888:                                              ; preds = %906, %886
  %889 = load ptr, ptr %68, align 8, !tbaa !5
  %890 = call ptr @strchr(ptr noundef %889, i32 noundef 80) #8
  store ptr %890, ptr %68, align 8, !tbaa !5
  %891 = icmp ne ptr %890, null
  br i1 %891, label %892, label %907

892:                                              ; preds = %888
  %893 = call ptr @__ctype_b_loc() #9
  %894 = load ptr, ptr %893, align 8, !tbaa !5
  %895 = load ptr, ptr %68, align 8, !tbaa !5
  %896 = getelementptr inbounds i8, ptr %895, i64 -1
  %897 = load i8, ptr %896, align 1, !tbaa !13
  %898 = sext i8 %897 to i32
  %899 = sext i32 %898 to i64
  %900 = getelementptr inbounds i16, ptr %894, i64 %899
  %901 = load i16, ptr %900, align 2, !tbaa !14
  %902 = zext i16 %901 to i32
  %903 = and i32 %902, 8192
  %904 = icmp ne i32 %903, 0
  br i1 %904, label %905, label %906

905:                                              ; preds = %892
  br label %907

906:                                              ; preds = %892
  br label %888, !llvm.loop !31

907:                                              ; preds = %905, %888
  br label %812, !llvm.loop !32

908:                                              ; preds = %820
  br label %909

909:                                              ; preds = %908, %808
  %910 = load i32, ptr %35, align 4, !tbaa !9
  %911 = load i32, ptr %36, align 4, !tbaa !9
  %912 = add nsw i32 %910, %911
  %913 = icmp ne i32 %912, 0
  br i1 %913, label %914, label %1147

914:                                              ; preds = %909
  %915 = load i32, ptr %17, align 4, !tbaa !9
  %916 = load i32, ptr %17, align 4, !tbaa !9
  %917 = add nsw i32 %916, 1
  %918 = mul nsw i32 %915, %917
  %919 = sext i32 %918 to i64
  %920 = mul i64 %919, 8
  %921 = call ptr @qh_malloc(i64 noundef %920)
  %922 = load ptr, ptr %4, align 8, !tbaa !5
  store ptr %921, ptr %922, align 8, !tbaa !5
  %923 = icmp ne ptr %921, null
  br i1 %923, label %926, label %924

924:                                              ; preds = %914
  %925 = load ptr, ptr getelementptr inbounds (%struct.rboxT, ptr @rbox, i32 0, i32 1), align 8, !tbaa !24
  call void (ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %925, i32 noundef 6196, ptr noundef @.str.25)
  call void @qh_errexit_rbox(i32 noundef 4)
  br label %926

926:                                              ; preds = %924, %914
  %927 = load ptr, ptr %4, align 8, !tbaa !5
  %928 = load ptr, ptr %927, align 8, !tbaa !5
  store ptr %928, ptr %48, align 8, !tbaa !5
  %929 = load i32, ptr %25, align 4, !tbaa !9
  %930 = icmp ne i32 %929, 0
  br i1 %930, label %931, label %968

931:                                              ; preds = %926
  store i32 0, ptr %5, align 4, !tbaa !9
  br label %932

932:                                              ; preds = %953, %931
  %933 = load i32, ptr %5, align 4, !tbaa !9
  %934 = load i32, ptr %17, align 4, !tbaa !9
  %935 = icmp slt i32 %933, %934
  br i1 %935, label %936, label %956

936:                                              ; preds = %932
  store i32 0, ptr %7, align 4, !tbaa !9
  br label %937

937:                                              ; preds = %949, %936
  %938 = load i32, ptr %7, align 4, !tbaa !9
  %939 = load i32, ptr %17, align 4, !tbaa !9
  %940 = icmp slt i32 %938, %939
  br i1 %940, label %941, label %952

941:                                              ; preds = %937
  %942 = load i32, ptr %5, align 4, !tbaa !9
  %943 = load i32, ptr %7, align 4, !tbaa !9
  %944 = icmp eq i32 %942, %943
  %945 = zext i1 %944 to i64
  %946 = select i1 %944, double 1.000000e+00, double 0.000000e+00
  %947 = load ptr, ptr %48, align 8, !tbaa !5
  %948 = getelementptr inbounds double, ptr %947, i32 1
  store ptr %948, ptr %48, align 8, !tbaa !5
  store double %946, ptr %947, align 8, !tbaa !11
  br label %949

949:                                              ; preds = %941
  %950 = load i32, ptr %7, align 4, !tbaa !9
  %951 = add nsw i32 %950, 1
  store i32 %951, ptr %7, align 4, !tbaa !9
  br label %937, !llvm.loop !33

952:                                              ; preds = %937
  br label %953

953:                                              ; preds = %952
  %954 = load i32, ptr %5, align 4, !tbaa !9
  %955 = add nsw i32 %954, 1
  store i32 %955, ptr %5, align 4, !tbaa !9
  br label %932, !llvm.loop !34

956:                                              ; preds = %932
  store i32 0, ptr %7, align 4, !tbaa !9
  br label %957

957:                                              ; preds = %964, %956
  %958 = load i32, ptr %7, align 4, !tbaa !9
  %959 = load i32, ptr %17, align 4, !tbaa !9
  %960 = icmp slt i32 %958, %959
  br i1 %960, label %961, label %967

961:                                              ; preds = %957
  %962 = load ptr, ptr %48, align 8, !tbaa !5
  %963 = getelementptr inbounds double, ptr %962, i32 1
  store ptr %963, ptr %48, align 8, !tbaa !5
  store double -1.000000e+00, ptr %962, align 8, !tbaa !11
  br label %964

964:                                              ; preds = %961
  %965 = load i32, ptr %7, align 4, !tbaa !9
  %966 = add nsw i32 %965, 1
  store i32 %966, ptr %7, align 4, !tbaa !9
  br label %957, !llvm.loop !35

967:                                              ; preds = %957
  br label %997

968:                                              ; preds = %926
  store i32 0, ptr %5, align 4, !tbaa !9
  br label %969

969:                                              ; preds = %993, %968
  %970 = load i32, ptr %5, align 4, !tbaa !9
  %971 = load i32, ptr %17, align 4, !tbaa !9
  %972 = add nsw i32 %971, 1
  %973 = icmp slt i32 %970, %972
  br i1 %973, label %974, label %996

974:                                              ; preds = %969
  store i32 0, ptr %7, align 4, !tbaa !9
  br label %975

975:                                              ; preds = %989, %974
  %976 = load i32, ptr %7, align 4, !tbaa !9
  %977 = load i32, ptr %17, align 4, !tbaa !9
  %978 = icmp slt i32 %976, %977
  br i1 %978, label %979, label %992

979:                                              ; preds = %975
  %980 = call i32 @qh_rand()
  %981 = sitofp i32 %980 to double
  store double %981, ptr %53, align 8, !tbaa !11
  %982 = load double, ptr %53, align 8, !tbaa !11
  %983 = fmul double 2.000000e+00, %982
  %984 = load double, ptr %65, align 8, !tbaa !11
  %985 = fdiv double %983, %984
  %986 = fsub double %985, 1.000000e+00
  %987 = load ptr, ptr %48, align 8, !tbaa !5
  %988 = getelementptr inbounds double, ptr %987, i32 1
  store ptr %988, ptr %48, align 8, !tbaa !5
  store double %986, ptr %987, align 8, !tbaa !11
  br label %989

989:                                              ; preds = %979
  %990 = load i32, ptr %7, align 4, !tbaa !9
  %991 = add nsw i32 %990, 1
  store i32 %991, ptr %7, align 4, !tbaa !9
  br label %975, !llvm.loop !36

992:                                              ; preds = %975
  br label %993

993:                                              ; preds = %992
  %994 = load i32, ptr %5, align 4, !tbaa !9
  %995 = add nsw i32 %994, 1
  store i32 %995, ptr %5, align 4, !tbaa !9
  br label %969, !llvm.loop !37

996:                                              ; preds = %969
  br label %997

997:                                              ; preds = %996, %967
  %998 = load i32, ptr %36, align 4, !tbaa !9
  %999 = icmp ne i32 %998, 0
  br i1 %999, label %1000, label %1032

1000:                                             ; preds = %997
  %1001 = load ptr, ptr %4, align 8, !tbaa !5
  %1002 = load ptr, ptr %1001, align 8, !tbaa !5
  store ptr %1002, ptr %48, align 8, !tbaa !5
  store i32 0, ptr %5, align 4, !tbaa !9
  br label %1003

1003:                                             ; preds = %1028, %1000
  %1004 = load i32, ptr %5, align 4, !tbaa !9
  %1005 = load i32, ptr %17, align 4, !tbaa !9
  %1006 = add nsw i32 %1005, 1
  %1007 = icmp slt i32 %1004, %1006
  br i1 %1007, label %1008, label %1031

1008:                                             ; preds = %1003
  %1009 = load i32, ptr %23, align 4, !tbaa !9
  %1010 = icmp ne i32 %1009, 0
  br i1 %1010, label %1011, label %1012

1011:                                             ; preds = %1008
  call void @qh_out1(double noundef 1.000000e+00)
  br label %1012

1012:                                             ; preds = %1011, %1008
  store i32 0, ptr %7, align 4, !tbaa !9
  br label %1013

1013:                                             ; preds = %1023, %1012
  %1014 = load i32, ptr %7, align 4, !tbaa !9
  %1015 = load i32, ptr %17, align 4, !tbaa !9
  %1016 = icmp slt i32 %1014, %1015
  br i1 %1016, label %1017, label %1026

1017:                                             ; preds = %1013
  %1018 = load ptr, ptr %48, align 8, !tbaa !5
  %1019 = getelementptr inbounds double, ptr %1018, i32 1
  store ptr %1019, ptr %48, align 8, !tbaa !5
  %1020 = load double, ptr %1018, align 8, !tbaa !11
  %1021 = load double, ptr %64, align 8, !tbaa !11
  %1022 = fmul double %1020, %1021
  call void @qh_out1(double noundef %1022)
  br label %1023

1023:                                             ; preds = %1017
  %1024 = load i32, ptr %7, align 4, !tbaa !9
  %1025 = add nsw i32 %1024, 1
  store i32 %1025, ptr %7, align 4, !tbaa !9
  br label %1013, !llvm.loop !38

1026:                                             ; preds = %1013
  %1027 = load ptr, ptr @rbox, align 8, !tbaa !28
  call void (ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %1027, i32 noundef 9395, ptr noundef @.str.24)
  br label %1028

1028:                                             ; preds = %1026
  %1029 = load i32, ptr %5, align 4, !tbaa !9
  %1030 = add nsw i32 %1029, 1
  store i32 %1030, ptr %5, align 4, !tbaa !9
  br label %1003, !llvm.loop !39

1031:                                             ; preds = %1003
  br label %1032

1032:                                             ; preds = %1031, %997
  store i32 0, ptr %6, align 4, !tbaa !9
  br label %1033

1033:                                             ; preds = %1143, %1032
  %1034 = load i32, ptr %6, align 4, !tbaa !9
  %1035 = load i32, ptr %18, align 4, !tbaa !9
  %1036 = icmp slt i32 %1034, %1035
  br i1 %1036, label %1037, label %1146

1037:                                             ; preds = %1033
  %1038 = load i32, ptr %26, align 4, !tbaa !9
  %1039 = icmp ne i32 %1038, 0
  br i1 %1039, label %1040, label %1045

1040:                                             ; preds = %1037
  %1041 = call i32 @qh_rand()
  %1042 = load i32, ptr %17, align 4, !tbaa !9
  %1043 = add nsw i32 %1042, 1
  %1044 = srem i32 %1041, %1043
  store i32 %1044, ptr %16, align 4, !tbaa !9
  br label %1046

1045:                                             ; preds = %1037
  store i32 -1, ptr %16, align 4, !tbaa !9
  br label %1046

1046:                                             ; preds = %1045, %1040
  store i32 0, ptr %7, align 4, !tbaa !9
  br label %1047

1047:                                             ; preds = %1055, %1046
  %1048 = load i32, ptr %7, align 4, !tbaa !9
  %1049 = load i32, ptr %17, align 4, !tbaa !9
  %1050 = icmp slt i32 %1048, %1049
  br i1 %1050, label %1051, label %1058

1051:                                             ; preds = %1047
  %1052 = load i32, ptr %7, align 4, !tbaa !9
  %1053 = sext i32 %1052 to i64
  %1054 = getelementptr inbounds [200 x double], ptr %42, i64 0, i64 %1053
  store double 0.000000e+00, ptr %1054, align 8, !tbaa !11
  br label %1055

1055:                                             ; preds = %1051
  %1056 = load i32, ptr %7, align 4, !tbaa !9
  %1057 = add nsw i32 %1056, 1
  store i32 %1057, ptr %7, align 4, !tbaa !9
  br label %1047, !llvm.loop !40

1058:                                             ; preds = %1047
  store double 0.000000e+00, ptr %51, align 8, !tbaa !11
  store i32 0, ptr %5, align 4, !tbaa !9
  br label %1059

1059:                                             ; preds = %1108, %1058
  %1060 = load i32, ptr %5, align 4, !tbaa !9
  %1061 = load i32, ptr %17, align 4, !tbaa !9
  %1062 = add nsw i32 %1061, 1
  %1063 = icmp slt i32 %1060, %1062
  br i1 %1063, label %1064, label %1111

1064:                                             ; preds = %1059
  %1065 = call i32 @qh_rand()
  %1066 = sitofp i32 %1065 to double
  store double %1066, ptr %53, align 8, !tbaa !11
  %1067 = load double, ptr %53, align 8, !tbaa !11
  %1068 = load double, ptr %65, align 8, !tbaa !11
  %1069 = fdiv double %1067, %1068
  store double %1069, ptr %52, align 8, !tbaa !11
  %1070 = load i32, ptr %5, align 4, !tbaa !9
  %1071 = load i32, ptr %16, align 4, !tbaa !9
  %1072 = icmp eq i32 %1070, %1071
  br i1 %1072, label %1073, label %1077

1073:                                             ; preds = %1064
  %1074 = load double, ptr %38, align 8, !tbaa !11
  %1075 = load double, ptr %52, align 8, !tbaa !11
  %1076 = fmul double %1075, %1074
  store double %1076, ptr %52, align 8, !tbaa !11
  br label %1077

1077:                                             ; preds = %1073, %1064
  %1078 = load double, ptr %52, align 8, !tbaa !11
  %1079 = load double, ptr %51, align 8, !tbaa !11
  %1080 = fadd double %1079, %1078
  store double %1080, ptr %51, align 8, !tbaa !11
  store i32 0, ptr %7, align 4, !tbaa !9
  br label %1081

1081:                                             ; preds = %1104, %1077
  %1082 = load i32, ptr %7, align 4, !tbaa !9
  %1083 = load i32, ptr %17, align 4, !tbaa !9
  %1084 = icmp slt i32 %1082, %1083
  br i1 %1084, label %1085, label %1107

1085:                                             ; preds = %1081
  %1086 = load ptr, ptr %4, align 8, !tbaa !5
  %1087 = load ptr, ptr %1086, align 8, !tbaa !5
  %1088 = load i32, ptr %5, align 4, !tbaa !9
  %1089 = load i32, ptr %17, align 4, !tbaa !9
  %1090 = mul nsw i32 %1088, %1089
  %1091 = sext i32 %1090 to i64
  %1092 = getelementptr inbounds double, ptr %1087, i64 %1091
  %1093 = load i32, ptr %7, align 4, !tbaa !9
  %1094 = sext i32 %1093 to i64
  %1095 = getelementptr inbounds double, ptr %1092, i64 %1094
  store ptr %1095, ptr %48, align 8, !tbaa !5
  %1096 = load double, ptr %52, align 8, !tbaa !11
  %1097 = load ptr, ptr %48, align 8, !tbaa !5
  %1098 = load double, ptr %1097, align 8, !tbaa !11
  %1099 = load i32, ptr %7, align 4, !tbaa !9
  %1100 = sext i32 %1099 to i64
  %1101 = getelementptr inbounds [200 x double], ptr %42, i64 0, i64 %1100
  %1102 = load double, ptr %1101, align 8, !tbaa !11
  %1103 = call double @llvm.fmuladd.f64(double %1096, double %1098, double %1102)
  store double %1103, ptr %1101, align 8, !tbaa !11
  br label %1104

1104:                                             ; preds = %1085
  %1105 = load i32, ptr %7, align 4, !tbaa !9
  %1106 = add nsw i32 %1105, 1
  store i32 %1106, ptr %7, align 4, !tbaa !9
  br label %1081, !llvm.loop !41

1107:                                             ; preds = %1081
  br label %1108

1108:                                             ; preds = %1107
  %1109 = load i32, ptr %5, align 4, !tbaa !9
  %1110 = add nsw i32 %1109, 1
  store i32 %1110, ptr %5, align 4, !tbaa !9
  br label %1059, !llvm.loop !42

1111:                                             ; preds = %1059
  store i32 0, ptr %7, align 4, !tbaa !9
  br label %1112

1112:                                             ; preds = %1125, %1111
  %1113 = load i32, ptr %7, align 4, !tbaa !9
  %1114 = load i32, ptr %17, align 4, !tbaa !9
  %1115 = icmp slt i32 %1113, %1114
  br i1 %1115, label %1116, label %1128

1116:                                             ; preds = %1112
  %1117 = load double, ptr %64, align 8, !tbaa !11
  %1118 = load double, ptr %51, align 8, !tbaa !11
  %1119 = fdiv double %1117, %1118
  %1120 = load i32, ptr %7, align 4, !tbaa !9
  %1121 = sext i32 %1120 to i64
  %1122 = getelementptr inbounds [200 x double], ptr %42, i64 0, i64 %1121
  %1123 = load double, ptr %1122, align 8, !tbaa !11
  %1124 = fmul double %1123, %1119
  store double %1124, ptr %1122, align 8, !tbaa !11
  br label %1125

1125:                                             ; preds = %1116
  %1126 = load i32, ptr %7, align 4, !tbaa !9
  %1127 = add nsw i32 %1126, 1
  store i32 %1127, ptr %7, align 4, !tbaa !9
  br label %1112, !llvm.loop !43

1128:                                             ; preds = %1112
  %1129 = load i32, ptr %23, align 4, !tbaa !9
  %1130 = getelementptr inbounds [200 x double], ptr %42, i64 0, i64 0
  %1131 = load i32, ptr %17, align 4, !tbaa !9
  call void @qh_outcoord(i32 noundef %1129, ptr noundef %1130, i32 noundef %1131)
  %1132 = load i32, ptr %9, align 4, !tbaa !9
  %1133 = add nsw i32 %1132, 1
  store i32 %1133, ptr %9, align 4, !tbaa !9
  %1134 = load i32, ptr %10, align 4, !tbaa !9
  %1135 = icmp slt i32 %1132, %1134
  br i1 %1135, label %1136, label %1142

1136:                                             ; preds = %1128
  %1137 = load i32, ptr %11, align 4, !tbaa !9
  %1138 = load double, ptr %41, align 8, !tbaa !11
  %1139 = load i32, ptr %23, align 4, !tbaa !9
  %1140 = getelementptr inbounds [200 x double], ptr %42, i64 0, i64 0
  %1141 = load i32, ptr %17, align 4, !tbaa !9
  call void @qh_outcoincident(i32 noundef %1137, double noundef %1138, i32 noundef %1139, ptr noundef %1140, i32 noundef %1141)
  br label %1142

1142:                                             ; preds = %1136, %1128
  br label %1143

1143:                                             ; preds = %1142
  %1144 = load i32, ptr %6, align 4, !tbaa !9
  %1145 = add nsw i32 %1144, 1
  store i32 %1145, ptr %6, align 4, !tbaa !9
  br label %1033, !llvm.loop !44

1146:                                             ; preds = %1033
  store i32 0, ptr %25, align 4, !tbaa !9
  store i32 0, ptr %18, align 4, !tbaa !9
  br label %1147

1147:                                             ; preds = %1146, %909
  %1148 = load i32, ptr %37, align 4, !tbaa !9
  %1149 = icmp ne i32 %1148, 0
  br i1 %1149, label %1150, label %1267

1150:                                             ; preds = %1147
  %1151 = load i32, ptr %18, align 4, !tbaa !9
  %1152 = sitofp i32 %1151 to double
  %1153 = load i32, ptr %17, align 4, !tbaa !9
  %1154 = sitofp i32 %1153 to double
  %1155 = fdiv double 1.000000e+00, %1154
  %1156 = call double @pow(double noundef %1152, double noundef %1155) #7
  %1157 = fadd double %1156, 9.999900e-01
  %1158 = fptosi double %1157 to i32
  store i32 %1158, ptr %49, align 4, !tbaa !9
  %1159 = load i32, ptr %17, align 4, !tbaa !9
  store i32 %1159, ptr %7, align 4, !tbaa !9
  br label %1160

1160:                                             ; preds = %1164, %1150
  %1161 = load i32, ptr %7, align 4, !tbaa !9
  %1162 = add nsw i32 %1161, -1
  store i32 %1162, ptr %7, align 4, !tbaa !9
  %1163 = icmp ne i32 %1161, 0
  br i1 %1163, label %1164, label %1168

1164:                                             ; preds = %1160
  %1165 = load i32, ptr %7, align 4, !tbaa !9
  %1166 = sext i32 %1165 to i64
  %1167 = getelementptr inbounds [200 x i32], ptr %50, i64 0, i64 %1166
  store i32 0, ptr %1167, align 4, !tbaa !9
  br label %1160, !llvm.loop !45

1168:                                             ; preds = %1160
  store i32 0, ptr %5, align 4, !tbaa !9
  br label %1169

1169:                                             ; preds = %1263, %1168
  %1170 = load i32, ptr %5, align 4, !tbaa !9
  %1171 = load i32, ptr %18, align 4, !tbaa !9
  %1172 = icmp slt i32 %1170, %1171
  br i1 %1172, label %1173, label %1266

1173:                                             ; preds = %1169
  %1174 = getelementptr inbounds [200 x double], ptr %42, i64 0, i64 0
  store ptr %1174, ptr %47, align 8, !tbaa !5
  store i32 0, ptr %7, align 4, !tbaa !9
  br label %1175

1175:                                             ; preds = %1224, %1173
  %1176 = load i32, ptr %7, align 4, !tbaa !9
  %1177 = load i32, ptr %17, align 4, !tbaa !9
  %1178 = icmp slt i32 %1176, %1177
  br i1 %1178, label %1179, label %1227

1179:                                             ; preds = %1175
  %1180 = load i32, ptr %7, align 4, !tbaa !9
  %1181 = icmp eq i32 %1180, 0
  br i1 %1181, label %1182, label %1196

1182:                                             ; preds = %1179
  %1183 = getelementptr inbounds [200 x i32], ptr %50, i64 0, i64 0
  %1184 = load i32, ptr %1183, align 16, !tbaa !9
  %1185 = sitofp i32 %1184 to double
  %1186 = load double, ptr %45, align 8, !tbaa !11
  %1187 = getelementptr inbounds [200 x i32], ptr %50, i64 0, i64 1
  %1188 = load i32, ptr %1187, align 4, !tbaa !9
  %1189 = sitofp i32 %1188 to double
  %1190 = load double, ptr %44, align 8, !tbaa !11
  %1191 = fneg double %1190
  %1192 = fmul double %1189, %1191
  %1193 = call double @llvm.fmuladd.f64(double %1185, double %1186, double %1192)
  %1194 = load ptr, ptr %47, align 8, !tbaa !5
  %1195 = getelementptr inbounds double, ptr %1194, i32 1
  store ptr %1195, ptr %47, align 8, !tbaa !5
  store double %1193, ptr %1194, align 8, !tbaa !11
  br label %1223

1196:                                             ; preds = %1179
  %1197 = load i32, ptr %7, align 4, !tbaa !9
  %1198 = icmp eq i32 %1197, 1
  br i1 %1198, label %1199, label %1212

1199:                                             ; preds = %1196
  %1200 = getelementptr inbounds [200 x i32], ptr %50, i64 0, i64 0
  %1201 = load i32, ptr %1200, align 16, !tbaa !9
  %1202 = sitofp i32 %1201 to double
  %1203 = load double, ptr %44, align 8, !tbaa !11
  %1204 = getelementptr inbounds [200 x i32], ptr %50, i64 0, i64 1
  %1205 = load i32, ptr %1204, align 4, !tbaa !9
  %1206 = sitofp i32 %1205 to double
  %1207 = load double, ptr %45, align 8, !tbaa !11
  %1208 = fmul double %1206, %1207
  %1209 = call double @llvm.fmuladd.f64(double %1202, double %1203, double %1208)
  %1210 = load ptr, ptr %47, align 8, !tbaa !5
  %1211 = getelementptr inbounds double, ptr %1210, i32 1
  store ptr %1211, ptr %47, align 8, !tbaa !5
  store double %1209, ptr %1210, align 8, !tbaa !11
  br label %1222

1212:                                             ; preds = %1196
  %1213 = load i32, ptr %7, align 4, !tbaa !9
  %1214 = sext i32 %1213 to i64
  %1215 = getelementptr inbounds [200 x i32], ptr %50, i64 0, i64 %1214
  %1216 = load i32, ptr %1215, align 4, !tbaa !9
  %1217 = sitofp i32 %1216 to double
  %1218 = load double, ptr %46, align 8, !tbaa !11
  %1219 = fmul double %1217, %1218
  %1220 = load ptr, ptr %47, align 8, !tbaa !5
  %1221 = getelementptr inbounds double, ptr %1220, i32 1
  store ptr %1221, ptr %47, align 8, !tbaa !5
  store double %1219, ptr %1220, align 8, !tbaa !11
  br label %1222

1222:                                             ; preds = %1212, %1199
  br label %1223

1223:                                             ; preds = %1222, %1182
  br label %1224

1224:                                             ; preds = %1223
  %1225 = load i32, ptr %7, align 4, !tbaa !9
  %1226 = add nsw i32 %1225, 1
  store i32 %1226, ptr %7, align 4, !tbaa !9
  br label %1175, !llvm.loop !46

1227:                                             ; preds = %1175
  %1228 = load i32, ptr %23, align 4, !tbaa !9
  %1229 = getelementptr inbounds [200 x double], ptr %42, i64 0, i64 0
  %1230 = load i32, ptr %17, align 4, !tbaa !9
  call void @qh_outcoord(i32 noundef %1228, ptr noundef %1229, i32 noundef %1230)
  %1231 = load i32, ptr %9, align 4, !tbaa !9
  %1232 = add nsw i32 %1231, 1
  store i32 %1232, ptr %9, align 4, !tbaa !9
  %1233 = load i32, ptr %10, align 4, !tbaa !9
  %1234 = icmp slt i32 %1231, %1233
  br i1 %1234, label %1235, label %1241

1235:                                             ; preds = %1227
  %1236 = load i32, ptr %11, align 4, !tbaa !9
  %1237 = load double, ptr %41, align 8, !tbaa !11
  %1238 = load i32, ptr %23, align 4, !tbaa !9
  %1239 = getelementptr inbounds [200 x double], ptr %42, i64 0, i64 0
  %1240 = load i32, ptr %17, align 4, !tbaa !9
  call void @qh_outcoincident(i32 noundef %1236, double noundef %1237, i32 noundef %1238, ptr noundef %1239, i32 noundef %1240)
  br label %1241

1241:                                             ; preds = %1235, %1227
  store i32 0, ptr %7, align 4, !tbaa !9
  br label %1242

1242:                                             ; preds = %1259, %1241
  %1243 = load i32, ptr %7, align 4, !tbaa !9
  %1244 = load i32, ptr %17, align 4, !tbaa !9
  %1245 = icmp slt i32 %1243, %1244
  br i1 %1245, label %1246, label %1262

1246:                                             ; preds = %1242
  %1247 = load i32, ptr %7, align 4, !tbaa !9
  %1248 = sext i32 %1247 to i64
  %1249 = getelementptr inbounds [200 x i32], ptr %50, i64 0, i64 %1248
  %1250 = load i32, ptr %1249, align 4, !tbaa !9
  %1251 = add nsw i32 %1250, 1
  store i32 %1251, ptr %1249, align 4, !tbaa !9
  %1252 = load i32, ptr %49, align 4, !tbaa !9
  %1253 = icmp slt i32 %1251, %1252
  br i1 %1253, label %1254, label %1255

1254:                                             ; preds = %1246
  br label %1262

1255:                                             ; preds = %1246
  %1256 = load i32, ptr %7, align 4, !tbaa !9
  %1257 = sext i32 %1256 to i64
  %1258 = getelementptr inbounds [200 x i32], ptr %50, i64 0, i64 %1257
  store i32 0, ptr %1258, align 4, !tbaa !9
  br label %1259

1259:                                             ; preds = %1255
  %1260 = load i32, ptr %7, align 4, !tbaa !9
  %1261 = add nsw i32 %1260, 1
  store i32 %1261, ptr %7, align 4, !tbaa !9
  br label %1242, !llvm.loop !47

1262:                                             ; preds = %1254, %1242
  br label %1263

1263:                                             ; preds = %1262
  %1264 = load i32, ptr %5, align 4, !tbaa !9
  %1265 = add nsw i32 %1264, 1
  store i32 %1265, ptr %5, align 4, !tbaa !9
  br label %1169, !llvm.loop !48

1266:                                             ; preds = %1169
  br label %2097

1267:                                             ; preds = %1147
  %1268 = load i32, ptr %25, align 4, !tbaa !9
  %1269 = icmp ne i32 %1268, 0
  br i1 %1269, label %1270, label %1406

1270:                                             ; preds = %1267
  %1271 = load i32, ptr %24, align 4, !tbaa !9
  %1272 = icmp ne i32 %1271, 0
  br i1 %1272, label %1406, label %1273

1273:                                             ; preds = %1270
  %1274 = load i32, ptr %17, align 4, !tbaa !9
  %1275 = icmp ne i32 %1274, 2
  br i1 %1275, label %1276, label %1281

1276:                                             ; preds = %1273
  %1277 = load i32, ptr %17, align 4, !tbaa !9
  %1278 = icmp ne i32 %1277, 3
  br i1 %1278, label %1279, label %1281

1279:                                             ; preds = %1276
  %1280 = load ptr, ptr getelementptr inbounds (%struct.rboxT, ptr @rbox, i32 0, i32 1), align 8, !tbaa !24
  call void (ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %1280, i32 noundef 6197, ptr noundef @.str.26)
  call void @qh_errexit_rbox(i32 noundef 1)
  br label %1281

1281:                                             ; preds = %1279, %1276, %1273
  %1282 = load i32, ptr %22, align 4, !tbaa !9
  %1283 = icmp ne i32 %1282, 0
  br i1 %1283, label %1284, label %1287

1284:                                             ; preds = %1281
  %1285 = load double, ptr %40, align 8, !tbaa !11
  %1286 = fcmp oeq double %1285, 0.000000e+00
  br i1 %1286, label %1287, label %1288

1287:                                             ; preds = %1284, %1281
  store i32 1, ptr %22, align 4, !tbaa !9
  store double 1.000000e+00, ptr %40, align 8, !tbaa !11
  br label %1288

1288:                                             ; preds = %1287, %1284
  %1289 = load i32, ptr %17, align 4, !tbaa !9
  %1290 = icmp eq i32 %1289, 3
  br i1 %1290, label %1291, label %1307

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

1294:                                             ; preds = %1291
  call void @qh_out1(double noundef 1.000000e+00)
  br label %1295

1295:                                             ; preds = %1294, %1291
  %1296 = load double, ptr %64, align 8, !tbaa !11
  %1297 = fneg double %1296
  call void @qh_out3n(double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef %1297)
  %1298 = load i32, ptr %28, align 4, !tbaa !9
  %1299 = icmp ne i32 %1298, 0
  br i1 %1299, label %1306, label %1300

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

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

1304:                                             ; preds = %1303, %1300
  %1305 = load double, ptr %64, align 8, !tbaa !11
  call void @qh_out3n(double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef %1305)
  br label %1306

1306:                                             ; preds = %1304, %1295
  br label %1307

1307:                                             ; preds = %1306, %1288
  store double 0.000000e+00, ptr %59, align 8, !tbaa !11
  %1308 = load i32, ptr %18, align 4, !tbaa !9
  %1309 = sitofp i32 %1308 to double
  %1310 = fdiv double 0x401921FB54442D18, %1309
  store double %1310, ptr %58, align 8, !tbaa !11
  store i32 0, ptr %5, align 4, !tbaa !9
  br label %1311

1311:                                             ; preds = %1402, %1307
  %1312 = load i32, ptr %5, align 4, !tbaa !9
  %1313 = load i32, ptr %18, align 4, !tbaa !9
  %1314 = icmp slt i32 %1312, %1313
  br i1 %1314, label %1315, label %1405

1315:                                             ; preds = %1311
  %1316 = load double, ptr %58, align 8, !tbaa !11
  %1317 = load double, ptr %59, align 8, !tbaa !11
  %1318 = fadd double %1317, %1316
  store double %1318, ptr %59, align 8, !tbaa !11
  %1319 = load double, ptr %40, align 8, !tbaa !11
  %1320 = load double, ptr %59, align 8, !tbaa !11
  %1321 = call double @cos(double noundef %1320) #7
  %1322 = fmul double %1319, %1321
  store double %1322, ptr %60, align 8, !tbaa !11
  %1323 = load double, ptr %40, align 8, !tbaa !11
  %1324 = load double, ptr %59, align 8, !tbaa !11
  %1325 = call double @sin(double noundef %1324) #7
  %1326 = fmul double %1323, %1325
  store double %1326, ptr %61, align 8, !tbaa !11
  %1327 = load i32, ptr %17, align 4, !tbaa !9
  %1328 = icmp eq i32 %1327, 2
  br i1 %1328, label %1329, label %1340

1329:                                             ; preds = %1315
  %1330 = load i32, ptr %23, align 4, !tbaa !9
  %1331 = icmp ne i32 %1330, 0
  br i1 %1331, label %1332, label %1333

1332:                                             ; preds = %1329
  call void @qh_out1(double noundef 1.000000e+00)
  br label %1333

1333:                                             ; preds = %1332, %1329
  %1334 = load double, ptr %60, align 8, !tbaa !11
  %1335 = load double, ptr %64, align 8, !tbaa !11
  %1336 = fmul double %1334, %1335
  %1337 = load double, ptr %61, align 8, !tbaa !11
  %1338 = load double, ptr %64, align 8, !tbaa !11
  %1339 = fmul double %1337, %1338
  call void @qh_out2n(double noundef %1336, double noundef %1339)
  br label %1401

1340:                                             ; preds = %1315
  %1341 = load double, ptr %60, align 8, !tbaa !11
  %1342 = load double, ptr %60, align 8, !tbaa !11
  %1343 = call double @llvm.fmuladd.f64(double %1341, double %1342, double 1.000000e+00)
  %1344 = load double, ptr %61, align 8, !tbaa !11
  %1345 = load double, ptr %61, align 8, !tbaa !11
  %1346 = call double @llvm.fmuladd.f64(double %1344, double %1345, double %1343)
  %1347 = call double @sqrt(double noundef %1346) #7
  store double %1347, ptr %51, align 8, !tbaa !11
  %1348 = load i32, ptr %23, align 4, !tbaa !9
  %1349 = icmp ne i32 %1348, 0
  br i1 %1349, label %1350, label %1351

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

1351:                                             ; preds = %1350, %1340
  %1352 = load double, ptr %64, align 8, !tbaa !11
  %1353 = load double, ptr %60, align 8, !tbaa !11
  %1354 = fmul double %1352, %1353
  %1355 = load double, ptr %51, align 8, !tbaa !11
  %1356 = fdiv double %1354, %1355
  %1357 = load double, ptr %64, align 8, !tbaa !11
  %1358 = load double, ptr %61, align 8, !tbaa !11
  %1359 = fmul double %1357, %1358
  %1360 = load double, ptr %51, align 8, !tbaa !11
  %1361 = fdiv double %1359, %1360
  %1362 = load double, ptr %64, align 8, !tbaa !11
  %1363 = load double, ptr %51, align 8, !tbaa !11
  %1364 = fdiv double %1362, %1363
  call void @qh_out3n(double noundef %1356, double noundef %1361, double noundef %1364)
  %1365 = load i32, ptr %28, align 4, !tbaa !9
  %1366 = icmp ne i32 %1365, 0
  br i1 %1366, label %1367, label %1400

1367:                                             ; preds = %1351
  %1368 = load double, ptr %39, align 8, !tbaa !11
  %1369 = fsub double 1.000000e+00, %1368
  %1370 = load double, ptr %60, align 8, !tbaa !11
  %1371 = fmul double %1370, %1369
  store double %1371, ptr %60, align 8, !tbaa !11
  %1372 = load double, ptr %39, align 8, !tbaa !11
  %1373 = fsub double 1.000000e+00, %1372
  %1374 = load double, ptr %61, align 8, !tbaa !11
  %1375 = fmul double %1374, %1373
  store double %1375, ptr %61, align 8, !tbaa !11
  %1376 = load double, ptr %60, align 8, !tbaa !11
  %1377 = load double, ptr %60, align 8, !tbaa !11
  %1378 = call double @llvm.fmuladd.f64(double %1376, double %1377, double 1.000000e+00)
  %1379 = load double, ptr %61, align 8, !tbaa !11
  %1380 = load double, ptr %61, align 8, !tbaa !11
  %1381 = call double @llvm.fmuladd.f64(double %1379, double %1380, double %1378)
  %1382 = call double @sqrt(double noundef %1381) #7
  store double %1382, ptr %51, align 8, !tbaa !11
  %1383 = load i32, ptr %23, align 4, !tbaa !9
  %1384 = icmp ne i32 %1383, 0
  br i1 %1384, label %1385, label %1386

1385:                                             ; preds = %1367
  call void @qh_out1(double noundef 1.000000e+00)
  br label %1386

1386:                                             ; preds = %1385, %1367
  %1387 = load double, ptr %64, align 8, !tbaa !11
  %1388 = load double, ptr %60, align 8, !tbaa !11
  %1389 = fmul double %1387, %1388
  %1390 = load double, ptr %51, align 8, !tbaa !11
  %1391 = fdiv double %1389, %1390
  %1392 = load double, ptr %64, align 8, !tbaa !11
  %1393 = load double, ptr %61, align 8, !tbaa !11
  %1394 = fmul double %1392, %1393
  %1395 = load double, ptr %51, align 8, !tbaa !11
  %1396 = fdiv double %1394, %1395
  %1397 = load double, ptr %64, align 8, !tbaa !11
  %1398 = load double, ptr %51, align 8, !tbaa !11
  %1399 = fdiv double %1397, %1398
  call void @qh_out3n(double noundef %1391, double noundef %1396, double noundef %1399)
  br label %1400

1400:                                             ; preds = %1386, %1351
  br label %1401

1401:                                             ; preds = %1400, %1333
  br label %1402

1402:                                             ; preds = %1401
  %1403 = load i32, ptr %5, align 4, !tbaa !9
  %1404 = add nsw i32 %1403, 1
  store i32 %1404, ptr %5, align 4, !tbaa !9
  br label %1311, !llvm.loop !49

1405:                                             ; preds = %1311
  br label %2096

1406:                                             ; preds = %1270, %1267
  %1407 = load i32, ptr %25, align 4, !tbaa !9
  %1408 = icmp ne i32 %1407, 0
  br i1 %1408, label %1409, label %1477

1409:                                             ; preds = %1406
  %1410 = load i32, ptr %24, align 4, !tbaa !9
  %1411 = icmp ne i32 %1410, 0
  br i1 %1411, label %1412, label %1477

1412:                                             ; preds = %1409
  %1413 = load i32, ptr %17, align 4, !tbaa !9
  %1414 = icmp eq i32 %1413, 2
  br i1 %1414, label %1415, label %1477

1415:                                             ; preds = %1412
  call void @llvm.lifetime.start.p0(i64 8, ptr %72) #7
  %1416 = load double, ptr %56, align 8, !tbaa !11
  store double %1416, ptr %59, align 8, !tbaa !11
  %1417 = load double, ptr %56, align 8, !tbaa !11
  %1418 = fmul double 2.000000e+00, %1417
  %1419 = load i32, ptr %18, align 4, !tbaa !9
  %1420 = sub nsw i32 %1419, 1
  %1421 = sitofp i32 %1420 to double
  %1422 = fdiv double %1418, %1421
  store double %1422, ptr %58, align 8, !tbaa !11
  %1423 = load double, ptr %56, align 8, !tbaa !11
  %1424 = call double @cos(double noundef %1423) #7
  store double %1424, ptr %72, align 8, !tbaa !11
  store i32 0, ptr %5, align 4, !tbaa !9
  br label %1425

1425:                                             ; preds = %1470, %1415
  %1426 = load i32, ptr %5, align 4, !tbaa !9
  %1427 = load i32, ptr %18, align 4, !tbaa !9
  %1428 = icmp slt i32 %1426, %1427
  br i1 %1428, label %1429, label %1476

1429:                                             ; preds = %1425
  %1430 = load double, ptr %40, align 8, !tbaa !11
  %1431 = load double, ptr %59, align 8, !tbaa !11
  %1432 = call double @sin(double noundef %1431) #7
  %1433 = fmul double %1430, %1432
  store double %1433, ptr %60, align 8, !tbaa !11
  %1434 = load double, ptr %40, align 8, !tbaa !11
  %1435 = load double, ptr %59, align 8, !tbaa !11
  %1436 = call double @cos(double noundef %1435) #7
  %1437 = load double, ptr %72, align 8, !tbaa !11
  %1438 = fsub double %1436, %1437
  %1439 = fmul double %1434, %1438
  store double %1439, ptr %61, align 8, !tbaa !11
  %1440 = load i32, ptr %23, align 4, !tbaa !9
  %1441 = icmp ne i32 %1440, 0
  br i1 %1441, label %1442, label %1443

1442:                                             ; preds = %1429
  call void @qh_out1(double noundef 1.000000e+00)
  br label %1443

1443:                                             ; preds = %1442, %1429
  %1444 = load double, ptr %60, align 8, !tbaa !11
  %1445 = load double, ptr %64, align 8, !tbaa !11
  %1446 = fmul double %1444, %1445
  %1447 = load double, ptr %61, align 8, !tbaa !11
  %1448 = load double, ptr %64, align 8, !tbaa !11
  %1449 = fmul double %1447, %1448
  call void @qh_out2n(double noundef %1446, double noundef %1449)
  %1450 = load i32, ptr %5, align 4, !tbaa !9
  %1451 = icmp ne i32 %1450, 0
  br i1 %1451, label %1452, label %1469

1452:                                             ; preds = %1443
  %1453 = load i32, ptr %5, align 4, !tbaa !9
  %1454 = load i32, ptr %18, align 4, !tbaa !9
  %1455 = sub nsw i32 %1454, 1
  %1456 = icmp ne i32 %1453, %1455
  br i1 %1456, label %1457, label %1469

1457:                                             ; preds = %1452
  %1458 = load i32, ptr %23, align 4, !tbaa !9
  %1459 = icmp ne i32 %1458, 0
  br i1 %1459, label %1460, label %1461

1460:                                             ; preds = %1457
  call void @qh_out1(double noundef 1.000000e+00)
  br label %1461

1461:                                             ; preds = %1460, %1457
  %1462 = load double, ptr %60, align 8, !tbaa !11
  %1463 = load double, ptr %64, align 8, !tbaa !11
  %1464 = fmul double %1462, %1463
  %1465 = load double, ptr %61, align 8, !tbaa !11
  %1466 = fneg double %1465
  %1467 = load double, ptr %64, align 8, !tbaa !11
  %1468 = fmul double %1466, %1467
  call void @qh_out2n(double noundef %1464, double noundef %1468)
  br label %1469

1469:                                             ; preds = %1461, %1452, %1443
  br label %1470

1470:                                             ; preds = %1469
  %1471 = load i32, ptr %5, align 4, !tbaa !9
  %1472 = add nsw i32 %1471, 1
  store i32 %1472, ptr %5, align 4, !tbaa !9
  %1473 = load double, ptr %58, align 8, !tbaa !11
  %1474 = load double, ptr %59, align 8, !tbaa !11
  %1475 = fsub double %1474, %1473
  store double %1475, ptr %59, align 8, !tbaa !11
  br label %1425, !llvm.loop !50

1476:                                             ; preds = %1425
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #7
  br label %2095

1477:                                             ; preds = %1412, %1409, %1406
  %1478 = load i32, ptr %25, align 4, !tbaa !9
  %1479 = icmp ne i32 %1478, 0
  br i1 %1479, label %1480, label %1572

1480:                                             ; preds = %1477
  %1481 = load i32, ptr %24, align 4, !tbaa !9
  %1482 = icmp ne i32 %1481, 0
  br i1 %1482, label %1483, label %1572

1483:                                             ; preds = %1480
  %1484 = load i32, ptr %17, align 4, !tbaa !9
  %1485 = icmp ne i32 %1484, 2
  br i1 %1485, label %1486, label %1572

1486:                                             ; preds = %1483
  %1487 = load i32, ptr %17, align 4, !tbaa !9
  %1488 = icmp ne i32 %1487, 3
  br i1 %1488, label %1489, label %1491

1489:                                             ; preds = %1486
  %1490 = load ptr, ptr getelementptr inbounds (%struct.rboxT, ptr @rbox, i32 0, i32 1), align 8, !tbaa !24
  call void (ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %1490, i32 noundef 6198, ptr noundef @.str.26)
  call void @qh_errexit_rbox(i32 noundef 1)
  br label %1491

1491:                                             ; preds = %1489, %1486
  store double 0.000000e+00, ptr %59, align 8, !tbaa !11
  %1492 = load i32, ptr %18, align 4, !tbaa !9
  %1493 = sitofp i32 %1492 to double
  %1494 = fdiv double 0x401921FB54442D18, %1493
  store double %1494, ptr %58, align 8, !tbaa !11
  %1495 = load i32, ptr %28, align 4, !tbaa !9
  %1496 = icmp ne i32 %1495, 0
  br i1 %1496, label %1498, label %1497

1497:                                             ; preds = %1491
  store i32 1, ptr %28, align 4, !tbaa !9
  store double 5.000000e-01, ptr %39, align 8, !tbaa !11
  br label %1498

1498:                                             ; preds = %1497, %1491
  %1499 = load double, ptr %40, align 8, !tbaa !11
  %1500 = load double, ptr %40, align 8, !tbaa !11
  %1501 = load double, ptr %39, align 8, !tbaa !11
  %1502 = fsub double 1.000000e+00, %1501
  %1503 = load double, ptr %39, align 8, !tbaa !11
  %1504 = fsub double 1.000000e+00, %1503
  %1505 = fmul double %1502, %1504
  %1506 = fneg double %1505
  %1507 = call double @llvm.fmuladd.f64(double %1499, double %1500, double %1506)
  %1508 = call double @sqrt(double noundef %1507) #7
  %1509 = load double, ptr %57, align 8, !tbaa !11
  %1510 = fsub double %1508, %1509
  store double %1510, ptr %43, align 8, !tbaa !11
  store i32 0, ptr %5, align 4, !tbaa !9
  br label %1511

1511:                                             ; preds = %1565, %1498
  %1512 = load i32, ptr %5, align 4, !tbaa !9
  %1513 = load i32, ptr %18, align 4, !tbaa !9
  %1514 = icmp slt i32 %1512, %1513
  br i1 %1514, label %1515, label %1571

1515:                                             ; preds = %1511
  %1516 = load double, ptr %59, align 8, !tbaa !11
  %1517 = call double @cos(double noundef %1516) #7
  store double %1517, ptr %60, align 8, !tbaa !11
  %1518 = load double, ptr %59, align 8, !tbaa !11
  %1519 = call double @sin(double noundef %1518) #7
  store double %1519, ptr %61, align 8, !tbaa !11
  %1520 = load i32, ptr %23, align 4, !tbaa !9
  %1521 = icmp ne i32 %1520, 0
  br i1 %1521, label %1522, label %1523

1522:                                             ; preds = %1515
  call void @qh_out1(double noundef 1.000000e+00)
  br label %1523

1523:                                             ; preds = %1522, %1515
  %1524 = load double, ptr %64, align 8, !tbaa !11
  %1525 = load double, ptr %60, align 8, !tbaa !11
  %1526 = fmul double %1524, %1525
  %1527 = load double, ptr %64, align 8, !tbaa !11
  %1528 = load double, ptr %61, align 8, !tbaa !11
  %1529 = fmul double %1527, %1528
  call void @qh_out3n(double noundef %1526, double noundef %1529, double noundef 0.000000e+00)
  %1530 = load double, ptr %39, align 8, !tbaa !11
  %1531 = fsub double 1.000000e+00, %1530
  %1532 = load double, ptr %60, align 8, !tbaa !11
  %1533 = fmul double %1532, %1531
  store double %1533, ptr %60, align 8, !tbaa !11
  %1534 = load double, ptr %39, align 8, !tbaa !11
  %1535 = fsub double 1.000000e+00, %1534
  %1536 = load double, ptr %61, align 8, !tbaa !11
  %1537 = fmul double %1536, %1535
  store double %1537, ptr %61, align 8, !tbaa !11
  %1538 = load i32, ptr %23, align 4, !tbaa !9
  %1539 = icmp ne i32 %1538, 0
  br i1 %1539, label %1540, label %1541

1540:                                             ; preds = %1523
  call void @qh_out1(double noundef 1.000000e+00)
  br label %1541

1541:                                             ; preds = %1540, %1523
  %1542 = load double, ptr %64, align 8, !tbaa !11
  %1543 = load double, ptr %60, align 8, !tbaa !11
  %1544 = fmul double %1542, %1543
  %1545 = load double, ptr %64, align 8, !tbaa !11
  %1546 = load double, ptr %61, align 8, !tbaa !11
  %1547 = fmul double %1545, %1546
  %1548 = load double, ptr %64, align 8, !tbaa !11
  %1549 = load double, ptr %43, align 8, !tbaa !11
  %1550 = fmul double %1548, %1549
  call void @qh_out3n(double noundef %1544, double noundef %1547, double noundef %1550)
  %1551 = load i32, ptr %23, align 4, !tbaa !9
  %1552 = icmp ne i32 %1551, 0
  br i1 %1552, label %1553, label %1554

1553:                                             ; preds = %1541
  call void @qh_out1(double noundef 1.000000e+00)
  br label %1554

1554:                                             ; preds = %1553, %1541
  %1555 = load double, ptr %64, align 8, !tbaa !11
  %1556 = load double, ptr %60, align 8, !tbaa !11
  %1557 = fmul double %1555, %1556
  %1558 = load double, ptr %64, align 8, !tbaa !11
  %1559 = load double, ptr %61, align 8, !tbaa !11
  %1560 = fmul double %1558, %1559
  %1561 = load double, ptr %64, align 8, !tbaa !11
  %1562 = fneg double %1561
  %1563 = load double, ptr %43, align 8, !tbaa !11
  %1564 = fmul double %1562, %1563
  call void @qh_out3n(double noundef %1557, double noundef %1560, double noundef %1564)
  br label %1565

1565:                                             ; preds = %1554
  %1566 = load i32, ptr %5, align 4, !tbaa !9
  %1567 = add nsw i32 %1566, 1
  store i32 %1567, ptr %5, align 4, !tbaa !9
  %1568 = load double, ptr %58, align 8, !tbaa !11
  %1569 = load double, ptr %59, align 8, !tbaa !11
  %1570 = fadd double %1569, %1568
  store double %1570, ptr %59, align 8, !tbaa !11
  br label %1511, !llvm.loop !51

1571:                                             ; preds = %1511
  br label %2094

1572:                                             ; preds = %1483, %1480, %1477
  %1573 = load i32, ptr %22, align 4, !tbaa !9
  %1574 = icmp ne i32 %1573, 0
  br i1 %1574, label %1575, label %1594

1575:                                             ; preds = %1572
  %1576 = load i32, ptr %17, align 4, !tbaa !9
  %1577 = sub nsw i32 %1576, 1
  store i32 %1577, ptr %8, align 4, !tbaa !9
  %1578 = load i32, ptr %23, align 4, !tbaa !9
  %1579 = icmp ne i32 %1578, 0
  br i1 %1579, label %1580, label %1581

1580:                                             ; preds = %1575
  call void @qh_out1(double noundef 1.000000e+00)
  br label %1581

1581:                                             ; preds = %1580, %1575
  store i32 0, ptr %6, align 4, !tbaa !9
  br label %1582

1582:                                             ; preds = %1587, %1581
  %1583 = load i32, ptr %6, align 4, !tbaa !9
  %1584 = load i32, ptr %8, align 4, !tbaa !9
  %1585 = icmp slt i32 %1583, %1584
  br i1 %1585, label %1586, label %1590

1586:                                             ; preds = %1582
  call void @qh_out1(double noundef 0.000000e+00)
  br label %1587

1587:                                             ; preds = %1586
  %1588 = load i32, ptr %6, align 4, !tbaa !9
  %1589 = add nsw i32 %1588, 1
  store i32 %1589, ptr %6, align 4, !tbaa !9
  br label %1582, !llvm.loop !52

1590:                                             ; preds = %1582
  %1591 = load double, ptr %64, align 8, !tbaa !11
  %1592 = fneg double %1591
  call void @qh_out1(double noundef %1592)
  %1593 = load ptr, ptr @rbox, align 8, !tbaa !28
  call void (ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %1593, i32 noundef 9398, ptr noundef @.str.24)
  br label %1603

1594:                                             ; preds = %1572
  %1595 = load i32, ptr %24, align 4, !tbaa !9
  %1596 = icmp ne i32 %1595, 0
  br i1 %1596, label %1597, label %1600

1597:                                             ; preds = %1594
  %1598 = load i32, ptr %17, align 4, !tbaa !9
  %1599 = sub nsw i32 %1598, 1
  store i32 %1599, ptr %8, align 4, !tbaa !9
  br label %1602

1600:                                             ; preds = %1594
  %1601 = load i32, ptr %17, align 4, !tbaa !9
  store i32 %1601, ptr %8, align 4, !tbaa !9
  br label %1602

1602:                                             ; preds = %1600, %1597
  br label %1603

1603:                                             ; preds = %1602, %1590
  store i32 0, ptr %5, align 4, !tbaa !9
  br label %1604

1604:                                             ; preds = %2090, %1603
  %1605 = load i32, ptr %5, align 4, !tbaa !9
  %1606 = load i32, ptr %18, align 4, !tbaa !9
  %1607 = icmp slt i32 %1605, %1606
  br i1 %1607, label %1608, label %2093

1608:                                             ; preds = %1604
  store double 0.000000e+00, ptr %51, align 8, !tbaa !11
  store i32 0, ptr %6, align 4, !tbaa !9
  br label %1609

1609:                                             ; preds = %1634, %1608
  %1610 = load i32, ptr %6, align 4, !tbaa !9
  %1611 = load i32, ptr %8, align 4, !tbaa !9
  %1612 = icmp slt i32 %1610, %1611
  br i1 %1612, label %1613, label %1637

1613:                                             ; preds = %1609
  %1614 = call i32 @qh_rand()
  %1615 = sitofp i32 %1614 to double
  store double %1615, ptr %53, align 8, !tbaa !11
  %1616 = load double, ptr %53, align 8, !tbaa !11
  %1617 = fmul double 2.000000e+00, %1616
  %1618 = load double, ptr %65, align 8, !tbaa !11
  %1619 = fdiv double %1617, %1618
  %1620 = fsub double %1619, 1.000000e+00
  %1621 = load i32, ptr %6, align 4, !tbaa !9
  %1622 = sext i32 %1621 to i64
  %1623 = getelementptr inbounds [200 x double], ptr %42, i64 0, i64 %1622
  store double %1620, ptr %1623, align 8, !tbaa !11
  %1624 = load i32, ptr %6, align 4, !tbaa !9
  %1625 = sext i32 %1624 to i64
  %1626 = getelementptr inbounds [200 x double], ptr %42, i64 0, i64 %1625
  %1627 = load double, ptr %1626, align 8, !tbaa !11
  %1628 = load i32, ptr %6, align 4, !tbaa !9
  %1629 = sext i32 %1628 to i64
  %1630 = getelementptr inbounds [200 x double], ptr %42, i64 0, i64 %1629
  %1631 = load double, ptr %1630, align 8, !tbaa !11
  %1632 = load double, ptr %51, align 8, !tbaa !11
  %1633 = call double @llvm.fmuladd.f64(double %1627, double %1631, double %1632)
  store double %1633, ptr %51, align 8, !tbaa !11
  br label %1634

1634:                                             ; preds = %1613
  %1635 = load i32, ptr %6, align 4, !tbaa !9
  %1636 = add nsw i32 %1635, 1
  store i32 %1636, ptr %6, align 4, !tbaa !9
  br label %1609, !llvm.loop !53

1637:                                             ; preds = %1609
  %1638 = load double, ptr %51, align 8, !tbaa !11
  %1639 = call double @sqrt(double noundef %1638) #7
  store double %1639, ptr %51, align 8, !tbaa !11
  %1640 = load i32, ptr %22, align 4, !tbaa !9
  %1641 = icmp ne i32 %1640, 0
  br i1 %1641, label %1642, label %1678

1642:                                             ; preds = %1637
  %1643 = load i32, ptr %28, align 4, !tbaa !9
  %1644 = icmp ne i32 %1643, 0
  br i1 %1644, label %1646, label %1645

1645:                                             ; preds = %1642
  store i32 1, ptr %28, align 4, !tbaa !9
  store double 1.000000e+00, ptr %39, align 8, !tbaa !11
  br label %1646

1646:                                             ; preds = %1645, %1642
  %1647 = call i32 @qh_rand()
  %1648 = sitofp i32 %1647 to double
  store double %1648, ptr %53, align 8, !tbaa !11
  %1649 = load double, ptr %39, align 8, !tbaa !11
  %1650 = load double, ptr %53, align 8, !tbaa !11
  %1651 = fmul double %1649, %1650
  %1652 = load double, ptr %65, align 8, !tbaa !11
  %1653 = fdiv double %1651, %1652
  %1654 = fsub double 1.000000e+00, %1653
  store double %1654, ptr %54, align 8, !tbaa !11
  %1655 = load double, ptr %40, align 8, !tbaa !11
  %1656 = load double, ptr %54, align 8, !tbaa !11
  %1657 = fmul double %1655, %1656
  %1658 = load double, ptr %51, align 8, !tbaa !11
  %1659 = fdiv double %1657, %1658
  store double %1659, ptr %52, align 8, !tbaa !11
  store i32 0, ptr %6, align 4, !tbaa !9
  br label %1660

1660:                                             ; preds = %1674, %1646
  %1661 = load i32, ptr %6, align 4, !tbaa !9
  %1662 = load i32, ptr %8, align 4, !tbaa !9
  %1663 = icmp slt i32 %1661, %1662
  br i1 %1663, label %1664, label %1677

1664:                                             ; preds = %1660
  %1665 = load double, ptr %52, align 8, !tbaa !11
  %1666 = load i32, ptr %6, align 4, !tbaa !9
  %1667 = sext i32 %1666 to i64
  %1668 = getelementptr inbounds [200 x double], ptr %42, i64 0, i64 %1667
  %1669 = load double, ptr %1668, align 8, !tbaa !11
  %1670 = fmul double %1665, %1669
  %1671 = load i32, ptr %6, align 4, !tbaa !9
  %1672 = sext i32 %1671 to i64
  %1673 = getelementptr inbounds [200 x double], ptr %42, i64 0, i64 %1672
  store double %1670, ptr %1673, align 8, !tbaa !11
  br label %1674

1674:                                             ; preds = %1664
  %1675 = load i32, ptr %6, align 4, !tbaa !9
  %1676 = add nsw i32 %1675, 1
  store i32 %1676, ptr %6, align 4, !tbaa !9
  br label %1660, !llvm.loop !54

1677:                                             ; preds = %1660
  br label %1838

1678:                                             ; preds = %1637
  %1679 = load i32, ptr %24, align 4, !tbaa !9
  %1680 = icmp ne i32 %1679, 0
  br i1 %1680, label %1681, label %1718

1681:                                             ; preds = %1678
  %1682 = load i32, ptr %21, align 4, !tbaa !9
  %1683 = icmp ne i32 %1682, 0
  br i1 %1683, label %1684, label %1718

1684:                                             ; preds = %1681
  %1685 = load i32, ptr %28, align 4, !tbaa !9
  %1686 = icmp ne i32 %1685, 0
  br i1 %1686, label %1688, label %1687

1687:                                             ; preds = %1684
  store i32 1, ptr %28, align 4, !tbaa !9
  store double 1.000000e+00, ptr %39, align 8, !tbaa !11
  br label %1688

1688:                                             ; preds = %1687, %1684
  %1689 = call i32 @qh_rand()
  %1690 = sitofp i32 %1689 to double
  store double %1690, ptr %53, align 8, !tbaa !11
  %1691 = load double, ptr %39, align 8, !tbaa !11
  %1692 = load double, ptr %53, align 8, !tbaa !11
  %1693 = fmul double %1691, %1692
  %1694 = load double, ptr %65, align 8, !tbaa !11
  %1695 = fdiv double %1693, %1694
  %1696 = fsub double 1.000000e+00, %1695
  store double %1696, ptr %54, align 8, !tbaa !11
  %1697 = load double, ptr %54, align 8, !tbaa !11
  %1698 = load double, ptr %51, align 8, !tbaa !11
  %1699 = fdiv double %1697, %1698
  store double %1699, ptr %52, align 8, !tbaa !11
  store i32 0, ptr %6, align 4, !tbaa !9
  br label %1700

1700:                                             ; preds = %1714, %1688
  %1701 = load i32, ptr %6, align 4, !tbaa !9
  %1702 = load i32, ptr %8, align 4, !tbaa !9
  %1703 = icmp slt i32 %1701, %1702
  br i1 %1703, label %1704, label %1717

1704:                                             ; preds = %1700
  %1705 = load double, ptr %52, align 8, !tbaa !11
  %1706 = load i32, ptr %6, align 4, !tbaa !9
  %1707 = sext i32 %1706 to i64
  %1708 = getelementptr inbounds [200 x double], ptr %42, i64 0, i64 %1707
  %1709 = load double, ptr %1708, align 8, !tbaa !11
  %1710 = fmul double %1705, %1709
  %1711 = load i32, ptr %6, align 4, !tbaa !9
  %1712 = sext i32 %1711 to i64
  %1713 = getelementptr inbounds [200 x double], ptr %42, i64 0, i64 %1712
  store double %1710, ptr %1713, align 8, !tbaa !11
  br label %1714

1714:                                             ; preds = %1704
  %1715 = load i32, ptr %6, align 4, !tbaa !9
  %1716 = add nsw i32 %1715, 1
  store i32 %1716, ptr %6, align 4, !tbaa !9
  br label %1700, !llvm.loop !55

1717:                                             ; preds = %1700
  br label %1837

1718:                                             ; preds = %1681, %1678
  %1719 = load i32, ptr %24, align 4, !tbaa !9
  %1720 = icmp ne i32 %1719, 0
  br i1 %1720, label %1721, label %1760

1721:                                             ; preds = %1718
  %1722 = load i32, ptr %21, align 4, !tbaa !9
  %1723 = icmp ne i32 %1722, 0
  br i1 %1723, label %1760, label %1724

1724:                                             ; preds = %1721
  %1725 = load i32, ptr %28, align 4, !tbaa !9
  %1726 = icmp ne i32 %1725, 0
  br i1 %1726, label %1728, label %1727

1727:                                             ; preds = %1724
  store i32 1, ptr %28, align 4, !tbaa !9
  store double 1.000000e+00, ptr %39, align 8, !tbaa !11
  br label %1728

1728:                                             ; preds = %1727, %1724
  %1729 = call i32 @qh_rand()
  %1730 = load i32, ptr %8, align 4, !tbaa !9
  %1731 = srem i32 %1729, %1730
  store i32 %1731, ptr %6, align 4, !tbaa !9
  %1732 = load i32, ptr %6, align 4, !tbaa !9
  %1733 = sext i32 %1732 to i64
  %1734 = getelementptr inbounds [200 x double], ptr %42, i64 0, i64 %1733
  %1735 = load double, ptr %1734, align 8, !tbaa !11
  %1736 = fcmp olt double %1735, 0.000000e+00
  br i1 %1736, label %1737, label %1748

1737:                                             ; preds = %1728
  %1738 = load i32, ptr %6, align 4, !tbaa !9
  %1739 = sext i32 %1738 to i64
  %1740 = getelementptr inbounds [200 x double], ptr %42, i64 0, i64 %1739
  %1741 = load double, ptr %1740, align 8, !tbaa !11
  %1742 = load double, ptr %39, align 8, !tbaa !11
  %1743 = fneg double %1741
  %1744 = call double @llvm.fmuladd.f64(double %1743, double %1742, double -1.000000e+00)
  %1745 = load i32, ptr %6, align 4, !tbaa !9
  %1746 = sext i32 %1745 to i64
  %1747 = getelementptr inbounds [200 x double], ptr %42, i64 0, i64 %1746
  store double %1744, ptr %1747, align 8, !tbaa !11
  br label %1759

1748:                                             ; preds = %1728
  %1749 = load i32, ptr %6, align 4, !tbaa !9
  %1750 = sext i32 %1749 to i64
  %1751 = getelementptr inbounds [200 x double], ptr %42, i64 0, i64 %1750
  %1752 = load double, ptr %1751, align 8, !tbaa !11
  %1753 = load double, ptr %39, 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 %6, align 4, !tbaa !9
  %1757 = sext i32 %1756 to i64
  %1758 = getelementptr inbounds [200 x double], ptr %42, i64 0, i64 %1757
  store double %1755, ptr %1758, align 8, !tbaa !11
  br label %1759

1759:                                             ; preds = %1748, %1737
  br label %1836

1760:                                             ; preds = %1721, %1718
  %1761 = load i32, ptr %29, align 4, !tbaa !9
  %1762 = icmp ne i32 %1761, 0
  br i1 %1762, label %1763, label %1796

1763:                                             ; preds = %1760
  %1764 = load i32, ptr %17, align 4, !tbaa !9
  %1765 = icmp ne i32 %1764, 3
  br i1 %1765, label %1766, label %1768

1766:                                             ; preds = %1763
  %1767 = load ptr, ptr getelementptr inbounds (%struct.rboxT, ptr @rbox, i32 0, i32 1), align 8, !tbaa !24
  call void (ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %1767, i32 noundef 6199, ptr noundef @.str.27)
  call void @qh_errexit_rbox(i32 noundef 1)
  br label %1768

1768:                                             ; preds = %1766, %1763
  %1769 = load i32, ptr %5, align 4, !tbaa !9
  %1770 = sitofp i32 %1769 to double
  %1771 = fmul double 0x401921FB54442D18, %1770
  %1772 = load i32, ptr %18, align 4, !tbaa !9
  %1773 = sub nsw i32 %1772, 1
  %1774 = sitofp i32 %1773 to double
  %1775 = fdiv double %1771, %1774
  %1776 = call double @cos(double noundef %1775) #7
  %1777 = getelementptr inbounds [200 x double], ptr %42, i64 0, i64 0
  store double %1776, ptr %1777, align 16, !tbaa !11
  %1778 = load i32, ptr %5, align 4, !tbaa !9
  %1779 = sitofp i32 %1778 to double
  %1780 = fmul double 0x401921FB54442D18, %1779
  %1781 = load i32, ptr %18, align 4, !tbaa !9
  %1782 = sub nsw i32 %1781, 1
  %1783 = sitofp i32 %1782 to double
  %1784 = fdiv double %1780, %1783
  %1785 = call double @sin(double noundef %1784) #7
  %1786 = getelementptr inbounds [200 x double], ptr %42, i64 0, i64 1
  store double %1785, ptr %1786, align 8, !tbaa !11
  %1787 = load i32, ptr %5, align 4, !tbaa !9
  %1788 = sitofp i32 %1787 to double
  %1789 = fmul double 2.000000e+00, %1788
  %1790 = load i32, ptr %18, align 4, !tbaa !9
  %1791 = sub nsw i32 %1790, 1
  %1792 = sitofp i32 %1791 to double
  %1793 = fdiv double %1789, %1792
  %1794 = fsub double %1793, 1.000000e+00
  %1795 = getelementptr inbounds [200 x double], ptr %42, i64 0, i64 2
  store double %1794, ptr %1795, align 16, !tbaa !11
  br label %1835

1796:                                             ; preds = %1760
  %1797 = load i32, ptr %21, align 4, !tbaa !9
  %1798 = icmp ne i32 %1797, 0
  br i1 %1798, label %1799, label %1834

1799:                                             ; preds = %1796
  %1800 = load double, ptr %51, align 8, !tbaa !11
  %1801 = fdiv double 1.000000e+00, %1800
  store double %1801, ptr %52, align 8, !tbaa !11
  %1802 = load i32, ptr %26, align 4, !tbaa !9
  %1803 = icmp ne i32 %1802, 0
  br i1 %1803, label %1804, label %1815

1804:                                             ; preds = %1799
  %1805 = call i32 @qh_rand()
  %1806 = sitofp i32 %1805 to double
  store double %1806, ptr %53, align 8, !tbaa !11
  %1807 = load double, ptr %38, align 8, !tbaa !11
  %1808 = load double, ptr %53, align 8, !tbaa !11
  %1809 = fmul double %1807, %1808
  %1810 = load double, ptr %65, align 8, !tbaa !11
  %1811 = fdiv double %1809, %1810
  %1812 = fsub double 1.000000e+00, %1811
  %1813 = load double, ptr %52, align 8, !tbaa !11
  %1814 = fmul double %1813, %1812
  store double %1814, ptr %52, align 8, !tbaa !11
  br label %1815

1815:                                             ; preds = %1804, %1799
  store i32 0, ptr %6, align 4, !tbaa !9
  br label %1816

1816:                                             ; preds = %1830, %1815
  %1817 = load i32, ptr %6, align 4, !tbaa !9
  %1818 = load i32, ptr %17, align 4, !tbaa !9
  %1819 = icmp slt i32 %1817, %1818
  br i1 %1819, label %1820, label %1833

1820:                                             ; preds = %1816
  %1821 = load double, ptr %52, align 8, !tbaa !11
  %1822 = load i32, ptr %6, align 4, !tbaa !9
  %1823 = sext i32 %1822 to i64
  %1824 = getelementptr inbounds [200 x double], ptr %42, i64 0, i64 %1823
  %1825 = load double, ptr %1824, align 8, !tbaa !11
  %1826 = fmul double %1821, %1825
  %1827 = load i32, ptr %6, align 4, !tbaa !9
  %1828 = sext i32 %1827 to i64
  %1829 = getelementptr inbounds [200 x double], ptr %42, i64 0, i64 %1828
  store double %1826, ptr %1829, align 8, !tbaa !11
  br label %1830

1830:                                             ; preds = %1820
  %1831 = load i32, ptr %6, align 4, !tbaa !9
  %1832 = add nsw i32 %1831, 1
  store i32 %1832, ptr %6, align 4, !tbaa !9
  br label %1816, !llvm.loop !56

1833:                                             ; preds = %1816
  br label %1834

1834:                                             ; preds = %1833, %1796
  br label %1835

1835:                                             ; preds = %1834, %1768
  br label %1836

1836:                                             ; preds = %1835, %1759
  br label %1837

1837:                                             ; preds = %1836, %1717
  br label %1838

1838:                                             ; preds = %1837, %1677
  %1839 = load i32, ptr %22, align 4, !tbaa !9
  %1840 = icmp ne i32 %1839, 0
  br i1 %1840, label %1841, label %1906

1841:                                             ; preds = %1838
  %1842 = load i32, ptr %21, align 4, !tbaa !9
  %1843 = icmp ne i32 %1842, 0
  br i1 %1843, label %1844, label %1906

1844:                                             ; preds = %1841
  %1845 = load i32, ptr %17, align 4, !tbaa !9
  %1846 = sub nsw i32 %1845, 1
  %1847 = sext i32 %1846 to i64
  %1848 = getelementptr inbounds [200 x double], ptr %42, i64 0, i64 %1847
  store double 1.000000e+00, ptr %1848, align 8, !tbaa !11
  store double 1.000000e+00, ptr %51, align 8, !tbaa !11
  store i32 0, ptr %6, align 4, !tbaa !9
  br label %1849

1849:                                             ; preds = %1864, %1844
  %1850 = load i32, ptr %6, align 4, !tbaa !9
  %1851 = load i32, ptr %8, align 4, !tbaa !9
  %1852 = icmp slt i32 %1850, %1851
  br i1 %1852, label %1853, label %1867

1853:                                             ; preds = %1849
  %1854 = load i32, ptr %6, align 4, !tbaa !9
  %1855 = sext i32 %1854 to i64
  %1856 = getelementptr inbounds [200 x double], ptr %42, i64 0, i64 %1855
  %1857 = load double, ptr %1856, align 8, !tbaa !11
  %1858 = load i32, ptr %6, align 4, !tbaa !9
  %1859 = sext i32 %1858 to i64
  %1860 = getelementptr inbounds [200 x double], ptr %42, i64 0, i64 %1859
  %1861 = load double, ptr %1860, align 8, !tbaa !11
  %1862 = load double, ptr %51, align 8, !tbaa !11
  %1863 = call double @llvm.fmuladd.f64(double %1857, double %1861, double %1862)
  store double %1863, ptr %51, align 8, !tbaa !11
  br label %1864

1864:                                             ; preds = %1853
  %1865 = load i32, ptr %6, align 4, !tbaa !9
  %1866 = add nsw i32 %1865, 1
  store i32 %1866, ptr %6, align 4, !tbaa !9
  br label %1849, !llvm.loop !57

1867:                                             ; preds = %1849
  %1868 = load double, ptr %51, align 8, !tbaa !11
  %1869 = call double @sqrt(double noundef %1868) #7
  store double %1869, ptr %51, align 8, !tbaa !11
  store i32 0, ptr %6, align 4, !tbaa !9
  br label %1870

1870:                                             ; preds = %1884, %1867
  %1871 = load i32, ptr %6, align 4, !tbaa !9
  %1872 = load i32, ptr %17, align 4, !tbaa !9
  %1873 = icmp slt i32 %1871, %1872
  br i1 %1873, label %1874, label %1887

1874:                                             ; preds = %1870
  %1875 = load i32, ptr %6, align 4, !tbaa !9
  %1876 = sext i32 %1875 to i64
  %1877 = getelementptr inbounds [200 x double], ptr %42, i64 0, i64 %1876
  %1878 = load double, ptr %1877, align 8, !tbaa !11
  %1879 = load double, ptr %51, align 8, !tbaa !11
  %1880 = fdiv double %1878, %1879
  %1881 = load i32, ptr %6, align 4, !tbaa !9
  %1882 = sext i32 %1881 to i64
  %1883 = getelementptr inbounds [200 x double], ptr %42, i64 0, i64 %1882
  store double %1880, ptr %1883, align 8, !tbaa !11
  br label %1884

1884:                                             ; preds = %1874
  %1885 = load i32, ptr %6, align 4, !tbaa !9
  %1886 = add nsw i32 %1885, 1
  store i32 %1886, ptr %6, align 4, !tbaa !9
  br label %1870, !llvm.loop !58

1887:                                             ; preds = %1870
  %1888 = load i32, ptr %26, align 4, !tbaa !9
  %1889 = icmp ne i32 %1888, 0
  br i1 %1889, label %1890, label %1905

1890:                                             ; preds = %1887
  %1891 = call i32 @qh_rand()
  %1892 = sitofp i32 %1891 to double
  store double %1892, ptr %53, align 8, !tbaa !11
  %1893 = load double, ptr %38, align 8, !tbaa !11
  %1894 = load double, ptr %53, align 8, !tbaa !11
  %1895 = fmul double %1893, %1894
  %1896 = load double, ptr %65, align 8, !tbaa !11
  %1897 = fdiv double %1895, %1896
  %1898 = fsub double 1.000000e+00, %1897
  %1899 = load i32, ptr %17, align 4, !tbaa !9
  %1900 = sub nsw i32 %1899, 1
  %1901 = sext i32 %1900 to i64
  %1902 = getelementptr inbounds [200 x double], ptr %42, i64 0, i64 %1901
  %1903 = load double, ptr %1902, align 8, !tbaa !11
  %1904 = fmul double %1903, %1898
  store double %1904, ptr %1902, align 8, !tbaa !11
  br label %1905

1905:                                             ; preds = %1890, %1887
  br label %2057

1906:                                             ; preds = %1841, %1838
  %1907 = load i32, ptr %22, align 4, !tbaa !9
  %1908 = icmp ne i32 %1907, 0
  br i1 %1908, label %1909, label %1924

1909:                                             ; preds = %1906
  %1910 = load i32, ptr %21, align 4, !tbaa !9
  %1911 = icmp ne i32 %1910, 0
  br i1 %1911, label %1924, label %1912

1912:                                             ; preds = %1909
  %1913 = call i32 @qh_rand()
  %1914 = sitofp i32 %1913 to double
  store double %1914, ptr %53, align 8, !tbaa !11
  %1915 = load double, ptr %53, align 8, !tbaa !11
  %1916 = fmul double 2.000000e+00, %1915
  %1917 = load double, ptr %65, align 8, !tbaa !11
  %1918 = fdiv double %1916, %1917
  %1919 = fsub double %1918, 1.000000e+00
  %1920 = load i32, ptr %17, align 4, !tbaa !9
  %1921 = sub nsw i32 %1920, 1
  %1922 = sext i32 %1921 to i64
  %1923 = getelementptr inbounds [200 x double], ptr %42, i64 0, i64 %1922
  store double %1919, ptr %1923, align 8, !tbaa !11
  br label %2056

1924:                                             ; preds = %1909, %1906
  %1925 = load i32, ptr %24, align 4, !tbaa !9
  %1926 = icmp ne i32 %1925, 0
  br i1 %1926, label %1927, label %2016

1927:                                             ; preds = %1924
  %1928 = load double, ptr %57, align 8, !tbaa !11
  %1929 = load i32, ptr %17, align 4, !tbaa !9
  %1930 = sub nsw i32 %1929, 1
  %1931 = sext i32 %1930 to i64
  %1932 = getelementptr inbounds [200 x double], ptr %42, i64 0, i64 %1931
  store double %1928, ptr %1932, align 8, !tbaa !11
  store i32 0, ptr %6, align 4, !tbaa !9
  store double 0.000000e+00, ptr %51, align 8, !tbaa !11
  br label %1933

1933:                                             ; preds = %1948, %1927
  %1934 = load i32, ptr %6, align 4, !tbaa !9
  %1935 = load i32, ptr %17, align 4, !tbaa !9
  %1936 = icmp slt i32 %1934, %1935
  br i1 %1936, label %1937, label %1951

1937:                                             ; preds = %1933
  %1938 = load i32, ptr %6, align 4, !tbaa !9
  %1939 = sext i32 %1938 to i64
  %1940 = getelementptr inbounds [200 x double], ptr %42, i64 0, i64 %1939
  %1941 = load double, ptr %1940, align 8, !tbaa !11
  %1942 = load i32, ptr %6, align 4, !tbaa !9
  %1943 = sext i32 %1942 to i64
  %1944 = getelementptr inbounds [200 x double], ptr %42, i64 0, i64 %1943
  %1945 = load double, ptr %1944, align 8, !tbaa !11
  %1946 = load double, ptr %51, align 8, !tbaa !11
  %1947 = call double @llvm.fmuladd.f64(double %1941, double %1945, double %1946)
  store double %1947, ptr %51, align 8, !tbaa !11
  br label %1948

1948:                                             ; preds = %1937
  %1949 = load i32, ptr %6, align 4, !tbaa !9
  %1950 = add nsw i32 %1949, 1
  store i32 %1950, ptr %6, align 4, !tbaa !9
  br label %1933, !llvm.loop !59

1951:                                             ; preds = %1933
  %1952 = load double, ptr %51, align 8, !tbaa !11
  %1953 = call double @sqrt(double noundef %1952) #7
  store double %1953, ptr %51, align 8, !tbaa !11
  store i32 0, ptr %6, align 4, !tbaa !9
  br label %1954

1954:                                             ; preds = %1970, %1951
  %1955 = load i32, ptr %6, align 4, !tbaa !9
  %1956 = load i32, ptr %17, align 4, !tbaa !9
  %1957 = icmp slt i32 %1955, %1956
  br i1 %1957, label %1958, label %1973

1958:                                             ; preds = %1954
  %1959 = load i32, ptr %6, align 4, !tbaa !9
  %1960 = sext i32 %1959 to i64
  %1961 = getelementptr inbounds [200 x double], ptr %42, i64 0, i64 %1960
  %1962 = load double, ptr %1961, align 8, !tbaa !11
  %1963 = load double, ptr %40, align 8, !tbaa !11
  %1964 = fmul double %1962, %1963
  %1965 = load double, ptr %51, align 8, !tbaa !11
  %1966 = fdiv double %1964, %1965
  %1967 = load i32, ptr %6, align 4, !tbaa !9
  %1968 = sext i32 %1967 to i64
  %1969 = getelementptr inbounds [200 x double], ptr %42, i64 0, i64 %1968
  store double %1966, ptr %1969, align 8, !tbaa !11
  br label %1970

1970:                                             ; preds = %1958
  %1971 = load i32, ptr %6, align 4, !tbaa !9
  %1972 = add nsw i32 %1971, 1
  store i32 %1972, ptr %6, align 4, !tbaa !9
  br label %1954, !llvm.loop !60

1973:                                             ; preds = %1954
  %1974 = load double, ptr %57, align 8, !tbaa !11
  %1975 = load i32, ptr %17, align 4, !tbaa !9
  %1976 = sub nsw i32 %1975, 1
  %1977 = sext i32 %1976 to i64
  %1978 = getelementptr inbounds [200 x double], ptr %42, i64 0, i64 %1977
  %1979 = load double, ptr %1978, align 8, !tbaa !11
  %1980 = fsub double %1979, %1974
  store double %1980, ptr %1978, align 8, !tbaa !11
  %1981 = load i32, ptr %26, align 4, !tbaa !9
  %1982 = icmp ne i32 %1981, 0
  br i1 %1982, label %1983, label %1998

1983:                                             ; preds = %1973
  %1984 = call i32 @qh_rand()
  %1985 = sitofp i32 %1984 to double
  store double %1985, ptr %53, align 8, !tbaa !11
  %1986 = load double, ptr %38, align 8, !tbaa !11
  %1987 = load double, ptr %53, align 8, !tbaa !11
  %1988 = fmul double %1986, %1987
  %1989 = load double, ptr %65, align 8, !tbaa !11
  %1990 = fdiv double %1988, %1989
  %1991 = fsub double 1.000000e+00, %1990
  %1992 = load i32, ptr %17, align 4, !tbaa !9
  %1993 = sub nsw i32 %1992, 1
  %1994 = sext i32 %1993 to i64
  %1995 = getelementptr inbounds [200 x double], ptr %42, i64 0, i64 %1994
  %1996 = load double, ptr %1995, align 8, !tbaa !11
  %1997 = fmul double %1996, %1991
  store double %1997, ptr %1995, align 8, !tbaa !11
  br label %1998

1998:                                             ; preds = %1983, %1973
  %1999 = call i32 @qh_rand()
  %2000 = sitofp i32 %1999 to double
  %2001 = load double, ptr %65, align 8, !tbaa !11
  %2002 = fdiv double %2001, 2.000000e+00
  %2003 = fcmp ogt double %2000, %2002
  br i1 %2003, label %2004, label %2015

2004:                                             ; preds = %1998
  %2005 = load i32, ptr %17, align 4, !tbaa !9
  %2006 = sub nsw i32 %2005, 1
  %2007 = sext i32 %2006 to i64
  %2008 = getelementptr inbounds [200 x double], ptr %42, i64 0, i64 %2007
  %2009 = load double, ptr %2008, align 8, !tbaa !11
  %2010 = fneg double %2009
  %2011 = load i32, ptr %17, align 4, !tbaa !9
  %2012 = sub nsw i32 %2011, 1
  %2013 = sext i32 %2012 to i64
  %2014 = getelementptr inbounds [200 x double], ptr %42, i64 0, i64 %2013
  store double %2010, ptr %2014, align 8, !tbaa !11
  br label %2015

2015:                                             ; preds = %2004, %1998
  br label %2055

2016:                                             ; preds = %1924
  %2017 = load i32, ptr %26, align 4, !tbaa !9
  %2018 = icmp ne i32 %2017, 0
  br i1 %2018, label %2019, label %2054

2019:                                             ; preds = %2016
  %2020 = load i32, ptr %21, align 4, !tbaa !9
  %2021 = icmp ne i32 %2020, 0
  br i1 %2021, label %2054, label %2022

2022:                                             ; preds = %2019
  %2023 = call i32 @qh_rand()
  %2024 = load i32, ptr %8, align 4, !tbaa !9
  %2025 = srem i32 %2023, %2024
  store i32 %2025, ptr %6, align 4, !tbaa !9
  %2026 = load i32, ptr %6, align 4, !tbaa !9
  %2027 = sext i32 %2026 to i64
  %2028 = getelementptr inbounds [200 x double], ptr %42, i64 0, i64 %2027
  %2029 = load double, ptr %2028, align 8, !tbaa !11
  %2030 = fcmp olt double %2029, 0.000000e+00
  br i1 %2030, label %2031, label %2042

2031:                                             ; preds = %2022
  %2032 = load i32, ptr %6, align 4, !tbaa !9
  %2033 = sext i32 %2032 to i64
  %2034 = getelementptr inbounds [200 x double], ptr %42, i64 0, i64 %2033
  %2035 = load double, ptr %2034, align 8, !tbaa !11
  %2036 = load double, ptr %38, align 8, !tbaa !11
  %2037 = fneg double %2035
  %2038 = call double @llvm.fmuladd.f64(double %2037, double %2036, double -1.000000e+00)
  %2039 = load i32, ptr %6, align 4, !tbaa !9
  %2040 = sext i32 %2039 to i64
  %2041 = getelementptr inbounds [200 x double], ptr %42, i64 0, i64 %2040
  store double %2038, ptr %2041, align 8, !tbaa !11
  br label %2053

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

2053:                                             ; preds = %2042, %2031
  br label %2054

2054:                                             ; preds = %2053, %2019, %2016
  br label %2055

2055:                                             ; preds = %2054, %2015
  br label %2056

2056:                                             ; preds = %2055, %1912
  br label %2057

2057:                                             ; preds = %2056, %1905
  store i32 0, ptr %7, align 4, !tbaa !9
  br label %2058

2058:                                             ; preds = %2072, %2057
  %2059 = load i32, ptr %7, align 4, !tbaa !9
  %2060 = load i32, ptr %17, align 4, !tbaa !9
  %2061 = icmp slt i32 %2059, %2060
  br i1 %2061, label %2062, label %2075

2062:                                             ; preds = %2058
  %2063 = load i32, ptr %7, align 4, !tbaa !9
  %2064 = sext i32 %2063 to i64
  %2065 = getelementptr inbounds [200 x double], ptr %42, i64 0, i64 %2064
  %2066 = load double, ptr %2065, align 8, !tbaa !11
  %2067 = load double, ptr %64, align 8, !tbaa !11
  %2068 = fmul double %2066, %2067
  %2069 = load i32, ptr %7, align 4, !tbaa !9
  %2070 = sext i32 %2069 to i64
  %2071 = getelementptr inbounds [200 x double], ptr %42, i64 0, i64 %2070
  store double %2068, ptr %2071, align 8, !tbaa !11
  br label %2072

2072:                                             ; preds = %2062
  %2073 = load i32, ptr %7, align 4, !tbaa !9
  %2074 = add nsw i32 %2073, 1
  store i32 %2074, ptr %7, align 4, !tbaa !9
  br label %2058, !llvm.loop !61

2075:                                             ; preds = %2058
  %2076 = load i32, ptr %23, align 4, !tbaa !9
  %2077 = getelementptr inbounds [200 x double], ptr %42, i64 0, i64 0
  %2078 = load i32, ptr %17, align 4, !tbaa !9
  call void @qh_outcoord(i32 noundef %2076, ptr noundef %2077, i32 noundef %2078)
  %2079 = load i32, ptr %9, align 4, !tbaa !9
  %2080 = add nsw i32 %2079, 1
  store i32 %2080, ptr %9, align 4, !tbaa !9
  %2081 = load i32, ptr %10, align 4, !tbaa !9
  %2082 = icmp slt i32 %2079, %2081
  br i1 %2082, label %2083, label %2089

2083:                                             ; preds = %2075
  %2084 = load i32, ptr %11, align 4, !tbaa !9
  %2085 = load double, ptr %41, align 8, !tbaa !11
  %2086 = load i32, ptr %23, align 4, !tbaa !9
  %2087 = getelementptr inbounds [200 x double], ptr %42, i64 0, i64 0
  %2088 = load i32, ptr %17, align 4, !tbaa !9
  call void @qh_outcoincident(i32 noundef %2084, double noundef %2085, i32 noundef %2086, ptr noundef %2087, i32 noundef %2088)
  br label %2089

2089:                                             ; preds = %2083, %2075
  br label %2090

2090:                                             ; preds = %2089
  %2091 = load i32, ptr %5, align 4, !tbaa !9
  %2092 = add nsw i32 %2091, 1
  store i32 %2092, ptr %5, align 4, !tbaa !9
  br label %1604, !llvm.loop !62

2093:                                             ; preds = %1604
  br label %2094

2094:                                             ; preds = %2093, %1571
  br label %2095

2095:                                             ; preds = %2094, %1476
  br label %2096

2096:                                             ; preds = %2095, %1405
  br label %2097

2097:                                             ; preds = %2096, %1266
  %2098 = load i32, ptr %27, align 4, !tbaa !9
  %2099 = icmp ne i32 %2098, 0
  br i1 %2099, label %2100, label %2136

2100:                                             ; preds = %2097
  store i32 0, ptr %6, align 4, !tbaa !9
  br label %2101

2101:                                             ; preds = %2132, %2100
  %2102 = load i32, ptr %6, align 4, !tbaa !9
  %2103 = load i32, ptr %12, align 4, !tbaa !9
  %2104 = icmp slt i32 %2102, %2103
  br i1 %2104, label %2105, label %2135

2105:                                             ; preds = %2101
  %2106 = load i32, ptr %23, align 4, !tbaa !9
  %2107 = icmp ne i32 %2106, 0
  br i1 %2107, label %2108, label %2109

2108:                                             ; preds = %2105
  call void @qh_out1(double noundef 1.000000e+00)
  br label %2109

2109:                                             ; preds = %2108, %2105
  %2110 = load i32, ptr %17, align 4, !tbaa !9
  %2111 = sub nsw i32 %2110, 1
  store i32 %2111, ptr %7, align 4, !tbaa !9
  br label %2112

2112:                                             ; preds = %2127, %2109
  %2113 = load i32, ptr %7, align 4, !tbaa !9
  %2114 = icmp sge i32 %2113, 0
  br i1 %2114, label %2115, label %2130

2115:                                             ; preds = %2112
  %2116 = load i32, ptr %6, align 4, !tbaa !9
  %2117 = load i32, ptr %7, align 4, !tbaa !9
  %2118 = shl i32 1, %2117
  %2119 = and i32 %2116, %2118
  %2120 = icmp ne i32 %2119, 0
  br i1 %2120, label %2121, label %2123

2121:                                             ; preds = %2115
  %2122 = load double, ptr %62, align 8, !tbaa !11
  call void @qh_out1(double noundef %2122)
  br label %2126

2123:                                             ; preds = %2115
  %2124 = load double, ptr %62, align 8, !tbaa !11
  %2125 = fneg double %2124
  call void @qh_out1(double noundef %2125)
  br label %2126

2126:                                             ; preds = %2123, %2121
  br label %2127

2127:                                             ; preds = %2126
  %2128 = load i32, ptr %7, align 4, !tbaa !9
  %2129 = add nsw i32 %2128, -1
  store i32 %2129, ptr %7, align 4, !tbaa !9
  br label %2112, !llvm.loop !63

2130:                                             ; preds = %2112
  %2131 = load ptr, ptr @rbox, align 8, !tbaa !28
  call void (ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %2131, i32 noundef 9400, ptr noundef @.str.24)
  br label %2132

2132:                                             ; preds = %2130
  %2133 = load i32, ptr %6, align 4, !tbaa !9
  %2134 = add nsw i32 %2133, 1
  store i32 %2134, ptr %6, align 4, !tbaa !9
  br label %2101, !llvm.loop !64

2135:                                             ; preds = %2101
  br label %2136

2136:                                             ; preds = %2135, %2097
  %2137 = load i32, ptr %31, align 4, !tbaa !9
  %2138 = icmp ne i32 %2137, 0
  br i1 %2138, label %2139, label %2180

2139:                                             ; preds = %2136
  store i32 0, ptr %6, align 4, !tbaa !9
  br label %2140

2140:                                             ; preds = %2176, %2139
  %2141 = load i32, ptr %6, align 4, !tbaa !9
  %2142 = load i32, ptr %13, align 4, !tbaa !9
  %2143 = icmp slt i32 %2141, %2142
  br i1 %2143, label %2144, label %2179

2144:                                             ; preds = %2140
  %2145 = load i32, ptr %23, align 4, !tbaa !9
  %2146 = icmp ne i32 %2145, 0
  br i1 %2146, label %2147, label %2148

2147:                                             ; preds = %2144
  call void @qh_out1(double noundef 1.000000e+00)
  br label %2148

2148:                                             ; preds = %2147, %2144
  %2149 = load i32, ptr %17, align 4, !tbaa !9
  %2150 = sub nsw i32 %2149, 1
  store i32 %2150, ptr %7, align 4, !tbaa !9
  br label %2151

2151:                                             ; preds = %2171, %2148
  %2152 = load i32, ptr %7, align 4, !tbaa !9
  %2153 = icmp sge i32 %2152, 0
  br i1 %2153, label %2154, label %2174

2154:                                             ; preds = %2151
  %2155 = load i32, ptr %6, align 4, !tbaa !9
  %2156 = sdiv i32 %2155, 2
  %2157 = load i32, ptr %7, align 4, !tbaa !9
  %2158 = icmp ne i32 %2156, %2157
  br i1 %2158, label %2159, label %2160

2159:                                             ; preds = %2154
  call void @qh_out1(double noundef 0.000000e+00)
  br label %2170

2160:                                             ; preds = %2154
  %2161 = load i32, ptr %6, align 4, !tbaa !9
  %2162 = and i32 %2161, 1
  %2163 = icmp ne i32 %2162, 0
  br i1 %2163, label %2164, label %2166

2164:                                             ; preds = %2160
  %2165 = load double, ptr %63, align 8, !tbaa !11
  call void @qh_out1(double noundef %2165)
  br label %2169

2166:                                             ; preds = %2160
  %2167 = load double, ptr %63, align 8, !tbaa !11
  %2168 = fneg double %2167
  call void @qh_out1(double noundef %2168)
  br label %2169

2169:                                             ; preds = %2166, %2164
  br label %2170

2170:                                             ; preds = %2169, %2159
  br label %2171

2171:                                             ; preds = %2170
  %2172 = load i32, ptr %7, align 4, !tbaa !9
  %2173 = add nsw i32 %2172, -1
  store i32 %2173, ptr %7, align 4, !tbaa !9
  br label %2151, !llvm.loop !65

2174:                                             ; preds = %2151
  %2175 = load ptr, ptr @rbox, align 8, !tbaa !28
  call void (ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %2175, i32 noundef 9401, ptr noundef @.str.24)
  br label %2176

2176:                                             ; preds = %2174
  %2177 = load i32, ptr %6, align 4, !tbaa !9
  %2178 = add nsw i32 %2177, 1
  store i32 %2178, ptr %6, align 4, !tbaa !9
  br label %2140, !llvm.loop !66

2179:                                             ; preds = %2140
  br label %2180

2180:                                             ; preds = %2179, %2136
  %2181 = load i32, ptr %23, align 4, !tbaa !9
  %2182 = icmp ne i32 %2181, 0
  br i1 %2182, label %2183, label %2185

2183:                                             ; preds = %2180
  %2184 = load ptr, ptr @rbox, align 8, !tbaa !28
  call void (ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %2184, i32 noundef 9402, ptr noundef @.str.28)
  br label %2185

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

declare void @qh_srand(i32 noundef) #5

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

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

declare ptr @qh_malloc(i64 noundef) #5

declare i32 @qh_rand() #5

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

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

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

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

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

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

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { nounwind "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 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 #4 = { 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 #5 = { "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 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #7 = { nounwind }
attributes #8 = { nounwind willreturn memory(read) }
attributes #9 = { 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 = !{!7, !7, i64 0}
!14 = !{!15, !15, i64 0}
!15 = !{!"short", !7, i64 0}
!16 = distinct !{!16, !17}
!17 = !{!"llvm.loop.mustprogress"}
!18 = distinct !{!18, !17}
!19 = distinct !{!19, !17}
!20 = distinct !{!20, !17}
!21 = distinct !{!21, !17}
!22 = !{!23, !10, i64 16}
!23 = !{!"rboxT", !6, i64 0, !6, i64 8, !10, i64 16, !12, i64 24, !7, i64 32, !7, i64 232}
!24 = !{!23, !6, i64 8}
!25 = !{!23, !12, i64 24}
!26 = distinct !{!26, !17}
!27 = distinct !{!27, !17}
!28 = !{!23, !6, i64 0}
!29 = distinct !{!29, !17}
!30 = distinct !{!30, !17}
!31 = distinct !{!31, !17}
!32 = distinct !{!32, !17}
!33 = distinct !{!33, !17}
!34 = distinct !{!34, !17}
!35 = distinct !{!35, !17}
!36 = distinct !{!36, !17}
!37 = distinct !{!37, !17}
!38 = distinct !{!38, !17}
!39 = distinct !{!39, !17}
!40 = distinct !{!40, !17}
!41 = distinct !{!41, !17}
!42 = distinct !{!42, !17}
!43 = distinct !{!43, !17}
!44 = distinct !{!44, !17}
!45 = distinct !{!45, !17}
!46 = distinct !{!46, !17}
!47 = distinct !{!47, !17}
!48 = distinct !{!48, !17}
!49 = distinct !{!49, !17}
!50 = distinct !{!50, !17}
!51 = distinct !{!51, !17}
!52 = distinct !{!52, !17}
!53 = distinct !{!53, !17}
!54 = distinct !{!54, !17}
!55 = distinct !{!55, !17}
!56 = distinct !{!56, !17}
!57 = distinct !{!57, !17}
!58 = distinct !{!58, !17}
!59 = distinct !{!59, !17}
!60 = distinct !{!60, !17}
!61 = distinct !{!61, !17}
!62 = distinct !{!62, !17}
!63 = distinct !{!63, !17}
!64 = distinct !{!64, !17}
!65 = distinct !{!65, !17}
!66 = distinct !{!66, !17}


; 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 = external dso_local local_unnamed_addr global %struct.rboxT, align 8
@.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 [57 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [87 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 [66 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [10 x i8], align 1

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

; Function Attrs: nounwind uwtable
define dso_local void @qh_rboxpoints2(ptr nocapture noundef readonly %0, ptr nocapture noundef %1) local_unnamed_addr #1 {
  %3 = alloca [200 x double], align 16
  %4 = alloca [200 x i32], align 16
  %5 = alloca [250 x i8], align 16
  %6 = alloca [50 x i8], align 16
  %7 = alloca ptr, align 8
  %8 = alloca i64, align 8
  call void @llvm.lifetime.start.p0(i64 1600, ptr nonnull %3) #13
  call void @llvm.lifetime.start.p0(i64 800, ptr nonnull %4) #13
  call void @llvm.lifetime.start.p0(i64 250, ptr nonnull %5) #13
  call void @llvm.lifetime.start.p0(i64 50, ptr nonnull %6) #13
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) #13
  store ptr %5, ptr %7, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) #13
  store i8 0, ptr %5, align 16, !tbaa !9
  %9 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %5) #14
  %10 = sub i64 199, %9
  %11 = call ptr @strncat(ptr noundef nonnull dereferenceable(1) %5, ptr noundef %0, i64 noundef %10) #13
  %12 = load i8, ptr %5, align 16, !tbaa !9
  %.not931 = icmp eq i8 %12, 0
  br i1 %.not931, label %.thread1620, label %.lr.ph

.lr.ph:                                           ; preds = %2
  %13 = tail call ptr @__ctype_b_loc() #15
  br label %14

14:                                               ; preds = %.lr.ph, %22
  %15 = phi i8 [ %12, %.lr.ph ], [ %24, %22 ]
  %16 = phi ptr [ %5, %.lr.ph ], [ %23, %22 ]
  %17 = load ptr, ptr %13, align 8, !tbaa !5
  %18 = sext i8 %15 to i64
  %19 = getelementptr inbounds i16, ptr %17, i64 %18
  %20 = load i16, ptr %19, align 2, !tbaa !10
  %21 = and i16 %20, 8192
  %.not784 = icmp eq i16 %21, 0
  br i1 %.not784, label %22, label %.preheader923.lr.ph.preheader

22:                                               ; preds = %14
  %23 = getelementptr inbounds i8, ptr %16, i64 1
  store ptr %23, ptr %7, align 8, !tbaa !5
  %24 = load i8, ptr %23, align 1, !tbaa !9
  %.not = icmp eq i8 %24, 0
  br i1 %.not, label %.thread1620, label %14, !llvm.loop !12

.thread1620:                                      ; preds = %22, %2
  %25 = load i32, ptr getelementptr inbounds (i8, ptr @rbox, i64 16), align 8, !tbaa !14
  %26 = icmp eq i32 %25, 0
  %.26311513 = select i1 %26, double 5.000000e-01, double 1.000000e+06
  br label %248

.preheader923.lr.ph.preheader:                    ; preds = %14
  %27 = tail call ptr @__ctype_b_loc() #15
  br label %.preheader923.lr.ph

.preheader923.lr.ph:                              ; preds = %.preheader923.lr.ph.preheader, %.outer
  %28 = phi i8 [ %217, %.outer ], [ %15, %.preheader923.lr.ph.preheader ]
  %.promoted9331432 = phi ptr [ %218, %.outer ], [ %16, %.preheader923.lr.ph.preheader ]
  %.0614.ph1077 = phi ptr [ %.2616, %.outer ], [ null, %.preheader923.lr.ph.preheader ]
  %.0629.ph1076 = phi double [ %.1630, %.outer ], [ 5.000000e-01, %.preheader923.lr.ph.preheader ]
  %.0632.ph1075 = phi double [ %.1633, %.outer ], [ 0.000000e+00, %.preheader923.lr.ph.preheader ]
  %.0635.ph1074 = phi double [ %.1636, %.outer ], [ 0.000000e+00, %.preheader923.lr.ph.preheader ]
  %.0671.ph1073 = phi double [ %.2673, %.outer ], [ 5.000000e+00, %.preheader923.lr.ph.preheader ]
  %.0674.ph1072 = phi double [ %.2676, %.outer ], [ 4.000000e+00, %.preheader923.lr.ph.preheader ]
  %.0677.ph1071 = phi double [ %.2679, %.outer ], [ 3.000000e+00, %.preheader923.lr.ph.preheader ]
  %.0684.ph1070 = phi double [ %.2686, %.outer ], [ 0.000000e+00, %.preheader923.lr.ph.preheader ]
  %.0687.ph1069 = phi double [ %.3690, %.outer ], [ 0.000000e+00, %.preheader923.lr.ph.preheader ]
  %.0692.ph1068 = phi double [ %.2694, %.outer ], [ 0.000000e+00, %.preheader923.lr.ph.preheader ]
  %.0701.ph1067 = phi double [ %.1702, %.outer ], [ 0.000000e+00, %.preheader923.lr.ph.preheader ]
  %.0703.ph1066 = phi i32 [ %.1704, %.outer ], [ 0, %.preheader923.lr.ph.preheader ]
  %.0705.ph1065 = phi i32 [ %.1706, %.outer ], [ 0, %.preheader923.lr.ph.preheader ]
  %.0707.ph1064 = phi i32 [ %.1708, %.outer ], [ 0, %.preheader923.lr.ph.preheader ]
  %.0709.ph1063 = phi i32 [ %.1710, %.outer ], [ 0, %.preheader923.lr.ph.preheader ]
  %.0711.ph1062 = phi i32 [ %.1712, %.outer ], [ 0, %.preheader923.lr.ph.preheader ]
  %.0713.ph1061 = phi i32 [ %.1714, %.outer ], [ 0, %.preheader923.lr.ph.preheader ]
  %.0715.ph1060 = phi i32 [ %.1716, %.outer ], [ 0, %.preheader923.lr.ph.preheader ]
  %.0717.ph1059 = phi i32 [ %.1718, %.outer ], [ 0, %.preheader923.lr.ph.preheader ]
  %.0719.ph1058 = phi i32 [ %.1720, %.outer ], [ 0, %.preheader923.lr.ph.preheader ]
  %.0721.ph1057 = phi i32 [ %.1722, %.outer ], [ 0, %.preheader923.lr.ph.preheader ]
  %.0728.ph1056 = phi i32 [ %.1729, %.outer ], [ 0, %.preheader923.lr.ph.preheader ]
  %.0730.ph1055 = phi i32 [ %.1731, %.outer ], [ 0, %.preheader923.lr.ph.preheader ]
  %.0732.ph1054 = phi i32 [ %.1733, %.outer ], [ 0, %.preheader923.lr.ph.preheader ]
  %.0735.ph1053 = phi i32 [ %.1736, %.outer ], [ 0, %.preheader923.lr.ph.preheader ]
  %.0737.ph1052 = phi i32 [ %.1738, %.outer ], [ 0, %.preheader923.lr.ph.preheader ]
  %.0739.ph1051 = phi i32 [ %.1740, %.outer ], [ 0, %.preheader923.lr.ph.preheader ]
  %.0741.ph1050 = phi i32 [ %.1742, %.outer ], [ 0, %.preheader923.lr.ph.preheader ]
  %.0744.ph1049 = phi i32 [ %.1745, %.outer ], [ 0, %.preheader923.lr.ph.preheader ]
  %.0747.ph1048 = phi i32 [ %.0747937, %.outer ], [ 0, %.preheader923.lr.ph.preheader ]
  %.0750.ph1047 = phi i32 [ %.1751, %.outer ], [ 3, %.preheader923.lr.ph.preheader ]
  %.0755.ph1046 = phi i32 [ %.1756, %.outer ], [ 0, %.preheader923.lr.ph.preheader ]
  %.0761.ph1045 = phi i32 [ %.2763, %.outer ], [ 0, %.preheader923.lr.ph.preheader ]
  %.0764.ph1044 = phi i32 [ %.2766, %.outer ], [ 0, %.preheader923.lr.ph.preheader ]
  br label %.lr.ph935

.lr.ph935:                                        ; preds = %51, %.preheader923.lr.ph
  %29 = phi i8 [ %28, %.preheader923.lr.ph ], [ %54, %51 ]
  %.promoted933 = phi ptr [ %.promoted9331432, %.preheader923.lr.ph ], [ %53, %51 ]
  %.0747937 = phi i32 [ %.0747.ph1048, %.preheader923.lr.ph ], [ %52, %51 ]
  br label %30

30:                                               ; preds = %.lr.ph935, %38
  %31 = phi i8 [ %29, %.lr.ph935 ], [ %40, %38 ]
  %32 = phi ptr [ %.promoted933, %.lr.ph935 ], [ %39, %38 ]
  %33 = load ptr, ptr %27, align 8, !tbaa !5
  %34 = sext i8 %31 to i64
  %35 = getelementptr inbounds i16, ptr %33, i64 %34
  %36 = load i16, ptr %35, align 2, !tbaa !10
  %37 = and i16 %36, 8192
  %.not787 = icmp eq i16 %37, 0
  br i1 %.not787, label %.critedge2, label %38

38:                                               ; preds = %30
  %39 = getelementptr inbounds i8, ptr %32, i64 1
  store ptr %39, ptr %7, align 8, !tbaa !5
  %40 = load i8, ptr %39, align 1, !tbaa !9
  %.not786 = icmp eq i8 %40, 0
  br i1 %.not786, label %.outer._crit_edge, label %30, !llvm.loop !18

.critedge2:                                       ; preds = %30
  %41 = icmp eq i8 %31, 45
  br i1 %41, label %.critedge2.thread, label %.critedge2.thread.thread1453

.critedge2.thread:                                ; preds = %.critedge2
  %42 = getelementptr inbounds i8, ptr %32, i64 1
  store ptr %42, ptr %7, align 8, !tbaa !5
  %.pre = load i8, ptr %42, align 1, !tbaa !9
  %.not788 = icmp eq i8 %.pre, 0
  br i1 %.not788, label %.outer._crit_edge, label %.critedge2.thread.thread1453

.critedge2.thread.thread1453:                     ; preds = %.critedge2, %.critedge2.thread
  %43 = phi ptr [ %42, %.critedge2.thread ], [ %32, %.critedge2 ]
  %44 = phi i8 [ %.pre, %.critedge2.thread ], [ %31, %.critedge2 ]
  %45 = tail call ptr @__ctype_b_loc() #15
  %46 = load ptr, ptr %45, align 8, !tbaa !5
  %47 = sext i8 %44 to i64
  %48 = getelementptr inbounds i16, ptr %46, i64 %47
  %49 = load i16, ptr %48, align 2, !tbaa !10
  %50 = and i16 %49, 2048
  %.not836 = icmp eq i16 %50, 0
  br i1 %.not836, label %55, label %51

51:                                               ; preds = %.critedge2.thread.thread1453
  %52 = call i32 @qh_strtol(ptr noundef nonnull %43, ptr noundef nonnull %7) #13
  %53 = load ptr, ptr %7, align 8, !tbaa !5
  %54 = load i8, ptr %53, align 1, !tbaa !9
  %.not785 = icmp eq i8 %54, 0
  br i1 %.not785, label %.outer._crit_edge, label %.lr.ph935, !llvm.loop !19

55:                                               ; preds = %.critedge2.thread.thread1453
  %56 = getelementptr inbounds i8, ptr %43, i64 1
  store ptr %56, ptr %7, align 8, !tbaa !5
  %57 = load i8, ptr %43, align 1, !tbaa !9
  switch i8 %57, label %205 [
    i8 99, label %.preheader921
    i8 100, label %.preheader922
    i8 104, label %.critedge9
    i8 108, label %82
    i8 110, label %83
    i8 114, label %84
    i8 115, label %85
    i8 116, label %86
    i8 120, label %95
    i8 121, label %96
    i8 122, label %97
    i8 66, label %98
    i8 67, label %100
    i8 68, label %131
    i8 71, label %136
    i8 76, label %145
    i8 77, label %154
    i8 79, label %179
    i8 80, label %181
    i8 87, label %194
    i8 90, label %196
  ]

.preheader922:                                    ; preds = %55
  %58 = load ptr, ptr %45, align 8, !tbaa !5
  br label %71

.preheader921:                                    ; preds = %55
  %59 = load ptr, ptr %45, align 8, !tbaa !5
  br label %60

60:                                               ; preds = %60, %.preheader921
  %.0617 = phi ptr [ %66, %60 ], [ %56, %.preheader921 ]
  %61 = load i8, ptr %.0617, align 1, !tbaa !9
  %62 = sext i8 %61 to i64
  %63 = getelementptr inbounds i16, ptr %59, i64 %62
  %64 = load i16, ptr %63, align 2, !tbaa !10
  %65 = and i16 %64, 8192
  %.not851 = icmp eq i16 %65, 0
  %66 = getelementptr inbounds i8, ptr %.0617, i64 1
  br i1 %.not851, label %67, label %60, !llvm.loop !20

67:                                               ; preds = %60
  %68 = icmp eq i8 %61, 71
  br i1 %68, label %69, label %.critedge9

69:                                               ; preds = %67
  %70 = call double @qh_strtod(ptr noundef nonnull %66, ptr noundef nonnull %7) #13
  br label %.critedge9

71:                                               ; preds = %71, %.preheader922
  %.1618 = phi ptr [ %77, %71 ], [ %56, %.preheader922 ]
  %72 = load i8, ptr %.1618, align 1, !tbaa !9
  %73 = sext i8 %72 to i64
  %74 = getelementptr inbounds i16, ptr %58, i64 %73
  %75 = load i16, ptr %74, align 2, !tbaa !10
  %76 = and i16 %75, 8192
  %.not850 = icmp eq i16 %76, 0
  %77 = getelementptr inbounds i8, ptr %.1618, i64 1
  br i1 %.not850, label %78, label %71, !llvm.loop !21

78:                                               ; preds = %71
  %79 = icmp eq i8 %72, 71
  br i1 %79, label %80, label %.critedge9

80:                                               ; preds = %78
  %81 = call double @qh_strtod(ptr noundef nonnull %77, ptr noundef nonnull %7) #13
  br label %.critedge9

82:                                               ; preds = %55
  br label %.critedge9

83:                                               ; preds = %55
  br label %.critedge9

84:                                               ; preds = %55
  br label %.critedge9

85:                                               ; preds = %55
  br label %.critedge9

86:                                               ; preds = %55
  %87 = load ptr, ptr %45, align 8, !tbaa !5
  %88 = load i8, ptr %56, align 1, !tbaa !9
  %89 = sext i8 %88 to i64
  %90 = getelementptr inbounds i16, ptr %87, i64 %89
  %91 = load i16, ptr %90, align 2, !tbaa !10
  %92 = and i16 %91, 2048
  %.not849 = icmp eq i16 %92, 0
  br i1 %.not849, label %.critedge9, label %93

93:                                               ; preds = %86
  %94 = call i32 @qh_strtol(ptr noundef nonnull %56, ptr noundef nonnull %7) #13
  br label %.critedge9

95:                                               ; preds = %55
  br label %.critedge9

96:                                               ; preds = %55
  br label %.critedge9

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

98:                                               ; preds = %55
  %99 = call double @qh_strtod(ptr noundef nonnull %56, ptr noundef nonnull %7) #13
  br label %.critedge9

100:                                              ; preds = %55
  %101 = load i8, ptr %56, align 1, !tbaa !9
  %.not846 = icmp eq i8 %101, 0
  br i1 %.not846, label %.thread1459.thread, label %102

102:                                              ; preds = %100
  %103 = call i32 @qh_strtol(ptr noundef nonnull %56, ptr noundef nonnull %7) #13
  %.pre1439 = load ptr, ptr %7, align 8, !tbaa !5
  %.pre1440 = load i8, ptr %.pre1439, align 1, !tbaa !9
  %104 = icmp eq i8 %.pre1440, 44
  br i1 %104, label %105, label %.thread1459

105:                                              ; preds = %102
  %106 = getelementptr inbounds i8, ptr %.pre1439, i64 1
  store ptr %106, ptr %7, align 8, !tbaa !5
  %107 = call double @qh_strtod(ptr noundef nonnull %106, ptr noundef nonnull %7) #13
  %.pre1441 = load ptr, ptr %7, align 8, !tbaa !5
  %.pre1442 = load i8, ptr %.pre1441, align 1, !tbaa !9
  %108 = icmp eq i8 %.pre1442, 44
  br i1 %108, label %109, label %.thread1459

109:                                              ; preds = %105
  %110 = getelementptr inbounds i8, ptr %.pre1441, i64 1
  store ptr %110, ptr %7, align 8, !tbaa !5
  %111 = call i32 @qh_strtol(ptr noundef nonnull %110, ptr noundef nonnull %7) #13
  %.pre1443 = load ptr, ptr %7, align 8, !tbaa !5
  %.pre1444 = load i8, ptr %.pre1443, align 1, !tbaa !9
  br label %.thread1459

.thread1459:                                      ; preds = %102, %109, %105
  %.16851463 = phi double [ %107, %109 ], [ %107, %105 ], [ %.0684.ph1070, %102 ]
  %112 = phi i8 [ %.pre1444, %109 ], [ %.pre1442, %105 ], [ %.pre1440, %102 ]
  %113 = phi ptr [ %.pre1443, %109 ], [ %.pre1441, %105 ], [ %.pre1439, %102 ]
  %.1765 = phi i32 [ %111, %109 ], [ %.0764.ph1044, %105 ], [ %.0764.ph1044, %102 ]
  %.not847 = icmp eq i8 %112, 0
  br i1 %.not847, label %.thread1459.thread, label %114

114:                                              ; preds = %.thread1459
  %115 = load ptr, ptr %45, align 8, !tbaa !5
  %116 = sext i8 %112 to i64
  %117 = getelementptr inbounds i16, ptr %115, i64 %116
  %118 = load i16, ptr %117, align 2, !tbaa !10
  %119 = and i16 %118, 8192
  %.not848 = icmp eq i16 %119, 0
  br i1 %.not848, label %120, label %.thread1459.thread

120:                                              ; preds = %114
  %121 = load ptr, ptr getelementptr inbounds (i8, ptr @rbox, i64 8), align 8, !tbaa !22
  call void (ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %121, i32 noundef 7080, ptr noundef nonnull @.str.1, ptr noundef nonnull %113) #13
  call void @qh_errexit_rbox(i32 noundef 1)
  br label %.thread1459.thread

.thread1459.thread:                               ; preds = %100, %120, %114, %.thread1459
  %.17651705 = phi i32 [ %.1765, %120 ], [ %.1765, %114 ], [ %.1765, %.thread1459 ], [ %.0764.ph1044, %100 ]
  %.1762145714621704 = phi i32 [ %103, %120 ], [ %103, %114 ], [ %103, %.thread1459 ], [ %.0761.ph1045, %100 ]
  %.168514631703 = phi double [ %.16851463, %120 ], [ %.16851463, %114 ], [ %.16851463, %.thread1459 ], [ %.0684.ph1070, %100 ]
  %122 = icmp eq i32 %.1762145714621704, 0
  br i1 %122, label %123, label %125

123:                                              ; preds = %.thread1459.thread
  %124 = load ptr, ptr getelementptr inbounds (i8, ptr @rbox, i64 8), align 8, !tbaa !22
  call void (ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %124, i32 noundef 6268, ptr noundef nonnull @.str.2) #13
  call void @qh_errexit_rbox(i32 noundef 1)
  br label %125

125:                                              ; preds = %123, %.thread1459.thread
  %126 = icmp slt i32 %.1762145714621704, 0
  %127 = icmp slt i32 %.17651705, 0
  %or.cond = select i1 %126, i1 true, i1 %127
  %128 = fcmp olt double %.168514631703, 0.000000e+00
  %or.cond5 = select i1 %or.cond, i1 true, i1 %128
  br i1 %or.cond5, label %129, label %.critedge9

129:                                              ; preds = %125
  %130 = load ptr, ptr getelementptr inbounds (i8, ptr @rbox, i64 8), align 8, !tbaa !22
  call void (ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %130, i32 noundef 6269, ptr noundef nonnull @.str.3, i32 noundef %.1762145714621704, i32 noundef %.17651705, double noundef %.168514631703) #13
  call void @qh_errexit_rbox(i32 noundef 1)
  br label %.critedge9

131:                                              ; preds = %55
  %132 = call i32 @qh_strtol(ptr noundef nonnull %56, ptr noundef nonnull %7) #13
  %133 = add i32 %132, -201
  %or.cond7 = icmp ult i32 %133, -200
  br i1 %or.cond7, label %134, label %.critedge9

134:                                              ; preds = %131
  %135 = load ptr, ptr getelementptr inbounds (i8, ptr @rbox, i64 8), align 8, !tbaa !22
  call void (ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %135, i32 noundef 6189, ptr noundef nonnull @.str.4, i32 noundef %132, i32 noundef 200) #13
  call void @qh_errexit_rbox(i32 noundef 1)
  br label %.critedge9

136:                                              ; preds = %55
  %137 = load ptr, ptr %45, align 8, !tbaa !5
  %138 = load i8, ptr %56, align 1, !tbaa !9
  %139 = sext i8 %138 to i64
  %140 = getelementptr inbounds i16, ptr %137, i64 %139
  %141 = load i16, ptr %140, align 2, !tbaa !10
  %142 = and i16 %141, 2048
  %.not845 = icmp eq i16 %142, 0
  br i1 %.not845, label %.critedge9, label %143

143:                                              ; preds = %136
  %144 = call double @qh_strtod(ptr noundef nonnull %56, ptr noundef nonnull %7) #13
  br label %.critedge9

145:                                              ; preds = %55
  %146 = load ptr, ptr %45, align 8, !tbaa !5
  %147 = load i8, ptr %56, align 1, !tbaa !9
  %148 = sext i8 %147 to i64
  %149 = getelementptr inbounds i16, ptr %146, i64 %148
  %150 = load i16, ptr %149, align 2, !tbaa !10
  %151 = and i16 %150, 2048
  %.not844 = icmp eq i16 %151, 0
  br i1 %.not844, label %.critedge9, label %152

152:                                              ; preds = %145
  %153 = call double @qh_strtod(ptr noundef nonnull %56, ptr noundef nonnull %7) #13
  br label %.critedge9

154:                                              ; preds = %55
  %155 = load i8, ptr %56, align 1, !tbaa !9
  %.not841 = icmp eq i8 %155, 0
  br i1 %.not841, label %.thread1470, label %156

156:                                              ; preds = %154
  %157 = call double @qh_strtod(ptr noundef nonnull %56, ptr noundef nonnull %7) #13
  %.pre1433 = load ptr, ptr %7, align 8, !tbaa !5
  %.pre1434 = load i8, ptr %.pre1433, align 1, !tbaa !9
  %158 = icmp eq i8 %.pre1434, 44
  br i1 %158, label %159, label %.thread1470

159:                                              ; preds = %156
  %160 = getelementptr inbounds i8, ptr %.pre1433, i64 1
  store ptr %160, ptr %7, align 8, !tbaa !5
  %161 = call double @qh_strtod(ptr noundef nonnull %160, ptr noundef nonnull %7) #13
  %.pre1435 = load ptr, ptr %7, align 8, !tbaa !5
  %.pre1436 = load i8, ptr %.pre1435, align 1, !tbaa !9
  %162 = icmp eq i8 %.pre1436, 44
  br i1 %162, label %163, label %.thread1470

163:                                              ; preds = %159
  %164 = getelementptr inbounds i8, ptr %.pre1435, i64 1
  store ptr %164, ptr %7, align 8, !tbaa !5
  %165 = call double @qh_strtod(ptr noundef nonnull %164, ptr noundef nonnull %7) #13
  %.pre1437 = load ptr, ptr %7, align 8, !tbaa !5
  %.pre1438 = load i8, ptr %.pre1437, align 1, !tbaa !9
  br label %169

.thread1470:                                      ; preds = %154, %156, %159
  %.16781475 = phi double [ %161, %159 ], [ 0.000000e+00, %156 ], [ 0.000000e+00, %154 ]
  %166 = phi i8 [ %.pre1436, %159 ], [ %.pre1434, %156 ], [ 0, %154 ]
  %.167514661473 = phi double [ %157, %159 ], [ %157, %156 ], [ %.0674.ph1072, %154 ]
  %167 = fmul double %.16781475, %.16781475
  %168 = call double @llvm.fmuladd.f64(double %.167514661473, double %.167514661473, double %167)
  %sqrt = call double @llvm.sqrt.f64(double %168)
  br label %169

169:                                              ; preds = %.thread1470, %163
  %.16781476 = phi double [ %161, %163 ], [ %.16781475, %.thread1470 ]
  %.167514661474 = phi double [ %157, %163 ], [ %.167514661473, %.thread1470 ]
  %170 = phi i8 [ %.pre1438, %163 ], [ %166, %.thread1470 ]
  %.1672 = phi double [ %165, %163 ], [ %sqrt, %.thread1470 ]
  %.not842 = icmp eq i8 %170, 0
  br i1 %.not842, label %.critedge9, label %171

171:                                              ; preds = %169
  %172 = load ptr, ptr %45, align 8, !tbaa !5
  %173 = sext i8 %170 to i64
  %174 = getelementptr inbounds i16, ptr %172, i64 %173
  %175 = load i16, ptr %174, align 2, !tbaa !10
  %176 = and i16 %175, 8192
  %.not843 = icmp eq i16 %176, 0
  br i1 %.not843, label %177, label %.critedge9

177:                                              ; preds = %171
  %178 = load ptr, ptr getelementptr inbounds (i8, ptr @rbox, i64 8), align 8, !tbaa !22
  call void (ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %178, i32 noundef 7069, ptr noundef nonnull @.str.5) #13
  br label %.critedge9

179:                                              ; preds = %55
  %180 = call double @qh_strtod(ptr noundef nonnull %56, ptr noundef nonnull %7) #13
  store double %180, ptr getelementptr inbounds (i8, ptr @rbox, i64 24), align 8, !tbaa !23
  br label %.critedge9

181:                                              ; preds = %55
  %.not838 = icmp eq ptr %.0614.ph1077, null
  %spec.select = select i1 %.not838, ptr %43, ptr %.0614.ph1077
  %182 = add nsw i32 %.0744.ph1049, 1
  %183 = load i8, ptr %56, align 1, !tbaa !9
  %.not8391039 = icmp eq i8 %183, 0
  br i1 %.not8391039, label %.critedge9, label %.lr.ph1041

.lr.ph1041:                                       ; preds = %181, %191
  %184 = phi i8 [ %193, %191 ], [ %183, %181 ]
  %185 = phi ptr [ %192, %191 ], [ %56, %181 ]
  %186 = load ptr, ptr %45, align 8, !tbaa !5
  %187 = sext i8 %184 to i64
  %188 = getelementptr inbounds i16, ptr %186, i64 %187
  %189 = load i16, ptr %188, align 2, !tbaa !10
  %190 = and i16 %189, 8192
  %.not840 = icmp eq i16 %190, 0
  br i1 %.not840, label %191, label %.critedge9

191:                                              ; preds = %.lr.ph1041
  %192 = getelementptr inbounds i8, ptr %185, i64 1
  store ptr %192, ptr %7, align 8, !tbaa !5
  %193 = load i8, ptr %192, align 1, !tbaa !9
  %.not839 = icmp eq i8 %193, 0
  br i1 %.not839, label %.critedge9, label %.lr.ph1041, !llvm.loop !24

194:                                              ; preds = %55
  %195 = call double @qh_strtod(ptr noundef nonnull %56, ptr noundef nonnull %7) #13
  br label %.critedge9

196:                                              ; preds = %55
  %197 = load ptr, ptr %45, align 8, !tbaa !5
  %198 = load i8, ptr %56, align 1, !tbaa !9
  %199 = sext i8 %198 to i64
  %200 = getelementptr inbounds i16, ptr %197, i64 %199
  %201 = load i16, ptr %200, align 2, !tbaa !10
  %202 = and i16 %201, 2048
  %.not837 = icmp eq i16 %202, 0
  br i1 %.not837, label %.critedge9, label %203

203:                                              ; preds = %196
  %204 = call double @qh_strtod(ptr noundef nonnull %56, ptr noundef nonnull %7) #13
  br label %.critedge9

205:                                              ; preds = %55
  %206 = load ptr, ptr getelementptr inbounds (i8, ptr @rbox, i64 8), align 8, !tbaa !22
  call void (ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %206, i32 noundef 6352, ptr noundef nonnull @.str.6, ptr noundef nonnull %43) #13
  call void @qh_errexit_rbox(i32 noundef 1)
  br label %.critedge9

.critedge9:                                       ; preds = %191, %.lr.ph1041, %181, %203, %196, %152, %145, %143, %136, %86, %55, %169, %171, %177, %134, %131, %129, %125, %93, %78, %80, %67, %69, %205, %194, %179, %98, %97, %96, %95, %85, %84, %83, %82
  %.2766 = phi i32 [ %.0764.ph1044, %205 ], [ %.0764.ph1044, %194 ], [ %.0764.ph1044, %179 ], [ %.0764.ph1044, %171 ], [ %.0764.ph1044, %177 ], [ %.0764.ph1044, %169 ], [ %.0764.ph1044, %134 ], [ %.0764.ph1044, %131 ], [ %.17651705, %129 ], [ %.17651705, %125 ], [ %.0764.ph1044, %98 ], [ %.0764.ph1044, %97 ], [ %.0764.ph1044, %96 ], [ %.0764.ph1044, %95 ], [ %.0764.ph1044, %93 ], [ %.0764.ph1044, %85 ], [ %.0764.ph1044, %84 ], [ %.0764.ph1044, %83 ], [ %.0764.ph1044, %82 ], [ %.0764.ph1044, %80 ], [ %.0764.ph1044, %78 ], [ %.0764.ph1044, %69 ], [ %.0764.ph1044, %67 ], [ %.0764.ph1044, %55 ], [ %.0764.ph1044, %86 ], [ %.0764.ph1044, %136 ], [ %.0764.ph1044, %143 ], [ %.0764.ph1044, %145 ], [ %.0764.ph1044, %152 ], [ %.0764.ph1044, %196 ], [ %.0764.ph1044, %203 ], [ %.0764.ph1044, %181 ], [ %.0764.ph1044, %.lr.ph1041 ], [ %.0764.ph1044, %191 ]
  %.2763 = phi i32 [ %.0761.ph1045, %205 ], [ %.0761.ph1045, %194 ], [ %.0761.ph1045, %179 ], [ %.0761.ph1045, %171 ], [ %.0761.ph1045, %177 ], [ %.0761.ph1045, %169 ], [ %.0761.ph1045, %134 ], [ %.0761.ph1045, %131 ], [ %.1762145714621704, %129 ], [ %.1762145714621704, %125 ], [ %.0761.ph1045, %98 ], [ %.0761.ph1045, %97 ], [ %.0761.ph1045, %96 ], [ %.0761.ph1045, %95 ], [ %.0761.ph1045, %93 ], [ %.0761.ph1045, %85 ], [ %.0761.ph1045, %84 ], [ %.0761.ph1045, %83 ], [ %.0761.ph1045, %82 ], [ %.0761.ph1045, %80 ], [ %.0761.ph1045, %78 ], [ %.0761.ph1045, %69 ], [ %.0761.ph1045, %67 ], [ %.0761.ph1045, %55 ], [ %.0761.ph1045, %86 ], [ %.0761.ph1045, %136 ], [ %.0761.ph1045, %143 ], [ %.0761.ph1045, %145 ], [ %.0761.ph1045, %152 ], [ %.0761.ph1045, %196 ], [ %.0761.ph1045, %203 ], [ %.0761.ph1045, %181 ], [ %.0761.ph1045, %.lr.ph1041 ], [ %.0761.ph1045, %191 ]
  %.1756 = phi i32 [ %.0755.ph1046, %205 ], [ %.0755.ph1046, %194 ], [ %.0755.ph1046, %179 ], [ %.0755.ph1046, %171 ], [ %.0755.ph1046, %177 ], [ %.0755.ph1046, %169 ], [ %.0755.ph1046, %134 ], [ %.0755.ph1046, %131 ], [ %.0755.ph1046, %129 ], [ %.0755.ph1046, %125 ], [ %.0755.ph1046, %98 ], [ %.0755.ph1046, %97 ], [ %.0755.ph1046, %96 ], [ %.0755.ph1046, %95 ], [ %94, %93 ], [ %.0755.ph1046, %85 ], [ %.0755.ph1046, %84 ], [ %.0755.ph1046, %83 ], [ %.0755.ph1046, %82 ], [ %.0755.ph1046, %80 ], [ %.0755.ph1046, %78 ], [ %.0755.ph1046, %69 ], [ %.0755.ph1046, %67 ], [ %.0755.ph1046, %55 ], [ %.0755.ph1046, %86 ], [ %.0755.ph1046, %136 ], [ %.0755.ph1046, %143 ], [ %.0755.ph1046, %145 ], [ %.0755.ph1046, %152 ], [ %.0755.ph1046, %196 ], [ %.0755.ph1046, %203 ], [ %.0755.ph1046, %181 ], [ %.0755.ph1046, %.lr.ph1041 ], [ %.0755.ph1046, %191 ]
  %.1751 = phi i32 [ %.0750.ph1047, %205 ], [ %.0750.ph1047, %194 ], [ %.0750.ph1047, %179 ], [ %.0750.ph1047, %171 ], [ %.0750.ph1047, %177 ], [ %.0750.ph1047, %169 ], [ %132, %134 ], [ %132, %131 ], [ %.0750.ph1047, %129 ], [ %.0750.ph1047, %125 ], [ %.0750.ph1047, %98 ], [ %.0750.ph1047, %97 ], [ %.0750.ph1047, %96 ], [ %.0750.ph1047, %95 ], [ %.0750.ph1047, %93 ], [ %.0750.ph1047, %85 ], [ %.0750.ph1047, %84 ], [ %.0750.ph1047, %83 ], [ %.0750.ph1047, %82 ], [ %.0750.ph1047, %80 ], [ %.0750.ph1047, %78 ], [ %.0750.ph1047, %69 ], [ %.0750.ph1047, %67 ], [ %.0750.ph1047, %55 ], [ %.0750.ph1047, %86 ], [ %.0750.ph1047, %136 ], [ %.0750.ph1047, %143 ], [ %.0750.ph1047, %145 ], [ %.0750.ph1047, %152 ], [ %.0750.ph1047, %196 ], [ %.0750.ph1047, %203 ], [ %.0750.ph1047, %181 ], [ %.0750.ph1047, %.lr.ph1041 ], [ %.0750.ph1047, %191 ]
  %.1745 = phi i32 [ %.0744.ph1049, %205 ], [ %.0744.ph1049, %194 ], [ %.0744.ph1049, %179 ], [ %.0744.ph1049, %171 ], [ %.0744.ph1049, %177 ], [ %.0744.ph1049, %169 ], [ %.0744.ph1049, %134 ], [ %.0744.ph1049, %131 ], [ %.0744.ph1049, %129 ], [ %.0744.ph1049, %125 ], [ %.0744.ph1049, %98 ], [ %.0744.ph1049, %97 ], [ %.0744.ph1049, %96 ], [ %.0744.ph1049, %95 ], [ %.0744.ph1049, %93 ], [ %.0744.ph1049, %85 ], [ %.0744.ph1049, %84 ], [ %.0744.ph1049, %83 ], [ %.0744.ph1049, %82 ], [ %.0744.ph1049, %80 ], [ %.0744.ph1049, %78 ], [ %.0744.ph1049, %69 ], [ %.0744.ph1049, %67 ], [ %.0744.ph1049, %55 ], [ %.0744.ph1049, %86 ], [ %.0744.ph1049, %136 ], [ %.0744.ph1049, %143 ], [ %.0744.ph1049, %145 ], [ %.0744.ph1049, %152 ], [ %.0744.ph1049, %196 ], [ %.0744.ph1049, %203 ], [ %182, %181 ], [ %182, %.lr.ph1041 ], [ %182, %191 ]
  %.1742 = phi i32 [ %.0741.ph1050, %205 ], [ %.0741.ph1050, %194 ], [ %.0741.ph1050, %179 ], [ %.0741.ph1050, %171 ], [ %.0741.ph1050, %177 ], [ %.0741.ph1050, %169 ], [ %.0741.ph1050, %134 ], [ %.0741.ph1050, %131 ], [ %.0741.ph1050, %129 ], [ %.0741.ph1050, %125 ], [ %.0741.ph1050, %98 ], [ %.0741.ph1050, %97 ], [ %.0741.ph1050, %96 ], [ %.0741.ph1050, %95 ], [ %.0741.ph1050, %93 ], [ 1, %85 ], [ %.0741.ph1050, %84 ], [ %.0741.ph1050, %83 ], [ %.0741.ph1050, %82 ], [ %.0741.ph1050, %80 ], [ %.0741.ph1050, %78 ], [ %.0741.ph1050, %69 ], [ %.0741.ph1050, %67 ], [ %.0741.ph1050, %55 ], [ %.0741.ph1050, %86 ], [ %.0741.ph1050, %136 ], [ %.0741.ph1050, %143 ], [ %.0741.ph1050, %145 ], [ %.0741.ph1050, %152 ], [ %.0741.ph1050, %196 ], [ %.0741.ph1050, %203 ], [ %.0741.ph1050, %181 ], [ %.0741.ph1050, %.lr.ph1041 ], [ %.0741.ph1050, %191 ]
  %.1740 = phi i32 [ %.0739.ph1051, %205 ], [ %.0739.ph1051, %194 ], [ %.0739.ph1051, %179 ], [ %.0739.ph1051, %171 ], [ %.0739.ph1051, %177 ], [ %.0739.ph1051, %169 ], [ %.0739.ph1051, %134 ], [ %.0739.ph1051, %131 ], [ %.0739.ph1051, %129 ], [ %.0739.ph1051, %125 ], [ %.0739.ph1051, %98 ], [ %.0739.ph1051, %97 ], [ %.0739.ph1051, %96 ], [ %.0739.ph1051, %95 ], [ %.0739.ph1051, %93 ], [ %.0739.ph1051, %85 ], [ %.0739.ph1051, %84 ], [ %.0739.ph1051, %83 ], [ %.0739.ph1051, %82 ], [ %.0739.ph1051, %80 ], [ %.0739.ph1051, %78 ], [ %.0739.ph1051, %69 ], [ %.0739.ph1051, %67 ], [ %.0739.ph1051, %55 ], [ %.0739.ph1051, %86 ], [ %.0739.ph1051, %136 ], [ %.0739.ph1051, %143 ], [ %.0739.ph1051, %145 ], [ %.0739.ph1051, %152 ], [ 1, %196 ], [ 1, %203 ], [ %.0739.ph1051, %181 ], [ %.0739.ph1051, %.lr.ph1041 ], [ %.0739.ph1051, %191 ]
  %.1738 = phi i32 [ %.0737.ph1052, %205 ], [ %.0737.ph1052, %194 ], [ %.0737.ph1052, %179 ], [ %.0737.ph1052, %171 ], [ %.0737.ph1052, %177 ], [ %.0737.ph1052, %169 ], [ %.0737.ph1052, %134 ], [ %.0737.ph1052, %131 ], [ %.0737.ph1052, %129 ], [ %.0737.ph1052, %125 ], [ %.0737.ph1052, %98 ], [ %.0737.ph1052, %97 ], [ %.0737.ph1052, %96 ], [ %.0737.ph1052, %95 ], [ %.0737.ph1052, %93 ], [ %.0737.ph1052, %85 ], [ %.0737.ph1052, %84 ], [ %.0737.ph1052, %83 ], [ %.0737.ph1052, %82 ], [ %.0737.ph1052, %80 ], [ %.0737.ph1052, %78 ], [ %.0737.ph1052, %69 ], [ %.0737.ph1052, %67 ], [ 1, %55 ], [ %.0737.ph1052, %86 ], [ %.0737.ph1052, %136 ], [ %.0737.ph1052, %143 ], [ %.0737.ph1052, %145 ], [ %.0737.ph1052, %152 ], [ %.0737.ph1052, %196 ], [ %.0737.ph1052, %203 ], [ %.0737.ph1052, %181 ], [ %.0737.ph1052, %.lr.ph1041 ], [ %.0737.ph1052, %191 ]
  %.1736 = phi i32 [ %.0735.ph1053, %205 ], [ %.0735.ph1053, %194 ], [ %.0735.ph1053, %179 ], [ %.0735.ph1053, %171 ], [ %.0735.ph1053, %177 ], [ %.0735.ph1053, %169 ], [ %.0735.ph1053, %134 ], [ %.0735.ph1053, %131 ], [ %.0735.ph1053, %129 ], [ %.0735.ph1053, %125 ], [ %.0735.ph1053, %98 ], [ %.0735.ph1053, %97 ], [ %.0735.ph1053, %96 ], [ %.0735.ph1053, %95 ], [ %.0735.ph1053, %93 ], [ %.0735.ph1053, %85 ], [ %.0735.ph1053, %84 ], [ %.0735.ph1053, %83 ], [ %.0735.ph1053, %82 ], [ %.0735.ph1053, %80 ], [ %.0735.ph1053, %78 ], [ %.0735.ph1053, %69 ], [ %.0735.ph1053, %67 ], [ %.0735.ph1053, %55 ], [ %.0735.ph1053, %86 ], [ %.0735.ph1053, %136 ], [ %.0735.ph1053, %143 ], [ 1, %145 ], [ 1, %152 ], [ %.0735.ph1053, %196 ], [ %.0735.ph1053, %203 ], [ %.0735.ph1053, %181 ], [ %.0735.ph1053, %.lr.ph1041 ], [ %.0735.ph1053, %191 ]
  %.1733 = phi i32 [ %.0732.ph1054, %205 ], [ %.0732.ph1054, %194 ], [ %.0732.ph1054, %179 ], [ %.0732.ph1054, %171 ], [ %.0732.ph1054, %177 ], [ %.0732.ph1054, %169 ], [ %.0732.ph1054, %134 ], [ %.0732.ph1054, %131 ], [ %.0732.ph1054, %129 ], [ %.0732.ph1054, %125 ], [ %.0732.ph1054, %98 ], [ %.0732.ph1054, %97 ], [ %.0732.ph1054, %96 ], [ %.0732.ph1054, %95 ], [ %.0732.ph1054, %93 ], [ %.0732.ph1054, %85 ], [ 1, %84 ], [ %.0732.ph1054, %83 ], [ %.0732.ph1054, %82 ], [ %.0732.ph1054, %80 ], [ %.0732.ph1054, %78 ], [ %.0732.ph1054, %69 ], [ %.0732.ph1054, %67 ], [ %.0732.ph1054, %55 ], [ %.0732.ph1054, %86 ], [ %.0732.ph1054, %136 ], [ %.0732.ph1054, %143 ], [ %.0732.ph1054, %145 ], [ %.0732.ph1054, %152 ], [ %.0732.ph1054, %196 ], [ %.0732.ph1054, %203 ], [ %.0732.ph1054, %181 ], [ %.0732.ph1054, %.lr.ph1041 ], [ %.0732.ph1054, %191 ]
  %.1731 = phi i32 [ %.0730.ph1055, %205 ], [ 1, %194 ], [ %.0730.ph1055, %179 ], [ %.0730.ph1055, %171 ], [ %.0730.ph1055, %177 ], [ %.0730.ph1055, %169 ], [ %.0730.ph1055, %134 ], [ %.0730.ph1055, %131 ], [ %.0730.ph1055, %129 ], [ %.0730.ph1055, %125 ], [ %.0730.ph1055, %98 ], [ %.0730.ph1055, %97 ], [ %.0730.ph1055, %96 ], [ %.0730.ph1055, %95 ], [ %.0730.ph1055, %93 ], [ %.0730.ph1055, %85 ], [ %.0730.ph1055, %84 ], [ %.0730.ph1055, %83 ], [ %.0730.ph1055, %82 ], [ %.0730.ph1055, %80 ], [ %.0730.ph1055, %78 ], [ %.0730.ph1055, %69 ], [ %.0730.ph1055, %67 ], [ %.0730.ph1055, %55 ], [ %.0730.ph1055, %86 ], [ %.0730.ph1055, %136 ], [ %.0730.ph1055, %143 ], [ %.0730.ph1055, %145 ], [ %.0730.ph1055, %152 ], [ %.0730.ph1055, %196 ], [ %.0730.ph1055, %203 ], [ %.0730.ph1055, %181 ], [ %.0730.ph1055, %.lr.ph1041 ], [ %.0730.ph1055, %191 ]
  %.1729 = phi i32 [ %.0728.ph1056, %205 ], [ %.0728.ph1056, %194 ], [ %.0728.ph1056, %179 ], [ %.0728.ph1056, %171 ], [ %.0728.ph1056, %177 ], [ %.0728.ph1056, %169 ], [ %.0728.ph1056, %134 ], [ %.0728.ph1056, %131 ], [ %.0728.ph1056, %129 ], [ %.0728.ph1056, %125 ], [ %.0728.ph1056, %98 ], [ %.0728.ph1056, %97 ], [ %.0728.ph1056, %96 ], [ %.0728.ph1056, %95 ], [ %.0728.ph1056, %93 ], [ %.0728.ph1056, %85 ], [ %.0728.ph1056, %84 ], [ %.0728.ph1056, %83 ], [ %.0728.ph1056, %82 ], [ %.0728.ph1056, %80 ], [ %.0728.ph1056, %78 ], [ 1, %69 ], [ 1, %67 ], [ %.0728.ph1056, %55 ], [ %.0728.ph1056, %86 ], [ %.0728.ph1056, %136 ], [ %.0728.ph1056, %143 ], [ %.0728.ph1056, %145 ], [ %.0728.ph1056, %152 ], [ %.0728.ph1056, %196 ], [ %.0728.ph1056, %203 ], [ %.0728.ph1056, %181 ], [ %.0728.ph1056, %.lr.ph1041 ], [ %.0728.ph1056, %191 ]
  %.1722 = phi i32 [ %.0721.ph1057, %205 ], [ %.0721.ph1057, %194 ], [ %.0721.ph1057, %179 ], [ %.0721.ph1057, %171 ], [ %.0721.ph1057, %177 ], [ %.0721.ph1057, %169 ], [ %.0721.ph1057, %134 ], [ %.0721.ph1057, %131 ], [ %.0721.ph1057, %129 ], [ %.0721.ph1057, %125 ], [ %.0721.ph1057, %98 ], [ %.0721.ph1057, %97 ], [ %.0721.ph1057, %96 ], [ %.0721.ph1057, %95 ], [ %.0721.ph1057, %93 ], [ %.0721.ph1057, %85 ], [ %.0721.ph1057, %84 ], [ %.0721.ph1057, %83 ], [ %.0721.ph1057, %82 ], [ %.0721.ph1057, %80 ], [ %.0721.ph1057, %78 ], [ %.0721.ph1057, %69 ], [ %.0721.ph1057, %67 ], [ %.0721.ph1057, %55 ], [ %.0721.ph1057, %86 ], [ 1, %136 ], [ 1, %143 ], [ %.0721.ph1057, %145 ], [ %.0721.ph1057, %152 ], [ %.0721.ph1057, %196 ], [ %.0721.ph1057, %203 ], [ %.0721.ph1057, %181 ], [ %.0721.ph1057, %.lr.ph1041 ], [ %.0721.ph1057, %191 ]
  %.1720 = phi i32 [ %.0719.ph1058, %205 ], [ %.0719.ph1058, %194 ], [ %.0719.ph1058, %179 ], [ %.0719.ph1058, %171 ], [ %.0719.ph1058, %177 ], [ %.0719.ph1058, %169 ], [ %.0719.ph1058, %134 ], [ %.0719.ph1058, %131 ], [ %.0719.ph1058, %129 ], [ %.0719.ph1058, %125 ], [ %.0719.ph1058, %98 ], [ %.0719.ph1058, %97 ], [ %.0719.ph1058, %96 ], [ %.0719.ph1058, %95 ], [ %.0719.ph1058, %93 ], [ %.0719.ph1058, %85 ], [ %.0719.ph1058, %84 ], [ %.0719.ph1058, %83 ], [ 1, %82 ], [ %.0719.ph1058, %80 ], [ %.0719.ph1058, %78 ], [ %.0719.ph1058, %69 ], [ %.0719.ph1058, %67 ], [ %.0719.ph1058, %55 ], [ %.0719.ph1058, %86 ], [ %.0719.ph1058, %136 ], [ %.0719.ph1058, %143 ], [ %.0719.ph1058, %145 ], [ %.0719.ph1058, %152 ], [ %.0719.ph1058, %196 ], [ %.0719.ph1058, %203 ], [ %.0719.ph1058, %181 ], [ %.0719.ph1058, %.lr.ph1041 ], [ %.0719.ph1058, %191 ]
  %.1718 = phi i32 [ %.0717.ph1059, %205 ], [ %.0717.ph1059, %194 ], [ %.0717.ph1059, %179 ], [ %.0717.ph1059, %171 ], [ %.0717.ph1059, %177 ], [ %.0717.ph1059, %169 ], [ %.0717.ph1059, %134 ], [ %.0717.ph1059, %131 ], [ %.0717.ph1059, %129 ], [ %.0717.ph1059, %125 ], [ %.0717.ph1059, %98 ], [ %.0717.ph1059, %97 ], [ %.0717.ph1059, %96 ], [ %.0717.ph1059, %95 ], [ %.0717.ph1059, %93 ], [ %.0717.ph1059, %85 ], [ %.0717.ph1059, %84 ], [ 1, %83 ], [ %.0717.ph1059, %82 ], [ %.0717.ph1059, %80 ], [ %.0717.ph1059, %78 ], [ %.0717.ph1059, %69 ], [ %.0717.ph1059, %67 ], [ %.0717.ph1059, %55 ], [ %.0717.ph1059, %86 ], [ %.0717.ph1059, %136 ], [ %.0717.ph1059, %143 ], [ %.0717.ph1059, %145 ], [ %.0717.ph1059, %152 ], [ %.0717.ph1059, %196 ], [ %.0717.ph1059, %203 ], [ %.0717.ph1059, %181 ], [ %.0717.ph1059, %.lr.ph1041 ], [ %.0717.ph1059, %191 ]
  %.1716 = phi i32 [ %.0715.ph1060, %205 ], [ %.0715.ph1060, %194 ], [ %.0715.ph1060, %179 ], [ %.0715.ph1060, %171 ], [ %.0715.ph1060, %177 ], [ %.0715.ph1060, %169 ], [ %.0715.ph1060, %134 ], [ %.0715.ph1060, %131 ], [ %.0715.ph1060, %129 ], [ %.0715.ph1060, %125 ], [ %.0715.ph1060, %98 ], [ %.0715.ph1060, %97 ], [ %.0715.ph1060, %96 ], [ %.0715.ph1060, %95 ], [ %.0715.ph1060, %93 ], [ %.0715.ph1060, %85 ], [ %.0715.ph1060, %84 ], [ %.0715.ph1060, %83 ], [ %.0715.ph1060, %82 ], [ 1, %80 ], [ 1, %78 ], [ %.0715.ph1060, %69 ], [ %.0715.ph1060, %67 ], [ %.0715.ph1060, %55 ], [ %.0715.ph1060, %86 ], [ %.0715.ph1060, %136 ], [ %.0715.ph1060, %143 ], [ %.0715.ph1060, %145 ], [ %.0715.ph1060, %152 ], [ %.0715.ph1060, %196 ], [ %.0715.ph1060, %203 ], [ %.0715.ph1060, %181 ], [ %.0715.ph1060, %.lr.ph1041 ], [ %.0715.ph1060, %191 ]
  %.1714 = phi i32 [ %.0713.ph1061, %205 ], [ %.0713.ph1061, %194 ], [ %.0713.ph1061, %179 ], [ %.0713.ph1061, %171 ], [ %.0713.ph1061, %177 ], [ %.0713.ph1061, %169 ], [ %.0713.ph1061, %134 ], [ %.0713.ph1061, %131 ], [ %.0713.ph1061, %129 ], [ %.0713.ph1061, %125 ], [ %.0713.ph1061, %98 ], [ %.0713.ph1061, %97 ], [ %.0713.ph1061, %96 ], [ %.0713.ph1061, %95 ], [ 0, %93 ], [ %.0713.ph1061, %85 ], [ %.0713.ph1061, %84 ], [ %.0713.ph1061, %83 ], [ %.0713.ph1061, %82 ], [ %.0713.ph1061, %80 ], [ %.0713.ph1061, %78 ], [ %.0713.ph1061, %69 ], [ %.0713.ph1061, %67 ], [ %.0713.ph1061, %55 ], [ 1, %86 ], [ %.0713.ph1061, %136 ], [ %.0713.ph1061, %143 ], [ %.0713.ph1061, %145 ], [ %.0713.ph1061, %152 ], [ %.0713.ph1061, %196 ], [ %.0713.ph1061, %203 ], [ %.0713.ph1061, %181 ], [ %.0713.ph1061, %.lr.ph1041 ], [ %.0713.ph1061, %191 ]
  %.1712 = phi i32 [ %.0711.ph1062, %205 ], [ %.0711.ph1062, %194 ], [ %.0711.ph1062, %179 ], [ %.0711.ph1062, %171 ], [ %.0711.ph1062, %177 ], [ %.0711.ph1062, %169 ], [ %.0711.ph1062, %134 ], [ %.0711.ph1062, %131 ], [ %.0711.ph1062, %129 ], [ %.0711.ph1062, %125 ], [ %.0711.ph1062, %98 ], [ %.0711.ph1062, %97 ], [ %.0711.ph1062, %96 ], [ %.0711.ph1062, %95 ], [ 1, %93 ], [ %.0711.ph1062, %85 ], [ %.0711.ph1062, %84 ], [ %.0711.ph1062, %83 ], [ %.0711.ph1062, %82 ], [ %.0711.ph1062, %80 ], [ %.0711.ph1062, %78 ], [ %.0711.ph1062, %69 ], [ %.0711.ph1062, %67 ], [ %.0711.ph1062, %55 ], [ 1, %86 ], [ %.0711.ph1062, %136 ], [ %.0711.ph1062, %143 ], [ %.0711.ph1062, %145 ], [ %.0711.ph1062, %152 ], [ %.0711.ph1062, %196 ], [ %.0711.ph1062, %203 ], [ %.0711.ph1062, %181 ], [ %.0711.ph1062, %.lr.ph1041 ], [ %.0711.ph1062, %191 ]
  %.1710 = phi i32 [ %.0709.ph1063, %205 ], [ %.0709.ph1063, %194 ], [ %.0709.ph1063, %179 ], [ %.0709.ph1063, %171 ], [ %.0709.ph1063, %177 ], [ %.0709.ph1063, %169 ], [ %.0709.ph1063, %134 ], [ %.0709.ph1063, %131 ], [ %.0709.ph1063, %129 ], [ %.0709.ph1063, %125 ], [ 1, %98 ], [ %.0709.ph1063, %97 ], [ %.0709.ph1063, %96 ], [ %.0709.ph1063, %95 ], [ %.0709.ph1063, %93 ], [ %.0709.ph1063, %85 ], [ %.0709.ph1063, %84 ], [ %.0709.ph1063, %83 ], [ %.0709.ph1063, %82 ], [ %.0709.ph1063, %80 ], [ %.0709.ph1063, %78 ], [ %.0709.ph1063, %69 ], [ %.0709.ph1063, %67 ], [ %.0709.ph1063, %55 ], [ %.0709.ph1063, %86 ], [ %.0709.ph1063, %136 ], [ %.0709.ph1063, %143 ], [ %.0709.ph1063, %145 ], [ %.0709.ph1063, %152 ], [ %.0709.ph1063, %196 ], [ %.0709.ph1063, %203 ], [ %.0709.ph1063, %181 ], [ %.0709.ph1063, %.lr.ph1041 ], [ %.0709.ph1063, %191 ]
  %.1708 = phi i32 [ %.0707.ph1064, %205 ], [ %.0707.ph1064, %194 ], [ %.0707.ph1064, %179 ], [ %.0707.ph1064, %171 ], [ %.0707.ph1064, %177 ], [ %.0707.ph1064, %169 ], [ %.0707.ph1064, %134 ], [ %.0707.ph1064, %131 ], [ %.0707.ph1064, %129 ], [ %.0707.ph1064, %125 ], [ %.0707.ph1064, %98 ], [ %.0707.ph1064, %97 ], [ %.0707.ph1064, %96 ], [ 1, %95 ], [ %.0707.ph1064, %93 ], [ %.0707.ph1064, %85 ], [ %.0707.ph1064, %84 ], [ %.0707.ph1064, %83 ], [ %.0707.ph1064, %82 ], [ %.0707.ph1064, %80 ], [ %.0707.ph1064, %78 ], [ %.0707.ph1064, %69 ], [ %.0707.ph1064, %67 ], [ %.0707.ph1064, %55 ], [ %.0707.ph1064, %86 ], [ %.0707.ph1064, %136 ], [ %.0707.ph1064, %143 ], [ %.0707.ph1064, %145 ], [ %.0707.ph1064, %152 ], [ %.0707.ph1064, %196 ], [ %.0707.ph1064, %203 ], [ %.0707.ph1064, %181 ], [ %.0707.ph1064, %.lr.ph1041 ], [ %.0707.ph1064, %191 ]
  %.1706 = phi i32 [ %.0705.ph1065, %205 ], [ %.0705.ph1065, %194 ], [ %.0705.ph1065, %179 ], [ %.0705.ph1065, %171 ], [ %.0705.ph1065, %177 ], [ %.0705.ph1065, %169 ], [ %.0705.ph1065, %134 ], [ %.0705.ph1065, %131 ], [ %.0705.ph1065, %129 ], [ %.0705.ph1065, %125 ], [ %.0705.ph1065, %98 ], [ %.0705.ph1065, %97 ], [ 1, %96 ], [ %.0705.ph1065, %95 ], [ %.0705.ph1065, %93 ], [ %.0705.ph1065, %85 ], [ %.0705.ph1065, %84 ], [ %.0705.ph1065, %83 ], [ %.0705.ph1065, %82 ], [ %.0705.ph1065, %80 ], [ %.0705.ph1065, %78 ], [ %.0705.ph1065, %69 ], [ %.0705.ph1065, %67 ], [ %.0705.ph1065, %55 ], [ %.0705.ph1065, %86 ], [ %.0705.ph1065, %136 ], [ %.0705.ph1065, %143 ], [ %.0705.ph1065, %145 ], [ %.0705.ph1065, %152 ], [ %.0705.ph1065, %196 ], [ %.0705.ph1065, %203 ], [ %.0705.ph1065, %181 ], [ %.0705.ph1065, %.lr.ph1041 ], [ %.0705.ph1065, %191 ]
  %.1704 = phi i32 [ %.0703.ph1066, %205 ], [ %.0703.ph1066, %194 ], [ %.0703.ph1066, %179 ], [ 1, %171 ], [ 1, %177 ], [ 1, %169 ], [ %.0703.ph1066, %134 ], [ %.0703.ph1066, %131 ], [ %.0703.ph1066, %129 ], [ %.0703.ph1066, %125 ], [ %.0703.ph1066, %98 ], [ %.0703.ph1066, %97 ], [ %.0703.ph1066, %96 ], [ %.0703.ph1066, %95 ], [ %.0703.ph1066, %93 ], [ %.0703.ph1066, %85 ], [ %.0703.ph1066, %84 ], [ %.0703.ph1066, %83 ], [ %.0703.ph1066, %82 ], [ %.0703.ph1066, %80 ], [ %.0703.ph1066, %78 ], [ %.0703.ph1066, %69 ], [ %.0703.ph1066, %67 ], [ %.0703.ph1066, %55 ], [ %.0703.ph1066, %86 ], [ %.0703.ph1066, %136 ], [ %.0703.ph1066, %143 ], [ %.0703.ph1066, %145 ], [ %.0703.ph1066, %152 ], [ %.0703.ph1066, %196 ], [ %.0703.ph1066, %203 ], [ %.0703.ph1066, %181 ], [ %.0703.ph1066, %.lr.ph1041 ], [ %.0703.ph1066, %191 ]
  %.1702 = phi double [ %.0701.ph1067, %205 ], [ %195, %194 ], [ %.0701.ph1067, %179 ], [ %.0701.ph1067, %171 ], [ %.0701.ph1067, %177 ], [ %.0701.ph1067, %169 ], [ %.0701.ph1067, %134 ], [ %.0701.ph1067, %131 ], [ %.0701.ph1067, %129 ], [ %.0701.ph1067, %125 ], [ %.0701.ph1067, %98 ], [ %.0701.ph1067, %97 ], [ %.0701.ph1067, %96 ], [ %.0701.ph1067, %95 ], [ %.0701.ph1067, %93 ], [ %.0701.ph1067, %85 ], [ %.0701.ph1067, %84 ], [ %.0701.ph1067, %83 ], [ %.0701.ph1067, %82 ], [ %.0701.ph1067, %80 ], [ %.0701.ph1067, %78 ], [ %.0701.ph1067, %69 ], [ %.0701.ph1067, %67 ], [ %.0701.ph1067, %55 ], [ %.0701.ph1067, %86 ], [ %.0701.ph1067, %136 ], [ %.0701.ph1067, %143 ], [ %.0701.ph1067, %145 ], [ %.0701.ph1067, %152 ], [ %.0701.ph1067, %196 ], [ %.0701.ph1067, %203 ], [ %.0701.ph1067, %181 ], [ %.0701.ph1067, %.lr.ph1041 ], [ %.0701.ph1067, %191 ]
  %.2694 = phi double [ %.0692.ph1068, %205 ], [ %.0692.ph1068, %194 ], [ %.0692.ph1068, %179 ], [ %.0692.ph1068, %171 ], [ %.0692.ph1068, %177 ], [ %.0692.ph1068, %169 ], [ %.0692.ph1068, %134 ], [ %.0692.ph1068, %131 ], [ %.0692.ph1068, %129 ], [ %.0692.ph1068, %125 ], [ %.0692.ph1068, %98 ], [ %.0692.ph1068, %97 ], [ %.0692.ph1068, %96 ], [ %.0692.ph1068, %95 ], [ %.0692.ph1068, %93 ], [ %.0692.ph1068, %85 ], [ %.0692.ph1068, %84 ], [ %.0692.ph1068, %83 ], [ %.0692.ph1068, %82 ], [ %.0692.ph1068, %80 ], [ %.0692.ph1068, %78 ], [ %.0692.ph1068, %69 ], [ %.0692.ph1068, %67 ], [ %.0692.ph1068, %55 ], [ %.0692.ph1068, %86 ], [ 5.000000e-01, %136 ], [ %144, %143 ], [ %.0692.ph1068, %145 ], [ %.0692.ph1068, %152 ], [ %.0692.ph1068, %196 ], [ %.0692.ph1068, %203 ], [ %.0692.ph1068, %181 ], [ %.0692.ph1068, %.lr.ph1041 ], [ %.0692.ph1068, %191 ]
  %.3690 = phi double [ %.0687.ph1069, %205 ], [ %.0687.ph1069, %194 ], [ %.0687.ph1069, %179 ], [ %.0687.ph1069, %171 ], [ %.0687.ph1069, %177 ], [ %.0687.ph1069, %169 ], [ %.0687.ph1069, %134 ], [ %.0687.ph1069, %131 ], [ %.0687.ph1069, %129 ], [ %.0687.ph1069, %125 ], [ %.0687.ph1069, %98 ], [ %.0687.ph1069, %97 ], [ %.0687.ph1069, %96 ], [ %.0687.ph1069, %95 ], [ %.0687.ph1069, %93 ], [ %.0687.ph1069, %85 ], [ %.0687.ph1069, %84 ], [ %.0687.ph1069, %83 ], [ %.0687.ph1069, %82 ], [ %.0687.ph1069, %80 ], [ %.0687.ph1069, %78 ], [ %.0687.ph1069, %69 ], [ %.0687.ph1069, %67 ], [ %.0687.ph1069, %55 ], [ %.0687.ph1069, %86 ], [ %.0687.ph1069, %136 ], [ %.0687.ph1069, %143 ], [ 1.000000e+01, %145 ], [ %153, %152 ], [ 1.000000e+00, %196 ], [ %204, %203 ], [ %.0687.ph1069, %181 ], [ %.0687.ph1069, %.lr.ph1041 ], [ %.0687.ph1069, %191 ]
  %.2686 = phi double [ %.0684.ph1070, %205 ], [ %.0684.ph1070, %194 ], [ %.0684.ph1070, %179 ], [ %.0684.ph1070, %171 ], [ %.0684.ph1070, %177 ], [ %.0684.ph1070, %169 ], [ %.0684.ph1070, %134 ], [ %.0684.ph1070, %131 ], [ %.168514631703, %129 ], [ %.168514631703, %125 ], [ %.0684.ph1070, %98 ], [ %.0684.ph1070, %97 ], [ %.0684.ph1070, %96 ], [ %.0684.ph1070, %95 ], [ %.0684.ph1070, %93 ], [ %.0684.ph1070, %85 ], [ %.0684.ph1070, %84 ], [ %.0684.ph1070, %83 ], [ %.0684.ph1070, %82 ], [ %.0684.ph1070, %80 ], [ %.0684.ph1070, %78 ], [ %.0684.ph1070, %69 ], [ %.0684.ph1070, %67 ], [ %.0684.ph1070, %55 ], [ %.0684.ph1070, %86 ], [ %.0684.ph1070, %136 ], [ %.0684.ph1070, %143 ], [ %.0684.ph1070, %145 ], [ %.0684.ph1070, %152 ], [ %.0684.ph1070, %196 ], [ %.0684.ph1070, %203 ], [ %.0684.ph1070, %181 ], [ %.0684.ph1070, %.lr.ph1041 ], [ %.0684.ph1070, %191 ]
  %.2679 = phi double [ %.0677.ph1071, %205 ], [ %.0677.ph1071, %194 ], [ %.0677.ph1071, %179 ], [ %.16781476, %171 ], [ 4.000000e+00, %177 ], [ %.16781476, %169 ], [ %.0677.ph1071, %134 ], [ %.0677.ph1071, %131 ], [ %.0677.ph1071, %129 ], [ %.0677.ph1071, %125 ], [ %.0677.ph1071, %98 ], [ %.0677.ph1071, %97 ], [ %.0677.ph1071, %96 ], [ %.0677.ph1071, %95 ], [ %.0677.ph1071, %93 ], [ %.0677.ph1071, %85 ], [ %.0677.ph1071, %84 ], [ %.0677.ph1071, %83 ], [ %.0677.ph1071, %82 ], [ %.0677.ph1071, %80 ], [ %.0677.ph1071, %78 ], [ %.0677.ph1071, %69 ], [ %.0677.ph1071, %67 ], [ %.0677.ph1071, %55 ], [ %.0677.ph1071, %86 ], [ %.0677.ph1071, %136 ], [ %.0677.ph1071, %143 ], [ %.0677.ph1071, %145 ], [ %.0677.ph1071, %152 ], [ %.0677.ph1071, %196 ], [ %.0677.ph1071, %203 ], [ %.0677.ph1071, %181 ], [ %.0677.ph1071, %.lr.ph1041 ], [ %.0677.ph1071, %191 ]
  %.2676 = phi double [ %.0674.ph1072, %205 ], [ %.0674.ph1072, %194 ], [ %.0674.ph1072, %179 ], [ %.167514661474, %171 ], [ 3.000000e+00, %177 ], [ %.167514661474, %169 ], [ %.0674.ph1072, %134 ], [ %.0674.ph1072, %131 ], [ %.0674.ph1072, %129 ], [ %.0674.ph1072, %125 ], [ %.0674.ph1072, %98 ], [ %.0674.ph1072, %97 ], [ %.0674.ph1072, %96 ], [ %.0674.ph1072, %95 ], [ %.0674.ph1072, %93 ], [ %.0674.ph1072, %85 ], [ %.0674.ph1072, %84 ], [ %.0674.ph1072, %83 ], [ %.0674.ph1072, %82 ], [ %.0674.ph1072, %80 ], [ %.0674.ph1072, %78 ], [ %.0674.ph1072, %69 ], [ %.0674.ph1072, %67 ], [ %.0674.ph1072, %55 ], [ %.0674.ph1072, %86 ], [ %.0674.ph1072, %136 ], [ %.0674.ph1072, %143 ], [ %.0674.ph1072, %145 ], [ %.0674.ph1072, %152 ], [ %.0674.ph1072, %196 ], [ %.0674.ph1072, %203 ], [ %.0674.ph1072, %181 ], [ %.0674.ph1072, %.lr.ph1041 ], [ %.0674.ph1072, %191 ]
  %.2673 = phi double [ %.0671.ph1073, %205 ], [ %.0671.ph1073, %194 ], [ %.0671.ph1073, %179 ], [ %.1672, %171 ], [ 5.000000e+00, %177 ], [ %.1672, %169 ], [ %.0671.ph1073, %134 ], [ %.0671.ph1073, %131 ], [ %.0671.ph1073, %129 ], [ %.0671.ph1073, %125 ], [ %.0671.ph1073, %98 ], [ %.0671.ph1073, %97 ], [ %.0671.ph1073, %96 ], [ %.0671.ph1073, %95 ], [ %.0671.ph1073, %93 ], [ %.0671.ph1073, %85 ], [ %.0671.ph1073, %84 ], [ %.0671.ph1073, %83 ], [ %.0671.ph1073, %82 ], [ %.0671.ph1073, %80 ], [ %.0671.ph1073, %78 ], [ %.0671.ph1073, %69 ], [ %.0671.ph1073, %67 ], [ %.0671.ph1073, %55 ], [ %.0671.ph1073, %86 ], [ %.0671.ph1073, %136 ], [ %.0671.ph1073, %143 ], [ %.0671.ph1073, %145 ], [ %.0671.ph1073, %152 ], [ %.0671.ph1073, %196 ], [ %.0671.ph1073, %203 ], [ %.0671.ph1073, %181 ], [ %.0671.ph1073, %.lr.ph1041 ], [ %.0671.ph1073, %191 ]
  %.1636 = phi double [ %.0635.ph1074, %205 ], [ %.0635.ph1074, %194 ], [ %.0635.ph1074, %179 ], [ %.0635.ph1074, %171 ], [ %.0635.ph1074, %177 ], [ %.0635.ph1074, %169 ], [ %.0635.ph1074, %134 ], [ %.0635.ph1074, %131 ], [ %.0635.ph1074, %129 ], [ %.0635.ph1074, %125 ], [ %.0635.ph1074, %98 ], [ %.0635.ph1074, %97 ], [ %.0635.ph1074, %96 ], [ %.0635.ph1074, %95 ], [ %.0635.ph1074, %93 ], [ %.0635.ph1074, %85 ], [ %.0635.ph1074, %84 ], [ %.0635.ph1074, %83 ], [ %.0635.ph1074, %82 ], [ %.0635.ph1074, %80 ], [ %.0635.ph1074, %78 ], [ %70, %69 ], [ %.0635.ph1074, %67 ], [ %.0635.ph1074, %55 ], [ %.0635.ph1074, %86 ], [ %.0635.ph1074, %136 ], [ %.0635.ph1074, %143 ], [ %.0635.ph1074, %145 ], [ %.0635.ph1074, %152 ], [ %.0635.ph1074, %196 ], [ %.0635.ph1074, %203 ], [ %.0635.ph1074, %181 ], [ %.0635.ph1074, %.lr.ph1041 ], [ %.0635.ph1074, %191 ]
  %.1633 = phi double [ %.0632.ph1075, %205 ], [ %.0632.ph1075, %194 ], [ %.0632.ph1075, %179 ], [ %.0632.ph1075, %171 ], [ %.0632.ph1075, %177 ], [ %.0632.ph1075, %169 ], [ %.0632.ph1075, %134 ], [ %.0632.ph1075, %131 ], [ %.0632.ph1075, %129 ], [ %.0632.ph1075, %125 ], [ %.0632.ph1075, %98 ], [ %.0632.ph1075, %97 ], [ %.0632.ph1075, %96 ], [ %.0632.ph1075, %95 ], [ %.0632.ph1075, %93 ], [ %.0632.ph1075, %85 ], [ %.0632.ph1075, %84 ], [ %.0632.ph1075, %83 ], [ %.0632.ph1075, %82 ], [ %81, %80 ], [ %.0632.ph1075, %78 ], [ %.0632.ph1075, %69 ], [ %.0632.ph1075, %67 ], [ %.0632.ph1075, %55 ], [ %.0632.ph1075, %86 ], [ %.0632.ph1075, %136 ], [ %.0632.ph1075, %143 ], [ %.0632.ph1075, %145 ], [ %.0632.ph1075, %152 ], [ %.0632.ph1075, %196 ], [ %.0632.ph1075, %203 ], [ %.0632.ph1075, %181 ], [ %.0632.ph1075, %.lr.ph1041 ], [ %.0632.ph1075, %191 ]
  %.1630 = phi double [ %.0629.ph1076, %205 ], [ %.0629.ph1076, %194 ], [ %.0629.ph1076, %179 ], [ %.0629.ph1076, %171 ], [ %.0629.ph1076, %177 ], [ %.0629.ph1076, %169 ], [ %.0629.ph1076, %134 ], [ %.0629.ph1076, %131 ], [ %.0629.ph1076, %129 ], [ %.0629.ph1076, %125 ], [ %99, %98 ], [ %.0629.ph1076, %97 ], [ %.0629.ph1076, %96 ], [ %.0629.ph1076, %95 ], [ %.0629.ph1076, %93 ], [ %.0629.ph1076, %85 ], [ %.0629.ph1076, %84 ], [ %.0629.ph1076, %83 ], [ %.0629.ph1076, %82 ], [ %.0629.ph1076, %80 ], [ %.0629.ph1076, %78 ], [ %.0629.ph1076, %69 ], [ %.0629.ph1076, %67 ], [ %.0629.ph1076, %55 ], [ %.0629.ph1076, %86 ], [ %.0629.ph1076, %136 ], [ %.0629.ph1076, %143 ], [ %.0629.ph1076, %145 ], [ %.0629.ph1076, %152 ], [ %.0629.ph1076, %196 ], [ %.0629.ph1076, %203 ], [ %.0629.ph1076, %181 ], [ %.0629.ph1076, %.lr.ph1041 ], [ %.0629.ph1076, %191 ]
  %.2616 = phi ptr [ %.0614.ph1077, %205 ], [ %.0614.ph1077, %194 ], [ %.0614.ph1077, %179 ], [ %.0614.ph1077, %171 ], [ %.0614.ph1077, %177 ], [ %.0614.ph1077, %169 ], [ %.0614.ph1077, %134 ], [ %.0614.ph1077, %131 ], [ %.0614.ph1077, %129 ], [ %.0614.ph1077, %125 ], [ %.0614.ph1077, %98 ], [ %.0614.ph1077, %97 ], [ %.0614.ph1077, %96 ], [ %.0614.ph1077, %95 ], [ %.0614.ph1077, %93 ], [ %.0614.ph1077, %85 ], [ %.0614.ph1077, %84 ], [ %.0614.ph1077, %83 ], [ %.0614.ph1077, %82 ], [ %.0614.ph1077, %80 ], [ %.0614.ph1077, %78 ], [ %.0614.ph1077, %69 ], [ %.0614.ph1077, %67 ], [ %.0614.ph1077, %55 ], [ %.0614.ph1077, %86 ], [ %.0614.ph1077, %136 ], [ %.0614.ph1077, %143 ], [ %.0614.ph1077, %145 ], [ %.0614.ph1077, %152 ], [ %.0614.ph1077, %196 ], [ %.0614.ph1077, %203 ], [ %spec.select, %181 ], [ %spec.select, %.lr.ph1041 ], [ %spec.select, %191 ]
  %207 = load ptr, ptr %7, align 8, !tbaa !5
  %208 = load i8, ptr %207, align 1, !tbaa !9
  %.not852 = icmp eq i8 %208, 0
  br i1 %.not852, label %.outer._crit_edge, label %209

209:                                              ; preds = %.critedge9
  %210 = load ptr, ptr %45, align 8, !tbaa !5
  %211 = sext i8 %208 to i64
  %212 = getelementptr inbounds i16, ptr %210, i64 %211
  %213 = load i16, ptr %212, align 2, !tbaa !10
  %214 = and i16 %213, 8192
  %.not853 = icmp eq i16 %214, 0
  br i1 %.not853, label %215, label %.outer

215:                                              ; preds = %209
  %216 = load ptr, ptr getelementptr inbounds (i8, ptr @rbox, i64 8), align 8, !tbaa !22
  call void (ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %216, i32 noundef 6353, ptr noundef nonnull @.str.7, ptr noundef nonnull %207) #13
  call void @qh_errexit_rbox(i32 noundef 1)
  %.pre1445 = load ptr, ptr %7, align 8, !tbaa !5
  %.pre1446 = load i8, ptr %.pre1445, align 1, !tbaa !9
  br label %.outer

.outer:                                           ; preds = %215, %209
  %217 = phi i8 [ %.pre1446, %215 ], [ %208, %209 ]
  %218 = phi ptr [ %.pre1445, %215 ], [ %207, %209 ]
  %.not785936 = icmp eq i8 %217, 0
  br i1 %.not785936, label %.outer._crit_edge, label %.preheader923.lr.ph, !llvm.loop !19

.outer._crit_edge:                                ; preds = %.critedge9, %.outer, %51, %.critedge2.thread, %38
  %.0764.ph.lcssa = phi i32 [ %.0764.ph1044, %38 ], [ %.0764.ph1044, %.critedge2.thread ], [ %.0764.ph1044, %51 ], [ %.2766, %.outer ], [ %.2766, %.critedge9 ]
  %.0761.ph.lcssa = phi i32 [ %.0761.ph1045, %38 ], [ %.0761.ph1045, %.critedge2.thread ], [ %.0761.ph1045, %51 ], [ %.2763, %.outer ], [ %.2763, %.critedge9 ]
  %.0755.ph.lcssa = phi i32 [ %.0755.ph1046, %38 ], [ %.0755.ph1046, %.critedge2.thread ], [ %.0755.ph1046, %51 ], [ %.1756, %.outer ], [ %.1756, %.critedge9 ]
  %.0750.ph.lcssa = phi i32 [ %.0750.ph1047, %38 ], [ %.0750.ph1047, %.critedge2.thread ], [ %.0750.ph1047, %51 ], [ %.1751, %.outer ], [ %.1751, %.critedge9 ]
  %.0744.ph.lcssa = phi i32 [ %.0744.ph1049, %38 ], [ %.0744.ph1049, %.critedge2.thread ], [ %.0744.ph1049, %51 ], [ %.1745, %.outer ], [ %.1745, %.critedge9 ]
  %.0741.ph.lcssa = phi i32 [ %.0741.ph1050, %38 ], [ %.0741.ph1050, %.critedge2.thread ], [ %.0741.ph1050, %51 ], [ %.1742, %.outer ], [ %.1742, %.critedge9 ]
  %.0739.ph.lcssa = phi i32 [ %.0739.ph1051, %38 ], [ %.0739.ph1051, %.critedge2.thread ], [ %.0739.ph1051, %51 ], [ %.1740, %.outer ], [ %.1740, %.critedge9 ]
  %.0737.ph.lcssa = phi i32 [ %.0737.ph1052, %38 ], [ %.0737.ph1052, %.critedge2.thread ], [ %.0737.ph1052, %51 ], [ %.1738, %.outer ], [ %.1738, %.critedge9 ]
  %.0735.ph.lcssa = phi i32 [ %.0735.ph1053, %38 ], [ %.0735.ph1053, %.critedge2.thread ], [ %.0735.ph1053, %51 ], [ %.1736, %.outer ], [ %.1736, %.critedge9 ]
  %.0732.ph.lcssa = phi i32 [ %.0732.ph1054, %38 ], [ %.0732.ph1054, %.critedge2.thread ], [ %.0732.ph1054, %51 ], [ %.1733, %.outer ], [ %.1733, %.critedge9 ]
  %.0730.ph.lcssa = phi i32 [ %.0730.ph1055, %38 ], [ %.0730.ph1055, %.critedge2.thread ], [ %.0730.ph1055, %51 ], [ %.1731, %.outer ], [ %.1731, %.critedge9 ]
  %.0728.ph.lcssa = phi i32 [ %.0728.ph1056, %38 ], [ %.0728.ph1056, %.critedge2.thread ], [ %.0728.ph1056, %51 ], [ %.1729, %.outer ], [ %.1729, %.critedge9 ]
  %.0721.ph.lcssa = phi i32 [ %.0721.ph1057, %38 ], [ %.0721.ph1057, %.critedge2.thread ], [ %.0721.ph1057, %51 ], [ %.1722, %.outer ], [ %.1722, %.critedge9 ]
  %.0719.ph.lcssa = phi i32 [ %.0719.ph1058, %38 ], [ %.0719.ph1058, %.critedge2.thread ], [ %.0719.ph1058, %51 ], [ %.1720, %.outer ], [ %.1720, %.critedge9 ]
  %.0717.ph.lcssa = phi i32 [ %.0717.ph1059, %38 ], [ %.0717.ph1059, %.critedge2.thread ], [ %.0717.ph1059, %51 ], [ %.1718, %.outer ], [ %.1718, %.critedge9 ]
  %.0715.ph.lcssa = phi i32 [ %.0715.ph1060, %38 ], [ %.0715.ph1060, %.critedge2.thread ], [ %.0715.ph1060, %51 ], [ %.1716, %.outer ], [ %.1716, %.critedge9 ]
  %.0713.ph.lcssa = phi i32 [ %.0713.ph1061, %38 ], [ %.0713.ph1061, %.critedge2.thread ], [ %.0713.ph1061, %51 ], [ %.1714, %.outer ], [ %.1714, %.critedge9 ]
  %.0711.ph.lcssa = phi i32 [ %.0711.ph1062, %38 ], [ %.0711.ph1062, %.critedge2.thread ], [ %.0711.ph1062, %51 ], [ %.1712, %.outer ], [ %.1712, %.critedge9 ]
  %.0709.ph.lcssa = phi i32 [ %.0709.ph1063, %38 ], [ %.0709.ph1063, %.critedge2.thread ], [ %.0709.ph1063, %51 ], [ %.1710, %.outer ], [ %.1710, %.critedge9 ]
  %.0707.ph.lcssa = phi i32 [ %.0707.ph1064, %38 ], [ %.0707.ph1064, %.critedge2.thread ], [ %.0707.ph1064, %51 ], [ %.1708, %.outer ], [ %.1708, %.critedge9 ]
  %.0705.ph.lcssa = phi i32 [ %.0705.ph1065, %38 ], [ %.0705.ph1065, %.critedge2.thread ], [ %.0705.ph1065, %51 ], [ %.1706, %.outer ], [ %.1706, %.critedge9 ]
  %.0703.ph.lcssa = phi i32 [ %.0703.ph1066, %38 ], [ %.0703.ph1066, %.critedge2.thread ], [ %.0703.ph1066, %51 ], [ %.1704, %.outer ], [ %.1704, %.critedge9 ]
  %.0701.ph.lcssa = phi double [ %.0701.ph1067, %38 ], [ %.0701.ph1067, %.critedge2.thread ], [ %.0701.ph1067, %51 ], [ %.1702, %.outer ], [ %.1702, %.critedge9 ]
  %.0692.ph.lcssa = phi double [ %.0692.ph1068, %38 ], [ %.0692.ph1068, %.critedge2.thread ], [ %.0692.ph1068, %51 ], [ %.2694, %.outer ], [ %.2694, %.critedge9 ]
  %.0687.ph.lcssa = phi double [ %.0687.ph1069, %38 ], [ %.0687.ph1069, %.critedge2.thread ], [ %.0687.ph1069, %51 ], [ %.3690, %.outer ], [ %.3690, %.critedge9 ]
  %.0684.ph.lcssa = phi double [ %.0684.ph1070, %38 ], [ %.0684.ph1070, %.critedge2.thread ], [ %.0684.ph1070, %51 ], [ %.2686, %.outer ], [ %.2686, %.critedge9 ]
  %.0677.ph.lcssa = phi double [ %.0677.ph1071, %38 ], [ %.0677.ph1071, %.critedge2.thread ], [ %.0677.ph1071, %51 ], [ %.2679, %.outer ], [ %.2679, %.critedge9 ]
  %.0674.ph.lcssa = phi double [ %.0674.ph1072, %38 ], [ %.0674.ph1072, %.critedge2.thread ], [ %.0674.ph1072, %51 ], [ %.2676, %.outer ], [ %.2676, %.critedge9 ]
  %.0671.ph.lcssa = phi double [ %.0671.ph1073, %38 ], [ %.0671.ph1073, %.critedge2.thread ], [ %.0671.ph1073, %51 ], [ %.2673, %.outer ], [ %.2673, %.critedge9 ]
  %.0635.ph.lcssa = phi double [ %.0635.ph1074, %38 ], [ %.0635.ph1074, %.critedge2.thread ], [ %.0635.ph1074, %51 ], [ %.1636, %.outer ], [ %.1636, %.critedge9 ]
  %.0632.ph.lcssa = phi double [ %.0632.ph1075, %38 ], [ %.0632.ph1075, %.critedge2.thread ], [ %.0632.ph1075, %51 ], [ %.1633, %.outer ], [ %.1633, %.critedge9 ]
  %.0629.ph.lcssa = phi double [ %.0629.ph1076, %38 ], [ %.0629.ph1076, %.critedge2.thread ], [ %.0629.ph1076, %51 ], [ %.1630, %.outer ], [ %.1630, %.critedge9 ]
  %219 = phi ptr [ %.0614.ph1077, %38 ], [ %.0614.ph1077, %.critedge2.thread ], [ %.0614.ph1077, %51 ], [ %.2616, %.outer ], [ %.2616, %.critedge9 ]
  %.0747.lcssa = phi i32 [ %.0747937, %38 ], [ %52, %51 ], [ %.0747937, %.critedge2.thread ], [ %.0747937, %.outer ], [ %.0747937, %.critedge9 ]
  %.0750.ph.lcssa.fr = freeze i32 %.0750.ph.lcssa
  %220 = load i32, ptr getelementptr inbounds (i8, ptr @rbox, i64 16), align 8, !tbaa !14
  %221 = icmp eq i32 %220, 0
  %222 = icmp ne i32 %.0709.ph.lcssa, 0
  %or.cond11 = select i1 %221, i1 true, i1 %222
  %.2631 = select i1 %or.cond11, double %.0629.ph.lcssa, double 1.000000e+06
  %.not789.not = icmp ne i32 %.0728.ph.lcssa, 0
  br i1 %.not789.not, label %223, label %230

223:                                              ; preds = %.outer._crit_edge
  %224 = call double @ldexp(double noundef 1.000000e+00, i32 noundef %.0750.ph.lcssa.fr) #13
  %225 = fadd double %224, 5.000000e-01
  %226 = call double @llvm.floor.f64(double %225)
  %227 = fptosi double %226 to i32
  %228 = fcmp oeq double %.0635.ph.lcssa, 0.000000e+00
  br i1 %228, label %229, label %230

229:                                              ; preds = %223
  br label %230

230:                                              ; preds = %.outer._crit_edge, %223, %229
  %.0728.ph.lcssa1526 = phi i32 [ %.0728.ph.lcssa, %229 ], [ %.0728.ph.lcssa, %223 ], [ 0, %.outer._crit_edge ]
  %.0760 = phi i32 [ %227, %229 ], [ %227, %223 ], [ 0, %.outer._crit_edge ]
  %.2637 = phi double [ %.2631, %229 ], [ %.0635.ph.lcssa, %223 ], [ %.0635.ph.lcssa, %.outer._crit_edge ]
  %.not790.not = icmp ne i32 %.0715.ph.lcssa, 0
  br i1 %.not790.not, label %231, label %235

231:                                              ; preds = %230
  %232 = shl nsw i32 %.0750.ph.lcssa.fr, 1
  %233 = fcmp oeq double %.0632.ph.lcssa, 0.000000e+00
  br i1 %233, label %234, label %235

234:                                              ; preds = %231
  br label %235

235:                                              ; preds = %230, %231, %234
  %.0715.ph.lcssa15311602 = phi i32 [ %.0715.ph.lcssa, %234 ], [ %.0715.ph.lcssa, %231 ], [ 0, %230 ]
  %.0759 = phi i32 [ %232, %234 ], [ %232, %231 ], [ 0, %230 ]
  %.2634 = phi double [ %.2631, %234 ], [ %.0632.ph.lcssa, %231 ], [ %.0632.ph.lcssa, %230 ]
  %.not1816 = icmp eq i32 %.0735.ph.lcssa, 0
  br i1 %.not1816, label %248, label %236

236:                                              ; preds = %235
  %.not791 = icmp eq i32 %.0739.ph.lcssa, 0
  br i1 %.not791, label %239, label %237

237:                                              ; preds = %236
  %238 = load ptr, ptr getelementptr inbounds (i8, ptr @rbox, i64 8), align 8, !tbaa !22
  call void (ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %238, i32 noundef 6190, ptr noundef nonnull @.str.8) #13
  call void @qh_errexit_rbox(i32 noundef 1)
  br label %239

239:                                              ; preds = %237, %236
  %240 = fcmp ugt double %.0687.ph.lcssa, 1.000000e+00
  br i1 %240, label %243, label %241

241:                                              ; preds = %239
  %242 = load ptr, ptr getelementptr inbounds (i8, ptr @rbox, i64 8), align 8, !tbaa !22
  call void (ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %242, i32 noundef 6191, ptr noundef nonnull @.str.9, double noundef %.0687.ph.lcssa) #13
  call void @qh_errexit_rbox(i32 noundef 1)
  br label %243

243:                                              ; preds = %241, %239
  %244 = fdiv double 1.000000e+00, %.0687.ph.lcssa
  %245 = call double @asin(double noundef %244) #13
  %246 = call double @cos(double noundef %245) #13
  %247 = fmul double %.0687.ph.lcssa, %246
  br label %248

248:                                              ; preds = %.thread1620, %243, %235
  %249 = phi i1 [ true, %243 ], [ false, %235 ], [ false, %.thread1620 ]
  %.26341692 = phi double [ %.2634, %243 ], [ %.2634, %235 ], [ 0.000000e+00, %.thread1620 ]
  %.07591691 = phi i32 [ %.0759, %243 ], [ %.0759, %235 ], [ 0, %.thread1620 ]
  %.not789154915861690 = phi i1 [ %.not789.not, %243 ], [ %.not789.not, %235 ], [ false, %.thread1620 ]
  %.2631154815871689 = phi double [ %.2631, %243 ], [ %.2631, %235 ], [ %.26311513, %.thread1620 ]
  %.0750.ph.lcssa.fr154615881688 = phi i32 [ %.0750.ph.lcssa.fr, %243 ], [ %.0750.ph.lcssa.fr, %235 ], [ 3, %.thread1620 ]
  %.0747.lcssa154515891687 = phi i32 [ %.0747.lcssa, %243 ], [ %.0747.lcssa, %235 ], [ 0, %.thread1620 ]
  %250 = phi ptr [ %219, %243 ], [ %219, %235 ], [ null, %.thread1620 ]
  %.0671.ph.lcssa154315901686 = phi double [ %.0671.ph.lcssa, %243 ], [ %.0671.ph.lcssa, %235 ], [ 5.000000e+00, %.thread1620 ]
  %.0674.ph.lcssa154215911685 = phi double [ %.0674.ph.lcssa, %243 ], [ %.0674.ph.lcssa, %235 ], [ 4.000000e+00, %.thread1620 ]
  %.0677.ph.lcssa154115921684 = phi double [ %.0677.ph.lcssa, %243 ], [ %.0677.ph.lcssa, %235 ], [ 3.000000e+00, %.thread1620 ]
  %.0684.ph.lcssa154015931683 = phi double [ %.0684.ph.lcssa, %243 ], [ %.0684.ph.lcssa, %235 ], [ 0.000000e+00, %.thread1620 ]
  %.0687.ph.lcssa153915941682 = phi double [ %.0687.ph.lcssa, %243 ], [ %.0687.ph.lcssa, %235 ], [ 0.000000e+00, %.thread1620 ]
  %.0692.ph.lcssa153815951681 = phi double [ %.0692.ph.lcssa, %243 ], [ %.0692.ph.lcssa, %235 ], [ 0.000000e+00, %.thread1620 ]
  %.0701.ph.lcssa153715961680 = phi double [ %.0701.ph.lcssa, %243 ], [ %.0701.ph.lcssa, %235 ], [ 0.000000e+00, %.thread1620 ]
  %.0703.ph.lcssa153615971679 = phi i32 [ %.0703.ph.lcssa, %243 ], [ %.0703.ph.lcssa, %235 ], [ 0, %.thread1620 ]
  %.0705.ph.lcssa153515981678 = phi i32 [ %.0705.ph.lcssa, %243 ], [ %.0705.ph.lcssa, %235 ], [ 0, %.thread1620 ]
  %.0707.ph.lcssa153415991677 = phi i32 [ %.0707.ph.lcssa, %243 ], [ %.0707.ph.lcssa, %235 ], [ 0, %.thread1620 ]
  %.0711.ph.lcssa153316001676 = phi i32 [ %.0711.ph.lcssa, %243 ], [ %.0711.ph.lcssa, %235 ], [ 0, %.thread1620 ]
  %.0713.ph.lcssa153216011675 = phi i32 [ %.0713.ph.lcssa, %243 ], [ %.0713.ph.lcssa, %235 ], [ 0, %.thread1620 ]
  %.0715.ph.lcssa153116021674 = phi i32 [ %.0715.ph.lcssa15311602, %243 ], [ %.0715.ph.lcssa15311602, %235 ], [ 0, %.thread1620 ]
  %.0717.ph.lcssa153016031673 = phi i32 [ %.0717.ph.lcssa, %243 ], [ %.0717.ph.lcssa, %235 ], [ 0, %.thread1620 ]
  %.0719.ph.lcssa152916041672 = phi i32 [ %.0719.ph.lcssa, %243 ], [ %.0719.ph.lcssa, %235 ], [ 0, %.thread1620 ]
  %.0721.ph.lcssa152716051671 = phi i32 [ %.0721.ph.lcssa, %243 ], [ %.0721.ph.lcssa, %235 ], [ 0, %.thread1620 ]
  %.0728.ph.lcssa152616061670 = phi i32 [ %.0728.ph.lcssa1526, %243 ], [ %.0728.ph.lcssa1526, %235 ], [ 0, %.thread1620 ]
  %.0730.ph.lcssa152516071669 = phi i32 [ %.0730.ph.lcssa, %243 ], [ %.0730.ph.lcssa, %235 ], [ 0, %.thread1620 ]
  %.0732.ph.lcssa152416081668 = phi i32 [ %.0732.ph.lcssa, %243 ], [ %.0732.ph.lcssa, %235 ], [ 0, %.thread1620 ]
  %.0735.ph.lcssa152316091667 = phi i32 [ %.0735.ph.lcssa, %243 ], [ 0, %235 ], [ 0, %.thread1620 ]
  %.0737.ph.lcssa152216101666 = phi i32 [ %.0737.ph.lcssa, %243 ], [ %.0737.ph.lcssa, %235 ], [ 0, %.thread1620 ]
  %.0739.ph.lcssa152116111665 = phi i32 [ %.0739.ph.lcssa, %243 ], [ %.0739.ph.lcssa, %235 ], [ 0, %.thread1620 ]
  %.0741.ph.lcssa152016121664 = phi i32 [ %.0741.ph.lcssa, %243 ], [ %.0741.ph.lcssa, %235 ], [ 0, %.thread1620 ]
  %.0744.ph.lcssa151916131663 = phi i32 [ %.0744.ph.lcssa, %243 ], [ %.0744.ph.lcssa, %235 ], [ 0, %.thread1620 ]
  %.0755.ph.lcssa151816141662 = phi i32 [ %.0755.ph.lcssa, %243 ], [ %.0755.ph.lcssa, %235 ], [ 0, %.thread1620 ]
  %.0761.ph.lcssa151716151661 = phi i32 [ %.0761.ph.lcssa, %243 ], [ %.0761.ph.lcssa, %235 ], [ 0, %.thread1620 ]
  %.0764.ph.lcssa151516161660 = phi i32 [ %.0764.ph.lcssa, %243 ], [ %.0764.ph.lcssa, %235 ], [ 0, %.thread1620 ]
  %.076016171659 = phi i32 [ %.0760, %243 ], [ %.0760, %235 ], [ 0, %.thread1620 ]
  %.263716181658 = phi double [ %.2637, %243 ], [ %.2637, %235 ], [ 0.000000e+00, %.thread1620 ]
  %.not79016191657 = phi i1 [ %.not790.not, %243 ], [ %.not790.not, %235 ], [ false, %.thread1620 ]
  %.0642 = phi double [ %245, %243 ], [ 0.000000e+00, %235 ], [ 0.000000e+00, %.thread1620 ]
  %.0641 = phi double [ %247, %243 ], [ 1.000000e+00, %235 ], [ 1.000000e+00, %.thread1620 ]
  %251 = icmp ne i32 %.0747.lcssa154515891687, 0
  %252 = icmp ne i32 %.0705.ph.lcssa153515981678, 0
  %or.cond43 = select i1 %251, i1 true, i1 %252
  %.pre1450 = add nuw nsw i32 %.0707.ph.lcssa153415991677, %.0719.ph.lcssa152916041672
  br i1 %or.cond43, label %._crit_edge, label %253

253:                                              ; preds = %248
  %254 = add nuw nsw i32 %.pre1450, %.0741.ph.lcssa152016121664
  %255 = add nuw nsw i32 %254, %.0739.ph.lcssa152116111665
  %256 = add nuw nsw i32 %255, %.0735.ph.lcssa152316091667
  %257 = add nuw nsw i32 %256, %.0732.ph.lcssa152416081668
  %258 = add nuw nsw i32 %257, %.0730.ph.lcssa152516071669
  %259 = or i32 %258, %.0703.ph.lcssa153615971679
  %.not792 = icmp eq i32 %259, 0
  br i1 %.not792, label %262, label %260

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

262:                                              ; preds = %253
  %263 = add nuw nsw i32 %.0715.ph.lcssa153116021674, %.0728.ph.lcssa152616061670
  %264 = sub i32 0, %.0744.ph.lcssa151916131663
  %.not793 = icmp eq i32 %263, %264
  %spec.select854 = select i1 %.not793, i32 50, i32 0
  %spec.select855 = select i1 %.not793, i32 1, i32 %.0741.ph.lcssa152016121664
  br label %._crit_edge

._crit_edge:                                      ; preds = %248, %262, %260
  %.1748 = phi i32 [ %spec.select854, %262 ], [ 0, %260 ], [ %.0747.lcssa154515891687, %248 ]
  %.2743 = phi i32 [ %spec.select855, %262 ], [ %.0741.ph.lcssa152016121664, %260 ], [ %.0741.ph.lcssa152016121664, %248 ]
  %265 = add nuw nsw i32 %.pre1450, %.0735.ph.lcssa152316091667
  %266 = add nuw nsw i32 %265, %.0703.ph.lcssa153615971679
  %267 = icmp sgt i32 %266, 1
  br i1 %267, label %272, label %268

268:                                              ; preds = %._crit_edge
  %269 = add nuw nsw i32 %.pre1450, %.0703.ph.lcssa153615971679
  %270 = add nuw nsw i32 %269, %.2743
  %271 = icmp sgt i32 %270, 1
  br i1 %271, label %272, label %274

272:                                              ; preds = %268, %._crit_edge
  %273 = load ptr, ptr getelementptr inbounds (i8, ptr @rbox, i64 8), align 8, !tbaa !22
  call void (ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %273, i32 noundef 6193, ptr noundef nonnull @.str.11) #13
  call void @qh_errexit_rbox(i32 noundef 1)
  br label %274

274:                                              ; preds = %272, %268
  %275 = icmp sgt i32 %.0761.ph.lcssa151716151661, 0
  br i1 %275, label %277, label %.thread

.thread:                                          ; preds = %274
  %276 = icmp ne i32 %.0732.ph.lcssa152416081668, 0
  br label %285

277:                                              ; preds = %274
  %278 = icmp eq i32 %.1748, 0
  %279 = icmp sgt i32 %.0764.ph.lcssa151516161660, %.1748
  %or.cond857 = select i1 %278, i1 true, i1 %279
  br i1 %or.cond857, label %280, label %282

280:                                              ; preds = %277
  %281 = load ptr, ptr getelementptr inbounds (i8, ptr @rbox, i64 8), align 8, !tbaa !22
  call void (ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %281, i32 noundef 6270, ptr noundef nonnull @.str.12, i32 noundef %.0764.ph.lcssa151516161660, i32 noundef %.1748) #13
  call void @qh_errexit_rbox(i32 noundef 1)
  br label %282

282:                                              ; preds = %277, %280
  %.not888 = icmp eq i32 %.0732.ph.lcssa152416081668, 0
  br i1 %.not888, label %285, label %283

283:                                              ; preds = %282
  %284 = load ptr, ptr getelementptr inbounds (i8, ptr @rbox, i64 8), align 8, !tbaa !22
  call void (ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %284, i32 noundef 6423, ptr noundef nonnull @.str.13) #13
  call void @qh_errexit_rbox(i32 noundef 1)
  br label %285

285:                                              ; preds = %.thread, %283, %282
  %286 = phi i1 [ %276, %.thread ], [ true, %283 ], [ false, %282 ]
  %287 = icmp eq i32 %.0764.ph.lcssa151516161660, 0
  %spec.select858 = select i1 %287, i32 %.1748, i32 %.0764.ph.lcssa151516161660
  %288 = icmp ne i32 %.0707.ph.lcssa153415991677, 0
  %289 = icmp ne i32 %.0703.ph.lcssa153615971679, 0
  %or.cond15 = select i1 %288, i1 true, i1 %289
  br i1 %or.cond15, label %309, label %290

290:                                              ; preds = %285
  br i1 %252, label %291, label %294

291:                                              ; preds = %290
  %292 = add i32 %.0750.ph.lcssa.fr154615881688, 1
  %293 = add i32 %292, %.1748
  br label %309

294:                                              ; preds = %290
  br i1 %286, label %295, label %307

295:                                              ; preds = %294
  switch i32 %.0750.ph.lcssa.fr154615881688, label %309 [
    i32 2, label %296
    i32 3, label %299
  ]

296:                                              ; preds = %295
  br i1 %249, label %297, label %309

297:                                              ; preds = %296
  %reass.add795 = shl i32 %.1748, 1
  %298 = add i32 %reass.add795, -2
  br label %309

299:                                              ; preds = %295
  br i1 %249, label %300, label %302

300:                                              ; preds = %299
  %301 = mul nsw i32 %.1748, 3
  br label %309

302:                                              ; preds = %299
  %.not794 = icmp eq i32 %.0721.ph.lcssa152716051671, 0
  br i1 %.not794, label %305, label %303

303:                                              ; preds = %302
  %reass.add = shl i32 %.1748, 1
  %304 = or disjoint i32 %reass.add, 1
  br label %309

305:                                              ; preds = %302
  %306 = add nsw i32 %.1748, 2
  br label %309

307:                                              ; preds = %294
  %308 = add nsw i32 %.1748, %.0739.ph.lcssa152116111665
  br label %309

309:                                              ; preds = %295, %285, %291, %297, %296, %300, %305, %303, %307
  %.0746 = phi i32 [ %293, %291 ], [ %298, %297 ], [ %.1748, %296 ], [ %301, %300 ], [ %304, %303 ], [ %306, %305 ], [ %308, %307 ], [ %.1748, %285 ], [ %.1748, %295 ]
  %310 = mul nsw i32 %spec.select858, %.0761.ph.lcssa151716151661
  %311 = add i32 %.076016171659, %.0744.ph.lcssa151916131663
  %312 = add i32 %311, %.07591691
  %313 = add i32 %312, %310
  %314 = add i32 %313, %.0746
  %315 = icmp eq i32 %.0711.ph.lcssa153316001676, 0
  br i1 %315, label %.preheader919, label %324

.preheader919:                                    ; preds = %309
  %316 = load i8, ptr %5, align 16, !tbaa !9
  %.not7981112 = icmp eq i8 %316, 0
  br i1 %.not7981112, label %.loopexit920, label %.lr.ph1115

.lr.ph1115:                                       ; preds = %.preheader919, %.lr.ph1115
  %317 = phi i8 [ %323, %.lr.ph1115 ], [ %316, %.preheader919 ]
  %.27571114 = phi i32 [ %321, %.lr.ph1115 ], [ %.0755.ph.lcssa151816141662, %.preheader919 ]
  %storemerge1113 = phi ptr [ %322, %.lr.ph1115 ], [ %5, %.preheader919 ]
  %318 = icmp eq i8 %317, 121
  %or.cond860 = and i1 %252, %318
  %319 = sext i8 %317 to i32
  %spec.select887 = select i1 %or.cond860, i32 120, i32 %319
  %320 = mul nsw i32 %.27571114, 11
  %321 = add nsw i32 %spec.select887, %320
  %322 = getelementptr inbounds i8, ptr %storemerge1113, i64 1
  %323 = load i8, ptr %322, align 1, !tbaa !9
  %.not798 = icmp eq i8 %323, 0
  br i1 %.not798, label %.loopexit920, label %.lr.ph1115, !llvm.loop !25

324:                                              ; preds = %309
  %.not796 = icmp eq i32 %.0713.ph.lcssa153216011675, 0
  br i1 %.not796, label %337, label %325

325:                                              ; preds = %324
  %326 = call i64 @time(ptr noundef nonnull %8) #13
  %327 = trunc i64 %326 to i32
  %328 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %6, ptr noundef nonnull dereferenceable(1) @.str.14, i32 noundef %327) #13
  %329 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %5) #14
  %330 = sub i64 249, %329
  %331 = call ptr @strncat(ptr noundef nonnull dereferenceable(1) %5, ptr noundef nonnull %6, i64 noundef %330) #13
  %332 = call ptr @strstr(ptr noundef nonnull dereferenceable(1) %5, ptr noundef nonnull dereferenceable(1) @.str.15) #14
  %.not797 = icmp eq ptr %332, null
  br i1 %.not797, label %337, label %333

333:                                              ; preds = %325
  %334 = getelementptr inbounds i8, ptr %332, i64 1
  %335 = getelementptr inbounds i8, ptr %332, i64 3
  %336 = call ptr @strcpy(ptr noundef nonnull dereferenceable(1) %334, ptr noundef nonnull dereferenceable(1) %335) #13
  br label %337

.loopexit920:                                     ; preds = %.lr.ph1115, %.preheader919
  %storemerge.lcssa = phi ptr [ %5, %.preheader919 ], [ %322, %.lr.ph1115 ]
  %.2757.lcssa = phi i32 [ %.0755.ph.lcssa151816141662, %.preheader919 ], [ %321, %.lr.ph1115 ]
  store ptr %storemerge.lcssa, ptr %7, align 8, !tbaa !5
  br label %337

337:                                              ; preds = %.loopexit920, %324, %333, %325
  %.3758 = phi i32 [ %327, %333 ], [ %327, %325 ], [ %.0755.ph.lcssa151816141662, %324 ], [ %.2757.lcssa, %.loopexit920 ]
  call void @qh_srand(i32 noundef %.3758) #13
  %.not799 = icmp eq i32 %.0737.ph.lcssa152216101666, 0
  br i1 %.not799, label %344, label %338

338:                                              ; preds = %337
  %339 = load ptr, ptr @rbox, align 8, !tbaa !26
  %.not801 = icmp eq i32 %.0717.ph.lcssa153016031673, 0
  %340 = select i1 %.not801, ptr %5, ptr @.str.17
  %341 = add nsw i32 %.0750.ph.lcssa.fr154615881688, 1
  %342 = load i32, ptr getelementptr inbounds (i8, ptr @rbox, i64 16), align 8, !tbaa !14
  %.not802 = icmp eq i32 %342, 0
  %343 = select i1 %.not802, ptr @.str.19, ptr @.str.18
  call void (ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %339, i32 noundef 9391, ptr noundef nonnull @.str.16, ptr noundef nonnull %340, i32 noundef %314, i32 noundef %341, ptr noundef nonnull %343) #13
  br label %348

344:                                              ; preds = %337
  %.not800 = icmp eq i32 %.0717.ph.lcssa153016031673, 0
  %345 = load ptr, ptr @rbox, align 8, !tbaa !26
  br i1 %.not800, label %347, label %346

346:                                              ; preds = %344
  call void (ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %345, i32 noundef 9392, ptr noundef nonnull @.str.20, i32 noundef %.0750.ph.lcssa.fr154615881688, i32 noundef %314) #13
  br label %348

347:                                              ; preds = %344
  call void (ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %345, i32 noundef 9393, ptr noundef nonnull @.str.21, i32 noundef %.0750.ph.lcssa.fr154615881688, ptr noundef nonnull %5, i32 noundef %314) #13
  br label %348

348:                                              ; preds = %346, %347, %338
  store ptr %250, ptr %7, align 8, !tbaa !5
  %.not803 = icmp eq ptr %250, null
  br i1 %.not803, label %.critedge17, label %.preheader917

.preheader917:                                    ; preds = %348
  %349 = load i8, ptr %250, align 1, !tbaa !9
  %.not8041131 = icmp eq i8 %349, 0
  br i1 %.not8041131, label %.critedge17, label %.lr.ph1132

.loopexit915:                                     ; preds = %388
  %350 = load i8, ptr %387, align 1, !tbaa !9
  %.not804 = icmp eq i8 %350, 0
  br i1 %.not804, label %.critedge17, label %.lr.ph1132, !llvm.loop !27

.lr.ph1132:                                       ; preds = %.preheader917, %.loopexit915
  %351 = phi ptr [ %387, %.loopexit915 ], [ %250, %.preheader917 ]
  br i1 %.not799, label %353, label %352

352:                                              ; preds = %.lr.ph1132
  call void @qh_out1(double noundef 1.000000e+00)
  %.pre1447 = load ptr, ptr %7, align 8, !tbaa !5
  br label %353

353:                                              ; preds = %352, %.lr.ph1132
  %354 = phi ptr [ %.pre1447, %352 ], [ %351, %.lr.ph1132 ]
  %355 = getelementptr inbounds i8, ptr %354, i64 1
  store ptr %355, ptr %7, align 8, !tbaa !5
  %356 = load i8, ptr %355, align 1, !tbaa !9
  %.not8051118 = icmp eq i8 %356, 0
  br i1 %.not8051118, label %._crit_edge1122, label %.lr.ph1121

.lr.ph1121:                                       ; preds = %353, %371
  %357 = phi ptr [ %373, %371 ], [ %355, %353 ]
  %.07531119 = phi i32 [ %359, %371 ], [ 0, %353 ]
  %358 = call double @qh_strtod(ptr noundef nonnull %357, ptr noundef nonnull %7) #13
  call void @qh_out1(double noundef %358)
  %359 = add nuw nsw i32 %.07531119, 1
  %360 = tail call ptr @__ctype_b_loc() #15
  %361 = load ptr, ptr %360, align 8, !tbaa !5
  %362 = load ptr, ptr %7, align 8, !tbaa !5
  %363 = load i8, ptr %362, align 1, !tbaa !9
  %364 = sext i8 %363 to i64
  %365 = getelementptr inbounds i16, ptr %361, i64 %364
  %366 = load i16, ptr %365, align 2, !tbaa !10
  %367 = and i16 %366, 8192
  %.not806 = icmp ne i16 %367, 0
  %.not807 = icmp eq i8 %363, 0
  %or.cond861 = or i1 %.not807, %.not806
  br i1 %or.cond861, label %._crit_edge1122, label %368

368:                                              ; preds = %.lr.ph1121
  %.not808 = icmp eq i8 %363, 44
  br i1 %.not808, label %371, label %369

369:                                              ; preds = %368
  %370 = load ptr, ptr getelementptr inbounds (i8, ptr @rbox, i64 8), align 8, !tbaa !22
  call void (ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %370, i32 noundef 6194, ptr noundef nonnull @.str.22, ptr noundef nonnull %362) #13
  call void @qh_errexit_rbox(i32 noundef 1)
  %.pre1448 = load ptr, ptr %7, align 8, !tbaa !5
  br label %371

371:                                              ; preds = %369, %368
  %372 = phi ptr [ %.pre1448, %369 ], [ %362, %368 ]
  %373 = getelementptr inbounds i8, ptr %372, i64 1
  store ptr %373, ptr %7, align 8, !tbaa !5
  %374 = load i8, ptr %373, align 1, !tbaa !9
  %.not805 = icmp eq i8 %374, 0
  br i1 %.not805, label %._crit_edge1122, label %.lr.ph1121, !llvm.loop !28

._crit_edge1122:                                  ; preds = %371, %.lr.ph1121, %353
  %375 = phi ptr [ %355, %353 ], [ %373, %371 ], [ %362, %.lr.ph1121 ]
  %.1754 = phi i32 [ 0, %353 ], [ %359, %.lr.ph1121 ], [ %359, %371 ]
  %376 = icmp slt i32 %.1754, %.0750.ph.lcssa.fr154615881688
  br i1 %376, label %377, label %380

377:                                              ; preds = %._crit_edge1122
  %378 = sub nsw i32 %.0750.ph.lcssa.fr154615881688, %.1754
  %.not8091126 = icmp eq i32 %378, 0
  br i1 %.not8091126, label %.loopexit916, label %.lr.ph1129

.lr.ph1129:                                       ; preds = %377, %.lr.ph1129
  %.06431127 = phi i32 [ %379, %.lr.ph1129 ], [ %378, %377 ]
  %379 = add nsw i32 %.06431127, -1
  call void @qh_out1(double noundef 0.000000e+00)
  %.not809 = icmp eq i32 %379, 0
  br i1 %.not809, label %.loopexit916, label %.lr.ph1129, !llvm.loop !29

380:                                              ; preds = %._crit_edge1122
  %381 = icmp sgt i32 %.1754, %.0750.ph.lcssa.fr154615881688
  br i1 %381, label %382, label %.loopexit916

382:                                              ; preds = %380
  %383 = load ptr, ptr getelementptr inbounds (i8, ptr @rbox, i64 8), align 8, !tbaa !22
  call void (ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %383, i32 noundef 6195, ptr noundef nonnull @.str.23, i32 noundef %.1754, i32 noundef %.0750.ph.lcssa.fr154615881688, ptr noundef nonnull %375) #13
  call void @qh_errexit_rbox(i32 noundef 1)
  br label %.loopexit916

.loopexit916:                                     ; preds = %.lr.ph1129, %377, %380, %382
  %384 = load ptr, ptr @rbox, align 8, !tbaa !26
  call void (ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %384, i32 noundef 9394, ptr noundef nonnull @.str.24) #13
  %.promoted1130 = load ptr, ptr %7, align 8, !tbaa !5
  br label %385

385:                                              ; preds = %388, %.loopexit916
  %386 = phi ptr [ %387, %388 ], [ %.promoted1130, %.loopexit916 ]
  %387 = call ptr @strchr(ptr noundef nonnull dereferenceable(1) %386, i32 noundef 80) #14
  store ptr %387, ptr %7, align 8, !tbaa !5
  %.not810 = icmp eq ptr %387, null
  br i1 %.not810, label %.critedge17, label %388

388:                                              ; preds = %385
  %389 = tail call ptr @__ctype_b_loc() #15
  %390 = load ptr, ptr %389, align 8, !tbaa !5
  %391 = getelementptr inbounds i8, ptr %387, i64 -1
  %392 = load i8, ptr %391, align 1, !tbaa !9
  %393 = sext i8 %392 to i64
  %394 = getelementptr inbounds i16, ptr %390, i64 %393
  %395 = load i16, ptr %394, align 2, !tbaa !10
  %396 = and i16 %395, 8192
  %.not811 = icmp eq i16 %396, 0
  br i1 %.not811, label %385, label %.loopexit915, !llvm.loop !27

.critedge17:                                      ; preds = %.loopexit915, %385, %.preheader917, %348
  %397 = or i32 %.0705.ph.lcssa153515981678, %.0707.ph.lcssa153415991677
  %.not812 = icmp eq i32 %397, 0
  br i1 %.not812, label %.loopexit906, label %398

398:                                              ; preds = %.critedge17
  %399 = add i32 %.0750.ph.lcssa.fr154615881688, 1
  %400 = mul nsw i32 %399, %.0750.ph.lcssa.fr154615881688
  %401 = sext i32 %400 to i64
  %402 = shl nsw i64 %401, 3
  %403 = call ptr @qh_malloc(i64 noundef %402) #13
  store ptr %403, ptr %1, align 8, !tbaa !5
  %.not813 = icmp eq ptr %403, null
  br i1 %.not813, label %404, label %406

404:                                              ; preds = %398
  %405 = load ptr, ptr getelementptr inbounds (i8, ptr @rbox, i64 8), align 8, !tbaa !22
  call void (ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %405, i32 noundef 6196, ptr noundef nonnull @.str.25) #13
  call void @qh_errexit_rbox(i32 noundef 4)
  %.pre1449 = load ptr, ptr %1, align 8, !tbaa !5
  br label %406

406:                                              ; preds = %404, %398
  %407 = phi ptr [ %.pre1449, %404 ], [ %403, %398 ]
  br i1 %286, label %.preheader911, label %.preheader913

.preheader913:                                    ; preds = %406
  %.not8141138 = icmp slt i32 %.0750.ph.lcssa.fr154615881688, 0
  br i1 %.not8141138, label %.loopexit909, label %.preheader912.lr.ph

.preheader912.lr.ph:                              ; preds = %.preheader913
  %.not1275 = icmp eq i32 %.0750.ph.lcssa.fr154615881688, 0
  br i1 %.not1275, label %.loopexit909.thread, label %.preheader912.us

.preheader912.us:                                 ; preds = %.preheader912.lr.ph, %._crit_edge1136.us
  %.21140.us = phi i32 [ %416, %._crit_edge1136.us ], [ 0, %.preheader912.lr.ph ]
  %.36651139.us = phi ptr [ %414, %._crit_edge1136.us ], [ %407, %.preheader912.lr.ph ]
  br label %408

408:                                              ; preds = %.preheader912.us, %408
  %.36461134.us = phi i32 [ 0, %.preheader912.us ], [ %415, %408 ]
  %.46661133.us = phi ptr [ %.36651139.us, %.preheader912.us ], [ %414, %408 ]
  %409 = call i32 @qh_rand() #13
  %410 = sitofp i32 %409 to double
  %411 = fmul double %410, 2.000000e+00
  %412 = fdiv double %411, 0x41DFFFFFFF800000
  %413 = fadd double %412, -1.000000e+00
  %414 = getelementptr inbounds i8, ptr %.46661133.us, i64 8
  store double %413, ptr %.46661133.us, align 8, !tbaa !30
  %415 = add nuw nsw i32 %.36461134.us, 1
  %exitcond.not = icmp eq i32 %415, %.0750.ph.lcssa.fr154615881688
  br i1 %exitcond.not, label %._crit_edge1136.us, label %408, !llvm.loop !31

._crit_edge1136.us:                               ; preds = %408
  %416 = add nuw i32 %.21140.us, 1
  %exitcond1343.not = icmp eq i32 %.21140.us, %.0750.ph.lcssa.fr154615881688
  br i1 %exitcond1343.not, label %.loopexit909, label %.preheader912.us, !llvm.loop !32

.preheader911:                                    ; preds = %406
  %417 = icmp sgt i32 %.0750.ph.lcssa.fr154615881688, 0
  br i1 %417, label %.preheader910.us.preheader, label %.loopexit909

.preheader910.us.preheader:                       ; preds = %.preheader911
  %418 = zext nneg i32 %.0750.ph.lcssa.fr154615881688 to i64
  %min.iters.check = icmp ult i32 %.0750.ph.lcssa.fr154615881688, 4
  %n.vec = and i64 %418, 2147483644
  %ind.end = trunc nuw nsw i64 %n.vec to i32
  %419 = shl nuw nsw i64 %n.vec, 3
  %cmp.n = icmp eq i64 %n.vec, %418
  br label %.preheader910.us

.preheader910.us:                                 ; preds = %.preheader910.us.preheader, %._crit_edge1144.us
  %.11147.us = phi i32 [ %430, %._crit_edge1144.us ], [ 0, %.preheader910.us.preheader ]
  %.06621146.us = phi ptr [ %.lcssa1835, %._crit_edge1144.us ], [ %407, %.preheader910.us.preheader ]
  br i1 %min.iters.check, label %scalar.ph.preheader, label %vector.ph

vector.ph:                                        ; preds = %.preheader910.us
  %ind.end1924 = getelementptr i8, ptr %.06621146.us, i64 %419
  %broadcast.splatinsert = insertelement <2 x i32> poison, i32 %.11147.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 %.06621146.us, i64 %offset.idx
  %420 = icmp eq <2 x i32> %broadcast.splat, %vec.ind
  %421 = icmp eq <2 x i32> %broadcast.splat, %step.add
  %422 = select <2 x i1> %420, <2 x double> <double 1.000000e+00, double 1.000000e+00>, <2 x double> zeroinitializer
  %423 = select <2 x i1> %421, <2 x double> <double 1.000000e+00, double 1.000000e+00>, <2 x double> zeroinitializer
  %424 = getelementptr i8, ptr %next.gep, i64 16
  store <2 x double> %422, ptr %next.gep, align 8, !tbaa !30
  store <2 x double> %423, ptr %424, align 8, !tbaa !30
  %index.next = add nuw i64 %index, 4
  %vec.ind.next = add <2 x i32> %vec.ind, <i32 4, i32 4>
  %425 = icmp eq i64 %index.next, %n.vec
  br i1 %425, label %middle.block, label %vector.body, !llvm.loop !33

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

scalar.ph.preheader:                              ; preds = %middle.block, %.preheader910.us
  %.16441142.us.ph = phi i32 [ 0, %.preheader910.us ], [ %ind.end, %middle.block ]
  %.16631141.us.ph = phi ptr [ %.06621146.us, %.preheader910.us ], [ %ind.end1924, %middle.block ]
  br label %scalar.ph

scalar.ph:                                        ; preds = %scalar.ph.preheader, %scalar.ph
  %.16441142.us = phi i32 [ %429, %scalar.ph ], [ %.16441142.us.ph, %scalar.ph.preheader ]
  %.16631141.us = phi ptr [ %428, %scalar.ph ], [ %.16631141.us.ph, %scalar.ph.preheader ]
  %426 = icmp eq i32 %.11147.us, %.16441142.us
  %427 = select i1 %426, double 1.000000e+00, double 0.000000e+00
  %428 = getelementptr inbounds i8, ptr %.16631141.us, i64 8
  store double %427, ptr %.16631141.us, align 8, !tbaa !30
  %429 = add nuw nsw i32 %.16441142.us, 1
  %exitcond1344.not = icmp eq i32 %429, %.0750.ph.lcssa.fr154615881688
  br i1 %exitcond1344.not, label %._crit_edge1144.us, label %scalar.ph, !llvm.loop !36

._crit_edge1144.us:                               ; preds = %scalar.ph, %middle.block
  %.lcssa1835 = phi ptr [ %ind.end1924, %middle.block ], [ %428, %scalar.ph ]
  %430 = add nuw nsw i32 %.11147.us, 1
  %exitcond1345.not = icmp eq i32 %430, %.0750.ph.lcssa.fr154615881688
  br i1 %exitcond1345.not, label %.preheader908, label %.preheader910.us, !llvm.loop !37

.preheader908:                                    ; preds = %._crit_edge1144.us
  br i1 %417, label %.lr.ph1151.preheader, label %.loopexit909

.lr.ph1151.preheader:                             ; preds = %.preheader908
  %min.iters.check1930 = icmp ult i32 %.0750.ph.lcssa.fr154615881688, 4
  br i1 %min.iters.check1930, label %.lr.ph1151.preheader2086, label %vector.ph1931

vector.ph1931:                                    ; preds = %.lr.ph1151.preheader
  %n.vec1933 = and i64 %418, 2147483644
  %ind.end1934 = trunc nuw nsw i64 %n.vec1933 to i32
  %431 = shl nuw nsw i64 %n.vec1933, 3
  %ind.end1936 = getelementptr i8, ptr %.lcssa1835, i64 %431
  br label %vector.body1938

vector.body1938:                                  ; preds = %vector.body1938, %vector.ph1931
  %index1939 = phi i64 [ 0, %vector.ph1931 ], [ %index.next1943, %vector.body1938 ]
  %offset.idx1940 = shl i64 %index1939, 3
  %next.gep1941 = getelementptr i8, ptr %.lcssa1835, i64 %offset.idx1940
  %432 = getelementptr i8, ptr %next.gep1941, i64 16
  store <2 x double> <double -1.000000e+00, double -1.000000e+00>, ptr %next.gep1941, align 8, !tbaa !30
  store <2 x double> <double -1.000000e+00, double -1.000000e+00>, ptr %432, align 8, !tbaa !30
  %index.next1943 = add nuw i64 %index1939, 4
  %433 = icmp eq i64 %index.next1943, %n.vec1933
  br i1 %433, label %middle.block1928, label %vector.body1938, !llvm.loop !38

middle.block1928:                                 ; preds = %vector.body1938
  %cmp.n1944 = icmp eq i64 %n.vec1933, %418
  br i1 %cmp.n1944, label %.loopexit909, label %.lr.ph1151.preheader2086

.lr.ph1151.preheader2086:                         ; preds = %middle.block1928, %.lr.ph1151.preheader
  %.26451150.ph = phi i32 [ 0, %.lr.ph1151.preheader ], [ %ind.end1934, %middle.block1928 ]
  %.26641149.ph = phi ptr [ %.lcssa1835, %.lr.ph1151.preheader ], [ %ind.end1936, %middle.block1928 ]
  br label %.lr.ph1151

.lr.ph1151:                                       ; preds = %.lr.ph1151.preheader2086, %.lr.ph1151
  %.26451150 = phi i32 [ %435, %.lr.ph1151 ], [ %.26451150.ph, %.lr.ph1151.preheader2086 ]
  %.26641149 = phi ptr [ %434, %.lr.ph1151 ], [ %.26641149.ph, %.lr.ph1151.preheader2086 ]
  %434 = getelementptr inbounds i8, ptr %.26641149, i64 8
  store double -1.000000e+00, ptr %.26641149, align 8, !tbaa !30
  %435 = add nuw nsw i32 %.26451150, 1
  %exitcond1346.not = icmp eq i32 %435, %.0750.ph.lcssa.fr154615881688
  br i1 %exitcond1346.not, label %.loopexit909, label %.lr.ph1151, !llvm.loop !39

.loopexit909:                                     ; preds = %._crit_edge1136.us, %.lr.ph1151, %middle.block1928, %.preheader911, %.preheader913, %.preheader908
  %.not8151158 = icmp sgt i32 %.0750.ph.lcssa.fr154615881688, -1
  %or.cond1813.not = and i1 %.not8151158, %252
  br i1 %or.cond1813.not, label %.lr.ph1162, label %.loopexit907

.loopexit909.thread:                              ; preds = %.preheader912.lr.ph
  br i1 %252, label %.lr.ph1162, label %.loopexit907

.lr.ph1162:                                       ; preds = %.loopexit909, %.loopexit909.thread
  %436 = load ptr, ptr %1, align 8, !tbaa !5
  %.not1276 = icmp eq i32 %.0750.ph.lcssa.fr154615881688, 0
  br label %437

437:                                              ; preds = %.lr.ph1162, %._crit_edge1156
  %.31160 = phi i32 [ 0, %.lr.ph1162 ], [ %445, %._crit_edge1156 ]
  %.56671159 = phi ptr [ %436, %.lr.ph1162 ], [ %.6668.lcssa, %._crit_edge1156 ]
  br i1 %.not799, label %439, label %438

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

439:                                              ; preds = %438, %437
  br i1 %.not1276, label %._crit_edge1156, label %.lr.ph1155

.lr.ph1155:                                       ; preds = %439, %.lr.ph1155
  %.46471153 = phi i32 [ %443, %.lr.ph1155 ], [ 0, %439 ]
  %.66681152 = phi ptr [ %440, %.lr.ph1155 ], [ %.56671159, %439 ]
  %440 = getelementptr inbounds i8, ptr %.66681152, i64 8
  %441 = load double, ptr %.66681152, align 8, !tbaa !30
  %442 = fmul double %.2631154815871689, %441
  call void @qh_out1(double noundef %442)
  %443 = add nuw nsw i32 %.46471153, 1
  %exitcond1347.not = icmp eq i32 %443, %.0750.ph.lcssa.fr154615881688
  br i1 %exitcond1347.not, label %._crit_edge1156, label %.lr.ph1155, !llvm.loop !40

._crit_edge1156:                                  ; preds = %.lr.ph1155, %439
  %.6668.lcssa = phi ptr [ %.56671159, %439 ], [ %440, %.lr.ph1155 ]
  %444 = load ptr, ptr @rbox, align 8, !tbaa !26
  call void (ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %444, i32 noundef 9395, ptr noundef nonnull @.str.24) #13
  %445 = add nuw i32 %.31160, 1
  %exitcond1348.not = icmp eq i32 %.31160, %.0750.ph.lcssa.fr154615881688
  br i1 %exitcond1348.not, label %.loopexit907, label %437, !llvm.loop !41

.loopexit907:                                     ; preds = %._crit_edge1156, %.loopexit909.thread, %.loopexit909
  %446 = icmp sgt i32 %.1748, 0
  br i1 %446, label %.lr.ph1182, label %.loopexit906

.lr.ph1182:                                       ; preds = %.loopexit907
  %.not834 = icmp eq i32 %.0730.ph.lcssa152516071669, 0
  %447 = icmp sgt i32 %.0750.ph.lcssa.fr154615881688, 0
  %.not8351170 = icmp slt i32 %.0750.ph.lcssa.fr154615881688, 0
  %448 = zext i32 %.0750.ph.lcssa.fr154615881688 to i64
  %449 = shl nuw nsw i64 %448, 3
  %wide.trip.count1356 = zext i32 %399 to i64
  %450 = shl nuw nsw i64 %448, 3
  %scevgep1959 = getelementptr i8, ptr %3, i64 %450
  %451 = shl nuw nsw i64 %448, 3
  %min.iters.check1963 = icmp ult i32 %.0750.ph.lcssa.fr154615881688, 4
  %n.vec1966 = and i64 %448, 2147483644
  %cmp.n1977 = icmp eq i64 %n.vec1966, %448
  %xtraiter = and i64 %448, 1
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  %452 = add nsw i64 %448, -1
  %min.iters.check1947 = icmp ult i32 %.0750.ph.lcssa.fr154615881688, 4
  %n.vec1950 = and i64 %448, 2147483644
  %cmp.n1958 = icmp eq i64 %n.vec1950, %448
  br label %453

453:                                              ; preds = %.lr.ph1182, %511
  %.06191180 = phi i32 [ 0, %.lr.ph1182 ], [ %508, %511 ]
  br i1 %.not834, label %457, label %454

454:                                              ; preds = %453
  %455 = call i32 @qh_rand() #13
  %456 = srem i32 %455, %399
  br label %457

457:                                              ; preds = %453, %454
  %.0752 = phi i32 [ %456, %454 ], [ -1, %453 ]
  br i1 %447, label %.lr.ph1168.us.preheader, label %.preheader905

.preheader905:                                    ; preds = %457
  br i1 %.not8351170, label %._crit_edge1178, label %.lr.ph1173.split

.lr.ph1168.us.preheader:                          ; preds = %457
  call void @llvm.memset.p0.i64(ptr nonnull align 16 %3, i8 0, i64 %449, i1 false), !tbaa !30
  %458 = zext i32 %.0752 to i64
  br label %.lr.ph1168.us

.lr.ph1168.us:                                    ; preds = %.lr.ph1168.us.preheader, %._crit_edge1169.us
  %indvars.iv1353 = phi i64 [ 0, %.lr.ph1168.us.preheader ], [ %indvars.iv.next1354, %._crit_edge1169.us ]
  %.06571171.us = phi double [ 0.000000e+00, %.lr.ph1168.us.preheader ], [ %492, %._crit_edge1169.us ]
  %459 = call i32 @qh_rand() #13
  %460 = sitofp i32 %459 to double
  %461 = fdiv double %460, 0x41DFFFFFFF800000
  %462 = icmp eq i64 %indvars.iv1353, %458
  %463 = select i1 %462, double %.0701.ph.lcssa153715961680, double 1.000000e+00
  %.0655.us = fmul double %463, %461
  %464 = load ptr, ptr %1, align 8, !tbaa !5
  %465 = mul nuw nsw i64 %indvars.iv1353, %448
  %466 = getelementptr inbounds double, ptr %464, i64 %465
  br i1 %min.iters.check1963, label %scalar.ph1962.preheader, label %vector.memcheck

vector.memcheck:                                  ; preds = %.lr.ph1168.us
  %467 = mul i64 %451, %indvars.iv1353
  %468 = getelementptr i8, ptr %464, i64 %450
  %scevgep1960 = getelementptr i8, ptr %468, i64 %467
  %bound0 = icmp ult ptr %3, %scevgep1960
  %bound1 = icmp ult ptr %466, %scevgep1959
  %found.conflict = and i1 %bound0, %bound1
  br i1 %found.conflict, label %scalar.ph1962.preheader, label %vector.ph1964

vector.ph1964:                                    ; preds = %vector.memcheck
  %broadcast.splatinsert1974 = insertelement <2 x double> poison, double %.0655.us, i64 0
  %broadcast.splat1975 = shufflevector <2 x double> %broadcast.splatinsert1974, <2 x double> poison, <2 x i32> zeroinitializer
  br label %vector.body1968

vector.body1968:                                  ; preds = %vector.body1968, %vector.ph1964
  %index1969 = phi i64 [ 0, %vector.ph1964 ], [ %index.next1976, %vector.body1968 ]
  %469 = getelementptr inbounds double, ptr %466, i64 %index1969
  %470 = getelementptr inbounds i8, ptr %469, i64 16
  %wide.load1970 = load <2 x double>, ptr %469, align 8, !tbaa !30, !alias.scope !42
  %wide.load1971 = load <2 x double>, ptr %470, align 8, !tbaa !30, !alias.scope !42
  %471 = getelementptr inbounds [200 x double], ptr %3, i64 0, i64 %index1969
  %472 = getelementptr inbounds i8, ptr %471, i64 16
  %wide.load1972 = load <2 x double>, ptr %471, align 16, !tbaa !30, !alias.scope !45, !noalias !42
  %wide.load1973 = load <2 x double>, ptr %472, align 16, !tbaa !30, !alias.scope !45, !noalias !42
  %473 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %broadcast.splat1975, <2 x double> %wide.load1970, <2 x double> %wide.load1972)
  %474 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %broadcast.splat1975, <2 x double> %wide.load1971, <2 x double> %wide.load1973)
  store <2 x double> %473, ptr %471, align 16, !tbaa !30, !alias.scope !45, !noalias !42
  store <2 x double> %474, ptr %472, align 16, !tbaa !30, !alias.scope !45, !noalias !42
  %index.next1976 = add nuw i64 %index1969, 4
  %475 = icmp eq i64 %index.next1976, %n.vec1966
  br i1 %475, label %middle.block1961, label %vector.body1968, !llvm.loop !47

middle.block1961:                                 ; preds = %vector.body1968
  br i1 %cmp.n1977, label %._crit_edge1169.us, label %scalar.ph1962.preheader

scalar.ph1962.preheader:                          ; preds = %middle.block1961, %vector.memcheck, %.lr.ph1168.us
  %indvars.iv.ph = phi i64 [ 0, %vector.memcheck ], [ 0, %.lr.ph1168.us ], [ %n.vec1966, %middle.block1961 ]
  br i1 %lcmp.mod.not, label %scalar.ph1962.prol.loopexit, label %scalar.ph1962.prol

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

scalar.ph1962.prol.loopexit:                      ; preds = %scalar.ph1962.prol, %scalar.ph1962.preheader
  %indvars.iv.unr = phi i64 [ %indvars.iv.ph, %scalar.ph1962.preheader ], [ %indvars.iv.next.prol, %scalar.ph1962.prol ]
  %481 = icmp eq i64 %indvars.iv.ph, %452
  br i1 %481, label %._crit_edge1169.us, label %scalar.ph1962

scalar.ph1962:                                    ; preds = %scalar.ph1962.prol.loopexit, %scalar.ph1962
  %indvars.iv = phi i64 [ %indvars.iv.next.1, %scalar.ph1962 ], [ %indvars.iv.unr, %scalar.ph1962.prol.loopexit ]
  %482 = getelementptr inbounds double, ptr %466, i64 %indvars.iv
  %483 = load double, ptr %482, align 8, !tbaa !30
  %484 = getelementptr inbounds [200 x double], ptr %3, i64 0, i64 %indvars.iv
  %485 = load double, ptr %484, align 8, !tbaa !30
  %486 = call double @llvm.fmuladd.f64(double %.0655.us, double %483, double %485)
  store double %486, ptr %484, align 8, !tbaa !30
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %487 = getelementptr inbounds double, ptr %466, i64 %indvars.iv.next
  %488 = load double, ptr %487, align 8, !tbaa !30
  %489 = getelementptr inbounds [200 x double], ptr %3, i64 0, i64 %indvars.iv.next
  %490 = load double, ptr %489, align 8, !tbaa !30
  %491 = call double @llvm.fmuladd.f64(double %.0655.us, double %488, double %490)
  store double %491, ptr %489, align 8, !tbaa !30
  %indvars.iv.next.1 = add nuw nsw i64 %indvars.iv, 2
  %exitcond1352.not.1 = icmp eq i64 %indvars.iv.next.1, %448
  br i1 %exitcond1352.not.1, label %._crit_edge1169.us, label %scalar.ph1962, !llvm.loop !48

._crit_edge1169.us:                               ; preds = %scalar.ph1962.prol.loopexit, %scalar.ph1962, %middle.block1961
  %492 = fadd double %.06571171.us, %.0655.us
  %indvars.iv.next1354 = add nuw nsw i64 %indvars.iv1353, 1
  %exitcond1357.not = icmp eq i64 %indvars.iv.next1354, %wide.trip.count1356
  br i1 %exitcond1357.not, label %.preheader904, label %.lr.ph1168.us, !llvm.loop !49

.preheader904:                                    ; preds = %._crit_edge1169.us, %.lr.ph1173.split
  %.0657.lcssa = phi double [ %504, %.lr.ph1173.split ], [ %492, %._crit_edge1169.us ]
  br i1 %447, label %.lr.ph1177, label %._crit_edge1178

.lr.ph1177:                                       ; preds = %.preheader904
  %493 = fdiv double %.2631154815871689, %.0657.lcssa
  br i1 %min.iters.check1947, label %scalar.ph1946.preheader, label %vector.ph1948

scalar.ph1946.preheader:                          ; preds = %middle.block1945, %.lr.ph1177
  %indvars.iv1358.ph = phi i64 [ 0, %.lr.ph1177 ], [ %n.vec1950, %middle.block1945 ]
  br label %scalar.ph1946

vector.ph1948:                                    ; preds = %.lr.ph1177
  %broadcast.splatinsert1955 = insertelement <2 x double> poison, double %493, i64 0
  %broadcast.splat1956 = shufflevector <2 x double> %broadcast.splatinsert1955, <2 x double> poison, <2 x i32> zeroinitializer
  br label %vector.body1952

vector.body1952:                                  ; preds = %vector.body1952, %vector.ph1948
  %index1953 = phi i64 [ 0, %vector.ph1948 ], [ %index.next1957, %vector.body1952 ]
  %494 = getelementptr inbounds [200 x double], ptr %3, i64 0, i64 %index1953
  %495 = getelementptr inbounds i8, ptr %494, i64 16
  %wide.load = load <2 x double>, ptr %494, align 16, !tbaa !30
  %wide.load1954 = load <2 x double>, ptr %495, align 16, !tbaa !30
  %496 = fmul <2 x double> %broadcast.splat1956, %wide.load
  %497 = fmul <2 x double> %broadcast.splat1956, %wide.load1954
  store <2 x double> %496, ptr %494, align 16, !tbaa !30
  store <2 x double> %497, ptr %495, align 16, !tbaa !30
  %index.next1957 = add nuw i64 %index1953, 4
  %498 = icmp eq i64 %index.next1957, %n.vec1950
  br i1 %498, label %middle.block1945, label %vector.body1952, !llvm.loop !50

middle.block1945:                                 ; preds = %vector.body1952
  br i1 %cmp.n1958, label %._crit_edge1178, label %scalar.ph1946.preheader

.lr.ph1173.split:                                 ; preds = %.preheader905
  %499 = call i32 @qh_rand() #13
  %500 = icmp eq i32 %.0752, 0
  %501 = select i1 %500, double %.0701.ph.lcssa153715961680, double 1.000000e+00
  %502 = sitofp i32 %499 to double
  %503 = fdiv double %502, 0x41DFFFFFFF800000
  %.0655 = fmul double %501, %503
  %504 = fadd double %.0655, 0.000000e+00
  br label %.preheader904

scalar.ph1946:                                    ; preds = %scalar.ph1946.preheader, %scalar.ph1946
  %indvars.iv1358 = phi i64 [ %indvars.iv.next1359, %scalar.ph1946 ], [ %indvars.iv1358.ph, %scalar.ph1946.preheader ]
  %505 = getelementptr inbounds [200 x double], ptr %3, i64 0, i64 %indvars.iv1358
  %506 = load double, ptr %505, align 8, !tbaa !30
  %507 = fmul double %493, %506
  store double %507, ptr %505, align 8, !tbaa !30
  %indvars.iv.next1359 = add nuw nsw i64 %indvars.iv1358, 1
  %exitcond1362.not = icmp eq i64 %indvars.iv.next1359, %448
  br i1 %exitcond1362.not, label %._crit_edge1178, label %scalar.ph1946, !llvm.loop !51

._crit_edge1178:                                  ; preds = %scalar.ph1946, %middle.block1945, %.preheader905, %.preheader904
  call void @qh_outcoord(i32 noundef %.0737.ph.lcssa152216101666, ptr noundef nonnull %3, i32 noundef %.0750.ph.lcssa.fr154615881688)
  %508 = add nuw nsw i32 %.06191180, 1
  %509 = icmp slt i32 %.06191180, %spec.select858
  br i1 %509, label %510, label %511

510:                                              ; preds = %._crit_edge1178
  call void @qh_outcoincident(i32 noundef %.0761.ph.lcssa151716151661, double noundef %.0684.ph.lcssa154015931683, i32 noundef %.0737.ph.lcssa152216101666, ptr noundef nonnull %3, i32 noundef %.0750.ph.lcssa.fr154615881688)
  br label %511

511:                                              ; preds = %._crit_edge1178, %510
  %exitcond1363.not = icmp eq i32 %508, %.1748
  br i1 %exitcond1363.not, label %.loopexit906, label %453, !llvm.loop !52

.loopexit906:                                     ; preds = %511, %.loopexit907, %.critedge17
  %.2749 = phi i32 [ %.1748, %.critedge17 ], [ 0, %.loopexit907 ], [ 0, %511 ]
  %.2734 = phi i32 [ %.0732.ph.lcssa152416081668, %.critedge17 ], [ 0, %.loopexit907 ], [ 0, %511 ]
  %.1681 = phi i32 [ 0, %.critedge17 ], [ 0, %.loopexit907 ], [ %.1748, %511 ]
  br i1 %289, label %512, label %570

512:                                              ; preds = %.loopexit906
  %513 = sitofp i32 %.2749 to double
  %514 = sitofp i32 %.0750.ph.lcssa.fr154615881688 to double
  %515 = fdiv double 1.000000e+00, %514
  %516 = call double @pow(double noundef %513, double noundef %515) #13
  %517 = fadd double %516, 9.999900e-01
  %518 = fptosi double %517 to i32
  %.not8301244 = icmp eq i32 %.0750.ph.lcssa.fr154615881688, 0
  br i1 %.not8301244, label %.preheader894, label %.lr.ph1247.preheader

.lr.ph1247.preheader:                             ; preds = %512
  %519 = add i32 %.0750.ph.lcssa.fr154615881688, -1
  %520 = sext i32 %519 to i64
  %521 = zext i32 %519 to i64
  %522 = sub nsw i64 %520, %521
  %523 = shl nsw i64 %522, 2
  %scevgep = getelementptr i8, ptr %4, i64 %523
  %524 = zext i32 %.0750.ph.lcssa.fr154615881688 to i64
  %525 = shl nuw nsw i64 %524, 2
  call void @llvm.memset.p0.i64(ptr align 4 %scevgep, i8 0, i64 %525, i1 false), !tbaa !53
  br label %.preheader894

.preheader894:                                    ; preds = %.lr.ph1247.preheader, %512
  %526 = icmp sgt i32 %.2749, 0
  br i1 %526, label %.preheader893.lr.ph, label %.loopexit895

.preheader893.lr.ph:                              ; preds = %.preheader894
  %527 = icmp sgt i32 %.0750.ph.lcssa.fr154615881688, 0
  %528 = getelementptr inbounds i8, ptr %4, i64 4
  %529 = fneg double %.0677.ph.lcssa154115921684
  %wide.trip.count1421 = zext i32 %.0750.ph.lcssa.fr154615881688 to i64
  %wide.trip.count1426 = zext nneg i32 %.0750.ph.lcssa.fr154615881688 to i64
  %xtraiter2189 = and i64 %wide.trip.count1421, 1
  %530 = icmp eq i32 %.0750.ph.lcssa.fr154615881688, 1
  %unroll_iter2192 = and i64 %wide.trip.count1421, 2147483646
  %lcmp.mod2191.not = icmp eq i64 %xtraiter2189, 0
  br label %.preheader893

.preheader893:                                    ; preds = %.preheader893.lr.ph, %._crit_edge1255
  %.51258 = phi i32 [ 0, %.preheader893.lr.ph ], [ %569, %._crit_edge1255 ]
  %.26821257 = phi i32 [ %.1681, %.preheader893.lr.ph ], [ %560, %._crit_edge1255 ]
  br i1 %527, label %.lr.ph1250, label %._crit_edge1251

.lr.ph1250:                                       ; preds = %.preheader893
  %531 = load i32, ptr %4, align 16
  %532 = sitofp i32 %531 to double
  %533 = load i32, ptr %528, align 4
  %534 = sitofp i32 %533 to double
  %535 = fmul double %.0674.ph.lcssa154215911685, %534
  %536 = call double @llvm.fmuladd.f64(double %532, double %.0677.ph.lcssa154115921684, double %535)
  %537 = fmul double %529, %534
  %538 = call double @llvm.fmuladd.f64(double %532, double %.0674.ph.lcssa154215911685, double %537)
  br i1 %530, label %._crit_edge1251.loopexit.unr-lcssa, label %.lr.ph1250.new

.lr.ph1250.new:                                   ; preds = %.lr.ph1250, %552
  %indvars.iv1418 = phi i64 [ %indvars.iv.next1419.1, %552 ], [ 0, %.lr.ph1250 ]
  %.06691248 = phi ptr [ %.1670.1, %552 ], [ %3, %.lr.ph1250 ]
  %niter2193 = phi i64 [ %niter2193.next.1, %552 ], [ 0, %.lr.ph1250 ]
  %539 = trunc nuw nsw i64 %indvars.iv1418 to i32
  %cond = icmp eq i32 %539, 0
  br i1 %cond, label %545, label %540

540:                                              ; preds = %.lr.ph1250.new
  %541 = getelementptr inbounds [200 x i32], ptr %4, i64 0, i64 %indvars.iv1418
  %542 = load i32, ptr %541, align 8, !tbaa !53
  %543 = sitofp i32 %542 to double
  %544 = fmul double %.0671.ph.lcssa154315901686, %543
  br label %545

545:                                              ; preds = %.lr.ph1250.new, %540
  %.sink = phi double [ %544, %540 ], [ %538, %.lr.ph1250.new ]
  store double %.sink, ptr %.06691248, align 8, !tbaa !30
  %.1670 = getelementptr inbounds i8, ptr %.06691248, i64 8
  %indvars.iv.next1419 = or disjoint i64 %indvars.iv1418, 1
  %546 = trunc nuw nsw i64 %indvars.iv.next1419 to i32
  %cond2289 = icmp eq i32 %546, 1
  br i1 %cond2289, label %552, label %547

547:                                              ; preds = %545
  %548 = getelementptr inbounds [200 x i32], ptr %4, i64 0, i64 %indvars.iv.next1419
  %549 = load i32, ptr %548, align 4, !tbaa !53
  %550 = sitofp i32 %549 to double
  %551 = fmul double %.0671.ph.lcssa154315901686, %550
  br label %552

552:                                              ; preds = %545, %547
  %.sink.1 = phi double [ %551, %547 ], [ %536, %545 ]
  store double %.sink.1, ptr %.1670, align 8, !tbaa !30
  %.1670.1 = getelementptr inbounds i8, ptr %.06691248, i64 16
  %indvars.iv.next1419.1 = add nuw nsw i64 %indvars.iv1418, 2
  %niter2193.next.1 = add i64 %niter2193, 2
  %niter2193.ncmp.1 = icmp eq i64 %niter2193.next.1, %unroll_iter2192
  br i1 %niter2193.ncmp.1, label %._crit_edge1251.loopexit.unr-lcssa, label %.lr.ph1250.new, !llvm.loop !54

._crit_edge1251.loopexit.unr-lcssa:               ; preds = %552, %.lr.ph1250
  %indvars.iv1418.unr = phi i64 [ 0, %.lr.ph1250 ], [ %indvars.iv.next1419.1, %552 ]
  %.06691248.unr = phi ptr [ %3, %.lr.ph1250 ], [ %.1670.1, %552 ]
  br i1 %lcmp.mod2191.not, label %._crit_edge1251, label %.epil.preheader

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

554:                                              ; preds = %.epil.preheader
  br label %._crit_edge1251.loopexit.epilog-lcssa

555:                                              ; preds = %.epil.preheader
  %556 = getelementptr inbounds [200 x i32], ptr %4, i64 0, i64 %indvars.iv1418.unr
  %557 = load i32, ptr %556, align 4, !tbaa !53
  %558 = sitofp i32 %557 to double
  %559 = fmul double %.0671.ph.lcssa154315901686, %558
  br label %._crit_edge1251.loopexit.epilog-lcssa

._crit_edge1251.loopexit.epilog-lcssa:            ; preds = %555, %554, %.epil.preheader
  %.sink.epil = phi double [ %559, %555 ], [ %536, %554 ], [ %538, %.epil.preheader ]
  store double %.sink.epil, ptr %.06691248.unr, align 8, !tbaa !30
  br label %._crit_edge1251

._crit_edge1251:                                  ; preds = %._crit_edge1251.loopexit.epilog-lcssa, %._crit_edge1251.loopexit.unr-lcssa, %.preheader893
  call void @qh_outcoord(i32 noundef %.0737.ph.lcssa152216101666, ptr noundef nonnull %3, i32 noundef %.0750.ph.lcssa.fr154615881688)
  %560 = add nuw nsw i32 %.26821257, 1
  %561 = icmp slt i32 %.26821257, %spec.select858
  br i1 %561, label %562, label %563

562:                                              ; preds = %._crit_edge1251
  call void @qh_outcoincident(i32 noundef %.0761.ph.lcssa151716151661, double noundef %.0684.ph.lcssa154015931683, i32 noundef %.0737.ph.lcssa152216101666, ptr noundef nonnull %3, i32 noundef %.0750.ph.lcssa.fr154615881688)
  br label %563

563:                                              ; preds = %562, %._crit_edge1251
  br i1 %527, label %.lr.ph1254, label %._crit_edge1255

.lr.ph1254:                                       ; preds = %563, %568
  %indvars.iv1423 = phi i64 [ %indvars.iv.next1424, %568 ], [ 0, %563 ]
  %564 = getelementptr inbounds [200 x i32], ptr %4, i64 0, i64 %indvars.iv1423
  %565 = load i32, ptr %564, align 4, !tbaa !53
  %566 = add nsw i32 %565, 1
  store i32 %566, ptr %564, align 4, !tbaa !53
  %567 = icmp slt i32 %566, %518
  br i1 %567, label %._crit_edge1255, label %568

568:                                              ; preds = %.lr.ph1254
  store i32 0, ptr %564, align 4, !tbaa !53
  %indvars.iv.next1424 = add nuw nsw i64 %indvars.iv1423, 1
  %exitcond1427.not = icmp eq i64 %indvars.iv.next1424, %wide.trip.count1426
  br i1 %exitcond1427.not, label %._crit_edge1255, label %.lr.ph1254, !llvm.loop !55

._crit_edge1255:                                  ; preds = %.lr.ph1254, %568, %563
  %569 = add nuw nsw i32 %.51258, 1
  %exitcond1428.not = icmp eq i32 %569, %.2749
  br i1 %exitcond1428.not, label %.loopexit895, label %.preheader893, !llvm.loop !56

570:                                              ; preds = %.loopexit906
  %571 = icmp eq i32 %.2734, 0
  %or.cond19 = or i1 %249, %571
  br i1 %or.cond19, label %628, label %572

572:                                              ; preds = %570
  %573 = add i32 %.0750.ph.lcssa.fr154615881688, -4
  %or.cond21 = icmp ult i32 %573, -2
  br i1 %or.cond21, label %.thread866, label %577

.thread866:                                       ; preds = %572
  %574 = load ptr, ptr getelementptr inbounds (i8, ptr @rbox, i64 8), align 8, !tbaa !22
  call void (ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %574, i32 noundef 6197, ptr noundef nonnull @.str.26) #13
  call void @qh_errexit_rbox(i32 noundef 1)
  %575 = icmp eq i32 %.0739.ph.lcssa152116111665, 0
  %576 = fcmp oeq double %.0687.ph.lcssa153915941682, 0.000000e+00
  %or.cond23867 = select i1 %575, i1 true, i1 %576
  %.4691868 = select i1 %or.cond23867, double 1.000000e+00, double %.0687.ph.lcssa153915941682
  br label %587

577:                                              ; preds = %572
  %578 = icmp eq i32 %.0739.ph.lcssa152116111665, 0
  %579 = fcmp oeq double %.0687.ph.lcssa153915941682, 0.000000e+00
  %or.cond23 = select i1 %578, i1 true, i1 %579
  %.4691 = select i1 %or.cond23, double 1.000000e+00, double %.0687.ph.lcssa153915941682
  %580 = icmp eq i32 %.0750.ph.lcssa.fr154615881688, 3
  br i1 %580, label %581, label %587

581:                                              ; preds = %577
  br i1 %.not799, label %582, label %.thread870

582:                                              ; preds = %581
  %583 = fneg double %.2631154815871689
  call void @qh_out3n(double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef %583)
  %.not816 = icmp eq i32 %.0721.ph.lcssa152716051671, 0
  br i1 %.not816, label %586, label %587

.thread870:                                       ; preds = %581
  call void @qh_out1(double noundef 1.000000e+00)
  %584 = fneg double %.2631154815871689
  call void @qh_out3n(double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef %584)
  %.not816871 = icmp eq i32 %.0721.ph.lcssa152716051671, 0
  br i1 %.not816871, label %585, label %587

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

586:                                              ; preds = %582, %585
  call void @qh_out3n(double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef %.2631154815871689)
  br label %587

587:                                              ; preds = %.thread870, %.thread866, %582, %586, %577
  %.0721.ph.lcssa1528 = phi i32 [ %.0721.ph.lcssa152716051671, %.thread866 ], [ %.0721.ph.lcssa152716051671, %582 ], [ 0, %586 ], [ %.0721.ph.lcssa152716051671, %577 ], [ %.0721.ph.lcssa152716051671, %.thread870 ]
  %.4691869 = phi double [ %.4691868, %.thread866 ], [ %.4691, %582 ], [ %.4691, %586 ], [ %.4691, %577 ], [ %.4691, %.thread870 ]
  %588 = sitofp i32 %.2749 to double
  %589 = fdiv double 0x401921FB54442D18, %588
  %590 = icmp sgt i32 %.2749, 0
  br i1 %590, label %.lr.ph1187, label %.loopexit895

.lr.ph1187:                                       ; preds = %587
  %591 = icmp eq i32 %.0750.ph.lcssa.fr154615881688, 2
  %.not817 = icmp eq i32 %.0721.ph.lcssa1528, 0
  %592 = fsub double 1.000000e+00, %.0692.ph.lcssa153815951681
  br label %593

593:                                              ; preds = %.lr.ph1187, %626
  %.61185 = phi i32 [ 0, %.lr.ph1187 ], [ %627, %626 ]
  %.06381184 = phi double [ 0.000000e+00, %.lr.ph1187 ], [ %594, %626 ]
  %594 = fadd double %589, %.06381184
  %595 = call double @cos(double noundef %594) #13
  %596 = fmul double %.4691869, %595
  %597 = call double @sin(double noundef %594) #13
  %598 = fmul double %.4691869, %597
  br i1 %591, label %599, label %604

599:                                              ; preds = %593
  br i1 %.not799, label %601, label %600

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

601:                                              ; preds = %600, %599
  %602 = fmul double %.2631154815871689, %596
  %603 = fmul double %.2631154815871689, %598
  call void @qh_out2n(double noundef %602, double noundef %603)
  br label %626

604:                                              ; preds = %593
  %605 = call double @llvm.fmuladd.f64(double %596, double %596, double 1.000000e+00)
  %606 = call double @llvm.fmuladd.f64(double %598, double %598, double %605)
  %sqrt889 = call double @llvm.sqrt.f64(double %606)
  br i1 %.not799, label %608, label %607

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

608:                                              ; preds = %607, %604
  %609 = fmul double %.2631154815871689, %596
  %610 = fdiv double %609, %sqrt889
  %611 = fmul double %.2631154815871689, %598
  %612 = fdiv double %611, %sqrt889
  %613 = fdiv double %.2631154815871689, %sqrt889
  call void @qh_out3n(double noundef %610, double noundef %612, double noundef %613)
  br i1 %.not817, label %626, label %614

614:                                              ; preds = %608
  %615 = fmul double %592, %596
  %616 = fmul double %592, %598
  %617 = call double @llvm.fmuladd.f64(double %615, double %615, double 1.000000e+00)
  %618 = call double @llvm.fmuladd.f64(double %616, double %616, double %617)
  %sqrt890 = call double @llvm.sqrt.f64(double %618)
  br i1 %.not799, label %620, label %619

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

620:                                              ; preds = %619, %614
  %621 = fmul double %.2631154815871689, %615
  %622 = fdiv double %621, %sqrt890
  %623 = fmul double %.2631154815871689, %616
  %624 = fdiv double %623, %sqrt890
  %625 = fdiv double %.2631154815871689, %sqrt890
  call void @qh_out3n(double noundef %622, double noundef %624, double noundef %625)
  br label %626

626:                                              ; preds = %601, %620, %608
  %627 = add nuw nsw i32 %.61185, 1
  %exitcond1364.not = icmp eq i32 %627, %.2749
  br i1 %exitcond1364.not, label %.loopexit895, label %593, !llvm.loop !57

628:                                              ; preds = %570
  %629 = icmp ne i32 %.2734, 0
  %or.cond25 = and i1 %249, %629
  %630 = icmp eq i32 %.0750.ph.lcssa.fr154615881688, 2
  %or.cond27 = and i1 %or.cond25, %630
  br i1 %or.cond27, label %631, label %663

631:                                              ; preds = %628
  %632 = fmul double %.0642, 2.000000e+00
  %633 = add nsw i32 %.2749, -1
  %634 = sitofp i32 %633 to double
  %635 = fdiv double %632, %634
  %636 = call double @cos(double noundef %.0642) #13
  %637 = icmp sgt i32 %.2749, 0
  br i1 %637, label %.lr.ph1243.preheader, label %.loopexit895

.lr.ph1243.preheader:                             ; preds = %631
  %638 = call double @sin(double noundef %.0642) #13
  %639 = fmul double %.0687.ph.lcssa153915941682, %638
  %640 = call double @cos(double noundef %.0642) #13
  %641 = fsub double %640, %636
  %642 = fmul double %.0687.ph.lcssa153915941682, %641
  br i1 %.not799, label %644, label %643

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

644:                                              ; preds = %.lr.ph1243.preheader, %643
  %645 = fmul double %.2631154815871689, %639
  %646 = fmul double %.2631154815871689, %642
  call void @qh_out2n(double noundef %645, double noundef %646)
  %exitcond1413.peel.not = icmp eq i32 %.2749, 1
  br i1 %exitcond1413.peel.not, label %.loopexit895, label %.lr.ph1243

.lr.ph1243:                                       ; preds = %644, %661
  %.71241 = phi i32 [ %662, %661 ], [ 1, %644 ]
  %.16391240.pn = phi double [ %.16391240, %661 ], [ %.0642, %644 ]
  %.16391240 = fsub double %.16391240.pn, %635
  %647 = call double @sin(double noundef %.16391240) #13
  %648 = fmul double %.0687.ph.lcssa153915941682, %647
  %649 = call double @cos(double noundef %.16391240) #13
  %650 = fsub double %649, %636
  %651 = fmul double %.0687.ph.lcssa153915941682, %650
  br i1 %.not799, label %653, label %652

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

653:                                              ; preds = %652, %.lr.ph1243
  %654 = fmul double %.2631154815871689, %648
  %655 = fmul double %.2631154815871689, %651
  call void @qh_out2n(double noundef %654, double noundef %655)
  %.not829 = icmp eq i32 %.71241, %633
  br i1 %.not829, label %661, label %656

656:                                              ; preds = %653
  br i1 %.not799, label %658, label %657

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

658:                                              ; preds = %657, %656
  %659 = fneg double %651
  %660 = fmul double %.2631154815871689, %659
  call void @qh_out2n(double noundef %654, double noundef %660)
  br label %661

661:                                              ; preds = %653, %658
  %662 = add nuw nsw i32 %.71241, 1
  %exitcond1413.not = icmp eq i32 %662, %.2749
  br i1 %exitcond1413.not, label %.loopexit895, label %.lr.ph1243, !llvm.loop !58

663:                                              ; preds = %628
  %664 = icmp ne i32 %.0750.ph.lcssa.fr154615881688, 2
  %or.cond31 = and i1 %or.cond25, %664
  br i1 %or.cond31, label %665, label %701

665:                                              ; preds = %663
  %.not826 = icmp eq i32 %.0750.ph.lcssa.fr154615881688, 3
  br i1 %.not826, label %668, label %666

666:                                              ; preds = %665
  %667 = load ptr, ptr getelementptr inbounds (i8, ptr @rbox, i64 8), align 8, !tbaa !22
  call void (ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %667, i32 noundef 6198, ptr noundef nonnull @.str.26) #13
  call void @qh_errexit_rbox(i32 noundef 1)
  br label %668

668:                                              ; preds = %666, %665
  %669 = sitofp i32 %.2749 to double
  %670 = fdiv double 0x401921FB54442D18, %669
  %.not827 = icmp eq i32 %.0721.ph.lcssa152716051671, 0
  %671 = fsub double 1.000000e+00, %.0692.ph.lcssa153815951681
  %672 = select i1 %.not827, double 5.000000e-01, double %671
  %673 = fneg double %672
  %674 = fmul double %672, %673
  %675 = call double @llvm.fmuladd.f64(double %.0687.ph.lcssa153915941682, double %.0687.ph.lcssa153915941682, double %674)
  %676 = call double @sqrt(double noundef %675) #13
  %677 = icmp sgt i32 %.2749, 0
  br i1 %677, label %.lr.ph1239, label %.loopexit895

.lr.ph1239:                                       ; preds = %668
  %678 = fsub double %676, %.0641
  %679 = fmul double %.2631154815871689, %678
  %680 = fneg double %.2631154815871689
  %681 = fmul double %678, %680
  br label %682

682:                                              ; preds = %.lr.ph1239, %696
  %.81237 = phi i32 [ 0, %.lr.ph1239 ], [ %699, %696 ]
  %.26401236 = phi double [ 0.000000e+00, %.lr.ph1239 ], [ %700, %696 ]
  %683 = call double @cos(double noundef %.26401236) #13
  %684 = call double @sin(double noundef %.26401236) #13
  br i1 %.not799, label %686, label %685

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

686:                                              ; preds = %685, %682
  %687 = fmul double %.2631154815871689, %683
  %688 = fmul double %.2631154815871689, %684
  call void @qh_out3n(double noundef %687, double noundef %688, double noundef 0.000000e+00)
  %689 = fmul double %672, %683
  %690 = fmul double %672, %684
  br i1 %.not799, label %.thread1697, label %693

.thread1697:                                      ; preds = %686
  %691 = fmul double %.2631154815871689, %689
  %692 = fmul double %.2631154815871689, %690
  call void @qh_out3n(double noundef %691, double noundef %692, double noundef %679)
  br label %696

693:                                              ; preds = %686
  call void @qh_out1(double noundef 1.000000e+00)
  %694 = fmul double %.2631154815871689, %689
  %695 = fmul double %.2631154815871689, %690
  call void @qh_out3n(double noundef %694, double noundef %695, double noundef %679)
  call void @qh_out1(double noundef 1.000000e+00)
  br label %696

696:                                              ; preds = %.thread1697, %693
  %697 = phi double [ %692, %.thread1697 ], [ %695, %693 ]
  %698 = phi double [ %691, %.thread1697 ], [ %694, %693 ]
  call void @qh_out3n(double noundef %698, double noundef %697, double noundef %681)
  %699 = add nuw nsw i32 %.81237, 1
  %700 = fadd double %670, %.26401236
  %exitcond1412.not = icmp eq i32 %699, %.2749
  br i1 %exitcond1412.not, label %.loopexit895, label %682, !llvm.loop !60

701:                                              ; preds = %663
  %702 = icmp ne i32 %.0739.ph.lcssa152116111665, 0
  br i1 %702, label %703, label %711

703:                                              ; preds = %701
  %704 = add i32 %.0750.ph.lcssa.fr154615881688, -1
  br i1 %.not799, label %706, label %705

705:                                              ; preds = %703
  call void @qh_out1(double noundef 1.000000e+00)
  br label %706

706:                                              ; preds = %705, %703
  %707 = icmp sgt i32 %.0750.ph.lcssa.fr154615881688, 1
  br i1 %707, label %.lr.ph1190, label %._crit_edge1191

.lr.ph1190:                                       ; preds = %706, %.lr.ph1190
  %.16201188 = phi i32 [ %708, %.lr.ph1190 ], [ 0, %706 ]
  call void @qh_out1(double noundef 0.000000e+00)
  %708 = add nuw nsw i32 %.16201188, 1
  %exitcond1365.not = icmp eq i32 %708, %704
  br i1 %exitcond1365.not, label %._crit_edge1191, label %.lr.ph1190, !llvm.loop !61

._crit_edge1191:                                  ; preds = %.lr.ph1190, %706
  %709 = fneg double %.2631154815871689
  call void @qh_out1(double noundef %709)
  %710 = load ptr, ptr @rbox, align 8, !tbaa !26
  call void (ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %710, i32 noundef 9398, ptr noundef nonnull @.str.24) #13
  br label %713

711:                                              ; preds = %701
  %712 = sext i1 %249 to i32
  %spec.select863 = add nsw i32 %.0750.ph.lcssa.fr154615881688, %712
  br label %713

713:                                              ; preds = %711, %._crit_edge1191
  %.0661 = phi i32 [ %704, %._crit_edge1191 ], [ %spec.select863, %711 ]
  %714 = icmp sgt i32 %.2749, 0
  br i1 %714, label %.preheader901.lr.ph, label %.loopexit895

.preheader901.lr.ph:                              ; preds = %713
  %715 = icmp sgt i32 %.0661, 0
  %716 = icmp ne i32 %.2743, 0
  %or.cond33 = select i1 %249, i1 %716, i1 false
  %717 = icmp eq i32 %.0735.ph.lcssa152316091667, 0
  %or.cond35 = select i1 %717, i1 true, i1 %716
  %.not819 = icmp eq i32 %.0719.ph.lcssa152916041672, 0
  %.not821 = icmp eq i32 %.0750.ph.lcssa.fr154615881688, 3
  %718 = add nsw i32 %.2749, -1
  %719 = uitofp nneg i32 %718 to double
  %720 = getelementptr inbounds i8, ptr %3, i64 8
  %721 = getelementptr inbounds i8, ptr %3, i64 16
  %.not820 = icmp eq i32 %.0730.ph.lcssa152516071669, 0
  %722 = icmp sgt i32 %.0750.ph.lcssa.fr154615881688, 0
  %or.cond37 = select i1 %702, i1 %716, i1 false
  %723 = icmp eq i32 %.0739.ph.lcssa152116111665, 0
  %or.cond39 = select i1 %723, i1 true, i1 %716
  %724 = add nsw i32 %.0750.ph.lcssa.fr154615881688, -1
  %725 = sext i32 %724 to i64
  %726 = getelementptr inbounds [200 x double], ptr %3, i64 0, i64 %725
  %wide.trip.count1369 = zext i32 %.0661 to i64
  %wide.trip.count1374 = zext i32 %.0750.ph.lcssa.fr154615881688 to i64
  %wide.trip.count1379 = zext nneg i32 %.0661 to i64
  %wide.trip.count1384 = zext nneg i32 %.0661 to i64
  %wide.trip.count1394 = zext nneg i32 %.0750.ph.lcssa.fr154615881688 to i64
  %wide.trip.count1404 = zext nneg i32 %.0750.ph.lcssa.fr154615881688 to i64
  %wide.trip.count1409 = zext nneg i32 %.0750.ph.lcssa.fr154615881688 to i64
  %min.iters.check2055 = icmp ult i32 %.0750.ph.lcssa.fr154615881688, 4
  %n.vec2058 = and i64 %wide.trip.count1374, 2147483644
  %cmp.n2067 = icmp eq i64 %n.vec2058, %wide.trip.count1374
  %min.iters.check2040 = icmp ult i32 %.0661, 4
  %n.vec2043 = and i64 %wide.trip.count1369, 2147483644
  %cmp.n2052 = icmp eq i64 %n.vec2043, %wide.trip.count1369
  %min.iters.check2025 = icmp ult i32 %.0661, 4
  %n.vec2028 = and i64 %wide.trip.count1369, 2147483644
  %cmp.n2037 = icmp eq i64 %n.vec2028, %wide.trip.count1369
  %xtraiter2180 = and i64 %wide.trip.count1374, 3
  %727 = icmp ult i32 %.0750.ph.lcssa.fr154615881688, 4
  %unroll_iter = and i64 %wide.trip.count1374, 2147483644
  %lcmp.mod2181.not = icmp eq i64 %xtraiter2180, 0
  %min.iters.check2009 = icmp eq i32 %.0750.ph.lcssa.fr154615881688, 1
  %n.vec2012 = and i64 %wide.trip.count1374, 2147483646
  %broadcast.splatinsert2017 = insertelement <2 x double> poison, double %.0687.ph.lcssa153915941682, i64 0
  %broadcast.splat2018 = shufflevector <2 x double> %broadcast.splatinsert2017, <2 x double> poison, <2 x i32> zeroinitializer
  %cmp.n2022 = icmp eq i64 %n.vec2012, %wide.trip.count1374
  %xtraiter2183 = and i64 %wide.trip.count1369, 3
  %728 = icmp ult i32 %.0661, 4
  %unroll_iter2187 = and i64 %wide.trip.count1369, 2147483644
  %lcmp.mod2185.not = icmp eq i64 %xtraiter2183, 0
  %min.iters.check1995 = icmp eq i32 %.0750.ph.lcssa.fr154615881688, 1
  %n.vec1998 = and i64 %wide.trip.count1374, 2147483646
  %cmp.n2006 = icmp eq i64 %n.vec1998, %wide.trip.count1374
  %min.iters.check1980 = icmp ult i32 %.0750.ph.lcssa.fr154615881688, 4
  %n.vec1983 = and i64 %wide.trip.count1374, 2147483644
  %broadcast.splatinsert1989 = insertelement <2 x double> poison, double %.2631154815871689, i64 0
  %broadcast.splat1990 = shufflevector <2 x double> %broadcast.splatinsert1989, <2 x double> poison, <2 x i32> zeroinitializer
  %cmp.n1992 = icmp eq i64 %n.vec1983, %wide.trip.count1374
  br label %.preheader901

.preheader901:                                    ; preds = %.preheader901.lr.ph, %920
  %.91233 = phi i32 [ 0, %.preheader901.lr.ph ], [ %921, %920 ]
  %.36831232 = phi i32 [ %.1681, %.preheader901.lr.ph ], [ %917, %920 ]
  %.46961231 = phi double [ %.0692.ph.lcssa153815951681, %.preheader901.lr.ph ], [ %.8700879, %920 ]
  %.27231230 = phi i32 [ %.0721.ph.lcssa152716051671, %.preheader901.lr.ph ], [ %.6727877, %920 ]
  br i1 %715, label %.lr.ph1194, label %._crit_edge1195

.lr.ph1194:                                       ; preds = %.preheader901, %.lr.ph1194
  %indvars.iv1366 = phi i64 [ %indvars.iv.next1367, %.lr.ph1194 ], [ 0, %.preheader901 ]
  %.16581192 = phi double [ %735, %.lr.ph1194 ], [ 0.000000e+00, %.preheader901 ]
  %729 = call i32 @qh_rand() #13
  %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 %3, i64 0, i64 %indvars.iv1366
  store double %733, ptr %734, align 8, !tbaa !30
  %735 = call double @llvm.fmuladd.f64(double %733, double %733, double %.16581192)
  %indvars.iv.next1367 = add nuw nsw i64 %indvars.iv1366, 1
  %exitcond1370.not = icmp eq i64 %indvars.iv.next1367, %wide.trip.count1369
  br i1 %exitcond1370.not, label %._crit_edge1195, label %.lr.ph1194, !llvm.loop !62

._crit_edge1195:                                  ; preds = %.lr.ph1194, %.preheader901
  %.1658.lcssa = phi double [ 0.000000e+00, %.preheader901 ], [ %735, %.lr.ph1194 ]
  %736 = call double @sqrt(double noundef %.1658.lcssa) #13
  br i1 %702, label %737, label %753

737:                                              ; preds = %._crit_edge1195
  %.not823 = icmp eq i32 %.27231230, 0
  %.5697 = select i1 %.not823, double 1.000000e+00, double %.46961231
  %738 = call i32 @qh_rand() #13
  %739 = sitofp i32 %738 to double
  %740 = fmul double %.5697, %739
  %741 = fdiv double %740, 0x41DFFFFFFF800000
  %742 = fsub double 1.000000e+00, %741
  %743 = fmul double %.0687.ph.lcssa153915941682, %742
  %744 = fdiv double %743, %736
  br i1 %715, label %.lr.ph1205.preheader, label %.loopexit898

.lr.ph1205.preheader:                             ; preds = %737
  br i1 %min.iters.check2025, label %.lr.ph1205.preheader2075, label %vector.ph2026

vector.ph2026:                                    ; preds = %.lr.ph1205.preheader
  %broadcast.splatinsert2034 = insertelement <2 x double> poison, double %744, i64 0
  %broadcast.splat2035 = shufflevector <2 x double> %broadcast.splatinsert2034, <2 x double> poison, <2 x i32> zeroinitializer
  br label %vector.body2030

vector.body2030:                                  ; preds = %vector.body2030, %vector.ph2026
  %index2031 = phi i64 [ 0, %vector.ph2026 ], [ %index.next2036, %vector.body2030 ]
  %745 = getelementptr inbounds [200 x double], ptr %3, i64 0, i64 %index2031
  %746 = getelementptr inbounds i8, ptr %745, i64 16
  %wide.load2032 = load <2 x double>, ptr %745, align 16, !tbaa !30
  %wide.load2033 = load <2 x double>, ptr %746, align 16, !tbaa !30
  %747 = fmul <2 x double> %broadcast.splat2035, %wide.load2032
  %748 = fmul <2 x double> %broadcast.splat2035, %wide.load2033
  store <2 x double> %747, ptr %745, align 16, !tbaa !30
  store <2 x double> %748, ptr %746, align 16, !tbaa !30
  %index.next2036 = add nuw i64 %index2031, 4
  %749 = icmp eq i64 %index.next2036, %n.vec2028
  br i1 %749, label %middle.block2023, label %vector.body2030, !llvm.loop !63

middle.block2023:                                 ; preds = %vector.body2030
  br i1 %cmp.n2037, label %.loopexit898, label %.lr.ph1205.preheader2075

.lr.ph1205.preheader2075:                         ; preds = %middle.block2023, %.lr.ph1205.preheader
  %indvars.iv1381.ph = phi i64 [ 0, %.lr.ph1205.preheader ], [ %n.vec2028, %middle.block2023 ]
  br label %.lr.ph1205

.lr.ph1205:                                       ; preds = %.lr.ph1205.preheader2075, %.lr.ph1205
  %indvars.iv1381 = phi i64 [ %indvars.iv.next1382, %.lr.ph1205 ], [ %indvars.iv1381.ph, %.lr.ph1205.preheader2075 ]
  %750 = getelementptr inbounds [200 x double], ptr %3, i64 0, i64 %indvars.iv1381
  %751 = load double, ptr %750, align 8, !tbaa !30
  %752 = fmul double %744, %751
  store double %752, ptr %750, align 8, !tbaa !30
  %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 %.loopexit898, label %.lr.ph1205, !llvm.loop !64

753:                                              ; preds = %._crit_edge1195
  br i1 %or.cond33, label %754, label %769

754:                                              ; preds = %753
  %.not822 = icmp eq i32 %.27231230, 0
  %.6698 = select i1 %.not822, double 1.000000e+00, double %.46961231
  %755 = call i32 @qh_rand() #13
  %756 = sitofp i32 %755 to double
  %757 = fmul double %.6698, %756
  %758 = fdiv double %757, 0x41DFFFFFFF800000
  %759 = fsub double 1.000000e+00, %758
  %760 = fdiv double %759, %736
  br i1 %715, label %.lr.ph1202.preheader, label %.loopexit898

.lr.ph1202.preheader:                             ; preds = %754
  br i1 %min.iters.check2040, label %.lr.ph1202.preheader2076, label %vector.ph2041

vector.ph2041:                                    ; preds = %.lr.ph1202.preheader
  %broadcast.splatinsert2049 = insertelement <2 x double> poison, double %760, i64 0
  %broadcast.splat2050 = shufflevector <2 x double> %broadcast.splatinsert2049, <2 x double> poison, <2 x i32> zeroinitializer
  br label %vector.body2045

vector.body2045:                                  ; preds = %vector.body2045, %vector.ph2041
  %index2046 = phi i64 [ 0, %vector.ph2041 ], [ %index.next2051, %vector.body2045 ]
  %761 = getelementptr inbounds [200 x double], ptr %3, i64 0, i64 %index2046
  %762 = getelementptr inbounds i8, ptr %761, i64 16
  %wide.load2047 = load <2 x double>, ptr %761, align 16, !tbaa !30
  %wide.load2048 = load <2 x double>, ptr %762, align 16, !tbaa !30
  %763 = fmul <2 x double> %broadcast.splat2050, %wide.load2047
  %764 = fmul <2 x double> %broadcast.splat2050, %wide.load2048
  store <2 x double> %763, ptr %761, align 16, !tbaa !30
  store <2 x double> %764, ptr %762, align 16, !tbaa !30
  %index.next2051 = add nuw i64 %index2046, 4
  %765 = icmp eq i64 %index.next2051, %n.vec2043
  br i1 %765, label %middle.block2038, label %vector.body2045, !llvm.loop !65

middle.block2038:                                 ; preds = %vector.body2045
  br i1 %cmp.n2052, label %.loopexit898, label %.lr.ph1202.preheader2076

.lr.ph1202.preheader2076:                         ; preds = %middle.block2038, %.lr.ph1202.preheader
  %indvars.iv1376.ph = phi i64 [ 0, %.lr.ph1202.preheader ], [ %n.vec2043, %middle.block2038 ]
  br label %.lr.ph1202

.lr.ph1202:                                       ; preds = %.lr.ph1202.preheader2076, %.lr.ph1202
  %indvars.iv1376 = phi i64 [ %indvars.iv.next1377, %.lr.ph1202 ], [ %indvars.iv1376.ph, %.lr.ph1202.preheader2076 ]
  %766 = getelementptr inbounds [200 x double], ptr %3, i64 0, i64 %indvars.iv1376
  %767 = load double, ptr %766, align 8, !tbaa !30
  %768 = fmul double %760, %767
  store double %768, ptr %766, align 8, !tbaa !30
  %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 %.loopexit898, label %.lr.ph1202, !llvm.loop !66

769:                                              ; preds = %753
  br i1 %or.cond35, label %782, label %770

770:                                              ; preds = %769
  %.not818 = icmp eq i32 %.27231230, 0
  %.7699 = select i1 %.not818, double 1.000000e+00, double %.46961231
  %771 = call i32 @qh_rand() #13
  %772 = srem i32 %771, %.0661
  %773 = sext i32 %772 to i64
  %774 = getelementptr inbounds [200 x double], ptr %3, i64 0, i64 %773
  %775 = load double, ptr %774, align 8, !tbaa !30
  %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 %.7699, double -1.000000e+00)
  store double %779, ptr %774, align 8, !tbaa !30
  br label %.thread881

780:                                              ; preds = %770
  %781 = call double @llvm.fmuladd.f64(double %777, double %.7699, double 1.000000e+00)
  store double %781, ptr %774, align 8, !tbaa !30
  br label %.thread881

782:                                              ; preds = %769
  br i1 %.not819, label %796, label %783

783:                                              ; preds = %782
  br i1 %.not821, label %786, label %784

784:                                              ; preds = %783
  %785 = load ptr, ptr getelementptr inbounds (i8, ptr @rbox, i64 8), align 8, !tbaa !22
  call void (ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %785, i32 noundef 6199, ptr noundef nonnull @.str.27) #13
  call void @qh_errexit_rbox(i32 noundef 1)
  br label %786

786:                                              ; preds = %784, %783
  %787 = uitofp nneg i32 %.91233 to double
  %788 = fmul double %787, 0x401921FB54442D18
  %789 = fdiv double %788, %719
  %790 = call double @cos(double noundef %789) #13
  store double %790, ptr %3, align 16, !tbaa !30
  %791 = call double @sin(double noundef %789) #13
  store double %791, ptr %720, align 8, !tbaa !30
  %792 = shl nuw i32 %.91233, 1
  %793 = uitofp i32 %792 to double
  %794 = fdiv double %793, %719
  %795 = fadd double %794, -1.000000e+00
  store double %795, ptr %721, align 16, !tbaa !30
  br label %.thread881

796:                                              ; preds = %782
  br i1 %716, label %797, label %.thread881

797:                                              ; preds = %796
  %798 = fdiv double 1.000000e+00, %736
  br i1 %.not820, label %806, label %799

799:                                              ; preds = %797
  %800 = call i32 @qh_rand() #13
  %801 = sitofp i32 %800 to double
  %802 = fmul double %.0701.ph.lcssa153715961680, %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
  %.1656 = phi double [ %805, %799 ], [ %798, %797 ]
  br i1 %722, label %.lr.ph1199.preheader, label %.loopexit898

.lr.ph1199.preheader:                             ; preds = %806
  br i1 %min.iters.check2055, label %.lr.ph1199.preheader2078, label %vector.ph2056

vector.ph2056:                                    ; preds = %.lr.ph1199.preheader
  %broadcast.splatinsert2064 = insertelement <2 x double> poison, double %.1656, i64 0
  %broadcast.splat2065 = shufflevector <2 x double> %broadcast.splatinsert2064, <2 x double> poison, <2 x i32> zeroinitializer
  br label %vector.body2060

vector.body2060:                                  ; preds = %vector.body2060, %vector.ph2056
  %index2061 = phi i64 [ 0, %vector.ph2056 ], [ %index.next2066, %vector.body2060 ]
  %807 = getelementptr inbounds [200 x double], ptr %3, i64 0, i64 %index2061
  %808 = getelementptr inbounds i8, ptr %807, i64 16
  %wide.load2062 = load <2 x double>, ptr %807, align 16, !tbaa !30
  %wide.load2063 = load <2 x double>, ptr %808, align 16, !tbaa !30
  %809 = fmul <2 x double> %broadcast.splat2065, %wide.load2062
  %810 = fmul <2 x double> %broadcast.splat2065, %wide.load2063
  store <2 x double> %809, ptr %807, align 16, !tbaa !30
  store <2 x double> %810, ptr %808, align 16, !tbaa !30
  %index.next2066 = add nuw i64 %index2061, 4
  %811 = icmp eq i64 %index.next2066, %n.vec2058
  br i1 %811, label %middle.block2053, label %vector.body2060, !llvm.loop !67

middle.block2053:                                 ; preds = %vector.body2060
  br i1 %cmp.n2067, label %.loopexit898, label %.lr.ph1199.preheader2078

.lr.ph1199.preheader2078:                         ; preds = %middle.block2053, %.lr.ph1199.preheader
  %indvars.iv1371.ph = phi i64 [ 0, %.lr.ph1199.preheader ], [ %n.vec2058, %middle.block2053 ]
  br label %.lr.ph1199

.lr.ph1199:                                       ; preds = %.lr.ph1199.preheader2078, %.lr.ph1199
  %indvars.iv1371 = phi i64 [ %indvars.iv.next1372, %.lr.ph1199 ], [ %indvars.iv1371.ph, %.lr.ph1199.preheader2078 ]
  %812 = getelementptr inbounds [200 x double], ptr %3, i64 0, i64 %indvars.iv1371
  %813 = load double, ptr %812, align 8, !tbaa !30
  %814 = fmul double %.1656, %813
  store double %814, ptr %812, align 8, !tbaa !30
  %indvars.iv.next1372 = add nuw nsw i64 %indvars.iv1371, 1
  %exitcond1375.not = icmp eq i64 %indvars.iv.next1372, %wide.trip.count1374
  br i1 %exitcond1375.not, label %.loopexit898, label %.lr.ph1199, !llvm.loop !68

.loopexit898:                                     ; preds = %.lr.ph1199, %.lr.ph1202, %.lr.ph1205, %middle.block2053, %middle.block2038, %middle.block2023, %806, %754, %737
  %.6727 = phi i32 [ 1, %737 ], [ 1, %754 ], [ %.27231230, %806 ], [ 1, %middle.block2023 ], [ 1, %middle.block2038 ], [ %.27231230, %middle.block2053 ], [ 1, %.lr.ph1205 ], [ 1, %.lr.ph1202 ], [ %.27231230, %.lr.ph1199 ]
  %.8700 = phi double [ %.5697, %737 ], [ %.6698, %754 ], [ %.46961231, %806 ], [ %.5697, %middle.block2023 ], [ %.6698, %middle.block2038 ], [ %.46961231, %middle.block2053 ], [ %.5697, %.lr.ph1205 ], [ %.6698, %.lr.ph1202 ], [ %.46961231, %.lr.ph1199 ]
  br i1 %or.cond37, label %815, label %846

815:                                              ; preds = %.loopexit898
  store double 1.000000e+00, ptr %726, align 8, !tbaa !30
  br i1 %715, label %.lr.ph1219.preheader, label %._crit_edge1220

.lr.ph1219.preheader:                             ; preds = %815
  br i1 %728, label %._crit_edge1220.loopexit.unr-lcssa, label %.lr.ph1219

.lr.ph1219:                                       ; preds = %.lr.ph1219.preheader, %.lr.ph1219
  %indvars.iv1396 = phi i64 [ %indvars.iv.next1397.3, %.lr.ph1219 ], [ 0, %.lr.ph1219.preheader ]
  %.26591216 = phi double [ %827, %.lr.ph1219 ], [ 1.000000e+00, %.lr.ph1219.preheader ]
  %niter2188 = phi i64 [ %niter2188.next.3, %.lr.ph1219 ], [ 0, %.lr.ph1219.preheader ]
  %816 = getelementptr inbounds [200 x double], ptr %3, i64 0, i64 %indvars.iv1396
  %817 = load double, ptr %816, align 16, !tbaa !30
  %818 = call double @llvm.fmuladd.f64(double %817, double %817, double %.26591216)
  %indvars.iv.next1397 = or disjoint i64 %indvars.iv1396, 1
  %819 = getelementptr inbounds [200 x double], ptr %3, i64 0, i64 %indvars.iv.next1397
  %820 = load double, ptr %819, align 8, !tbaa !30
  %821 = call double @llvm.fmuladd.f64(double %820, double %820, double %818)
  %indvars.iv.next1397.1 = or disjoint i64 %indvars.iv1396, 2
  %822 = getelementptr inbounds [200 x double], ptr %3, i64 0, i64 %indvars.iv.next1397.1
  %823 = load double, ptr %822, align 16, !tbaa !30
  %824 = call double @llvm.fmuladd.f64(double %823, double %823, double %821)
  %indvars.iv.next1397.2 = or disjoint i64 %indvars.iv1396, 3
  %825 = getelementptr inbounds [200 x double], ptr %3, i64 0, i64 %indvars.iv.next1397.2
  %826 = load double, ptr %825, align 8, !tbaa !30
  %827 = call double @llvm.fmuladd.f64(double %826, double %826, double %824)
  %indvars.iv.next1397.3 = add nuw nsw i64 %indvars.iv1396, 4
  %niter2188.next.3 = add i64 %niter2188, 4
  %niter2188.ncmp.3 = icmp eq i64 %niter2188.next.3, %unroll_iter2187
  br i1 %niter2188.ncmp.3, label %._crit_edge1220.loopexit.unr-lcssa, label %.lr.ph1219, !llvm.loop !69

._crit_edge1220.loopexit.unr-lcssa:               ; preds = %.lr.ph1219, %.lr.ph1219.preheader
  %.lcssa2082.ph = phi double [ poison, %.lr.ph1219.preheader ], [ %827, %.lr.ph1219 ]
  %indvars.iv1396.unr = phi i64 [ 0, %.lr.ph1219.preheader ], [ %indvars.iv.next1397.3, %.lr.ph1219 ]
  %.26591216.unr = phi double [ 1.000000e+00, %.lr.ph1219.preheader ], [ %827, %.lr.ph1219 ]
  br i1 %lcmp.mod2185.not, label %._crit_edge1220, label %.lr.ph1219.epil

.lr.ph1219.epil:                                  ; preds = %._crit_edge1220.loopexit.unr-lcssa, %.lr.ph1219.epil
  %indvars.iv1396.epil = phi i64 [ %indvars.iv.next1397.epil, %.lr.ph1219.epil ], [ %indvars.iv1396.unr, %._crit_edge1220.loopexit.unr-lcssa ]
  %.26591216.epil = phi double [ %830, %.lr.ph1219.epil ], [ %.26591216.unr, %._crit_edge1220.loopexit.unr-lcssa ]
  %epil.iter2184 = phi i64 [ %epil.iter2184.next, %.lr.ph1219.epil ], [ 0, %._crit_edge1220.loopexit.unr-lcssa ]
  %828 = getelementptr inbounds [200 x double], ptr %3, i64 0, i64 %indvars.iv1396.epil
  %829 = load double, ptr %828, align 8, !tbaa !30
  %830 = call double @llvm.fmuladd.f64(double %829, double %829, double %.26591216.epil)
  %indvars.iv.next1397.epil = add nuw nsw i64 %indvars.iv1396.epil, 1
  %epil.iter2184.next = add i64 %epil.iter2184, 1
  %epil.iter2184.cmp.not = icmp eq i64 %epil.iter2184.next, %xtraiter2183
  br i1 %epil.iter2184.cmp.not, label %._crit_edge1220, label %.lr.ph1219.epil, !llvm.loop !70

._crit_edge1220:                                  ; preds = %._crit_edge1220.loopexit.unr-lcssa, %.lr.ph1219.epil, %815
  %.2659.lcssa = phi double [ 1.000000e+00, %815 ], [ %.lcssa2082.ph, %._crit_edge1220.loopexit.unr-lcssa ], [ %830, %.lr.ph1219.epil ]
  %831 = call double @sqrt(double noundef %.2659.lcssa) #13
  br i1 %722, label %.lr.ph1224.preheader, label %._crit_edge1225

.lr.ph1224.preheader:                             ; preds = %._crit_edge1220
  br i1 %min.iters.check1995, label %.lr.ph1224.preheader2073, label %vector.ph1996

vector.ph1996:                                    ; preds = %.lr.ph1224.preheader
  %broadcast.splatinsert2003 = insertelement <2 x double> poison, double %831, i64 0
  %broadcast.splat2004 = shufflevector <2 x double> %broadcast.splatinsert2003, <2 x double> poison, <2 x i32> zeroinitializer
  br label %vector.body2000

vector.body2000:                                  ; preds = %vector.body2000, %vector.ph1996
  %index2001 = phi i64 [ 0, %vector.ph1996 ], [ %index.next2005, %vector.body2000 ]
  %832 = getelementptr inbounds [200 x double], ptr %3, i64 0, i64 %index2001
  %wide.load2002 = load <2 x double>, ptr %832, align 16, !tbaa !30
  %833 = fdiv <2 x double> %wide.load2002, %broadcast.splat2004
  store <2 x double> %833, ptr %832, align 16, !tbaa !30
  %index.next2005 = add nuw i64 %index2001, 2
  %834 = icmp eq i64 %index.next2005, %n.vec1998
  br i1 %834, label %middle.block1993, label %vector.body2000, !llvm.loop !72

middle.block1993:                                 ; preds = %vector.body2000
  br i1 %cmp.n2006, label %._crit_edge1225, label %.lr.ph1224.preheader2073

.lr.ph1224.preheader2073:                         ; preds = %middle.block1993, %.lr.ph1224.preheader
  %indvars.iv1401.ph = phi i64 [ 0, %.lr.ph1224.preheader ], [ %n.vec1998, %middle.block1993 ]
  br label %.lr.ph1224

.lr.ph1224:                                       ; preds = %.lr.ph1224.preheader2073, %.lr.ph1224
  %indvars.iv1401 = phi i64 [ %indvars.iv.next1402, %.lr.ph1224 ], [ %indvars.iv1401.ph, %.lr.ph1224.preheader2073 ]
  %835 = getelementptr inbounds [200 x double], ptr %3, i64 0, i64 %indvars.iv1401
  %836 = load double, ptr %835, align 8, !tbaa !30
  %837 = fdiv double %836, %831
  store double %837, ptr %835, align 8, !tbaa !30
  %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_edge1225, label %.lr.ph1224, !llvm.loop !73

._crit_edge1225:                                  ; preds = %.lr.ph1224, %middle.block1993, %._crit_edge1220
  br i1 %.not820, label %908, label %838

838:                                              ; preds = %._crit_edge1225
  %839 = call i32 @qh_rand() #13
  %840 = sitofp i32 %839 to double
  %841 = fmul double %.0701.ph.lcssa153715961680, %840
  %842 = fdiv double %841, 0x41DFFFFFFF800000
  %843 = fsub double 1.000000e+00, %842
  %844 = load double, ptr %726, align 8, !tbaa !30
  %845 = fmul double %844, %843
  store double %845, ptr %726, align 8, !tbaa !30
  br label %908

846:                                              ; preds = %.loopexit898
  br i1 %or.cond39, label %.thread881, label %847

847:                                              ; preds = %846
  %848 = call i32 @qh_rand() #13
  %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 %726, align 8, !tbaa !30
  br label %908

.thread881:                                       ; preds = %786, %796, %778, %780, %846
  %.6727878886 = phi i32 [ %.6727, %846 ], [ 1, %780 ], [ 1, %778 ], [ %.27231230, %796 ], [ %.27231230, %786 ]
  %.8700880885 = phi double [ %.8700, %846 ], [ %.7699, %780 ], [ %.7699, %778 ], [ %.46961231, %796 ], [ %.46961231, %786 ]
  %853 = phi i1 [ %716, %846 ], [ false, %780 ], [ false, %778 ], [ false, %796 ], [ %716, %786 ]
  br i1 %249, label %854, label %895

854:                                              ; preds = %.thread881
  store double %.0641, ptr %726, align 8, !tbaa !30
  br i1 %722, label %.lr.ph1209.preheader, label %._crit_edge1215

.lr.ph1209.preheader:                             ; preds = %854
  br i1 %727, label %._crit_edge1210.unr-lcssa, label %.lr.ph1209

.lr.ph1209:                                       ; preds = %.lr.ph1209.preheader, %.lr.ph1209
  %indvars.iv1386 = phi i64 [ %indvars.iv.next1387.3, %.lr.ph1209 ], [ 0, %.lr.ph1209.preheader ]
  %.36601206 = phi double [ %866, %.lr.ph1209 ], [ 0.000000e+00, %.lr.ph1209.preheader ]
  %niter = phi i64 [ %niter.next.3, %.lr.ph1209 ], [ 0, %.lr.ph1209.preheader ]
  %855 = getelementptr inbounds [200 x double], ptr %3, i64 0, i64 %indvars.iv1386
  %856 = load double, ptr %855, align 16, !tbaa !30
  %857 = call double @llvm.fmuladd.f64(double %856, double %856, double %.36601206)
  %indvars.iv.next1387 = or disjoint i64 %indvars.iv1386, 1
  %858 = getelementptr inbounds [200 x double], ptr %3, i64 0, i64 %indvars.iv.next1387
  %859 = load double, ptr %858, align 8, !tbaa !30
  %860 = call double @llvm.fmuladd.f64(double %859, double %859, double %857)
  %indvars.iv.next1387.1 = or disjoint i64 %indvars.iv1386, 2
  %861 = getelementptr inbounds [200 x double], ptr %3, i64 0, i64 %indvars.iv.next1387.1
  %862 = load double, ptr %861, align 16, !tbaa !30
  %863 = call double @llvm.fmuladd.f64(double %862, double %862, double %860)
  %indvars.iv.next1387.2 = or disjoint i64 %indvars.iv1386, 3
  %864 = getelementptr inbounds [200 x double], ptr %3, i64 0, i64 %indvars.iv.next1387.2
  %865 = load double, ptr %864, align 8, !tbaa !30
  %866 = call double @llvm.fmuladd.f64(double %865, double %865, double %863)
  %indvars.iv.next1387.3 = add nuw nsw i64 %indvars.iv1386, 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_edge1210.unr-lcssa, label %.lr.ph1209, !llvm.loop !74

._crit_edge1210.unr-lcssa:                        ; preds = %.lr.ph1209, %.lr.ph1209.preheader
  %.lcssa2081.ph = phi double [ poison, %.lr.ph1209.preheader ], [ %866, %.lr.ph1209 ]
  %indvars.iv1386.unr = phi i64 [ 0, %.lr.ph1209.preheader ], [ %indvars.iv.next1387.3, %.lr.ph1209 ]
  %.36601206.unr = phi double [ 0.000000e+00, %.lr.ph1209.preheader ], [ %866, %.lr.ph1209 ]
  br i1 %lcmp.mod2181.not, label %._crit_edge1210, label %.lr.ph1209.epil

.lr.ph1209.epil:                                  ; preds = %._crit_edge1210.unr-lcssa, %.lr.ph1209.epil
  %indvars.iv1386.epil = phi i64 [ %indvars.iv.next1387.epil, %.lr.ph1209.epil ], [ %indvars.iv1386.unr, %._crit_edge1210.unr-lcssa ]
  %.36601206.epil = phi double [ %869, %.lr.ph1209.epil ], [ %.36601206.unr, %._crit_edge1210.unr-lcssa ]
  %epil.iter = phi i64 [ %epil.iter.next, %.lr.ph1209.epil ], [ 0, %._crit_edge1210.unr-lcssa ]
  %867 = getelementptr inbounds [200 x double], ptr %3, i64 0, i64 %indvars.iv1386.epil
  %868 = load double, ptr %867, align 8, !tbaa !30
  %869 = call double @llvm.fmuladd.f64(double %868, double %868, double %.36601206.epil)
  %indvars.iv.next1387.epil = add nuw nsw i64 %indvars.iv1386.epil, 1
  %epil.iter.next = add i64 %epil.iter, 1
  %epil.iter.cmp.not = icmp eq i64 %epil.iter.next, %xtraiter2180
  br i1 %epil.iter.cmp.not, label %._crit_edge1210, label %.lr.ph1209.epil, !llvm.loop !75

._crit_edge1210:                                  ; preds = %.lr.ph1209.epil, %._crit_edge1210.unr-lcssa
  %.lcssa2081 = phi double [ %.lcssa2081.ph, %._crit_edge1210.unr-lcssa ], [ %869, %.lr.ph1209.epil ]
  %870 = call double @sqrt(double noundef %.lcssa2081) #13
  br i1 %722, label %.lr.ph1214.preheader, label %._crit_edge1215

.lr.ph1214.preheader:                             ; preds = %._crit_edge1210
  br i1 %min.iters.check2009, label %.lr.ph1214.preheader2074, label %vector.ph2010

vector.ph2010:                                    ; preds = %.lr.ph1214.preheader
  %broadcast.splatinsert2019 = insertelement <2 x double> poison, double %870, i64 0
  %broadcast.splat2020 = shufflevector <2 x double> %broadcast.splatinsert2019, <2 x double> poison, <2 x i32> zeroinitializer
  br label %vector.body2014

vector.body2014:                                  ; preds = %vector.body2014, %vector.ph2010
  %index2015 = phi i64 [ 0, %vector.ph2010 ], [ %index.next2021, %vector.body2014 ]
  %871 = getelementptr inbounds [200 x double], ptr %3, i64 0, i64 %index2015
  %wide.load2016 = load <2 x double>, ptr %871, align 16, !tbaa !30
  %872 = fmul <2 x double> %broadcast.splat2018, %wide.load2016
  %873 = fdiv <2 x double> %872, %broadcast.splat2020
  store <2 x double> %873, ptr %871, align 16, !tbaa !30
  %index.next2021 = add nuw i64 %index2015, 2
  %874 = icmp eq i64 %index.next2021, %n.vec2012
  br i1 %874, label %middle.block2007, label %vector.body2014, !llvm.loop !76

middle.block2007:                                 ; preds = %vector.body2014
  br i1 %cmp.n2022, label %._crit_edge1215, label %.lr.ph1214.preheader2074

.lr.ph1214.preheader2074:                         ; preds = %middle.block2007, %.lr.ph1214.preheader
  %indvars.iv1391.ph = phi i64 [ 0, %.lr.ph1214.preheader ], [ %n.vec2012, %middle.block2007 ]
  br label %.lr.ph1214

.lr.ph1214:                                       ; preds = %.lr.ph1214.preheader2074, %.lr.ph1214
  %indvars.iv1391 = phi i64 [ %indvars.iv.next1392, %.lr.ph1214 ], [ %indvars.iv1391.ph, %.lr.ph1214.preheader2074 ]
  %875 = getelementptr inbounds [200 x double], ptr %3, i64 0, i64 %indvars.iv1391
  %876 = load double, ptr %875, align 8, !tbaa !30
  %877 = fmul double %.0687.ph.lcssa153915941682, %876
  %878 = fdiv double %877, %870
  store double %878, ptr %875, align 8, !tbaa !30
  %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 %._crit_edge1215, label %.lr.ph1214, !llvm.loop !77

._crit_edge1215:                                  ; preds = %.lr.ph1214, %middle.block2007, %854, %._crit_edge1210
  %879 = load double, ptr %726, align 8, !tbaa !30
  %880 = fsub double %879, %.0641
  store double %880, ptr %726, align 8, !tbaa !30
  br i1 %.not820, label %889, label %881

881:                                              ; preds = %._crit_edge1215
  %882 = call i32 @qh_rand() #13
  %883 = sitofp i32 %882 to double
  %884 = fmul double %.0701.ph.lcssa153715961680, %883
  %885 = fdiv double %884, 0x41DFFFFFFF800000
  %886 = fsub double 1.000000e+00, %885
  %887 = load double, ptr %726, align 8, !tbaa !30
  %888 = fmul double %887, %886
  store double %888, ptr %726, align 8, !tbaa !30
  br label %889

889:                                              ; preds = %881, %._crit_edge1215
  %890 = call i32 @qh_rand() #13
  %891 = icmp sgt i32 %890, 1073741823
  br i1 %891, label %892, label %908

892:                                              ; preds = %889
  %893 = load double, ptr %726, align 8, !tbaa !30
  %894 = fneg double %893
  store double %894, ptr %726, align 8, !tbaa !30
  br label %908

895:                                              ; preds = %.thread881
  %or.cond41 = select i1 %.not820, i1 true, i1 %853
  br i1 %or.cond41, label %908, label %896

896:                                              ; preds = %895
  %897 = call i32 @qh_rand() #13
  %898 = srem i32 %897, %.0661
  %899 = sext i32 %898 to i64
  %900 = getelementptr inbounds [200 x double], ptr %3, i64 0, i64 %899
  %901 = load double, ptr %900, align 8, !tbaa !30
  %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 %.0701.ph.lcssa153715961680, double -1.000000e+00)
  store double %905, ptr %900, align 8, !tbaa !30
  br label %908

906:                                              ; preds = %896
  %907 = call double @llvm.fmuladd.f64(double %903, double %.0701.ph.lcssa153715961680, double 1.000000e+00)
  store double %907, ptr %900, align 8, !tbaa !30
  br label %908

908:                                              ; preds = %847, %895, %906, %904, %889, %892, %._crit_edge1225, %838
  %.8700879 = phi double [ %.8700, %847 ], [ %.8700880885, %895 ], [ %.8700880885, %906 ], [ %.8700880885, %904 ], [ %.8700880885, %889 ], [ %.8700880885, %892 ], [ %.8700, %._crit_edge1225 ], [ %.8700, %838 ]
  %.6727877 = phi i32 [ %.6727, %847 ], [ %.6727878886, %895 ], [ %.6727878886, %906 ], [ %.6727878886, %904 ], [ %.6727878886, %889 ], [ %.6727878886, %892 ], [ %.6727, %._crit_edge1225 ], [ %.6727, %838 ]
  br i1 %722, label %.lr.ph1228.preheader, label %._crit_edge1229

.lr.ph1228.preheader:                             ; preds = %908
  br i1 %min.iters.check1980, label %.lr.ph1228.preheader2072, label %vector.body1985

vector.body1985:                                  ; preds = %.lr.ph1228.preheader, %vector.body1985
  %index1986 = phi i64 [ %index.next1991, %vector.body1985 ], [ 0, %.lr.ph1228.preheader ]
  %909 = getelementptr inbounds [200 x double], ptr %3, i64 0, i64 %index1986
  %910 = getelementptr inbounds i8, ptr %909, i64 16
  %wide.load1987 = load <2 x double>, ptr %909, align 16, !tbaa !30
  %wide.load1988 = load <2 x double>, ptr %910, align 16, !tbaa !30
  %911 = fmul <2 x double> %broadcast.splat1990, %wide.load1987
  %912 = fmul <2 x double> %broadcast.splat1990, %wide.load1988
  store <2 x double> %911, ptr %909, align 16, !tbaa !30
  store <2 x double> %912, ptr %910, align 16, !tbaa !30
  %index.next1991 = add nuw i64 %index1986, 4
  %913 = icmp eq i64 %index.next1991, %n.vec1983
  br i1 %913, label %middle.block1978, label %vector.body1985, !llvm.loop !78

middle.block1978:                                 ; preds = %vector.body1985
  br i1 %cmp.n1992, label %._crit_edge1229, label %.lr.ph1228.preheader2072

.lr.ph1228.preheader2072:                         ; preds = %middle.block1978, %.lr.ph1228.preheader
  %indvars.iv1406.ph = phi i64 [ 0, %.lr.ph1228.preheader ], [ %n.vec1983, %middle.block1978 ]
  br label %.lr.ph1228

.lr.ph1228:                                       ; preds = %.lr.ph1228.preheader2072, %.lr.ph1228
  %indvars.iv1406 = phi i64 [ %indvars.iv.next1407, %.lr.ph1228 ], [ %indvars.iv1406.ph, %.lr.ph1228.preheader2072 ]
  %914 = getelementptr inbounds [200 x double], ptr %3, i64 0, i64 %indvars.iv1406
  %915 = load double, ptr %914, align 8, !tbaa !30
  %916 = fmul double %.2631154815871689, %915
  store double %916, ptr %914, align 8, !tbaa !30
  %indvars.iv.next1407 = add nuw nsw i64 %indvars.iv1406, 1
  %exitcond1410.not = icmp eq i64 %indvars.iv.next1407, %wide.trip.count1409
  br i1 %exitcond1410.not, label %._crit_edge1229, label %.lr.ph1228, !llvm.loop !79

._crit_edge1229:                                  ; preds = %.lr.ph1228, %middle.block1978, %908
  call void @qh_outcoord(i32 noundef %.0737.ph.lcssa152216101666, ptr noundef nonnull %3, i32 noundef %.0750.ph.lcssa.fr154615881688)
  %917 = add nuw nsw i32 %.36831232, 1
  %918 = icmp slt i32 %.36831232, %spec.select858
  br i1 %918, label %919, label %920

919:                                              ; preds = %._crit_edge1229
  call void @qh_outcoincident(i32 noundef %.0761.ph.lcssa151716151661, double noundef %.0684.ph.lcssa154015931683, i32 noundef %.0737.ph.lcssa152216101666, ptr noundef nonnull %3, i32 noundef %.0750.ph.lcssa.fr154615881688)
  br label %920

920:                                              ; preds = %._crit_edge1229, %919
  %921 = add nuw nsw i32 %.91233, 1
  %exitcond1411.not = icmp eq i32 %921, %.2749
  br i1 %exitcond1411.not, label %.loopexit895, label %.preheader901, !llvm.loop !80

.loopexit895:                                     ; preds = %626, %920, %696, %661, %._crit_edge1255, %644, %587, %713, %668, %631, %.preheader894
  %922 = icmp sgt i32 %.076016171659, 0
  %or.cond1273 = select i1 %.not789154915861690, i1 %922, i1 false
  br i1 %or.cond1273, label %.lr.ph1265, label %.loopexit892

.lr.ph1265:                                       ; preds = %.loopexit895
  %923 = icmp sgt i32 %.0750.ph.lcssa.fr154615881688, 0
  %924 = fneg double %.263716181658
  br label %925

925:                                              ; preds = %.lr.ph1265, %._crit_edge1263
  %.101264 = phi i32 [ 0, %.lr.ph1265 ], [ %932, %._crit_edge1263 ]
  br i1 %.not799, 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.ph1262, label %._crit_edge1263

.lr.ph1262:                                       ; preds = %927, %.lr.ph1262
  %.121260.in = phi i32 [ %.121260, %.lr.ph1262 ], [ %.0750.ph.lcssa.fr154615881688, %927 ]
  %.121260 = add nsw i32 %.121260.in, -1
  %928 = shl nuw i32 1, %.121260
  %929 = and i32 %928, %.101264
  %.not833 = icmp eq i32 %929, 0
  %..263716181658 = select i1 %.not833, double %924, double %.263716181658
  call void @qh_out1(double noundef %..263716181658)
  %930 = icmp ugt i32 %.121260.in, 1
  br i1 %930, label %.lr.ph1262, label %._crit_edge1263, !llvm.loop !81

._crit_edge1263:                                  ; preds = %.lr.ph1262, %927
  %931 = load ptr, ptr @rbox, align 8, !tbaa !26
  call void (ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %931, i32 noundef 9400, ptr noundef nonnull @.str.24) #13
  %932 = add nuw nsw i32 %.101264, 1
  %exitcond1429.not = icmp eq i32 %932, %.076016171659
  br i1 %exitcond1429.not, label %.loopexit892, label %925, !llvm.loop !82

.loopexit892:                                     ; preds = %._crit_edge1263, %.loopexit895
  %933 = icmp sgt i32 %.07591691, 0
  %or.cond1274 = select i1 %.not79016191657, i1 %933, i1 false
  br i1 %or.cond1274, label %.lr.ph1272, label %.loopexit

.lr.ph1272:                                       ; preds = %.loopexit892
  %.131266 = add nsw i32 %.0750.ph.lcssa.fr154615881688, -1
  %934 = icmp sgt i32 %.0750.ph.lcssa.fr154615881688, 0
  %935 = fneg double %.26341692
  br label %936

936:                                              ; preds = %.lr.ph1272, %._crit_edge1270
  %.111271 = phi i32 [ 0, %.lr.ph1272 ], [ %944, %._crit_edge1270 ]
  br i1 %.not799, 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.ph1269, label %._crit_edge1270

.lr.ph1269:                                       ; preds = %938
  %939 = lshr i32 %.111271, 1
  %940 = and i32 %.111271, 1
  %.not832 = icmp eq i32 %940, 0
  br i1 %.not832, label %.lr.ph1269.split.us, label %.lr.ph1269.split

.lr.ph1269.split.us:                              ; preds = %.lr.ph1269, %.lr.ph1269.split.us
  %.131267.us = phi i32 [ %.13.us, %.lr.ph1269.split.us ], [ %.131266, %.lr.ph1269 ]
  %.not831.us = icmp eq i32 %939, %.131267.us
  %. = select i1 %.not831.us, double %935, double 0.000000e+00
  call void @qh_out1(double noundef %.)
  %.13.us = add nsw i32 %.131267.us, -1
  %941 = icmp sgt i32 %.131267.us, 0
  br i1 %941, label %.lr.ph1269.split.us, label %._crit_edge1270, !llvm.loop !83

.lr.ph1269.split:                                 ; preds = %.lr.ph1269, %.lr.ph1269.split
  %.131267 = phi i32 [ %.13, %.lr.ph1269.split ], [ %.131266, %.lr.ph1269 ]
  %.not831 = icmp eq i32 %939, %.131267
  %.26341692. = select i1 %.not831, double %.26341692, double 0.000000e+00
  call void @qh_out1(double noundef %.26341692.)
  %.13 = add nsw i32 %.131267, -1
  %942 = icmp sgt i32 %.131267, 0
  br i1 %942, label %.lr.ph1269.split, label %._crit_edge1270, !llvm.loop !83

._crit_edge1270:                                  ; preds = %.lr.ph1269.split, %.lr.ph1269.split.us, %938
  %943 = load ptr, ptr @rbox, align 8, !tbaa !26
  call void (ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %943, i32 noundef 9401, ptr noundef nonnull @.str.24) #13
  %944 = add nuw nsw i32 %.111271, 1
  %exitcond1430.not = icmp eq i32 %944, %.07591691
  br i1 %exitcond1430.not, label %.loopexit, label %936, !llvm.loop !84

.loopexit:                                        ; preds = %._crit_edge1270, %.loopexit892
  br i1 %.not799, label %947, label %945

945:                                              ; preds = %.loopexit
  %946 = load ptr, ptr @rbox, align 8, !tbaa !26
  call void (ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %946, i32 noundef 9402, ptr noundef nonnull @.str.28) #13
  br label %947

947:                                              ; preds = %945, %.loopexit
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #13
  call void @llvm.lifetime.end.p0(i64 50, ptr nonnull %6) #13
  call void @llvm.lifetime.end.p0(i64 250, ptr nonnull %5) #13
  call void @llvm.lifetime.end.p0(i64 800, ptr nonnull %4) #13
  call void @llvm.lifetime.end.p0(i64 1600, ptr nonnull %3) #13
  ret void
}

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

; 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 #2

; Function Attrs: mustprogress nofree nounwind willreturn memory(argmem: read)
declare i64 @strlen(ptr nocapture noundef) local_unnamed_addr #3

; Function Attrs: mustprogress nofree nosync nounwind willreturn memory(none)
declare ptr @__ctype_b_loc() local_unnamed_addr #4

declare i32 @qh_strtol(ptr noundef, ptr noundef) local_unnamed_addr #5

declare double @qh_strtod(ptr noundef, ptr noundef) local_unnamed_addr #5

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

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

; Function Attrs: mustprogress nofree nounwind willreturn memory(write)
declare double @sqrt(double noundef) local_unnamed_addr #6

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

; Function Attrs: mustprogress nofree nounwind willreturn
declare double @ldexp(double noundef, i32 noundef) local_unnamed_addr #8

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

; Function Attrs: mustprogress nofree nounwind willreturn memory(write)
declare double @asin(double noundef) local_unnamed_addr #6

; Function Attrs: mustprogress nofree nounwind willreturn memory(write)
declare double @cos(double noundef) local_unnamed_addr #6

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

; Function Attrs: nofree nounwind
declare noundef i32 @sprintf(ptr noalias nocapture noundef writeonly, ptr nocapture noundef readonly, ...) local_unnamed_addr #10

; Function Attrs: mustprogress nofree nounwind willreturn memory(argmem: read)
declare ptr @strstr(ptr noundef, ptr nocapture noundef) local_unnamed_addr #3

; 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 #2

declare void @qh_srand(i32 noundef) local_unnamed_addr #5

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

; Function Attrs: mustprogress nofree nounwind willreturn memory(argmem: read)
declare ptr @strchr(ptr noundef, i32 noundef) local_unnamed_addr #3

declare ptr @qh_malloc(i64 noundef) local_unnamed_addr #5

declare i32 @qh_rand() local_unnamed_addr #5

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

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

; Function Attrs: mustprogress nofree nounwind willreturn memory(write)
declare double @pow(double noundef, double noundef) local_unnamed_addr #6

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

; Function Attrs: mustprogress nofree nounwind willreturn memory(write)
declare double @sin(double noundef) local_unnamed_addr #6

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

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

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #12

; 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>) #11

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { 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 #3 = { 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 #4 = { 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 #5 = { "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 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 #7 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #8 = { 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 #9 = { 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 #10 = { 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 #11 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #12 = { nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #13 = { nounwind }
attributes #14 = { nounwind willreturn memory(read) }
attributes #15 = { 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 = !{!7, !7, i64 0}
!10 = !{!11, !11, i64 0}
!11 = !{!"short", !7, i64 0}
!12 = distinct !{!12, !13}
!13 = !{!"llvm.loop.mustprogress"}
!14 = !{!15, !16, i64 16}
!15 = !{!"rboxT", !6, i64 0, !6, i64 8, !16, i64 16, !17, i64 24, !7, i64 32, !7, i64 232}
!16 = !{!"int", !7, i64 0}
!17 = !{!"double", !7, i64 0}
!18 = distinct !{!18, !13}
!19 = distinct !{!19, !13}
!20 = distinct !{!20, !13}
!21 = distinct !{!21, !13}
!22 = !{!15, !6, i64 8}
!23 = !{!15, !17, i64 24}
!24 = distinct !{!24, !13}
!25 = distinct !{!25, !13}
!26 = !{!15, !6, i64 0}
!27 = distinct !{!27, !13}
!28 = distinct !{!28, !13}
!29 = distinct !{!29, !13}
!30 = !{!17, !17, i64 0}
!31 = distinct !{!31, !13}
!32 = distinct !{!32, !13}
!33 = distinct !{!33, !13, !34, !35}
!34 = !{!"llvm.loop.isvectorized", i32 1}
!35 = !{!"llvm.loop.unroll.runtime.disable"}
!36 = distinct !{!36, !13, !35, !34}
!37 = distinct !{!37, !13}
!38 = distinct !{!38, !13, !34, !35}
!39 = distinct !{!39, !13, !35, !34}
!40 = distinct !{!40, !13}
!41 = distinct !{!41, !13}
!42 = !{!43}
!43 = distinct !{!43, !44}
!44 = distinct !{!44, !"LVerDomain"}
!45 = !{!46}
!46 = distinct !{!46, !44}
!47 = distinct !{!47, !13, !34, !35}
!48 = distinct !{!48, !13, !34}
!49 = distinct !{!49, !13}
!50 = distinct !{!50, !13, !34, !35}
!51 = distinct !{!51, !13, !35, !34}
!52 = distinct !{!52, !13}
!53 = !{!16, !16, i64 0}
!54 = distinct !{!54, !13}
!55 = distinct !{!55, !13}
!56 = distinct !{!56, !13}
!57 = distinct !{!57, !13}
!58 = distinct !{!58, !13, !59}
!59 = !{!"llvm.loop.peeled.count", i32 1}
!60 = distinct !{!60, !13}
!61 = distinct !{!61, !13}
!62 = distinct !{!62, !13}
!63 = distinct !{!63, !13, !34, !35}
!64 = distinct !{!64, !13, !35, !34}
!65 = distinct !{!65, !13, !34, !35}
!66 = distinct !{!66, !13, !35, !34}
!67 = distinct !{!67, !13, !34, !35}
!68 = distinct !{!68, !13, !35, !34}
!69 = distinct !{!69, !13}
!70 = distinct !{!70, !71}
!71 = !{!"llvm.loop.unroll.disable"}
!72 = distinct !{!72, !13, !34, !35}
!73 = distinct !{!73, !13, !35, !34}
!74 = distinct !{!74, !13}
!75 = distinct !{!75, !71}
!76 = distinct !{!76, !13, !34, !35}
!77 = distinct !{!77, !13, !35, !34}
!78 = distinct !{!78, !13, !34, !35}
!79 = distinct !{!79, !13, !35, !34}
!80 = distinct !{!80, !13}
!81 = distinct !{!81, !13}
!82 = distinct !{!82, !13}
!83 = distinct !{!83, !13}
!84 = distinct !{!84, !13}


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