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

; Unoptimized IR (clang -disable-llvm-passes):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%struct.qhT = type { i32, i32, i32, i32, i32, i32, double, i32, i32, i32, i32, i32, i32, i32, i32, double, double, i32, i32, i32, i32, i32, i32, ptr, i32, i32, ptr, i32, i32, i32, i32, i32, i32, i32, double, double, i32, i32, i32, i32, double, double, i32, i32, double, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, [29 x i32], i32, i32, i32, i32, i32, i32, i32, i32, double, double, double, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, double, i32, i32, i32, i32, i32, i32, i32, i32, double, i32, ptr, ptr, i32, i32, i32, i32, i32, ptr, i32, ptr, i32, [256 x i8], i32, [256 x i8], [512 x i8], i32, i32, i32, i32, i32, i32, ptr, ptr, ptr, ptr, double, double, double, double, double, double, double, double, double, double, double, double, double, double, ptr, double, double, double, double, i32, [6 x i8], [1 x %struct.__jmp_buf_tag], [40 x i8], [1 x %struct.__jmp_buf_tag], [40 x i8], ptr, ptr, ptr, ptr, i32, i32, i32, ptr, ptr, ptr, ptr, ptr, i32, i32, ptr, i32, ptr, i32, ptr, ptr, ptr, ptr, i32, i32, i32, i32, i32, i32, i32, i32, i64, i32, i32, i32, i32, i32, ptr, ptr, i32, i32, i32, double, i32, double, double, double, i32, i32, i32, i32, i32, double, double, i32, i32, i32, i32, i32, i32, double, double, i32, i32, i32, i32, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, i32, ptr, ptr, i32, i32, i32, ptr, double, double, double, double, i32, i32, i32, i32, i32, i32, ptr, i32, i32, [1 x %struct.__jmp_buf_tag], [40 x i8], i32, double, ptr, ptr, ptr, %struct.qhmemT, %struct.qhstatT }
%struct.__jmp_buf_tag = type { [8 x i64], i32, %struct.__sigset_t }
%struct.__sigset_t = type { [16 x i64] }
%struct.qhmemT = type { i32, i32, i32, i32, i32, i32, ptr, ptr, ptr, ptr, ptr, i32, ptr, ptr, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }
%struct.qhstatT = type { [249 x %union.intrealT], [259 x i8], [249 x ptr], [249 x i16], [249 x i8], [249 x i8], [9 x %union.intrealT], i32, i32, i32, i32, double }
%union.intrealT = type { double }

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

; Function Attrs: 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, ptr noundef %2) #1 {
  %4 = alloca ptr, align 8
  %5 = alloca ptr, align 8
  %6 = alloca ptr, align 8
  %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 i32, align 4
  %39 = alloca i32, align 4
  %40 = alloca double, align 8
  %41 = alloca double, align 8
  %42 = alloca double, align 8
  %43 = alloca double, align 8
  %44 = alloca [200 x double], align 16
  %45 = alloca double, align 8
  %46 = alloca double, align 8
  %47 = alloca double, align 8
  %48 = alloca double, align 8
  %49 = alloca ptr, align 8
  %50 = alloca ptr, align 8
  %51 = alloca i32, align 4
  %52 = alloca [200 x i32], align 16
  %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 double, align 8
  %67 = alloca double, align 8
  %68 = alloca [250 x i8], align 16
  %69 = alloca [50 x i8], align 16
  %70 = alloca ptr, align 8
  %71 = alloca ptr, align 8
  %72 = alloca ptr, align 8
  %73 = alloca i64, align 8
  %74 = alloca double, align 8
  store ptr %0, ptr %4, align 8, !tbaa !5
  store ptr %1, ptr %5, align 8, !tbaa !5
  store ptr %2, ptr %6, align 8, !tbaa !5
  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
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #7
  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
  store i32 0, ptr %12, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #7
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #7
  store i32 0, ptr %16, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #7
  store i32 3, ptr %19, align 4, !tbaa !9
  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
  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 4, ptr %38) #7
  store i32 0, ptr %38, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #7
  store i32 0, ptr %39, align 4, !tbaa !9
  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 8, ptr %42) #7
  store double 0.000000e+00, ptr %42, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #7
  store double 0.000000e+00, ptr %43, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 1600, ptr %44) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #7
  store double 3.000000e+00, ptr %46, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #7
  store double 4.000000e+00, ptr %47, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #7
  store double 5.000000e+00, ptr %48, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #7
  call void @llvm.lifetime.start.p0(i64 800, 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
  call void @llvm.lifetime.start.p0(i64 8, ptr %57) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %58) #7
  store double 0.000000e+00, ptr %58, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %59) #7
  store double 1.000000e+00, ptr %59, align 8, !tbaa !11
  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
  call void @llvm.lifetime.start.p0(i64 8, ptr %63) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %64) #7
  store double 0.000000e+00, ptr %64, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %65) #7
  store double 0.000000e+00, ptr %65, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %66) #7
  store double 5.000000e-01, ptr %66, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %67) #7
  store double 0x41DFFFFFFF800000, ptr %67, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 250, ptr %68) #7
  call void @llvm.lifetime.start.p0(i64 50, ptr %69) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %70) #7
  %75 = getelementptr inbounds [250 x i8], ptr %68, i64 0, i64 0
  store ptr %75, ptr %70, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %71) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %72) #7
  store ptr null, ptr %72, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %73) #7
  %76 = getelementptr inbounds [250 x i8], ptr %68, i64 0, i64 0
  store i8 0, ptr %76, align 16, !tbaa !13
  %77 = getelementptr inbounds [250 x i8], ptr %68, i64 0, i64 0
  %78 = load ptr, ptr %5, align 8, !tbaa !5
  %79 = getelementptr inbounds [250 x i8], ptr %68, i64 0, i64 0
  %80 = call i64 @strlen(ptr noundef %79) #8
  %81 = sub i64 200, %80
  %82 = sub i64 %81, 1
  %83 = call ptr @strncat(ptr noundef %77, ptr noundef %78, i64 noundef %82) #7
  br label %84

84:                                               ; preds = %104, %3
  %85 = load ptr, ptr %70, align 8, !tbaa !5
  %86 = load i8, ptr %85, align 1, !tbaa !13
  %87 = sext i8 %86 to i32
  %88 = icmp ne i32 %87, 0
  br i1 %88, label %89, label %102

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

102:                                              ; preds = %89, %84
  %103 = phi i1 [ false, %84 ], [ %101, %89 ]
  br i1 %103, label %104, label %107

104:                                              ; preds = %102
  %105 = load ptr, ptr %70, align 8, !tbaa !5
  %106 = getelementptr inbounds i8, ptr %105, i32 1
  store ptr %106, ptr %70, align 8, !tbaa !5
  br label %84, !llvm.loop !16

107:                                              ; preds = %102
  br label %108

108:                                              ; preds = %530, %160, %107
  %109 = load ptr, ptr %70, align 8, !tbaa !5
  %110 = load i8, ptr %109, align 1, !tbaa !13
  %111 = icmp ne i8 %110, 0
  br i1 %111, label %112, label %531

112:                                              ; preds = %108
  br label %113

113:                                              ; preds = %132, %112
  %114 = load ptr, ptr %70, align 8, !tbaa !5
  %115 = load i8, ptr %114, align 1, !tbaa !13
  %116 = sext i8 %115 to i32
  %117 = icmp ne i32 %116, 0
  br i1 %117, label %118, label %130

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

130:                                              ; preds = %118, %113
  %131 = phi i1 [ false, %113 ], [ %129, %118 ]
  br i1 %131, label %132, label %135

132:                                              ; preds = %130
  %133 = load ptr, ptr %70, align 8, !tbaa !5
  %134 = getelementptr inbounds i8, ptr %133, i32 1
  store ptr %134, ptr %70, align 8, !tbaa !5
  br label %113, !llvm.loop !18

135:                                              ; preds = %130
  %136 = load ptr, ptr %70, align 8, !tbaa !5
  %137 = load i8, ptr %136, align 1, !tbaa !13
  %138 = sext i8 %137 to i32
  %139 = icmp eq i32 %138, 45
  br i1 %139, label %140, label %143

140:                                              ; preds = %135
  %141 = load ptr, ptr %70, align 8, !tbaa !5
  %142 = getelementptr inbounds i8, ptr %141, i32 1
  store ptr %142, ptr %70, align 8, !tbaa !5
  br label %143

143:                                              ; preds = %140, %135
  %144 = load ptr, ptr %70, align 8, !tbaa !5
  %145 = load i8, ptr %144, align 1, !tbaa !13
  %146 = icmp ne i8 %145, 0
  br i1 %146, label %148, label %147

147:                                              ; preds = %143
  br label %531

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

160:                                              ; preds = %148
  %161 = load ptr, ptr %70, align 8, !tbaa !5
  %162 = call i32 @qh_strtol(ptr noundef %161, ptr noundef %70)
  store i32 %162, ptr %20, align 4, !tbaa !9
  br label %108, !llvm.loop !19

163:                                              ; preds = %148
  %164 = load ptr, ptr %70, align 8, !tbaa !5
  %165 = getelementptr inbounds i8, ptr %164, i32 1
  store ptr %165, ptr %70, align 8, !tbaa !5
  %166 = load i8, ptr %164, align 1, !tbaa !13
  %167 = sext i8 %166 to i32
  switch i32 %167, label %498 [
    i32 99, label %168
    i32 100, label %195
    i32 104, label %222
    i32 108, label %223
    i32 110, label %224
    i32 114, label %225
    i32 115, label %226
    i32 116, label %227
    i32 120, label %244
    i32 121, label %245
    i32 122, label %246
    i32 66, label %249
    i32 67, label %252
    i32 68, label %331
    i32 71, label %347
    i32 76, label %364
    i32 77, label %381
    i32 79, label %440
    i32 80, label %445
    i32 87, label %478
    i32 90, label %481
  ]

168:                                              ; preds = %163
  store i32 1, ptr %29, align 4, !tbaa !9
  %169 = load ptr, ptr %70, align 8, !tbaa !5
  store ptr %169, ptr %71, align 8, !tbaa !5
  br label %170

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

182:                                              ; preds = %170
  %183 = load ptr, ptr %71, align 8, !tbaa !5
  %184 = getelementptr inbounds i8, ptr %183, i32 1
  store ptr %184, ptr %71, align 8, !tbaa !5
  br label %170, !llvm.loop !20

185:                                              ; preds = %170
  %186 = load ptr, ptr %71, align 8, !tbaa !5
  %187 = load i8, ptr %186, align 1, !tbaa !13
  %188 = sext i8 %187 to i32
  %189 = icmp eq i32 %188, 71
  br i1 %189, label %190, label %194

190:                                              ; preds = %185
  %191 = load ptr, ptr %71, align 8, !tbaa !5
  %192 = getelementptr inbounds i8, ptr %191, i32 1
  store ptr %192, ptr %71, align 8, !tbaa !5
  %193 = call double @qh_strtod(ptr noundef %192, ptr noundef %70)
  store double %193, ptr %64, align 8, !tbaa !11
  br label %194

194:                                              ; preds = %190, %185
  br label %506

195:                                              ; preds = %163
  store i32 1, ptr %33, align 4, !tbaa !9
  %196 = load ptr, ptr %70, align 8, !tbaa !5
  store ptr %196, ptr %71, align 8, !tbaa !5
  br label %197

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

209:                                              ; preds = %197
  %210 = load ptr, ptr %71, align 8, !tbaa !5
  %211 = getelementptr inbounds i8, ptr %210, i32 1
  store ptr %211, ptr %71, align 8, !tbaa !5
  br label %197, !llvm.loop !21

212:                                              ; preds = %197
  %213 = load ptr, ptr %71, align 8, !tbaa !5
  %214 = load i8, ptr %213, align 1, !tbaa !13
  %215 = sext i8 %214 to i32
  %216 = icmp eq i32 %215, 71
  br i1 %216, label %217, label %221

217:                                              ; preds = %212
  %218 = load ptr, ptr %71, align 8, !tbaa !5
  %219 = getelementptr inbounds i8, ptr %218, i32 1
  store ptr %219, ptr %71, align 8, !tbaa !5
  %220 = call double @qh_strtod(ptr noundef %219, ptr noundef %70)
  store double %220, ptr %65, align 8, !tbaa !11
  br label %221

221:                                              ; preds = %217, %212
  br label %506

222:                                              ; preds = %163
  store i32 1, ptr %25, align 4, !tbaa !9
  br label %506

223:                                              ; preds = %163
  store i32 1, ptr %31, align 4, !tbaa !9
  br label %506

224:                                              ; preds = %163
  store i32 1, ptr %32, align 4, !tbaa !9
  br label %506

225:                                              ; preds = %163
  store i32 1, ptr %27, align 4, !tbaa !9
  br label %506

226:                                              ; preds = %163
  store i32 1, ptr %23, align 4, !tbaa !9
  br label %506

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

239:                                              ; preds = %227
  %240 = load ptr, ptr %70, align 8, !tbaa !5
  %241 = call i32 @qh_strtol(ptr noundef %240, ptr noundef %70)
  store i32 %241, ptr %16, align 4, !tbaa !9
  store i32 0, ptr %34, align 4, !tbaa !9
  br label %243

242:                                              ; preds = %227
  store i32 1, ptr %34, align 4, !tbaa !9
  br label %243

243:                                              ; preds = %242, %239
  br label %506

244:                                              ; preds = %163
  store i32 1, ptr %37, align 4, !tbaa !9
  br label %506

245:                                              ; preds = %163
  store i32 1, ptr %38, align 4, !tbaa !9
  br label %506

246:                                              ; preds = %163
  %247 = load ptr, ptr %4, align 8, !tbaa !5
  %248 = getelementptr inbounds %struct.qhT, ptr %247, i32 0, i32 252
  store i32 1, ptr %248, align 8, !tbaa !22
  br label %506

249:                                              ; preds = %163
  %250 = load ptr, ptr %70, align 8, !tbaa !5
  %251 = call double @qh_strtod(ptr noundef %250, ptr noundef %70)
  store double %251, ptr %66, align 8, !tbaa !11
  store i32 1, ptr %36, align 4, !tbaa !9
  br label %506

252:                                              ; preds = %163
  %253 = load ptr, ptr %70, align 8, !tbaa !5
  %254 = load i8, ptr %253, align 1, !tbaa !13
  %255 = icmp ne i8 %254, 0
  br i1 %255, label %256, label %259

256:                                              ; preds = %252
  %257 = load ptr, ptr %70, align 8, !tbaa !5
  %258 = call i32 @qh_strtol(ptr noundef %257, ptr noundef %70)
  store i32 %258, ptr %13, align 4, !tbaa !9
  br label %259

259:                                              ; preds = %256, %252
  %260 = load ptr, ptr %70, align 8, !tbaa !5
  %261 = load i8, ptr %260, align 1, !tbaa !13
  %262 = sext i8 %261 to i32
  %263 = icmp eq i32 %262, 44
  br i1 %263, label %264, label %269

264:                                              ; preds = %259
  %265 = load ptr, ptr %70, align 8, !tbaa !5
  %266 = getelementptr inbounds i8, ptr %265, i32 1
  store ptr %266, ptr %70, align 8, !tbaa !5
  %267 = load ptr, ptr %70, align 8, !tbaa !5
  %268 = call double @qh_strtod(ptr noundef %267, ptr noundef %70)
  store double %268, ptr %43, align 8, !tbaa !11
  br label %269

269:                                              ; preds = %264, %259
  %270 = load ptr, ptr %70, align 8, !tbaa !5
  %271 = load i8, ptr %270, align 1, !tbaa !13
  %272 = sext i8 %271 to i32
  %273 = icmp eq i32 %272, 44
  br i1 %273, label %274, label %279

274:                                              ; preds = %269
  %275 = load ptr, ptr %70, align 8, !tbaa !5
  %276 = getelementptr inbounds i8, ptr %275, i32 1
  store ptr %276, ptr %70, align 8, !tbaa !5
  %277 = load ptr, ptr %70, align 8, !tbaa !5
  %278 = call i32 @qh_strtol(ptr noundef %277, ptr noundef %70)
  store i32 %278, ptr %12, align 4, !tbaa !9
  br label %279

279:                                              ; preds = %274, %269
  %280 = load ptr, ptr %70, align 8, !tbaa !5
  %281 = load i8, ptr %280, align 1, !tbaa !13
  %282 = sext i8 %281 to i32
  %283 = icmp ne i32 %282, 0
  br i1 %283, label %284, label %303

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

296:                                              ; preds = %284
  %297 = load ptr, ptr %4, align 8, !tbaa !5
  %298 = load ptr, ptr %4, align 8, !tbaa !5
  %299 = getelementptr inbounds %struct.qhT, ptr %298, i32 0, i32 158
  %300 = load ptr, ptr %299, align 8, !tbaa !27
  %301 = load ptr, ptr %70, align 8, !tbaa !5
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %297, ptr noundef %300, i32 noundef 7080, ptr noundef @.str, ptr noundef %301)
  %302 = load ptr, ptr %4, align 8, !tbaa !5
  call void @qh_errexit_rbox(ptr noundef %302, i32 noundef 1)
  br label %303

303:                                              ; preds = %296, %284, %279
  %304 = load i32, ptr %13, align 4, !tbaa !9
  %305 = icmp eq i32 %304, 0
  br i1 %305, label %306, label %312

306:                                              ; preds = %303
  %307 = load ptr, ptr %4, align 8, !tbaa !5
  %308 = load ptr, ptr %4, align 8, !tbaa !5
  %309 = getelementptr inbounds %struct.qhT, ptr %308, i32 0, i32 158
  %310 = load ptr, ptr %309, align 8, !tbaa !27
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %307, ptr noundef %310, i32 noundef 6268, ptr noundef @.str.1)
  %311 = load ptr, ptr %4, align 8, !tbaa !5
  call void @qh_errexit_rbox(ptr noundef %311, i32 noundef 1)
  br label %312

312:                                              ; preds = %306, %303
  %313 = load i32, ptr %13, align 4, !tbaa !9
  %314 = icmp slt i32 %313, 0
  br i1 %314, label %321, label %315

315:                                              ; preds = %312
  %316 = load i32, ptr %12, align 4, !tbaa !9
  %317 = icmp slt i32 %316, 0
  br i1 %317, label %321, label %318

318:                                              ; preds = %315
  %319 = load double, ptr %43, align 8, !tbaa !11
  %320 = fcmp olt double %319, 0.000000e+00
  br i1 %320, label %321, label %330

321:                                              ; preds = %318, %315, %312
  %322 = load ptr, ptr %4, align 8, !tbaa !5
  %323 = load ptr, ptr %4, align 8, !tbaa !5
  %324 = getelementptr inbounds %struct.qhT, ptr %323, i32 0, i32 158
  %325 = load ptr, ptr %324, align 8, !tbaa !27
  %326 = load i32, ptr %13, align 4, !tbaa !9
  %327 = load i32, ptr %12, align 4, !tbaa !9
  %328 = load double, ptr %43, align 8, !tbaa !11
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %322, ptr noundef %325, i32 noundef 6269, ptr noundef @.str.2, i32 noundef %326, i32 noundef %327, double noundef %328)
  %329 = load ptr, ptr %4, align 8, !tbaa !5
  call void @qh_errexit_rbox(ptr noundef %329, i32 noundef 1)
  br label %330

330:                                              ; preds = %321, %318
  br label %506

331:                                              ; preds = %163
  %332 = load ptr, ptr %70, align 8, !tbaa !5
  %333 = call i32 @qh_strtol(ptr noundef %332, ptr noundef %70)
  store i32 %333, ptr %19, align 4, !tbaa !9
  %334 = load i32, ptr %19, align 4, !tbaa !9
  %335 = icmp slt i32 %334, 1
  br i1 %335, label %339, label %336

336:                                              ; preds = %331
  %337 = load i32, ptr %19, align 4, !tbaa !9
  %338 = icmp sgt i32 %337, 200
  br i1 %338, label %339, label %346

339:                                              ; preds = %336, %331
  %340 = load ptr, ptr %4, align 8, !tbaa !5
  %341 = load ptr, ptr %4, align 8, !tbaa !5
  %342 = getelementptr inbounds %struct.qhT, ptr %341, i32 0, i32 158
  %343 = load ptr, ptr %342, align 8, !tbaa !27
  %344 = load i32, ptr %19, align 4, !tbaa !9
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %340, ptr noundef %343, i32 noundef 6189, ptr noundef @.str.3, i32 noundef %344, i32 noundef 200)
  %345 = load ptr, ptr %4, align 8, !tbaa !5
  call void @qh_errexit_rbox(ptr noundef %345, i32 noundef 1)
  br label %346

346:                                              ; preds = %339, %336
  br label %506

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

359:                                              ; preds = %347
  %360 = load ptr, ptr %70, align 8, !tbaa !5
  %361 = call double @qh_strtod(ptr noundef %360, ptr noundef %70)
  store double %361, ptr %41, align 8, !tbaa !11
  br label %363

362:                                              ; preds = %347
  store double 5.000000e-01, ptr %41, align 8, !tbaa !11
  br label %363

363:                                              ; preds = %362, %359
  store i32 1, ptr %30, align 4, !tbaa !9
  br label %506

364:                                              ; preds = %163
  %365 = call ptr @__ctype_b_loc() #9
  %366 = load ptr, ptr %365, align 8, !tbaa !5
  %367 = load ptr, ptr %70, align 8, !tbaa !5
  %368 = load i8, ptr %367, align 1, !tbaa !13
  %369 = sext i8 %368 to i32
  %370 = sext i32 %369 to i64
  %371 = getelementptr inbounds i16, ptr %366, i64 %370
  %372 = load i16, ptr %371, align 2, !tbaa !14
  %373 = zext i16 %372 to i32
  %374 = and i32 %373, 2048
  %375 = icmp ne i32 %374, 0
  br i1 %375, label %376, label %379

376:                                              ; preds = %364
  %377 = load ptr, ptr %70, align 8, !tbaa !5
  %378 = call double @qh_strtod(ptr noundef %377, ptr noundef %70)
  store double %378, ptr %42, align 8, !tbaa !11
  br label %380

379:                                              ; preds = %364
  store double 1.000000e+01, ptr %42, align 8, !tbaa !11
  br label %380

380:                                              ; preds = %379, %376
  store i32 1, ptr %26, align 4, !tbaa !9
  br label %506

381:                                              ; preds = %163
  store i32 1, ptr %39, align 4, !tbaa !9
  %382 = load ptr, ptr %70, align 8, !tbaa !5
  %383 = load i8, ptr %382, align 1, !tbaa !13
  %384 = icmp ne i8 %383, 0
  br i1 %384, label %385, label %388

385:                                              ; preds = %381
  %386 = load ptr, ptr %70, align 8, !tbaa !5
  %387 = call double @qh_strtod(ptr noundef %386, ptr noundef %70)
  store double %387, ptr %47, align 8, !tbaa !11
  br label %388

388:                                              ; preds = %385, %381
  %389 = load ptr, ptr %70, align 8, !tbaa !5
  %390 = load i8, ptr %389, align 1, !tbaa !13
  %391 = sext i8 %390 to i32
  %392 = icmp eq i32 %391, 44
  br i1 %392, label %393, label %398

393:                                              ; preds = %388
  %394 = load ptr, ptr %70, align 8, !tbaa !5
  %395 = getelementptr inbounds i8, ptr %394, i32 1
  store ptr %395, ptr %70, align 8, !tbaa !5
  %396 = load ptr, ptr %70, align 8, !tbaa !5
  %397 = call double @qh_strtod(ptr noundef %396, ptr noundef %70)
  store double %397, ptr %46, align 8, !tbaa !11
  br label %399

398:                                              ; preds = %388
  store double 0.000000e+00, ptr %46, align 8, !tbaa !11
  br label %399

399:                                              ; preds = %398, %393
  %400 = load ptr, ptr %70, align 8, !tbaa !5
  %401 = load i8, ptr %400, align 1, !tbaa !13
  %402 = sext i8 %401 to i32
  %403 = icmp eq i32 %402, 44
  br i1 %403, label %404, label %409

404:                                              ; preds = %399
  %405 = load ptr, ptr %70, align 8, !tbaa !5
  %406 = getelementptr inbounds i8, ptr %405, i32 1
  store ptr %406, ptr %70, align 8, !tbaa !5
  %407 = load ptr, ptr %70, align 8, !tbaa !5
  %408 = call double @qh_strtod(ptr noundef %407, ptr noundef %70)
  store double %408, ptr %48, align 8, !tbaa !11
  br label %417

409:                                              ; preds = %399
  %410 = load double, ptr %47, align 8, !tbaa !11
  %411 = load double, ptr %47, align 8, !tbaa !11
  %412 = load double, ptr %46, align 8, !tbaa !11
  %413 = load double, ptr %46, align 8, !tbaa !11
  %414 = fmul double %412, %413
  %415 = call double @llvm.fmuladd.f64(double %410, double %411, double %414)
  %416 = call double @sqrt(double noundef %415) #7
  store double %416, ptr %48, align 8, !tbaa !11
  br label %417

417:                                              ; preds = %409, %404
  %418 = load ptr, ptr %70, align 8, !tbaa !5
  %419 = load i8, ptr %418, align 1, !tbaa !13
  %420 = sext i8 %419 to i32
  %421 = icmp ne i32 %420, 0
  br i1 %421, label %422, label %439

422:                                              ; preds = %417
  %423 = call ptr @__ctype_b_loc() #9
  %424 = load ptr, ptr %423, align 8, !tbaa !5
  %425 = load ptr, ptr %70, align 8, !tbaa !5
  %426 = load i8, ptr %425, align 1, !tbaa !13
  %427 = sext i8 %426 to i32
  %428 = sext i32 %427 to i64
  %429 = getelementptr inbounds i16, ptr %424, i64 %428
  %430 = load i16, ptr %429, align 2, !tbaa !14
  %431 = zext i16 %430 to i32
  %432 = and i32 %431, 8192
  %433 = icmp ne i32 %432, 0
  br i1 %433, label %439, label %434

434:                                              ; preds = %422
  %435 = load ptr, ptr %4, align 8, !tbaa !5
  %436 = load ptr, ptr %4, align 8, !tbaa !5
  %437 = getelementptr inbounds %struct.qhT, ptr %436, i32 0, i32 158
  %438 = load ptr, ptr %437, align 8, !tbaa !27
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %435, ptr noundef %438, i32 noundef 7069, ptr noundef @.str.4)
  store double 3.000000e+00, ptr %47, align 8, !tbaa !11
  store double 4.000000e+00, ptr %46, align 8, !tbaa !11
  store double 5.000000e+00, ptr %48, align 8, !tbaa !11
  br label %439

439:                                              ; preds = %434, %422, %417
  br label %506

440:                                              ; preds = %163
  %441 = load ptr, ptr %70, align 8, !tbaa !5
  %442 = call double @qh_strtod(ptr noundef %441, ptr noundef %70)
  %443 = load ptr, ptr %4, align 8, !tbaa !5
  %444 = getelementptr inbounds %struct.qhT, ptr %443, i32 0, i32 253
  store double %442, ptr %444, align 8, !tbaa !28
  br label %506

445:                                              ; preds = %163
  %446 = load ptr, ptr %72, align 8, !tbaa !5
  %447 = icmp ne ptr %446, null
  br i1 %447, label %451, label %448

448:                                              ; preds = %445
  %449 = load ptr, ptr %70, align 8, !tbaa !5
  %450 = getelementptr inbounds i8, ptr %449, i64 -1
  store ptr %450, ptr %72, align 8, !tbaa !5
  br label %451

451:                                              ; preds = %448, %445
  %452 = load i32, ptr %22, align 4, !tbaa !9
  %453 = add nsw i32 %452, 1
  store i32 %453, ptr %22, align 4, !tbaa !9
  br label %454

454:                                              ; preds = %474, %451
  %455 = load ptr, ptr %70, align 8, !tbaa !5
  %456 = load i8, ptr %455, align 1, !tbaa !13
  %457 = sext i8 %456 to i32
  %458 = icmp ne i32 %457, 0
  br i1 %458, label %459, label %472

459:                                              ; preds = %454
  %460 = call ptr @__ctype_b_loc() #9
  %461 = load ptr, ptr %460, align 8, !tbaa !5
  %462 = load ptr, ptr %70, align 8, !tbaa !5
  %463 = load i8, ptr %462, align 1, !tbaa !13
  %464 = sext i8 %463 to i32
  %465 = sext i32 %464 to i64
  %466 = getelementptr inbounds i16, ptr %461, i64 %465
  %467 = load i16, ptr %466, align 2, !tbaa !14
  %468 = zext i16 %467 to i32
  %469 = and i32 %468, 8192
  %470 = icmp ne i32 %469, 0
  %471 = xor i1 %470, true
  br label %472

472:                                              ; preds = %459, %454
  %473 = phi i1 [ false, %454 ], [ %471, %459 ]
  br i1 %473, label %474, label %477

474:                                              ; preds = %472
  %475 = load ptr, ptr %70, align 8, !tbaa !5
  %476 = getelementptr inbounds i8, ptr %475, i32 1
  store ptr %476, ptr %70, align 8, !tbaa !5
  br label %454, !llvm.loop !29

477:                                              ; preds = %472
  br label %506

478:                                              ; preds = %163
  %479 = load ptr, ptr %70, align 8, !tbaa !5
  %480 = call double @qh_strtod(ptr noundef %479, ptr noundef %70)
  store double %480, ptr %40, align 8, !tbaa !11
  store i32 1, ptr %28, align 4, !tbaa !9
  br label %506

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

493:                                              ; preds = %481
  %494 = load ptr, ptr %70, align 8, !tbaa !5
  %495 = call double @qh_strtod(ptr noundef %494, ptr noundef %70)
  store double %495, ptr %42, align 8, !tbaa !11
  br label %497

496:                                              ; preds = %481
  store double 1.000000e+00, ptr %42, align 8, !tbaa !11
  br label %497

497:                                              ; preds = %496, %493
  store i32 1, ptr %24, align 4, !tbaa !9
  br label %506

498:                                              ; preds = %163
  %499 = load ptr, ptr %4, align 8, !tbaa !5
  %500 = load ptr, ptr %4, align 8, !tbaa !5
  %501 = getelementptr inbounds %struct.qhT, ptr %500, i32 0, i32 158
  %502 = load ptr, ptr %501, align 8, !tbaa !27
  %503 = load ptr, ptr %70, align 8, !tbaa !5
  %504 = getelementptr inbounds i8, ptr %503, i64 -1
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %499, ptr noundef %502, i32 noundef 6352, ptr noundef @.str.5, ptr noundef %504)
  %505 = load ptr, ptr %4, align 8, !tbaa !5
  call void @qh_errexit_rbox(ptr noundef %505, i32 noundef 1)
  br label %506

506:                                              ; preds = %498, %497, %478, %477, %440, %439, %380, %363, %346, %330, %249, %246, %245, %244, %243, %226, %225, %224, %223, %222, %221, %194
  %507 = load ptr, ptr %70, align 8, !tbaa !5
  %508 = load i8, ptr %507, align 1, !tbaa !13
  %509 = sext i8 %508 to i32
  %510 = icmp ne i32 %509, 0
  br i1 %510, label %511, label %530

511:                                              ; preds = %506
  %512 = call ptr @__ctype_b_loc() #9
  %513 = load ptr, ptr %512, align 8, !tbaa !5
  %514 = load ptr, ptr %70, align 8, !tbaa !5
  %515 = load i8, ptr %514, align 1, !tbaa !13
  %516 = sext i8 %515 to i32
  %517 = sext i32 %516 to i64
  %518 = getelementptr inbounds i16, ptr %513, i64 %517
  %519 = load i16, ptr %518, align 2, !tbaa !14
  %520 = zext i16 %519 to i32
  %521 = and i32 %520, 8192
  %522 = icmp ne i32 %521, 0
  br i1 %522, label %530, label %523

523:                                              ; preds = %511
  %524 = load ptr, ptr %4, align 8, !tbaa !5
  %525 = load ptr, ptr %4, align 8, !tbaa !5
  %526 = getelementptr inbounds %struct.qhT, ptr %525, i32 0, i32 158
  %527 = load ptr, ptr %526, align 8, !tbaa !27
  %528 = load ptr, ptr %70, align 8, !tbaa !5
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %524, ptr noundef %527, i32 noundef 6353, ptr noundef @.str.6, ptr noundef %528)
  %529 = load ptr, ptr %4, align 8, !tbaa !5
  call void @qh_errexit_rbox(ptr noundef %529, i32 noundef 1)
  br label %530

530:                                              ; preds = %523, %511, %506
  br label %108, !llvm.loop !19

531:                                              ; preds = %147, %108
  %532 = load ptr, ptr %4, align 8, !tbaa !5
  %533 = getelementptr inbounds %struct.qhT, ptr %532, i32 0, i32 252
  %534 = load i32, ptr %533, align 8, !tbaa !22
  %535 = icmp ne i32 %534, 0
  br i1 %535, label %536, label %540

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

539:                                              ; preds = %536
  store double 1.000000e+06, ptr %66, align 8, !tbaa !11
  br label %540

540:                                              ; preds = %539, %536, %531
  %541 = load i32, ptr %29, align 4, !tbaa !9
  %542 = icmp ne i32 %541, 0
  br i1 %542, label %543, label %555

543:                                              ; preds = %540
  %544 = load i32, ptr %19, align 4, !tbaa !9
  %545 = call double @ldexp(double noundef 1.000000e+00, i32 noundef %544) #7
  %546 = fadd double %545, 5.000000e-01
  %547 = call double @llvm.floor.f64(double %546)
  store double %547, ptr %57, align 8, !tbaa !11
  %548 = load double, ptr %57, align 8, !tbaa !11
  %549 = fptosi double %548 to i32
  store i32 %549, ptr %14, align 4, !tbaa !9
  %550 = load double, ptr %64, align 8, !tbaa !11
  %551 = fcmp oeq double %550, 0.000000e+00
  br i1 %551, label %552, label %554

552:                                              ; preds = %543
  %553 = load double, ptr %66, align 8, !tbaa !11
  store double %553, ptr %64, align 8, !tbaa !11
  br label %554

554:                                              ; preds = %552, %543
  br label %556

555:                                              ; preds = %540
  store i32 0, ptr %14, align 4, !tbaa !9
  br label %556

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

559:                                              ; preds = %556
  %560 = load i32, ptr %19, align 4, !tbaa !9
  %561 = mul nsw i32 2, %560
  store i32 %561, ptr %15, align 4, !tbaa !9
  %562 = load double, ptr %65, align 8, !tbaa !11
  %563 = fcmp oeq double %562, 0.000000e+00
  br i1 %563, label %564, label %566

564:                                              ; preds = %559
  %565 = load double, ptr %66, align 8, !tbaa !11
  store double %565, ptr %65, align 8, !tbaa !11
  br label %566

566:                                              ; preds = %564, %559
  br label %568

567:                                              ; preds = %556
  store i32 0, ptr %15, align 4, !tbaa !9
  br label %568

568:                                              ; preds = %567, %566
  %569 = load i32, ptr %26, align 4, !tbaa !9
  %570 = icmp ne i32 %569, 0
  br i1 %570, label %571, label %598

571:                                              ; preds = %568
  %572 = load i32, ptr %24, align 4, !tbaa !9
  %573 = icmp ne i32 %572, 0
  br i1 %573, label %574, label %580

574:                                              ; preds = %571
  %575 = load ptr, ptr %4, align 8, !tbaa !5
  %576 = load ptr, ptr %4, align 8, !tbaa !5
  %577 = getelementptr inbounds %struct.qhT, ptr %576, i32 0, i32 158
  %578 = load ptr, ptr %577, align 8, !tbaa !27
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %575, ptr noundef %578, i32 noundef 6190, ptr noundef @.str.7)
  %579 = load ptr, ptr %4, align 8, !tbaa !5
  call void @qh_errexit_rbox(ptr noundef %579, i32 noundef 1)
  br label %580

580:                                              ; preds = %574, %571
  %581 = load double, ptr %42, align 8, !tbaa !11
  %582 = fcmp ole double %581, 1.000000e+00
  br i1 %582, label %583, label %590

583:                                              ; preds = %580
  %584 = load ptr, ptr %4, align 8, !tbaa !5
  %585 = load ptr, ptr %4, align 8, !tbaa !5
  %586 = getelementptr inbounds %struct.qhT, ptr %585, i32 0, i32 158
  %587 = load ptr, ptr %586, align 8, !tbaa !27
  %588 = load double, ptr %42, align 8, !tbaa !11
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %584, ptr noundef %587, i32 noundef 6191, ptr noundef @.str.8, double noundef %588)
  %589 = load ptr, ptr %4, align 8, !tbaa !5
  call void @qh_errexit_rbox(ptr noundef %589, i32 noundef 1)
  br label %590

590:                                              ; preds = %583, %580
  %591 = load double, ptr %42, align 8, !tbaa !11
  %592 = fdiv double 1.000000e+00, %591
  %593 = call double @asin(double noundef %592) #7
  store double %593, ptr %58, align 8, !tbaa !11
  %594 = load double, ptr %42, align 8, !tbaa !11
  %595 = load double, ptr %58, align 8, !tbaa !11
  %596 = call double @cos(double noundef %595) #7
  %597 = fmul double %594, %596
  store double %597, ptr %59, align 8, !tbaa !11
  br label %598

598:                                              ; preds = %590, %568
  %599 = load i32, ptr %20, align 4, !tbaa !9
  %600 = icmp ne i32 %599, 0
  br i1 %600, label %640, label %601

601:                                              ; preds = %598
  %602 = load i32, ptr %38, align 4, !tbaa !9
  %603 = icmp ne i32 %602, 0
  br i1 %603, label %604, label %605

604:                                              ; preds = %601
  br label %639

605:                                              ; preds = %601
  %606 = load i32, ptr %27, align 4, !tbaa !9
  %607 = load i32, ptr %37, align 4, !tbaa !9
  %608 = add nsw i32 %606, %607
  %609 = load i32, ptr %26, align 4, !tbaa !9
  %610 = add nsw i32 %608, %609
  %611 = load i32, ptr %23, align 4, !tbaa !9
  %612 = add nsw i32 %610, %611
  %613 = load i32, ptr %24, align 4, !tbaa !9
  %614 = add nsw i32 %612, %613
  %615 = load i32, ptr %31, align 4, !tbaa !9
  %616 = add nsw i32 %614, %615
  %617 = load i32, ptr %28, align 4, !tbaa !9
  %618 = add nsw i32 %616, %617
  %619 = load i32, ptr %39, align 4, !tbaa !9
  %620 = add nsw i32 %618, %619
  %621 = icmp ne i32 %620, 0
  br i1 %621, label %622, label %628

622:                                              ; preds = %605
  %623 = load ptr, ptr %4, align 8, !tbaa !5
  %624 = load ptr, ptr %4, align 8, !tbaa !5
  %625 = getelementptr inbounds %struct.qhT, ptr %624, i32 0, i32 158
  %626 = load ptr, ptr %625, align 8, !tbaa !27
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %623, ptr noundef %626, i32 noundef 6192, ptr noundef @.str.9)
  %627 = load ptr, ptr %4, align 8, !tbaa !5
  call void @qh_errexit_rbox(ptr noundef %627, i32 noundef 1)
  br label %638

628:                                              ; preds = %605
  %629 = load i32, ptr %33, align 4, !tbaa !9
  %630 = load i32, ptr %29, align 4, !tbaa !9
  %631 = add nsw i32 %629, %630
  %632 = load i32, ptr %22, align 4, !tbaa !9
  %633 = add nsw i32 %631, %632
  %634 = icmp ne i32 %633, 0
  br i1 %634, label %635, label %636

635:                                              ; preds = %628
  br label %637

636:                                              ; preds = %628
  store i32 50, ptr %20, align 4, !tbaa !9
  store i32 1, ptr %23, align 4, !tbaa !9
  br label %637

637:                                              ; preds = %636, %635
  br label %638

638:                                              ; preds = %637, %622
  br label %639

639:                                              ; preds = %638, %604
  br label %640

640:                                              ; preds = %639, %598
  %641 = load i32, ptr %37, align 4, !tbaa !9
  %642 = load i32, ptr %26, align 4, !tbaa !9
  %643 = add nsw i32 %641, %642
  %644 = load i32, ptr %31, align 4, !tbaa !9
  %645 = add nsw i32 %643, %644
  %646 = load i32, ptr %39, align 4, !tbaa !9
  %647 = add nsw i32 %645, %646
  %648 = icmp sgt i32 %647, 1
  br i1 %648, label %658, label %649

649:                                              ; preds = %640
  %650 = load i32, ptr %37, align 4, !tbaa !9
  %651 = load i32, ptr %23, align 4, !tbaa !9
  %652 = add nsw i32 %650, %651
  %653 = load i32, ptr %31, align 4, !tbaa !9
  %654 = add nsw i32 %652, %653
  %655 = load i32, ptr %39, align 4, !tbaa !9
  %656 = add nsw i32 %654, %655
  %657 = icmp sgt i32 %656, 1
  br i1 %657, label %658, label %664

658:                                              ; preds = %649, %640
  %659 = load ptr, ptr %4, align 8, !tbaa !5
  %660 = load ptr, ptr %4, align 8, !tbaa !5
  %661 = getelementptr inbounds %struct.qhT, ptr %660, i32 0, i32 158
  %662 = load ptr, ptr %661, align 8, !tbaa !27
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %659, ptr noundef %662, i32 noundef 6193, ptr noundef @.str.10)
  %663 = load ptr, ptr %4, align 8, !tbaa !5
  call void @qh_errexit_rbox(ptr noundef %663, i32 noundef 1)
  br label %664

664:                                              ; preds = %658, %649
  %665 = load i32, ptr %13, align 4, !tbaa !9
  %666 = icmp sgt i32 %665, 0
  br i1 %666, label %667, label %682

667:                                              ; preds = %664
  %668 = load i32, ptr %20, align 4, !tbaa !9
  %669 = icmp eq i32 %668, 0
  br i1 %669, label %674, label %670

670:                                              ; preds = %667
  %671 = load i32, ptr %12, align 4, !tbaa !9
  %672 = load i32, ptr %20, align 4, !tbaa !9
  %673 = icmp sgt i32 %671, %672
  br i1 %673, label %674, label %682

674:                                              ; preds = %670, %667
  %675 = load ptr, ptr %4, align 8, !tbaa !5
  %676 = load ptr, ptr %4, align 8, !tbaa !5
  %677 = getelementptr inbounds %struct.qhT, ptr %676, i32 0, i32 158
  %678 = load ptr, ptr %677, align 8, !tbaa !27
  %679 = load i32, ptr %12, align 4, !tbaa !9
  %680 = load i32, ptr %20, align 4, !tbaa !9
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %675, ptr noundef %678, i32 noundef 6270, ptr noundef @.str.11, i32 noundef %679, i32 noundef %680)
  %681 = load ptr, ptr %4, align 8, !tbaa !5
  call void @qh_errexit_rbox(ptr noundef %681, i32 noundef 1)
  br label %682

682:                                              ; preds = %674, %670, %664
  %683 = load i32, ptr %13, align 4, !tbaa !9
  %684 = icmp sgt i32 %683, 0
  br i1 %684, label %685, label %694

685:                                              ; preds = %682
  %686 = load i32, ptr %27, align 4, !tbaa !9
  %687 = icmp ne i32 %686, 0
  br i1 %687, label %688, label %694

688:                                              ; preds = %685
  %689 = load ptr, ptr %4, align 8, !tbaa !5
  %690 = load ptr, ptr %4, align 8, !tbaa !5
  %691 = getelementptr inbounds %struct.qhT, ptr %690, i32 0, i32 158
  %692 = load ptr, ptr %691, align 8, !tbaa !27
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %689, ptr noundef %692, i32 noundef 6423, ptr noundef @.str.12)
  %693 = load ptr, ptr %4, align 8, !tbaa !5
  call void @qh_errexit_rbox(ptr noundef %693, i32 noundef 1)
  br label %694

694:                                              ; preds = %688, %685, %682
  %695 = load i32, ptr %12, align 4, !tbaa !9
  %696 = icmp eq i32 %695, 0
  br i1 %696, label %697, label %699

697:                                              ; preds = %694
  %698 = load i32, ptr %20, align 4, !tbaa !9
  store i32 %698, ptr %12, align 4, !tbaa !9
  br label %699

699:                                              ; preds = %697, %694
  %700 = load i32, ptr %37, align 4, !tbaa !9
  %701 = icmp ne i32 %700, 0
  br i1 %701, label %705, label %702

702:                                              ; preds = %699
  %703 = load i32, ptr %39, align 4, !tbaa !9
  %704 = icmp ne i32 %703, 0
  br i1 %704, label %705, label %707

705:                                              ; preds = %702, %699
  %706 = load i32, ptr %20, align 4, !tbaa !9
  store i32 %706, ptr %21, align 4, !tbaa !9
  br label %763

707:                                              ; preds = %702
  %708 = load i32, ptr %38, align 4, !tbaa !9
  %709 = icmp ne i32 %708, 0
  br i1 %709, label %710, label %715

710:                                              ; preds = %707
  %711 = load i32, ptr %20, align 4, !tbaa !9
  %712 = load i32, ptr %19, align 4, !tbaa !9
  %713 = add nsw i32 %711, %712
  %714 = add nsw i32 %713, 1
  store i32 %714, ptr %21, align 4, !tbaa !9
  br label %762

715:                                              ; preds = %707
  %716 = load i32, ptr %27, align 4, !tbaa !9
  %717 = icmp ne i32 %716, 0
  br i1 %717, label %718, label %757

718:                                              ; preds = %715
  %719 = load i32, ptr %20, align 4, !tbaa !9
  store i32 %719, ptr %21, align 4, !tbaa !9
  %720 = load i32, ptr %19, align 4, !tbaa !9
  %721 = icmp eq i32 %720, 2
  br i1 %721, label %722, label %731

722:                                              ; preds = %718
  %723 = load i32, ptr %26, align 4, !tbaa !9
  %724 = icmp ne i32 %723, 0
  br i1 %724, label %725, label %730

725:                                              ; preds = %722
  %726 = load i32, ptr %20, align 4, !tbaa !9
  %727 = sub nsw i32 %726, 2
  %728 = load i32, ptr %21, align 4, !tbaa !9
  %729 = add nsw i32 %728, %727
  store i32 %729, ptr %21, align 4, !tbaa !9
  br label %730

730:                                              ; preds = %725, %722
  br label %756

731:                                              ; preds = %718
  %732 = load i32, ptr %19, align 4, !tbaa !9
  %733 = icmp eq i32 %732, 3
  br i1 %733, label %734, label %755

734:                                              ; preds = %731
  %735 = load i32, ptr %26, align 4, !tbaa !9
  %736 = icmp ne i32 %735, 0
  br i1 %736, label %737, label %742

737:                                              ; preds = %734
  %738 = load i32, ptr %20, align 4, !tbaa !9
  %739 = mul nsw i32 2, %738
  %740 = load i32, ptr %21, align 4, !tbaa !9
  %741 = add nsw i32 %740, %739
  store i32 %741, ptr %21, align 4, !tbaa !9
  br label %754

742:                                              ; preds = %734
  %743 = load i32, ptr %30, align 4, !tbaa !9
  %744 = icmp ne i32 %743, 0
  br i1 %744, label %745, label %750

745:                                              ; preds = %742
  %746 = load i32, ptr %20, align 4, !tbaa !9
  %747 = add nsw i32 1, %746
  %748 = load i32, ptr %21, align 4, !tbaa !9
  %749 = add nsw i32 %748, %747
  store i32 %749, ptr %21, align 4, !tbaa !9
  br label %753

750:                                              ; preds = %742
  %751 = load i32, ptr %21, align 4, !tbaa !9
  %752 = add nsw i32 %751, 2
  store i32 %752, ptr %21, align 4, !tbaa !9
  br label %753

753:                                              ; preds = %750, %745
  br label %754

754:                                              ; preds = %753, %737
  br label %755

755:                                              ; preds = %754, %731
  br label %756

756:                                              ; preds = %755, %730
  br label %761

757:                                              ; preds = %715
  %758 = load i32, ptr %20, align 4, !tbaa !9
  %759 = load i32, ptr %24, align 4, !tbaa !9
  %760 = add nsw i32 %758, %759
  store i32 %760, ptr %21, align 4, !tbaa !9
  br label %761

761:                                              ; preds = %757, %756
  br label %762

762:                                              ; preds = %761, %710
  br label %763

763:                                              ; preds = %762, %705
  %764 = load i32, ptr %14, align 4, !tbaa !9
  %765 = load i32, ptr %15, align 4, !tbaa !9
  %766 = add nsw i32 %764, %765
  %767 = load i32, ptr %22, align 4, !tbaa !9
  %768 = add nsw i32 %766, %767
  %769 = load i32, ptr %21, align 4, !tbaa !9
  %770 = add nsw i32 %769, %768
  store i32 %770, ptr %21, align 4, !tbaa !9
  %771 = load i32, ptr %13, align 4, !tbaa !9
  %772 = load i32, ptr %12, align 4, !tbaa !9
  %773 = mul nsw i32 %771, %772
  %774 = load i32, ptr %21, align 4, !tbaa !9
  %775 = add nsw i32 %774, %773
  store i32 %775, ptr %21, align 4, !tbaa !9
  %776 = load i32, ptr %35, align 4, !tbaa !9
  %777 = icmp eq i32 %776, 0
  br i1 %777, label %778, label %806

778:                                              ; preds = %763
  %779 = getelementptr inbounds [250 x i8], ptr %68, i64 0, i64 0
  store ptr %779, ptr %70, align 8, !tbaa !5
  br label %780

780:                                              ; preds = %802, %778
  %781 = load ptr, ptr %70, align 8, !tbaa !5
  %782 = load i8, ptr %781, align 1, !tbaa !13
  %783 = icmp ne i8 %782, 0
  br i1 %783, label %784, label %805

784:                                              ; preds = %780
  %785 = load i32, ptr %38, align 4, !tbaa !9
  %786 = icmp ne i32 %785, 0
  br i1 %786, label %787, label %793

787:                                              ; preds = %784
  %788 = load ptr, ptr %70, align 8, !tbaa !5
  %789 = load i8, ptr %788, align 1, !tbaa !13
  %790 = sext i8 %789 to i32
  %791 = icmp eq i32 %790, 121
  br i1 %791, label %792, label %793

792:                                              ; preds = %787
  store i32 120, ptr %7, align 4, !tbaa !9
  br label %797

793:                                              ; preds = %787, %784
  %794 = load ptr, ptr %70, align 8, !tbaa !5
  %795 = load i8, ptr %794, align 1, !tbaa !13
  %796 = sext i8 %795 to i32
  store i32 %796, ptr %7, align 4, !tbaa !9
  br label %797

797:                                              ; preds = %793, %792
  %798 = load i32, ptr %16, align 4, !tbaa !9
  %799 = mul nsw i32 11, %798
  %800 = load i32, ptr %7, align 4, !tbaa !9
  %801 = add nsw i32 %799, %800
  store i32 %801, ptr %16, align 4, !tbaa !9
  br label %802

802:                                              ; preds = %797
  %803 = load ptr, ptr %70, align 8, !tbaa !5
  %804 = getelementptr inbounds i8, ptr %803, i32 1
  store ptr %804, ptr %70, align 8, !tbaa !5
  br label %780, !llvm.loop !30

805:                                              ; preds = %780
  br label %834

806:                                              ; preds = %763
  %807 = load i32, ptr %34, align 4, !tbaa !9
  %808 = icmp ne i32 %807, 0
  br i1 %808, label %809, label %833

809:                                              ; preds = %806
  %810 = call i64 @time(ptr noundef %73) #7
  %811 = trunc i64 %810 to i32
  store i32 %811, ptr %16, align 4, !tbaa !9
  %812 = getelementptr inbounds [50 x i8], ptr %69, i64 0, i64 0
  %813 = load i32, ptr %16, align 4, !tbaa !9
  %814 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef %812, ptr noundef @.str.13, i32 noundef %813) #7
  %815 = getelementptr inbounds [250 x i8], ptr %68, i64 0, i64 0
  %816 = getelementptr inbounds [50 x i8], ptr %69, i64 0, i64 0
  %817 = getelementptr inbounds [250 x i8], ptr %68, i64 0, i64 0
  %818 = call i64 @strlen(ptr noundef %817) #8
  %819 = sub i64 250, %818
  %820 = sub i64 %819, 1
  %821 = call ptr @strncat(ptr noundef %815, ptr noundef %816, i64 noundef %820) #7
  %822 = getelementptr inbounds [250 x i8], ptr %68, i64 0, i64 0
  %823 = call ptr @strstr(ptr noundef %822, ptr noundef @.str.14) #8
  store ptr %823, ptr %71, align 8, !tbaa !5
  %824 = load ptr, ptr %71, align 8, !tbaa !5
  %825 = icmp ne ptr %824, null
  br i1 %825, label %826, label %832

826:                                              ; preds = %809
  %827 = load ptr, ptr %71, align 8, !tbaa !5
  %828 = getelementptr inbounds i8, ptr %827, i64 1
  %829 = load ptr, ptr %71, align 8, !tbaa !5
  %830 = getelementptr inbounds i8, ptr %829, i64 3
  %831 = call ptr @strcpy(ptr noundef %828, ptr noundef %830) #7
  br label %832

832:                                              ; preds = %826, %809
  br label %833

833:                                              ; preds = %832, %806
  br label %834

834:                                              ; preds = %833, %805
  %835 = load ptr, ptr %4, align 8, !tbaa !5
  %836 = load i32, ptr %16, align 4, !tbaa !9
  call void @qh_srand(ptr noundef %835, i32 noundef %836)
  %837 = load i32, ptr %25, align 4, !tbaa !9
  %838 = icmp ne i32 %837, 0
  br i1 %838, label %839, label %860

839:                                              ; preds = %834
  %840 = load ptr, ptr %4, align 8, !tbaa !5
  %841 = load ptr, ptr %4, align 8, !tbaa !5
  %842 = getelementptr inbounds %struct.qhT, ptr %841, i32 0, i32 157
  %843 = load ptr, ptr %842, align 8, !tbaa !31
  %844 = load i32, ptr %32, align 4, !tbaa !9
  %845 = icmp ne i32 %844, 0
  br i1 %845, label %846, label %847

846:                                              ; preds = %839
  br label %849

847:                                              ; preds = %839
  %848 = getelementptr inbounds [250 x i8], ptr %68, i64 0, i64 0
  br label %849

849:                                              ; preds = %847, %846
  %850 = phi ptr [ @.str.16, %846 ], [ %848, %847 ]
  %851 = load i32, ptr %21, align 4, !tbaa !9
  %852 = load i32, ptr %19, align 4, !tbaa !9
  %853 = add nsw i32 %852, 1
  %854 = load ptr, ptr %4, align 8, !tbaa !5
  %855 = getelementptr inbounds %struct.qhT, ptr %854, i32 0, i32 252
  %856 = load i32, ptr %855, align 8, !tbaa !22
  %857 = icmp ne i32 %856, 0
  %858 = zext i1 %857 to i64
  %859 = select i1 %857, ptr @.str.17, ptr @.str.18
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %840, ptr noundef %843, i32 noundef 9391, ptr noundef @.str.15, ptr noundef %850, i32 noundef %851, i32 noundef %853, ptr noundef %859)
  br label %879

860:                                              ; preds = %834
  %861 = load i32, ptr %32, align 4, !tbaa !9
  %862 = icmp ne i32 %861, 0
  br i1 %862, label %863, label %870

863:                                              ; preds = %860
  %864 = load ptr, ptr %4, align 8, !tbaa !5
  %865 = load ptr, ptr %4, align 8, !tbaa !5
  %866 = getelementptr inbounds %struct.qhT, ptr %865, i32 0, i32 157
  %867 = load ptr, ptr %866, align 8, !tbaa !31
  %868 = load i32, ptr %19, align 4, !tbaa !9
  %869 = load i32, ptr %21, align 4, !tbaa !9
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %864, ptr noundef %867, i32 noundef 9392, ptr noundef @.str.19, i32 noundef %868, i32 noundef %869)
  br label %878

870:                                              ; preds = %860
  %871 = load ptr, ptr %4, align 8, !tbaa !5
  %872 = load ptr, ptr %4, align 8, !tbaa !5
  %873 = getelementptr inbounds %struct.qhT, ptr %872, i32 0, i32 157
  %874 = load ptr, ptr %873, align 8, !tbaa !31
  %875 = load i32, ptr %19, align 4, !tbaa !9
  %876 = getelementptr inbounds [250 x i8], ptr %68, i64 0, i64 0
  %877 = load i32, ptr %21, align 4, !tbaa !9
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %871, ptr noundef %874, i32 noundef 9393, ptr noundef @.str.20, i32 noundef %875, ptr noundef %876, i32 noundef %877)
  br label %878

878:                                              ; preds = %870, %863
  br label %879

879:                                              ; preds = %878, %849
  %880 = load ptr, ptr %72, align 8, !tbaa !5
  store ptr %880, ptr %70, align 8, !tbaa !5
  %881 = icmp ne ptr %880, null
  br i1 %881, label %882, label %994

882:                                              ; preds = %879
  br label %883

883:                                              ; preds = %992, %882
  %884 = load ptr, ptr %70, align 8, !tbaa !5
  %885 = icmp ne ptr %884, null
  br i1 %885, label %886, label %891

886:                                              ; preds = %883
  %887 = load ptr, ptr %70, align 8, !tbaa !5
  %888 = load i8, ptr %887, align 1, !tbaa !13
  %889 = sext i8 %888 to i32
  %890 = icmp ne i32 %889, 0
  br label %891

891:                                              ; preds = %886, %883
  %892 = phi i1 [ false, %883 ], [ %890, %886 ]
  br i1 %892, label %893, label %993

893:                                              ; preds = %891
  store i32 0, ptr %17, align 4, !tbaa !9
  %894 = load i32, ptr %25, align 4, !tbaa !9
  %895 = icmp ne i32 %894, 0
  br i1 %895, label %896, label %898

896:                                              ; preds = %893
  %897 = load ptr, ptr %4, align 8, !tbaa !5
  call void @qh_out1(ptr noundef %897, double noundef 1.000000e+00)
  br label %898

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

899:                                              ; preds = %938, %898
  %900 = load ptr, ptr %70, align 8, !tbaa !5
  %901 = getelementptr inbounds i8, ptr %900, i32 1
  store ptr %901, ptr %70, align 8, !tbaa !5
  %902 = load i8, ptr %901, align 1, !tbaa !13
  %903 = icmp ne i8 %902, 0
  br i1 %903, label %904, label %939

904:                                              ; preds = %899
  %905 = load ptr, ptr %4, align 8, !tbaa !5
  %906 = load ptr, ptr %70, align 8, !tbaa !5
  %907 = call double @qh_strtod(ptr noundef %906, ptr noundef %70)
  call void @qh_out1(ptr noundef %905, double noundef %907)
  %908 = load i32, ptr %17, align 4, !tbaa !9
  %909 = add nsw i32 %908, 1
  store i32 %909, ptr %17, align 4, !tbaa !9
  %910 = call ptr @__ctype_b_loc() #9
  %911 = load ptr, ptr %910, align 8, !tbaa !5
  %912 = load ptr, ptr %70, align 8, !tbaa !5
  %913 = load i8, ptr %912, align 1, !tbaa !13
  %914 = sext i8 %913 to i32
  %915 = sext i32 %914 to i64
  %916 = getelementptr inbounds i16, ptr %911, i64 %915
  %917 = load i16, ptr %916, align 2, !tbaa !14
  %918 = zext i16 %917 to i32
  %919 = and i32 %918, 8192
  %920 = icmp ne i32 %919, 0
  br i1 %920, label %925, label %921

921:                                              ; preds = %904
  %922 = load ptr, ptr %70, align 8, !tbaa !5
  %923 = load i8, ptr %922, align 1, !tbaa !13
  %924 = icmp ne i8 %923, 0
  br i1 %924, label %926, label %925

925:                                              ; preds = %921, %904
  br label %939

926:                                              ; preds = %921
  %927 = load ptr, ptr %70, align 8, !tbaa !5
  %928 = load i8, ptr %927, align 1, !tbaa !13
  %929 = sext i8 %928 to i32
  %930 = icmp ne i32 %929, 44
  br i1 %930, label %931, label %938

931:                                              ; preds = %926
  %932 = load ptr, ptr %4, align 8, !tbaa !5
  %933 = load ptr, ptr %4, align 8, !tbaa !5
  %934 = getelementptr inbounds %struct.qhT, ptr %933, i32 0, i32 158
  %935 = load ptr, ptr %934, align 8, !tbaa !27
  %936 = load ptr, ptr %70, align 8, !tbaa !5
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %932, ptr noundef %935, i32 noundef 6194, ptr noundef @.str.21, ptr noundef %936)
  %937 = load ptr, ptr %4, align 8, !tbaa !5
  call void @qh_errexit_rbox(ptr noundef %937, i32 noundef 1)
  br label %938

938:                                              ; preds = %931, %926
  br label %899, !llvm.loop !32

939:                                              ; preds = %925, %899
  %940 = load i32, ptr %17, align 4, !tbaa !9
  %941 = load i32, ptr %19, align 4, !tbaa !9
  %942 = icmp slt i32 %940, %941
  br i1 %942, label %943, label %954

943:                                              ; preds = %939
  %944 = load i32, ptr %19, align 4, !tbaa !9
  %945 = load i32, ptr %17, align 4, !tbaa !9
  %946 = sub nsw i32 %944, %945
  store i32 %946, ptr %9, align 4, !tbaa !9
  br label %947

947:                                              ; preds = %951, %943
  %948 = load i32, ptr %9, align 4, !tbaa !9
  %949 = add nsw i32 %948, -1
  store i32 %949, ptr %9, align 4, !tbaa !9
  %950 = icmp ne i32 %948, 0
  br i1 %950, label %951, label %953

951:                                              ; preds = %947
  %952 = load ptr, ptr %4, align 8, !tbaa !5
  call void @qh_out1(ptr noundef %952, double noundef 0.000000e+00)
  br label %947, !llvm.loop !33

953:                                              ; preds = %947
  br label %968

954:                                              ; preds = %939
  %955 = load i32, ptr %17, align 4, !tbaa !9
  %956 = load i32, ptr %19, align 4, !tbaa !9
  %957 = icmp sgt i32 %955, %956
  br i1 %957, label %958, label %967

958:                                              ; preds = %954
  %959 = load ptr, ptr %4, align 8, !tbaa !5
  %960 = load ptr, ptr %4, align 8, !tbaa !5
  %961 = getelementptr inbounds %struct.qhT, ptr %960, i32 0, i32 158
  %962 = load ptr, ptr %961, align 8, !tbaa !27
  %963 = load i32, ptr %17, align 4, !tbaa !9
  %964 = load i32, ptr %19, align 4, !tbaa !9
  %965 = load ptr, ptr %70, align 8, !tbaa !5
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %959, ptr noundef %962, i32 noundef 6195, ptr noundef @.str.22, i32 noundef %963, i32 noundef %964, ptr noundef %965)
  %966 = load ptr, ptr %4, align 8, !tbaa !5
  call void @qh_errexit_rbox(ptr noundef %966, i32 noundef 1)
  br label %967

967:                                              ; preds = %958, %954
  br label %968

968:                                              ; preds = %967, %953
  %969 = load ptr, ptr %4, align 8, !tbaa !5
  %970 = load ptr, ptr %4, align 8, !tbaa !5
  %971 = getelementptr inbounds %struct.qhT, ptr %970, i32 0, i32 157
  %972 = load ptr, ptr %971, align 8, !tbaa !31
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %969, ptr noundef %972, i32 noundef 9394, ptr noundef @.str.23)
  br label %973

973:                                              ; preds = %991, %968
  %974 = load ptr, ptr %70, align 8, !tbaa !5
  %975 = call ptr @strchr(ptr noundef %974, i32 noundef 80) #8
  store ptr %975, ptr %70, align 8, !tbaa !5
  %976 = icmp ne ptr %975, null
  br i1 %976, label %977, label %992

977:                                              ; preds = %973
  %978 = call ptr @__ctype_b_loc() #9
  %979 = load ptr, ptr %978, align 8, !tbaa !5
  %980 = load ptr, ptr %70, align 8, !tbaa !5
  %981 = getelementptr inbounds i8, ptr %980, i64 -1
  %982 = load i8, ptr %981, align 1, !tbaa !13
  %983 = sext i8 %982 to i32
  %984 = sext i32 %983 to i64
  %985 = getelementptr inbounds i16, ptr %979, i64 %984
  %986 = load i16, ptr %985, align 2, !tbaa !14
  %987 = zext i16 %986 to i32
  %988 = and i32 %987, 8192
  %989 = icmp ne i32 %988, 0
  br i1 %989, label %990, label %991

990:                                              ; preds = %977
  br label %992

991:                                              ; preds = %977
  br label %973, !llvm.loop !34

992:                                              ; preds = %990, %973
  br label %883, !llvm.loop !35

993:                                              ; preds = %891
  br label %994

994:                                              ; preds = %993, %879
  %995 = load i32, ptr %37, align 4, !tbaa !9
  %996 = load i32, ptr %38, align 4, !tbaa !9
  %997 = add nsw i32 %995, %996
  %998 = icmp ne i32 %997, 0
  br i1 %998, label %999, label %1246

999:                                              ; preds = %994
  %1000 = load i32, ptr %19, align 4, !tbaa !9
  %1001 = load i32, ptr %19, align 4, !tbaa !9
  %1002 = add nsw i32 %1001, 1
  %1003 = mul nsw i32 %1000, %1002
  %1004 = sext i32 %1003 to i64
  %1005 = mul i64 %1004, 8
  %1006 = call ptr @qh_malloc(i64 noundef %1005)
  %1007 = load ptr, ptr %6, align 8, !tbaa !5
  store ptr %1006, ptr %1007, align 8, !tbaa !5
  %1008 = icmp ne ptr %1006, null
  br i1 %1008, label %1015, label %1009

1009:                                             ; preds = %999
  %1010 = load ptr, ptr %4, align 8, !tbaa !5
  %1011 = load ptr, ptr %4, align 8, !tbaa !5
  %1012 = getelementptr inbounds %struct.qhT, ptr %1011, i32 0, i32 158
  %1013 = load ptr, ptr %1012, align 8, !tbaa !27
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %1010, ptr noundef %1013, i32 noundef 6196, ptr noundef @.str.24)
  %1014 = load ptr, ptr %4, align 8, !tbaa !5
  call void @qh_errexit_rbox(ptr noundef %1014, i32 noundef 4)
  br label %1015

1015:                                             ; preds = %1009, %999
  %1016 = load ptr, ptr %6, align 8, !tbaa !5
  %1017 = load ptr, ptr %1016, align 8, !tbaa !5
  store ptr %1017, ptr %50, align 8, !tbaa !5
  %1018 = load i32, ptr %27, align 4, !tbaa !9
  %1019 = icmp ne i32 %1018, 0
  br i1 %1019, label %1020, label %1057

1020:                                             ; preds = %1015
  store i32 0, ptr %7, align 4, !tbaa !9
  br label %1021

1021:                                             ; preds = %1042, %1020
  %1022 = load i32, ptr %7, align 4, !tbaa !9
  %1023 = load i32, ptr %19, align 4, !tbaa !9
  %1024 = icmp slt i32 %1022, %1023
  br i1 %1024, label %1025, label %1045

1025:                                             ; preds = %1021
  store i32 0, ptr %9, align 4, !tbaa !9
  br label %1026

1026:                                             ; preds = %1038, %1025
  %1027 = load i32, ptr %9, align 4, !tbaa !9
  %1028 = load i32, ptr %19, align 4, !tbaa !9
  %1029 = icmp slt i32 %1027, %1028
  br i1 %1029, label %1030, label %1041

1030:                                             ; preds = %1026
  %1031 = load i32, ptr %7, align 4, !tbaa !9
  %1032 = load i32, ptr %9, align 4, !tbaa !9
  %1033 = icmp eq i32 %1031, %1032
  %1034 = zext i1 %1033 to i64
  %1035 = select i1 %1033, double 1.000000e+00, double 0.000000e+00
  %1036 = load ptr, ptr %50, align 8, !tbaa !5
  %1037 = getelementptr inbounds double, ptr %1036, i32 1
  store ptr %1037, ptr %50, align 8, !tbaa !5
  store double %1035, ptr %1036, align 8, !tbaa !11
  br label %1038

1038:                                             ; preds = %1030
  %1039 = load i32, ptr %9, align 4, !tbaa !9
  %1040 = add nsw i32 %1039, 1
  store i32 %1040, ptr %9, align 4, !tbaa !9
  br label %1026, !llvm.loop !36

1041:                                             ; preds = %1026
  br label %1042

1042:                                             ; preds = %1041
  %1043 = load i32, ptr %7, align 4, !tbaa !9
  %1044 = add nsw i32 %1043, 1
  store i32 %1044, ptr %7, align 4, !tbaa !9
  br label %1021, !llvm.loop !37

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

1046:                                             ; preds = %1053, %1045
  %1047 = load i32, ptr %9, align 4, !tbaa !9
  %1048 = load i32, ptr %19, align 4, !tbaa !9
  %1049 = icmp slt i32 %1047, %1048
  br i1 %1049, label %1050, label %1056

1050:                                             ; preds = %1046
  %1051 = load ptr, ptr %50, align 8, !tbaa !5
  %1052 = getelementptr inbounds double, ptr %1051, i32 1
  store ptr %1052, ptr %50, align 8, !tbaa !5
  store double -1.000000e+00, ptr %1051, align 8, !tbaa !11
  br label %1053

1053:                                             ; preds = %1050
  %1054 = load i32, ptr %9, align 4, !tbaa !9
  %1055 = add nsw i32 %1054, 1
  store i32 %1055, ptr %9, align 4, !tbaa !9
  br label %1046, !llvm.loop !38

1056:                                             ; preds = %1046
  br label %1087

1057:                                             ; preds = %1015
  store i32 0, ptr %7, align 4, !tbaa !9
  br label %1058

1058:                                             ; preds = %1083, %1057
  %1059 = load i32, ptr %7, align 4, !tbaa !9
  %1060 = load i32, ptr %19, align 4, !tbaa !9
  %1061 = add nsw i32 %1060, 1
  %1062 = icmp slt i32 %1059, %1061
  br i1 %1062, label %1063, label %1086

1063:                                             ; preds = %1058
  store i32 0, ptr %9, align 4, !tbaa !9
  br label %1064

1064:                                             ; preds = %1079, %1063
  %1065 = load i32, ptr %9, align 4, !tbaa !9
  %1066 = load i32, ptr %19, align 4, !tbaa !9
  %1067 = icmp slt i32 %1065, %1066
  br i1 %1067, label %1068, label %1082

1068:                                             ; preds = %1064
  %1069 = load ptr, ptr %4, align 8, !tbaa !5
  %1070 = call i32 @qh_rand(ptr noundef %1069)
  %1071 = sitofp i32 %1070 to double
  store double %1071, ptr %55, align 8, !tbaa !11
  %1072 = load double, ptr %55, align 8, !tbaa !11
  %1073 = fmul double 2.000000e+00, %1072
  %1074 = load double, ptr %67, align 8, !tbaa !11
  %1075 = fdiv double %1073, %1074
  %1076 = fsub double %1075, 1.000000e+00
  %1077 = load ptr, ptr %50, align 8, !tbaa !5
  %1078 = getelementptr inbounds double, ptr %1077, i32 1
  store ptr %1078, ptr %50, align 8, !tbaa !5
  store double %1076, ptr %1077, align 8, !tbaa !11
  br label %1079

1079:                                             ; preds = %1068
  %1080 = load i32, ptr %9, align 4, !tbaa !9
  %1081 = add nsw i32 %1080, 1
  store i32 %1081, ptr %9, align 4, !tbaa !9
  br label %1064, !llvm.loop !39

1082:                                             ; preds = %1064
  br label %1083

1083:                                             ; preds = %1082
  %1084 = load i32, ptr %7, align 4, !tbaa !9
  %1085 = add nsw i32 %1084, 1
  store i32 %1085, ptr %7, align 4, !tbaa !9
  br label %1058, !llvm.loop !40

1086:                                             ; preds = %1058
  br label %1087

1087:                                             ; preds = %1086, %1056
  %1088 = load i32, ptr %38, align 4, !tbaa !9
  %1089 = icmp ne i32 %1088, 0
  br i1 %1089, label %1090, label %1127

1090:                                             ; preds = %1087
  %1091 = load ptr, ptr %6, align 8, !tbaa !5
  %1092 = load ptr, ptr %1091, align 8, !tbaa !5
  store ptr %1092, ptr %50, align 8, !tbaa !5
  store i32 0, ptr %7, align 4, !tbaa !9
  br label %1093

1093:                                             ; preds = %1123, %1090
  %1094 = load i32, ptr %7, align 4, !tbaa !9
  %1095 = load i32, ptr %19, align 4, !tbaa !9
  %1096 = add nsw i32 %1095, 1
  %1097 = icmp slt i32 %1094, %1096
  br i1 %1097, label %1098, label %1126

1098:                                             ; preds = %1093
  %1099 = load i32, ptr %25, align 4, !tbaa !9
  %1100 = icmp ne i32 %1099, 0
  br i1 %1100, label %1101, label %1103

1101:                                             ; preds = %1098
  %1102 = load ptr, ptr %4, align 8, !tbaa !5
  call void @qh_out1(ptr noundef %1102, double noundef 1.000000e+00)
  br label %1103

1103:                                             ; preds = %1101, %1098
  store i32 0, ptr %9, align 4, !tbaa !9
  br label %1104

1104:                                             ; preds = %1115, %1103
  %1105 = load i32, ptr %9, align 4, !tbaa !9
  %1106 = load i32, ptr %19, align 4, !tbaa !9
  %1107 = icmp slt i32 %1105, %1106
  br i1 %1107, label %1108, label %1118

1108:                                             ; preds = %1104
  %1109 = load ptr, ptr %4, align 8, !tbaa !5
  %1110 = load ptr, ptr %50, align 8, !tbaa !5
  %1111 = getelementptr inbounds double, ptr %1110, i32 1
  store ptr %1111, ptr %50, align 8, !tbaa !5
  %1112 = load double, ptr %1110, align 8, !tbaa !11
  %1113 = load double, ptr %66, align 8, !tbaa !11
  %1114 = fmul double %1112, %1113
  call void @qh_out1(ptr noundef %1109, double noundef %1114)
  br label %1115

1115:                                             ; preds = %1108
  %1116 = load i32, ptr %9, align 4, !tbaa !9
  %1117 = add nsw i32 %1116, 1
  store i32 %1117, ptr %9, align 4, !tbaa !9
  br label %1104, !llvm.loop !41

1118:                                             ; preds = %1104
  %1119 = load ptr, ptr %4, align 8, !tbaa !5
  %1120 = load ptr, ptr %4, align 8, !tbaa !5
  %1121 = getelementptr inbounds %struct.qhT, ptr %1120, i32 0, i32 157
  %1122 = load ptr, ptr %1121, align 8, !tbaa !31
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %1119, ptr noundef %1122, i32 noundef 9395, ptr noundef @.str.23)
  br label %1123

1123:                                             ; preds = %1118
  %1124 = load i32, ptr %7, align 4, !tbaa !9
  %1125 = add nsw i32 %1124, 1
  store i32 %1125, ptr %7, align 4, !tbaa !9
  br label %1093, !llvm.loop !42

1126:                                             ; preds = %1093
  br label %1127

1127:                                             ; preds = %1126, %1087
  store i32 0, ptr %8, align 4, !tbaa !9
  br label %1128

1128:                                             ; preds = %1242, %1127
  %1129 = load i32, ptr %8, align 4, !tbaa !9
  %1130 = load i32, ptr %20, align 4, !tbaa !9
  %1131 = icmp slt i32 %1129, %1130
  br i1 %1131, label %1132, label %1245

1132:                                             ; preds = %1128
  %1133 = load i32, ptr %28, align 4, !tbaa !9
  %1134 = icmp ne i32 %1133, 0
  br i1 %1134, label %1135, label %1141

1135:                                             ; preds = %1132
  %1136 = load ptr, ptr %4, align 8, !tbaa !5
  %1137 = call i32 @qh_rand(ptr noundef %1136)
  %1138 = load i32, ptr %19, align 4, !tbaa !9
  %1139 = add nsw i32 %1138, 1
  %1140 = srem i32 %1137, %1139
  store i32 %1140, ptr %18, align 4, !tbaa !9
  br label %1142

1141:                                             ; preds = %1132
  store i32 -1, ptr %18, align 4, !tbaa !9
  br label %1142

1142:                                             ; preds = %1141, %1135
  store i32 0, ptr %9, align 4, !tbaa !9
  br label %1143

1143:                                             ; preds = %1151, %1142
  %1144 = load i32, ptr %9, align 4, !tbaa !9
  %1145 = load i32, ptr %19, align 4, !tbaa !9
  %1146 = icmp slt i32 %1144, %1145
  br i1 %1146, label %1147, label %1154

1147:                                             ; preds = %1143
  %1148 = load i32, ptr %9, align 4, !tbaa !9
  %1149 = sext i32 %1148 to i64
  %1150 = getelementptr inbounds [200 x double], ptr %44, i64 0, i64 %1149
  store double 0.000000e+00, ptr %1150, align 8, !tbaa !11
  br label %1151

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

1154:                                             ; preds = %1143
  store double 0.000000e+00, ptr %53, align 8, !tbaa !11
  store i32 0, ptr %7, align 4, !tbaa !9
  br label %1155

1155:                                             ; preds = %1205, %1154
  %1156 = load i32, ptr %7, align 4, !tbaa !9
  %1157 = load i32, ptr %19, align 4, !tbaa !9
  %1158 = add nsw i32 %1157, 1
  %1159 = icmp slt i32 %1156, %1158
  br i1 %1159, label %1160, label %1208

1160:                                             ; preds = %1155
  %1161 = load ptr, ptr %4, align 8, !tbaa !5
  %1162 = call i32 @qh_rand(ptr noundef %1161)
  %1163 = sitofp i32 %1162 to double
  store double %1163, ptr %55, align 8, !tbaa !11
  %1164 = load double, ptr %55, align 8, !tbaa !11
  %1165 = load double, ptr %67, align 8, !tbaa !11
  %1166 = fdiv double %1164, %1165
  store double %1166, ptr %54, align 8, !tbaa !11
  %1167 = load i32, ptr %7, align 4, !tbaa !9
  %1168 = load i32, ptr %18, align 4, !tbaa !9
  %1169 = icmp eq i32 %1167, %1168
  br i1 %1169, label %1170, label %1174

1170:                                             ; preds = %1160
  %1171 = load double, ptr %40, align 8, !tbaa !11
  %1172 = load double, ptr %54, align 8, !tbaa !11
  %1173 = fmul double %1172, %1171
  store double %1173, ptr %54, align 8, !tbaa !11
  br label %1174

1174:                                             ; preds = %1170, %1160
  %1175 = load double, ptr %54, align 8, !tbaa !11
  %1176 = load double, ptr %53, align 8, !tbaa !11
  %1177 = fadd double %1176, %1175
  store double %1177, ptr %53, align 8, !tbaa !11
  store i32 0, ptr %9, align 4, !tbaa !9
  br label %1178

1178:                                             ; preds = %1201, %1174
  %1179 = load i32, ptr %9, align 4, !tbaa !9
  %1180 = load i32, ptr %19, align 4, !tbaa !9
  %1181 = icmp slt i32 %1179, %1180
  br i1 %1181, label %1182, label %1204

1182:                                             ; preds = %1178
  %1183 = load ptr, ptr %6, align 8, !tbaa !5
  %1184 = load ptr, ptr %1183, align 8, !tbaa !5
  %1185 = load i32, ptr %7, align 4, !tbaa !9
  %1186 = load i32, ptr %19, align 4, !tbaa !9
  %1187 = mul nsw i32 %1185, %1186
  %1188 = sext i32 %1187 to i64
  %1189 = getelementptr inbounds double, ptr %1184, i64 %1188
  %1190 = load i32, ptr %9, align 4, !tbaa !9
  %1191 = sext i32 %1190 to i64
  %1192 = getelementptr inbounds double, ptr %1189, i64 %1191
  store ptr %1192, ptr %50, align 8, !tbaa !5
  %1193 = load double, ptr %54, align 8, !tbaa !11
  %1194 = load ptr, ptr %50, align 8, !tbaa !5
  %1195 = load double, ptr %1194, align 8, !tbaa !11
  %1196 = load i32, ptr %9, align 4, !tbaa !9
  %1197 = sext i32 %1196 to i64
  %1198 = getelementptr inbounds [200 x double], ptr %44, i64 0, i64 %1197
  %1199 = load double, ptr %1198, align 8, !tbaa !11
  %1200 = call double @llvm.fmuladd.f64(double %1193, double %1195, double %1199)
  store double %1200, ptr %1198, align 8, !tbaa !11
  br label %1201

1201:                                             ; preds = %1182
  %1202 = load i32, ptr %9, align 4, !tbaa !9
  %1203 = add nsw i32 %1202, 1
  store i32 %1203, ptr %9, align 4, !tbaa !9
  br label %1178, !llvm.loop !44

1204:                                             ; preds = %1178
  br label %1205

1205:                                             ; preds = %1204
  %1206 = load i32, ptr %7, align 4, !tbaa !9
  %1207 = add nsw i32 %1206, 1
  store i32 %1207, ptr %7, align 4, !tbaa !9
  br label %1155, !llvm.loop !45

1208:                                             ; preds = %1155
  store i32 0, ptr %9, align 4, !tbaa !9
  br label %1209

1209:                                             ; preds = %1222, %1208
  %1210 = load i32, ptr %9, align 4, !tbaa !9
  %1211 = load i32, ptr %19, align 4, !tbaa !9
  %1212 = icmp slt i32 %1210, %1211
  br i1 %1212, label %1213, label %1225

1213:                                             ; preds = %1209
  %1214 = load double, ptr %66, align 8, !tbaa !11
  %1215 = load double, ptr %53, align 8, !tbaa !11
  %1216 = fdiv double %1214, %1215
  %1217 = load i32, ptr %9, align 4, !tbaa !9
  %1218 = sext i32 %1217 to i64
  %1219 = getelementptr inbounds [200 x double], ptr %44, i64 0, i64 %1218
  %1220 = load double, ptr %1219, align 8, !tbaa !11
  %1221 = fmul double %1220, %1216
  store double %1221, ptr %1219, align 8, !tbaa !11
  br label %1222

1222:                                             ; preds = %1213
  %1223 = load i32, ptr %9, align 4, !tbaa !9
  %1224 = add nsw i32 %1223, 1
  store i32 %1224, ptr %9, align 4, !tbaa !9
  br label %1209, !llvm.loop !46

1225:                                             ; preds = %1209
  %1226 = load ptr, ptr %4, align 8, !tbaa !5
  %1227 = load i32, ptr %25, align 4, !tbaa !9
  %1228 = getelementptr inbounds [200 x double], ptr %44, i64 0, i64 0
  %1229 = load i32, ptr %19, align 4, !tbaa !9
  call void @qh_outcoord(ptr noundef %1226, i32 noundef %1227, ptr noundef %1228, i32 noundef %1229)
  %1230 = load i32, ptr %11, align 4, !tbaa !9
  %1231 = add nsw i32 %1230, 1
  store i32 %1231, ptr %11, align 4, !tbaa !9
  %1232 = load i32, ptr %12, align 4, !tbaa !9
  %1233 = icmp slt i32 %1230, %1232
  br i1 %1233, label %1234, label %1241

1234:                                             ; preds = %1225
  %1235 = load ptr, ptr %4, align 8, !tbaa !5
  %1236 = load i32, ptr %13, align 4, !tbaa !9
  %1237 = load double, ptr %43, align 8, !tbaa !11
  %1238 = load i32, ptr %25, align 4, !tbaa !9
  %1239 = getelementptr inbounds [200 x double], ptr %44, i64 0, i64 0
  %1240 = load i32, ptr %19, align 4, !tbaa !9
  call void @qh_outcoincident(ptr noundef %1235, i32 noundef %1236, double noundef %1237, i32 noundef %1238, ptr noundef %1239, i32 noundef %1240)
  br label %1241

1241:                                             ; preds = %1234, %1225
  br label %1242

1242:                                             ; preds = %1241
  %1243 = load i32, ptr %8, align 4, !tbaa !9
  %1244 = add nsw i32 %1243, 1
  store i32 %1244, ptr %8, align 4, !tbaa !9
  br label %1128, !llvm.loop !47

1245:                                             ; preds = %1128
  store i32 0, ptr %27, align 4, !tbaa !9
  store i32 0, ptr %20, align 4, !tbaa !9
  br label %1246

1246:                                             ; preds = %1245, %994
  %1247 = load i32, ptr %39, align 4, !tbaa !9
  %1248 = icmp ne i32 %1247, 0
  br i1 %1248, label %1249, label %1368

1249:                                             ; preds = %1246
  %1250 = load i32, ptr %20, align 4, !tbaa !9
  %1251 = sitofp i32 %1250 to double
  %1252 = load i32, ptr %19, align 4, !tbaa !9
  %1253 = sitofp i32 %1252 to double
  %1254 = fdiv double 1.000000e+00, %1253
  %1255 = call double @pow(double noundef %1251, double noundef %1254) #7
  %1256 = fadd double %1255, 9.999900e-01
  %1257 = fptosi double %1256 to i32
  store i32 %1257, ptr %51, align 4, !tbaa !9
  %1258 = load i32, ptr %19, align 4, !tbaa !9
  store i32 %1258, ptr %9, align 4, !tbaa !9
  br label %1259

1259:                                             ; preds = %1263, %1249
  %1260 = load i32, ptr %9, align 4, !tbaa !9
  %1261 = add nsw i32 %1260, -1
  store i32 %1261, ptr %9, align 4, !tbaa !9
  %1262 = icmp ne i32 %1260, 0
  br i1 %1262, label %1263, label %1267

1263:                                             ; preds = %1259
  %1264 = load i32, ptr %9, align 4, !tbaa !9
  %1265 = sext i32 %1264 to i64
  %1266 = getelementptr inbounds [200 x i32], ptr %52, i64 0, i64 %1265
  store i32 0, ptr %1266, align 4, !tbaa !9
  br label %1259, !llvm.loop !48

1267:                                             ; preds = %1259
  store i32 0, ptr %7, align 4, !tbaa !9
  br label %1268

1268:                                             ; preds = %1364, %1267
  %1269 = load i32, ptr %7, align 4, !tbaa !9
  %1270 = load i32, ptr %20, align 4, !tbaa !9
  %1271 = icmp slt i32 %1269, %1270
  br i1 %1271, label %1272, label %1367

1272:                                             ; preds = %1268
  %1273 = getelementptr inbounds [200 x double], ptr %44, i64 0, i64 0
  store ptr %1273, ptr %49, align 8, !tbaa !5
  store i32 0, ptr %9, align 4, !tbaa !9
  br label %1274

1274:                                             ; preds = %1323, %1272
  %1275 = load i32, ptr %9, align 4, !tbaa !9
  %1276 = load i32, ptr %19, align 4, !tbaa !9
  %1277 = icmp slt i32 %1275, %1276
  br i1 %1277, label %1278, label %1326

1278:                                             ; preds = %1274
  %1279 = load i32, ptr %9, align 4, !tbaa !9
  %1280 = icmp eq i32 %1279, 0
  br i1 %1280, label %1281, label %1295

1281:                                             ; preds = %1278
  %1282 = getelementptr inbounds [200 x i32], ptr %52, i64 0, i64 0
  %1283 = load i32, ptr %1282, align 16, !tbaa !9
  %1284 = sitofp i32 %1283 to double
  %1285 = load double, ptr %47, align 8, !tbaa !11
  %1286 = getelementptr inbounds [200 x i32], ptr %52, i64 0, i64 1
  %1287 = load i32, ptr %1286, align 4, !tbaa !9
  %1288 = sitofp i32 %1287 to double
  %1289 = load double, ptr %46, align 8, !tbaa !11
  %1290 = fneg double %1289
  %1291 = fmul double %1288, %1290
  %1292 = call double @llvm.fmuladd.f64(double %1284, double %1285, double %1291)
  %1293 = load ptr, ptr %49, align 8, !tbaa !5
  %1294 = getelementptr inbounds double, ptr %1293, i32 1
  store ptr %1294, ptr %49, align 8, !tbaa !5
  store double %1292, ptr %1293, align 8, !tbaa !11
  br label %1322

1295:                                             ; preds = %1278
  %1296 = load i32, ptr %9, align 4, !tbaa !9
  %1297 = icmp eq i32 %1296, 1
  br i1 %1297, label %1298, label %1311

1298:                                             ; preds = %1295
  %1299 = getelementptr inbounds [200 x i32], ptr %52, i64 0, i64 0
  %1300 = load i32, ptr %1299, align 16, !tbaa !9
  %1301 = sitofp i32 %1300 to double
  %1302 = load double, ptr %46, align 8, !tbaa !11
  %1303 = getelementptr inbounds [200 x i32], ptr %52, i64 0, i64 1
  %1304 = load i32, ptr %1303, align 4, !tbaa !9
  %1305 = sitofp i32 %1304 to double
  %1306 = load double, ptr %47, align 8, !tbaa !11
  %1307 = fmul double %1305, %1306
  %1308 = call double @llvm.fmuladd.f64(double %1301, double %1302, double %1307)
  %1309 = load ptr, ptr %49, align 8, !tbaa !5
  %1310 = getelementptr inbounds double, ptr %1309, i32 1
  store ptr %1310, ptr %49, align 8, !tbaa !5
  store double %1308, ptr %1309, align 8, !tbaa !11
  br label %1321

1311:                                             ; preds = %1295
  %1312 = load i32, ptr %9, align 4, !tbaa !9
  %1313 = sext i32 %1312 to i64
  %1314 = getelementptr inbounds [200 x i32], ptr %52, i64 0, i64 %1313
  %1315 = load i32, ptr %1314, align 4, !tbaa !9
  %1316 = sitofp i32 %1315 to double
  %1317 = load double, ptr %48, align 8, !tbaa !11
  %1318 = fmul double %1316, %1317
  %1319 = load ptr, ptr %49, align 8, !tbaa !5
  %1320 = getelementptr inbounds double, ptr %1319, i32 1
  store ptr %1320, ptr %49, align 8, !tbaa !5
  store double %1318, ptr %1319, align 8, !tbaa !11
  br label %1321

1321:                                             ; preds = %1311, %1298
  br label %1322

1322:                                             ; preds = %1321, %1281
  br label %1323

1323:                                             ; preds = %1322
  %1324 = load i32, ptr %9, align 4, !tbaa !9
  %1325 = add nsw i32 %1324, 1
  store i32 %1325, ptr %9, align 4, !tbaa !9
  br label %1274, !llvm.loop !49

1326:                                             ; preds = %1274
  %1327 = load ptr, ptr %4, align 8, !tbaa !5
  %1328 = load i32, ptr %25, align 4, !tbaa !9
  %1329 = getelementptr inbounds [200 x double], ptr %44, i64 0, i64 0
  %1330 = load i32, ptr %19, align 4, !tbaa !9
  call void @qh_outcoord(ptr noundef %1327, i32 noundef %1328, ptr noundef %1329, i32 noundef %1330)
  %1331 = load i32, ptr %11, align 4, !tbaa !9
  %1332 = add nsw i32 %1331, 1
  store i32 %1332, ptr %11, align 4, !tbaa !9
  %1333 = load i32, ptr %12, align 4, !tbaa !9
  %1334 = icmp slt i32 %1331, %1333
  br i1 %1334, label %1335, label %1342

1335:                                             ; preds = %1326
  %1336 = load ptr, ptr %4, align 8, !tbaa !5
  %1337 = load i32, ptr %13, align 4, !tbaa !9
  %1338 = load double, ptr %43, align 8, !tbaa !11
  %1339 = load i32, ptr %25, align 4, !tbaa !9
  %1340 = getelementptr inbounds [200 x double], ptr %44, i64 0, i64 0
  %1341 = load i32, ptr %19, align 4, !tbaa !9
  call void @qh_outcoincident(ptr noundef %1336, i32 noundef %1337, double noundef %1338, i32 noundef %1339, ptr noundef %1340, i32 noundef %1341)
  br label %1342

1342:                                             ; preds = %1335, %1326
  store i32 0, ptr %9, align 4, !tbaa !9
  br label %1343

1343:                                             ; preds = %1360, %1342
  %1344 = load i32, ptr %9, align 4, !tbaa !9
  %1345 = load i32, ptr %19, align 4, !tbaa !9
  %1346 = icmp slt i32 %1344, %1345
  br i1 %1346, label %1347, label %1363

1347:                                             ; preds = %1343
  %1348 = load i32, ptr %9, align 4, !tbaa !9
  %1349 = sext i32 %1348 to i64
  %1350 = getelementptr inbounds [200 x i32], ptr %52, i64 0, i64 %1349
  %1351 = load i32, ptr %1350, align 4, !tbaa !9
  %1352 = add nsw i32 %1351, 1
  store i32 %1352, ptr %1350, align 4, !tbaa !9
  %1353 = load i32, ptr %51, align 4, !tbaa !9
  %1354 = icmp slt i32 %1352, %1353
  br i1 %1354, label %1355, label %1356

1355:                                             ; preds = %1347
  br label %1363

1356:                                             ; preds = %1347
  %1357 = load i32, ptr %9, align 4, !tbaa !9
  %1358 = sext i32 %1357 to i64
  %1359 = getelementptr inbounds [200 x i32], ptr %52, i64 0, i64 %1358
  store i32 0, ptr %1359, align 4, !tbaa !9
  br label %1360

1360:                                             ; preds = %1356
  %1361 = load i32, ptr %9, align 4, !tbaa !9
  %1362 = add nsw i32 %1361, 1
  store i32 %1362, ptr %9, align 4, !tbaa !9
  br label %1343, !llvm.loop !50

1363:                                             ; preds = %1355, %1343
  br label %1364

1364:                                             ; preds = %1363
  %1365 = load i32, ptr %7, align 4, !tbaa !9
  %1366 = add nsw i32 %1365, 1
  store i32 %1366, ptr %7, align 4, !tbaa !9
  br label %1268, !llvm.loop !51

1367:                                             ; preds = %1268
  br label %2248

1368:                                             ; preds = %1246
  %1369 = load i32, ptr %27, align 4, !tbaa !9
  %1370 = icmp ne i32 %1369, 0
  br i1 %1370, label %1371, label %1521

1371:                                             ; preds = %1368
  %1372 = load i32, ptr %26, align 4, !tbaa !9
  %1373 = icmp ne i32 %1372, 0
  br i1 %1373, label %1521, label %1374

1374:                                             ; preds = %1371
  %1375 = load i32, ptr %19, align 4, !tbaa !9
  %1376 = icmp ne i32 %1375, 2
  br i1 %1376, label %1377, label %1386

1377:                                             ; preds = %1374
  %1378 = load i32, ptr %19, align 4, !tbaa !9
  %1379 = icmp ne i32 %1378, 3
  br i1 %1379, label %1380, label %1386

1380:                                             ; preds = %1377
  %1381 = load ptr, ptr %4, align 8, !tbaa !5
  %1382 = load ptr, ptr %4, align 8, !tbaa !5
  %1383 = getelementptr inbounds %struct.qhT, ptr %1382, i32 0, i32 158
  %1384 = load ptr, ptr %1383, align 8, !tbaa !27
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %1381, ptr noundef %1384, i32 noundef 6197, ptr noundef @.str.25)
  %1385 = load ptr, ptr %4, align 8, !tbaa !5
  call void @qh_errexit_rbox(ptr noundef %1385, i32 noundef 1)
  br label %1386

1386:                                             ; preds = %1380, %1377, %1374
  %1387 = load i32, ptr %24, align 4, !tbaa !9
  %1388 = icmp ne i32 %1387, 0
  br i1 %1388, label %1389, label %1392

1389:                                             ; preds = %1386
  %1390 = load double, ptr %42, align 8, !tbaa !11
  %1391 = fcmp oeq double %1390, 0.000000e+00
  br i1 %1391, label %1392, label %1393

1392:                                             ; preds = %1389, %1386
  store i32 1, ptr %24, align 4, !tbaa !9
  store double 1.000000e+00, ptr %42, align 8, !tbaa !11
  br label %1393

1393:                                             ; preds = %1392, %1389
  %1394 = load i32, ptr %19, align 4, !tbaa !9
  %1395 = icmp eq i32 %1394, 3
  br i1 %1395, label %1396, label %1416

1396:                                             ; preds = %1393
  %1397 = load i32, ptr %25, align 4, !tbaa !9
  %1398 = icmp ne i32 %1397, 0
  br i1 %1398, label %1399, label %1401

1399:                                             ; preds = %1396
  %1400 = load ptr, ptr %4, align 8, !tbaa !5
  call void @qh_out1(ptr noundef %1400, double noundef 1.000000e+00)
  br label %1401

1401:                                             ; preds = %1399, %1396
  %1402 = load ptr, ptr %4, align 8, !tbaa !5
  %1403 = load double, ptr %66, align 8, !tbaa !11
  %1404 = fneg double %1403
  call void @qh_out3n(ptr noundef %1402, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef %1404)
  %1405 = load i32, ptr %30, align 4, !tbaa !9
  %1406 = icmp ne i32 %1405, 0
  br i1 %1406, label %1415, label %1407

1407:                                             ; preds = %1401
  %1408 = load i32, ptr %25, align 4, !tbaa !9
  %1409 = icmp ne i32 %1408, 0
  br i1 %1409, label %1410, label %1412

1410:                                             ; preds = %1407
  %1411 = load ptr, ptr %4, align 8, !tbaa !5
  call void @qh_out1(ptr noundef %1411, double noundef 1.000000e+00)
  br label %1412

1412:                                             ; preds = %1410, %1407
  %1413 = load ptr, ptr %4, align 8, !tbaa !5
  %1414 = load double, ptr %66, align 8, !tbaa !11
  call void @qh_out3n(ptr noundef %1413, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef %1414)
  br label %1415

1415:                                             ; preds = %1412, %1401
  br label %1416

1416:                                             ; preds = %1415, %1393
  store double 0.000000e+00, ptr %61, align 8, !tbaa !11
  %1417 = load i32, ptr %20, align 4, !tbaa !9
  %1418 = sitofp i32 %1417 to double
  %1419 = fdiv double 0x401921FB54442D18, %1418
  store double %1419, ptr %60, align 8, !tbaa !11
  store i32 0, ptr %7, align 4, !tbaa !9
  br label %1420

1420:                                             ; preds = %1517, %1416
  %1421 = load i32, ptr %7, align 4, !tbaa !9
  %1422 = load i32, ptr %20, align 4, !tbaa !9
  %1423 = icmp slt i32 %1421, %1422
  br i1 %1423, label %1424, label %1520

1424:                                             ; preds = %1420
  %1425 = load double, ptr %60, align 8, !tbaa !11
  %1426 = load double, ptr %61, align 8, !tbaa !11
  %1427 = fadd double %1426, %1425
  store double %1427, ptr %61, align 8, !tbaa !11
  %1428 = load double, ptr %42, align 8, !tbaa !11
  %1429 = load double, ptr %61, align 8, !tbaa !11
  %1430 = call double @cos(double noundef %1429) #7
  %1431 = fmul double %1428, %1430
  store double %1431, ptr %62, align 8, !tbaa !11
  %1432 = load double, ptr %42, align 8, !tbaa !11
  %1433 = load double, ptr %61, align 8, !tbaa !11
  %1434 = call double @sin(double noundef %1433) #7
  %1435 = fmul double %1432, %1434
  store double %1435, ptr %63, align 8, !tbaa !11
  %1436 = load i32, ptr %19, align 4, !tbaa !9
  %1437 = icmp eq i32 %1436, 2
  br i1 %1437, label %1438, label %1451

1438:                                             ; preds = %1424
  %1439 = load i32, ptr %25, align 4, !tbaa !9
  %1440 = icmp ne i32 %1439, 0
  br i1 %1440, label %1441, label %1443

1441:                                             ; preds = %1438
  %1442 = load ptr, ptr %4, align 8, !tbaa !5
  call void @qh_out1(ptr noundef %1442, double noundef 1.000000e+00)
  br label %1443

1443:                                             ; preds = %1441, %1438
  %1444 = load ptr, ptr %4, align 8, !tbaa !5
  %1445 = load double, ptr %62, align 8, !tbaa !11
  %1446 = load double, ptr %66, align 8, !tbaa !11
  %1447 = fmul double %1445, %1446
  %1448 = load double, ptr %63, align 8, !tbaa !11
  %1449 = load double, ptr %66, align 8, !tbaa !11
  %1450 = fmul double %1448, %1449
  call void @qh_out2n(ptr noundef %1444, double noundef %1447, double noundef %1450)
  br label %1516

1451:                                             ; preds = %1424
  %1452 = load double, ptr %62, align 8, !tbaa !11
  %1453 = load double, ptr %62, align 8, !tbaa !11
  %1454 = call double @llvm.fmuladd.f64(double %1452, double %1453, double 1.000000e+00)
  %1455 = load double, ptr %63, align 8, !tbaa !11
  %1456 = load double, ptr %63, align 8, !tbaa !11
  %1457 = call double @llvm.fmuladd.f64(double %1455, double %1456, double %1454)
  %1458 = call double @sqrt(double noundef %1457) #7
  store double %1458, ptr %53, align 8, !tbaa !11
  %1459 = load i32, ptr %25, align 4, !tbaa !9
  %1460 = icmp ne i32 %1459, 0
  br i1 %1460, label %1461, label %1463

1461:                                             ; preds = %1451
  %1462 = load ptr, ptr %4, align 8, !tbaa !5
  call void @qh_out1(ptr noundef %1462, double noundef 1.000000e+00)
  br label %1463

1463:                                             ; preds = %1461, %1451
  %1464 = load ptr, ptr %4, align 8, !tbaa !5
  %1465 = load double, ptr %66, align 8, !tbaa !11
  %1466 = load double, ptr %62, align 8, !tbaa !11
  %1467 = fmul double %1465, %1466
  %1468 = load double, ptr %53, align 8, !tbaa !11
  %1469 = fdiv double %1467, %1468
  %1470 = load double, ptr %66, align 8, !tbaa !11
  %1471 = load double, ptr %63, align 8, !tbaa !11
  %1472 = fmul double %1470, %1471
  %1473 = load double, ptr %53, align 8, !tbaa !11
  %1474 = fdiv double %1472, %1473
  %1475 = load double, ptr %66, align 8, !tbaa !11
  %1476 = load double, ptr %53, align 8, !tbaa !11
  %1477 = fdiv double %1475, %1476
  call void @qh_out3n(ptr noundef %1464, double noundef %1469, double noundef %1474, double noundef %1477)
  %1478 = load i32, ptr %30, align 4, !tbaa !9
  %1479 = icmp ne i32 %1478, 0
  br i1 %1479, label %1480, label %1515

1480:                                             ; preds = %1463
  %1481 = load double, ptr %41, align 8, !tbaa !11
  %1482 = fsub double 1.000000e+00, %1481
  %1483 = load double, ptr %62, align 8, !tbaa !11
  %1484 = fmul double %1483, %1482
  store double %1484, ptr %62, align 8, !tbaa !11
  %1485 = load double, ptr %41, align 8, !tbaa !11
  %1486 = fsub double 1.000000e+00, %1485
  %1487 = load double, ptr %63, align 8, !tbaa !11
  %1488 = fmul double %1487, %1486
  store double %1488, ptr %63, align 8, !tbaa !11
  %1489 = load double, ptr %62, align 8, !tbaa !11
  %1490 = load double, ptr %62, align 8, !tbaa !11
  %1491 = call double @llvm.fmuladd.f64(double %1489, double %1490, double 1.000000e+00)
  %1492 = load double, ptr %63, align 8, !tbaa !11
  %1493 = load double, ptr %63, align 8, !tbaa !11
  %1494 = call double @llvm.fmuladd.f64(double %1492, double %1493, double %1491)
  %1495 = call double @sqrt(double noundef %1494) #7
  store double %1495, ptr %53, align 8, !tbaa !11
  %1496 = load i32, ptr %25, align 4, !tbaa !9
  %1497 = icmp ne i32 %1496, 0
  br i1 %1497, label %1498, label %1500

1498:                                             ; preds = %1480
  %1499 = load ptr, ptr %4, align 8, !tbaa !5
  call void @qh_out1(ptr noundef %1499, double noundef 1.000000e+00)
  br label %1500

1500:                                             ; preds = %1498, %1480
  %1501 = load ptr, ptr %4, align 8, !tbaa !5
  %1502 = load double, ptr %66, align 8, !tbaa !11
  %1503 = load double, ptr %62, align 8, !tbaa !11
  %1504 = fmul double %1502, %1503
  %1505 = load double, ptr %53, align 8, !tbaa !11
  %1506 = fdiv double %1504, %1505
  %1507 = load double, ptr %66, align 8, !tbaa !11
  %1508 = load double, ptr %63, align 8, !tbaa !11
  %1509 = fmul double %1507, %1508
  %1510 = load double, ptr %53, align 8, !tbaa !11
  %1511 = fdiv double %1509, %1510
  %1512 = load double, ptr %66, align 8, !tbaa !11
  %1513 = load double, ptr %53, align 8, !tbaa !11
  %1514 = fdiv double %1512, %1513
  call void @qh_out3n(ptr noundef %1501, double noundef %1506, double noundef %1511, double noundef %1514)
  br label %1515

1515:                                             ; preds = %1500, %1463
  br label %1516

1516:                                             ; preds = %1515, %1443
  br label %1517

1517:                                             ; preds = %1516
  %1518 = load i32, ptr %7, align 4, !tbaa !9
  %1519 = add nsw i32 %1518, 1
  store i32 %1519, ptr %7, align 4, !tbaa !9
  br label %1420, !llvm.loop !52

1520:                                             ; preds = %1420
  br label %2247

1521:                                             ; preds = %1371, %1368
  %1522 = load i32, ptr %27, align 4, !tbaa !9
  %1523 = icmp ne i32 %1522, 0
  br i1 %1523, label %1524, label %1596

1524:                                             ; preds = %1521
  %1525 = load i32, ptr %26, align 4, !tbaa !9
  %1526 = icmp ne i32 %1525, 0
  br i1 %1526, label %1527, label %1596

1527:                                             ; preds = %1524
  %1528 = load i32, ptr %19, align 4, !tbaa !9
  %1529 = icmp eq i32 %1528, 2
  br i1 %1529, label %1530, label %1596

1530:                                             ; preds = %1527
  call void @llvm.lifetime.start.p0(i64 8, ptr %74) #7
  %1531 = load double, ptr %58, align 8, !tbaa !11
  store double %1531, ptr %61, align 8, !tbaa !11
  %1532 = load double, ptr %58, align 8, !tbaa !11
  %1533 = fmul double 2.000000e+00, %1532
  %1534 = load i32, ptr %20, align 4, !tbaa !9
  %1535 = sub nsw i32 %1534, 1
  %1536 = sitofp i32 %1535 to double
  %1537 = fdiv double %1533, %1536
  store double %1537, ptr %60, align 8, !tbaa !11
  %1538 = load double, ptr %58, align 8, !tbaa !11
  %1539 = call double @cos(double noundef %1538) #7
  store double %1539, ptr %74, align 8, !tbaa !11
  store i32 0, ptr %7, align 4, !tbaa !9
  br label %1540

1540:                                             ; preds = %1589, %1530
  %1541 = load i32, ptr %7, align 4, !tbaa !9
  %1542 = load i32, ptr %20, align 4, !tbaa !9
  %1543 = icmp slt i32 %1541, %1542
  br i1 %1543, label %1544, label %1595

1544:                                             ; preds = %1540
  %1545 = load double, ptr %42, align 8, !tbaa !11
  %1546 = load double, ptr %61, align 8, !tbaa !11
  %1547 = call double @sin(double noundef %1546) #7
  %1548 = fmul double %1545, %1547
  store double %1548, ptr %62, align 8, !tbaa !11
  %1549 = load double, ptr %42, align 8, !tbaa !11
  %1550 = load double, ptr %61, align 8, !tbaa !11
  %1551 = call double @cos(double noundef %1550) #7
  %1552 = load double, ptr %74, align 8, !tbaa !11
  %1553 = fsub double %1551, %1552
  %1554 = fmul double %1549, %1553
  store double %1554, ptr %63, align 8, !tbaa !11
  %1555 = load i32, ptr %25, align 4, !tbaa !9
  %1556 = icmp ne i32 %1555, 0
  br i1 %1556, label %1557, label %1559

1557:                                             ; preds = %1544
  %1558 = load ptr, ptr %4, align 8, !tbaa !5
  call void @qh_out1(ptr noundef %1558, double noundef 1.000000e+00)
  br label %1559

1559:                                             ; preds = %1557, %1544
  %1560 = load ptr, ptr %4, align 8, !tbaa !5
  %1561 = load double, ptr %62, align 8, !tbaa !11
  %1562 = load double, ptr %66, align 8, !tbaa !11
  %1563 = fmul double %1561, %1562
  %1564 = load double, ptr %63, align 8, !tbaa !11
  %1565 = load double, ptr %66, align 8, !tbaa !11
  %1566 = fmul double %1564, %1565
  call void @qh_out2n(ptr noundef %1560, double noundef %1563, double noundef %1566)
  %1567 = load i32, ptr %7, align 4, !tbaa !9
  %1568 = icmp ne i32 %1567, 0
  br i1 %1568, label %1569, label %1588

1569:                                             ; preds = %1559
  %1570 = load i32, ptr %7, align 4, !tbaa !9
  %1571 = load i32, ptr %20, align 4, !tbaa !9
  %1572 = sub nsw i32 %1571, 1
  %1573 = icmp ne i32 %1570, %1572
  br i1 %1573, label %1574, label %1588

1574:                                             ; preds = %1569
  %1575 = load i32, ptr %25, align 4, !tbaa !9
  %1576 = icmp ne i32 %1575, 0
  br i1 %1576, label %1577, label %1579

1577:                                             ; preds = %1574
  %1578 = load ptr, ptr %4, align 8, !tbaa !5
  call void @qh_out1(ptr noundef %1578, double noundef 1.000000e+00)
  br label %1579

1579:                                             ; preds = %1577, %1574
  %1580 = load ptr, ptr %4, align 8, !tbaa !5
  %1581 = load double, ptr %62, align 8, !tbaa !11
  %1582 = load double, ptr %66, align 8, !tbaa !11
  %1583 = fmul double %1581, %1582
  %1584 = load double, ptr %63, align 8, !tbaa !11
  %1585 = fneg double %1584
  %1586 = load double, ptr %66, align 8, !tbaa !11
  %1587 = fmul double %1585, %1586
  call void @qh_out2n(ptr noundef %1580, double noundef %1583, double noundef %1587)
  br label %1588

1588:                                             ; preds = %1579, %1569, %1559
  br label %1589

1589:                                             ; preds = %1588
  %1590 = load i32, ptr %7, align 4, !tbaa !9
  %1591 = add nsw i32 %1590, 1
  store i32 %1591, ptr %7, align 4, !tbaa !9
  %1592 = load double, ptr %60, align 8, !tbaa !11
  %1593 = load double, ptr %61, align 8, !tbaa !11
  %1594 = fsub double %1593, %1592
  store double %1594, ptr %61, align 8, !tbaa !11
  br label %1540, !llvm.loop !53

1595:                                             ; preds = %1540
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #7
  br label %2246

1596:                                             ; preds = %1527, %1524, %1521
  %1597 = load i32, ptr %27, align 4, !tbaa !9
  %1598 = icmp ne i32 %1597, 0
  br i1 %1598, label %1599, label %1701

1599:                                             ; preds = %1596
  %1600 = load i32, ptr %26, align 4, !tbaa !9
  %1601 = icmp ne i32 %1600, 0
  br i1 %1601, label %1602, label %1701

1602:                                             ; preds = %1599
  %1603 = load i32, ptr %19, align 4, !tbaa !9
  %1604 = icmp ne i32 %1603, 2
  br i1 %1604, label %1605, label %1701

1605:                                             ; preds = %1602
  %1606 = load i32, ptr %19, align 4, !tbaa !9
  %1607 = icmp ne i32 %1606, 3
  br i1 %1607, label %1608, label %1614

1608:                                             ; preds = %1605
  %1609 = load ptr, ptr %4, align 8, !tbaa !5
  %1610 = load ptr, ptr %4, align 8, !tbaa !5
  %1611 = getelementptr inbounds %struct.qhT, ptr %1610, i32 0, i32 158
  %1612 = load ptr, ptr %1611, align 8, !tbaa !27
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %1609, ptr noundef %1612, i32 noundef 6198, ptr noundef @.str.25)
  %1613 = load ptr, ptr %4, align 8, !tbaa !5
  call void @qh_errexit_rbox(ptr noundef %1613, i32 noundef 1)
  br label %1614

1614:                                             ; preds = %1608, %1605
  store double 0.000000e+00, ptr %61, align 8, !tbaa !11
  %1615 = load i32, ptr %20, align 4, !tbaa !9
  %1616 = sitofp i32 %1615 to double
  %1617 = fdiv double 0x401921FB54442D18, %1616
  store double %1617, ptr %60, align 8, !tbaa !11
  %1618 = load i32, ptr %30, align 4, !tbaa !9
  %1619 = icmp ne i32 %1618, 0
  br i1 %1619, label %1621, label %1620

1620:                                             ; preds = %1614
  store i32 1, ptr %30, align 4, !tbaa !9
  store double 5.000000e-01, ptr %41, align 8, !tbaa !11
  br label %1621

1621:                                             ; preds = %1620, %1614
  %1622 = load double, ptr %42, align 8, !tbaa !11
  %1623 = load double, ptr %42, align 8, !tbaa !11
  %1624 = load double, ptr %41, align 8, !tbaa !11
  %1625 = fsub double 1.000000e+00, %1624
  %1626 = load double, ptr %41, align 8, !tbaa !11
  %1627 = fsub double 1.000000e+00, %1626
  %1628 = fmul double %1625, %1627
  %1629 = fneg double %1628
  %1630 = call double @llvm.fmuladd.f64(double %1622, double %1623, double %1629)
  %1631 = call double @sqrt(double noundef %1630) #7
  %1632 = load double, ptr %59, align 8, !tbaa !11
  %1633 = fsub double %1631, %1632
  store double %1633, ptr %45, align 8, !tbaa !11
  store i32 0, ptr %7, align 4, !tbaa !9
  br label %1634

1634:                                             ; preds = %1694, %1621
  %1635 = load i32, ptr %7, align 4, !tbaa !9
  %1636 = load i32, ptr %20, align 4, !tbaa !9
  %1637 = icmp slt i32 %1635, %1636
  br i1 %1637, label %1638, label %1700

1638:                                             ; preds = %1634
  %1639 = load double, ptr %61, align 8, !tbaa !11
  %1640 = call double @cos(double noundef %1639) #7
  store double %1640, ptr %62, align 8, !tbaa !11
  %1641 = load double, ptr %61, align 8, !tbaa !11
  %1642 = call double @sin(double noundef %1641) #7
  store double %1642, ptr %63, align 8, !tbaa !11
  %1643 = load i32, ptr %25, align 4, !tbaa !9
  %1644 = icmp ne i32 %1643, 0
  br i1 %1644, label %1645, label %1647

1645:                                             ; preds = %1638
  %1646 = load ptr, ptr %4, align 8, !tbaa !5
  call void @qh_out1(ptr noundef %1646, double noundef 1.000000e+00)
  br label %1647

1647:                                             ; preds = %1645, %1638
  %1648 = load ptr, ptr %4, align 8, !tbaa !5
  %1649 = load double, ptr %66, align 8, !tbaa !11
  %1650 = load double, ptr %62, align 8, !tbaa !11
  %1651 = fmul double %1649, %1650
  %1652 = load double, ptr %66, align 8, !tbaa !11
  %1653 = load double, ptr %63, align 8, !tbaa !11
  %1654 = fmul double %1652, %1653
  call void @qh_out3n(ptr noundef %1648, double noundef %1651, double noundef %1654, double noundef 0.000000e+00)
  %1655 = load double, ptr %41, align 8, !tbaa !11
  %1656 = fsub double 1.000000e+00, %1655
  %1657 = load double, ptr %62, align 8, !tbaa !11
  %1658 = fmul double %1657, %1656
  store double %1658, ptr %62, align 8, !tbaa !11
  %1659 = load double, ptr %41, align 8, !tbaa !11
  %1660 = fsub double 1.000000e+00, %1659
  %1661 = load double, ptr %63, align 8, !tbaa !11
  %1662 = fmul double %1661, %1660
  store double %1662, ptr %63, align 8, !tbaa !11
  %1663 = load i32, ptr %25, align 4, !tbaa !9
  %1664 = icmp ne i32 %1663, 0
  br i1 %1664, label %1665, label %1667

1665:                                             ; preds = %1647
  %1666 = load ptr, ptr %4, align 8, !tbaa !5
  call void @qh_out1(ptr noundef %1666, double noundef 1.000000e+00)
  br label %1667

1667:                                             ; preds = %1665, %1647
  %1668 = load ptr, ptr %4, align 8, !tbaa !5
  %1669 = load double, ptr %66, align 8, !tbaa !11
  %1670 = load double, ptr %62, align 8, !tbaa !11
  %1671 = fmul double %1669, %1670
  %1672 = load double, ptr %66, align 8, !tbaa !11
  %1673 = load double, ptr %63, align 8, !tbaa !11
  %1674 = fmul double %1672, %1673
  %1675 = load double, ptr %66, align 8, !tbaa !11
  %1676 = load double, ptr %45, align 8, !tbaa !11
  %1677 = fmul double %1675, %1676
  call void @qh_out3n(ptr noundef %1668, double noundef %1671, double noundef %1674, double noundef %1677)
  %1678 = load i32, ptr %25, align 4, !tbaa !9
  %1679 = icmp ne i32 %1678, 0
  br i1 %1679, label %1680, label %1682

1680:                                             ; preds = %1667
  %1681 = load ptr, ptr %4, align 8, !tbaa !5
  call void @qh_out1(ptr noundef %1681, double noundef 1.000000e+00)
  br label %1682

1682:                                             ; preds = %1680, %1667
  %1683 = load ptr, ptr %4, align 8, !tbaa !5
  %1684 = load double, ptr %66, align 8, !tbaa !11
  %1685 = load double, ptr %62, align 8, !tbaa !11
  %1686 = fmul double %1684, %1685
  %1687 = load double, ptr %66, align 8, !tbaa !11
  %1688 = load double, ptr %63, align 8, !tbaa !11
  %1689 = fmul double %1687, %1688
  %1690 = load double, ptr %66, align 8, !tbaa !11
  %1691 = fneg double %1690
  %1692 = load double, ptr %45, align 8, !tbaa !11
  %1693 = fmul double %1691, %1692
  call void @qh_out3n(ptr noundef %1683, double noundef %1686, double noundef %1689, double noundef %1693)
  br label %1694

1694:                                             ; preds = %1682
  %1695 = load i32, ptr %7, align 4, !tbaa !9
  %1696 = add nsw i32 %1695, 1
  store i32 %1696, ptr %7, align 4, !tbaa !9
  %1697 = load double, ptr %60, align 8, !tbaa !11
  %1698 = load double, ptr %61, align 8, !tbaa !11
  %1699 = fadd double %1698, %1697
  store double %1699, ptr %61, align 8, !tbaa !11
  br label %1634, !llvm.loop !54

1700:                                             ; preds = %1634
  br label %2245

1701:                                             ; preds = %1602, %1599, %1596
  %1702 = load i32, ptr %24, align 4, !tbaa !9
  %1703 = icmp ne i32 %1702, 0
  br i1 %1703, label %1704, label %1729

1704:                                             ; preds = %1701
  %1705 = load i32, ptr %19, align 4, !tbaa !9
  %1706 = sub nsw i32 %1705, 1
  store i32 %1706, ptr %10, align 4, !tbaa !9
  %1707 = load i32, ptr %25, align 4, !tbaa !9
  %1708 = icmp ne i32 %1707, 0
  br i1 %1708, label %1709, label %1711

1709:                                             ; preds = %1704
  %1710 = load ptr, ptr %4, align 8, !tbaa !5
  call void @qh_out1(ptr noundef %1710, double noundef 1.000000e+00)
  br label %1711

1711:                                             ; preds = %1709, %1704
  store i32 0, ptr %8, align 4, !tbaa !9
  br label %1712

1712:                                             ; preds = %1718, %1711
  %1713 = load i32, ptr %8, align 4, !tbaa !9
  %1714 = load i32, ptr %10, align 4, !tbaa !9
  %1715 = icmp slt i32 %1713, %1714
  br i1 %1715, label %1716, label %1721

1716:                                             ; preds = %1712
  %1717 = load ptr, ptr %4, align 8, !tbaa !5
  call void @qh_out1(ptr noundef %1717, double noundef 0.000000e+00)
  br label %1718

1718:                                             ; preds = %1716
  %1719 = load i32, ptr %8, align 4, !tbaa !9
  %1720 = add nsw i32 %1719, 1
  store i32 %1720, ptr %8, align 4, !tbaa !9
  br label %1712, !llvm.loop !55

1721:                                             ; preds = %1712
  %1722 = load ptr, ptr %4, align 8, !tbaa !5
  %1723 = load double, ptr %66, align 8, !tbaa !11
  %1724 = fneg double %1723
  call void @qh_out1(ptr noundef %1722, double noundef %1724)
  %1725 = load ptr, ptr %4, align 8, !tbaa !5
  %1726 = load ptr, ptr %4, align 8, !tbaa !5
  %1727 = getelementptr inbounds %struct.qhT, ptr %1726, i32 0, i32 157
  %1728 = load ptr, ptr %1727, align 8, !tbaa !31
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %1725, ptr noundef %1728, i32 noundef 9398, ptr noundef @.str.23)
  br label %1738

1729:                                             ; preds = %1701
  %1730 = load i32, ptr %26, align 4, !tbaa !9
  %1731 = icmp ne i32 %1730, 0
  br i1 %1731, label %1732, label %1735

1732:                                             ; preds = %1729
  %1733 = load i32, ptr %19, align 4, !tbaa !9
  %1734 = sub nsw i32 %1733, 1
  store i32 %1734, ptr %10, align 4, !tbaa !9
  br label %1737

1735:                                             ; preds = %1729
  %1736 = load i32, ptr %19, align 4, !tbaa !9
  store i32 %1736, ptr %10, align 4, !tbaa !9
  br label %1737

1737:                                             ; preds = %1735, %1732
  br label %1738

1738:                                             ; preds = %1737, %1721
  store i32 0, ptr %7, align 4, !tbaa !9
  br label %1739

1739:                                             ; preds = %2241, %1738
  %1740 = load i32, ptr %7, align 4, !tbaa !9
  %1741 = load i32, ptr %20, align 4, !tbaa !9
  %1742 = icmp slt i32 %1740, %1741
  br i1 %1742, label %1743, label %2244

1743:                                             ; preds = %1739
  store double 0.000000e+00, ptr %53, align 8, !tbaa !11
  store i32 0, ptr %8, align 4, !tbaa !9
  br label %1744

1744:                                             ; preds = %1770, %1743
  %1745 = load i32, ptr %8, align 4, !tbaa !9
  %1746 = load i32, ptr %10, align 4, !tbaa !9
  %1747 = icmp slt i32 %1745, %1746
  br i1 %1747, label %1748, label %1773

1748:                                             ; preds = %1744
  %1749 = load ptr, ptr %4, align 8, !tbaa !5
  %1750 = call i32 @qh_rand(ptr noundef %1749)
  %1751 = sitofp i32 %1750 to double
  store double %1751, ptr %55, align 8, !tbaa !11
  %1752 = load double, ptr %55, align 8, !tbaa !11
  %1753 = fmul double 2.000000e+00, %1752
  %1754 = load double, ptr %67, align 8, !tbaa !11
  %1755 = fdiv double %1753, %1754
  %1756 = fsub double %1755, 1.000000e+00
  %1757 = load i32, ptr %8, align 4, !tbaa !9
  %1758 = sext i32 %1757 to i64
  %1759 = getelementptr inbounds [200 x double], ptr %44, i64 0, i64 %1758
  store double %1756, ptr %1759, align 8, !tbaa !11
  %1760 = load i32, ptr %8, align 4, !tbaa !9
  %1761 = sext i32 %1760 to i64
  %1762 = getelementptr inbounds [200 x double], ptr %44, i64 0, i64 %1761
  %1763 = load double, ptr %1762, align 8, !tbaa !11
  %1764 = load i32, ptr %8, align 4, !tbaa !9
  %1765 = sext i32 %1764 to i64
  %1766 = getelementptr inbounds [200 x double], ptr %44, i64 0, i64 %1765
  %1767 = load double, ptr %1766, align 8, !tbaa !11
  %1768 = load double, ptr %53, align 8, !tbaa !11
  %1769 = call double @llvm.fmuladd.f64(double %1763, double %1767, double %1768)
  store double %1769, ptr %53, align 8, !tbaa !11
  br label %1770

1770:                                             ; preds = %1748
  %1771 = load i32, ptr %8, align 4, !tbaa !9
  %1772 = add nsw i32 %1771, 1
  store i32 %1772, ptr %8, align 4, !tbaa !9
  br label %1744, !llvm.loop !56

1773:                                             ; preds = %1744
  %1774 = load double, ptr %53, align 8, !tbaa !11
  %1775 = call double @sqrt(double noundef %1774) #7
  store double %1775, ptr %53, align 8, !tbaa !11
  %1776 = load i32, ptr %24, align 4, !tbaa !9
  %1777 = icmp ne i32 %1776, 0
  br i1 %1777, label %1778, label %1815

1778:                                             ; preds = %1773
  %1779 = load i32, ptr %30, align 4, !tbaa !9
  %1780 = icmp ne i32 %1779, 0
  br i1 %1780, label %1782, label %1781

1781:                                             ; preds = %1778
  store i32 1, ptr %30, align 4, !tbaa !9
  store double 1.000000e+00, ptr %41, align 8, !tbaa !11
  br label %1782

1782:                                             ; preds = %1781, %1778
  %1783 = load ptr, ptr %4, align 8, !tbaa !5
  %1784 = call i32 @qh_rand(ptr noundef %1783)
  %1785 = sitofp i32 %1784 to double
  store double %1785, ptr %55, align 8, !tbaa !11
  %1786 = load double, ptr %41, align 8, !tbaa !11
  %1787 = load double, ptr %55, align 8, !tbaa !11
  %1788 = fmul double %1786, %1787
  %1789 = load double, ptr %67, align 8, !tbaa !11
  %1790 = fdiv double %1788, %1789
  %1791 = fsub double 1.000000e+00, %1790
  store double %1791, ptr %56, align 8, !tbaa !11
  %1792 = load double, ptr %42, align 8, !tbaa !11
  %1793 = load double, ptr %56, align 8, !tbaa !11
  %1794 = fmul double %1792, %1793
  %1795 = load double, ptr %53, align 8, !tbaa !11
  %1796 = fdiv double %1794, %1795
  store double %1796, ptr %54, align 8, !tbaa !11
  store i32 0, ptr %8, align 4, !tbaa !9
  br label %1797

1797:                                             ; preds = %1811, %1782
  %1798 = load i32, ptr %8, align 4, !tbaa !9
  %1799 = load i32, ptr %10, align 4, !tbaa !9
  %1800 = icmp slt i32 %1798, %1799
  br i1 %1800, label %1801, label %1814

1801:                                             ; preds = %1797
  %1802 = load double, ptr %54, align 8, !tbaa !11
  %1803 = load i32, ptr %8, align 4, !tbaa !9
  %1804 = sext i32 %1803 to i64
  %1805 = getelementptr inbounds [200 x double], ptr %44, i64 0, i64 %1804
  %1806 = load double, ptr %1805, align 8, !tbaa !11
  %1807 = fmul double %1802, %1806
  %1808 = load i32, ptr %8, align 4, !tbaa !9
  %1809 = sext i32 %1808 to i64
  %1810 = getelementptr inbounds [200 x double], ptr %44, i64 0, i64 %1809
  store double %1807, ptr %1810, align 8, !tbaa !11
  br label %1811

1811:                                             ; preds = %1801
  %1812 = load i32, ptr %8, align 4, !tbaa !9
  %1813 = add nsw i32 %1812, 1
  store i32 %1813, ptr %8, align 4, !tbaa !9
  br label %1797, !llvm.loop !57

1814:                                             ; preds = %1797
  br label %1982

1815:                                             ; preds = %1773
  %1816 = load i32, ptr %26, align 4, !tbaa !9
  %1817 = icmp ne i32 %1816, 0
  br i1 %1817, label %1818, label %1856

1818:                                             ; preds = %1815
  %1819 = load i32, ptr %23, align 4, !tbaa !9
  %1820 = icmp ne i32 %1819, 0
  br i1 %1820, label %1821, label %1856

1821:                                             ; preds = %1818
  %1822 = load i32, ptr %30, align 4, !tbaa !9
  %1823 = icmp ne i32 %1822, 0
  br i1 %1823, label %1825, label %1824

1824:                                             ; preds = %1821
  store i32 1, ptr %30, align 4, !tbaa !9
  store double 1.000000e+00, ptr %41, align 8, !tbaa !11
  br label %1825

1825:                                             ; preds = %1824, %1821
  %1826 = load ptr, ptr %4, align 8, !tbaa !5
  %1827 = call i32 @qh_rand(ptr noundef %1826)
  %1828 = sitofp i32 %1827 to double
  store double %1828, ptr %55, align 8, !tbaa !11
  %1829 = load double, ptr %41, align 8, !tbaa !11
  %1830 = load double, ptr %55, align 8, !tbaa !11
  %1831 = fmul double %1829, %1830
  %1832 = load double, ptr %67, align 8, !tbaa !11
  %1833 = fdiv double %1831, %1832
  %1834 = fsub double 1.000000e+00, %1833
  store double %1834, ptr %56, align 8, !tbaa !11
  %1835 = load double, ptr %56, align 8, !tbaa !11
  %1836 = load double, ptr %53, align 8, !tbaa !11
  %1837 = fdiv double %1835, %1836
  store double %1837, ptr %54, align 8, !tbaa !11
  store i32 0, ptr %8, align 4, !tbaa !9
  br label %1838

1838:                                             ; preds = %1852, %1825
  %1839 = load i32, ptr %8, align 4, !tbaa !9
  %1840 = load i32, ptr %10, align 4, !tbaa !9
  %1841 = icmp slt i32 %1839, %1840
  br i1 %1841, label %1842, label %1855

1842:                                             ; preds = %1838
  %1843 = load double, ptr %54, align 8, !tbaa !11
  %1844 = load i32, ptr %8, align 4, !tbaa !9
  %1845 = sext i32 %1844 to i64
  %1846 = getelementptr inbounds [200 x double], ptr %44, i64 0, i64 %1845
  %1847 = load double, ptr %1846, align 8, !tbaa !11
  %1848 = fmul double %1843, %1847
  %1849 = load i32, ptr %8, align 4, !tbaa !9
  %1850 = sext i32 %1849 to i64
  %1851 = getelementptr inbounds [200 x double], ptr %44, i64 0, i64 %1850
  store double %1848, ptr %1851, align 8, !tbaa !11
  br label %1852

1852:                                             ; preds = %1842
  %1853 = load i32, ptr %8, align 4, !tbaa !9
  %1854 = add nsw i32 %1853, 1
  store i32 %1854, ptr %8, align 4, !tbaa !9
  br label %1838, !llvm.loop !58

1855:                                             ; preds = %1838
  br label %1981

1856:                                             ; preds = %1818, %1815
  %1857 = load i32, ptr %26, align 4, !tbaa !9
  %1858 = icmp ne i32 %1857, 0
  br i1 %1858, label %1859, label %1899

1859:                                             ; preds = %1856
  %1860 = load i32, ptr %23, align 4, !tbaa !9
  %1861 = icmp ne i32 %1860, 0
  br i1 %1861, label %1899, label %1862

1862:                                             ; preds = %1859
  %1863 = load i32, ptr %30, align 4, !tbaa !9
  %1864 = icmp ne i32 %1863, 0
  br i1 %1864, label %1866, label %1865

1865:                                             ; preds = %1862
  store i32 1, ptr %30, align 4, !tbaa !9
  store double 1.000000e+00, ptr %41, align 8, !tbaa !11
  br label %1866

1866:                                             ; preds = %1865, %1862
  %1867 = load ptr, ptr %4, align 8, !tbaa !5
  %1868 = call i32 @qh_rand(ptr noundef %1867)
  %1869 = load i32, ptr %10, align 4, !tbaa !9
  %1870 = srem i32 %1868, %1869
  store i32 %1870, ptr %8, align 4, !tbaa !9
  %1871 = load i32, ptr %8, align 4, !tbaa !9
  %1872 = sext i32 %1871 to i64
  %1873 = getelementptr inbounds [200 x double], ptr %44, i64 0, i64 %1872
  %1874 = load double, ptr %1873, align 8, !tbaa !11
  %1875 = fcmp olt double %1874, 0.000000e+00
  br i1 %1875, label %1876, label %1887

1876:                                             ; preds = %1866
  %1877 = load i32, ptr %8, align 4, !tbaa !9
  %1878 = sext i32 %1877 to i64
  %1879 = getelementptr inbounds [200 x double], ptr %44, i64 0, i64 %1878
  %1880 = load double, ptr %1879, align 8, !tbaa !11
  %1881 = load double, ptr %41, align 8, !tbaa !11
  %1882 = fneg double %1880
  %1883 = call double @llvm.fmuladd.f64(double %1882, double %1881, double -1.000000e+00)
  %1884 = load i32, ptr %8, align 4, !tbaa !9
  %1885 = sext i32 %1884 to i64
  %1886 = getelementptr inbounds [200 x double], ptr %44, i64 0, i64 %1885
  store double %1883, ptr %1886, align 8, !tbaa !11
  br label %1898

1887:                                             ; preds = %1866
  %1888 = load i32, ptr %8, align 4, !tbaa !9
  %1889 = sext i32 %1888 to i64
  %1890 = getelementptr inbounds [200 x double], ptr %44, i64 0, i64 %1889
  %1891 = load double, ptr %1890, align 8, !tbaa !11
  %1892 = load double, ptr %41, align 8, !tbaa !11
  %1893 = fneg double %1891
  %1894 = call double @llvm.fmuladd.f64(double %1893, double %1892, double 1.000000e+00)
  %1895 = load i32, ptr %8, align 4, !tbaa !9
  %1896 = sext i32 %1895 to i64
  %1897 = getelementptr inbounds [200 x double], ptr %44, i64 0, i64 %1896
  store double %1894, ptr %1897, align 8, !tbaa !11
  br label %1898

1898:                                             ; preds = %1887, %1876
  br label %1980

1899:                                             ; preds = %1859, %1856
  %1900 = load i32, ptr %31, align 4, !tbaa !9
  %1901 = icmp ne i32 %1900, 0
  br i1 %1901, label %1902, label %1939

1902:                                             ; preds = %1899
  %1903 = load i32, ptr %19, align 4, !tbaa !9
  %1904 = icmp ne i32 %1903, 3
  br i1 %1904, label %1905, label %1911

1905:                                             ; preds = %1902
  %1906 = load ptr, ptr %4, align 8, !tbaa !5
  %1907 = load ptr, ptr %4, align 8, !tbaa !5
  %1908 = getelementptr inbounds %struct.qhT, ptr %1907, i32 0, i32 158
  %1909 = load ptr, ptr %1908, align 8, !tbaa !27
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %1906, ptr noundef %1909, i32 noundef 6199, ptr noundef @.str.26)
  %1910 = load ptr, ptr %4, align 8, !tbaa !5
  call void @qh_errexit_rbox(ptr noundef %1910, i32 noundef 1)
  br label %1911

1911:                                             ; preds = %1905, %1902
  %1912 = load i32, ptr %7, align 4, !tbaa !9
  %1913 = sitofp i32 %1912 to double
  %1914 = fmul double 0x401921FB54442D18, %1913
  %1915 = load i32, ptr %20, align 4, !tbaa !9
  %1916 = sub nsw i32 %1915, 1
  %1917 = sitofp i32 %1916 to double
  %1918 = fdiv double %1914, %1917
  %1919 = call double @cos(double noundef %1918) #7
  %1920 = getelementptr inbounds [200 x double], ptr %44, i64 0, i64 0
  store double %1919, ptr %1920, align 16, !tbaa !11
  %1921 = load i32, ptr %7, align 4, !tbaa !9
  %1922 = sitofp i32 %1921 to double
  %1923 = fmul double 0x401921FB54442D18, %1922
  %1924 = load i32, ptr %20, align 4, !tbaa !9
  %1925 = sub nsw i32 %1924, 1
  %1926 = sitofp i32 %1925 to double
  %1927 = fdiv double %1923, %1926
  %1928 = call double @sin(double noundef %1927) #7
  %1929 = getelementptr inbounds [200 x double], ptr %44, i64 0, i64 1
  store double %1928, ptr %1929, align 8, !tbaa !11
  %1930 = load i32, ptr %7, align 4, !tbaa !9
  %1931 = sitofp i32 %1930 to double
  %1932 = fmul double 2.000000e+00, %1931
  %1933 = load i32, ptr %20, align 4, !tbaa !9
  %1934 = sub nsw i32 %1933, 1
  %1935 = sitofp i32 %1934 to double
  %1936 = fdiv double %1932, %1935
  %1937 = fsub double %1936, 1.000000e+00
  %1938 = getelementptr inbounds [200 x double], ptr %44, i64 0, i64 2
  store double %1937, ptr %1938, align 16, !tbaa !11
  br label %1979

1939:                                             ; preds = %1899
  %1940 = load i32, ptr %23, align 4, !tbaa !9
  %1941 = icmp ne i32 %1940, 0
  br i1 %1941, label %1942, label %1978

1942:                                             ; preds = %1939
  %1943 = load double, ptr %53, align 8, !tbaa !11
  %1944 = fdiv double 1.000000e+00, %1943
  store double %1944, ptr %54, align 8, !tbaa !11
  %1945 = load i32, ptr %28, align 4, !tbaa !9
  %1946 = icmp ne i32 %1945, 0
  br i1 %1946, label %1947, label %1959

1947:                                             ; preds = %1942
  %1948 = load ptr, ptr %4, align 8, !tbaa !5
  %1949 = call i32 @qh_rand(ptr noundef %1948)
  %1950 = sitofp i32 %1949 to double
  store double %1950, ptr %55, align 8, !tbaa !11
  %1951 = load double, ptr %40, align 8, !tbaa !11
  %1952 = load double, ptr %55, align 8, !tbaa !11
  %1953 = fmul double %1951, %1952
  %1954 = load double, ptr %67, align 8, !tbaa !11
  %1955 = fdiv double %1953, %1954
  %1956 = fsub double 1.000000e+00, %1955
  %1957 = load double, ptr %54, align 8, !tbaa !11
  %1958 = fmul double %1957, %1956
  store double %1958, ptr %54, align 8, !tbaa !11
  br label %1959

1959:                                             ; preds = %1947, %1942
  store i32 0, ptr %8, align 4, !tbaa !9
  br label %1960

1960:                                             ; preds = %1974, %1959
  %1961 = load i32, ptr %8, align 4, !tbaa !9
  %1962 = load i32, ptr %19, align 4, !tbaa !9
  %1963 = icmp slt i32 %1961, %1962
  br i1 %1963, label %1964, label %1977

1964:                                             ; preds = %1960
  %1965 = load double, ptr %54, align 8, !tbaa !11
  %1966 = load i32, ptr %8, align 4, !tbaa !9
  %1967 = sext i32 %1966 to i64
  %1968 = getelementptr inbounds [200 x double], ptr %44, i64 0, i64 %1967
  %1969 = load double, ptr %1968, align 8, !tbaa !11
  %1970 = fmul double %1965, %1969
  %1971 = load i32, ptr %8, align 4, !tbaa !9
  %1972 = sext i32 %1971 to i64
  %1973 = getelementptr inbounds [200 x double], ptr %44, i64 0, i64 %1972
  store double %1970, ptr %1973, align 8, !tbaa !11
  br label %1974

1974:                                             ; preds = %1964
  %1975 = load i32, ptr %8, align 4, !tbaa !9
  %1976 = add nsw i32 %1975, 1
  store i32 %1976, ptr %8, align 4, !tbaa !9
  br label %1960, !llvm.loop !59

1977:                                             ; preds = %1960
  br label %1978

1978:                                             ; preds = %1977, %1939
  br label %1979

1979:                                             ; preds = %1978, %1911
  br label %1980

1980:                                             ; preds = %1979, %1898
  br label %1981

1981:                                             ; preds = %1980, %1855
  br label %1982

1982:                                             ; preds = %1981, %1814
  %1983 = load i32, ptr %24, align 4, !tbaa !9
  %1984 = icmp ne i32 %1983, 0
  br i1 %1984, label %1985, label %2051

1985:                                             ; preds = %1982
  %1986 = load i32, ptr %23, align 4, !tbaa !9
  %1987 = icmp ne i32 %1986, 0
  br i1 %1987, label %1988, label %2051

1988:                                             ; preds = %1985
  %1989 = load i32, ptr %19, align 4, !tbaa !9
  %1990 = sub nsw i32 %1989, 1
  %1991 = sext i32 %1990 to i64
  %1992 = getelementptr inbounds [200 x double], ptr %44, i64 0, i64 %1991
  store double 1.000000e+00, ptr %1992, align 8, !tbaa !11
  store double 1.000000e+00, ptr %53, align 8, !tbaa !11
  store i32 0, ptr %8, align 4, !tbaa !9
  br label %1993

1993:                                             ; preds = %2008, %1988
  %1994 = load i32, ptr %8, align 4, !tbaa !9
  %1995 = load i32, ptr %10, align 4, !tbaa !9
  %1996 = icmp slt i32 %1994, %1995
  br i1 %1996, label %1997, label %2011

1997:                                             ; preds = %1993
  %1998 = load i32, ptr %8, align 4, !tbaa !9
  %1999 = sext i32 %1998 to i64
  %2000 = getelementptr inbounds [200 x double], ptr %44, i64 0, i64 %1999
  %2001 = load double, ptr %2000, align 8, !tbaa !11
  %2002 = load i32, ptr %8, align 4, !tbaa !9
  %2003 = sext i32 %2002 to i64
  %2004 = getelementptr inbounds [200 x double], ptr %44, i64 0, i64 %2003
  %2005 = load double, ptr %2004, align 8, !tbaa !11
  %2006 = load double, ptr %53, align 8, !tbaa !11
  %2007 = call double @llvm.fmuladd.f64(double %2001, double %2005, double %2006)
  store double %2007, ptr %53, align 8, !tbaa !11
  br label %2008

2008:                                             ; preds = %1997
  %2009 = load i32, ptr %8, align 4, !tbaa !9
  %2010 = add nsw i32 %2009, 1
  store i32 %2010, ptr %8, align 4, !tbaa !9
  br label %1993, !llvm.loop !60

2011:                                             ; preds = %1993
  %2012 = load double, ptr %53, align 8, !tbaa !11
  %2013 = call double @sqrt(double noundef %2012) #7
  store double %2013, ptr %53, align 8, !tbaa !11
  store i32 0, ptr %8, align 4, !tbaa !9
  br label %2014

2014:                                             ; preds = %2028, %2011
  %2015 = load i32, ptr %8, align 4, !tbaa !9
  %2016 = load i32, ptr %19, align 4, !tbaa !9
  %2017 = icmp slt i32 %2015, %2016
  br i1 %2017, label %2018, label %2031

2018:                                             ; preds = %2014
  %2019 = load i32, ptr %8, align 4, !tbaa !9
  %2020 = sext i32 %2019 to i64
  %2021 = getelementptr inbounds [200 x double], ptr %44, i64 0, i64 %2020
  %2022 = load double, ptr %2021, align 8, !tbaa !11
  %2023 = load double, ptr %53, align 8, !tbaa !11
  %2024 = fdiv double %2022, %2023
  %2025 = load i32, ptr %8, align 4, !tbaa !9
  %2026 = sext i32 %2025 to i64
  %2027 = getelementptr inbounds [200 x double], ptr %44, i64 0, i64 %2026
  store double %2024, ptr %2027, align 8, !tbaa !11
  br label %2028

2028:                                             ; preds = %2018
  %2029 = load i32, ptr %8, align 4, !tbaa !9
  %2030 = add nsw i32 %2029, 1
  store i32 %2030, ptr %8, align 4, !tbaa !9
  br label %2014, !llvm.loop !61

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

2034:                                             ; preds = %2031
  %2035 = load ptr, ptr %4, align 8, !tbaa !5
  %2036 = call i32 @qh_rand(ptr noundef %2035)
  %2037 = sitofp i32 %2036 to double
  store double %2037, ptr %55, align 8, !tbaa !11
  %2038 = load double, ptr %40, align 8, !tbaa !11
  %2039 = load double, ptr %55, align 8, !tbaa !11
  %2040 = fmul double %2038, %2039
  %2041 = load double, ptr %67, align 8, !tbaa !11
  %2042 = fdiv double %2040, %2041
  %2043 = fsub double 1.000000e+00, %2042
  %2044 = load i32, ptr %19, align 4, !tbaa !9
  %2045 = sub nsw i32 %2044, 1
  %2046 = sext i32 %2045 to i64
  %2047 = getelementptr inbounds [200 x double], ptr %44, i64 0, i64 %2046
  %2048 = load double, ptr %2047, align 8, !tbaa !11
  %2049 = fmul double %2048, %2043
  store double %2049, ptr %2047, align 8, !tbaa !11
  br label %2050

2050:                                             ; preds = %2034, %2031
  br label %2206

2051:                                             ; preds = %1985, %1982
  %2052 = load i32, ptr %24, align 4, !tbaa !9
  %2053 = icmp ne i32 %2052, 0
  br i1 %2053, label %2054, label %2070

2054:                                             ; preds = %2051
  %2055 = load i32, ptr %23, align 4, !tbaa !9
  %2056 = icmp ne i32 %2055, 0
  br i1 %2056, label %2070, label %2057

2057:                                             ; preds = %2054
  %2058 = load ptr, ptr %4, align 8, !tbaa !5
  %2059 = call i32 @qh_rand(ptr noundef %2058)
  %2060 = sitofp i32 %2059 to double
  store double %2060, ptr %55, align 8, !tbaa !11
  %2061 = load double, ptr %55, align 8, !tbaa !11
  %2062 = fmul double 2.000000e+00, %2061
  %2063 = load double, ptr %67, align 8, !tbaa !11
  %2064 = fdiv double %2062, %2063
  %2065 = fsub double %2064, 1.000000e+00
  %2066 = load i32, ptr %19, align 4, !tbaa !9
  %2067 = sub nsw i32 %2066, 1
  %2068 = sext i32 %2067 to i64
  %2069 = getelementptr inbounds [200 x double], ptr %44, i64 0, i64 %2068
  store double %2065, ptr %2069, align 8, !tbaa !11
  br label %2205

2070:                                             ; preds = %2054, %2051
  %2071 = load i32, ptr %26, align 4, !tbaa !9
  %2072 = icmp ne i32 %2071, 0
  br i1 %2072, label %2073, label %2164

2073:                                             ; preds = %2070
  %2074 = load double, ptr %59, align 8, !tbaa !11
  %2075 = load i32, ptr %19, align 4, !tbaa !9
  %2076 = sub nsw i32 %2075, 1
  %2077 = sext i32 %2076 to i64
  %2078 = getelementptr inbounds [200 x double], ptr %44, i64 0, i64 %2077
  store double %2074, ptr %2078, align 8, !tbaa !11
  store i32 0, ptr %8, align 4, !tbaa !9
  store double 0.000000e+00, ptr %53, align 8, !tbaa !11
  br label %2079

2079:                                             ; preds = %2094, %2073
  %2080 = load i32, ptr %8, align 4, !tbaa !9
  %2081 = load i32, ptr %19, align 4, !tbaa !9
  %2082 = icmp slt i32 %2080, %2081
  br i1 %2082, label %2083, label %2097

2083:                                             ; preds = %2079
  %2084 = load i32, ptr %8, align 4, !tbaa !9
  %2085 = sext i32 %2084 to i64
  %2086 = getelementptr inbounds [200 x double], ptr %44, i64 0, i64 %2085
  %2087 = load double, ptr %2086, align 8, !tbaa !11
  %2088 = load i32, ptr %8, align 4, !tbaa !9
  %2089 = sext i32 %2088 to i64
  %2090 = getelementptr inbounds [200 x double], ptr %44, i64 0, i64 %2089
  %2091 = load double, ptr %2090, align 8, !tbaa !11
  %2092 = load double, ptr %53, align 8, !tbaa !11
  %2093 = call double @llvm.fmuladd.f64(double %2087, double %2091, double %2092)
  store double %2093, ptr %53, align 8, !tbaa !11
  br label %2094

2094:                                             ; preds = %2083
  %2095 = load i32, ptr %8, align 4, !tbaa !9
  %2096 = add nsw i32 %2095, 1
  store i32 %2096, ptr %8, align 4, !tbaa !9
  br label %2079, !llvm.loop !62

2097:                                             ; preds = %2079
  %2098 = load double, ptr %53, align 8, !tbaa !11
  %2099 = call double @sqrt(double noundef %2098) #7
  store double %2099, ptr %53, align 8, !tbaa !11
  store i32 0, ptr %8, align 4, !tbaa !9
  br label %2100

2100:                                             ; preds = %2116, %2097
  %2101 = load i32, ptr %8, align 4, !tbaa !9
  %2102 = load i32, ptr %19, align 4, !tbaa !9
  %2103 = icmp slt i32 %2101, %2102
  br i1 %2103, label %2104, label %2119

2104:                                             ; preds = %2100
  %2105 = load i32, ptr %8, align 4, !tbaa !9
  %2106 = sext i32 %2105 to i64
  %2107 = getelementptr inbounds [200 x double], ptr %44, i64 0, i64 %2106
  %2108 = load double, ptr %2107, align 8, !tbaa !11
  %2109 = load double, ptr %42, align 8, !tbaa !11
  %2110 = fmul double %2108, %2109
  %2111 = load double, ptr %53, align 8, !tbaa !11
  %2112 = fdiv double %2110, %2111
  %2113 = load i32, ptr %8, align 4, !tbaa !9
  %2114 = sext i32 %2113 to i64
  %2115 = getelementptr inbounds [200 x double], ptr %44, i64 0, i64 %2114
  store double %2112, ptr %2115, align 8, !tbaa !11
  br label %2116

2116:                                             ; preds = %2104
  %2117 = load i32, ptr %8, align 4, !tbaa !9
  %2118 = add nsw i32 %2117, 1
  store i32 %2118, ptr %8, align 4, !tbaa !9
  br label %2100, !llvm.loop !63

2119:                                             ; preds = %2100
  %2120 = load double, ptr %59, align 8, !tbaa !11
  %2121 = load i32, ptr %19, align 4, !tbaa !9
  %2122 = sub nsw i32 %2121, 1
  %2123 = sext i32 %2122 to i64
  %2124 = getelementptr inbounds [200 x double], ptr %44, i64 0, i64 %2123
  %2125 = load double, ptr %2124, align 8, !tbaa !11
  %2126 = fsub double %2125, %2120
  store double %2126, ptr %2124, align 8, !tbaa !11
  %2127 = load i32, ptr %28, align 4, !tbaa !9
  %2128 = icmp ne i32 %2127, 0
  br i1 %2128, label %2129, label %2145

2129:                                             ; preds = %2119
  %2130 = load ptr, ptr %4, align 8, !tbaa !5
  %2131 = call i32 @qh_rand(ptr noundef %2130)
  %2132 = sitofp i32 %2131 to double
  store double %2132, ptr %55, align 8, !tbaa !11
  %2133 = load double, ptr %40, align 8, !tbaa !11
  %2134 = load double, ptr %55, align 8, !tbaa !11
  %2135 = fmul double %2133, %2134
  %2136 = load double, ptr %67, align 8, !tbaa !11
  %2137 = fdiv double %2135, %2136
  %2138 = fsub double 1.000000e+00, %2137
  %2139 = load i32, ptr %19, align 4, !tbaa !9
  %2140 = sub nsw i32 %2139, 1
  %2141 = sext i32 %2140 to i64
  %2142 = getelementptr inbounds [200 x double], ptr %44, i64 0, i64 %2141
  %2143 = load double, ptr %2142, align 8, !tbaa !11
  %2144 = fmul double %2143, %2138
  store double %2144, ptr %2142, align 8, !tbaa !11
  br label %2145

2145:                                             ; preds = %2129, %2119
  %2146 = load ptr, ptr %4, align 8, !tbaa !5
  %2147 = call i32 @qh_rand(ptr noundef %2146)
  %2148 = sitofp i32 %2147 to double
  %2149 = load double, ptr %67, align 8, !tbaa !11
  %2150 = fdiv double %2149, 2.000000e+00
  %2151 = fcmp ogt double %2148, %2150
  br i1 %2151, label %2152, label %2163

2152:                                             ; preds = %2145
  %2153 = load i32, ptr %19, align 4, !tbaa !9
  %2154 = sub nsw i32 %2153, 1
  %2155 = sext i32 %2154 to i64
  %2156 = getelementptr inbounds [200 x double], ptr %44, i64 0, i64 %2155
  %2157 = load double, ptr %2156, align 8, !tbaa !11
  %2158 = fneg double %2157
  %2159 = load i32, ptr %19, align 4, !tbaa !9
  %2160 = sub nsw i32 %2159, 1
  %2161 = sext i32 %2160 to i64
  %2162 = getelementptr inbounds [200 x double], ptr %44, i64 0, i64 %2161
  store double %2158, ptr %2162, align 8, !tbaa !11
  br label %2163

2163:                                             ; preds = %2152, %2145
  br label %2204

2164:                                             ; preds = %2070
  %2165 = load i32, ptr %28, align 4, !tbaa !9
  %2166 = icmp ne i32 %2165, 0
  br i1 %2166, label %2167, label %2203

2167:                                             ; preds = %2164
  %2168 = load i32, ptr %23, align 4, !tbaa !9
  %2169 = icmp ne i32 %2168, 0
  br i1 %2169, label %2203, label %2170

2170:                                             ; preds = %2167
  %2171 = load ptr, ptr %4, align 8, !tbaa !5
  %2172 = call i32 @qh_rand(ptr noundef %2171)
  %2173 = load i32, ptr %10, align 4, !tbaa !9
  %2174 = srem i32 %2172, %2173
  store i32 %2174, ptr %8, align 4, !tbaa !9
  %2175 = load i32, ptr %8, align 4, !tbaa !9
  %2176 = sext i32 %2175 to i64
  %2177 = getelementptr inbounds [200 x double], ptr %44, i64 0, i64 %2176
  %2178 = load double, ptr %2177, align 8, !tbaa !11
  %2179 = fcmp olt double %2178, 0.000000e+00
  br i1 %2179, label %2180, label %2191

2180:                                             ; preds = %2170
  %2181 = load i32, ptr %8, align 4, !tbaa !9
  %2182 = sext i32 %2181 to i64
  %2183 = getelementptr inbounds [200 x double], ptr %44, i64 0, i64 %2182
  %2184 = load double, ptr %2183, align 8, !tbaa !11
  %2185 = load double, ptr %40, align 8, !tbaa !11
  %2186 = fneg double %2184
  %2187 = call double @llvm.fmuladd.f64(double %2186, double %2185, double -1.000000e+00)
  %2188 = load i32, ptr %8, align 4, !tbaa !9
  %2189 = sext i32 %2188 to i64
  %2190 = getelementptr inbounds [200 x double], ptr %44, i64 0, i64 %2189
  store double %2187, ptr %2190, align 8, !tbaa !11
  br label %2202

2191:                                             ; preds = %2170
  %2192 = load i32, ptr %8, align 4, !tbaa !9
  %2193 = sext i32 %2192 to i64
  %2194 = getelementptr inbounds [200 x double], ptr %44, i64 0, i64 %2193
  %2195 = load double, ptr %2194, align 8, !tbaa !11
  %2196 = load double, ptr %40, align 8, !tbaa !11
  %2197 = fneg double %2195
  %2198 = call double @llvm.fmuladd.f64(double %2197, double %2196, double 1.000000e+00)
  %2199 = load i32, ptr %8, align 4, !tbaa !9
  %2200 = sext i32 %2199 to i64
  %2201 = getelementptr inbounds [200 x double], ptr %44, i64 0, i64 %2200
  store double %2198, ptr %2201, align 8, !tbaa !11
  br label %2202

2202:                                             ; preds = %2191, %2180
  br label %2203

2203:                                             ; preds = %2202, %2167, %2164
  br label %2204

2204:                                             ; preds = %2203, %2163
  br label %2205

2205:                                             ; preds = %2204, %2057
  br label %2206

2206:                                             ; preds = %2205, %2050
  store i32 0, ptr %9, align 4, !tbaa !9
  br label %2207

2207:                                             ; preds = %2221, %2206
  %2208 = load i32, ptr %9, align 4, !tbaa !9
  %2209 = load i32, ptr %19, align 4, !tbaa !9
  %2210 = icmp slt i32 %2208, %2209
  br i1 %2210, label %2211, label %2224

2211:                                             ; preds = %2207
  %2212 = load i32, ptr %9, align 4, !tbaa !9
  %2213 = sext i32 %2212 to i64
  %2214 = getelementptr inbounds [200 x double], ptr %44, i64 0, i64 %2213
  %2215 = load double, ptr %2214, align 8, !tbaa !11
  %2216 = load double, ptr %66, align 8, !tbaa !11
  %2217 = fmul double %2215, %2216
  %2218 = load i32, ptr %9, align 4, !tbaa !9
  %2219 = sext i32 %2218 to i64
  %2220 = getelementptr inbounds [200 x double], ptr %44, i64 0, i64 %2219
  store double %2217, ptr %2220, align 8, !tbaa !11
  br label %2221

2221:                                             ; preds = %2211
  %2222 = load i32, ptr %9, align 4, !tbaa !9
  %2223 = add nsw i32 %2222, 1
  store i32 %2223, ptr %9, align 4, !tbaa !9
  br label %2207, !llvm.loop !64

2224:                                             ; preds = %2207
  %2225 = load ptr, ptr %4, align 8, !tbaa !5
  %2226 = load i32, ptr %25, align 4, !tbaa !9
  %2227 = getelementptr inbounds [200 x double], ptr %44, i64 0, i64 0
  %2228 = load i32, ptr %19, align 4, !tbaa !9
  call void @qh_outcoord(ptr noundef %2225, i32 noundef %2226, ptr noundef %2227, i32 noundef %2228)
  %2229 = load i32, ptr %11, align 4, !tbaa !9
  %2230 = add nsw i32 %2229, 1
  store i32 %2230, ptr %11, align 4, !tbaa !9
  %2231 = load i32, ptr %12, align 4, !tbaa !9
  %2232 = icmp slt i32 %2229, %2231
  br i1 %2232, label %2233, label %2240

2233:                                             ; preds = %2224
  %2234 = load ptr, ptr %4, align 8, !tbaa !5
  %2235 = load i32, ptr %13, align 4, !tbaa !9
  %2236 = load double, ptr %43, align 8, !tbaa !11
  %2237 = load i32, ptr %25, align 4, !tbaa !9
  %2238 = getelementptr inbounds [200 x double], ptr %44, i64 0, i64 0
  %2239 = load i32, ptr %19, align 4, !tbaa !9
  call void @qh_outcoincident(ptr noundef %2234, i32 noundef %2235, double noundef %2236, i32 noundef %2237, ptr noundef %2238, i32 noundef %2239)
  br label %2240

2240:                                             ; preds = %2233, %2224
  br label %2241

2241:                                             ; preds = %2240
  %2242 = load i32, ptr %7, align 4, !tbaa !9
  %2243 = add nsw i32 %2242, 1
  store i32 %2243, ptr %7, align 4, !tbaa !9
  br label %1739, !llvm.loop !65

2244:                                             ; preds = %1739
  br label %2245

2245:                                             ; preds = %2244, %1700
  br label %2246

2246:                                             ; preds = %2245, %1595
  br label %2247

2247:                                             ; preds = %2246, %1520
  br label %2248

2248:                                             ; preds = %2247, %1367
  %2249 = load i32, ptr %29, align 4, !tbaa !9
  %2250 = icmp ne i32 %2249, 0
  br i1 %2250, label %2251, label %2293

2251:                                             ; preds = %2248
  store i32 0, ptr %8, align 4, !tbaa !9
  br label %2252

2252:                                             ; preds = %2289, %2251
  %2253 = load i32, ptr %8, align 4, !tbaa !9
  %2254 = load i32, ptr %14, align 4, !tbaa !9
  %2255 = icmp slt i32 %2253, %2254
  br i1 %2255, label %2256, label %2292

2256:                                             ; preds = %2252
  %2257 = load i32, ptr %25, align 4, !tbaa !9
  %2258 = icmp ne i32 %2257, 0
  br i1 %2258, label %2259, label %2261

2259:                                             ; preds = %2256
  %2260 = load ptr, ptr %4, align 8, !tbaa !5
  call void @qh_out1(ptr noundef %2260, double noundef 1.000000e+00)
  br label %2261

2261:                                             ; preds = %2259, %2256
  %2262 = load i32, ptr %19, align 4, !tbaa !9
  %2263 = sub nsw i32 %2262, 1
  store i32 %2263, ptr %9, align 4, !tbaa !9
  br label %2264

2264:                                             ; preds = %2281, %2261
  %2265 = load i32, ptr %9, align 4, !tbaa !9
  %2266 = icmp sge i32 %2265, 0
  br i1 %2266, label %2267, label %2284

2267:                                             ; preds = %2264
  %2268 = load i32, ptr %8, align 4, !tbaa !9
  %2269 = load i32, ptr %9, align 4, !tbaa !9
  %2270 = shl i32 1, %2269
  %2271 = and i32 %2268, %2270
  %2272 = icmp ne i32 %2271, 0
  br i1 %2272, label %2273, label %2276

2273:                                             ; preds = %2267
  %2274 = load ptr, ptr %4, align 8, !tbaa !5
  %2275 = load double, ptr %64, align 8, !tbaa !11
  call void @qh_out1(ptr noundef %2274, double noundef %2275)
  br label %2280

2276:                                             ; preds = %2267
  %2277 = load ptr, ptr %4, align 8, !tbaa !5
  %2278 = load double, ptr %64, align 8, !tbaa !11
  %2279 = fneg double %2278
  call void @qh_out1(ptr noundef %2277, double noundef %2279)
  br label %2280

2280:                                             ; preds = %2276, %2273
  br label %2281

2281:                                             ; preds = %2280
  %2282 = load i32, ptr %9, align 4, !tbaa !9
  %2283 = add nsw i32 %2282, -1
  store i32 %2283, ptr %9, align 4, !tbaa !9
  br label %2264, !llvm.loop !66

2284:                                             ; preds = %2264
  %2285 = load ptr, ptr %4, align 8, !tbaa !5
  %2286 = load ptr, ptr %4, align 8, !tbaa !5
  %2287 = getelementptr inbounds %struct.qhT, ptr %2286, i32 0, i32 157
  %2288 = load ptr, ptr %2287, align 8, !tbaa !31
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %2285, ptr noundef %2288, i32 noundef 9400, ptr noundef @.str.23)
  br label %2289

2289:                                             ; preds = %2284
  %2290 = load i32, ptr %8, align 4, !tbaa !9
  %2291 = add nsw i32 %2290, 1
  store i32 %2291, ptr %8, align 4, !tbaa !9
  br label %2252, !llvm.loop !67

2292:                                             ; preds = %2252
  br label %2293

2293:                                             ; preds = %2292, %2248
  %2294 = load i32, ptr %33, align 4, !tbaa !9
  %2295 = icmp ne i32 %2294, 0
  br i1 %2295, label %2296, label %2344

2296:                                             ; preds = %2293
  store i32 0, ptr %8, align 4, !tbaa !9
  br label %2297

2297:                                             ; preds = %2340, %2296
  %2298 = load i32, ptr %8, align 4, !tbaa !9
  %2299 = load i32, ptr %15, align 4, !tbaa !9
  %2300 = icmp slt i32 %2298, %2299
  br i1 %2300, label %2301, label %2343

2301:                                             ; preds = %2297
  %2302 = load i32, ptr %25, align 4, !tbaa !9
  %2303 = icmp ne i32 %2302, 0
  br i1 %2303, label %2304, label %2306

2304:                                             ; preds = %2301
  %2305 = load ptr, ptr %4, align 8, !tbaa !5
  call void @qh_out1(ptr noundef %2305, double noundef 1.000000e+00)
  br label %2306

2306:                                             ; preds = %2304, %2301
  %2307 = load i32, ptr %19, align 4, !tbaa !9
  %2308 = sub nsw i32 %2307, 1
  store i32 %2308, ptr %9, align 4, !tbaa !9
  br label %2309

2309:                                             ; preds = %2332, %2306
  %2310 = load i32, ptr %9, align 4, !tbaa !9
  %2311 = icmp sge i32 %2310, 0
  br i1 %2311, label %2312, label %2335

2312:                                             ; preds = %2309
  %2313 = load i32, ptr %8, align 4, !tbaa !9
  %2314 = sdiv i32 %2313, 2
  %2315 = load i32, ptr %9, align 4, !tbaa !9
  %2316 = icmp ne i32 %2314, %2315
  br i1 %2316, label %2317, label %2319

2317:                                             ; preds = %2312
  %2318 = load ptr, ptr %4, align 8, !tbaa !5
  call void @qh_out1(ptr noundef %2318, double noundef 0.000000e+00)
  br label %2331

2319:                                             ; preds = %2312
  %2320 = load i32, ptr %8, align 4, !tbaa !9
  %2321 = and i32 %2320, 1
  %2322 = icmp ne i32 %2321, 0
  br i1 %2322, label %2323, label %2326

2323:                                             ; preds = %2319
  %2324 = load ptr, ptr %4, align 8, !tbaa !5
  %2325 = load double, ptr %65, align 8, !tbaa !11
  call void @qh_out1(ptr noundef %2324, double noundef %2325)
  br label %2330

2326:                                             ; preds = %2319
  %2327 = load ptr, ptr %4, align 8, !tbaa !5
  %2328 = load double, ptr %65, align 8, !tbaa !11
  %2329 = fneg double %2328
  call void @qh_out1(ptr noundef %2327, double noundef %2329)
  br label %2330

2330:                                             ; preds = %2326, %2323
  br label %2331

2331:                                             ; preds = %2330, %2317
  br label %2332

2332:                                             ; preds = %2331
  %2333 = load i32, ptr %9, align 4, !tbaa !9
  %2334 = add nsw i32 %2333, -1
  store i32 %2334, ptr %9, align 4, !tbaa !9
  br label %2309, !llvm.loop !68

2335:                                             ; preds = %2309
  %2336 = load ptr, ptr %4, align 8, !tbaa !5
  %2337 = load ptr, ptr %4, align 8, !tbaa !5
  %2338 = getelementptr inbounds %struct.qhT, ptr %2337, i32 0, i32 157
  %2339 = load ptr, ptr %2338, align 8, !tbaa !31
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %2336, ptr noundef %2339, i32 noundef 9401, ptr noundef @.str.23)
  br label %2340

2340:                                             ; preds = %2335
  %2341 = load i32, ptr %8, align 4, !tbaa !9
  %2342 = add nsw i32 %2341, 1
  store i32 %2342, ptr %8, align 4, !tbaa !9
  br label %2297, !llvm.loop !69

2343:                                             ; preds = %2297
  br label %2344

2344:                                             ; preds = %2343, %2293
  %2345 = load i32, ptr %25, align 4, !tbaa !9
  %2346 = icmp ne i32 %2345, 0
  br i1 %2346, label %2347, label %2352

2347:                                             ; preds = %2344
  %2348 = load ptr, ptr %4, align 8, !tbaa !5
  %2349 = load ptr, ptr %4, align 8, !tbaa !5
  %2350 = getelementptr inbounds %struct.qhT, ptr %2349, i32 0, i32 157
  %2351 = load ptr, ptr %2350, align 8, !tbaa !31
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %2348, ptr noundef %2351, i32 noundef 9402, ptr noundef @.str.27)
  br label %2352

2352:                                             ; preds = %2347, %2344
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #7
  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 50, ptr %69) #7
  call void @llvm.lifetime.end.p0(i64 250, ptr %68) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #7
  call void @llvm.lifetime.end.p0(i64 8, 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 800, ptr %52) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #7
  call void @llvm.lifetime.end.p0(i64 8, 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 1600, ptr %44) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #7
  call void @llvm.lifetime.end.p0(i64 8, 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 4, ptr %39) #7
  call void @llvm.lifetime.end.p0(i64 4, 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
  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, ptr noundef, i32 noundef, ptr noundef, ...) #5

; Function Attrs: nounwind uwtable
declare dso_local void @qh_errexit_rbox(ptr noundef, 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(ptr noundef, i32 noundef) #5

; Function Attrs: nounwind uwtable
declare dso_local void @qh_out1(ptr noundef, 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(ptr noundef) #5

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

; Function Attrs: nounwind uwtable
declare dso_local void @qh_outcoincident(ptr noundef, 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(ptr noundef, 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(ptr noundef, 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 3232}
!23 = !{!"qhT", !10, i64 0, !10, i64 4, !10, i64 8, !10, i64 12, !10, i64 16, !10, i64 20, !12, i64 24, !10, i64 32, !10, i64 36, !10, i64 40, !10, i64 44, !10, i64 48, !10, i64 52, !10, i64 56, !10, i64 60, !12, i64 64, !12, i64 72, !10, i64 80, !10, i64 84, !10, i64 88, !10, i64 92, !10, i64 96, !10, i64 100, !6, i64 104, !10, i64 112, !10, i64 116, !6, i64 120, !10, i64 128, !10, i64 132, !10, i64 136, !10, i64 140, !10, i64 144, !10, i64 148, !10, i64 152, !12, i64 160, !12, i64 168, !10, i64 176, !10, i64 180, !10, i64 184, !10, i64 188, !12, i64 192, !12, i64 200, !10, i64 208, !10, i64 212, !12, i64 216, !10, i64 224, !10, i64 228, !10, i64 232, !10, i64 236, !10, i64 240, !10, i64 244, !10, i64 248, !10, i64 252, !10, i64 256, !10, i64 260, !10, i64 264, !10, i64 268, !10, i64 272, !10, i64 276, !10, i64 280, !10, i64 284, !10, i64 288, !10, i64 292, !10, i64 296, !7, i64 300, !10, i64 416, !10, i64 420, !10, i64 424, !10, i64 428, !10, i64 432, !10, i64 436, !10, i64 440, !10, i64 444, !12, i64 448, !12, i64 456, !12, i64 464, !10, i64 472, !10, i64 476, !10, i64 480, !10, i64 484, !10, i64 488, !10, i64 492, !10, i64 496, !10, i64 500, !10, i64 504, !10, i64 508, !10, i64 512, !10, i64 516, !10, i64 520, !10, i64 524, !10, i64 528, !10, i64 532, !10, i64 536, !10, i64 540, !10, i64 544, !12, i64 552, !10, i64 560, !10, i64 564, !10, i64 568, !10, i64 572, !10, i64 576, !10, i64 580, !10, i64 584, !10, i64 588, !12, i64 592, !10, i64 600, !6, i64 608, !6, i64 616, !10, i64 624, !10, i64 628, !10, i64 632, !10, i64 636, !10, i64 640, !6, i64 648, !10, i64 656, !6, i64 664, !10, i64 672, !7, i64 676, !10, i64 932, !7, i64 936, !7, i64 1192, !10, i64 1704, !10, i64 1708, !10, i64 1712, !10, i64 1716, !10, i64 1720, !10, i64 1724, !6, i64 1728, !6, i64 1736, !6, i64 1744, !6, i64 1752, !12, i64 1760, !12, i64 1768, !12, i64 1776, !12, i64 1784, !12, i64 1792, !12, i64 1800, !12, i64 1808, !12, i64 1816, !12, i64 1824, !12, i64 1832, !12, i64 1840, !12, i64 1848, !12, i64 1856, !12, i64 1864, !6, i64 1872, !12, i64 1880, !12, i64 1888, !12, i64 1896, !12, i64 1904, !10, i64 1912, !7, i64 1916, !7, i64 1928, !7, i64 2128, !7, i64 2168, !7, i64 2368, !6, i64 2408, !6, i64 2416, !6, i64 2424, !6, i64 2432, !10, i64 2440, !10, i64 2444, !10, i64 2448, !6, i64 2456, !6, i64 2464, !6, i64 2472, !6, i64 2480, !6, i64 2488, !10, i64 2496, !10, i64 2500, !6, i64 2504, !10, i64 2512, !6, i64 2520, !10, i64 2528, !6, i64 2536, !6, i64 2544, !6, i64 2552, !6, i64 2560, !10, i64 2568, !10, i64 2572, !10, i64 2576, !10, i64 2580, !10, i64 2584, !10, i64 2588, !10, i64 2592, !10, i64 2596, !24, i64 2600, !10, i64 2608, !10, i64 2612, !10, i64 2616, !10, i64 2620, !10, i64 2624, !6, i64 2632, !6, i64 2640, !10, i64 2648, !10, i64 2652, !10, i64 2656, !12, i64 2664, !10, i64 2672, !12, i64 2680, !12, i64 2688, !12, i64 2696, !10, i64 2704, !10, i64 2708, !10, i64 2712, !10, i64 2716, !10, i64 2720, !12, i64 2728, !12, i64 2736, !10, i64 2744, !10, i64 2748, !10, i64 2752, !10, i64 2756, !10, i64 2760, !10, i64 2764, !12, i64 2768, !12, i64 2776, !10, i64 2784, !10, i64 2788, !10, i64 2792, !10, i64 2796, !6, i64 2800, !6, i64 2808, !6, i64 2816, !6, i64 2824, !6, i64 2832, !6, i64 2840, !6, i64 2848, !6, i64 2856, !6, i64 2864, !10, i64 2872, !6, i64 2880, !6, i64 2888, !10, i64 2896, !10, i64 2900, !10, i64 2904, !6, i64 2912, !12, i64 2920, !12, i64 2928, !12, i64 2936, !12, i64 2944, !10, i64 2952, !10, i64 2956, !10, i64 2960, !10, i64 2964, !10, i64 2968, !10, i64 2972, !6, i64 2976, !10, i64 2984, !10, i64 2988, !7, i64 2992, !7, i64 3192, !10, i64 3232, !12, i64 3240, !6, i64 3248, !6, i64 3256, !6, i64 3264, !25, i64 3272, !26, i64 3424}
!24 = !{!"long", !7, i64 0}
!25 = !{!"qhmemT", !10, i64 0, !10, i64 4, !10, i64 8, !10, i64 12, !10, i64 16, !10, i64 20, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48, !6, i64 56, !10, i64 64, !6, i64 72, !6, i64 80, !10, i64 88, !10, i64 92, !10, i64 96, !10, i64 100, !10, i64 104, !10, i64 108, !10, i64 112, !10, i64 116, !10, i64 120, !10, i64 124, !10, i64 128, !10, i64 132, !10, i64 136, !10, i64 140, !10, i64 144}
!26 = !{!"qhstatT", !7, i64 0, !7, i64 1992, !7, i64 2256, !7, i64 4248, !7, i64 4746, !7, i64 4995, !7, i64 5248, !10, i64 5320, !10, i64 5324, !10, i64 5328, !10, i64 5332, !12, i64 5336}
!27 = !{!23, !6, i64 2424}
!28 = !{!23, !12, i64 3240}
!29 = distinct !{!29, !17}
!30 = distinct !{!30, !17}
!31 = !{!23, !6, i64 2416}
!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}
!67 = distinct !{!67, !17}
!68 = distinct !{!68, !17}
!69 = distinct !{!69, !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"

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

; Function Attrs: 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 noundef %0, ptr nocapture noundef readonly %1, ptr nocapture noundef %2) local_unnamed_addr #1 {
  %4 = alloca [200 x double], align 16
  %5 = alloca [200 x i32], align 16
  %6 = alloca [250 x i8], align 16
  %7 = alloca [50 x i8], align 16
  %8 = alloca ptr, align 8
  %9 = alloca i64, align 8
  call void @llvm.lifetime.start.p0(i64 1600, ptr nonnull %4) #13
  call void @llvm.lifetime.start.p0(i64 800, ptr nonnull %5) #13
  call void @llvm.lifetime.start.p0(i64 250, ptr nonnull %6) #13
  call void @llvm.lifetime.start.p0(i64 50, ptr nonnull %7) #13
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) #13
  store ptr %6, ptr %8, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #13
  store i8 0, ptr %6, align 16, !tbaa !9
  %10 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %6) #14
  %11 = sub i64 199, %10
  %12 = call ptr @strncat(ptr noundef nonnull dereferenceable(1) %6, ptr noundef %1, i64 noundef %11) #13
  %13 = load i8, ptr %6, align 16, !tbaa !9
  %.not1064 = icmp eq i8 %13, 0
  br i1 %.not1064, label %.thread1753, label %.lr.ph

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

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

23:                                               ; preds = %15
  %24 = getelementptr inbounds i8, ptr %17, i64 1
  store ptr %24, ptr %8, align 8, !tbaa !5
  %25 = load i8, ptr %24, align 1, !tbaa !9
  %.not = icmp eq i8 %25, 0
  br i1 %.not, label %.thread1753, label %15, !llvm.loop !12

.thread1753:                                      ; preds = %23, %3
  %26 = getelementptr inbounds i8, ptr %0, i64 3232
  %27 = load i32, ptr %26, align 8, !tbaa !14
  %28 = icmp eq i32 %27, 0
  %.27641646 = select i1 %28, double 5.000000e-01, double 1.000000e+06
  br label %256

.preheader1056.lr.ph.lr.ph:                       ; preds = %15
  %29 = getelementptr inbounds i8, ptr %0, i64 3240
  %30 = getelementptr inbounds i8, ptr %0, i64 2424
  %31 = getelementptr inbounds i8, ptr %0, i64 3232
  %32 = tail call ptr @__ctype_b_loc() #15
  br label %.preheader1056.lr.ph

.preheader1056.lr.ph:                             ; preds = %.preheader1056.lr.ph.lr.ph, %.outer
  %33 = phi i8 [ %16, %.preheader1056.lr.ph.lr.ph ], [ %222, %.outer ]
  %.promoted10661565 = phi ptr [ %17, %.preheader1056.lr.ph.lr.ph ], [ %223, %.outer ]
  %.0747.ph1210 = phi ptr [ null, %.preheader1056.lr.ph.lr.ph ], [ %.2749, %.outer ]
  %.0762.ph1209 = phi double [ 5.000000e-01, %.preheader1056.lr.ph.lr.ph ], [ %.1763, %.outer ]
  %.0765.ph1208 = phi double [ 0.000000e+00, %.preheader1056.lr.ph.lr.ph ], [ %.1766, %.outer ]
  %.0768.ph1207 = phi double [ 0.000000e+00, %.preheader1056.lr.ph.lr.ph ], [ %.1769, %.outer ]
  %.0804.ph1206 = phi double [ 5.000000e+00, %.preheader1056.lr.ph.lr.ph ], [ %.2806, %.outer ]
  %.0807.ph1205 = phi double [ 4.000000e+00, %.preheader1056.lr.ph.lr.ph ], [ %.2809, %.outer ]
  %.0810.ph1204 = phi double [ 3.000000e+00, %.preheader1056.lr.ph.lr.ph ], [ %.2812, %.outer ]
  %.0817.ph1203 = phi double [ 0.000000e+00, %.preheader1056.lr.ph.lr.ph ], [ %.2819, %.outer ]
  %.0820.ph1202 = phi double [ 0.000000e+00, %.preheader1056.lr.ph.lr.ph ], [ %.3823, %.outer ]
  %.0825.ph1201 = phi double [ 0.000000e+00, %.preheader1056.lr.ph.lr.ph ], [ %.2827, %.outer ]
  %.0834.ph1200 = phi double [ 0.000000e+00, %.preheader1056.lr.ph.lr.ph ], [ %.1835, %.outer ]
  %.0836.ph1199 = phi i32 [ 0, %.preheader1056.lr.ph.lr.ph ], [ %.1837, %.outer ]
  %.0838.ph1198 = phi i32 [ 0, %.preheader1056.lr.ph.lr.ph ], [ %.1839, %.outer ]
  %.0840.ph1197 = phi i32 [ 0, %.preheader1056.lr.ph.lr.ph ], [ %.1841, %.outer ]
  %.0842.ph1196 = phi i32 [ 0, %.preheader1056.lr.ph.lr.ph ], [ %.1843, %.outer ]
  %.0844.ph1195 = phi i32 [ 0, %.preheader1056.lr.ph.lr.ph ], [ %.1845, %.outer ]
  %.0846.ph1194 = phi i32 [ 0, %.preheader1056.lr.ph.lr.ph ], [ %.1847, %.outer ]
  %.0848.ph1193 = phi i32 [ 0, %.preheader1056.lr.ph.lr.ph ], [ %.1849, %.outer ]
  %.0850.ph1192 = phi i32 [ 0, %.preheader1056.lr.ph.lr.ph ], [ %.1851, %.outer ]
  %.0852.ph1191 = phi i32 [ 0, %.preheader1056.lr.ph.lr.ph ], [ %.1853, %.outer ]
  %.0854.ph1190 = phi i32 [ 0, %.preheader1056.lr.ph.lr.ph ], [ %.1855, %.outer ]
  %.0861.ph1189 = phi i32 [ 0, %.preheader1056.lr.ph.lr.ph ], [ %.1862, %.outer ]
  %.0863.ph1188 = phi i32 [ 0, %.preheader1056.lr.ph.lr.ph ], [ %.1864, %.outer ]
  %.0865.ph1187 = phi i32 [ 0, %.preheader1056.lr.ph.lr.ph ], [ %.1866, %.outer ]
  %.0868.ph1186 = phi i32 [ 0, %.preheader1056.lr.ph.lr.ph ], [ %.1869, %.outer ]
  %.0870.ph1185 = phi i32 [ 0, %.preheader1056.lr.ph.lr.ph ], [ %.1871, %.outer ]
  %.0872.ph1184 = phi i32 [ 0, %.preheader1056.lr.ph.lr.ph ], [ %.1873, %.outer ]
  %.0874.ph1183 = phi i32 [ 0, %.preheader1056.lr.ph.lr.ph ], [ %.1875, %.outer ]
  %.0877.ph1182 = phi i32 [ 0, %.preheader1056.lr.ph.lr.ph ], [ %.1878, %.outer ]
  %.0880.ph1181 = phi i32 [ 0, %.preheader1056.lr.ph.lr.ph ], [ %.08801070, %.outer ]
  %.0883.ph1180 = phi i32 [ 3, %.preheader1056.lr.ph.lr.ph ], [ %.1884, %.outer ]
  %.0888.ph1179 = phi i32 [ 0, %.preheader1056.lr.ph.lr.ph ], [ %.1889, %.outer ]
  %.0894.ph1178 = phi i32 [ 0, %.preheader1056.lr.ph.lr.ph ], [ %.2896, %.outer ]
  %.0897.ph1177 = phi i32 [ 0, %.preheader1056.lr.ph.lr.ph ], [ %.2899, %.outer ]
  br label %.lr.ph1068

.lr.ph1068:                                       ; preds = %56, %.preheader1056.lr.ph
  %34 = phi i8 [ %33, %.preheader1056.lr.ph ], [ %59, %56 ]
  %.promoted1066 = phi ptr [ %.promoted10661565, %.preheader1056.lr.ph ], [ %58, %56 ]
  %.08801070 = phi i32 [ %.0880.ph1181, %.preheader1056.lr.ph ], [ %57, %56 ]
  br label %35

35:                                               ; preds = %.lr.ph1068, %43
  %36 = phi i8 [ %34, %.lr.ph1068 ], [ %45, %43 ]
  %37 = phi ptr [ %.promoted1066, %.lr.ph1068 ], [ %44, %43 ]
  %38 = load ptr, ptr %32, align 8, !tbaa !5
  %39 = sext i8 %36 to i64
  %40 = getelementptr inbounds i16, ptr %38, i64 %39
  %41 = load i16, ptr %40, align 2, !tbaa !10
  %42 = and i16 %41, 8192
  %.not920 = icmp eq i16 %42, 0
  br i1 %.not920, label %.critedge2, label %43

43:                                               ; preds = %35
  %44 = getelementptr inbounds i8, ptr %37, i64 1
  store ptr %44, ptr %8, align 8, !tbaa !5
  %45 = load i8, ptr %44, align 1, !tbaa !9
  %.not919 = icmp eq i8 %45, 0
  br i1 %.not919, label %.outer._crit_edge, label %35, !llvm.loop !21

.critedge2:                                       ; preds = %35
  %46 = icmp eq i8 %36, 45
  br i1 %46, label %.critedge2.thread, label %.critedge2.thread.thread1586

.critedge2.thread:                                ; preds = %.critedge2
  %47 = getelementptr inbounds i8, ptr %37, i64 1
  store ptr %47, ptr %8, align 8, !tbaa !5
  %.pre = load i8, ptr %47, align 1, !tbaa !9
  %.not921 = icmp eq i8 %.pre, 0
  br i1 %.not921, label %.outer._crit_edge, label %.critedge2.thread.thread1586

.critedge2.thread.thread1586:                     ; preds = %.critedge2, %.critedge2.thread
  %48 = phi ptr [ %47, %.critedge2.thread ], [ %37, %.critedge2 ]
  %49 = phi i8 [ %.pre, %.critedge2.thread ], [ %36, %.critedge2 ]
  %50 = tail call ptr @__ctype_b_loc() #15
  %51 = load ptr, ptr %50, align 8, !tbaa !5
  %52 = sext i8 %49 to i64
  %53 = getelementptr inbounds i16, ptr %51, i64 %52
  %54 = load i16, ptr %53, align 2, !tbaa !10
  %55 = and i16 %54, 2048
  %.not969 = icmp eq i16 %55, 0
  br i1 %.not969, label %60, label %56

56:                                               ; preds = %.critedge2.thread.thread1586
  %57 = call i32 @qh_strtol(ptr noundef nonnull %48, ptr noundef nonnull %8) #13
  %58 = load ptr, ptr %8, align 8, !tbaa !5
  %59 = load i8, ptr %58, align 1, !tbaa !9
  %.not918 = icmp eq i8 %59, 0
  br i1 %.not918, label %.outer._crit_edge, label %.lr.ph1068, !llvm.loop !22

60:                                               ; preds = %.critedge2.thread.thread1586
  %61 = getelementptr inbounds i8, ptr %48, i64 1
  store ptr %61, ptr %8, align 8, !tbaa !5
  %62 = load i8, ptr %48, align 1, !tbaa !9
  switch i8 %62, label %210 [
    i8 99, label %.preheader1054
    i8 100, label %.preheader1055
    i8 104, label %.critedge9
    i8 108, label %87
    i8 110, label %88
    i8 114, label %89
    i8 115, label %90
    i8 116, label %91
    i8 120, label %100
    i8 121, label %101
    i8 122, label %102
    i8 66, label %103
    i8 67, label %105
    i8 68, label %136
    i8 71, label %141
    i8 76, label %150
    i8 77, label %159
    i8 79, label %184
    i8 80, label %186
    i8 87, label %199
    i8 90, label %201
  ]

.preheader1055:                                   ; preds = %60
  %63 = load ptr, ptr %50, align 8, !tbaa !5
  br label %76

.preheader1054:                                   ; preds = %60
  %64 = load ptr, ptr %50, align 8, !tbaa !5
  br label %65

65:                                               ; preds = %65, %.preheader1054
  %.0750 = phi ptr [ %71, %65 ], [ %61, %.preheader1054 ]
  %66 = load i8, ptr %.0750, align 1, !tbaa !9
  %67 = sext i8 %66 to i64
  %68 = getelementptr inbounds i16, ptr %64, i64 %67
  %69 = load i16, ptr %68, align 2, !tbaa !10
  %70 = and i16 %69, 8192
  %.not984 = icmp eq i16 %70, 0
  %71 = getelementptr inbounds i8, ptr %.0750, i64 1
  br i1 %.not984, label %72, label %65, !llvm.loop !23

72:                                               ; preds = %65
  %73 = icmp eq i8 %66, 71
  br i1 %73, label %74, label %.critedge9

74:                                               ; preds = %72
  %75 = call double @qh_strtod(ptr noundef nonnull %71, ptr noundef nonnull %8) #13
  br label %.critedge9

76:                                               ; preds = %76, %.preheader1055
  %.1751 = phi ptr [ %82, %76 ], [ %61, %.preheader1055 ]
  %77 = load i8, ptr %.1751, align 1, !tbaa !9
  %78 = sext i8 %77 to i64
  %79 = getelementptr inbounds i16, ptr %63, i64 %78
  %80 = load i16, ptr %79, align 2, !tbaa !10
  %81 = and i16 %80, 8192
  %.not983 = icmp eq i16 %81, 0
  %82 = getelementptr inbounds i8, ptr %.1751, i64 1
  br i1 %.not983, label %83, label %76, !llvm.loop !24

83:                                               ; preds = %76
  %84 = icmp eq i8 %77, 71
  br i1 %84, label %85, label %.critedge9

85:                                               ; preds = %83
  %86 = call double @qh_strtod(ptr noundef nonnull %82, ptr noundef nonnull %8) #13
  br label %.critedge9

87:                                               ; preds = %60
  br label %.critedge9

88:                                               ; preds = %60
  br label %.critedge9

89:                                               ; preds = %60
  br label %.critedge9

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

91:                                               ; preds = %60
  %92 = load ptr, ptr %50, align 8, !tbaa !5
  %93 = load i8, ptr %61, align 1, !tbaa !9
  %94 = sext i8 %93 to i64
  %95 = getelementptr inbounds i16, ptr %92, i64 %94
  %96 = load i16, ptr %95, align 2, !tbaa !10
  %97 = and i16 %96, 2048
  %.not982 = icmp eq i16 %97, 0
  br i1 %.not982, label %.critedge9, label %98

98:                                               ; preds = %91
  %99 = call i32 @qh_strtol(ptr noundef nonnull %61, ptr noundef nonnull %8) #13
  br label %.critedge9

100:                                              ; preds = %60
  br label %.critedge9

101:                                              ; preds = %60
  br label %.critedge9

102:                                              ; preds = %60
  store i32 1, ptr %31, align 8, !tbaa !14
  br label %.critedge9

103:                                              ; preds = %60
  %104 = call double @qh_strtod(ptr noundef nonnull %61, ptr noundef nonnull %8) #13
  br label %.critedge9

105:                                              ; preds = %60
  %106 = load i8, ptr %61, align 1, !tbaa !9
  %.not979 = icmp eq i8 %106, 0
  br i1 %.not979, label %.thread1592.thread, label %107

107:                                              ; preds = %105
  %108 = call i32 @qh_strtol(ptr noundef nonnull %61, ptr noundef nonnull %8) #13
  %.pre1572 = load ptr, ptr %8, align 8, !tbaa !5
  %.pre1573 = load i8, ptr %.pre1572, align 1, !tbaa !9
  %109 = icmp eq i8 %.pre1573, 44
  br i1 %109, label %110, label %.thread1592

110:                                              ; preds = %107
  %111 = getelementptr inbounds i8, ptr %.pre1572, i64 1
  store ptr %111, ptr %8, align 8, !tbaa !5
  %112 = call double @qh_strtod(ptr noundef nonnull %111, ptr noundef nonnull %8) #13
  %.pre1574 = load ptr, ptr %8, align 8, !tbaa !5
  %.pre1575 = load i8, ptr %.pre1574, align 1, !tbaa !9
  %113 = icmp eq i8 %.pre1575, 44
  br i1 %113, label %114, label %.thread1592

114:                                              ; preds = %110
  %115 = getelementptr inbounds i8, ptr %.pre1574, i64 1
  store ptr %115, ptr %8, align 8, !tbaa !5
  %116 = call i32 @qh_strtol(ptr noundef nonnull %115, ptr noundef nonnull %8) #13
  %.pre1576 = load ptr, ptr %8, align 8, !tbaa !5
  %.pre1577 = load i8, ptr %.pre1576, align 1, !tbaa !9
  br label %.thread1592

.thread1592:                                      ; preds = %107, %114, %110
  %.18181596 = phi double [ %112, %114 ], [ %112, %110 ], [ %.0817.ph1203, %107 ]
  %117 = phi i8 [ %.pre1577, %114 ], [ %.pre1575, %110 ], [ %.pre1573, %107 ]
  %118 = phi ptr [ %.pre1576, %114 ], [ %.pre1574, %110 ], [ %.pre1572, %107 ]
  %.1898 = phi i32 [ %116, %114 ], [ %.0897.ph1177, %110 ], [ %.0897.ph1177, %107 ]
  %.not980 = icmp eq i8 %117, 0
  br i1 %.not980, label %.thread1592.thread, label %119

119:                                              ; preds = %.thread1592
  %120 = load ptr, ptr %50, align 8, !tbaa !5
  %121 = sext i8 %117 to i64
  %122 = getelementptr inbounds i16, ptr %120, i64 %121
  %123 = load i16, ptr %122, align 2, !tbaa !10
  %124 = and i16 %123, 8192
  %.not981 = icmp eq i16 %124, 0
  br i1 %.not981, label %125, label %.thread1592.thread

125:                                              ; preds = %119
  %126 = load ptr, ptr %30, align 8, !tbaa !25
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %0, ptr noundef %126, i32 noundef 7080, ptr noundef nonnull @.str, ptr noundef nonnull %118) #13
  call void @qh_errexit_rbox(ptr noundef %0, i32 noundef 1)
  br label %.thread1592.thread

.thread1592.thread:                               ; preds = %105, %125, %119, %.thread1592
  %.18981838 = phi i32 [ %.1898, %125 ], [ %.1898, %119 ], [ %.1898, %.thread1592 ], [ %.0897.ph1177, %105 ]
  %.1895159015951837 = phi i32 [ %108, %125 ], [ %108, %119 ], [ %108, %.thread1592 ], [ %.0894.ph1178, %105 ]
  %.181815961836 = phi double [ %.18181596, %125 ], [ %.18181596, %119 ], [ %.18181596, %.thread1592 ], [ %.0817.ph1203, %105 ]
  %127 = icmp eq i32 %.1895159015951837, 0
  br i1 %127, label %128, label %130

128:                                              ; preds = %.thread1592.thread
  %129 = load ptr, ptr %30, align 8, !tbaa !25
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %0, ptr noundef %129, i32 noundef 6268, ptr noundef nonnull @.str.1) #13
  call void @qh_errexit_rbox(ptr noundef %0, i32 noundef 1)
  br label %130

130:                                              ; preds = %128, %.thread1592.thread
  %131 = icmp slt i32 %.1895159015951837, 0
  %132 = icmp slt i32 %.18981838, 0
  %or.cond = select i1 %131, i1 true, i1 %132
  %133 = fcmp olt double %.181815961836, 0.000000e+00
  %or.cond5 = select i1 %or.cond, i1 true, i1 %133
  br i1 %or.cond5, label %134, label %.critedge9

134:                                              ; preds = %130
  %135 = load ptr, ptr %30, align 8, !tbaa !25
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %0, ptr noundef %135, i32 noundef 6269, ptr noundef nonnull @.str.2, i32 noundef %.1895159015951837, i32 noundef %.18981838, double noundef %.181815961836) #13
  call void @qh_errexit_rbox(ptr noundef %0, i32 noundef 1)
  br label %.critedge9

136:                                              ; preds = %60
  %137 = call i32 @qh_strtol(ptr noundef nonnull %61, ptr noundef nonnull %8) #13
  %138 = add i32 %137, -201
  %or.cond7 = icmp ult i32 %138, -200
  br i1 %or.cond7, label %139, label %.critedge9

139:                                              ; preds = %136
  %140 = load ptr, ptr %30, align 8, !tbaa !25
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %0, ptr noundef %140, i32 noundef 6189, ptr noundef nonnull @.str.3, i32 noundef %137, i32 noundef 200) #13
  call void @qh_errexit_rbox(ptr noundef %0, i32 noundef 1)
  br label %.critedge9

141:                                              ; preds = %60
  %142 = load ptr, ptr %50, align 8, !tbaa !5
  %143 = load i8, ptr %61, align 1, !tbaa !9
  %144 = sext i8 %143 to i64
  %145 = getelementptr inbounds i16, ptr %142, i64 %144
  %146 = load i16, ptr %145, align 2, !tbaa !10
  %147 = and i16 %146, 2048
  %.not978 = icmp eq i16 %147, 0
  br i1 %.not978, label %.critedge9, label %148

148:                                              ; preds = %141
  %149 = call double @qh_strtod(ptr noundef nonnull %61, ptr noundef nonnull %8) #13
  br label %.critedge9

150:                                              ; preds = %60
  %151 = load ptr, ptr %50, align 8, !tbaa !5
  %152 = load i8, ptr %61, align 1, !tbaa !9
  %153 = sext i8 %152 to i64
  %154 = getelementptr inbounds i16, ptr %151, i64 %153
  %155 = load i16, ptr %154, align 2, !tbaa !10
  %156 = and i16 %155, 2048
  %.not977 = icmp eq i16 %156, 0
  br i1 %.not977, label %.critedge9, label %157

157:                                              ; preds = %150
  %158 = call double @qh_strtod(ptr noundef nonnull %61, ptr noundef nonnull %8) #13
  br label %.critedge9

159:                                              ; preds = %60
  %160 = load i8, ptr %61, align 1, !tbaa !9
  %.not974 = icmp eq i8 %160, 0
  br i1 %.not974, label %.thread1603, label %161

161:                                              ; preds = %159
  %162 = call double @qh_strtod(ptr noundef nonnull %61, ptr noundef nonnull %8) #13
  %.pre1566 = load ptr, ptr %8, align 8, !tbaa !5
  %.pre1567 = load i8, ptr %.pre1566, align 1, !tbaa !9
  %163 = icmp eq i8 %.pre1567, 44
  br i1 %163, label %164, label %.thread1603

164:                                              ; preds = %161
  %165 = getelementptr inbounds i8, ptr %.pre1566, i64 1
  store ptr %165, ptr %8, align 8, !tbaa !5
  %166 = call double @qh_strtod(ptr noundef nonnull %165, ptr noundef nonnull %8) #13
  %.pre1568 = load ptr, ptr %8, align 8, !tbaa !5
  %.pre1569 = load i8, ptr %.pre1568, align 1, !tbaa !9
  %167 = icmp eq i8 %.pre1569, 44
  br i1 %167, label %168, label %.thread1603

168:                                              ; preds = %164
  %169 = getelementptr inbounds i8, ptr %.pre1568, i64 1
  store ptr %169, ptr %8, align 8, !tbaa !5
  %170 = call double @qh_strtod(ptr noundef nonnull %169, ptr noundef nonnull %8) #13
  %.pre1570 = load ptr, ptr %8, align 8, !tbaa !5
  %.pre1571 = load i8, ptr %.pre1570, align 1, !tbaa !9
  br label %174

.thread1603:                                      ; preds = %159, %161, %164
  %.18111608 = phi double [ %166, %164 ], [ 0.000000e+00, %161 ], [ 0.000000e+00, %159 ]
  %171 = phi i8 [ %.pre1569, %164 ], [ %.pre1567, %161 ], [ 0, %159 ]
  %.180815991606 = phi double [ %162, %164 ], [ %162, %161 ], [ %.0807.ph1205, %159 ]
  %172 = fmul double %.18111608, %.18111608
  %173 = call double @llvm.fmuladd.f64(double %.180815991606, double %.180815991606, double %172)
  %sqrt = call double @llvm.sqrt.f64(double %173)
  br label %174

174:                                              ; preds = %.thread1603, %168
  %.18111609 = phi double [ %166, %168 ], [ %.18111608, %.thread1603 ]
  %.180815991607 = phi double [ %162, %168 ], [ %.180815991606, %.thread1603 ]
  %175 = phi i8 [ %.pre1571, %168 ], [ %171, %.thread1603 ]
  %.1805 = phi double [ %170, %168 ], [ %sqrt, %.thread1603 ]
  %.not975 = icmp eq i8 %175, 0
  br i1 %.not975, label %.critedge9, label %176

176:                                              ; preds = %174
  %177 = load ptr, ptr %50, align 8, !tbaa !5
  %178 = sext i8 %175 to i64
  %179 = getelementptr inbounds i16, ptr %177, i64 %178
  %180 = load i16, ptr %179, align 2, !tbaa !10
  %181 = and i16 %180, 8192
  %.not976 = icmp eq i16 %181, 0
  br i1 %.not976, label %182, label %.critedge9

182:                                              ; preds = %176
  %183 = load ptr, ptr %30, align 8, !tbaa !25
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %0, ptr noundef %183, i32 noundef 7069, ptr noundef nonnull @.str.4) #13
  br label %.critedge9

184:                                              ; preds = %60
  %185 = call double @qh_strtod(ptr noundef nonnull %61, ptr noundef nonnull %8) #13
  store double %185, ptr %29, align 8, !tbaa !26
  br label %.critedge9

186:                                              ; preds = %60
  %.not971 = icmp eq ptr %.0747.ph1210, null
  %spec.select = select i1 %.not971, ptr %48, ptr %.0747.ph1210
  %187 = add nsw i32 %.0877.ph1182, 1
  %188 = load i8, ptr %61, align 1, !tbaa !9
  %.not9721172 = icmp eq i8 %188, 0
  br i1 %.not9721172, label %.critedge9, label %.lr.ph1174

.lr.ph1174:                                       ; preds = %186, %196
  %189 = phi i8 [ %198, %196 ], [ %188, %186 ]
  %190 = phi ptr [ %197, %196 ], [ %61, %186 ]
  %191 = load ptr, ptr %50, align 8, !tbaa !5
  %192 = sext i8 %189 to i64
  %193 = getelementptr inbounds i16, ptr %191, i64 %192
  %194 = load i16, ptr %193, align 2, !tbaa !10
  %195 = and i16 %194, 8192
  %.not973 = icmp eq i16 %195, 0
  br i1 %.not973, label %196, label %.critedge9

196:                                              ; preds = %.lr.ph1174
  %197 = getelementptr inbounds i8, ptr %190, i64 1
  store ptr %197, ptr %8, align 8, !tbaa !5
  %198 = load i8, ptr %197, align 1, !tbaa !9
  %.not972 = icmp eq i8 %198, 0
  br i1 %.not972, label %.critedge9, label %.lr.ph1174, !llvm.loop !27

199:                                              ; preds = %60
  %200 = call double @qh_strtod(ptr noundef nonnull %61, ptr noundef nonnull %8) #13
  br label %.critedge9

201:                                              ; preds = %60
  %202 = load ptr, ptr %50, align 8, !tbaa !5
  %203 = load i8, ptr %61, align 1, !tbaa !9
  %204 = sext i8 %203 to i64
  %205 = getelementptr inbounds i16, ptr %202, i64 %204
  %206 = load i16, ptr %205, align 2, !tbaa !10
  %207 = and i16 %206, 2048
  %.not970 = icmp eq i16 %207, 0
  br i1 %.not970, label %.critedge9, label %208

208:                                              ; preds = %201
  %209 = call double @qh_strtod(ptr noundef nonnull %61, ptr noundef nonnull %8) #13
  br label %.critedge9

210:                                              ; preds = %60
  %211 = load ptr, ptr %30, align 8, !tbaa !25
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %0, ptr noundef %211, i32 noundef 6352, ptr noundef nonnull @.str.5, ptr noundef nonnull %48) #13
  call void @qh_errexit_rbox(ptr noundef %0, i32 noundef 1)
  br label %.critedge9

.critedge9:                                       ; preds = %196, %.lr.ph1174, %186, %208, %201, %157, %150, %148, %141, %91, %60, %174, %176, %182, %139, %136, %134, %130, %98, %83, %85, %72, %74, %210, %199, %184, %103, %102, %101, %100, %90, %89, %88, %87
  %.2899 = phi i32 [ %.0897.ph1177, %210 ], [ %.0897.ph1177, %199 ], [ %.0897.ph1177, %184 ], [ %.0897.ph1177, %176 ], [ %.0897.ph1177, %182 ], [ %.0897.ph1177, %174 ], [ %.0897.ph1177, %139 ], [ %.0897.ph1177, %136 ], [ %.18981838, %134 ], [ %.18981838, %130 ], [ %.0897.ph1177, %103 ], [ %.0897.ph1177, %102 ], [ %.0897.ph1177, %101 ], [ %.0897.ph1177, %100 ], [ %.0897.ph1177, %98 ], [ %.0897.ph1177, %90 ], [ %.0897.ph1177, %89 ], [ %.0897.ph1177, %88 ], [ %.0897.ph1177, %87 ], [ %.0897.ph1177, %85 ], [ %.0897.ph1177, %83 ], [ %.0897.ph1177, %74 ], [ %.0897.ph1177, %72 ], [ %.0897.ph1177, %60 ], [ %.0897.ph1177, %91 ], [ %.0897.ph1177, %141 ], [ %.0897.ph1177, %148 ], [ %.0897.ph1177, %150 ], [ %.0897.ph1177, %157 ], [ %.0897.ph1177, %201 ], [ %.0897.ph1177, %208 ], [ %.0897.ph1177, %186 ], [ %.0897.ph1177, %.lr.ph1174 ], [ %.0897.ph1177, %196 ]
  %.2896 = phi i32 [ %.0894.ph1178, %210 ], [ %.0894.ph1178, %199 ], [ %.0894.ph1178, %184 ], [ %.0894.ph1178, %176 ], [ %.0894.ph1178, %182 ], [ %.0894.ph1178, %174 ], [ %.0894.ph1178, %139 ], [ %.0894.ph1178, %136 ], [ %.1895159015951837, %134 ], [ %.1895159015951837, %130 ], [ %.0894.ph1178, %103 ], [ %.0894.ph1178, %102 ], [ %.0894.ph1178, %101 ], [ %.0894.ph1178, %100 ], [ %.0894.ph1178, %98 ], [ %.0894.ph1178, %90 ], [ %.0894.ph1178, %89 ], [ %.0894.ph1178, %88 ], [ %.0894.ph1178, %87 ], [ %.0894.ph1178, %85 ], [ %.0894.ph1178, %83 ], [ %.0894.ph1178, %74 ], [ %.0894.ph1178, %72 ], [ %.0894.ph1178, %60 ], [ %.0894.ph1178, %91 ], [ %.0894.ph1178, %141 ], [ %.0894.ph1178, %148 ], [ %.0894.ph1178, %150 ], [ %.0894.ph1178, %157 ], [ %.0894.ph1178, %201 ], [ %.0894.ph1178, %208 ], [ %.0894.ph1178, %186 ], [ %.0894.ph1178, %.lr.ph1174 ], [ %.0894.ph1178, %196 ]
  %.1889 = phi i32 [ %.0888.ph1179, %210 ], [ %.0888.ph1179, %199 ], [ %.0888.ph1179, %184 ], [ %.0888.ph1179, %176 ], [ %.0888.ph1179, %182 ], [ %.0888.ph1179, %174 ], [ %.0888.ph1179, %139 ], [ %.0888.ph1179, %136 ], [ %.0888.ph1179, %134 ], [ %.0888.ph1179, %130 ], [ %.0888.ph1179, %103 ], [ %.0888.ph1179, %102 ], [ %.0888.ph1179, %101 ], [ %.0888.ph1179, %100 ], [ %99, %98 ], [ %.0888.ph1179, %90 ], [ %.0888.ph1179, %89 ], [ %.0888.ph1179, %88 ], [ %.0888.ph1179, %87 ], [ %.0888.ph1179, %85 ], [ %.0888.ph1179, %83 ], [ %.0888.ph1179, %74 ], [ %.0888.ph1179, %72 ], [ %.0888.ph1179, %60 ], [ %.0888.ph1179, %91 ], [ %.0888.ph1179, %141 ], [ %.0888.ph1179, %148 ], [ %.0888.ph1179, %150 ], [ %.0888.ph1179, %157 ], [ %.0888.ph1179, %201 ], [ %.0888.ph1179, %208 ], [ %.0888.ph1179, %186 ], [ %.0888.ph1179, %.lr.ph1174 ], [ %.0888.ph1179, %196 ]
  %.1884 = phi i32 [ %.0883.ph1180, %210 ], [ %.0883.ph1180, %199 ], [ %.0883.ph1180, %184 ], [ %.0883.ph1180, %176 ], [ %.0883.ph1180, %182 ], [ %.0883.ph1180, %174 ], [ %137, %139 ], [ %137, %136 ], [ %.0883.ph1180, %134 ], [ %.0883.ph1180, %130 ], [ %.0883.ph1180, %103 ], [ %.0883.ph1180, %102 ], [ %.0883.ph1180, %101 ], [ %.0883.ph1180, %100 ], [ %.0883.ph1180, %98 ], [ %.0883.ph1180, %90 ], [ %.0883.ph1180, %89 ], [ %.0883.ph1180, %88 ], [ %.0883.ph1180, %87 ], [ %.0883.ph1180, %85 ], [ %.0883.ph1180, %83 ], [ %.0883.ph1180, %74 ], [ %.0883.ph1180, %72 ], [ %.0883.ph1180, %60 ], [ %.0883.ph1180, %91 ], [ %.0883.ph1180, %141 ], [ %.0883.ph1180, %148 ], [ %.0883.ph1180, %150 ], [ %.0883.ph1180, %157 ], [ %.0883.ph1180, %201 ], [ %.0883.ph1180, %208 ], [ %.0883.ph1180, %186 ], [ %.0883.ph1180, %.lr.ph1174 ], [ %.0883.ph1180, %196 ]
  %.1878 = phi i32 [ %.0877.ph1182, %210 ], [ %.0877.ph1182, %199 ], [ %.0877.ph1182, %184 ], [ %.0877.ph1182, %176 ], [ %.0877.ph1182, %182 ], [ %.0877.ph1182, %174 ], [ %.0877.ph1182, %139 ], [ %.0877.ph1182, %136 ], [ %.0877.ph1182, %134 ], [ %.0877.ph1182, %130 ], [ %.0877.ph1182, %103 ], [ %.0877.ph1182, %102 ], [ %.0877.ph1182, %101 ], [ %.0877.ph1182, %100 ], [ %.0877.ph1182, %98 ], [ %.0877.ph1182, %90 ], [ %.0877.ph1182, %89 ], [ %.0877.ph1182, %88 ], [ %.0877.ph1182, %87 ], [ %.0877.ph1182, %85 ], [ %.0877.ph1182, %83 ], [ %.0877.ph1182, %74 ], [ %.0877.ph1182, %72 ], [ %.0877.ph1182, %60 ], [ %.0877.ph1182, %91 ], [ %.0877.ph1182, %141 ], [ %.0877.ph1182, %148 ], [ %.0877.ph1182, %150 ], [ %.0877.ph1182, %157 ], [ %.0877.ph1182, %201 ], [ %.0877.ph1182, %208 ], [ %187, %186 ], [ %187, %.lr.ph1174 ], [ %187, %196 ]
  %.1875 = phi i32 [ %.0874.ph1183, %210 ], [ %.0874.ph1183, %199 ], [ %.0874.ph1183, %184 ], [ %.0874.ph1183, %176 ], [ %.0874.ph1183, %182 ], [ %.0874.ph1183, %174 ], [ %.0874.ph1183, %139 ], [ %.0874.ph1183, %136 ], [ %.0874.ph1183, %134 ], [ %.0874.ph1183, %130 ], [ %.0874.ph1183, %103 ], [ %.0874.ph1183, %102 ], [ %.0874.ph1183, %101 ], [ %.0874.ph1183, %100 ], [ %.0874.ph1183, %98 ], [ 1, %90 ], [ %.0874.ph1183, %89 ], [ %.0874.ph1183, %88 ], [ %.0874.ph1183, %87 ], [ %.0874.ph1183, %85 ], [ %.0874.ph1183, %83 ], [ %.0874.ph1183, %74 ], [ %.0874.ph1183, %72 ], [ %.0874.ph1183, %60 ], [ %.0874.ph1183, %91 ], [ %.0874.ph1183, %141 ], [ %.0874.ph1183, %148 ], [ %.0874.ph1183, %150 ], [ %.0874.ph1183, %157 ], [ %.0874.ph1183, %201 ], [ %.0874.ph1183, %208 ], [ %.0874.ph1183, %186 ], [ %.0874.ph1183, %.lr.ph1174 ], [ %.0874.ph1183, %196 ]
  %.1873 = phi i32 [ %.0872.ph1184, %210 ], [ %.0872.ph1184, %199 ], [ %.0872.ph1184, %184 ], [ %.0872.ph1184, %176 ], [ %.0872.ph1184, %182 ], [ %.0872.ph1184, %174 ], [ %.0872.ph1184, %139 ], [ %.0872.ph1184, %136 ], [ %.0872.ph1184, %134 ], [ %.0872.ph1184, %130 ], [ %.0872.ph1184, %103 ], [ %.0872.ph1184, %102 ], [ %.0872.ph1184, %101 ], [ %.0872.ph1184, %100 ], [ %.0872.ph1184, %98 ], [ %.0872.ph1184, %90 ], [ %.0872.ph1184, %89 ], [ %.0872.ph1184, %88 ], [ %.0872.ph1184, %87 ], [ %.0872.ph1184, %85 ], [ %.0872.ph1184, %83 ], [ %.0872.ph1184, %74 ], [ %.0872.ph1184, %72 ], [ %.0872.ph1184, %60 ], [ %.0872.ph1184, %91 ], [ %.0872.ph1184, %141 ], [ %.0872.ph1184, %148 ], [ %.0872.ph1184, %150 ], [ %.0872.ph1184, %157 ], [ 1, %201 ], [ 1, %208 ], [ %.0872.ph1184, %186 ], [ %.0872.ph1184, %.lr.ph1174 ], [ %.0872.ph1184, %196 ]
  %.1871 = phi i32 [ %.0870.ph1185, %210 ], [ %.0870.ph1185, %199 ], [ %.0870.ph1185, %184 ], [ %.0870.ph1185, %176 ], [ %.0870.ph1185, %182 ], [ %.0870.ph1185, %174 ], [ %.0870.ph1185, %139 ], [ %.0870.ph1185, %136 ], [ %.0870.ph1185, %134 ], [ %.0870.ph1185, %130 ], [ %.0870.ph1185, %103 ], [ %.0870.ph1185, %102 ], [ %.0870.ph1185, %101 ], [ %.0870.ph1185, %100 ], [ %.0870.ph1185, %98 ], [ %.0870.ph1185, %90 ], [ %.0870.ph1185, %89 ], [ %.0870.ph1185, %88 ], [ %.0870.ph1185, %87 ], [ %.0870.ph1185, %85 ], [ %.0870.ph1185, %83 ], [ %.0870.ph1185, %74 ], [ %.0870.ph1185, %72 ], [ 1, %60 ], [ %.0870.ph1185, %91 ], [ %.0870.ph1185, %141 ], [ %.0870.ph1185, %148 ], [ %.0870.ph1185, %150 ], [ %.0870.ph1185, %157 ], [ %.0870.ph1185, %201 ], [ %.0870.ph1185, %208 ], [ %.0870.ph1185, %186 ], [ %.0870.ph1185, %.lr.ph1174 ], [ %.0870.ph1185, %196 ]
  %.1869 = phi i32 [ %.0868.ph1186, %210 ], [ %.0868.ph1186, %199 ], [ %.0868.ph1186, %184 ], [ %.0868.ph1186, %176 ], [ %.0868.ph1186, %182 ], [ %.0868.ph1186, %174 ], [ %.0868.ph1186, %139 ], [ %.0868.ph1186, %136 ], [ %.0868.ph1186, %134 ], [ %.0868.ph1186, %130 ], [ %.0868.ph1186, %103 ], [ %.0868.ph1186, %102 ], [ %.0868.ph1186, %101 ], [ %.0868.ph1186, %100 ], [ %.0868.ph1186, %98 ], [ %.0868.ph1186, %90 ], [ %.0868.ph1186, %89 ], [ %.0868.ph1186, %88 ], [ %.0868.ph1186, %87 ], [ %.0868.ph1186, %85 ], [ %.0868.ph1186, %83 ], [ %.0868.ph1186, %74 ], [ %.0868.ph1186, %72 ], [ %.0868.ph1186, %60 ], [ %.0868.ph1186, %91 ], [ %.0868.ph1186, %141 ], [ %.0868.ph1186, %148 ], [ 1, %150 ], [ 1, %157 ], [ %.0868.ph1186, %201 ], [ %.0868.ph1186, %208 ], [ %.0868.ph1186, %186 ], [ %.0868.ph1186, %.lr.ph1174 ], [ %.0868.ph1186, %196 ]
  %.1866 = phi i32 [ %.0865.ph1187, %210 ], [ %.0865.ph1187, %199 ], [ %.0865.ph1187, %184 ], [ %.0865.ph1187, %176 ], [ %.0865.ph1187, %182 ], [ %.0865.ph1187, %174 ], [ %.0865.ph1187, %139 ], [ %.0865.ph1187, %136 ], [ %.0865.ph1187, %134 ], [ %.0865.ph1187, %130 ], [ %.0865.ph1187, %103 ], [ %.0865.ph1187, %102 ], [ %.0865.ph1187, %101 ], [ %.0865.ph1187, %100 ], [ %.0865.ph1187, %98 ], [ %.0865.ph1187, %90 ], [ 1, %89 ], [ %.0865.ph1187, %88 ], [ %.0865.ph1187, %87 ], [ %.0865.ph1187, %85 ], [ %.0865.ph1187, %83 ], [ %.0865.ph1187, %74 ], [ %.0865.ph1187, %72 ], [ %.0865.ph1187, %60 ], [ %.0865.ph1187, %91 ], [ %.0865.ph1187, %141 ], [ %.0865.ph1187, %148 ], [ %.0865.ph1187, %150 ], [ %.0865.ph1187, %157 ], [ %.0865.ph1187, %201 ], [ %.0865.ph1187, %208 ], [ %.0865.ph1187, %186 ], [ %.0865.ph1187, %.lr.ph1174 ], [ %.0865.ph1187, %196 ]
  %.1864 = phi i32 [ %.0863.ph1188, %210 ], [ 1, %199 ], [ %.0863.ph1188, %184 ], [ %.0863.ph1188, %176 ], [ %.0863.ph1188, %182 ], [ %.0863.ph1188, %174 ], [ %.0863.ph1188, %139 ], [ %.0863.ph1188, %136 ], [ %.0863.ph1188, %134 ], [ %.0863.ph1188, %130 ], [ %.0863.ph1188, %103 ], [ %.0863.ph1188, %102 ], [ %.0863.ph1188, %101 ], [ %.0863.ph1188, %100 ], [ %.0863.ph1188, %98 ], [ %.0863.ph1188, %90 ], [ %.0863.ph1188, %89 ], [ %.0863.ph1188, %88 ], [ %.0863.ph1188, %87 ], [ %.0863.ph1188, %85 ], [ %.0863.ph1188, %83 ], [ %.0863.ph1188, %74 ], [ %.0863.ph1188, %72 ], [ %.0863.ph1188, %60 ], [ %.0863.ph1188, %91 ], [ %.0863.ph1188, %141 ], [ %.0863.ph1188, %148 ], [ %.0863.ph1188, %150 ], [ %.0863.ph1188, %157 ], [ %.0863.ph1188, %201 ], [ %.0863.ph1188, %208 ], [ %.0863.ph1188, %186 ], [ %.0863.ph1188, %.lr.ph1174 ], [ %.0863.ph1188, %196 ]
  %.1862 = phi i32 [ %.0861.ph1189, %210 ], [ %.0861.ph1189, %199 ], [ %.0861.ph1189, %184 ], [ %.0861.ph1189, %176 ], [ %.0861.ph1189, %182 ], [ %.0861.ph1189, %174 ], [ %.0861.ph1189, %139 ], [ %.0861.ph1189, %136 ], [ %.0861.ph1189, %134 ], [ %.0861.ph1189, %130 ], [ %.0861.ph1189, %103 ], [ %.0861.ph1189, %102 ], [ %.0861.ph1189, %101 ], [ %.0861.ph1189, %100 ], [ %.0861.ph1189, %98 ], [ %.0861.ph1189, %90 ], [ %.0861.ph1189, %89 ], [ %.0861.ph1189, %88 ], [ %.0861.ph1189, %87 ], [ %.0861.ph1189, %85 ], [ %.0861.ph1189, %83 ], [ 1, %74 ], [ 1, %72 ], [ %.0861.ph1189, %60 ], [ %.0861.ph1189, %91 ], [ %.0861.ph1189, %141 ], [ %.0861.ph1189, %148 ], [ %.0861.ph1189, %150 ], [ %.0861.ph1189, %157 ], [ %.0861.ph1189, %201 ], [ %.0861.ph1189, %208 ], [ %.0861.ph1189, %186 ], [ %.0861.ph1189, %.lr.ph1174 ], [ %.0861.ph1189, %196 ]
  %.1855 = phi i32 [ %.0854.ph1190, %210 ], [ %.0854.ph1190, %199 ], [ %.0854.ph1190, %184 ], [ %.0854.ph1190, %176 ], [ %.0854.ph1190, %182 ], [ %.0854.ph1190, %174 ], [ %.0854.ph1190, %139 ], [ %.0854.ph1190, %136 ], [ %.0854.ph1190, %134 ], [ %.0854.ph1190, %130 ], [ %.0854.ph1190, %103 ], [ %.0854.ph1190, %102 ], [ %.0854.ph1190, %101 ], [ %.0854.ph1190, %100 ], [ %.0854.ph1190, %98 ], [ %.0854.ph1190, %90 ], [ %.0854.ph1190, %89 ], [ %.0854.ph1190, %88 ], [ %.0854.ph1190, %87 ], [ %.0854.ph1190, %85 ], [ %.0854.ph1190, %83 ], [ %.0854.ph1190, %74 ], [ %.0854.ph1190, %72 ], [ %.0854.ph1190, %60 ], [ %.0854.ph1190, %91 ], [ 1, %141 ], [ 1, %148 ], [ %.0854.ph1190, %150 ], [ %.0854.ph1190, %157 ], [ %.0854.ph1190, %201 ], [ %.0854.ph1190, %208 ], [ %.0854.ph1190, %186 ], [ %.0854.ph1190, %.lr.ph1174 ], [ %.0854.ph1190, %196 ]
  %.1853 = phi i32 [ %.0852.ph1191, %210 ], [ %.0852.ph1191, %199 ], [ %.0852.ph1191, %184 ], [ %.0852.ph1191, %176 ], [ %.0852.ph1191, %182 ], [ %.0852.ph1191, %174 ], [ %.0852.ph1191, %139 ], [ %.0852.ph1191, %136 ], [ %.0852.ph1191, %134 ], [ %.0852.ph1191, %130 ], [ %.0852.ph1191, %103 ], [ %.0852.ph1191, %102 ], [ %.0852.ph1191, %101 ], [ %.0852.ph1191, %100 ], [ %.0852.ph1191, %98 ], [ %.0852.ph1191, %90 ], [ %.0852.ph1191, %89 ], [ %.0852.ph1191, %88 ], [ 1, %87 ], [ %.0852.ph1191, %85 ], [ %.0852.ph1191, %83 ], [ %.0852.ph1191, %74 ], [ %.0852.ph1191, %72 ], [ %.0852.ph1191, %60 ], [ %.0852.ph1191, %91 ], [ %.0852.ph1191, %141 ], [ %.0852.ph1191, %148 ], [ %.0852.ph1191, %150 ], [ %.0852.ph1191, %157 ], [ %.0852.ph1191, %201 ], [ %.0852.ph1191, %208 ], [ %.0852.ph1191, %186 ], [ %.0852.ph1191, %.lr.ph1174 ], [ %.0852.ph1191, %196 ]
  %.1851 = phi i32 [ %.0850.ph1192, %210 ], [ %.0850.ph1192, %199 ], [ %.0850.ph1192, %184 ], [ %.0850.ph1192, %176 ], [ %.0850.ph1192, %182 ], [ %.0850.ph1192, %174 ], [ %.0850.ph1192, %139 ], [ %.0850.ph1192, %136 ], [ %.0850.ph1192, %134 ], [ %.0850.ph1192, %130 ], [ %.0850.ph1192, %103 ], [ %.0850.ph1192, %102 ], [ %.0850.ph1192, %101 ], [ %.0850.ph1192, %100 ], [ %.0850.ph1192, %98 ], [ %.0850.ph1192, %90 ], [ %.0850.ph1192, %89 ], [ 1, %88 ], [ %.0850.ph1192, %87 ], [ %.0850.ph1192, %85 ], [ %.0850.ph1192, %83 ], [ %.0850.ph1192, %74 ], [ %.0850.ph1192, %72 ], [ %.0850.ph1192, %60 ], [ %.0850.ph1192, %91 ], [ %.0850.ph1192, %141 ], [ %.0850.ph1192, %148 ], [ %.0850.ph1192, %150 ], [ %.0850.ph1192, %157 ], [ %.0850.ph1192, %201 ], [ %.0850.ph1192, %208 ], [ %.0850.ph1192, %186 ], [ %.0850.ph1192, %.lr.ph1174 ], [ %.0850.ph1192, %196 ]
  %.1849 = phi i32 [ %.0848.ph1193, %210 ], [ %.0848.ph1193, %199 ], [ %.0848.ph1193, %184 ], [ %.0848.ph1193, %176 ], [ %.0848.ph1193, %182 ], [ %.0848.ph1193, %174 ], [ %.0848.ph1193, %139 ], [ %.0848.ph1193, %136 ], [ %.0848.ph1193, %134 ], [ %.0848.ph1193, %130 ], [ %.0848.ph1193, %103 ], [ %.0848.ph1193, %102 ], [ %.0848.ph1193, %101 ], [ %.0848.ph1193, %100 ], [ %.0848.ph1193, %98 ], [ %.0848.ph1193, %90 ], [ %.0848.ph1193, %89 ], [ %.0848.ph1193, %88 ], [ %.0848.ph1193, %87 ], [ 1, %85 ], [ 1, %83 ], [ %.0848.ph1193, %74 ], [ %.0848.ph1193, %72 ], [ %.0848.ph1193, %60 ], [ %.0848.ph1193, %91 ], [ %.0848.ph1193, %141 ], [ %.0848.ph1193, %148 ], [ %.0848.ph1193, %150 ], [ %.0848.ph1193, %157 ], [ %.0848.ph1193, %201 ], [ %.0848.ph1193, %208 ], [ %.0848.ph1193, %186 ], [ %.0848.ph1193, %.lr.ph1174 ], [ %.0848.ph1193, %196 ]
  %.1847 = phi i32 [ %.0846.ph1194, %210 ], [ %.0846.ph1194, %199 ], [ %.0846.ph1194, %184 ], [ %.0846.ph1194, %176 ], [ %.0846.ph1194, %182 ], [ %.0846.ph1194, %174 ], [ %.0846.ph1194, %139 ], [ %.0846.ph1194, %136 ], [ %.0846.ph1194, %134 ], [ %.0846.ph1194, %130 ], [ %.0846.ph1194, %103 ], [ %.0846.ph1194, %102 ], [ %.0846.ph1194, %101 ], [ %.0846.ph1194, %100 ], [ 0, %98 ], [ %.0846.ph1194, %90 ], [ %.0846.ph1194, %89 ], [ %.0846.ph1194, %88 ], [ %.0846.ph1194, %87 ], [ %.0846.ph1194, %85 ], [ %.0846.ph1194, %83 ], [ %.0846.ph1194, %74 ], [ %.0846.ph1194, %72 ], [ %.0846.ph1194, %60 ], [ 1, %91 ], [ %.0846.ph1194, %141 ], [ %.0846.ph1194, %148 ], [ %.0846.ph1194, %150 ], [ %.0846.ph1194, %157 ], [ %.0846.ph1194, %201 ], [ %.0846.ph1194, %208 ], [ %.0846.ph1194, %186 ], [ %.0846.ph1194, %.lr.ph1174 ], [ %.0846.ph1194, %196 ]
  %.1845 = phi i32 [ %.0844.ph1195, %210 ], [ %.0844.ph1195, %199 ], [ %.0844.ph1195, %184 ], [ %.0844.ph1195, %176 ], [ %.0844.ph1195, %182 ], [ %.0844.ph1195, %174 ], [ %.0844.ph1195, %139 ], [ %.0844.ph1195, %136 ], [ %.0844.ph1195, %134 ], [ %.0844.ph1195, %130 ], [ %.0844.ph1195, %103 ], [ %.0844.ph1195, %102 ], [ %.0844.ph1195, %101 ], [ %.0844.ph1195, %100 ], [ 1, %98 ], [ %.0844.ph1195, %90 ], [ %.0844.ph1195, %89 ], [ %.0844.ph1195, %88 ], [ %.0844.ph1195, %87 ], [ %.0844.ph1195, %85 ], [ %.0844.ph1195, %83 ], [ %.0844.ph1195, %74 ], [ %.0844.ph1195, %72 ], [ %.0844.ph1195, %60 ], [ 1, %91 ], [ %.0844.ph1195, %141 ], [ %.0844.ph1195, %148 ], [ %.0844.ph1195, %150 ], [ %.0844.ph1195, %157 ], [ %.0844.ph1195, %201 ], [ %.0844.ph1195, %208 ], [ %.0844.ph1195, %186 ], [ %.0844.ph1195, %.lr.ph1174 ], [ %.0844.ph1195, %196 ]
  %.1843 = phi i32 [ %.0842.ph1196, %210 ], [ %.0842.ph1196, %199 ], [ %.0842.ph1196, %184 ], [ %.0842.ph1196, %176 ], [ %.0842.ph1196, %182 ], [ %.0842.ph1196, %174 ], [ %.0842.ph1196, %139 ], [ %.0842.ph1196, %136 ], [ %.0842.ph1196, %134 ], [ %.0842.ph1196, %130 ], [ 1, %103 ], [ %.0842.ph1196, %102 ], [ %.0842.ph1196, %101 ], [ %.0842.ph1196, %100 ], [ %.0842.ph1196, %98 ], [ %.0842.ph1196, %90 ], [ %.0842.ph1196, %89 ], [ %.0842.ph1196, %88 ], [ %.0842.ph1196, %87 ], [ %.0842.ph1196, %85 ], [ %.0842.ph1196, %83 ], [ %.0842.ph1196, %74 ], [ %.0842.ph1196, %72 ], [ %.0842.ph1196, %60 ], [ %.0842.ph1196, %91 ], [ %.0842.ph1196, %141 ], [ %.0842.ph1196, %148 ], [ %.0842.ph1196, %150 ], [ %.0842.ph1196, %157 ], [ %.0842.ph1196, %201 ], [ %.0842.ph1196, %208 ], [ %.0842.ph1196, %186 ], [ %.0842.ph1196, %.lr.ph1174 ], [ %.0842.ph1196, %196 ]
  %.1841 = phi i32 [ %.0840.ph1197, %210 ], [ %.0840.ph1197, %199 ], [ %.0840.ph1197, %184 ], [ %.0840.ph1197, %176 ], [ %.0840.ph1197, %182 ], [ %.0840.ph1197, %174 ], [ %.0840.ph1197, %139 ], [ %.0840.ph1197, %136 ], [ %.0840.ph1197, %134 ], [ %.0840.ph1197, %130 ], [ %.0840.ph1197, %103 ], [ %.0840.ph1197, %102 ], [ %.0840.ph1197, %101 ], [ 1, %100 ], [ %.0840.ph1197, %98 ], [ %.0840.ph1197, %90 ], [ %.0840.ph1197, %89 ], [ %.0840.ph1197, %88 ], [ %.0840.ph1197, %87 ], [ %.0840.ph1197, %85 ], [ %.0840.ph1197, %83 ], [ %.0840.ph1197, %74 ], [ %.0840.ph1197, %72 ], [ %.0840.ph1197, %60 ], [ %.0840.ph1197, %91 ], [ %.0840.ph1197, %141 ], [ %.0840.ph1197, %148 ], [ %.0840.ph1197, %150 ], [ %.0840.ph1197, %157 ], [ %.0840.ph1197, %201 ], [ %.0840.ph1197, %208 ], [ %.0840.ph1197, %186 ], [ %.0840.ph1197, %.lr.ph1174 ], [ %.0840.ph1197, %196 ]
  %.1839 = phi i32 [ %.0838.ph1198, %210 ], [ %.0838.ph1198, %199 ], [ %.0838.ph1198, %184 ], [ %.0838.ph1198, %176 ], [ %.0838.ph1198, %182 ], [ %.0838.ph1198, %174 ], [ %.0838.ph1198, %139 ], [ %.0838.ph1198, %136 ], [ %.0838.ph1198, %134 ], [ %.0838.ph1198, %130 ], [ %.0838.ph1198, %103 ], [ %.0838.ph1198, %102 ], [ 1, %101 ], [ %.0838.ph1198, %100 ], [ %.0838.ph1198, %98 ], [ %.0838.ph1198, %90 ], [ %.0838.ph1198, %89 ], [ %.0838.ph1198, %88 ], [ %.0838.ph1198, %87 ], [ %.0838.ph1198, %85 ], [ %.0838.ph1198, %83 ], [ %.0838.ph1198, %74 ], [ %.0838.ph1198, %72 ], [ %.0838.ph1198, %60 ], [ %.0838.ph1198, %91 ], [ %.0838.ph1198, %141 ], [ %.0838.ph1198, %148 ], [ %.0838.ph1198, %150 ], [ %.0838.ph1198, %157 ], [ %.0838.ph1198, %201 ], [ %.0838.ph1198, %208 ], [ %.0838.ph1198, %186 ], [ %.0838.ph1198, %.lr.ph1174 ], [ %.0838.ph1198, %196 ]
  %.1837 = phi i32 [ %.0836.ph1199, %210 ], [ %.0836.ph1199, %199 ], [ %.0836.ph1199, %184 ], [ 1, %176 ], [ 1, %182 ], [ 1, %174 ], [ %.0836.ph1199, %139 ], [ %.0836.ph1199, %136 ], [ %.0836.ph1199, %134 ], [ %.0836.ph1199, %130 ], [ %.0836.ph1199, %103 ], [ %.0836.ph1199, %102 ], [ %.0836.ph1199, %101 ], [ %.0836.ph1199, %100 ], [ %.0836.ph1199, %98 ], [ %.0836.ph1199, %90 ], [ %.0836.ph1199, %89 ], [ %.0836.ph1199, %88 ], [ %.0836.ph1199, %87 ], [ %.0836.ph1199, %85 ], [ %.0836.ph1199, %83 ], [ %.0836.ph1199, %74 ], [ %.0836.ph1199, %72 ], [ %.0836.ph1199, %60 ], [ %.0836.ph1199, %91 ], [ %.0836.ph1199, %141 ], [ %.0836.ph1199, %148 ], [ %.0836.ph1199, %150 ], [ %.0836.ph1199, %157 ], [ %.0836.ph1199, %201 ], [ %.0836.ph1199, %208 ], [ %.0836.ph1199, %186 ], [ %.0836.ph1199, %.lr.ph1174 ], [ %.0836.ph1199, %196 ]
  %.1835 = phi double [ %.0834.ph1200, %210 ], [ %200, %199 ], [ %.0834.ph1200, %184 ], [ %.0834.ph1200, %176 ], [ %.0834.ph1200, %182 ], [ %.0834.ph1200, %174 ], [ %.0834.ph1200, %139 ], [ %.0834.ph1200, %136 ], [ %.0834.ph1200, %134 ], [ %.0834.ph1200, %130 ], [ %.0834.ph1200, %103 ], [ %.0834.ph1200, %102 ], [ %.0834.ph1200, %101 ], [ %.0834.ph1200, %100 ], [ %.0834.ph1200, %98 ], [ %.0834.ph1200, %90 ], [ %.0834.ph1200, %89 ], [ %.0834.ph1200, %88 ], [ %.0834.ph1200, %87 ], [ %.0834.ph1200, %85 ], [ %.0834.ph1200, %83 ], [ %.0834.ph1200, %74 ], [ %.0834.ph1200, %72 ], [ %.0834.ph1200, %60 ], [ %.0834.ph1200, %91 ], [ %.0834.ph1200, %141 ], [ %.0834.ph1200, %148 ], [ %.0834.ph1200, %150 ], [ %.0834.ph1200, %157 ], [ %.0834.ph1200, %201 ], [ %.0834.ph1200, %208 ], [ %.0834.ph1200, %186 ], [ %.0834.ph1200, %.lr.ph1174 ], [ %.0834.ph1200, %196 ]
  %.2827 = phi double [ %.0825.ph1201, %210 ], [ %.0825.ph1201, %199 ], [ %.0825.ph1201, %184 ], [ %.0825.ph1201, %176 ], [ %.0825.ph1201, %182 ], [ %.0825.ph1201, %174 ], [ %.0825.ph1201, %139 ], [ %.0825.ph1201, %136 ], [ %.0825.ph1201, %134 ], [ %.0825.ph1201, %130 ], [ %.0825.ph1201, %103 ], [ %.0825.ph1201, %102 ], [ %.0825.ph1201, %101 ], [ %.0825.ph1201, %100 ], [ %.0825.ph1201, %98 ], [ %.0825.ph1201, %90 ], [ %.0825.ph1201, %89 ], [ %.0825.ph1201, %88 ], [ %.0825.ph1201, %87 ], [ %.0825.ph1201, %85 ], [ %.0825.ph1201, %83 ], [ %.0825.ph1201, %74 ], [ %.0825.ph1201, %72 ], [ %.0825.ph1201, %60 ], [ %.0825.ph1201, %91 ], [ 5.000000e-01, %141 ], [ %149, %148 ], [ %.0825.ph1201, %150 ], [ %.0825.ph1201, %157 ], [ %.0825.ph1201, %201 ], [ %.0825.ph1201, %208 ], [ %.0825.ph1201, %186 ], [ %.0825.ph1201, %.lr.ph1174 ], [ %.0825.ph1201, %196 ]
  %.3823 = phi double [ %.0820.ph1202, %210 ], [ %.0820.ph1202, %199 ], [ %.0820.ph1202, %184 ], [ %.0820.ph1202, %176 ], [ %.0820.ph1202, %182 ], [ %.0820.ph1202, %174 ], [ %.0820.ph1202, %139 ], [ %.0820.ph1202, %136 ], [ %.0820.ph1202, %134 ], [ %.0820.ph1202, %130 ], [ %.0820.ph1202, %103 ], [ %.0820.ph1202, %102 ], [ %.0820.ph1202, %101 ], [ %.0820.ph1202, %100 ], [ %.0820.ph1202, %98 ], [ %.0820.ph1202, %90 ], [ %.0820.ph1202, %89 ], [ %.0820.ph1202, %88 ], [ %.0820.ph1202, %87 ], [ %.0820.ph1202, %85 ], [ %.0820.ph1202, %83 ], [ %.0820.ph1202, %74 ], [ %.0820.ph1202, %72 ], [ %.0820.ph1202, %60 ], [ %.0820.ph1202, %91 ], [ %.0820.ph1202, %141 ], [ %.0820.ph1202, %148 ], [ 1.000000e+01, %150 ], [ %158, %157 ], [ 1.000000e+00, %201 ], [ %209, %208 ], [ %.0820.ph1202, %186 ], [ %.0820.ph1202, %.lr.ph1174 ], [ %.0820.ph1202, %196 ]
  %.2819 = phi double [ %.0817.ph1203, %210 ], [ %.0817.ph1203, %199 ], [ %.0817.ph1203, %184 ], [ %.0817.ph1203, %176 ], [ %.0817.ph1203, %182 ], [ %.0817.ph1203, %174 ], [ %.0817.ph1203, %139 ], [ %.0817.ph1203, %136 ], [ %.181815961836, %134 ], [ %.181815961836, %130 ], [ %.0817.ph1203, %103 ], [ %.0817.ph1203, %102 ], [ %.0817.ph1203, %101 ], [ %.0817.ph1203, %100 ], [ %.0817.ph1203, %98 ], [ %.0817.ph1203, %90 ], [ %.0817.ph1203, %89 ], [ %.0817.ph1203, %88 ], [ %.0817.ph1203, %87 ], [ %.0817.ph1203, %85 ], [ %.0817.ph1203, %83 ], [ %.0817.ph1203, %74 ], [ %.0817.ph1203, %72 ], [ %.0817.ph1203, %60 ], [ %.0817.ph1203, %91 ], [ %.0817.ph1203, %141 ], [ %.0817.ph1203, %148 ], [ %.0817.ph1203, %150 ], [ %.0817.ph1203, %157 ], [ %.0817.ph1203, %201 ], [ %.0817.ph1203, %208 ], [ %.0817.ph1203, %186 ], [ %.0817.ph1203, %.lr.ph1174 ], [ %.0817.ph1203, %196 ]
  %.2812 = phi double [ %.0810.ph1204, %210 ], [ %.0810.ph1204, %199 ], [ %.0810.ph1204, %184 ], [ %.18111609, %176 ], [ 4.000000e+00, %182 ], [ %.18111609, %174 ], [ %.0810.ph1204, %139 ], [ %.0810.ph1204, %136 ], [ %.0810.ph1204, %134 ], [ %.0810.ph1204, %130 ], [ %.0810.ph1204, %103 ], [ %.0810.ph1204, %102 ], [ %.0810.ph1204, %101 ], [ %.0810.ph1204, %100 ], [ %.0810.ph1204, %98 ], [ %.0810.ph1204, %90 ], [ %.0810.ph1204, %89 ], [ %.0810.ph1204, %88 ], [ %.0810.ph1204, %87 ], [ %.0810.ph1204, %85 ], [ %.0810.ph1204, %83 ], [ %.0810.ph1204, %74 ], [ %.0810.ph1204, %72 ], [ %.0810.ph1204, %60 ], [ %.0810.ph1204, %91 ], [ %.0810.ph1204, %141 ], [ %.0810.ph1204, %148 ], [ %.0810.ph1204, %150 ], [ %.0810.ph1204, %157 ], [ %.0810.ph1204, %201 ], [ %.0810.ph1204, %208 ], [ %.0810.ph1204, %186 ], [ %.0810.ph1204, %.lr.ph1174 ], [ %.0810.ph1204, %196 ]
  %.2809 = phi double [ %.0807.ph1205, %210 ], [ %.0807.ph1205, %199 ], [ %.0807.ph1205, %184 ], [ %.180815991607, %176 ], [ 3.000000e+00, %182 ], [ %.180815991607, %174 ], [ %.0807.ph1205, %139 ], [ %.0807.ph1205, %136 ], [ %.0807.ph1205, %134 ], [ %.0807.ph1205, %130 ], [ %.0807.ph1205, %103 ], [ %.0807.ph1205, %102 ], [ %.0807.ph1205, %101 ], [ %.0807.ph1205, %100 ], [ %.0807.ph1205, %98 ], [ %.0807.ph1205, %90 ], [ %.0807.ph1205, %89 ], [ %.0807.ph1205, %88 ], [ %.0807.ph1205, %87 ], [ %.0807.ph1205, %85 ], [ %.0807.ph1205, %83 ], [ %.0807.ph1205, %74 ], [ %.0807.ph1205, %72 ], [ %.0807.ph1205, %60 ], [ %.0807.ph1205, %91 ], [ %.0807.ph1205, %141 ], [ %.0807.ph1205, %148 ], [ %.0807.ph1205, %150 ], [ %.0807.ph1205, %157 ], [ %.0807.ph1205, %201 ], [ %.0807.ph1205, %208 ], [ %.0807.ph1205, %186 ], [ %.0807.ph1205, %.lr.ph1174 ], [ %.0807.ph1205, %196 ]
  %.2806 = phi double [ %.0804.ph1206, %210 ], [ %.0804.ph1206, %199 ], [ %.0804.ph1206, %184 ], [ %.1805, %176 ], [ 5.000000e+00, %182 ], [ %.1805, %174 ], [ %.0804.ph1206, %139 ], [ %.0804.ph1206, %136 ], [ %.0804.ph1206, %134 ], [ %.0804.ph1206, %130 ], [ %.0804.ph1206, %103 ], [ %.0804.ph1206, %102 ], [ %.0804.ph1206, %101 ], [ %.0804.ph1206, %100 ], [ %.0804.ph1206, %98 ], [ %.0804.ph1206, %90 ], [ %.0804.ph1206, %89 ], [ %.0804.ph1206, %88 ], [ %.0804.ph1206, %87 ], [ %.0804.ph1206, %85 ], [ %.0804.ph1206, %83 ], [ %.0804.ph1206, %74 ], [ %.0804.ph1206, %72 ], [ %.0804.ph1206, %60 ], [ %.0804.ph1206, %91 ], [ %.0804.ph1206, %141 ], [ %.0804.ph1206, %148 ], [ %.0804.ph1206, %150 ], [ %.0804.ph1206, %157 ], [ %.0804.ph1206, %201 ], [ %.0804.ph1206, %208 ], [ %.0804.ph1206, %186 ], [ %.0804.ph1206, %.lr.ph1174 ], [ %.0804.ph1206, %196 ]
  %.1769 = phi double [ %.0768.ph1207, %210 ], [ %.0768.ph1207, %199 ], [ %.0768.ph1207, %184 ], [ %.0768.ph1207, %176 ], [ %.0768.ph1207, %182 ], [ %.0768.ph1207, %174 ], [ %.0768.ph1207, %139 ], [ %.0768.ph1207, %136 ], [ %.0768.ph1207, %134 ], [ %.0768.ph1207, %130 ], [ %.0768.ph1207, %103 ], [ %.0768.ph1207, %102 ], [ %.0768.ph1207, %101 ], [ %.0768.ph1207, %100 ], [ %.0768.ph1207, %98 ], [ %.0768.ph1207, %90 ], [ %.0768.ph1207, %89 ], [ %.0768.ph1207, %88 ], [ %.0768.ph1207, %87 ], [ %.0768.ph1207, %85 ], [ %.0768.ph1207, %83 ], [ %75, %74 ], [ %.0768.ph1207, %72 ], [ %.0768.ph1207, %60 ], [ %.0768.ph1207, %91 ], [ %.0768.ph1207, %141 ], [ %.0768.ph1207, %148 ], [ %.0768.ph1207, %150 ], [ %.0768.ph1207, %157 ], [ %.0768.ph1207, %201 ], [ %.0768.ph1207, %208 ], [ %.0768.ph1207, %186 ], [ %.0768.ph1207, %.lr.ph1174 ], [ %.0768.ph1207, %196 ]
  %.1766 = phi double [ %.0765.ph1208, %210 ], [ %.0765.ph1208, %199 ], [ %.0765.ph1208, %184 ], [ %.0765.ph1208, %176 ], [ %.0765.ph1208, %182 ], [ %.0765.ph1208, %174 ], [ %.0765.ph1208, %139 ], [ %.0765.ph1208, %136 ], [ %.0765.ph1208, %134 ], [ %.0765.ph1208, %130 ], [ %.0765.ph1208, %103 ], [ %.0765.ph1208, %102 ], [ %.0765.ph1208, %101 ], [ %.0765.ph1208, %100 ], [ %.0765.ph1208, %98 ], [ %.0765.ph1208, %90 ], [ %.0765.ph1208, %89 ], [ %.0765.ph1208, %88 ], [ %.0765.ph1208, %87 ], [ %86, %85 ], [ %.0765.ph1208, %83 ], [ %.0765.ph1208, %74 ], [ %.0765.ph1208, %72 ], [ %.0765.ph1208, %60 ], [ %.0765.ph1208, %91 ], [ %.0765.ph1208, %141 ], [ %.0765.ph1208, %148 ], [ %.0765.ph1208, %150 ], [ %.0765.ph1208, %157 ], [ %.0765.ph1208, %201 ], [ %.0765.ph1208, %208 ], [ %.0765.ph1208, %186 ], [ %.0765.ph1208, %.lr.ph1174 ], [ %.0765.ph1208, %196 ]
  %.1763 = phi double [ %.0762.ph1209, %210 ], [ %.0762.ph1209, %199 ], [ %.0762.ph1209, %184 ], [ %.0762.ph1209, %176 ], [ %.0762.ph1209, %182 ], [ %.0762.ph1209, %174 ], [ %.0762.ph1209, %139 ], [ %.0762.ph1209, %136 ], [ %.0762.ph1209, %134 ], [ %.0762.ph1209, %130 ], [ %104, %103 ], [ %.0762.ph1209, %102 ], [ %.0762.ph1209, %101 ], [ %.0762.ph1209, %100 ], [ %.0762.ph1209, %98 ], [ %.0762.ph1209, %90 ], [ %.0762.ph1209, %89 ], [ %.0762.ph1209, %88 ], [ %.0762.ph1209, %87 ], [ %.0762.ph1209, %85 ], [ %.0762.ph1209, %83 ], [ %.0762.ph1209, %74 ], [ %.0762.ph1209, %72 ], [ %.0762.ph1209, %60 ], [ %.0762.ph1209, %91 ], [ %.0762.ph1209, %141 ], [ %.0762.ph1209, %148 ], [ %.0762.ph1209, %150 ], [ %.0762.ph1209, %157 ], [ %.0762.ph1209, %201 ], [ %.0762.ph1209, %208 ], [ %.0762.ph1209, %186 ], [ %.0762.ph1209, %.lr.ph1174 ], [ %.0762.ph1209, %196 ]
  %.2749 = phi ptr [ %.0747.ph1210, %210 ], [ %.0747.ph1210, %199 ], [ %.0747.ph1210, %184 ], [ %.0747.ph1210, %176 ], [ %.0747.ph1210, %182 ], [ %.0747.ph1210, %174 ], [ %.0747.ph1210, %139 ], [ %.0747.ph1210, %136 ], [ %.0747.ph1210, %134 ], [ %.0747.ph1210, %130 ], [ %.0747.ph1210, %103 ], [ %.0747.ph1210, %102 ], [ %.0747.ph1210, %101 ], [ %.0747.ph1210, %100 ], [ %.0747.ph1210, %98 ], [ %.0747.ph1210, %90 ], [ %.0747.ph1210, %89 ], [ %.0747.ph1210, %88 ], [ %.0747.ph1210, %87 ], [ %.0747.ph1210, %85 ], [ %.0747.ph1210, %83 ], [ %.0747.ph1210, %74 ], [ %.0747.ph1210, %72 ], [ %.0747.ph1210, %60 ], [ %.0747.ph1210, %91 ], [ %.0747.ph1210, %141 ], [ %.0747.ph1210, %148 ], [ %.0747.ph1210, %150 ], [ %.0747.ph1210, %157 ], [ %.0747.ph1210, %201 ], [ %.0747.ph1210, %208 ], [ %spec.select, %186 ], [ %spec.select, %.lr.ph1174 ], [ %spec.select, %196 ]
  %212 = load ptr, ptr %8, align 8, !tbaa !5
  %213 = load i8, ptr %212, align 1, !tbaa !9
  %.not985 = icmp eq i8 %213, 0
  br i1 %.not985, label %.outer._crit_edge, label %214

214:                                              ; preds = %.critedge9
  %215 = load ptr, ptr %50, align 8, !tbaa !5
  %216 = sext i8 %213 to i64
  %217 = getelementptr inbounds i16, ptr %215, i64 %216
  %218 = load i16, ptr %217, align 2, !tbaa !10
  %219 = and i16 %218, 8192
  %.not986 = icmp eq i16 %219, 0
  br i1 %.not986, label %220, label %.outer

220:                                              ; preds = %214
  %221 = load ptr, ptr %30, align 8, !tbaa !25
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %0, ptr noundef %221, i32 noundef 6353, ptr noundef nonnull @.str.6, ptr noundef nonnull %212) #13
  call void @qh_errexit_rbox(ptr noundef %0, i32 noundef 1)
  %.pre1578 = load ptr, ptr %8, align 8, !tbaa !5
  %.pre1579 = load i8, ptr %.pre1578, align 1, !tbaa !9
  br label %.outer

.outer:                                           ; preds = %220, %214
  %222 = phi i8 [ %.pre1579, %220 ], [ %213, %214 ]
  %223 = phi ptr [ %.pre1578, %220 ], [ %212, %214 ]
  %.not9181069 = icmp eq i8 %222, 0
  br i1 %.not9181069, label %.outer._crit_edge, label %.preheader1056.lr.ph, !llvm.loop !22

.outer._crit_edge:                                ; preds = %.critedge9, %.outer, %56, %.critedge2.thread, %43
  %.0897.ph.lcssa = phi i32 [ %.0897.ph1177, %43 ], [ %.0897.ph1177, %.critedge2.thread ], [ %.0897.ph1177, %56 ], [ %.2899, %.outer ], [ %.2899, %.critedge9 ]
  %.0894.ph.lcssa = phi i32 [ %.0894.ph1178, %43 ], [ %.0894.ph1178, %.critedge2.thread ], [ %.0894.ph1178, %56 ], [ %.2896, %.outer ], [ %.2896, %.critedge9 ]
  %.0888.ph.lcssa = phi i32 [ %.0888.ph1179, %43 ], [ %.0888.ph1179, %.critedge2.thread ], [ %.0888.ph1179, %56 ], [ %.1889, %.outer ], [ %.1889, %.critedge9 ]
  %.0883.ph.lcssa = phi i32 [ %.0883.ph1180, %43 ], [ %.0883.ph1180, %.critedge2.thread ], [ %.0883.ph1180, %56 ], [ %.1884, %.outer ], [ %.1884, %.critedge9 ]
  %.0877.ph.lcssa = phi i32 [ %.0877.ph1182, %43 ], [ %.0877.ph1182, %.critedge2.thread ], [ %.0877.ph1182, %56 ], [ %.1878, %.outer ], [ %.1878, %.critedge9 ]
  %.0874.ph.lcssa = phi i32 [ %.0874.ph1183, %43 ], [ %.0874.ph1183, %.critedge2.thread ], [ %.0874.ph1183, %56 ], [ %.1875, %.outer ], [ %.1875, %.critedge9 ]
  %.0872.ph.lcssa = phi i32 [ %.0872.ph1184, %43 ], [ %.0872.ph1184, %.critedge2.thread ], [ %.0872.ph1184, %56 ], [ %.1873, %.outer ], [ %.1873, %.critedge9 ]
  %.0870.ph.lcssa = phi i32 [ %.0870.ph1185, %43 ], [ %.0870.ph1185, %.critedge2.thread ], [ %.0870.ph1185, %56 ], [ %.1871, %.outer ], [ %.1871, %.critedge9 ]
  %.0868.ph.lcssa = phi i32 [ %.0868.ph1186, %43 ], [ %.0868.ph1186, %.critedge2.thread ], [ %.0868.ph1186, %56 ], [ %.1869, %.outer ], [ %.1869, %.critedge9 ]
  %.0865.ph.lcssa = phi i32 [ %.0865.ph1187, %43 ], [ %.0865.ph1187, %.critedge2.thread ], [ %.0865.ph1187, %56 ], [ %.1866, %.outer ], [ %.1866, %.critedge9 ]
  %.0863.ph.lcssa = phi i32 [ %.0863.ph1188, %43 ], [ %.0863.ph1188, %.critedge2.thread ], [ %.0863.ph1188, %56 ], [ %.1864, %.outer ], [ %.1864, %.critedge9 ]
  %.0861.ph.lcssa = phi i32 [ %.0861.ph1189, %43 ], [ %.0861.ph1189, %.critedge2.thread ], [ %.0861.ph1189, %56 ], [ %.1862, %.outer ], [ %.1862, %.critedge9 ]
  %.0854.ph.lcssa = phi i32 [ %.0854.ph1190, %43 ], [ %.0854.ph1190, %.critedge2.thread ], [ %.0854.ph1190, %56 ], [ %.1855, %.outer ], [ %.1855, %.critedge9 ]
  %.0852.ph.lcssa = phi i32 [ %.0852.ph1191, %43 ], [ %.0852.ph1191, %.critedge2.thread ], [ %.0852.ph1191, %56 ], [ %.1853, %.outer ], [ %.1853, %.critedge9 ]
  %.0850.ph.lcssa = phi i32 [ %.0850.ph1192, %43 ], [ %.0850.ph1192, %.critedge2.thread ], [ %.0850.ph1192, %56 ], [ %.1851, %.outer ], [ %.1851, %.critedge9 ]
  %.0848.ph.lcssa = phi i32 [ %.0848.ph1193, %43 ], [ %.0848.ph1193, %.critedge2.thread ], [ %.0848.ph1193, %56 ], [ %.1849, %.outer ], [ %.1849, %.critedge9 ]
  %.0846.ph.lcssa = phi i32 [ %.0846.ph1194, %43 ], [ %.0846.ph1194, %.critedge2.thread ], [ %.0846.ph1194, %56 ], [ %.1847, %.outer ], [ %.1847, %.critedge9 ]
  %.0844.ph.lcssa = phi i32 [ %.0844.ph1195, %43 ], [ %.0844.ph1195, %.critedge2.thread ], [ %.0844.ph1195, %56 ], [ %.1845, %.outer ], [ %.1845, %.critedge9 ]
  %.0842.ph.lcssa = phi i32 [ %.0842.ph1196, %43 ], [ %.0842.ph1196, %.critedge2.thread ], [ %.0842.ph1196, %56 ], [ %.1843, %.outer ], [ %.1843, %.critedge9 ]
  %.0840.ph.lcssa = phi i32 [ %.0840.ph1197, %43 ], [ %.0840.ph1197, %.critedge2.thread ], [ %.0840.ph1197, %56 ], [ %.1841, %.outer ], [ %.1841, %.critedge9 ]
  %.0838.ph.lcssa = phi i32 [ %.0838.ph1198, %43 ], [ %.0838.ph1198, %.critedge2.thread ], [ %.0838.ph1198, %56 ], [ %.1839, %.outer ], [ %.1839, %.critedge9 ]
  %.0836.ph.lcssa = phi i32 [ %.0836.ph1199, %43 ], [ %.0836.ph1199, %.critedge2.thread ], [ %.0836.ph1199, %56 ], [ %.1837, %.outer ], [ %.1837, %.critedge9 ]
  %.0834.ph.lcssa = phi double [ %.0834.ph1200, %43 ], [ %.0834.ph1200, %.critedge2.thread ], [ %.0834.ph1200, %56 ], [ %.1835, %.outer ], [ %.1835, %.critedge9 ]
  %.0825.ph.lcssa = phi double [ %.0825.ph1201, %43 ], [ %.0825.ph1201, %.critedge2.thread ], [ %.0825.ph1201, %56 ], [ %.2827, %.outer ], [ %.2827, %.critedge9 ]
  %.0820.ph.lcssa = phi double [ %.0820.ph1202, %43 ], [ %.0820.ph1202, %.critedge2.thread ], [ %.0820.ph1202, %56 ], [ %.3823, %.outer ], [ %.3823, %.critedge9 ]
  %.0817.ph.lcssa = phi double [ %.0817.ph1203, %43 ], [ %.0817.ph1203, %.critedge2.thread ], [ %.0817.ph1203, %56 ], [ %.2819, %.outer ], [ %.2819, %.critedge9 ]
  %.0810.ph.lcssa = phi double [ %.0810.ph1204, %43 ], [ %.0810.ph1204, %.critedge2.thread ], [ %.0810.ph1204, %56 ], [ %.2812, %.outer ], [ %.2812, %.critedge9 ]
  %.0807.ph.lcssa = phi double [ %.0807.ph1205, %43 ], [ %.0807.ph1205, %.critedge2.thread ], [ %.0807.ph1205, %56 ], [ %.2809, %.outer ], [ %.2809, %.critedge9 ]
  %.0804.ph.lcssa = phi double [ %.0804.ph1206, %43 ], [ %.0804.ph1206, %.critedge2.thread ], [ %.0804.ph1206, %56 ], [ %.2806, %.outer ], [ %.2806, %.critedge9 ]
  %.0768.ph.lcssa = phi double [ %.0768.ph1207, %43 ], [ %.0768.ph1207, %.critedge2.thread ], [ %.0768.ph1207, %56 ], [ %.1769, %.outer ], [ %.1769, %.critedge9 ]
  %.0765.ph.lcssa = phi double [ %.0765.ph1208, %43 ], [ %.0765.ph1208, %.critedge2.thread ], [ %.0765.ph1208, %56 ], [ %.1766, %.outer ], [ %.1766, %.critedge9 ]
  %.0762.ph.lcssa = phi double [ %.0762.ph1209, %43 ], [ %.0762.ph1209, %.critedge2.thread ], [ %.0762.ph1209, %56 ], [ %.1763, %.outer ], [ %.1763, %.critedge9 ]
  %224 = phi ptr [ %.0747.ph1210, %43 ], [ %.0747.ph1210, %.critedge2.thread ], [ %.0747.ph1210, %56 ], [ %.2749, %.outer ], [ %.2749, %.critedge9 ]
  %.0880.lcssa = phi i32 [ %.08801070, %43 ], [ %57, %56 ], [ %.08801070, %.critedge2.thread ], [ %.08801070, %.outer ], [ %.08801070, %.critedge9 ]
  %.0883.ph.lcssa.fr = freeze i32 %.0883.ph.lcssa
  %225 = getelementptr inbounds i8, ptr %0, i64 3232
  %226 = load i32, ptr %225, align 8, !tbaa !14
  %227 = icmp eq i32 %226, 0
  %228 = icmp ne i32 %.0842.ph.lcssa, 0
  %or.cond11 = select i1 %227, i1 true, i1 %228
  %.2764 = select i1 %or.cond11, double %.0762.ph.lcssa, double 1.000000e+06
  %.not922.not = icmp ne i32 %.0861.ph.lcssa, 0
  br i1 %.not922.not, label %229, label %236

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

235:                                              ; preds = %229
  br label %236

236:                                              ; preds = %.outer._crit_edge, %229, %235
  %.0861.ph.lcssa1659 = phi i32 [ %.0861.ph.lcssa, %235 ], [ %.0861.ph.lcssa, %229 ], [ 0, %.outer._crit_edge ]
  %.0893 = phi i32 [ %233, %235 ], [ %233, %229 ], [ 0, %.outer._crit_edge ]
  %.2770 = phi double [ %.2764, %235 ], [ %.0768.ph.lcssa, %229 ], [ %.0768.ph.lcssa, %.outer._crit_edge ]
  %.not923.not = icmp ne i32 %.0848.ph.lcssa, 0
  br i1 %.not923.not, label %237, label %241

237:                                              ; preds = %236
  %238 = shl nsw i32 %.0883.ph.lcssa.fr, 1
  %239 = fcmp oeq double %.0765.ph.lcssa, 0.000000e+00
  br i1 %239, label %240, label %241

240:                                              ; preds = %237
  br label %241

241:                                              ; preds = %236, %237, %240
  %.0848.ph.lcssa16641735 = phi i32 [ %.0848.ph.lcssa, %240 ], [ %.0848.ph.lcssa, %237 ], [ 0, %236 ]
  %.0892 = phi i32 [ %238, %240 ], [ %238, %237 ], [ 0, %236 ]
  %.2767 = phi double [ %.2764, %240 ], [ %.0765.ph.lcssa, %237 ], [ %.0765.ph.lcssa, %236 ]
  %.not1949 = icmp eq i32 %.0868.ph.lcssa, 0
  br i1 %.not1949, label %256, label %242

242:                                              ; preds = %241
  %.not924 = icmp eq i32 %.0872.ph.lcssa, 0
  br i1 %.not924, label %246, label %243

243:                                              ; preds = %242
  %244 = getelementptr inbounds i8, ptr %0, i64 2424
  %245 = load ptr, ptr %244, align 8, !tbaa !25
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef nonnull %0, ptr noundef %245, i32 noundef 6190, ptr noundef nonnull @.str.7) #13
  call void @qh_errexit_rbox(ptr noundef nonnull %0, i32 noundef 1)
  br label %246

246:                                              ; preds = %243, %242
  %247 = fcmp ugt double %.0820.ph.lcssa, 1.000000e+00
  br i1 %247, label %251, label %248

248:                                              ; preds = %246
  %249 = getelementptr inbounds i8, ptr %0, i64 2424
  %250 = load ptr, ptr %249, align 8, !tbaa !25
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef nonnull %0, ptr noundef %250, i32 noundef 6191, ptr noundef nonnull @.str.8, double noundef %.0820.ph.lcssa) #13
  call void @qh_errexit_rbox(ptr noundef nonnull %0, i32 noundef 1)
  br label %251

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

256:                                              ; preds = %.thread1753, %251, %241
  %257 = phi i1 [ true, %251 ], [ false, %241 ], [ false, %.thread1753 ]
  %.27671825 = phi double [ %.2767, %251 ], [ %.2767, %241 ], [ 0.000000e+00, %.thread1753 ]
  %.08921824 = phi i32 [ %.0892, %251 ], [ %.0892, %241 ], [ 0, %.thread1753 ]
  %.not922168217191823 = phi i1 [ %.not922.not, %251 ], [ %.not922.not, %241 ], [ false, %.thread1753 ]
  %.2764168117201822 = phi double [ %.2764, %251 ], [ %.2764, %241 ], [ %.27641646, %.thread1753 ]
  %258 = phi ptr [ %225, %251 ], [ %225, %241 ], [ %26, %.thread1753 ]
  %.0883.ph.lcssa.fr167917211821 = phi i32 [ %.0883.ph.lcssa.fr, %251 ], [ %.0883.ph.lcssa.fr, %241 ], [ 3, %.thread1753 ]
  %.0880.lcssa167817221820 = phi i32 [ %.0880.lcssa, %251 ], [ %.0880.lcssa, %241 ], [ 0, %.thread1753 ]
  %259 = phi ptr [ %224, %251 ], [ %224, %241 ], [ null, %.thread1753 ]
  %.0804.ph.lcssa167617231819 = phi double [ %.0804.ph.lcssa, %251 ], [ %.0804.ph.lcssa, %241 ], [ 5.000000e+00, %.thread1753 ]
  %.0807.ph.lcssa167517241818 = phi double [ %.0807.ph.lcssa, %251 ], [ %.0807.ph.lcssa, %241 ], [ 4.000000e+00, %.thread1753 ]
  %.0810.ph.lcssa167417251817 = phi double [ %.0810.ph.lcssa, %251 ], [ %.0810.ph.lcssa, %241 ], [ 3.000000e+00, %.thread1753 ]
  %.0817.ph.lcssa167317261816 = phi double [ %.0817.ph.lcssa, %251 ], [ %.0817.ph.lcssa, %241 ], [ 0.000000e+00, %.thread1753 ]
  %.0820.ph.lcssa167217271815 = phi double [ %.0820.ph.lcssa, %251 ], [ %.0820.ph.lcssa, %241 ], [ 0.000000e+00, %.thread1753 ]
  %.0825.ph.lcssa167117281814 = phi double [ %.0825.ph.lcssa, %251 ], [ %.0825.ph.lcssa, %241 ], [ 0.000000e+00, %.thread1753 ]
  %.0834.ph.lcssa167017291813 = phi double [ %.0834.ph.lcssa, %251 ], [ %.0834.ph.lcssa, %241 ], [ 0.000000e+00, %.thread1753 ]
  %.0836.ph.lcssa166917301812 = phi i32 [ %.0836.ph.lcssa, %251 ], [ %.0836.ph.lcssa, %241 ], [ 0, %.thread1753 ]
  %.0838.ph.lcssa166817311811 = phi i32 [ %.0838.ph.lcssa, %251 ], [ %.0838.ph.lcssa, %241 ], [ 0, %.thread1753 ]
  %.0840.ph.lcssa166717321810 = phi i32 [ %.0840.ph.lcssa, %251 ], [ %.0840.ph.lcssa, %241 ], [ 0, %.thread1753 ]
  %.0844.ph.lcssa166617331809 = phi i32 [ %.0844.ph.lcssa, %251 ], [ %.0844.ph.lcssa, %241 ], [ 0, %.thread1753 ]
  %.0846.ph.lcssa166517341808 = phi i32 [ %.0846.ph.lcssa, %251 ], [ %.0846.ph.lcssa, %241 ], [ 0, %.thread1753 ]
  %.0848.ph.lcssa166417351807 = phi i32 [ %.0848.ph.lcssa16641735, %251 ], [ %.0848.ph.lcssa16641735, %241 ], [ 0, %.thread1753 ]
  %.0850.ph.lcssa166317361806 = phi i32 [ %.0850.ph.lcssa, %251 ], [ %.0850.ph.lcssa, %241 ], [ 0, %.thread1753 ]
  %.0852.ph.lcssa166217371805 = phi i32 [ %.0852.ph.lcssa, %251 ], [ %.0852.ph.lcssa, %241 ], [ 0, %.thread1753 ]
  %.0854.ph.lcssa166017381804 = phi i32 [ %.0854.ph.lcssa, %251 ], [ %.0854.ph.lcssa, %241 ], [ 0, %.thread1753 ]
  %.0861.ph.lcssa165917391803 = phi i32 [ %.0861.ph.lcssa1659, %251 ], [ %.0861.ph.lcssa1659, %241 ], [ 0, %.thread1753 ]
  %.0863.ph.lcssa165817401802 = phi i32 [ %.0863.ph.lcssa, %251 ], [ %.0863.ph.lcssa, %241 ], [ 0, %.thread1753 ]
  %.0865.ph.lcssa165717411801 = phi i32 [ %.0865.ph.lcssa, %251 ], [ %.0865.ph.lcssa, %241 ], [ 0, %.thread1753 ]
  %.0868.ph.lcssa165617421800 = phi i32 [ %.0868.ph.lcssa, %251 ], [ 0, %241 ], [ 0, %.thread1753 ]
  %.0870.ph.lcssa165517431799 = phi i32 [ %.0870.ph.lcssa, %251 ], [ %.0870.ph.lcssa, %241 ], [ 0, %.thread1753 ]
  %.0872.ph.lcssa165417441798 = phi i32 [ %.0872.ph.lcssa, %251 ], [ %.0872.ph.lcssa, %241 ], [ 0, %.thread1753 ]
  %.0874.ph.lcssa165317451797 = phi i32 [ %.0874.ph.lcssa, %251 ], [ %.0874.ph.lcssa, %241 ], [ 0, %.thread1753 ]
  %.0877.ph.lcssa165217461796 = phi i32 [ %.0877.ph.lcssa, %251 ], [ %.0877.ph.lcssa, %241 ], [ 0, %.thread1753 ]
  %.0888.ph.lcssa165117471795 = phi i32 [ %.0888.ph.lcssa, %251 ], [ %.0888.ph.lcssa, %241 ], [ 0, %.thread1753 ]
  %.0894.ph.lcssa165017481794 = phi i32 [ %.0894.ph.lcssa, %251 ], [ %.0894.ph.lcssa, %241 ], [ 0, %.thread1753 ]
  %.0897.ph.lcssa164817491793 = phi i32 [ %.0897.ph.lcssa, %251 ], [ %.0897.ph.lcssa, %241 ], [ 0, %.thread1753 ]
  %.089317501792 = phi i32 [ %.0893, %251 ], [ %.0893, %241 ], [ 0, %.thread1753 ]
  %.277017511791 = phi double [ %.2770, %251 ], [ %.2770, %241 ], [ 0.000000e+00, %.thread1753 ]
  %.not92317521790 = phi i1 [ %.not923.not, %251 ], [ %.not923.not, %241 ], [ false, %.thread1753 ]
  %.0775 = phi double [ %253, %251 ], [ 0.000000e+00, %241 ], [ 0.000000e+00, %.thread1753 ]
  %.0774 = phi double [ %255, %251 ], [ 1.000000e+00, %241 ], [ 1.000000e+00, %.thread1753 ]
  %260 = icmp ne i32 %.0880.lcssa167817221820, 0
  %261 = icmp ne i32 %.0838.ph.lcssa166817311811, 0
  %or.cond43 = select i1 %260, i1 true, i1 %261
  %.pre1583 = add nuw nsw i32 %.0840.ph.lcssa166717321810, %.0852.ph.lcssa166217371805
  br i1 %or.cond43, label %._crit_edge, label %262

262:                                              ; preds = %256
  %263 = add nuw nsw i32 %.pre1583, %.0874.ph.lcssa165317451797
  %264 = add nuw nsw i32 %263, %.0872.ph.lcssa165417441798
  %265 = add nuw nsw i32 %264, %.0868.ph.lcssa165617421800
  %266 = add nuw nsw i32 %265, %.0865.ph.lcssa165717411801
  %267 = add nuw nsw i32 %266, %.0863.ph.lcssa165817401802
  %268 = or i32 %267, %.0836.ph.lcssa166917301812
  %.not925 = icmp eq i32 %268, 0
  br i1 %.not925, label %272, label %269

269:                                              ; preds = %262
  %270 = getelementptr inbounds i8, ptr %0, i64 2424
  %271 = load ptr, ptr %270, align 8, !tbaa !25
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef nonnull %0, ptr noundef %271, i32 noundef 6192, ptr noundef nonnull @.str.9) #13
  call void @qh_errexit_rbox(ptr noundef nonnull %0, i32 noundef 1)
  br label %._crit_edge

272:                                              ; preds = %262
  %273 = add nuw nsw i32 %.0848.ph.lcssa166417351807, %.0861.ph.lcssa165917391803
  %274 = sub i32 0, %.0877.ph.lcssa165217461796
  %.not926 = icmp eq i32 %273, %274
  %spec.select987 = select i1 %.not926, i32 50, i32 0
  %spec.select988 = select i1 %.not926, i32 1, i32 %.0874.ph.lcssa165317451797
  br label %._crit_edge

._crit_edge:                                      ; preds = %256, %272, %269
  %.1881 = phi i32 [ %spec.select987, %272 ], [ 0, %269 ], [ %.0880.lcssa167817221820, %256 ]
  %.2876 = phi i32 [ %spec.select988, %272 ], [ %.0874.ph.lcssa165317451797, %269 ], [ %.0874.ph.lcssa165317451797, %256 ]
  %275 = add nuw nsw i32 %.pre1583, %.0868.ph.lcssa165617421800
  %276 = add nuw nsw i32 %275, %.0836.ph.lcssa166917301812
  %277 = icmp sgt i32 %276, 1
  br i1 %277, label %282, label %278

278:                                              ; preds = %._crit_edge
  %279 = add nuw nsw i32 %.pre1583, %.0836.ph.lcssa166917301812
  %280 = add nuw nsw i32 %279, %.2876
  %281 = icmp sgt i32 %280, 1
  br i1 %281, label %282, label %285

282:                                              ; preds = %278, %._crit_edge
  %283 = getelementptr inbounds i8, ptr %0, i64 2424
  %284 = load ptr, ptr %283, align 8, !tbaa !25
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef nonnull %0, ptr noundef %284, i32 noundef 6193, ptr noundef nonnull @.str.10) #13
  call void @qh_errexit_rbox(ptr noundef nonnull %0, i32 noundef 1)
  br label %285

285:                                              ; preds = %282, %278
  %286 = icmp sgt i32 %.0894.ph.lcssa165017481794, 0
  br i1 %286, label %288, label %.thread

.thread:                                          ; preds = %285
  %287 = icmp ne i32 %.0865.ph.lcssa165717411801, 0
  br label %298

288:                                              ; preds = %285
  %289 = icmp eq i32 %.1881, 0
  %290 = icmp sgt i32 %.0897.ph.lcssa164817491793, %.1881
  %or.cond990 = select i1 %289, i1 true, i1 %290
  br i1 %or.cond990, label %291, label %294

291:                                              ; preds = %288
  %292 = getelementptr inbounds i8, ptr %0, i64 2424
  %293 = load ptr, ptr %292, align 8, !tbaa !25
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef nonnull %0, ptr noundef %293, i32 noundef 6270, ptr noundef nonnull @.str.11, i32 noundef %.0897.ph.lcssa164817491793, i32 noundef %.1881) #13
  call void @qh_errexit_rbox(ptr noundef nonnull %0, i32 noundef 1)
  br label %294

294:                                              ; preds = %288, %291
  %.not1021 = icmp eq i32 %.0865.ph.lcssa165717411801, 0
  br i1 %.not1021, label %298, label %295

295:                                              ; preds = %294
  %296 = getelementptr inbounds i8, ptr %0, i64 2424
  %297 = load ptr, ptr %296, align 8, !tbaa !25
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef nonnull %0, ptr noundef %297, i32 noundef 6423, ptr noundef nonnull @.str.12) #13
  call void @qh_errexit_rbox(ptr noundef nonnull %0, i32 noundef 1)
  br label %298

298:                                              ; preds = %.thread, %295, %294
  %299 = phi i1 [ %287, %.thread ], [ true, %295 ], [ false, %294 ]
  %300 = icmp eq i32 %.0897.ph.lcssa164817491793, 0
  %spec.select991 = select i1 %300, i32 %.1881, i32 %.0897.ph.lcssa164817491793
  %301 = icmp ne i32 %.0840.ph.lcssa166717321810, 0
  %302 = icmp ne i32 %.0836.ph.lcssa166917301812, 0
  %or.cond15 = select i1 %301, i1 true, i1 %302
  br i1 %or.cond15, label %322, label %303

303:                                              ; preds = %298
  br i1 %261, label %304, label %307

304:                                              ; preds = %303
  %305 = add i32 %.0883.ph.lcssa.fr167917211821, 1
  %306 = add i32 %305, %.1881
  br label %322

307:                                              ; preds = %303
  br i1 %299, label %308, label %320

308:                                              ; preds = %307
  switch i32 %.0883.ph.lcssa.fr167917211821, label %322 [
    i32 2, label %309
    i32 3, label %312
  ]

309:                                              ; preds = %308
  br i1 %257, label %310, label %322

310:                                              ; preds = %309
  %reass.add928 = shl i32 %.1881, 1
  %311 = add i32 %reass.add928, -2
  br label %322

312:                                              ; preds = %308
  br i1 %257, label %313, label %315

313:                                              ; preds = %312
  %314 = mul nsw i32 %.1881, 3
  br label %322

315:                                              ; preds = %312
  %.not927 = icmp eq i32 %.0854.ph.lcssa166017381804, 0
  br i1 %.not927, label %318, label %316

316:                                              ; preds = %315
  %reass.add = shl i32 %.1881, 1
  %317 = or disjoint i32 %reass.add, 1
  br label %322

318:                                              ; preds = %315
  %319 = add nsw i32 %.1881, 2
  br label %322

320:                                              ; preds = %307
  %321 = add nsw i32 %.1881, %.0872.ph.lcssa165417441798
  br label %322

322:                                              ; preds = %308, %298, %304, %310, %309, %313, %318, %316, %320
  %.0879 = phi i32 [ %306, %304 ], [ %311, %310 ], [ %.1881, %309 ], [ %314, %313 ], [ %317, %316 ], [ %319, %318 ], [ %321, %320 ], [ %.1881, %298 ], [ %.1881, %308 ]
  %323 = mul nsw i32 %spec.select991, %.0894.ph.lcssa165017481794
  %324 = add i32 %.089317501792, %.0877.ph.lcssa165217461796
  %325 = add i32 %324, %.08921824
  %326 = add i32 %325, %323
  %327 = add i32 %326, %.0879
  %328 = icmp eq i32 %.0844.ph.lcssa166617331809, 0
  br i1 %328, label %.preheader1052, label %337

.preheader1052:                                   ; preds = %322
  %329 = load i8, ptr %6, align 16, !tbaa !9
  %.not9311245 = icmp eq i8 %329, 0
  br i1 %.not9311245, label %.loopexit1053, label %.lr.ph1248

.lr.ph1248:                                       ; preds = %.preheader1052, %.lr.ph1248
  %330 = phi i8 [ %336, %.lr.ph1248 ], [ %329, %.preheader1052 ]
  %.28901247 = phi i32 [ %334, %.lr.ph1248 ], [ %.0888.ph.lcssa165117471795, %.preheader1052 ]
  %storemerge1246 = phi ptr [ %335, %.lr.ph1248 ], [ %6, %.preheader1052 ]
  %331 = icmp eq i8 %330, 121
  %or.cond993 = and i1 %261, %331
  %332 = sext i8 %330 to i32
  %spec.select1020 = select i1 %or.cond993, i32 120, i32 %332
  %333 = mul nsw i32 %.28901247, 11
  %334 = add nsw i32 %spec.select1020, %333
  %335 = getelementptr inbounds i8, ptr %storemerge1246, i64 1
  %336 = load i8, ptr %335, align 1, !tbaa !9
  %.not931 = icmp eq i8 %336, 0
  br i1 %.not931, label %.loopexit1053, label %.lr.ph1248, !llvm.loop !28

337:                                              ; preds = %322
  %.not929 = icmp eq i32 %.0846.ph.lcssa166517341808, 0
  br i1 %.not929, label %350, label %338

338:                                              ; preds = %337
  %339 = call i64 @time(ptr noundef nonnull %9) #13
  %340 = trunc i64 %339 to i32
  %341 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %7, ptr noundef nonnull dereferenceable(1) @.str.13, i32 noundef %340) #13
  %342 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %6) #14
  %343 = sub i64 249, %342
  %344 = call ptr @strncat(ptr noundef nonnull dereferenceable(1) %6, ptr noundef nonnull %7, i64 noundef %343) #13
  %345 = call ptr @strstr(ptr noundef nonnull dereferenceable(1) %6, ptr noundef nonnull dereferenceable(1) @.str.14) #14
  %.not930 = icmp eq ptr %345, null
  br i1 %.not930, label %350, label %346

346:                                              ; preds = %338
  %347 = getelementptr inbounds i8, ptr %345, i64 1
  %348 = getelementptr inbounds i8, ptr %345, i64 3
  %349 = call ptr @strcpy(ptr noundef nonnull dereferenceable(1) %347, ptr noundef nonnull dereferenceable(1) %348) #13
  br label %350

.loopexit1053:                                    ; preds = %.lr.ph1248, %.preheader1052
  %storemerge.lcssa = phi ptr [ %6, %.preheader1052 ], [ %335, %.lr.ph1248 ]
  %.2890.lcssa = phi i32 [ %.0888.ph.lcssa165117471795, %.preheader1052 ], [ %334, %.lr.ph1248 ]
  store ptr %storemerge.lcssa, ptr %8, align 8, !tbaa !5
  br label %350

350:                                              ; preds = %.loopexit1053, %337, %346, %338
  %.3891 = phi i32 [ %340, %346 ], [ %340, %338 ], [ %.0888.ph.lcssa165117471795, %337 ], [ %.2890.lcssa, %.loopexit1053 ]
  call void @qh_srand(ptr noundef %0, i32 noundef %.3891) #13
  %.not932 = icmp eq i32 %.0870.ph.lcssa165517431799, 0
  br i1 %.not932, label %358, label %351

351:                                              ; preds = %350
  %352 = getelementptr inbounds i8, ptr %0, i64 2416
  %353 = load ptr, ptr %352, align 8, !tbaa !29
  %.not934 = icmp eq i32 %.0850.ph.lcssa166317361806, 0
  %354 = select i1 %.not934, ptr %6, ptr @.str.16
  %355 = add nsw i32 %.0883.ph.lcssa.fr167917211821, 1
  %356 = load i32, ptr %258, align 8, !tbaa !14
  %.not935 = icmp eq i32 %356, 0
  %357 = select i1 %.not935, ptr @.str.18, ptr @.str.17
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %0, ptr noundef %353, i32 noundef 9391, ptr noundef nonnull @.str.15, ptr noundef nonnull %354, i32 noundef %327, i32 noundef %355, ptr noundef nonnull %357) #13
  br label %363

358:                                              ; preds = %350
  %.not933 = icmp eq i32 %.0850.ph.lcssa166317361806, 0
  %359 = getelementptr inbounds i8, ptr %0, i64 2416
  %360 = load ptr, ptr %359, align 8, !tbaa !29
  br i1 %.not933, label %362, label %361

361:                                              ; preds = %358
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %0, ptr noundef %360, i32 noundef 9392, ptr noundef nonnull @.str.19, i32 noundef %.0883.ph.lcssa.fr167917211821, i32 noundef %327) #13
  br label %363

362:                                              ; preds = %358
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %0, ptr noundef %360, i32 noundef 9393, ptr noundef nonnull @.str.20, i32 noundef %.0883.ph.lcssa.fr167917211821, ptr noundef nonnull %6, i32 noundef %327) #13
  br label %363

363:                                              ; preds = %361, %362, %351
  store ptr %259, ptr %8, align 8, !tbaa !5
  %.not936 = icmp eq ptr %259, null
  br i1 %.not936, label %.critedge17, label %.preheader1050

.preheader1050:                                   ; preds = %363
  %364 = load i8, ptr %259, align 1, !tbaa !9
  %.not9371264 = icmp eq i8 %364, 0
  br i1 %.not9371264, label %.critedge17, label %.lr.ph1265

.lr.ph1265:                                       ; preds = %.preheader1050
  %365 = getelementptr inbounds i8, ptr %0, i64 2424
  %366 = getelementptr inbounds i8, ptr %0, i64 2416
  br label %368

.loopexit1048:                                    ; preds = %406
  %367 = load i8, ptr %405, align 1, !tbaa !9
  %.not937 = icmp eq i8 %367, 0
  br i1 %.not937, label %.critedge17, label %368, !llvm.loop !30

368:                                              ; preds = %.lr.ph1265, %.loopexit1048
  %369 = phi ptr [ %259, %.lr.ph1265 ], [ %405, %.loopexit1048 ]
  br i1 %.not932, label %371, label %370

370:                                              ; preds = %368
  call void @qh_out1(ptr noundef %0, double noundef 1.000000e+00)
  %.pre1580 = load ptr, ptr %8, align 8, !tbaa !5
  br label %371

371:                                              ; preds = %370, %368
  %372 = phi ptr [ %.pre1580, %370 ], [ %369, %368 ]
  %373 = getelementptr inbounds i8, ptr %372, i64 1
  store ptr %373, ptr %8, align 8, !tbaa !5
  %374 = load i8, ptr %373, align 1, !tbaa !9
  %.not9381251 = icmp eq i8 %374, 0
  br i1 %.not9381251, label %._crit_edge1255, label %.lr.ph1254

.lr.ph1254:                                       ; preds = %371, %389
  %375 = phi ptr [ %391, %389 ], [ %373, %371 ]
  %.08861252 = phi i32 [ %377, %389 ], [ 0, %371 ]
  %376 = call double @qh_strtod(ptr noundef nonnull %375, ptr noundef nonnull %8) #13
  call void @qh_out1(ptr noundef %0, double noundef %376)
  %377 = add nuw nsw i32 %.08861252, 1
  %378 = tail call ptr @__ctype_b_loc() #15
  %379 = load ptr, ptr %378, align 8, !tbaa !5
  %380 = load ptr, ptr %8, align 8, !tbaa !5
  %381 = load i8, ptr %380, align 1, !tbaa !9
  %382 = sext i8 %381 to i64
  %383 = getelementptr inbounds i16, ptr %379, i64 %382
  %384 = load i16, ptr %383, align 2, !tbaa !10
  %385 = and i16 %384, 8192
  %.not939 = icmp ne i16 %385, 0
  %.not940 = icmp eq i8 %381, 0
  %or.cond994 = or i1 %.not940, %.not939
  br i1 %or.cond994, label %._crit_edge1255, label %386

386:                                              ; preds = %.lr.ph1254
  %.not941 = icmp eq i8 %381, 44
  br i1 %.not941, label %389, label %387

387:                                              ; preds = %386
  %388 = load ptr, ptr %365, align 8, !tbaa !25
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %0, ptr noundef %388, i32 noundef 6194, ptr noundef nonnull @.str.21, ptr noundef nonnull %380) #13
  call void @qh_errexit_rbox(ptr noundef %0, i32 noundef 1)
  %.pre1581 = load ptr, ptr %8, align 8, !tbaa !5
  br label %389

389:                                              ; preds = %387, %386
  %390 = phi ptr [ %.pre1581, %387 ], [ %380, %386 ]
  %391 = getelementptr inbounds i8, ptr %390, i64 1
  store ptr %391, ptr %8, align 8, !tbaa !5
  %392 = load i8, ptr %391, align 1, !tbaa !9
  %.not938 = icmp eq i8 %392, 0
  br i1 %.not938, label %._crit_edge1255, label %.lr.ph1254, !llvm.loop !31

._crit_edge1255:                                  ; preds = %389, %.lr.ph1254, %371
  %393 = phi ptr [ %373, %371 ], [ %391, %389 ], [ %380, %.lr.ph1254 ]
  %.1887 = phi i32 [ 0, %371 ], [ %377, %.lr.ph1254 ], [ %377, %389 ]
  %394 = icmp slt i32 %.1887, %.0883.ph.lcssa.fr167917211821
  br i1 %394, label %395, label %398

395:                                              ; preds = %._crit_edge1255
  %396 = sub nsw i32 %.0883.ph.lcssa.fr167917211821, %.1887
  %.not9421259 = icmp eq i32 %396, 0
  br i1 %.not9421259, label %.loopexit1049, label %.lr.ph1262

.lr.ph1262:                                       ; preds = %395, %.lr.ph1262
  %.07761260 = phi i32 [ %397, %.lr.ph1262 ], [ %396, %395 ]
  %397 = add nsw i32 %.07761260, -1
  call void @qh_out1(ptr noundef %0, double noundef 0.000000e+00)
  %.not942 = icmp eq i32 %397, 0
  br i1 %.not942, label %.loopexit1049, label %.lr.ph1262, !llvm.loop !32

398:                                              ; preds = %._crit_edge1255
  %399 = icmp sgt i32 %.1887, %.0883.ph.lcssa.fr167917211821
  br i1 %399, label %400, label %.loopexit1049

400:                                              ; preds = %398
  %401 = load ptr, ptr %365, align 8, !tbaa !25
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %0, ptr noundef %401, i32 noundef 6195, ptr noundef nonnull @.str.22, i32 noundef %.1887, i32 noundef %.0883.ph.lcssa.fr167917211821, ptr noundef nonnull %393) #13
  call void @qh_errexit_rbox(ptr noundef %0, i32 noundef 1)
  br label %.loopexit1049

.loopexit1049:                                    ; preds = %.lr.ph1262, %395, %398, %400
  %402 = load ptr, ptr %366, align 8, !tbaa !29
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %0, ptr noundef %402, i32 noundef 9394, ptr noundef nonnull @.str.23) #13
  %.promoted1263 = load ptr, ptr %8, align 8, !tbaa !5
  br label %403

403:                                              ; preds = %406, %.loopexit1049
  %404 = phi ptr [ %405, %406 ], [ %.promoted1263, %.loopexit1049 ]
  %405 = call ptr @strchr(ptr noundef nonnull dereferenceable(1) %404, i32 noundef 80) #14
  store ptr %405, ptr %8, align 8, !tbaa !5
  %.not943 = icmp eq ptr %405, null
  br i1 %.not943, label %.critedge17, label %406

406:                                              ; preds = %403
  %407 = tail call ptr @__ctype_b_loc() #15
  %408 = load ptr, ptr %407, align 8, !tbaa !5
  %409 = getelementptr inbounds i8, ptr %405, i64 -1
  %410 = load i8, ptr %409, align 1, !tbaa !9
  %411 = sext i8 %410 to i64
  %412 = getelementptr inbounds i16, ptr %408, i64 %411
  %413 = load i16, ptr %412, align 2, !tbaa !10
  %414 = and i16 %413, 8192
  %.not944 = icmp eq i16 %414, 0
  br i1 %.not944, label %403, label %.loopexit1048, !llvm.loop !30

.critedge17:                                      ; preds = %.loopexit1048, %403, %.preheader1050, %363
  %415 = or i32 %.0838.ph.lcssa166817311811, %.0840.ph.lcssa166717321810
  %.not945 = icmp eq i32 %415, 0
  br i1 %.not945, label %.loopexit1039, label %416

416:                                              ; preds = %.critedge17
  %417 = add i32 %.0883.ph.lcssa.fr167917211821, 1
  %418 = mul nsw i32 %417, %.0883.ph.lcssa.fr167917211821
  %419 = sext i32 %418 to i64
  %420 = shl nsw i64 %419, 3
  %421 = call ptr @qh_malloc(i64 noundef %420) #13
  store ptr %421, ptr %2, align 8, !tbaa !5
  %.not946 = icmp eq ptr %421, null
  br i1 %.not946, label %422, label %425

422:                                              ; preds = %416
  %423 = getelementptr inbounds i8, ptr %0, i64 2424
  %424 = load ptr, ptr %423, align 8, !tbaa !25
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %0, ptr noundef %424, i32 noundef 6196, ptr noundef nonnull @.str.24) #13
  call void @qh_errexit_rbox(ptr noundef %0, i32 noundef 4)
  %.pre1582 = load ptr, ptr %2, align 8, !tbaa !5
  br label %425

425:                                              ; preds = %422, %416
  %426 = phi ptr [ %.pre1582, %422 ], [ %421, %416 ]
  br i1 %299, label %.preheader1044, label %.preheader1046

.preheader1046:                                   ; preds = %425
  %.not9471271 = icmp slt i32 %.0883.ph.lcssa.fr167917211821, 0
  br i1 %.not9471271, label %.loopexit1042, label %.preheader1045.lr.ph

.preheader1045.lr.ph:                             ; preds = %.preheader1046
  %.not1408 = icmp eq i32 %.0883.ph.lcssa.fr167917211821, 0
  br i1 %.not1408, label %.loopexit1042.thread, label %.preheader1045.us

.preheader1045.us:                                ; preds = %.preheader1045.lr.ph, %._crit_edge1269.us
  %.21273.us = phi i32 [ %435, %._crit_edge1269.us ], [ 0, %.preheader1045.lr.ph ]
  %.37981272.us = phi ptr [ %433, %._crit_edge1269.us ], [ %426, %.preheader1045.lr.ph ]
  br label %427

427:                                              ; preds = %.preheader1045.us, %427
  %.37791267.us = phi i32 [ 0, %.preheader1045.us ], [ %434, %427 ]
  %.47991266.us = phi ptr [ %.37981272.us, %.preheader1045.us ], [ %433, %427 ]
  %428 = call i32 @qh_rand(ptr noundef %0) #13
  %429 = sitofp i32 %428 to double
  %430 = fmul double %429, 2.000000e+00
  %431 = fdiv double %430, 0x41DFFFFFFF800000
  %432 = fadd double %431, -1.000000e+00
  %433 = getelementptr inbounds i8, ptr %.47991266.us, i64 8
  store double %432, ptr %.47991266.us, align 8, !tbaa !33
  %434 = add nuw nsw i32 %.37791267.us, 1
  %exitcond.not = icmp eq i32 %434, %.0883.ph.lcssa.fr167917211821
  br i1 %exitcond.not, label %._crit_edge1269.us, label %427, !llvm.loop !34

._crit_edge1269.us:                               ; preds = %427
  %435 = add nuw i32 %.21273.us, 1
  %exitcond1476.not = icmp eq i32 %.21273.us, %.0883.ph.lcssa.fr167917211821
  br i1 %exitcond1476.not, label %.loopexit1042, label %.preheader1045.us, !llvm.loop !35

.preheader1044:                                   ; preds = %425
  %436 = icmp sgt i32 %.0883.ph.lcssa.fr167917211821, 0
  br i1 %436, label %.preheader1043.us.preheader, label %.loopexit1042

.preheader1043.us.preheader:                      ; preds = %.preheader1044
  %437 = zext nneg i32 %.0883.ph.lcssa.fr167917211821 to i64
  %min.iters.check = icmp ult i32 %.0883.ph.lcssa.fr167917211821, 4
  %n.vec = and i64 %437, 2147483644
  %ind.end = trunc nuw nsw i64 %n.vec to i32
  %438 = shl nuw nsw i64 %n.vec, 3
  %cmp.n = icmp eq i64 %n.vec, %437
  br label %.preheader1043.us

.preheader1043.us:                                ; preds = %.preheader1043.us.preheader, %._crit_edge1277.us
  %.11280.us = phi i32 [ %449, %._crit_edge1277.us ], [ 0, %.preheader1043.us.preheader ]
  %.07951279.us = phi ptr [ %.lcssa1968, %._crit_edge1277.us ], [ %426, %.preheader1043.us.preheader ]
  br i1 %min.iters.check, label %scalar.ph.preheader, label %vector.ph

vector.ph:                                        ; preds = %.preheader1043.us
  %ind.end2057 = getelementptr i8, ptr %.07951279.us, i64 %438
  %broadcast.splatinsert = insertelement <2 x i32> poison, i32 %.11280.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 %.07951279.us, i64 %offset.idx
  %439 = icmp eq <2 x i32> %broadcast.splat, %vec.ind
  %440 = icmp eq <2 x i32> %broadcast.splat, %step.add
  %441 = select <2 x i1> %439, <2 x double> <double 1.000000e+00, double 1.000000e+00>, <2 x double> zeroinitializer
  %442 = select <2 x i1> %440, <2 x double> <double 1.000000e+00, double 1.000000e+00>, <2 x double> zeroinitializer
  %443 = getelementptr i8, ptr %next.gep, i64 16
  store <2 x double> %441, ptr %next.gep, align 8, !tbaa !33
  store <2 x double> %442, ptr %443, align 8, !tbaa !33
  %index.next = add nuw i64 %index, 4
  %vec.ind.next = add <2 x i32> %vec.ind, <i32 4, i32 4>
  %444 = icmp eq i64 %index.next, %n.vec
  br i1 %444, label %middle.block, label %vector.body, !llvm.loop !36

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

scalar.ph.preheader:                              ; preds = %middle.block, %.preheader1043.us
  %.17771275.us.ph = phi i32 [ 0, %.preheader1043.us ], [ %ind.end, %middle.block ]
  %.17961274.us.ph = phi ptr [ %.07951279.us, %.preheader1043.us ], [ %ind.end2057, %middle.block ]
  br label %scalar.ph

scalar.ph:                                        ; preds = %scalar.ph.preheader, %scalar.ph
  %.17771275.us = phi i32 [ %448, %scalar.ph ], [ %.17771275.us.ph, %scalar.ph.preheader ]
  %.17961274.us = phi ptr [ %447, %scalar.ph ], [ %.17961274.us.ph, %scalar.ph.preheader ]
  %445 = icmp eq i32 %.11280.us, %.17771275.us
  %446 = select i1 %445, double 1.000000e+00, double 0.000000e+00
  %447 = getelementptr inbounds i8, ptr %.17961274.us, i64 8
  store double %446, ptr %.17961274.us, align 8, !tbaa !33
  %448 = add nuw nsw i32 %.17771275.us, 1
  %exitcond1477.not = icmp eq i32 %448, %.0883.ph.lcssa.fr167917211821
  br i1 %exitcond1477.not, label %._crit_edge1277.us, label %scalar.ph, !llvm.loop !39

._crit_edge1277.us:                               ; preds = %scalar.ph, %middle.block
  %.lcssa1968 = phi ptr [ %ind.end2057, %middle.block ], [ %447, %scalar.ph ]
  %449 = add nuw nsw i32 %.11280.us, 1
  %exitcond1478.not = icmp eq i32 %449, %.0883.ph.lcssa.fr167917211821
  br i1 %exitcond1478.not, label %.preheader1041, label %.preheader1043.us, !llvm.loop !40

.preheader1041:                                   ; preds = %._crit_edge1277.us
  br i1 %436, label %.lr.ph1284.preheader, label %.loopexit1042

.lr.ph1284.preheader:                             ; preds = %.preheader1041
  %min.iters.check2063 = icmp ult i32 %.0883.ph.lcssa.fr167917211821, 4
  br i1 %min.iters.check2063, label %.lr.ph1284.preheader2219, label %vector.ph2064

vector.ph2064:                                    ; preds = %.lr.ph1284.preheader
  %n.vec2066 = and i64 %437, 2147483644
  %ind.end2067 = trunc nuw nsw i64 %n.vec2066 to i32
  %450 = shl nuw nsw i64 %n.vec2066, 3
  %ind.end2069 = getelementptr i8, ptr %.lcssa1968, i64 %450
  br label %vector.body2071

vector.body2071:                                  ; preds = %vector.body2071, %vector.ph2064
  %index2072 = phi i64 [ 0, %vector.ph2064 ], [ %index.next2076, %vector.body2071 ]
  %offset.idx2073 = shl i64 %index2072, 3
  %next.gep2074 = getelementptr i8, ptr %.lcssa1968, i64 %offset.idx2073
  %451 = getelementptr i8, ptr %next.gep2074, i64 16
  store <2 x double> <double -1.000000e+00, double -1.000000e+00>, ptr %next.gep2074, align 8, !tbaa !33
  store <2 x double> <double -1.000000e+00, double -1.000000e+00>, ptr %451, align 8, !tbaa !33
  %index.next2076 = add nuw i64 %index2072, 4
  %452 = icmp eq i64 %index.next2076, %n.vec2066
  br i1 %452, label %middle.block2061, label %vector.body2071, !llvm.loop !41

middle.block2061:                                 ; preds = %vector.body2071
  %cmp.n2077 = icmp eq i64 %n.vec2066, %437
  br i1 %cmp.n2077, label %.loopexit1042, label %.lr.ph1284.preheader2219

.lr.ph1284.preheader2219:                         ; preds = %middle.block2061, %.lr.ph1284.preheader
  %.27781283.ph = phi i32 [ 0, %.lr.ph1284.preheader ], [ %ind.end2067, %middle.block2061 ]
  %.27971282.ph = phi ptr [ %.lcssa1968, %.lr.ph1284.preheader ], [ %ind.end2069, %middle.block2061 ]
  br label %.lr.ph1284

.lr.ph1284:                                       ; preds = %.lr.ph1284.preheader2219, %.lr.ph1284
  %.27781283 = phi i32 [ %454, %.lr.ph1284 ], [ %.27781283.ph, %.lr.ph1284.preheader2219 ]
  %.27971282 = phi ptr [ %453, %.lr.ph1284 ], [ %.27971282.ph, %.lr.ph1284.preheader2219 ]
  %453 = getelementptr inbounds i8, ptr %.27971282, i64 8
  store double -1.000000e+00, ptr %.27971282, align 8, !tbaa !33
  %454 = add nuw nsw i32 %.27781283, 1
  %exitcond1479.not = icmp eq i32 %454, %.0883.ph.lcssa.fr167917211821
  br i1 %exitcond1479.not, label %.loopexit1042, label %.lr.ph1284, !llvm.loop !42

.loopexit1042:                                    ; preds = %._crit_edge1269.us, %.lr.ph1284, %middle.block2061, %.preheader1044, %.preheader1046, %.preheader1041
  %.not9481291 = icmp sgt i32 %.0883.ph.lcssa.fr167917211821, -1
  %or.cond1946.not = and i1 %.not9481291, %261
  br i1 %or.cond1946.not, label %.lr.ph1295, label %.loopexit1040

.loopexit1042.thread:                             ; preds = %.preheader1045.lr.ph
  br i1 %261, label %.lr.ph1295, label %.loopexit1040

.lr.ph1295:                                       ; preds = %.loopexit1042, %.loopexit1042.thread
  %455 = load ptr, ptr %2, align 8, !tbaa !5
  %.not1409 = icmp eq i32 %.0883.ph.lcssa.fr167917211821, 0
  %456 = getelementptr inbounds i8, ptr %0, i64 2416
  br label %457

457:                                              ; preds = %.lr.ph1295, %._crit_edge1289
  %.31293 = phi i32 [ 0, %.lr.ph1295 ], [ %465, %._crit_edge1289 ]
  %.58001292 = phi ptr [ %455, %.lr.ph1295 ], [ %.6801.lcssa, %._crit_edge1289 ]
  br i1 %.not932, label %459, label %458

458:                                              ; preds = %457
  call void @qh_out1(ptr noundef %0, double noundef 1.000000e+00)
  br label %459

459:                                              ; preds = %458, %457
  br i1 %.not1409, label %._crit_edge1289, label %.lr.ph1288

.lr.ph1288:                                       ; preds = %459, %.lr.ph1288
  %.47801286 = phi i32 [ %463, %.lr.ph1288 ], [ 0, %459 ]
  %.68011285 = phi ptr [ %460, %.lr.ph1288 ], [ %.58001292, %459 ]
  %460 = getelementptr inbounds i8, ptr %.68011285, i64 8
  %461 = load double, ptr %.68011285, align 8, !tbaa !33
  %462 = fmul double %.2764168117201822, %461
  call void @qh_out1(ptr noundef %0, double noundef %462)
  %463 = add nuw nsw i32 %.47801286, 1
  %exitcond1480.not = icmp eq i32 %463, %.0883.ph.lcssa.fr167917211821
  br i1 %exitcond1480.not, label %._crit_edge1289, label %.lr.ph1288, !llvm.loop !43

._crit_edge1289:                                  ; preds = %.lr.ph1288, %459
  %.6801.lcssa = phi ptr [ %.58001292, %459 ], [ %460, %.lr.ph1288 ]
  %464 = load ptr, ptr %456, align 8, !tbaa !29
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %0, ptr noundef %464, i32 noundef 9395, ptr noundef nonnull @.str.23) #13
  %465 = add nuw i32 %.31293, 1
  %exitcond1481.not = icmp eq i32 %.31293, %.0883.ph.lcssa.fr167917211821
  br i1 %exitcond1481.not, label %.loopexit1040, label %457, !llvm.loop !44

.loopexit1040:                                    ; preds = %._crit_edge1289, %.loopexit1042.thread, %.loopexit1042
  %466 = icmp sgt i32 %.1881, 0
  br i1 %466, label %.lr.ph1315, label %.loopexit1039

.lr.ph1315:                                       ; preds = %.loopexit1040
  %.not967 = icmp eq i32 %.0863.ph.lcssa165817401802, 0
  %467 = icmp sgt i32 %.0883.ph.lcssa.fr167917211821, 0
  %.not9681303 = icmp slt i32 %.0883.ph.lcssa.fr167917211821, 0
  %468 = zext i32 %.0883.ph.lcssa.fr167917211821 to i64
  %469 = shl nuw nsw i64 %468, 3
  %wide.trip.count1489 = zext i32 %417 to i64
  %470 = shl nuw nsw i64 %468, 3
  %scevgep2092 = getelementptr i8, ptr %4, i64 %470
  %471 = shl nuw nsw i64 %468, 3
  %min.iters.check2096 = icmp ult i32 %.0883.ph.lcssa.fr167917211821, 4
  %n.vec2099 = and i64 %468, 2147483644
  %cmp.n2110 = icmp eq i64 %n.vec2099, %468
  %xtraiter = and i64 %468, 1
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  %472 = add nsw i64 %468, -1
  %min.iters.check2080 = icmp ult i32 %.0883.ph.lcssa.fr167917211821, 4
  %n.vec2083 = and i64 %468, 2147483644
  %cmp.n2091 = icmp eq i64 %n.vec2083, %468
  br label %473

473:                                              ; preds = %.lr.ph1315, %531
  %.07521313 = phi i32 [ 0, %.lr.ph1315 ], [ %528, %531 ]
  br i1 %.not967, label %477, label %474

474:                                              ; preds = %473
  %475 = call i32 @qh_rand(ptr noundef %0) #13
  %476 = srem i32 %475, %417
  br label %477

477:                                              ; preds = %473, %474
  %.0885 = phi i32 [ %476, %474 ], [ -1, %473 ]
  br i1 %467, label %.lr.ph1301.us.preheader, label %.preheader1038

.preheader1038:                                   ; preds = %477
  br i1 %.not9681303, label %._crit_edge1311, label %.lr.ph1306.split

.lr.ph1301.us.preheader:                          ; preds = %477
  call void @llvm.memset.p0.i64(ptr nonnull align 16 %4, i8 0, i64 %469, i1 false), !tbaa !33
  %478 = zext i32 %.0885 to i64
  br label %.lr.ph1301.us

.lr.ph1301.us:                                    ; preds = %.lr.ph1301.us.preheader, %._crit_edge1302.us
  %indvars.iv1486 = phi i64 [ 0, %.lr.ph1301.us.preheader ], [ %indvars.iv.next1487, %._crit_edge1302.us ]
  %.07901304.us = phi double [ 0.000000e+00, %.lr.ph1301.us.preheader ], [ %512, %._crit_edge1302.us ]
  %479 = call i32 @qh_rand(ptr noundef %0) #13
  %480 = sitofp i32 %479 to double
  %481 = fdiv double %480, 0x41DFFFFFFF800000
  %482 = icmp eq i64 %indvars.iv1486, %478
  %483 = select i1 %482, double %.0834.ph.lcssa167017291813, double 1.000000e+00
  %.0788.us = fmul double %483, %481
  %484 = load ptr, ptr %2, align 8, !tbaa !5
  %485 = mul nuw nsw i64 %indvars.iv1486, %468
  %486 = getelementptr inbounds double, ptr %484, i64 %485
  br i1 %min.iters.check2096, label %scalar.ph2095.preheader, label %vector.memcheck

vector.memcheck:                                  ; preds = %.lr.ph1301.us
  %487 = mul i64 %471, %indvars.iv1486
  %488 = getelementptr i8, ptr %484, i64 %470
  %scevgep2093 = getelementptr i8, ptr %488, i64 %487
  %bound0 = icmp ult ptr %4, %scevgep2093
  %bound1 = icmp ult ptr %486, %scevgep2092
  %found.conflict = and i1 %bound0, %bound1
  br i1 %found.conflict, label %scalar.ph2095.preheader, label %vector.ph2097

vector.ph2097:                                    ; preds = %vector.memcheck
  %broadcast.splatinsert2107 = insertelement <2 x double> poison, double %.0788.us, i64 0
  %broadcast.splat2108 = shufflevector <2 x double> %broadcast.splatinsert2107, <2 x double> poison, <2 x i32> zeroinitializer
  br label %vector.body2101

vector.body2101:                                  ; preds = %vector.body2101, %vector.ph2097
  %index2102 = phi i64 [ 0, %vector.ph2097 ], [ %index.next2109, %vector.body2101 ]
  %489 = getelementptr inbounds double, ptr %486, i64 %index2102
  %490 = getelementptr inbounds i8, ptr %489, i64 16
  %wide.load2103 = load <2 x double>, ptr %489, align 8, !tbaa !33, !alias.scope !45
  %wide.load2104 = load <2 x double>, ptr %490, align 8, !tbaa !33, !alias.scope !45
  %491 = getelementptr inbounds [200 x double], ptr %4, i64 0, i64 %index2102
  %492 = getelementptr inbounds i8, ptr %491, i64 16
  %wide.load2105 = load <2 x double>, ptr %491, align 16, !tbaa !33, !alias.scope !48, !noalias !45
  %wide.load2106 = load <2 x double>, ptr %492, align 16, !tbaa !33, !alias.scope !48, !noalias !45
  %493 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %broadcast.splat2108, <2 x double> %wide.load2103, <2 x double> %wide.load2105)
  %494 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %broadcast.splat2108, <2 x double> %wide.load2104, <2 x double> %wide.load2106)
  store <2 x double> %493, ptr %491, align 16, !tbaa !33, !alias.scope !48, !noalias !45
  store <2 x double> %494, ptr %492, align 16, !tbaa !33, !alias.scope !48, !noalias !45
  %index.next2109 = add nuw i64 %index2102, 4
  %495 = icmp eq i64 %index.next2109, %n.vec2099
  br i1 %495, label %middle.block2094, label %vector.body2101, !llvm.loop !50

middle.block2094:                                 ; preds = %vector.body2101
  br i1 %cmp.n2110, label %._crit_edge1302.us, label %scalar.ph2095.preheader

scalar.ph2095.preheader:                          ; preds = %middle.block2094, %vector.memcheck, %.lr.ph1301.us
  %indvars.iv.ph = phi i64 [ 0, %vector.memcheck ], [ 0, %.lr.ph1301.us ], [ %n.vec2099, %middle.block2094 ]
  br i1 %lcmp.mod.not, label %scalar.ph2095.prol.loopexit, label %scalar.ph2095.prol

scalar.ph2095.prol:                               ; preds = %scalar.ph2095.preheader
  %496 = getelementptr inbounds double, ptr %486, i64 %indvars.iv.ph
  %497 = load double, ptr %496, align 8, !tbaa !33
  %498 = getelementptr inbounds [200 x double], ptr %4, i64 0, i64 %indvars.iv.ph
  %499 = load double, ptr %498, align 16, !tbaa !33
  %500 = call double @llvm.fmuladd.f64(double %.0788.us, double %497, double %499)
  store double %500, ptr %498, align 16, !tbaa !33
  %indvars.iv.next.prol = or disjoint i64 %indvars.iv.ph, 1
  br label %scalar.ph2095.prol.loopexit

scalar.ph2095.prol.loopexit:                      ; preds = %scalar.ph2095.prol, %scalar.ph2095.preheader
  %indvars.iv.unr = phi i64 [ %indvars.iv.ph, %scalar.ph2095.preheader ], [ %indvars.iv.next.prol, %scalar.ph2095.prol ]
  %501 = icmp eq i64 %indvars.iv.ph, %472
  br i1 %501, label %._crit_edge1302.us, label %scalar.ph2095

scalar.ph2095:                                    ; preds = %scalar.ph2095.prol.loopexit, %scalar.ph2095
  %indvars.iv = phi i64 [ %indvars.iv.next.1, %scalar.ph2095 ], [ %indvars.iv.unr, %scalar.ph2095.prol.loopexit ]
  %502 = getelementptr inbounds double, ptr %486, i64 %indvars.iv
  %503 = load double, ptr %502, align 8, !tbaa !33
  %504 = getelementptr inbounds [200 x double], ptr %4, i64 0, i64 %indvars.iv
  %505 = load double, ptr %504, align 8, !tbaa !33
  %506 = call double @llvm.fmuladd.f64(double %.0788.us, double %503, double %505)
  store double %506, ptr %504, align 8, !tbaa !33
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %507 = getelementptr inbounds double, ptr %486, i64 %indvars.iv.next
  %508 = load double, ptr %507, align 8, !tbaa !33
  %509 = getelementptr inbounds [200 x double], ptr %4, i64 0, i64 %indvars.iv.next
  %510 = load double, ptr %509, align 8, !tbaa !33
  %511 = call double @llvm.fmuladd.f64(double %.0788.us, double %508, double %510)
  store double %511, ptr %509, align 8, !tbaa !33
  %indvars.iv.next.1 = add nuw nsw i64 %indvars.iv, 2
  %exitcond1485.not.1 = icmp eq i64 %indvars.iv.next.1, %468
  br i1 %exitcond1485.not.1, label %._crit_edge1302.us, label %scalar.ph2095, !llvm.loop !51

._crit_edge1302.us:                               ; preds = %scalar.ph2095.prol.loopexit, %scalar.ph2095, %middle.block2094
  %512 = fadd double %.07901304.us, %.0788.us
  %indvars.iv.next1487 = add nuw nsw i64 %indvars.iv1486, 1
  %exitcond1490.not = icmp eq i64 %indvars.iv.next1487, %wide.trip.count1489
  br i1 %exitcond1490.not, label %.preheader1037, label %.lr.ph1301.us, !llvm.loop !52

.preheader1037:                                   ; preds = %._crit_edge1302.us, %.lr.ph1306.split
  %.0790.lcssa = phi double [ %524, %.lr.ph1306.split ], [ %512, %._crit_edge1302.us ]
  br i1 %467, label %.lr.ph1310, label %._crit_edge1311

.lr.ph1310:                                       ; preds = %.preheader1037
  %513 = fdiv double %.2764168117201822, %.0790.lcssa
  br i1 %min.iters.check2080, label %scalar.ph2079.preheader, label %vector.ph2081

scalar.ph2079.preheader:                          ; preds = %middle.block2078, %.lr.ph1310
  %indvars.iv1491.ph = phi i64 [ 0, %.lr.ph1310 ], [ %n.vec2083, %middle.block2078 ]
  br label %scalar.ph2079

vector.ph2081:                                    ; preds = %.lr.ph1310
  %broadcast.splatinsert2088 = insertelement <2 x double> poison, double %513, i64 0
  %broadcast.splat2089 = shufflevector <2 x double> %broadcast.splatinsert2088, <2 x double> poison, <2 x i32> zeroinitializer
  br label %vector.body2085

vector.body2085:                                  ; preds = %vector.body2085, %vector.ph2081
  %index2086 = phi i64 [ 0, %vector.ph2081 ], [ %index.next2090, %vector.body2085 ]
  %514 = getelementptr inbounds [200 x double], ptr %4, i64 0, i64 %index2086
  %515 = getelementptr inbounds i8, ptr %514, i64 16
  %wide.load = load <2 x double>, ptr %514, align 16, !tbaa !33
  %wide.load2087 = load <2 x double>, ptr %515, align 16, !tbaa !33
  %516 = fmul <2 x double> %broadcast.splat2089, %wide.load
  %517 = fmul <2 x double> %broadcast.splat2089, %wide.load2087
  store <2 x double> %516, ptr %514, align 16, !tbaa !33
  store <2 x double> %517, ptr %515, align 16, !tbaa !33
  %index.next2090 = add nuw i64 %index2086, 4
  %518 = icmp eq i64 %index.next2090, %n.vec2083
  br i1 %518, label %middle.block2078, label %vector.body2085, !llvm.loop !53

middle.block2078:                                 ; preds = %vector.body2085
  br i1 %cmp.n2091, label %._crit_edge1311, label %scalar.ph2079.preheader

.lr.ph1306.split:                                 ; preds = %.preheader1038
  %519 = call i32 @qh_rand(ptr noundef %0) #13
  %520 = icmp eq i32 %.0885, 0
  %521 = select i1 %520, double %.0834.ph.lcssa167017291813, double 1.000000e+00
  %522 = sitofp i32 %519 to double
  %523 = fdiv double %522, 0x41DFFFFFFF800000
  %.0788 = fmul double %521, %523
  %524 = fadd double %.0788, 0.000000e+00
  br label %.preheader1037

scalar.ph2079:                                    ; preds = %scalar.ph2079.preheader, %scalar.ph2079
  %indvars.iv1491 = phi i64 [ %indvars.iv.next1492, %scalar.ph2079 ], [ %indvars.iv1491.ph, %scalar.ph2079.preheader ]
  %525 = getelementptr inbounds [200 x double], ptr %4, i64 0, i64 %indvars.iv1491
  %526 = load double, ptr %525, align 8, !tbaa !33
  %527 = fmul double %513, %526
  store double %527, ptr %525, align 8, !tbaa !33
  %indvars.iv.next1492 = add nuw nsw i64 %indvars.iv1491, 1
  %exitcond1495.not = icmp eq i64 %indvars.iv.next1492, %468
  br i1 %exitcond1495.not, label %._crit_edge1311, label %scalar.ph2079, !llvm.loop !54

._crit_edge1311:                                  ; preds = %scalar.ph2079, %middle.block2078, %.preheader1038, %.preheader1037
  call void @qh_outcoord(ptr noundef %0, i32 noundef %.0870.ph.lcssa165517431799, ptr noundef nonnull %4, i32 noundef %.0883.ph.lcssa.fr167917211821)
  %528 = add nuw nsw i32 %.07521313, 1
  %529 = icmp slt i32 %.07521313, %spec.select991
  br i1 %529, label %530, label %531

530:                                              ; preds = %._crit_edge1311
  call void @qh_outcoincident(ptr noundef %0, i32 noundef %.0894.ph.lcssa165017481794, double noundef %.0817.ph.lcssa167317261816, i32 noundef %.0870.ph.lcssa165517431799, ptr noundef nonnull %4, i32 noundef %.0883.ph.lcssa.fr167917211821)
  br label %531

531:                                              ; preds = %._crit_edge1311, %530
  %exitcond1496.not = icmp eq i32 %528, %.1881
  br i1 %exitcond1496.not, label %.loopexit1039, label %473, !llvm.loop !55

.loopexit1039:                                    ; preds = %531, %.loopexit1040, %.critedge17
  %.2882 = phi i32 [ %.1881, %.critedge17 ], [ 0, %.loopexit1040 ], [ 0, %531 ]
  %.2867 = phi i32 [ %.0865.ph.lcssa165717411801, %.critedge17 ], [ 0, %.loopexit1040 ], [ 0, %531 ]
  %.1814 = phi i32 [ 0, %.critedge17 ], [ 0, %.loopexit1040 ], [ %.1881, %531 ]
  br i1 %302, label %532, label %590

532:                                              ; preds = %.loopexit1039
  %533 = sitofp i32 %.2882 to double
  %534 = sitofp i32 %.0883.ph.lcssa.fr167917211821 to double
  %535 = fdiv double 1.000000e+00, %534
  %536 = call double @pow(double noundef %533, double noundef %535) #13
  %537 = fadd double %536, 9.999900e-01
  %538 = fptosi double %537 to i32
  %.not9631377 = icmp eq i32 %.0883.ph.lcssa.fr167917211821, 0
  br i1 %.not9631377, label %.preheader1027, label %.lr.ph1380.preheader

.lr.ph1380.preheader:                             ; preds = %532
  %539 = add i32 %.0883.ph.lcssa.fr167917211821, -1
  %540 = sext i32 %539 to i64
  %541 = zext i32 %539 to i64
  %542 = sub nsw i64 %540, %541
  %543 = shl nsw i64 %542, 2
  %scevgep = getelementptr i8, ptr %5, i64 %543
  %544 = zext i32 %.0883.ph.lcssa.fr167917211821 to i64
  %545 = shl nuw nsw i64 %544, 2
  call void @llvm.memset.p0.i64(ptr align 4 %scevgep, i8 0, i64 %545, i1 false), !tbaa !56
  br label %.preheader1027

.preheader1027:                                   ; preds = %.lr.ph1380.preheader, %532
  %546 = icmp sgt i32 %.2882, 0
  br i1 %546, label %.preheader1026.lr.ph, label %.loopexit1028

.preheader1026.lr.ph:                             ; preds = %.preheader1027
  %547 = icmp sgt i32 %.0883.ph.lcssa.fr167917211821, 0
  %548 = getelementptr inbounds i8, ptr %5, i64 4
  %549 = fneg double %.0810.ph.lcssa167417251817
  %wide.trip.count1554 = zext i32 %.0883.ph.lcssa.fr167917211821 to i64
  %wide.trip.count1559 = zext nneg i32 %.0883.ph.lcssa.fr167917211821 to i64
  %xtraiter2322 = and i64 %wide.trip.count1554, 1
  %550 = icmp eq i32 %.0883.ph.lcssa.fr167917211821, 1
  %unroll_iter2325 = and i64 %wide.trip.count1554, 2147483646
  %lcmp.mod2324.not = icmp eq i64 %xtraiter2322, 0
  br label %.preheader1026

.preheader1026:                                   ; preds = %.preheader1026.lr.ph, %._crit_edge1388
  %.51391 = phi i32 [ 0, %.preheader1026.lr.ph ], [ %589, %._crit_edge1388 ]
  %.28151390 = phi i32 [ %.1814, %.preheader1026.lr.ph ], [ %580, %._crit_edge1388 ]
  br i1 %547, label %.lr.ph1383, label %._crit_edge1384

.lr.ph1383:                                       ; preds = %.preheader1026
  %551 = load i32, ptr %5, align 16
  %552 = sitofp i32 %551 to double
  %553 = load i32, ptr %548, align 4
  %554 = sitofp i32 %553 to double
  %555 = fmul double %.0807.ph.lcssa167517241818, %554
  %556 = call double @llvm.fmuladd.f64(double %552, double %.0810.ph.lcssa167417251817, double %555)
  %557 = fmul double %549, %554
  %558 = call double @llvm.fmuladd.f64(double %552, double %.0807.ph.lcssa167517241818, double %557)
  br i1 %550, label %._crit_edge1384.loopexit.unr-lcssa, label %.lr.ph1383.new

.lr.ph1383.new:                                   ; preds = %.lr.ph1383, %572
  %indvars.iv1551 = phi i64 [ %indvars.iv.next1552.1, %572 ], [ 0, %.lr.ph1383 ]
  %.08021381 = phi ptr [ %.1803.1, %572 ], [ %4, %.lr.ph1383 ]
  %niter2326 = phi i64 [ %niter2326.next.1, %572 ], [ 0, %.lr.ph1383 ]
  %559 = trunc nuw nsw i64 %indvars.iv1551 to i32
  %cond = icmp eq i32 %559, 0
  br i1 %cond, label %565, label %560

560:                                              ; preds = %.lr.ph1383.new
  %561 = getelementptr inbounds [200 x i32], ptr %5, i64 0, i64 %indvars.iv1551
  %562 = load i32, ptr %561, align 8, !tbaa !56
  %563 = sitofp i32 %562 to double
  %564 = fmul double %.0804.ph.lcssa167617231819, %563
  br label %565

565:                                              ; preds = %.lr.ph1383.new, %560
  %.sink = phi double [ %564, %560 ], [ %558, %.lr.ph1383.new ]
  store double %.sink, ptr %.08021381, align 8, !tbaa !33
  %.1803 = getelementptr inbounds i8, ptr %.08021381, i64 8
  %indvars.iv.next1552 = or disjoint i64 %indvars.iv1551, 1
  %566 = trunc nuw nsw i64 %indvars.iv.next1552 to i32
  %cond2422 = icmp eq i32 %566, 1
  br i1 %cond2422, label %572, label %567

567:                                              ; preds = %565
  %568 = getelementptr inbounds [200 x i32], ptr %5, i64 0, i64 %indvars.iv.next1552
  %569 = load i32, ptr %568, align 4, !tbaa !56
  %570 = sitofp i32 %569 to double
  %571 = fmul double %.0804.ph.lcssa167617231819, %570
  br label %572

572:                                              ; preds = %565, %567
  %.sink.1 = phi double [ %571, %567 ], [ %556, %565 ]
  store double %.sink.1, ptr %.1803, align 8, !tbaa !33
  %.1803.1 = getelementptr inbounds i8, ptr %.08021381, i64 16
  %indvars.iv.next1552.1 = add nuw nsw i64 %indvars.iv1551, 2
  %niter2326.next.1 = add i64 %niter2326, 2
  %niter2326.ncmp.1 = icmp eq i64 %niter2326.next.1, %unroll_iter2325
  br i1 %niter2326.ncmp.1, label %._crit_edge1384.loopexit.unr-lcssa, label %.lr.ph1383.new, !llvm.loop !57

._crit_edge1384.loopexit.unr-lcssa:               ; preds = %572, %.lr.ph1383
  %indvars.iv1551.unr = phi i64 [ 0, %.lr.ph1383 ], [ %indvars.iv.next1552.1, %572 ]
  %.08021381.unr = phi ptr [ %4, %.lr.ph1383 ], [ %.1803.1, %572 ]
  br i1 %lcmp.mod2324.not, label %._crit_edge1384, label %.epil.preheader

.epil.preheader:                                  ; preds = %._crit_edge1384.loopexit.unr-lcssa
  %573 = trunc nuw nsw i64 %indvars.iv1551.unr to i32
  switch i32 %573, label %575 [
    i32 0, label %._crit_edge1384.loopexit.epilog-lcssa
    i32 1, label %574
  ]

574:                                              ; preds = %.epil.preheader
  br label %._crit_edge1384.loopexit.epilog-lcssa

575:                                              ; preds = %.epil.preheader
  %576 = getelementptr inbounds [200 x i32], ptr %5, i64 0, i64 %indvars.iv1551.unr
  %577 = load i32, ptr %576, align 4, !tbaa !56
  %578 = sitofp i32 %577 to double
  %579 = fmul double %.0804.ph.lcssa167617231819, %578
  br label %._crit_edge1384.loopexit.epilog-lcssa

._crit_edge1384.loopexit.epilog-lcssa:            ; preds = %575, %574, %.epil.preheader
  %.sink.epil = phi double [ %579, %575 ], [ %556, %574 ], [ %558, %.epil.preheader ]
  store double %.sink.epil, ptr %.08021381.unr, align 8, !tbaa !33
  br label %._crit_edge1384

._crit_edge1384:                                  ; preds = %._crit_edge1384.loopexit.epilog-lcssa, %._crit_edge1384.loopexit.unr-lcssa, %.preheader1026
  call void @qh_outcoord(ptr noundef %0, i32 noundef %.0870.ph.lcssa165517431799, ptr noundef nonnull %4, i32 noundef %.0883.ph.lcssa.fr167917211821)
  %580 = add nuw nsw i32 %.28151390, 1
  %581 = icmp slt i32 %.28151390, %spec.select991
  br i1 %581, label %582, label %583

582:                                              ; preds = %._crit_edge1384
  call void @qh_outcoincident(ptr noundef %0, i32 noundef %.0894.ph.lcssa165017481794, double noundef %.0817.ph.lcssa167317261816, i32 noundef %.0870.ph.lcssa165517431799, ptr noundef nonnull %4, i32 noundef %.0883.ph.lcssa.fr167917211821)
  br label %583

583:                                              ; preds = %582, %._crit_edge1384
  br i1 %547, label %.lr.ph1387, label %._crit_edge1388

.lr.ph1387:                                       ; preds = %583, %588
  %indvars.iv1556 = phi i64 [ %indvars.iv.next1557, %588 ], [ 0, %583 ]
  %584 = getelementptr inbounds [200 x i32], ptr %5, i64 0, i64 %indvars.iv1556
  %585 = load i32, ptr %584, align 4, !tbaa !56
  %586 = add nsw i32 %585, 1
  store i32 %586, ptr %584, align 4, !tbaa !56
  %587 = icmp slt i32 %586, %538
  br i1 %587, label %._crit_edge1388, label %588

588:                                              ; preds = %.lr.ph1387
  store i32 0, ptr %584, align 4, !tbaa !56
  %indvars.iv.next1557 = add nuw nsw i64 %indvars.iv1556, 1
  %exitcond1560.not = icmp eq i64 %indvars.iv.next1557, %wide.trip.count1559
  br i1 %exitcond1560.not, label %._crit_edge1388, label %.lr.ph1387, !llvm.loop !58

._crit_edge1388:                                  ; preds = %.lr.ph1387, %588, %583
  %589 = add nuw nsw i32 %.51391, 1
  %exitcond1561.not = icmp eq i32 %589, %.2882
  br i1 %exitcond1561.not, label %.loopexit1028, label %.preheader1026, !llvm.loop !59

590:                                              ; preds = %.loopexit1039
  %591 = icmp eq i32 %.2867, 0
  %or.cond19 = or i1 %257, %591
  br i1 %or.cond19, label %649, label %592

592:                                              ; preds = %590
  %593 = add i32 %.0883.ph.lcssa.fr167917211821, -4
  %or.cond21 = icmp ult i32 %593, -2
  br i1 %or.cond21, label %.thread999, label %598

.thread999:                                       ; preds = %592
  %594 = getelementptr inbounds i8, ptr %0, i64 2424
  %595 = load ptr, ptr %594, align 8, !tbaa !25
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %0, ptr noundef %595, i32 noundef 6197, ptr noundef nonnull @.str.25) #13
  call void @qh_errexit_rbox(ptr noundef %0, i32 noundef 1)
  %596 = icmp eq i32 %.0872.ph.lcssa165417441798, 0
  %597 = fcmp oeq double %.0820.ph.lcssa167217271815, 0.000000e+00
  %or.cond231000 = select i1 %596, i1 true, i1 %597
  %.48241001 = select i1 %or.cond231000, double 1.000000e+00, double %.0820.ph.lcssa167217271815
  br label %608

598:                                              ; preds = %592
  %599 = icmp eq i32 %.0872.ph.lcssa165417441798, 0
  %600 = fcmp oeq double %.0820.ph.lcssa167217271815, 0.000000e+00
  %or.cond23 = select i1 %599, i1 true, i1 %600
  %.4824 = select i1 %or.cond23, double 1.000000e+00, double %.0820.ph.lcssa167217271815
  %601 = icmp eq i32 %.0883.ph.lcssa.fr167917211821, 3
  br i1 %601, label %602, label %608

602:                                              ; preds = %598
  br i1 %.not932, label %603, label %.thread1003

603:                                              ; preds = %602
  %604 = fneg double %.2764168117201822
  call void @qh_out3n(ptr noundef %0, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef %604)
  %.not949 = icmp eq i32 %.0854.ph.lcssa166017381804, 0
  br i1 %.not949, label %607, label %608

.thread1003:                                      ; preds = %602
  call void @qh_out1(ptr noundef %0, double noundef 1.000000e+00)
  %605 = fneg double %.2764168117201822
  call void @qh_out3n(ptr noundef %0, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef %605)
  %.not9491004 = icmp eq i32 %.0854.ph.lcssa166017381804, 0
  br i1 %.not9491004, label %606, label %608

606:                                              ; preds = %.thread1003
  call void @qh_out1(ptr noundef %0, double noundef 1.000000e+00)
  br label %607

607:                                              ; preds = %603, %606
  call void @qh_out3n(ptr noundef %0, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef %.2764168117201822)
  br label %608

608:                                              ; preds = %.thread1003, %.thread999, %603, %607, %598
  %.0854.ph.lcssa1661 = phi i32 [ %.0854.ph.lcssa166017381804, %.thread999 ], [ %.0854.ph.lcssa166017381804, %603 ], [ 0, %607 ], [ %.0854.ph.lcssa166017381804, %598 ], [ %.0854.ph.lcssa166017381804, %.thread1003 ]
  %.48241002 = phi double [ %.48241001, %.thread999 ], [ %.4824, %603 ], [ %.4824, %607 ], [ %.4824, %598 ], [ %.4824, %.thread1003 ]
  %609 = sitofp i32 %.2882 to double
  %610 = fdiv double 0x401921FB54442D18, %609
  %611 = icmp sgt i32 %.2882, 0
  br i1 %611, label %.lr.ph1320, label %.loopexit1028

.lr.ph1320:                                       ; preds = %608
  %612 = icmp eq i32 %.0883.ph.lcssa.fr167917211821, 2
  %.not950 = icmp eq i32 %.0854.ph.lcssa1661, 0
  %613 = fsub double 1.000000e+00, %.0825.ph.lcssa167117281814
  br label %614

614:                                              ; preds = %.lr.ph1320, %647
  %.61318 = phi i32 [ 0, %.lr.ph1320 ], [ %648, %647 ]
  %.07711317 = phi double [ 0.000000e+00, %.lr.ph1320 ], [ %615, %647 ]
  %615 = fadd double %610, %.07711317
  %616 = call double @cos(double noundef %615) #13
  %617 = fmul double %.48241002, %616
  %618 = call double @sin(double noundef %615) #13
  %619 = fmul double %.48241002, %618
  br i1 %612, label %620, label %625

620:                                              ; preds = %614
  br i1 %.not932, label %622, label %621

621:                                              ; preds = %620
  call void @qh_out1(ptr noundef %0, double noundef 1.000000e+00)
  br label %622

622:                                              ; preds = %621, %620
  %623 = fmul double %.2764168117201822, %617
  %624 = fmul double %.2764168117201822, %619
  call void @qh_out2n(ptr noundef %0, double noundef %623, double noundef %624)
  br label %647

625:                                              ; preds = %614
  %626 = call double @llvm.fmuladd.f64(double %617, double %617, double 1.000000e+00)
  %627 = call double @llvm.fmuladd.f64(double %619, double %619, double %626)
  %sqrt1022 = call double @llvm.sqrt.f64(double %627)
  br i1 %.not932, label %629, label %628

628:                                              ; preds = %625
  call void @qh_out1(ptr noundef %0, double noundef 1.000000e+00)
  br label %629

629:                                              ; preds = %628, %625
  %630 = fmul double %.2764168117201822, %617
  %631 = fdiv double %630, %sqrt1022
  %632 = fmul double %.2764168117201822, %619
  %633 = fdiv double %632, %sqrt1022
  %634 = fdiv double %.2764168117201822, %sqrt1022
  call void @qh_out3n(ptr noundef %0, double noundef %631, double noundef %633, double noundef %634)
  br i1 %.not950, label %647, label %635

635:                                              ; preds = %629
  %636 = fmul double %613, %617
  %637 = fmul double %613, %619
  %638 = call double @llvm.fmuladd.f64(double %636, double %636, double 1.000000e+00)
  %639 = call double @llvm.fmuladd.f64(double %637, double %637, double %638)
  %sqrt1023 = call double @llvm.sqrt.f64(double %639)
  br i1 %.not932, label %641, label %640

640:                                              ; preds = %635
  call void @qh_out1(ptr noundef %0, double noundef 1.000000e+00)
  br label %641

641:                                              ; preds = %640, %635
  %642 = fmul double %.2764168117201822, %636
  %643 = fdiv double %642, %sqrt1023
  %644 = fmul double %.2764168117201822, %637
  %645 = fdiv double %644, %sqrt1023
  %646 = fdiv double %.2764168117201822, %sqrt1023
  call void @qh_out3n(ptr noundef %0, double noundef %643, double noundef %645, double noundef %646)
  br label %647

647:                                              ; preds = %622, %641, %629
  %648 = add nuw nsw i32 %.61318, 1
  %exitcond1497.not = icmp eq i32 %648, %.2882
  br i1 %exitcond1497.not, label %.loopexit1028, label %614, !llvm.loop !60

649:                                              ; preds = %590
  %650 = icmp ne i32 %.2867, 0
  %or.cond25 = and i1 %257, %650
  %651 = icmp eq i32 %.0883.ph.lcssa.fr167917211821, 2
  %or.cond27 = and i1 %or.cond25, %651
  br i1 %or.cond27, label %652, label %684

652:                                              ; preds = %649
  %653 = fmul double %.0775, 2.000000e+00
  %654 = add nsw i32 %.2882, -1
  %655 = sitofp i32 %654 to double
  %656 = fdiv double %653, %655
  %657 = call double @cos(double noundef %.0775) #13
  %658 = icmp sgt i32 %.2882, 0
  br i1 %658, label %.lr.ph1376.preheader, label %.loopexit1028

.lr.ph1376.preheader:                             ; preds = %652
  %659 = call double @sin(double noundef %.0775) #13
  %660 = fmul double %.0820.ph.lcssa167217271815, %659
  %661 = call double @cos(double noundef %.0775) #13
  %662 = fsub double %661, %657
  %663 = fmul double %.0820.ph.lcssa167217271815, %662
  br i1 %.not932, label %665, label %664

664:                                              ; preds = %.lr.ph1376.preheader
  call void @qh_out1(ptr noundef %0, double noundef 1.000000e+00)
  br label %665

665:                                              ; preds = %.lr.ph1376.preheader, %664
  %666 = fmul double %.2764168117201822, %660
  %667 = fmul double %.2764168117201822, %663
  call void @qh_out2n(ptr noundef %0, double noundef %666, double noundef %667)
  %exitcond1546.peel.not = icmp eq i32 %.2882, 1
  br i1 %exitcond1546.peel.not, label %.loopexit1028, label %.lr.ph1376

.lr.ph1376:                                       ; preds = %665, %682
  %.71374 = phi i32 [ %683, %682 ], [ 1, %665 ]
  %.17721373.pn = phi double [ %.17721373, %682 ], [ %.0775, %665 ]
  %.17721373 = fsub double %.17721373.pn, %656
  %668 = call double @sin(double noundef %.17721373) #13
  %669 = fmul double %.0820.ph.lcssa167217271815, %668
  %670 = call double @cos(double noundef %.17721373) #13
  %671 = fsub double %670, %657
  %672 = fmul double %.0820.ph.lcssa167217271815, %671
  br i1 %.not932, label %674, label %673

673:                                              ; preds = %.lr.ph1376
  call void @qh_out1(ptr noundef %0, double noundef 1.000000e+00)
  br label %674

674:                                              ; preds = %673, %.lr.ph1376
  %675 = fmul double %.2764168117201822, %669
  %676 = fmul double %.2764168117201822, %672
  call void @qh_out2n(ptr noundef %0, double noundef %675, double noundef %676)
  %.not962 = icmp eq i32 %.71374, %654
  br i1 %.not962, label %682, label %677

677:                                              ; preds = %674
  br i1 %.not932, label %679, label %678

678:                                              ; preds = %677
  call void @qh_out1(ptr noundef %0, double noundef 1.000000e+00)
  br label %679

679:                                              ; preds = %678, %677
  %680 = fneg double %672
  %681 = fmul double %.2764168117201822, %680
  call void @qh_out2n(ptr noundef %0, double noundef %675, double noundef %681)
  br label %682

682:                                              ; preds = %674, %679
  %683 = add nuw nsw i32 %.71374, 1
  %exitcond1546.not = icmp eq i32 %683, %.2882
  br i1 %exitcond1546.not, label %.loopexit1028, label %.lr.ph1376, !llvm.loop !61

684:                                              ; preds = %649
  %685 = icmp ne i32 %.0883.ph.lcssa.fr167917211821, 2
  %or.cond31 = and i1 %or.cond25, %685
  br i1 %or.cond31, label %686, label %723

686:                                              ; preds = %684
  %.not959 = icmp eq i32 %.0883.ph.lcssa.fr167917211821, 3
  br i1 %.not959, label %690, label %687

687:                                              ; preds = %686
  %688 = getelementptr inbounds i8, ptr %0, i64 2424
  %689 = load ptr, ptr %688, align 8, !tbaa !25
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %0, ptr noundef %689, i32 noundef 6198, ptr noundef nonnull @.str.25) #13
  call void @qh_errexit_rbox(ptr noundef %0, i32 noundef 1)
  br label %690

690:                                              ; preds = %687, %686
  %691 = sitofp i32 %.2882 to double
  %692 = fdiv double 0x401921FB54442D18, %691
  %.not960 = icmp eq i32 %.0854.ph.lcssa166017381804, 0
  %693 = fsub double 1.000000e+00, %.0825.ph.lcssa167117281814
  %694 = select i1 %.not960, double 5.000000e-01, double %693
  %695 = fneg double %694
  %696 = fmul double %694, %695
  %697 = call double @llvm.fmuladd.f64(double %.0820.ph.lcssa167217271815, double %.0820.ph.lcssa167217271815, double %696)
  %698 = call double @sqrt(double noundef %697) #13
  %699 = icmp sgt i32 %.2882, 0
  br i1 %699, label %.lr.ph1372, label %.loopexit1028

.lr.ph1372:                                       ; preds = %690
  %700 = fsub double %698, %.0774
  %701 = fmul double %.2764168117201822, %700
  %702 = fneg double %.2764168117201822
  %703 = fmul double %700, %702
  br label %704

704:                                              ; preds = %.lr.ph1372, %718
  %.81370 = phi i32 [ 0, %.lr.ph1372 ], [ %721, %718 ]
  %.27731369 = phi double [ 0.000000e+00, %.lr.ph1372 ], [ %722, %718 ]
  %705 = call double @cos(double noundef %.27731369) #13
  %706 = call double @sin(double noundef %.27731369) #13
  br i1 %.not932, label %708, label %707

707:                                              ; preds = %704
  call void @qh_out1(ptr noundef %0, double noundef 1.000000e+00)
  br label %708

708:                                              ; preds = %707, %704
  %709 = fmul double %.2764168117201822, %705
  %710 = fmul double %.2764168117201822, %706
  call void @qh_out3n(ptr noundef %0, double noundef %709, double noundef %710, double noundef 0.000000e+00)
  %711 = fmul double %694, %705
  %712 = fmul double %694, %706
  br i1 %.not932, label %.thread1830, label %715

.thread1830:                                      ; preds = %708
  %713 = fmul double %.2764168117201822, %711
  %714 = fmul double %.2764168117201822, %712
  call void @qh_out3n(ptr noundef %0, double noundef %713, double noundef %714, double noundef %701)
  br label %718

715:                                              ; preds = %708
  call void @qh_out1(ptr noundef %0, double noundef 1.000000e+00)
  %716 = fmul double %.2764168117201822, %711
  %717 = fmul double %.2764168117201822, %712
  call void @qh_out3n(ptr noundef %0, double noundef %716, double noundef %717, double noundef %701)
  call void @qh_out1(ptr noundef %0, double noundef 1.000000e+00)
  br label %718

718:                                              ; preds = %.thread1830, %715
  %719 = phi double [ %714, %.thread1830 ], [ %717, %715 ]
  %720 = phi double [ %713, %.thread1830 ], [ %716, %715 ]
  call void @qh_out3n(ptr noundef %0, double noundef %720, double noundef %719, double noundef %703)
  %721 = add nuw nsw i32 %.81370, 1
  %722 = fadd double %692, %.27731369
  %exitcond1545.not = icmp eq i32 %721, %.2882
  br i1 %exitcond1545.not, label %.loopexit1028, label %704, !llvm.loop !63

723:                                              ; preds = %684
  %724 = icmp ne i32 %.0872.ph.lcssa165417441798, 0
  br i1 %724, label %725, label %734

725:                                              ; preds = %723
  %726 = add i32 %.0883.ph.lcssa.fr167917211821, -1
  br i1 %.not932, label %728, label %727

727:                                              ; preds = %725
  call void @qh_out1(ptr noundef %0, double noundef 1.000000e+00)
  br label %728

728:                                              ; preds = %727, %725
  %729 = icmp sgt i32 %.0883.ph.lcssa.fr167917211821, 1
  br i1 %729, label %.lr.ph1323, label %._crit_edge1324

.lr.ph1323:                                       ; preds = %728, %.lr.ph1323
  %.17531321 = phi i32 [ %730, %.lr.ph1323 ], [ 0, %728 ]
  call void @qh_out1(ptr noundef %0, double noundef 0.000000e+00)
  %730 = add nuw nsw i32 %.17531321, 1
  %exitcond1498.not = icmp eq i32 %730, %726
  br i1 %exitcond1498.not, label %._crit_edge1324, label %.lr.ph1323, !llvm.loop !64

._crit_edge1324:                                  ; preds = %.lr.ph1323, %728
  %731 = fneg double %.2764168117201822
  call void @qh_out1(ptr noundef %0, double noundef %731)
  %732 = getelementptr inbounds i8, ptr %0, i64 2416
  %733 = load ptr, ptr %732, align 8, !tbaa !29
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %0, ptr noundef %733, i32 noundef 9398, ptr noundef nonnull @.str.23) #13
  br label %736

734:                                              ; preds = %723
  %735 = sext i1 %257 to i32
  %spec.select996 = add nsw i32 %.0883.ph.lcssa.fr167917211821, %735
  br label %736

736:                                              ; preds = %734, %._crit_edge1324
  %.0794 = phi i32 [ %726, %._crit_edge1324 ], [ %spec.select996, %734 ]
  %737 = icmp sgt i32 %.2882, 0
  br i1 %737, label %.preheader1034.lr.ph, label %.loopexit1028

.preheader1034.lr.ph:                             ; preds = %736
  %738 = icmp sgt i32 %.0794, 0
  %739 = icmp ne i32 %.2876, 0
  %or.cond33 = select i1 %257, i1 %739, i1 false
  %740 = icmp eq i32 %.0868.ph.lcssa165617421800, 0
  %or.cond35 = select i1 %740, i1 true, i1 %739
  %.not952 = icmp eq i32 %.0852.ph.lcssa166217371805, 0
  %.not954 = icmp eq i32 %.0883.ph.lcssa.fr167917211821, 3
  %741 = getelementptr inbounds i8, ptr %0, i64 2424
  %742 = add nsw i32 %.2882, -1
  %743 = uitofp nneg i32 %742 to double
  %744 = getelementptr inbounds i8, ptr %4, i64 8
  %745 = getelementptr inbounds i8, ptr %4, i64 16
  %.not953 = icmp eq i32 %.0863.ph.lcssa165817401802, 0
  %746 = icmp sgt i32 %.0883.ph.lcssa.fr167917211821, 0
  %or.cond37 = select i1 %724, i1 %739, i1 false
  %747 = icmp eq i32 %.0872.ph.lcssa165417441798, 0
  %or.cond39 = select i1 %747, i1 true, i1 %739
  %748 = add nsw i32 %.0883.ph.lcssa.fr167917211821, -1
  %749 = sext i32 %748 to i64
  %750 = getelementptr inbounds [200 x double], ptr %4, i64 0, i64 %749
  %wide.trip.count1502 = zext i32 %.0794 to i64
  %wide.trip.count1507 = zext i32 %.0883.ph.lcssa.fr167917211821 to i64
  %wide.trip.count1512 = zext nneg i32 %.0794 to i64
  %wide.trip.count1517 = zext nneg i32 %.0794 to i64
  %wide.trip.count1527 = zext nneg i32 %.0883.ph.lcssa.fr167917211821 to i64
  %wide.trip.count1537 = zext nneg i32 %.0883.ph.lcssa.fr167917211821 to i64
  %wide.trip.count1542 = zext nneg i32 %.0883.ph.lcssa.fr167917211821 to i64
  %min.iters.check2188 = icmp ult i32 %.0883.ph.lcssa.fr167917211821, 4
  %n.vec2191 = and i64 %wide.trip.count1507, 2147483644
  %cmp.n2200 = icmp eq i64 %n.vec2191, %wide.trip.count1507
  %min.iters.check2173 = icmp ult i32 %.0794, 4
  %n.vec2176 = and i64 %wide.trip.count1502, 2147483644
  %cmp.n2185 = icmp eq i64 %n.vec2176, %wide.trip.count1502
  %min.iters.check2158 = icmp ult i32 %.0794, 4
  %n.vec2161 = and i64 %wide.trip.count1502, 2147483644
  %cmp.n2170 = icmp eq i64 %n.vec2161, %wide.trip.count1502
  %xtraiter2313 = and i64 %wide.trip.count1507, 3
  %751 = icmp ult i32 %.0883.ph.lcssa.fr167917211821, 4
  %unroll_iter = and i64 %wide.trip.count1507, 2147483644
  %lcmp.mod2314.not = icmp eq i64 %xtraiter2313, 0
  %min.iters.check2142 = icmp eq i32 %.0883.ph.lcssa.fr167917211821, 1
  %n.vec2145 = and i64 %wide.trip.count1507, 2147483646
  %broadcast.splatinsert2150 = insertelement <2 x double> poison, double %.0820.ph.lcssa167217271815, i64 0
  %broadcast.splat2151 = shufflevector <2 x double> %broadcast.splatinsert2150, <2 x double> poison, <2 x i32> zeroinitializer
  %cmp.n2155 = icmp eq i64 %n.vec2145, %wide.trip.count1507
  %xtraiter2316 = and i64 %wide.trip.count1502, 3
  %752 = icmp ult i32 %.0794, 4
  %unroll_iter2320 = and i64 %wide.trip.count1502, 2147483644
  %lcmp.mod2318.not = icmp eq i64 %xtraiter2316, 0
  %min.iters.check2128 = icmp eq i32 %.0883.ph.lcssa.fr167917211821, 1
  %n.vec2131 = and i64 %wide.trip.count1507, 2147483646
  %cmp.n2139 = icmp eq i64 %n.vec2131, %wide.trip.count1507
  %min.iters.check2113 = icmp ult i32 %.0883.ph.lcssa.fr167917211821, 4
  %n.vec2116 = and i64 %wide.trip.count1507, 2147483644
  %broadcast.splatinsert2122 = insertelement <2 x double> poison, double %.2764168117201822, i64 0
  %broadcast.splat2123 = shufflevector <2 x double> %broadcast.splatinsert2122, <2 x double> poison, <2 x i32> zeroinitializer
  %cmp.n2125 = icmp eq i64 %n.vec2116, %wide.trip.count1507
  br label %.preheader1034

.preheader1034:                                   ; preds = %.preheader1034.lr.ph, %944
  %.91366 = phi i32 [ 0, %.preheader1034.lr.ph ], [ %945, %944 ]
  %.38161365 = phi i32 [ %.1814, %.preheader1034.lr.ph ], [ %941, %944 ]
  %.48291364 = phi double [ %.0825.ph.lcssa167117281814, %.preheader1034.lr.ph ], [ %.88331012, %944 ]
  %.28561363 = phi i32 [ %.0854.ph.lcssa166017381804, %.preheader1034.lr.ph ], [ %.68601010, %944 ]
  br i1 %738, label %.lr.ph1327, label %._crit_edge1328

.lr.ph1327:                                       ; preds = %.preheader1034, %.lr.ph1327
  %indvars.iv1499 = phi i64 [ %indvars.iv.next1500, %.lr.ph1327 ], [ 0, %.preheader1034 ]
  %.17911325 = phi double [ %759, %.lr.ph1327 ], [ 0.000000e+00, %.preheader1034 ]
  %753 = call i32 @qh_rand(ptr noundef %0) #13
  %754 = sitofp i32 %753 to double
  %755 = fmul double %754, 2.000000e+00
  %756 = fdiv double %755, 0x41DFFFFFFF800000
  %757 = fadd double %756, -1.000000e+00
  %758 = getelementptr inbounds [200 x double], ptr %4, i64 0, i64 %indvars.iv1499
  store double %757, ptr %758, align 8, !tbaa !33
  %759 = call double @llvm.fmuladd.f64(double %757, double %757, double %.17911325)
  %indvars.iv.next1500 = add nuw nsw i64 %indvars.iv1499, 1
  %exitcond1503.not = icmp eq i64 %indvars.iv.next1500, %wide.trip.count1502
  br i1 %exitcond1503.not, label %._crit_edge1328, label %.lr.ph1327, !llvm.loop !65

._crit_edge1328:                                  ; preds = %.lr.ph1327, %.preheader1034
  %.1791.lcssa = phi double [ 0.000000e+00, %.preheader1034 ], [ %759, %.lr.ph1327 ]
  %760 = call double @sqrt(double noundef %.1791.lcssa) #13
  br i1 %724, label %761, label %777

761:                                              ; preds = %._crit_edge1328
  %.not956 = icmp eq i32 %.28561363, 0
  %.5830 = select i1 %.not956, double 1.000000e+00, double %.48291364
  %762 = call i32 @qh_rand(ptr noundef %0) #13
  %763 = sitofp i32 %762 to double
  %764 = fmul double %.5830, %763
  %765 = fdiv double %764, 0x41DFFFFFFF800000
  %766 = fsub double 1.000000e+00, %765
  %767 = fmul double %.0820.ph.lcssa167217271815, %766
  %768 = fdiv double %767, %760
  br i1 %738, label %.lr.ph1338.preheader, label %.loopexit1031

.lr.ph1338.preheader:                             ; preds = %761
  br i1 %min.iters.check2158, label %.lr.ph1338.preheader2208, label %vector.ph2159

vector.ph2159:                                    ; preds = %.lr.ph1338.preheader
  %broadcast.splatinsert2167 = insertelement <2 x double> poison, double %768, i64 0
  %broadcast.splat2168 = shufflevector <2 x double> %broadcast.splatinsert2167, <2 x double> poison, <2 x i32> zeroinitializer
  br label %vector.body2163

vector.body2163:                                  ; preds = %vector.body2163, %vector.ph2159
  %index2164 = phi i64 [ 0, %vector.ph2159 ], [ %index.next2169, %vector.body2163 ]
  %769 = getelementptr inbounds [200 x double], ptr %4, i64 0, i64 %index2164
  %770 = getelementptr inbounds i8, ptr %769, i64 16
  %wide.load2165 = load <2 x double>, ptr %769, align 16, !tbaa !33
  %wide.load2166 = load <2 x double>, ptr %770, align 16, !tbaa !33
  %771 = fmul <2 x double> %broadcast.splat2168, %wide.load2165
  %772 = fmul <2 x double> %broadcast.splat2168, %wide.load2166
  store <2 x double> %771, ptr %769, align 16, !tbaa !33
  store <2 x double> %772, ptr %770, align 16, !tbaa !33
  %index.next2169 = add nuw i64 %index2164, 4
  %773 = icmp eq i64 %index.next2169, %n.vec2161
  br i1 %773, label %middle.block2156, label %vector.body2163, !llvm.loop !66

middle.block2156:                                 ; preds = %vector.body2163
  br i1 %cmp.n2170, label %.loopexit1031, label %.lr.ph1338.preheader2208

.lr.ph1338.preheader2208:                         ; preds = %middle.block2156, %.lr.ph1338.preheader
  %indvars.iv1514.ph = phi i64 [ 0, %.lr.ph1338.preheader ], [ %n.vec2161, %middle.block2156 ]
  br label %.lr.ph1338

.lr.ph1338:                                       ; preds = %.lr.ph1338.preheader2208, %.lr.ph1338
  %indvars.iv1514 = phi i64 [ %indvars.iv.next1515, %.lr.ph1338 ], [ %indvars.iv1514.ph, %.lr.ph1338.preheader2208 ]
  %774 = getelementptr inbounds [200 x double], ptr %4, i64 0, i64 %indvars.iv1514
  %775 = load double, ptr %774, align 8, !tbaa !33
  %776 = fmul double %768, %775
  store double %776, ptr %774, align 8, !tbaa !33
  %indvars.iv.next1515 = add nuw nsw i64 %indvars.iv1514, 1
  %exitcond1518.not = icmp eq i64 %indvars.iv.next1515, %wide.trip.count1517
  br i1 %exitcond1518.not, label %.loopexit1031, label %.lr.ph1338, !llvm.loop !67

777:                                              ; preds = %._crit_edge1328
  br i1 %or.cond33, label %778, label %793

778:                                              ; preds = %777
  %.not955 = icmp eq i32 %.28561363, 0
  %.6831 = select i1 %.not955, double 1.000000e+00, double %.48291364
  %779 = call i32 @qh_rand(ptr noundef %0) #13
  %780 = sitofp i32 %779 to double
  %781 = fmul double %.6831, %780
  %782 = fdiv double %781, 0x41DFFFFFFF800000
  %783 = fsub double 1.000000e+00, %782
  %784 = fdiv double %783, %760
  br i1 %738, label %.lr.ph1335.preheader, label %.loopexit1031

.lr.ph1335.preheader:                             ; preds = %778
  br i1 %min.iters.check2173, label %.lr.ph1335.preheader2209, label %vector.ph2174

vector.ph2174:                                    ; preds = %.lr.ph1335.preheader
  %broadcast.splatinsert2182 = insertelement <2 x double> poison, double %784, i64 0
  %broadcast.splat2183 = shufflevector <2 x double> %broadcast.splatinsert2182, <2 x double> poison, <2 x i32> zeroinitializer
  br label %vector.body2178

vector.body2178:                                  ; preds = %vector.body2178, %vector.ph2174
  %index2179 = phi i64 [ 0, %vector.ph2174 ], [ %index.next2184, %vector.body2178 ]
  %785 = getelementptr inbounds [200 x double], ptr %4, i64 0, i64 %index2179
  %786 = getelementptr inbounds i8, ptr %785, i64 16
  %wide.load2180 = load <2 x double>, ptr %785, align 16, !tbaa !33
  %wide.load2181 = load <2 x double>, ptr %786, align 16, !tbaa !33
  %787 = fmul <2 x double> %broadcast.splat2183, %wide.load2180
  %788 = fmul <2 x double> %broadcast.splat2183, %wide.load2181
  store <2 x double> %787, ptr %785, align 16, !tbaa !33
  store <2 x double> %788, ptr %786, align 16, !tbaa !33
  %index.next2184 = add nuw i64 %index2179, 4
  %789 = icmp eq i64 %index.next2184, %n.vec2176
  br i1 %789, label %middle.block2171, label %vector.body2178, !llvm.loop !68

middle.block2171:                                 ; preds = %vector.body2178
  br i1 %cmp.n2185, label %.loopexit1031, label %.lr.ph1335.preheader2209

.lr.ph1335.preheader2209:                         ; preds = %middle.block2171, %.lr.ph1335.preheader
  %indvars.iv1509.ph = phi i64 [ 0, %.lr.ph1335.preheader ], [ %n.vec2176, %middle.block2171 ]
  br label %.lr.ph1335

.lr.ph1335:                                       ; preds = %.lr.ph1335.preheader2209, %.lr.ph1335
  %indvars.iv1509 = phi i64 [ %indvars.iv.next1510, %.lr.ph1335 ], [ %indvars.iv1509.ph, %.lr.ph1335.preheader2209 ]
  %790 = getelementptr inbounds [200 x double], ptr %4, i64 0, i64 %indvars.iv1509
  %791 = load double, ptr %790, align 8, !tbaa !33
  %792 = fmul double %784, %791
  store double %792, ptr %790, align 8, !tbaa !33
  %indvars.iv.next1510 = add nuw nsw i64 %indvars.iv1509, 1
  %exitcond1513.not = icmp eq i64 %indvars.iv.next1510, %wide.trip.count1512
  br i1 %exitcond1513.not, label %.loopexit1031, label %.lr.ph1335, !llvm.loop !69

793:                                              ; preds = %777
  br i1 %or.cond35, label %806, label %794

794:                                              ; preds = %793
  %.not951 = icmp eq i32 %.28561363, 0
  %.7832 = select i1 %.not951, double 1.000000e+00, double %.48291364
  %795 = call i32 @qh_rand(ptr noundef %0) #13
  %796 = srem i32 %795, %.0794
  %797 = sext i32 %796 to i64
  %798 = getelementptr inbounds [200 x double], ptr %4, i64 0, i64 %797
  %799 = load double, ptr %798, align 8, !tbaa !33
  %800 = fcmp olt double %799, 0.000000e+00
  %801 = fneg double %799
  br i1 %800, label %802, label %804

802:                                              ; preds = %794
  %803 = call double @llvm.fmuladd.f64(double %801, double %.7832, double -1.000000e+00)
  store double %803, ptr %798, align 8, !tbaa !33
  br label %.thread1014

804:                                              ; preds = %794
  %805 = call double @llvm.fmuladd.f64(double %801, double %.7832, double 1.000000e+00)
  store double %805, ptr %798, align 8, !tbaa !33
  br label %.thread1014

806:                                              ; preds = %793
  br i1 %.not952, label %820, label %807

807:                                              ; preds = %806
  br i1 %.not954, label %810, label %808

808:                                              ; preds = %807
  %809 = load ptr, ptr %741, align 8, !tbaa !25
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %0, ptr noundef %809, i32 noundef 6199, ptr noundef nonnull @.str.26) #13
  call void @qh_errexit_rbox(ptr noundef %0, i32 noundef 1)
  br label %810

810:                                              ; preds = %808, %807
  %811 = uitofp nneg i32 %.91366 to double
  %812 = fmul double %811, 0x401921FB54442D18
  %813 = fdiv double %812, %743
  %814 = call double @cos(double noundef %813) #13
  store double %814, ptr %4, align 16, !tbaa !33
  %815 = call double @sin(double noundef %813) #13
  store double %815, ptr %744, align 8, !tbaa !33
  %816 = shl nuw i32 %.91366, 1
  %817 = uitofp i32 %816 to double
  %818 = fdiv double %817, %743
  %819 = fadd double %818, -1.000000e+00
  store double %819, ptr %745, align 16, !tbaa !33
  br label %.thread1014

820:                                              ; preds = %806
  br i1 %739, label %821, label %.thread1014

821:                                              ; preds = %820
  %822 = fdiv double 1.000000e+00, %760
  br i1 %.not953, label %830, label %823

823:                                              ; preds = %821
  %824 = call i32 @qh_rand(ptr noundef %0) #13
  %825 = sitofp i32 %824 to double
  %826 = fmul double %.0834.ph.lcssa167017291813, %825
  %827 = fdiv double %826, 0x41DFFFFFFF800000
  %828 = fsub double 1.000000e+00, %827
  %829 = fmul double %822, %828
  br label %830

830:                                              ; preds = %823, %821
  %.1789 = phi double [ %829, %823 ], [ %822, %821 ]
  br i1 %746, label %.lr.ph1332.preheader, label %.loopexit1031

.lr.ph1332.preheader:                             ; preds = %830
  br i1 %min.iters.check2188, label %.lr.ph1332.preheader2211, label %vector.ph2189

vector.ph2189:                                    ; preds = %.lr.ph1332.preheader
  %broadcast.splatinsert2197 = insertelement <2 x double> poison, double %.1789, i64 0
  %broadcast.splat2198 = shufflevector <2 x double> %broadcast.splatinsert2197, <2 x double> poison, <2 x i32> zeroinitializer
  br label %vector.body2193

vector.body2193:                                  ; preds = %vector.body2193, %vector.ph2189
  %index2194 = phi i64 [ 0, %vector.ph2189 ], [ %index.next2199, %vector.body2193 ]
  %831 = getelementptr inbounds [200 x double], ptr %4, i64 0, i64 %index2194
  %832 = getelementptr inbounds i8, ptr %831, i64 16
  %wide.load2195 = load <2 x double>, ptr %831, align 16, !tbaa !33
  %wide.load2196 = load <2 x double>, ptr %832, align 16, !tbaa !33
  %833 = fmul <2 x double> %broadcast.splat2198, %wide.load2195
  %834 = fmul <2 x double> %broadcast.splat2198, %wide.load2196
  store <2 x double> %833, ptr %831, align 16, !tbaa !33
  store <2 x double> %834, ptr %832, align 16, !tbaa !33
  %index.next2199 = add nuw i64 %index2194, 4
  %835 = icmp eq i64 %index.next2199, %n.vec2191
  br i1 %835, label %middle.block2186, label %vector.body2193, !llvm.loop !70

middle.block2186:                                 ; preds = %vector.body2193
  br i1 %cmp.n2200, label %.loopexit1031, label %.lr.ph1332.preheader2211

.lr.ph1332.preheader2211:                         ; preds = %middle.block2186, %.lr.ph1332.preheader
  %indvars.iv1504.ph = phi i64 [ 0, %.lr.ph1332.preheader ], [ %n.vec2191, %middle.block2186 ]
  br label %.lr.ph1332

.lr.ph1332:                                       ; preds = %.lr.ph1332.preheader2211, %.lr.ph1332
  %indvars.iv1504 = phi i64 [ %indvars.iv.next1505, %.lr.ph1332 ], [ %indvars.iv1504.ph, %.lr.ph1332.preheader2211 ]
  %836 = getelementptr inbounds [200 x double], ptr %4, i64 0, i64 %indvars.iv1504
  %837 = load double, ptr %836, align 8, !tbaa !33
  %838 = fmul double %.1789, %837
  store double %838, ptr %836, align 8, !tbaa !33
  %indvars.iv.next1505 = add nuw nsw i64 %indvars.iv1504, 1
  %exitcond1508.not = icmp eq i64 %indvars.iv.next1505, %wide.trip.count1507
  br i1 %exitcond1508.not, label %.loopexit1031, label %.lr.ph1332, !llvm.loop !71

.loopexit1031:                                    ; preds = %.lr.ph1332, %.lr.ph1335, %.lr.ph1338, %middle.block2186, %middle.block2171, %middle.block2156, %830, %778, %761
  %.6860 = phi i32 [ 1, %761 ], [ 1, %778 ], [ %.28561363, %830 ], [ 1, %middle.block2156 ], [ 1, %middle.block2171 ], [ %.28561363, %middle.block2186 ], [ 1, %.lr.ph1338 ], [ 1, %.lr.ph1335 ], [ %.28561363, %.lr.ph1332 ]
  %.8833 = phi double [ %.5830, %761 ], [ %.6831, %778 ], [ %.48291364, %830 ], [ %.5830, %middle.block2156 ], [ %.6831, %middle.block2171 ], [ %.48291364, %middle.block2186 ], [ %.5830, %.lr.ph1338 ], [ %.6831, %.lr.ph1335 ], [ %.48291364, %.lr.ph1332 ]
  br i1 %or.cond37, label %839, label %870

839:                                              ; preds = %.loopexit1031
  store double 1.000000e+00, ptr %750, align 8, !tbaa !33
  br i1 %738, label %.lr.ph1352.preheader, label %._crit_edge1353

.lr.ph1352.preheader:                             ; preds = %839
  br i1 %752, label %._crit_edge1353.loopexit.unr-lcssa, label %.lr.ph1352

.lr.ph1352:                                       ; preds = %.lr.ph1352.preheader, %.lr.ph1352
  %indvars.iv1529 = phi i64 [ %indvars.iv.next1530.3, %.lr.ph1352 ], [ 0, %.lr.ph1352.preheader ]
  %.27921349 = phi double [ %851, %.lr.ph1352 ], [ 1.000000e+00, %.lr.ph1352.preheader ]
  %niter2321 = phi i64 [ %niter2321.next.3, %.lr.ph1352 ], [ 0, %.lr.ph1352.preheader ]
  %840 = getelementptr inbounds [200 x double], ptr %4, i64 0, i64 %indvars.iv1529
  %841 = load double, ptr %840, align 16, !tbaa !33
  %842 = call double @llvm.fmuladd.f64(double %841, double %841, double %.27921349)
  %indvars.iv.next1530 = or disjoint i64 %indvars.iv1529, 1
  %843 = getelementptr inbounds [200 x double], ptr %4, i64 0, i64 %indvars.iv.next1530
  %844 = load double, ptr %843, align 8, !tbaa !33
  %845 = call double @llvm.fmuladd.f64(double %844, double %844, double %842)
  %indvars.iv.next1530.1 = or disjoint i64 %indvars.iv1529, 2
  %846 = getelementptr inbounds [200 x double], ptr %4, i64 0, i64 %indvars.iv.next1530.1
  %847 = load double, ptr %846, align 16, !tbaa !33
  %848 = call double @llvm.fmuladd.f64(double %847, double %847, double %845)
  %indvars.iv.next1530.2 = or disjoint i64 %indvars.iv1529, 3
  %849 = getelementptr inbounds [200 x double], ptr %4, i64 0, i64 %indvars.iv.next1530.2
  %850 = load double, ptr %849, align 8, !tbaa !33
  %851 = call double @llvm.fmuladd.f64(double %850, double %850, double %848)
  %indvars.iv.next1530.3 = add nuw nsw i64 %indvars.iv1529, 4
  %niter2321.next.3 = add i64 %niter2321, 4
  %niter2321.ncmp.3 = icmp eq i64 %niter2321.next.3, %unroll_iter2320
  br i1 %niter2321.ncmp.3, label %._crit_edge1353.loopexit.unr-lcssa, label %.lr.ph1352, !llvm.loop !72

._crit_edge1353.loopexit.unr-lcssa:               ; preds = %.lr.ph1352, %.lr.ph1352.preheader
  %.lcssa2215.ph = phi double [ poison, %.lr.ph1352.preheader ], [ %851, %.lr.ph1352 ]
  %indvars.iv1529.unr = phi i64 [ 0, %.lr.ph1352.preheader ], [ %indvars.iv.next1530.3, %.lr.ph1352 ]
  %.27921349.unr = phi double [ 1.000000e+00, %.lr.ph1352.preheader ], [ %851, %.lr.ph1352 ]
  br i1 %lcmp.mod2318.not, label %._crit_edge1353, label %.lr.ph1352.epil

.lr.ph1352.epil:                                  ; preds = %._crit_edge1353.loopexit.unr-lcssa, %.lr.ph1352.epil
  %indvars.iv1529.epil = phi i64 [ %indvars.iv.next1530.epil, %.lr.ph1352.epil ], [ %indvars.iv1529.unr, %._crit_edge1353.loopexit.unr-lcssa ]
  %.27921349.epil = phi double [ %854, %.lr.ph1352.epil ], [ %.27921349.unr, %._crit_edge1353.loopexit.unr-lcssa ]
  %epil.iter2317 = phi i64 [ %epil.iter2317.next, %.lr.ph1352.epil ], [ 0, %._crit_edge1353.loopexit.unr-lcssa ]
  %852 = getelementptr inbounds [200 x double], ptr %4, i64 0, i64 %indvars.iv1529.epil
  %853 = load double, ptr %852, align 8, !tbaa !33
  %854 = call double @llvm.fmuladd.f64(double %853, double %853, double %.27921349.epil)
  %indvars.iv.next1530.epil = add nuw nsw i64 %indvars.iv1529.epil, 1
  %epil.iter2317.next = add i64 %epil.iter2317, 1
  %epil.iter2317.cmp.not = icmp eq i64 %epil.iter2317.next, %xtraiter2316
  br i1 %epil.iter2317.cmp.not, label %._crit_edge1353, label %.lr.ph1352.epil, !llvm.loop !73

._crit_edge1353:                                  ; preds = %._crit_edge1353.loopexit.unr-lcssa, %.lr.ph1352.epil, %839
  %.2792.lcssa = phi double [ 1.000000e+00, %839 ], [ %.lcssa2215.ph, %._crit_edge1353.loopexit.unr-lcssa ], [ %854, %.lr.ph1352.epil ]
  %855 = call double @sqrt(double noundef %.2792.lcssa) #13
  br i1 %746, label %.lr.ph1357.preheader, label %._crit_edge1358

.lr.ph1357.preheader:                             ; preds = %._crit_edge1353
  br i1 %min.iters.check2128, label %.lr.ph1357.preheader2206, label %vector.ph2129

vector.ph2129:                                    ; preds = %.lr.ph1357.preheader
  %broadcast.splatinsert2136 = insertelement <2 x double> poison, double %855, i64 0
  %broadcast.splat2137 = shufflevector <2 x double> %broadcast.splatinsert2136, <2 x double> poison, <2 x i32> zeroinitializer
  br label %vector.body2133

vector.body2133:                                  ; preds = %vector.body2133, %vector.ph2129
  %index2134 = phi i64 [ 0, %vector.ph2129 ], [ %index.next2138, %vector.body2133 ]
  %856 = getelementptr inbounds [200 x double], ptr %4, i64 0, i64 %index2134
  %wide.load2135 = load <2 x double>, ptr %856, align 16, !tbaa !33
  %857 = fdiv <2 x double> %wide.load2135, %broadcast.splat2137
  store <2 x double> %857, ptr %856, align 16, !tbaa !33
  %index.next2138 = add nuw i64 %index2134, 2
  %858 = icmp eq i64 %index.next2138, %n.vec2131
  br i1 %858, label %middle.block2126, label %vector.body2133, !llvm.loop !75

middle.block2126:                                 ; preds = %vector.body2133
  br i1 %cmp.n2139, label %._crit_edge1358, label %.lr.ph1357.preheader2206

.lr.ph1357.preheader2206:                         ; preds = %middle.block2126, %.lr.ph1357.preheader
  %indvars.iv1534.ph = phi i64 [ 0, %.lr.ph1357.preheader ], [ %n.vec2131, %middle.block2126 ]
  br label %.lr.ph1357

.lr.ph1357:                                       ; preds = %.lr.ph1357.preheader2206, %.lr.ph1357
  %indvars.iv1534 = phi i64 [ %indvars.iv.next1535, %.lr.ph1357 ], [ %indvars.iv1534.ph, %.lr.ph1357.preheader2206 ]
  %859 = getelementptr inbounds [200 x double], ptr %4, i64 0, i64 %indvars.iv1534
  %860 = load double, ptr %859, align 8, !tbaa !33
  %861 = fdiv double %860, %855
  store double %861, ptr %859, align 8, !tbaa !33
  %indvars.iv.next1535 = add nuw nsw i64 %indvars.iv1534, 1
  %exitcond1538.not = icmp eq i64 %indvars.iv.next1535, %wide.trip.count1537
  br i1 %exitcond1538.not, label %._crit_edge1358, label %.lr.ph1357, !llvm.loop !76

._crit_edge1358:                                  ; preds = %.lr.ph1357, %middle.block2126, %._crit_edge1353
  br i1 %.not953, label %932, label %862

862:                                              ; preds = %._crit_edge1358
  %863 = call i32 @qh_rand(ptr noundef %0) #13
  %864 = sitofp i32 %863 to double
  %865 = fmul double %.0834.ph.lcssa167017291813, %864
  %866 = fdiv double %865, 0x41DFFFFFFF800000
  %867 = fsub double 1.000000e+00, %866
  %868 = load double, ptr %750, align 8, !tbaa !33
  %869 = fmul double %868, %867
  store double %869, ptr %750, align 8, !tbaa !33
  br label %932

870:                                              ; preds = %.loopexit1031
  br i1 %or.cond39, label %.thread1014, label %871

871:                                              ; preds = %870
  %872 = call i32 @qh_rand(ptr noundef %0) #13
  %873 = sitofp i32 %872 to double
  %874 = fmul double %873, 2.000000e+00
  %875 = fdiv double %874, 0x41DFFFFFFF800000
  %876 = fadd double %875, -1.000000e+00
  store double %876, ptr %750, align 8, !tbaa !33
  br label %932

.thread1014:                                      ; preds = %810, %820, %802, %804, %870
  %.686010111019 = phi i32 [ %.6860, %870 ], [ 1, %804 ], [ 1, %802 ], [ %.28561363, %820 ], [ %.28561363, %810 ]
  %.883310131018 = phi double [ %.8833, %870 ], [ %.7832, %804 ], [ %.7832, %802 ], [ %.48291364, %820 ], [ %.48291364, %810 ]
  %877 = phi i1 [ %739, %870 ], [ false, %804 ], [ false, %802 ], [ false, %820 ], [ %739, %810 ]
  br i1 %257, label %878, label %919

878:                                              ; preds = %.thread1014
  store double %.0774, ptr %750, align 8, !tbaa !33
  br i1 %746, label %.lr.ph1342.preheader, label %._crit_edge1348

.lr.ph1342.preheader:                             ; preds = %878
  br i1 %751, label %._crit_edge1343.unr-lcssa, label %.lr.ph1342

.lr.ph1342:                                       ; preds = %.lr.ph1342.preheader, %.lr.ph1342
  %indvars.iv1519 = phi i64 [ %indvars.iv.next1520.3, %.lr.ph1342 ], [ 0, %.lr.ph1342.preheader ]
  %.37931339 = phi double [ %890, %.lr.ph1342 ], [ 0.000000e+00, %.lr.ph1342.preheader ]
  %niter = phi i64 [ %niter.next.3, %.lr.ph1342 ], [ 0, %.lr.ph1342.preheader ]
  %879 = getelementptr inbounds [200 x double], ptr %4, i64 0, i64 %indvars.iv1519
  %880 = load double, ptr %879, align 16, !tbaa !33
  %881 = call double @llvm.fmuladd.f64(double %880, double %880, double %.37931339)
  %indvars.iv.next1520 = or disjoint i64 %indvars.iv1519, 1
  %882 = getelementptr inbounds [200 x double], ptr %4, i64 0, i64 %indvars.iv.next1520
  %883 = load double, ptr %882, align 8, !tbaa !33
  %884 = call double @llvm.fmuladd.f64(double %883, double %883, double %881)
  %indvars.iv.next1520.1 = or disjoint i64 %indvars.iv1519, 2
  %885 = getelementptr inbounds [200 x double], ptr %4, i64 0, i64 %indvars.iv.next1520.1
  %886 = load double, ptr %885, align 16, !tbaa !33
  %887 = call double @llvm.fmuladd.f64(double %886, double %886, double %884)
  %indvars.iv.next1520.2 = or disjoint i64 %indvars.iv1519, 3
  %888 = getelementptr inbounds [200 x double], ptr %4, i64 0, i64 %indvars.iv.next1520.2
  %889 = load double, ptr %888, align 8, !tbaa !33
  %890 = call double @llvm.fmuladd.f64(double %889, double %889, double %887)
  %indvars.iv.next1520.3 = add nuw nsw i64 %indvars.iv1519, 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_edge1343.unr-lcssa, label %.lr.ph1342, !llvm.loop !77

._crit_edge1343.unr-lcssa:                        ; preds = %.lr.ph1342, %.lr.ph1342.preheader
  %.lcssa2214.ph = phi double [ poison, %.lr.ph1342.preheader ], [ %890, %.lr.ph1342 ]
  %indvars.iv1519.unr = phi i64 [ 0, %.lr.ph1342.preheader ], [ %indvars.iv.next1520.3, %.lr.ph1342 ]
  %.37931339.unr = phi double [ 0.000000e+00, %.lr.ph1342.preheader ], [ %890, %.lr.ph1342 ]
  br i1 %lcmp.mod2314.not, label %._crit_edge1343, label %.lr.ph1342.epil

.lr.ph1342.epil:                                  ; preds = %._crit_edge1343.unr-lcssa, %.lr.ph1342.epil
  %indvars.iv1519.epil = phi i64 [ %indvars.iv.next1520.epil, %.lr.ph1342.epil ], [ %indvars.iv1519.unr, %._crit_edge1343.unr-lcssa ]
  %.37931339.epil = phi double [ %893, %.lr.ph1342.epil ], [ %.37931339.unr, %._crit_edge1343.unr-lcssa ]
  %epil.iter = phi i64 [ %epil.iter.next, %.lr.ph1342.epil ], [ 0, %._crit_edge1343.unr-lcssa ]
  %891 = getelementptr inbounds [200 x double], ptr %4, i64 0, i64 %indvars.iv1519.epil
  %892 = load double, ptr %891, align 8, !tbaa !33
  %893 = call double @llvm.fmuladd.f64(double %892, double %892, double %.37931339.epil)
  %indvars.iv.next1520.epil = add nuw nsw i64 %indvars.iv1519.epil, 1
  %epil.iter.next = add i64 %epil.iter, 1
  %epil.iter.cmp.not = icmp eq i64 %epil.iter.next, %xtraiter2313
  br i1 %epil.iter.cmp.not, label %._crit_edge1343, label %.lr.ph1342.epil, !llvm.loop !78

._crit_edge1343:                                  ; preds = %.lr.ph1342.epil, %._crit_edge1343.unr-lcssa
  %.lcssa2214 = phi double [ %.lcssa2214.ph, %._crit_edge1343.unr-lcssa ], [ %893, %.lr.ph1342.epil ]
  %894 = call double @sqrt(double noundef %.lcssa2214) #13
  br i1 %746, label %.lr.ph1347.preheader, label %._crit_edge1348

.lr.ph1347.preheader:                             ; preds = %._crit_edge1343
  br i1 %min.iters.check2142, label %.lr.ph1347.preheader2207, label %vector.ph2143

vector.ph2143:                                    ; preds = %.lr.ph1347.preheader
  %broadcast.splatinsert2152 = insertelement <2 x double> poison, double %894, i64 0
  %broadcast.splat2153 = shufflevector <2 x double> %broadcast.splatinsert2152, <2 x double> poison, <2 x i32> zeroinitializer
  br label %vector.body2147

vector.body2147:                                  ; preds = %vector.body2147, %vector.ph2143
  %index2148 = phi i64 [ 0, %vector.ph2143 ], [ %index.next2154, %vector.body2147 ]
  %895 = getelementptr inbounds [200 x double], ptr %4, i64 0, i64 %index2148
  %wide.load2149 = load <2 x double>, ptr %895, align 16, !tbaa !33
  %896 = fmul <2 x double> %broadcast.splat2151, %wide.load2149
  %897 = fdiv <2 x double> %896, %broadcast.splat2153
  store <2 x double> %897, ptr %895, align 16, !tbaa !33
  %index.next2154 = add nuw i64 %index2148, 2
  %898 = icmp eq i64 %index.next2154, %n.vec2145
  br i1 %898, label %middle.block2140, label %vector.body2147, !llvm.loop !79

middle.block2140:                                 ; preds = %vector.body2147
  br i1 %cmp.n2155, label %._crit_edge1348, label %.lr.ph1347.preheader2207

.lr.ph1347.preheader2207:                         ; preds = %middle.block2140, %.lr.ph1347.preheader
  %indvars.iv1524.ph = phi i64 [ 0, %.lr.ph1347.preheader ], [ %n.vec2145, %middle.block2140 ]
  br label %.lr.ph1347

.lr.ph1347:                                       ; preds = %.lr.ph1347.preheader2207, %.lr.ph1347
  %indvars.iv1524 = phi i64 [ %indvars.iv.next1525, %.lr.ph1347 ], [ %indvars.iv1524.ph, %.lr.ph1347.preheader2207 ]
  %899 = getelementptr inbounds [200 x double], ptr %4, i64 0, i64 %indvars.iv1524
  %900 = load double, ptr %899, align 8, !tbaa !33
  %901 = fmul double %.0820.ph.lcssa167217271815, %900
  %902 = fdiv double %901, %894
  store double %902, ptr %899, align 8, !tbaa !33
  %indvars.iv.next1525 = add nuw nsw i64 %indvars.iv1524, 1
  %exitcond1528.not = icmp eq i64 %indvars.iv.next1525, %wide.trip.count1527
  br i1 %exitcond1528.not, label %._crit_edge1348, label %.lr.ph1347, !llvm.loop !80

._crit_edge1348:                                  ; preds = %.lr.ph1347, %middle.block2140, %878, %._crit_edge1343
  %903 = load double, ptr %750, align 8, !tbaa !33
  %904 = fsub double %903, %.0774
  store double %904, ptr %750, align 8, !tbaa !33
  br i1 %.not953, label %913, label %905

905:                                              ; preds = %._crit_edge1348
  %906 = call i32 @qh_rand(ptr noundef %0) #13
  %907 = sitofp i32 %906 to double
  %908 = fmul double %.0834.ph.lcssa167017291813, %907
  %909 = fdiv double %908, 0x41DFFFFFFF800000
  %910 = fsub double 1.000000e+00, %909
  %911 = load double, ptr %750, align 8, !tbaa !33
  %912 = fmul double %911, %910
  store double %912, ptr %750, align 8, !tbaa !33
  br label %913

913:                                              ; preds = %905, %._crit_edge1348
  %914 = call i32 @qh_rand(ptr noundef %0) #13
  %915 = icmp sgt i32 %914, 1073741823
  br i1 %915, label %916, label %932

916:                                              ; preds = %913
  %917 = load double, ptr %750, align 8, !tbaa !33
  %918 = fneg double %917
  store double %918, ptr %750, align 8, !tbaa !33
  br label %932

919:                                              ; preds = %.thread1014
  %or.cond41 = select i1 %.not953, i1 true, i1 %877
  br i1 %or.cond41, label %932, label %920

920:                                              ; preds = %919
  %921 = call i32 @qh_rand(ptr noundef %0) #13
  %922 = srem i32 %921, %.0794
  %923 = sext i32 %922 to i64
  %924 = getelementptr inbounds [200 x double], ptr %4, i64 0, i64 %923
  %925 = load double, ptr %924, align 8, !tbaa !33
  %926 = fcmp olt double %925, 0.000000e+00
  %927 = fneg double %925
  br i1 %926, label %928, label %930

928:                                              ; preds = %920
  %929 = call double @llvm.fmuladd.f64(double %927, double %.0834.ph.lcssa167017291813, double -1.000000e+00)
  store double %929, ptr %924, align 8, !tbaa !33
  br label %932

930:                                              ; preds = %920
  %931 = call double @llvm.fmuladd.f64(double %927, double %.0834.ph.lcssa167017291813, double 1.000000e+00)
  store double %931, ptr %924, align 8, !tbaa !33
  br label %932

932:                                              ; preds = %871, %919, %930, %928, %913, %916, %._crit_edge1358, %862
  %.88331012 = phi double [ %.8833, %871 ], [ %.883310131018, %919 ], [ %.883310131018, %930 ], [ %.883310131018, %928 ], [ %.883310131018, %913 ], [ %.883310131018, %916 ], [ %.8833, %._crit_edge1358 ], [ %.8833, %862 ]
  %.68601010 = phi i32 [ %.6860, %871 ], [ %.686010111019, %919 ], [ %.686010111019, %930 ], [ %.686010111019, %928 ], [ %.686010111019, %913 ], [ %.686010111019, %916 ], [ %.6860, %._crit_edge1358 ], [ %.6860, %862 ]
  br i1 %746, label %.lr.ph1361.preheader, label %._crit_edge1362

.lr.ph1361.preheader:                             ; preds = %932
  br i1 %min.iters.check2113, label %.lr.ph1361.preheader2205, label %vector.body2118

vector.body2118:                                  ; preds = %.lr.ph1361.preheader, %vector.body2118
  %index2119 = phi i64 [ %index.next2124, %vector.body2118 ], [ 0, %.lr.ph1361.preheader ]
  %933 = getelementptr inbounds [200 x double], ptr %4, i64 0, i64 %index2119
  %934 = getelementptr inbounds i8, ptr %933, i64 16
  %wide.load2120 = load <2 x double>, ptr %933, align 16, !tbaa !33
  %wide.load2121 = load <2 x double>, ptr %934, align 16, !tbaa !33
  %935 = fmul <2 x double> %broadcast.splat2123, %wide.load2120
  %936 = fmul <2 x double> %broadcast.splat2123, %wide.load2121
  store <2 x double> %935, ptr %933, align 16, !tbaa !33
  store <2 x double> %936, ptr %934, align 16, !tbaa !33
  %index.next2124 = add nuw i64 %index2119, 4
  %937 = icmp eq i64 %index.next2124, %n.vec2116
  br i1 %937, label %middle.block2111, label %vector.body2118, !llvm.loop !81

middle.block2111:                                 ; preds = %vector.body2118
  br i1 %cmp.n2125, label %._crit_edge1362, label %.lr.ph1361.preheader2205

.lr.ph1361.preheader2205:                         ; preds = %middle.block2111, %.lr.ph1361.preheader
  %indvars.iv1539.ph = phi i64 [ 0, %.lr.ph1361.preheader ], [ %n.vec2116, %middle.block2111 ]
  br label %.lr.ph1361

.lr.ph1361:                                       ; preds = %.lr.ph1361.preheader2205, %.lr.ph1361
  %indvars.iv1539 = phi i64 [ %indvars.iv.next1540, %.lr.ph1361 ], [ %indvars.iv1539.ph, %.lr.ph1361.preheader2205 ]
  %938 = getelementptr inbounds [200 x double], ptr %4, i64 0, i64 %indvars.iv1539
  %939 = load double, ptr %938, align 8, !tbaa !33
  %940 = fmul double %.2764168117201822, %939
  store double %940, ptr %938, align 8, !tbaa !33
  %indvars.iv.next1540 = add nuw nsw i64 %indvars.iv1539, 1
  %exitcond1543.not = icmp eq i64 %indvars.iv.next1540, %wide.trip.count1542
  br i1 %exitcond1543.not, label %._crit_edge1362, label %.lr.ph1361, !llvm.loop !82

._crit_edge1362:                                  ; preds = %.lr.ph1361, %middle.block2111, %932
  call void @qh_outcoord(ptr noundef %0, i32 noundef %.0870.ph.lcssa165517431799, ptr noundef nonnull %4, i32 noundef %.0883.ph.lcssa.fr167917211821)
  %941 = add nuw nsw i32 %.38161365, 1
  %942 = icmp slt i32 %.38161365, %spec.select991
  br i1 %942, label %943, label %944

943:                                              ; preds = %._crit_edge1362
  call void @qh_outcoincident(ptr noundef %0, i32 noundef %.0894.ph.lcssa165017481794, double noundef %.0817.ph.lcssa167317261816, i32 noundef %.0870.ph.lcssa165517431799, ptr noundef nonnull %4, i32 noundef %.0883.ph.lcssa.fr167917211821)
  br label %944

944:                                              ; preds = %._crit_edge1362, %943
  %945 = add nuw nsw i32 %.91366, 1
  %exitcond1544.not = icmp eq i32 %945, %.2882
  br i1 %exitcond1544.not, label %.loopexit1028, label %.preheader1034, !llvm.loop !83

.loopexit1028:                                    ; preds = %647, %944, %718, %682, %._crit_edge1388, %665, %608, %736, %690, %652, %.preheader1027
  %946 = icmp sgt i32 %.089317501792, 0
  %or.cond1406 = select i1 %.not922168217191823, i1 %946, i1 false
  br i1 %or.cond1406, label %.lr.ph1398, label %.loopexit1025

.lr.ph1398:                                       ; preds = %.loopexit1028
  %947 = icmp sgt i32 %.0883.ph.lcssa.fr167917211821, 0
  %948 = fneg double %.277017511791
  %949 = getelementptr inbounds i8, ptr %0, i64 2416
  br label %950

950:                                              ; preds = %.lr.ph1398, %._crit_edge1396
  %.101397 = phi i32 [ 0, %.lr.ph1398 ], [ %957, %._crit_edge1396 ]
  br i1 %.not932, label %952, label %951

951:                                              ; preds = %950
  call void @qh_out1(ptr noundef %0, double noundef 1.000000e+00)
  br label %952

952:                                              ; preds = %951, %950
  br i1 %947, label %.lr.ph1395, label %._crit_edge1396

.lr.ph1395:                                       ; preds = %952, %.lr.ph1395
  %.121393.in = phi i32 [ %.121393, %.lr.ph1395 ], [ %.0883.ph.lcssa.fr167917211821, %952 ]
  %.121393 = add nsw i32 %.121393.in, -1
  %953 = shl nuw i32 1, %.121393
  %954 = and i32 %953, %.101397
  %.not966 = icmp eq i32 %954, 0
  %..277017511791 = select i1 %.not966, double %948, double %.277017511791
  call void @qh_out1(ptr noundef %0, double noundef %..277017511791)
  %955 = icmp ugt i32 %.121393.in, 1
  br i1 %955, label %.lr.ph1395, label %._crit_edge1396, !llvm.loop !84

._crit_edge1396:                                  ; preds = %.lr.ph1395, %952
  %956 = load ptr, ptr %949, align 8, !tbaa !29
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %0, ptr noundef %956, i32 noundef 9400, ptr noundef nonnull @.str.23) #13
  %957 = add nuw nsw i32 %.101397, 1
  %exitcond1562.not = icmp eq i32 %957, %.089317501792
  br i1 %exitcond1562.not, label %.loopexit1025, label %950, !llvm.loop !85

.loopexit1025:                                    ; preds = %._crit_edge1396, %.loopexit1028
  %958 = icmp sgt i32 %.08921824, 0
  %or.cond1407 = select i1 %.not92317521790, i1 %958, i1 false
  br i1 %or.cond1407, label %.lr.ph1405, label %.loopexit

.lr.ph1405:                                       ; preds = %.loopexit1025
  %.131399 = add nsw i32 %.0883.ph.lcssa.fr167917211821, -1
  %959 = icmp sgt i32 %.0883.ph.lcssa.fr167917211821, 0
  %960 = fneg double %.27671825
  %961 = getelementptr inbounds i8, ptr %0, i64 2416
  br label %962

962:                                              ; preds = %.lr.ph1405, %._crit_edge1403
  %.111404 = phi i32 [ 0, %.lr.ph1405 ], [ %970, %._crit_edge1403 ]
  br i1 %.not932, label %964, label %963

963:                                              ; preds = %962
  call void @qh_out1(ptr noundef %0, double noundef 1.000000e+00)
  br label %964

964:                                              ; preds = %963, %962
  br i1 %959, label %.lr.ph1402, label %._crit_edge1403

.lr.ph1402:                                       ; preds = %964
  %965 = lshr i32 %.111404, 1
  %966 = and i32 %.111404, 1
  %.not965 = icmp eq i32 %966, 0
  br i1 %.not965, label %.lr.ph1402.split.us, label %.lr.ph1402.split

.lr.ph1402.split.us:                              ; preds = %.lr.ph1402, %.lr.ph1402.split.us
  %.131400.us = phi i32 [ %.13.us, %.lr.ph1402.split.us ], [ %.131399, %.lr.ph1402 ]
  %.not964.us = icmp eq i32 %965, %.131400.us
  %. = select i1 %.not964.us, double %960, double 0.000000e+00
  call void @qh_out1(ptr noundef %0, double noundef %.)
  %.13.us = add nsw i32 %.131400.us, -1
  %967 = icmp sgt i32 %.131400.us, 0
  br i1 %967, label %.lr.ph1402.split.us, label %._crit_edge1403, !llvm.loop !86

.lr.ph1402.split:                                 ; preds = %.lr.ph1402, %.lr.ph1402.split
  %.131400 = phi i32 [ %.13, %.lr.ph1402.split ], [ %.131399, %.lr.ph1402 ]
  %.not964 = icmp eq i32 %965, %.131400
  %.27671825. = select i1 %.not964, double %.27671825, double 0.000000e+00
  call void @qh_out1(ptr noundef %0, double noundef %.27671825.)
  %.13 = add nsw i32 %.131400, -1
  %968 = icmp sgt i32 %.131400, 0
  br i1 %968, label %.lr.ph1402.split, label %._crit_edge1403, !llvm.loop !86

._crit_edge1403:                                  ; preds = %.lr.ph1402.split, %.lr.ph1402.split.us, %964
  %969 = load ptr, ptr %961, align 8, !tbaa !29
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %0, ptr noundef %969, i32 noundef 9401, ptr noundef nonnull @.str.23) #13
  %970 = add nuw nsw i32 %.111404, 1
  %exitcond1563.not = icmp eq i32 %970, %.08921824
  br i1 %exitcond1563.not, label %.loopexit, label %962, !llvm.loop !87

.loopexit:                                        ; preds = %._crit_edge1403, %.loopexit1025
  br i1 %.not932, label %974, label %971

971:                                              ; preds = %.loopexit
  %972 = getelementptr inbounds i8, ptr %0, i64 2416
  %973 = load ptr, ptr %972, align 8, !tbaa !29
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf_rbox(ptr noundef %0, ptr noundef %973, i32 noundef 9402, ptr noundef nonnull @.str.27) #13
  br label %974

974:                                              ; preds = %971, %.loopexit
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #13
  call void @llvm.lifetime.end.p0(i64 50, ptr nonnull %7) #13
  call void @llvm.lifetime.end.p0(i64 250, ptr nonnull %6) #13
  call void @llvm.lifetime.end.p0(i64 800, ptr nonnull %5) #13
  call void @llvm.lifetime.end.p0(i64 1600, ptr nonnull %4) #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, ptr noundef, i32 noundef, ptr noundef, ...) local_unnamed_addr #5

; Function Attrs: nounwind uwtable
declare dso_local void @qh_errexit_rbox(ptr noundef, 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(ptr noundef, i32 noundef) local_unnamed_addr #5

; Function Attrs: nounwind uwtable
declare dso_local void @qh_out1(ptr noundef, 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(ptr noundef) local_unnamed_addr #5

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

; Function Attrs: nounwind uwtable
declare dso_local void @qh_outcoincident(ptr noundef, 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(ptr noundef, 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(ptr noundef, 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 3232}
!15 = !{!"qhT", !16, i64 0, !16, i64 4, !16, i64 8, !16, i64 12, !16, i64 16, !16, i64 20, !17, i64 24, !16, i64 32, !16, i64 36, !16, i64 40, !16, i64 44, !16, i64 48, !16, i64 52, !16, i64 56, !16, i64 60, !17, i64 64, !17, i64 72, !16, i64 80, !16, i64 84, !16, i64 88, !16, i64 92, !16, i64 96, !16, i64 100, !6, i64 104, !16, i64 112, !16, i64 116, !6, i64 120, !16, i64 128, !16, i64 132, !16, i64 136, !16, i64 140, !16, i64 144, !16, i64 148, !16, i64 152, !17, i64 160, !17, i64 168, !16, i64 176, !16, i64 180, !16, i64 184, !16, i64 188, !17, i64 192, !17, i64 200, !16, i64 208, !16, i64 212, !17, i64 216, !16, i64 224, !16, i64 228, !16, i64 232, !16, i64 236, !16, i64 240, !16, i64 244, !16, i64 248, !16, i64 252, !16, i64 256, !16, i64 260, !16, i64 264, !16, i64 268, !16, i64 272, !16, i64 276, !16, i64 280, !16, i64 284, !16, i64 288, !16, i64 292, !16, i64 296, !7, i64 300, !16, i64 416, !16, i64 420, !16, i64 424, !16, i64 428, !16, i64 432, !16, i64 436, !16, i64 440, !16, i64 444, !17, i64 448, !17, i64 456, !17, i64 464, !16, i64 472, !16, i64 476, !16, i64 480, !16, i64 484, !16, i64 488, !16, i64 492, !16, i64 496, !16, i64 500, !16, i64 504, !16, i64 508, !16, i64 512, !16, i64 516, !16, i64 520, !16, i64 524, !16, i64 528, !16, i64 532, !16, i64 536, !16, i64 540, !16, i64 544, !17, i64 552, !16, i64 560, !16, i64 564, !16, i64 568, !16, i64 572, !16, i64 576, !16, i64 580, !16, i64 584, !16, i64 588, !17, i64 592, !16, i64 600, !6, i64 608, !6, i64 616, !16, i64 624, !16, i64 628, !16, i64 632, !16, i64 636, !16, i64 640, !6, i64 648, !16, i64 656, !6, i64 664, !16, i64 672, !7, i64 676, !16, i64 932, !7, i64 936, !7, i64 1192, !16, i64 1704, !16, i64 1708, !16, i64 1712, !16, i64 1716, !16, i64 1720, !16, i64 1724, !6, i64 1728, !6, i64 1736, !6, i64 1744, !6, i64 1752, !17, i64 1760, !17, i64 1768, !17, i64 1776, !17, i64 1784, !17, i64 1792, !17, i64 1800, !17, i64 1808, !17, i64 1816, !17, i64 1824, !17, i64 1832, !17, i64 1840, !17, i64 1848, !17, i64 1856, !17, i64 1864, !6, i64 1872, !17, i64 1880, !17, i64 1888, !17, i64 1896, !17, i64 1904, !16, i64 1912, !7, i64 1916, !7, i64 1928, !7, i64 2128, !7, i64 2168, !7, i64 2368, !6, i64 2408, !6, i64 2416, !6, i64 2424, !6, i64 2432, !16, i64 2440, !16, i64 2444, !16, i64 2448, !6, i64 2456, !6, i64 2464, !6, i64 2472, !6, i64 2480, !6, i64 2488, !16, i64 2496, !16, i64 2500, !6, i64 2504, !16, i64 2512, !6, i64 2520, !16, i64 2528, !6, i64 2536, !6, i64 2544, !6, i64 2552, !6, i64 2560, !16, i64 2568, !16, i64 2572, !16, i64 2576, !16, i64 2580, !16, i64 2584, !16, i64 2588, !16, i64 2592, !16, i64 2596, !18, i64 2600, !16, i64 2608, !16, i64 2612, !16, i64 2616, !16, i64 2620, !16, i64 2624, !6, i64 2632, !6, i64 2640, !16, i64 2648, !16, i64 2652, !16, i64 2656, !17, i64 2664, !16, i64 2672, !17, i64 2680, !17, i64 2688, !17, i64 2696, !16, i64 2704, !16, i64 2708, !16, i64 2712, !16, i64 2716, !16, i64 2720, !17, i64 2728, !17, i64 2736, !16, i64 2744, !16, i64 2748, !16, i64 2752, !16, i64 2756, !16, i64 2760, !16, i64 2764, !17, i64 2768, !17, i64 2776, !16, i64 2784, !16, i64 2788, !16, i64 2792, !16, i64 2796, !6, i64 2800, !6, i64 2808, !6, i64 2816, !6, i64 2824, !6, i64 2832, !6, i64 2840, !6, i64 2848, !6, i64 2856, !6, i64 2864, !16, i64 2872, !6, i64 2880, !6, i64 2888, !16, i64 2896, !16, i64 2900, !16, i64 2904, !6, i64 2912, !17, i64 2920, !17, i64 2928, !17, i64 2936, !17, i64 2944, !16, i64 2952, !16, i64 2956, !16, i64 2960, !16, i64 2964, !16, i64 2968, !16, i64 2972, !6, i64 2976, !16, i64 2984, !16, i64 2988, !7, i64 2992, !7, i64 3192, !16, i64 3232, !17, i64 3240, !6, i64 3248, !6, i64 3256, !6, i64 3264, !19, i64 3272, !20, i64 3424}
!16 = !{!"int", !7, i64 0}
!17 = !{!"double", !7, i64 0}
!18 = !{!"long", !7, i64 0}
!19 = !{!"qhmemT", !16, i64 0, !16, i64 4, !16, i64 8, !16, i64 12, !16, i64 16, !16, i64 20, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48, !6, i64 56, !16, i64 64, !6, i64 72, !6, i64 80, !16, i64 88, !16, i64 92, !16, i64 96, !16, i64 100, !16, i64 104, !16, i64 108, !16, i64 112, !16, i64 116, !16, i64 120, !16, i64 124, !16, i64 128, !16, i64 132, !16, i64 136, !16, i64 140, !16, i64 144}
!20 = !{!"qhstatT", !7, i64 0, !7, i64 1992, !7, i64 2256, !7, i64 4248, !7, i64 4746, !7, i64 4995, !7, i64 5248, !16, i64 5320, !16, i64 5324, !16, i64 5328, !16, i64 5332, !17, i64 5336}
!21 = distinct !{!21, !13}
!22 = distinct !{!22, !13}
!23 = distinct !{!23, !13}
!24 = distinct !{!24, !13}
!25 = !{!15, !6, i64 2424}
!26 = !{!15, !17, i64 3240}
!27 = distinct !{!27, !13}
!28 = distinct !{!28, !13}
!29 = !{!15, !6, i64 2416}
!30 = distinct !{!30, !13}
!31 = distinct !{!31, !13}
!32 = distinct !{!32, !13}
!33 = !{!17, !17, i64 0}
!34 = distinct !{!34, !13}
!35 = distinct !{!35, !13}
!36 = distinct !{!36, !13, !37, !38}
!37 = !{!"llvm.loop.isvectorized", i32 1}
!38 = !{!"llvm.loop.unroll.runtime.disable"}
!39 = distinct !{!39, !13, !38, !37}
!40 = distinct !{!40, !13}
!41 = distinct !{!41, !13, !37, !38}
!42 = distinct !{!42, !13, !38, !37}
!43 = distinct !{!43, !13}
!44 = distinct !{!44, !13}
!45 = !{!46}
!46 = distinct !{!46, !47}
!47 = distinct !{!47, !"LVerDomain"}
!48 = !{!49}
!49 = distinct !{!49, !47}
!50 = distinct !{!50, !13, !37, !38}
!51 = distinct !{!51, !13, !37}
!52 = distinct !{!52, !13}
!53 = distinct !{!53, !13, !37, !38}
!54 = distinct !{!54, !13, !38, !37}
!55 = distinct !{!55, !13}
!56 = !{!16, !16, i64 0}
!57 = distinct !{!57, !13}
!58 = distinct !{!58, !13}
!59 = distinct !{!59, !13}
!60 = distinct !{!60, !13}
!61 = distinct !{!61, !13, !62}
!62 = !{!"llvm.loop.peeled.count", i32 1}
!63 = distinct !{!63, !13}
!64 = distinct !{!64, !13}
!65 = distinct !{!65, !13}
!66 = distinct !{!66, !13, !37, !38}
!67 = distinct !{!67, !13, !38, !37}
!68 = distinct !{!68, !13, !37, !38}
!69 = distinct !{!69, !13, !38, !37}
!70 = distinct !{!70, !13, !37, !38}
!71 = distinct !{!71, !13, !38, !37}
!72 = distinct !{!72, !13}
!73 = distinct !{!73, !74}
!74 = !{!"llvm.loop.unroll.disable"}
!75 = distinct !{!75, !13, !37, !38}
!76 = distinct !{!76, !13, !38, !37}
!77 = distinct !{!77, !13}
!78 = distinct !{!78, !74}
!79 = distinct !{!79, !13, !37, !38}
!80 = distinct !{!80, !13, !38, !37}
!81 = distinct !{!81, !13, !37, !38}
!82 = distinct !{!82, !13, !38, !37}
!83 = distinct !{!83, !13}
!84 = distinct !{!84, !13}
!85 = distinct !{!85, !13}
!86 = distinct !{!86, !13}
!87 = distinct !{!87, !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