; LLVM IR from MIT-SPARK/Kimera-VIO :: third_party/triangle/src (triangle)

; 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.behavior = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, float, float, float }

@.str.4 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [50 x i8], align 1

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

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

declare i32 @printf(ptr noundef, ...) #2

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

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

81:                                               ; preds = %436, %3
  %82 = load i32, ptr %7, align 4, !tbaa !5
  %83 = load i32, ptr %4, align 4, !tbaa !5
  %84 = icmp slt i32 %82, %83
  br i1 %84, label %85, label %439

85:                                               ; preds = %81
  store i32 0, ptr %8, align 4, !tbaa !5
  br label %86

86:                                               ; preds = %432, %85
  %87 = load ptr, ptr %5, align 8, !tbaa !9
  %88 = load i32, ptr %7, align 4, !tbaa !5
  %89 = sext i32 %88 to i64
  %90 = getelementptr inbounds ptr, ptr %87, i64 %89
  %91 = load ptr, ptr %90, align 8, !tbaa !9
  %92 = load i32, ptr %8, align 4, !tbaa !5
  %93 = sext i32 %92 to i64
  %94 = getelementptr inbounds i8, ptr %91, i64 %93
  %95 = load i8, ptr %94, align 1, !tbaa !48
  %96 = sext i8 %95 to i32
  %97 = icmp ne i32 %96, 0
  br i1 %97, label %98, label %435

98:                                               ; preds = %86
  %99 = load ptr, ptr %5, align 8, !tbaa !9
  %100 = load i32, ptr %7, align 4, !tbaa !5
  %101 = sext i32 %100 to i64
  %102 = getelementptr inbounds ptr, ptr %99, i64 %101
  %103 = load ptr, ptr %102, align 8, !tbaa !9
  %104 = load i32, ptr %8, align 4, !tbaa !5
  %105 = sext i32 %104 to i64
  %106 = getelementptr inbounds i8, ptr %103, i64 %105
  %107 = load i8, ptr %106, align 1, !tbaa !48
  %108 = sext i8 %107 to i32
  %109 = icmp eq i32 %108, 112
  br i1 %109, label %110, label %113

110:                                              ; preds = %98
  %111 = load ptr, ptr %6, align 8, !tbaa !9
  %112 = getelementptr inbounds %struct.behavior, ptr %111, i32 0, i32 0
  store i32 1, ptr %112, align 4, !tbaa !15
  br label %113

113:                                              ; preds = %110, %98
  %114 = load ptr, ptr %5, align 8, !tbaa !9
  %115 = load i32, ptr %7, align 4, !tbaa !5
  %116 = sext i32 %115 to i64
  %117 = getelementptr inbounds ptr, ptr %114, i64 %116
  %118 = load ptr, ptr %117, align 8, !tbaa !9
  %119 = load i32, ptr %8, align 4, !tbaa !5
  %120 = sext i32 %119 to i64
  %121 = getelementptr inbounds i8, ptr %118, i64 %120
  %122 = load i8, ptr %121, align 1, !tbaa !48
  %123 = sext i8 %122 to i32
  %124 = icmp eq i32 %123, 65
  br i1 %124, label %125, label %128

125:                                              ; preds = %113
  %126 = load ptr, ptr %6, align 8, !tbaa !9
  %127 = getelementptr inbounds %struct.behavior, ptr %126, i32 0, i32 6
  store i32 1, ptr %127, align 4, !tbaa !22
  br label %128

128:                                              ; preds = %125, %113
  %129 = load ptr, ptr %5, align 8, !tbaa !9
  %130 = load i32, ptr %7, align 4, !tbaa !5
  %131 = sext i32 %130 to i64
  %132 = getelementptr inbounds ptr, ptr %129, i64 %131
  %133 = load ptr, ptr %132, align 8, !tbaa !9
  %134 = load i32, ptr %8, align 4, !tbaa !5
  %135 = sext i32 %134 to i64
  %136 = getelementptr inbounds i8, ptr %133, i64 %135
  %137 = load i8, ptr %136, align 1, !tbaa !48
  %138 = sext i8 %137 to i32
  %139 = icmp eq i32 %138, 99
  br i1 %139, label %140, label %143

140:                                              ; preds = %128
  %141 = load ptr, ptr %6, align 8, !tbaa !9
  %142 = getelementptr inbounds %struct.behavior, ptr %141, i32 0, i32 7
  store i32 1, ptr %142, align 4, !tbaa !21
  br label %143

143:                                              ; preds = %140, %128
  %144 = load ptr, ptr %5, align 8, !tbaa !9
  %145 = load i32, ptr %7, align 4, !tbaa !5
  %146 = sext i32 %145 to i64
  %147 = getelementptr inbounds ptr, ptr %144, i64 %146
  %148 = load ptr, ptr %147, align 8, !tbaa !9
  %149 = load i32, ptr %8, align 4, !tbaa !5
  %150 = sext i32 %149 to i64
  %151 = getelementptr inbounds i8, ptr %148, i64 %150
  %152 = load i8, ptr %151, align 1, !tbaa !48
  %153 = sext i8 %152 to i32
  %154 = icmp eq i32 %153, 119
  br i1 %154, label %155, label %158

155:                                              ; preds = %143
  %156 = load ptr, ptr %6, align 8, !tbaa !9
  %157 = getelementptr inbounds %struct.behavior, ptr %156, i32 0, i32 8
  store i32 1, ptr %157, align 4, !tbaa !20
  br label %158

158:                                              ; preds = %155, %143
  %159 = load ptr, ptr %5, align 8, !tbaa !9
  %160 = load i32, ptr %7, align 4, !tbaa !5
  %161 = sext i32 %160 to i64
  %162 = getelementptr inbounds ptr, ptr %159, i64 %161
  %163 = load ptr, ptr %162, align 8, !tbaa !9
  %164 = load i32, ptr %8, align 4, !tbaa !5
  %165 = sext i32 %164 to i64
  %166 = getelementptr inbounds i8, ptr %163, i64 %165
  %167 = load i8, ptr %166, align 1, !tbaa !48
  %168 = sext i8 %167 to i32
  %169 = icmp eq i32 %168, 87
  br i1 %169, label %170, label %173

170:                                              ; preds = %158
  %171 = load ptr, ptr %6, align 8, !tbaa !9
  %172 = getelementptr inbounds %struct.behavior, ptr %171, i32 0, i32 8
  store i32 2, ptr %172, align 4, !tbaa !20
  br label %173

173:                                              ; preds = %170, %158
  %174 = load ptr, ptr %5, align 8, !tbaa !9
  %175 = load i32, ptr %7, align 4, !tbaa !5
  %176 = sext i32 %175 to i64
  %177 = getelementptr inbounds ptr, ptr %174, i64 %176
  %178 = load ptr, ptr %177, align 8, !tbaa !9
  %179 = load i32, ptr %8, align 4, !tbaa !5
  %180 = sext i32 %179 to i64
  %181 = getelementptr inbounds i8, ptr %178, i64 %180
  %182 = load i8, ptr %181, align 1, !tbaa !48
  %183 = sext i8 %182 to i32
  %184 = icmp eq i32 %183, 106
  br i1 %184, label %185, label %188

185:                                              ; preds = %173
  %186 = load ptr, ptr %6, align 8, !tbaa !9
  %187 = getelementptr inbounds %struct.behavior, ptr %186, i32 0, i32 9
  store i32 1, ptr %187, align 4, !tbaa !19
  br label %188

188:                                              ; preds = %185, %173
  %189 = load ptr, ptr %5, align 8, !tbaa !9
  %190 = load i32, ptr %7, align 4, !tbaa !5
  %191 = sext i32 %190 to i64
  %192 = getelementptr inbounds ptr, ptr %189, i64 %191
  %193 = load ptr, ptr %192, align 8, !tbaa !9
  %194 = load i32, ptr %8, align 4, !tbaa !5
  %195 = sext i32 %194 to i64
  %196 = getelementptr inbounds i8, ptr %193, i64 %195
  %197 = load i8, ptr %196, align 1, !tbaa !48
  %198 = sext i8 %197 to i32
  %199 = icmp eq i32 %198, 122
  br i1 %199, label %200, label %203

200:                                              ; preds = %188
  %201 = load ptr, ptr %6, align 8, !tbaa !9
  %202 = getelementptr inbounds %struct.behavior, ptr %201, i32 0, i32 10
  store i32 0, ptr %202, align 4, !tbaa !23
  br label %203

203:                                              ; preds = %200, %188
  %204 = load ptr, ptr %5, align 8, !tbaa !9
  %205 = load i32, ptr %7, align 4, !tbaa !5
  %206 = sext i32 %205 to i64
  %207 = getelementptr inbounds ptr, ptr %204, i64 %206
  %208 = load ptr, ptr %207, align 8, !tbaa !9
  %209 = load i32, ptr %8, align 4, !tbaa !5
  %210 = sext i32 %209 to i64
  %211 = getelementptr inbounds i8, ptr %208, i64 %210
  %212 = load i8, ptr %211, align 1, !tbaa !48
  %213 = sext i8 %212 to i32
  %214 = icmp eq i32 %213, 101
  br i1 %214, label %215, label %218

215:                                              ; preds = %203
  %216 = load ptr, ptr %6, align 8, !tbaa !9
  %217 = getelementptr inbounds %struct.behavior, ptr %216, i32 0, i32 11
  store i32 1, ptr %217, align 4, !tbaa !27
  br label %218

218:                                              ; preds = %215, %203
  %219 = load ptr, ptr %5, align 8, !tbaa !9
  %220 = load i32, ptr %7, align 4, !tbaa !5
  %221 = sext i32 %220 to i64
  %222 = getelementptr inbounds ptr, ptr %219, i64 %221
  %223 = load ptr, ptr %222, align 8, !tbaa !9
  %224 = load i32, ptr %8, align 4, !tbaa !5
  %225 = sext i32 %224 to i64
  %226 = getelementptr inbounds i8, ptr %223, i64 %225
  %227 = load i8, ptr %226, align 1, !tbaa !48
  %228 = sext i8 %227 to i32
  %229 = icmp eq i32 %228, 118
  br i1 %229, label %230, label %233

230:                                              ; preds = %218
  %231 = load ptr, ptr %6, align 8, !tbaa !9
  %232 = getelementptr inbounds %struct.behavior, ptr %231, i32 0, i32 12
  store i32 1, ptr %232, align 4, !tbaa !26
  br label %233

233:                                              ; preds = %230, %218
  %234 = load ptr, ptr %5, align 8, !tbaa !9
  %235 = load i32, ptr %7, align 4, !tbaa !5
  %236 = sext i32 %235 to i64
  %237 = getelementptr inbounds ptr, ptr %234, i64 %236
  %238 = load ptr, ptr %237, align 8, !tbaa !9
  %239 = load i32, ptr %8, align 4, !tbaa !5
  %240 = sext i32 %239 to i64
  %241 = getelementptr inbounds i8, ptr %238, i64 %240
  %242 = load i8, ptr %241, align 1, !tbaa !48
  %243 = sext i8 %242 to i32
  %244 = icmp eq i32 %243, 110
  br i1 %244, label %245, label %248

245:                                              ; preds = %233
  %246 = load ptr, ptr %6, align 8, !tbaa !9
  %247 = getelementptr inbounds %struct.behavior, ptr %246, i32 0, i32 13
  store i32 1, ptr %247, align 4, !tbaa !25
  br label %248

248:                                              ; preds = %245, %233
  %249 = load ptr, ptr %5, align 8, !tbaa !9
  %250 = load i32, ptr %7, align 4, !tbaa !5
  %251 = sext i32 %250 to i64
  %252 = getelementptr inbounds ptr, ptr %249, i64 %251
  %253 = load ptr, ptr %252, align 8, !tbaa !9
  %254 = load i32, ptr %8, align 4, !tbaa !5
  %255 = sext i32 %254 to i64
  %256 = getelementptr inbounds i8, ptr %253, i64 %255
  %257 = load i8, ptr %256, align 1, !tbaa !48
  %258 = sext i8 %257 to i32
  %259 = icmp eq i32 %258, 103
  br i1 %259, label %260, label %263

260:                                              ; preds = %248
  %261 = load ptr, ptr %6, align 8, !tbaa !9
  %262 = getelementptr inbounds %struct.behavior, ptr %261, i32 0, i32 14
  store i32 1, ptr %262, align 4, !tbaa !24
  br label %263

263:                                              ; preds = %260, %248
  %264 = load ptr, ptr %5, align 8, !tbaa !9
  %265 = load i32, ptr %7, align 4, !tbaa !5
  %266 = sext i32 %265 to i64
  %267 = getelementptr inbounds ptr, ptr %264, i64 %266
  %268 = load ptr, ptr %267, align 8, !tbaa !9
  %269 = load i32, ptr %8, align 4, !tbaa !5
  %270 = sext i32 %269 to i64
  %271 = getelementptr inbounds i8, ptr %268, i64 %270
  %272 = load i8, ptr %271, align 1, !tbaa !48
  %273 = sext i8 %272 to i32
  %274 = icmp eq i32 %273, 66
  br i1 %274, label %275, label %278

275:                                              ; preds = %263
  %276 = load ptr, ptr %6, align 8, !tbaa !9
  %277 = getelementptr inbounds %struct.behavior, ptr %276, i32 0, i32 15
  store i32 1, ptr %277, align 4, !tbaa !31
  br label %278

278:                                              ; preds = %275, %263
  %279 = load ptr, ptr %5, align 8, !tbaa !9
  %280 = load i32, ptr %7, align 4, !tbaa !5
  %281 = sext i32 %280 to i64
  %282 = getelementptr inbounds ptr, ptr %279, i64 %281
  %283 = load ptr, ptr %282, align 8, !tbaa !9
  %284 = load i32, ptr %8, align 4, !tbaa !5
  %285 = sext i32 %284 to i64
  %286 = getelementptr inbounds i8, ptr %283, i64 %285
  %287 = load i8, ptr %286, align 1, !tbaa !48
  %288 = sext i8 %287 to i32
  %289 = icmp eq i32 %288, 80
  br i1 %289, label %290, label %293

290:                                              ; preds = %278
  %291 = load ptr, ptr %6, align 8, !tbaa !9
  %292 = getelementptr inbounds %struct.behavior, ptr %291, i32 0, i32 16
  store i32 1, ptr %292, align 4, !tbaa !30
  br label %293

293:                                              ; preds = %290, %278
  %294 = load ptr, ptr %5, align 8, !tbaa !9
  %295 = load i32, ptr %7, align 4, !tbaa !5
  %296 = sext i32 %295 to i64
  %297 = getelementptr inbounds ptr, ptr %294, i64 %296
  %298 = load ptr, ptr %297, align 8, !tbaa !9
  %299 = load i32, ptr %8, align 4, !tbaa !5
  %300 = sext i32 %299 to i64
  %301 = getelementptr inbounds i8, ptr %298, i64 %300
  %302 = load i8, ptr %301, align 1, !tbaa !48
  %303 = sext i8 %302 to i32
  %304 = icmp eq i32 %303, 78
  br i1 %304, label %305, label %308

305:                                              ; preds = %293
  %306 = load ptr, ptr %6, align 8, !tbaa !9
  %307 = getelementptr inbounds %struct.behavior, ptr %306, i32 0, i32 17
  store i32 1, ptr %307, align 4, !tbaa !29
  br label %308

308:                                              ; preds = %305, %293
  %309 = load ptr, ptr %5, align 8, !tbaa !9
  %310 = load i32, ptr %7, align 4, !tbaa !5
  %311 = sext i32 %310 to i64
  %312 = getelementptr inbounds ptr, ptr %309, i64 %311
  %313 = load ptr, ptr %312, align 8, !tbaa !9
  %314 = load i32, ptr %8, align 4, !tbaa !5
  %315 = sext i32 %314 to i64
  %316 = getelementptr inbounds i8, ptr %313, i64 %315
  %317 = load i8, ptr %316, align 1, !tbaa !48
  %318 = sext i8 %317 to i32
  %319 = icmp eq i32 %318, 69
  br i1 %319, label %320, label %323

320:                                              ; preds = %308
  %321 = load ptr, ptr %6, align 8, !tbaa !9
  %322 = getelementptr inbounds %struct.behavior, ptr %321, i32 0, i32 18
  store i32 1, ptr %322, align 4, !tbaa !28
  br label %323

323:                                              ; preds = %320, %308
  %324 = load ptr, ptr %5, align 8, !tbaa !9
  %325 = load i32, ptr %7, align 4, !tbaa !5
  %326 = sext i32 %325 to i64
  %327 = getelementptr inbounds ptr, ptr %324, i64 %326
  %328 = load ptr, ptr %327, align 8, !tbaa !9
  %329 = load i32, ptr %8, align 4, !tbaa !5
  %330 = sext i32 %329 to i64
  %331 = getelementptr inbounds i8, ptr %328, i64 %330
  %332 = load i8, ptr %331, align 1, !tbaa !48
  %333 = sext i8 %332 to i32
  %334 = icmp eq i32 %333, 79
  br i1 %334, label %335, label %338

335:                                              ; preds = %323
  %336 = load ptr, ptr %6, align 8, !tbaa !9
  %337 = getelementptr inbounds %struct.behavior, ptr %336, i32 0, i32 20
  store i32 1, ptr %337, align 4, !tbaa !34
  br label %338

338:                                              ; preds = %335, %323
  %339 = load ptr, ptr %5, align 8, !tbaa !9
  %340 = load i32, ptr %7, align 4, !tbaa !5
  %341 = sext i32 %340 to i64
  %342 = getelementptr inbounds ptr, ptr %339, i64 %341
  %343 = load ptr, ptr %342, align 8, !tbaa !9
  %344 = load i32, ptr %8, align 4, !tbaa !5
  %345 = sext i32 %344 to i64
  %346 = getelementptr inbounds i8, ptr %343, i64 %345
  %347 = load i8, ptr %346, align 1, !tbaa !48
  %348 = sext i8 %347 to i32
  %349 = icmp eq i32 %348, 88
  br i1 %349, label %350, label %353

350:                                              ; preds = %338
  %351 = load ptr, ptr %6, align 8, !tbaa !9
  %352 = getelementptr inbounds %struct.behavior, ptr %351, i32 0, i32 21
  store i32 1, ptr %352, align 4, !tbaa !33
  br label %353

353:                                              ; preds = %350, %338
  %354 = load ptr, ptr %5, align 8, !tbaa !9
  %355 = load i32, ptr %7, align 4, !tbaa !5
  %356 = sext i32 %355 to i64
  %357 = getelementptr inbounds ptr, ptr %354, i64 %356
  %358 = load ptr, ptr %357, align 8, !tbaa !9
  %359 = load i32, ptr %8, align 4, !tbaa !5
  %360 = sext i32 %359 to i64
  %361 = getelementptr inbounds i8, ptr %358, i64 %360
  %362 = load i8, ptr %361, align 1, !tbaa !48
  %363 = sext i8 %362 to i32
  %364 = icmp eq i32 %363, 111
  br i1 %364, label %365, label %384

365:                                              ; preds = %353
  %366 = load ptr, ptr %5, align 8, !tbaa !9
  %367 = load i32, ptr %7, align 4, !tbaa !5
  %368 = sext i32 %367 to i64
  %369 = getelementptr inbounds ptr, ptr %366, i64 %368
  %370 = load ptr, ptr %369, align 8, !tbaa !9
  %371 = load i32, ptr %8, align 4, !tbaa !5
  %372 = add nsw i32 %371, 1
  %373 = sext i32 %372 to i64
  %374 = getelementptr inbounds i8, ptr %370, i64 %373
  %375 = load i8, ptr %374, align 1, !tbaa !48
  %376 = sext i8 %375 to i32
  %377 = icmp eq i32 %376, 50
  br i1 %377, label %378, label %383

378:                                              ; preds = %365
  %379 = load i32, ptr %8, align 4, !tbaa !5
  %380 = add nsw i32 %379, 1
  store i32 %380, ptr %8, align 4, !tbaa !5
  %381 = load ptr, ptr %6, align 8, !tbaa !9
  %382 = getelementptr inbounds %struct.behavior, ptr %381, i32 0, i32 31
  store i32 2, ptr %382, align 4, !tbaa !43
  br label %383

383:                                              ; preds = %378, %365
  br label %384

384:                                              ; preds = %383, %353
  %385 = load ptr, ptr %5, align 8, !tbaa !9
  %386 = load i32, ptr %7, align 4, !tbaa !5
  %387 = sext i32 %386 to i64
  %388 = getelementptr inbounds ptr, ptr %385, i64 %387
  %389 = load ptr, ptr %388, align 8, !tbaa !9
  %390 = load i32, ptr %8, align 4, !tbaa !5
  %391 = sext i32 %390 to i64
  %392 = getelementptr inbounds i8, ptr %389, i64 %391
  %393 = load i8, ptr %392, align 1, !tbaa !48
  %394 = sext i8 %393 to i32
  %395 = icmp eq i32 %394, 108
  br i1 %395, label %396, label %399

396:                                              ; preds = %384
  %397 = load ptr, ptr %6, align 8, !tbaa !9
  %398 = getelementptr inbounds %struct.behavior, ptr %397, i32 0, i32 25
  store i32 0, ptr %398, align 4, !tbaa !37
  br label %399

399:                                              ; preds = %396, %384
  %400 = load ptr, ptr %5, align 8, !tbaa !9
  %401 = load i32, ptr %7, align 4, !tbaa !5
  %402 = sext i32 %401 to i64
  %403 = getelementptr inbounds ptr, ptr %400, i64 %402
  %404 = load ptr, ptr %403, align 8, !tbaa !9
  %405 = load i32, ptr %8, align 4, !tbaa !5
  %406 = sext i32 %405 to i64
  %407 = getelementptr inbounds i8, ptr %404, i64 %406
  %408 = load i8, ptr %407, align 1, !tbaa !48
  %409 = sext i8 %408 to i32
  %410 = icmp eq i32 %409, 81
  br i1 %410, label %411, label %414

411:                                              ; preds = %399
  %412 = load ptr, ptr %6, align 8, !tbaa !9
  %413 = getelementptr inbounds %struct.behavior, ptr %412, i32 0, i32 28
  store i32 1, ptr %413, align 4, !tbaa !47
  br label %414

414:                                              ; preds = %411, %399
  %415 = load ptr, ptr %5, align 8, !tbaa !9
  %416 = load i32, ptr %7, align 4, !tbaa !5
  %417 = sext i32 %416 to i64
  %418 = getelementptr inbounds ptr, ptr %415, i64 %417
  %419 = load ptr, ptr %418, align 8, !tbaa !9
  %420 = load i32, ptr %8, align 4, !tbaa !5
  %421 = sext i32 %420 to i64
  %422 = getelementptr inbounds i8, ptr %419, i64 %421
  %423 = load i8, ptr %422, align 1, !tbaa !48
  %424 = sext i8 %423 to i32
  %425 = icmp eq i32 %424, 86
  br i1 %425, label %426, label %431

426:                                              ; preds = %414
  %427 = load ptr, ptr %6, align 8, !tbaa !9
  %428 = getelementptr inbounds %struct.behavior, ptr %427, i32 0, i32 29
  %429 = load i32, ptr %428, align 4, !tbaa !46
  %430 = add nsw i32 %429, 1
  store i32 %430, ptr %428, align 4, !tbaa !46
  br label %431

431:                                              ; preds = %426, %414
  br label %432

432:                                              ; preds = %431
  %433 = load i32, ptr %8, align 4, !tbaa !5
  %434 = add nsw i32 %433, 1
  store i32 %434, ptr %8, align 4, !tbaa !5
  br label %86, !llvm.loop !49

435:                                              ; preds = %86
  br label %436

436:                                              ; preds = %435
  %437 = load i32, ptr %7, align 4, !tbaa !5
  %438 = add nsw i32 %437, 1
  store i32 %438, ptr %7, align 4, !tbaa !5
  br label %81, !llvm.loop !51

439:                                              ; preds = %81
  %440 = load ptr, ptr %6, align 8, !tbaa !9
  %441 = getelementptr inbounds %struct.behavior, ptr %440, i32 0, i32 0
  %442 = load i32, ptr %441, align 4, !tbaa !15
  %443 = icmp ne i32 %442, 0
  br i1 %443, label %459, label %444

444:                                              ; preds = %439
  %445 = load ptr, ptr %6, align 8, !tbaa !9
  %446 = getelementptr inbounds %struct.behavior, ptr %445, i32 0, i32 1
  %447 = load i32, ptr %446, align 4, !tbaa !14
  %448 = icmp ne i32 %447, 0
  br i1 %448, label %459, label %449

449:                                              ; preds = %444
  %450 = load ptr, ptr %6, align 8, !tbaa !9
  %451 = getelementptr inbounds %struct.behavior, ptr %450, i32 0, i32 2
  %452 = load i32, ptr %451, align 4, !tbaa !11
  %453 = icmp ne i32 %452, 0
  br i1 %453, label %459, label %454

454:                                              ; preds = %449
  %455 = load ptr, ptr %6, align 8, !tbaa !9
  %456 = getelementptr inbounds %struct.behavior, ptr %455, i32 0, i32 7
  %457 = load i32, ptr %456, align 4, !tbaa !21
  %458 = icmp ne i32 %457, 0
  br label %459

459:                                              ; preds = %454, %449, %444, %439
  %460 = phi i1 [ true, %449 ], [ true, %444 ], [ true, %439 ], [ %458, %454 ]
  %461 = zext i1 %460 to i32
  %462 = load ptr, ptr %6, align 8, !tbaa !9
  %463 = getelementptr inbounds %struct.behavior, ptr %462, i32 0, i32 30
  store i32 %461, ptr %463, align 4, !tbaa !52
  %464 = load ptr, ptr %6, align 8, !tbaa !9
  %465 = getelementptr inbounds %struct.behavior, ptr %464, i32 0, i32 34
  %466 = load float, ptr %465, align 4, !tbaa !44
  %467 = fpext float %466 to double
  %468 = fmul double %467, 0x400921FB54442D18
  %469 = fdiv double %468, 1.800000e+02
  %470 = call double @cos(double noundef %469) #4
  %471 = fptrunc double %470 to float
  %472 = load ptr, ptr %6, align 8, !tbaa !9
  %473 = getelementptr inbounds %struct.behavior, ptr %472, i32 0, i32 35
  store float %471, ptr %473, align 4, !tbaa !53
  %474 = load ptr, ptr %6, align 8, !tbaa !9
  %475 = getelementptr inbounds %struct.behavior, ptr %474, i32 0, i32 35
  %476 = load float, ptr %475, align 4, !tbaa !53
  %477 = fpext float %476 to double
  %478 = fcmp oeq double %477, 1.000000e+00
  br i1 %478, label %479, label %482

479:                                              ; preds = %459
  %480 = load ptr, ptr %6, align 8, !tbaa !9
  %481 = getelementptr inbounds %struct.behavior, ptr %480, i32 0, i32 36
  store float 0.000000e+00, ptr %481, align 4, !tbaa !54
  br label %499

482:                                              ; preds = %459
  %483 = load ptr, ptr %6, align 8, !tbaa !9
  %484 = getelementptr inbounds %struct.behavior, ptr %483, i32 0, i32 35
  %485 = load float, ptr %484, align 4, !tbaa !53
  %486 = fpext float %485 to double
  %487 = fadd double 1.000000e+00, %486
  %488 = load ptr, ptr %6, align 8, !tbaa !9
  %489 = getelementptr inbounds %struct.behavior, ptr %488, i32 0, i32 35
  %490 = load float, ptr %489, align 4, !tbaa !53
  %491 = fpext float %490 to double
  %492 = fsub double 1.000000e+00, %491
  %493 = fdiv double %487, %492
  %494 = call double @sqrt(double noundef %493) #4
  %495 = fmul double 4.750000e-01, %494
  %496 = fptrunc double %495 to float
  %497 = load ptr, ptr %6, align 8, !tbaa !9
  %498 = getelementptr inbounds %struct.behavior, ptr %497, i32 0, i32 36
  store float %496, ptr %498, align 4, !tbaa !54
  br label %499

499:                                              ; preds = %482, %479
  %500 = load ptr, ptr %6, align 8, !tbaa !9
  %501 = getelementptr inbounds %struct.behavior, ptr %500, i32 0, i32 35
  %502 = load float, ptr %501, align 4, !tbaa !53
  %503 = load ptr, ptr %6, align 8, !tbaa !9
  %504 = getelementptr inbounds %struct.behavior, ptr %503, i32 0, i32 35
  %505 = load float, ptr %504, align 4, !tbaa !53
  %506 = fmul float %505, %502
  store float %506, ptr %504, align 4, !tbaa !53
  %507 = load ptr, ptr %6, align 8, !tbaa !9
  %508 = getelementptr inbounds %struct.behavior, ptr %507, i32 0, i32 1
  %509 = load i32, ptr %508, align 4, !tbaa !14
  %510 = icmp ne i32 %509, 0
  br i1 %510, label %511, label %518

511:                                              ; preds = %499
  %512 = load ptr, ptr %6, align 8, !tbaa !9
  %513 = getelementptr inbounds %struct.behavior, ptr %512, i32 0, i32 19
  %514 = load i32, ptr %513, align 4, !tbaa !32
  %515 = icmp ne i32 %514, 0
  br i1 %515, label %516, label %518

516:                                              ; preds = %511
  %517 = call i32 (ptr, ...) @printf(ptr noundef @.str.4)
  call void @triexit(i32 noundef 1)
  br label %518

518:                                              ; preds = %516, %511, %499
  %519 = load ptr, ptr %6, align 8, !tbaa !9
  %520 = getelementptr inbounds %struct.behavior, ptr %519, i32 0, i32 1
  %521 = load i32, ptr %520, align 4, !tbaa !14
  %522 = icmp ne i32 %521, 0
  br i1 %522, label %531, label %523

523:                                              ; preds = %518
  %524 = load ptr, ptr %6, align 8, !tbaa !9
  %525 = getelementptr inbounds %struct.behavior, ptr %524, i32 0, i32 0
  %526 = load i32, ptr %525, align 4, !tbaa !15
  %527 = icmp ne i32 %526, 0
  br i1 %527, label %531, label %528

528:                                              ; preds = %523
  %529 = load ptr, ptr %6, align 8, !tbaa !9
  %530 = getelementptr inbounds %struct.behavior, ptr %529, i32 0, i32 3
  store i32 0, ptr %530, align 4, !tbaa !18
  br label %531

531:                                              ; preds = %528, %523, %518
  %532 = load ptr, ptr %6, align 8, !tbaa !9
  %533 = getelementptr inbounds %struct.behavior, ptr %532, i32 0, i32 1
  %534 = load i32, ptr %533, align 4, !tbaa !14
  %535 = icmp ne i32 %534, 0
  br i1 %535, label %541, label %536

536:                                              ; preds = %531
  %537 = load ptr, ptr %6, align 8, !tbaa !9
  %538 = getelementptr inbounds %struct.behavior, ptr %537, i32 0, i32 0
  %539 = load i32, ptr %538, align 4, !tbaa !15
  %540 = icmp ne i32 %539, 0
  br i1 %540, label %544, label %541

541:                                              ; preds = %536, %531
  %542 = load ptr, ptr %6, align 8, !tbaa !9
  %543 = getelementptr inbounds %struct.behavior, ptr %542, i32 0, i32 6
  store i32 0, ptr %543, align 4, !tbaa !22
  br label %544

544:                                              ; preds = %541, %536
  %545 = load ptr, ptr %6, align 8, !tbaa !9
  %546 = getelementptr inbounds %struct.behavior, ptr %545, i32 0, i32 8
  %547 = load i32, ptr %546, align 4, !tbaa !20
  %548 = icmp ne i32 %547, 0
  br i1 %548, label %549, label %570

549:                                              ; preds = %544
  %550 = load ptr, ptr %6, align 8, !tbaa !9
  %551 = getelementptr inbounds %struct.behavior, ptr %550, i32 0, i32 0
  %552 = load i32, ptr %551, align 4, !tbaa !15
  %553 = icmp ne i32 %552, 0
  br i1 %553, label %559, label %554

554:                                              ; preds = %549
  %555 = load ptr, ptr %6, align 8, !tbaa !9
  %556 = getelementptr inbounds %struct.behavior, ptr %555, i32 0, i32 2
  %557 = load i32, ptr %556, align 4, !tbaa !11
  %558 = icmp ne i32 %557, 0
  br i1 %558, label %559, label %570

559:                                              ; preds = %554, %549
  %560 = load ptr, ptr %6, align 8, !tbaa !9
  %561 = getelementptr inbounds %struct.behavior, ptr %560, i32 0, i32 8
  store i32 0, ptr %561, align 4, !tbaa !20
  %562 = load ptr, ptr %6, align 8, !tbaa !9
  %563 = getelementptr inbounds %struct.behavior, ptr %562, i32 0, i32 28
  %564 = load i32, ptr %563, align 4, !tbaa !47
  %565 = icmp ne i32 %564, 0
  br i1 %565, label %569, label %566

566:                                              ; preds = %559
  %567 = call i32 (ptr, ...) @printf(ptr noundef @.str.5)
  %568 = call i32 (ptr, ...) @printf(ptr noundef @.str.6)
  br label %569

569:                                              ; preds = %566, %559
  br label %570

570:                                              ; preds = %569, %554, %544
  %571 = load ptr, ptr %6, align 8, !tbaa !9
  %572 = getelementptr inbounds %struct.behavior, ptr %571, i32 0, i32 9
  %573 = load i32, ptr %572, align 4, !tbaa !19
  %574 = icmp ne i32 %573, 0
  br i1 %574, label %575, label %589

575:                                              ; preds = %570
  %576 = load ptr, ptr %6, align 8, !tbaa !9
  %577 = getelementptr inbounds %struct.behavior, ptr %576, i32 0, i32 17
  %578 = load i32, ptr %577, align 4, !tbaa !29
  %579 = icmp ne i32 %578, 0
  br i1 %579, label %580, label %589

580:                                              ; preds = %575
  %581 = load ptr, ptr %6, align 8, !tbaa !9
  %582 = getelementptr inbounds %struct.behavior, ptr %581, i32 0, i32 28
  %583 = load i32, ptr %582, align 4, !tbaa !47
  %584 = icmp ne i32 %583, 0
  br i1 %584, label %589, label %585

585:                                              ; preds = %580
  %586 = call i32 (ptr, ...) @printf(ptr noundef @.str.7)
  %587 = call i32 (ptr, ...) @printf(ptr noundef @.str.8)
  %588 = call i32 (ptr, ...) @printf(ptr noundef @.str.9)
  br label %589

589:                                              ; preds = %585, %580, %575, %570
  call void @llvm.lifetime.end.p0(i64 2048, ptr %10) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #4
  ret void
}

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !6, i64 8}
!12 = !{!"behavior", !6, i64 0, !6, i64 4, !6, i64 8, !6, i64 12, !6, i64 16, !6, i64 20, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 40, !6, i64 44, !6, i64 48, !6, i64 52, !6, i64 56, !6, i64 60, !6, i64 64, !6, i64 68, !6, i64 72, !6, i64 76, !6, i64 80, !6, i64 84, !6, i64 88, !6, i64 92, !6, i64 96, !6, i64 100, !6, i64 104, !6, i64 108, !6, i64 112, !6, i64 116, !6, i64 120, !6, i64 124, !6, i64 128, !6, i64 132, !13, i64 136, !13, i64 140, !13, i64 144, !13, i64 148}
!13 = !{!"float", !7, i64 0}
!14 = !{!12, !6, i64 4}
!15 = !{!12, !6, i64 0}
!16 = !{!12, !6, i64 20}
!17 = !{!12, !6, i64 16}
!18 = !{!12, !6, i64 12}
!19 = !{!12, !6, i64 36}
!20 = !{!12, !6, i64 32}
!21 = !{!12, !6, i64 28}
!22 = !{!12, !6, i64 24}
!23 = !{!12, !6, i64 40}
!24 = !{!12, !6, i64 56}
!25 = !{!12, !6, i64 52}
!26 = !{!12, !6, i64 48}
!27 = !{!12, !6, i64 44}
!28 = !{!12, !6, i64 72}
!29 = !{!12, !6, i64 68}
!30 = !{!12, !6, i64 64}
!31 = !{!12, !6, i64 60}
!32 = !{!12, !6, i64 76}
!33 = !{!12, !6, i64 84}
!34 = !{!12, !6, i64 80}
!35 = !{!12, !6, i64 96}
!36 = !{!12, !6, i64 92}
!37 = !{!12, !6, i64 100}
!38 = !{!12, !6, i64 104}
!39 = !{!12, !6, i64 108}
!40 = !{!12, !6, i64 128}
!41 = !{!12, !6, i64 88}
!42 = !{!12, !6, i64 132}
!43 = !{!12, !6, i64 124}
!44 = !{!12, !13, i64 136}
!45 = !{!12, !13, i64 148}
!46 = !{!12, !6, i64 116}
!47 = !{!12, !6, i64 112}
!48 = !{!7, !7, i64 0}
!49 = distinct !{!49, !50}
!50 = !{!"llvm.loop.mustprogress"}
!51 = distinct !{!51, !50}
!52 = !{!12, !6, i64 120}
!53 = !{!12, !13, i64 140}
!54 = !{!12, !13, i64 144}


; 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.5 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [50 x i8], align 1

; Function Attrs: nofree nounwind
declare noundef i32 @printf(ptr nocapture noundef readonly, ...) local_unnamed_addr #0

; Function Attrs: nofree nounwind uwtable
define dso_local void @parsecommandline(i32 noundef %0, ptr nocapture noundef readonly %1, ptr nocapture noundef %2) local_unnamed_addr #1 {
  %4 = getelementptr inbounds i8, ptr %2, i64 12
  %5 = getelementptr inbounds i8, ptr %2, i64 36
  %6 = getelementptr inbounds i8, ptr %2, i64 32
  %7 = getelementptr inbounds i8, ptr %2, i64 28
  %8 = getelementptr inbounds i8, ptr %2, i64 24
  %9 = getelementptr inbounds i8, ptr %2, i64 40
  tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(40) %2, i8 0, i64 40, i1 false)
  store i32 1, ptr %9, align 4, !tbaa !5
  %10 = getelementptr inbounds i8, ptr %2, i64 56
  %11 = getelementptr inbounds i8, ptr %2, i64 52
  %12 = getelementptr inbounds i8, ptr %2, i64 48
  %13 = getelementptr inbounds i8, ptr %2, i64 44
  %14 = getelementptr inbounds i8, ptr %2, i64 72
  %15 = getelementptr inbounds i8, ptr %2, i64 68
  %16 = getelementptr inbounds i8, ptr %2, i64 64
  %17 = getelementptr inbounds i8, ptr %2, i64 60
  %18 = getelementptr inbounds i8, ptr %2, i64 84
  %19 = getelementptr inbounds i8, ptr %2, i64 80
  %20 = getelementptr inbounds i8, ptr %2, i64 100
  tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(44) %13, i8 0, i64 44, i1 false)
  %21 = getelementptr inbounds i8, ptr %2, i64 104
  %22 = getelementptr inbounds i8, ptr %2, i64 128
  store i32 0, ptr %22, align 4, !tbaa !11
  %23 = getelementptr inbounds i8, ptr %2, i64 88
  store <4 x i32> <i32 0, i32 0, i32 0, i32 1>, ptr %23, align 4, !tbaa !12
  %24 = getelementptr inbounds i8, ptr %2, i64 132
  store i32 -1, ptr %24, align 4, !tbaa !13
  %25 = getelementptr inbounds i8, ptr %2, i64 124
  store i32 1, ptr %25, align 4, !tbaa !14
  %26 = getelementptr inbounds i8, ptr %2, i64 136
  store float 0.000000e+00, ptr %26, align 4, !tbaa !15
  %27 = getelementptr inbounds i8, ptr %2, i64 148
  store float -1.000000e+00, ptr %27, align 4, !tbaa !16
  %28 = getelementptr inbounds i8, ptr %2, i64 116
  %29 = getelementptr inbounds i8, ptr %2, i64 112
  store <4 x i32> zeroinitializer, ptr %21, align 4, !tbaa !12
  %30 = icmp sgt i32 %0, 0
  br i1 %30, label %.preheader.preheader, label %.thread253

.thread253:                                       ; preds = %3
  %31 = getelementptr inbounds i8, ptr %2, i64 120
  store i32 0, ptr %31, align 4, !tbaa !17
  %32 = getelementptr inbounds i8, ptr %2, i64 140
  store <2 x float> <float 1.000000e+00, float 0.000000e+00>, ptr %32, align 4, !tbaa !18
  store i32 0, ptr %8, align 4, !tbaa !19
  br label %172

.preheader.preheader:                             ; preds = %3
  %wide.trip.count = zext nneg i32 %0 to i64
  br label %.preheader

.preheader:                                       ; preds = %.preheader.preheader, %149
  %33 = phi i32 [ 0, %.preheader.preheader ], [ %42, %149 ]
  %34 = phi i32 [ 0, %.preheader.preheader ], [ %43, %149 ]
  %35 = phi i32 [ 0, %.preheader.preheader ], [ %44, %149 ]
  %36 = phi i32 [ 0, %.preheader.preheader ], [ %45, %149 ]
  %37 = phi i32 [ 0, %.preheader.preheader ], [ %46, %149 ]
  %38 = phi i32 [ 0, %.preheader.preheader ], [ %47, %149 ]
  %indvars.iv = phi i64 [ 0, %.preheader.preheader ], [ %indvars.iv.next, %149 ]
  %39 = getelementptr inbounds ptr, ptr %1, i64 %indvars.iv
  %40 = load ptr, ptr %39, align 8, !tbaa !20
  br label %41

41:                                               ; preds = %.preheader, %.thread220
  %42 = phi i32 [ %147, %.thread220 ], [ %33, %.preheader ]
  %43 = phi i32 [ %78, %.thread220 ], [ %34, %.preheader ]
  %44 = phi i32 [ %146, %.thread220 ], [ %35, %.preheader ]
  %45 = phi i32 [ %72, %.thread220 ], [ %36, %.preheader ]
  %46 = phi i32 [ %62, %.thread220 ], [ %37, %.preheader ]
  %47 = phi i32 [ %53, %.thread220 ], [ %38, %.preheader ]
  %.0159 = phi i32 [ %148, %.thread220 ], [ 0, %.preheader ]
  %48 = sext i32 %.0159 to i64
  %49 = getelementptr inbounds i8, ptr %40, i64 %48
  %50 = load i8, ptr %49, align 1, !tbaa !22
  switch i8 %50, label %52 [
    i8 0, label %149
    i8 112, label %51
  ]

51:                                               ; preds = %41
  store i32 1, ptr %2, align 4, !tbaa !23
  %.pr = load i8, ptr %49, align 1, !tbaa !22
  br label %52

52:                                               ; preds = %41, %51
  %53 = phi i32 [ %47, %41 ], [ 1, %51 ]
  %54 = phi i8 [ %50, %41 ], [ %.pr, %51 ]
  %55 = icmp eq i8 %54, 65
  br i1 %55, label %56, label %57

56:                                               ; preds = %52
  store i32 1, ptr %8, align 4, !tbaa !19
  %.pre203 = load i8, ptr %49, align 1, !tbaa !22
  br label %57

57:                                               ; preds = %56, %52
  %58 = phi i8 [ %.pre203, %56 ], [ %54, %52 ]
  %59 = icmp eq i8 %58, 99
  br i1 %59, label %60, label %61

60:                                               ; preds = %57
  store i32 1, ptr %7, align 4, !tbaa !24
  %.pr178 = load i8, ptr %49, align 1, !tbaa !22
  br label %61

61:                                               ; preds = %60, %57
  %62 = phi i32 [ 1, %60 ], [ %46, %57 ]
  %63 = phi i8 [ %.pr178, %60 ], [ %58, %57 ]
  %64 = icmp eq i8 %63, 119
  br i1 %64, label %65, label %66

65:                                               ; preds = %61
  store i32 1, ptr %6, align 4, !tbaa !25
  %.pre204 = load i8, ptr %49, align 1, !tbaa !22
  br label %66

66:                                               ; preds = %65, %61
  %67 = phi i8 [ %.pre204, %65 ], [ %63, %61 ]
  %68 = phi i32 [ 1, %65 ], [ %45, %61 ]
  %69 = icmp eq i8 %67, 87
  br i1 %69, label %70, label %71

70:                                               ; preds = %66
  store i32 2, ptr %6, align 4, !tbaa !25
  %.pr179 = load i8, ptr %49, align 1, !tbaa !22
  br label %71

71:                                               ; preds = %70, %66
  %72 = phi i32 [ 2, %70 ], [ %68, %66 ]
  %73 = phi i8 [ %.pr179, %70 ], [ %67, %66 ]
  %74 = icmp eq i8 %73, 106
  br i1 %74, label %75, label %76

75:                                               ; preds = %71
  store i32 1, ptr %5, align 4, !tbaa !26
  %.pre205 = load i8, ptr %49, align 1, !tbaa !22
  br label %76

76:                                               ; preds = %75, %71
  %77 = phi i8 [ %.pre205, %75 ], [ %73, %71 ]
  %78 = phi i32 [ 1, %75 ], [ %43, %71 ]
  %79 = icmp eq i8 %77, 122
  br i1 %79, label %80, label %81

80:                                               ; preds = %76
  store i32 0, ptr %9, align 4, !tbaa !5
  %.pr180 = load i8, ptr %49, align 1, !tbaa !22
  br label %81

81:                                               ; preds = %80, %76
  %82 = phi i8 [ %.pr180, %80 ], [ %77, %76 ]
  %83 = icmp eq i8 %82, 101
  br i1 %83, label %84, label %85

84:                                               ; preds = %81
  store i32 1, ptr %13, align 4, !tbaa !27
  %.pre206 = load i8, ptr %49, align 1, !tbaa !22
  br label %85

85:                                               ; preds = %84, %81
  %86 = phi i8 [ %.pre206, %84 ], [ %82, %81 ]
  %87 = icmp eq i8 %86, 118
  br i1 %87, label %88, label %89

88:                                               ; preds = %85
  store i32 1, ptr %12, align 4, !tbaa !28
  %.pr181 = load i8, ptr %49, align 1, !tbaa !22
  br label %89

89:                                               ; preds = %88, %85
  %90 = phi i8 [ %.pr181, %88 ], [ %86, %85 ]
  %91 = icmp eq i8 %90, 110
  br i1 %91, label %92, label %93

92:                                               ; preds = %89
  store i32 1, ptr %11, align 4, !tbaa !29
  %.pre207 = load i8, ptr %49, align 1, !tbaa !22
  br label %93

93:                                               ; preds = %92, %89
  %94 = phi i8 [ %.pre207, %92 ], [ %90, %89 ]
  %95 = icmp eq i8 %94, 103
  br i1 %95, label %96, label %97

96:                                               ; preds = %93
  store i32 1, ptr %10, align 4, !tbaa !30
  %.pr182 = load i8, ptr %49, align 1, !tbaa !22
  br label %97

97:                                               ; preds = %96, %93
  %98 = phi i8 [ %.pr182, %96 ], [ %94, %93 ]
  %99 = icmp eq i8 %98, 66
  br i1 %99, label %100, label %101

100:                                              ; preds = %97
  store i32 1, ptr %17, align 4, !tbaa !31
  %.pre208 = load i8, ptr %49, align 1, !tbaa !22
  br label %101

101:                                              ; preds = %100, %97
  %102 = phi i8 [ %.pre208, %100 ], [ %98, %97 ]
  %103 = icmp eq i8 %102, 80
  br i1 %103, label %104, label %105

104:                                              ; preds = %101
  store i32 1, ptr %16, align 4, !tbaa !32
  %.pr183 = load i8, ptr %49, align 1, !tbaa !22
  br label %105

105:                                              ; preds = %104, %101
  %106 = phi i8 [ %.pr183, %104 ], [ %102, %101 ]
  %107 = icmp eq i8 %106, 78
  br i1 %107, label %108, label %109

108:                                              ; preds = %105
  store i32 1, ptr %15, align 4, !tbaa !33
  %.pre209 = load i8, ptr %49, align 1, !tbaa !22
  br label %109

109:                                              ; preds = %108, %105
  %110 = phi i8 [ %.pre209, %108 ], [ %106, %105 ]
  %111 = icmp eq i8 %110, 69
  br i1 %111, label %112, label %113

112:                                              ; preds = %109
  store i32 1, ptr %14, align 4, !tbaa !34
  %.pr184 = load i8, ptr %49, align 1, !tbaa !22
  br label %113

113:                                              ; preds = %112, %109
  %114 = phi i8 [ %.pr184, %112 ], [ %110, %109 ]
  %115 = icmp eq i8 %114, 79
  br i1 %115, label %116, label %117

116:                                              ; preds = %113
  store i32 1, ptr %19, align 4, !tbaa !35
  %.pre210 = load i8, ptr %49, align 1, !tbaa !22
  br label %117

117:                                              ; preds = %116, %113
  %118 = phi i8 [ %.pre210, %116 ], [ %114, %113 ]
  %119 = icmp eq i8 %118, 88
  br i1 %119, label %120, label %121

120:                                              ; preds = %117
  store i32 1, ptr %18, align 4, !tbaa !36
  %.pr185 = load i8, ptr %49, align 1, !tbaa !22
  br label %121

121:                                              ; preds = %120, %117
  %122 = phi i8 [ %.pr185, %120 ], [ %118, %117 ]
  %123 = icmp eq i8 %122, 111
  br i1 %123, label %124, label %131

124:                                              ; preds = %121
  %125 = add nsw i32 %.0159, 1
  %126 = sext i32 %125 to i64
  %127 = getelementptr inbounds i8, ptr %40, i64 %126
  %128 = load i8, ptr %127, align 1, !tbaa !22
  %129 = icmp eq i8 %128, 50
  br i1 %129, label %130, label %.thread220

130:                                              ; preds = %124
  store i32 2, ptr %25, align 4, !tbaa !14
  %.pre211 = load i8, ptr %127, align 1, !tbaa !22
  br label %131

131:                                              ; preds = %130, %121
  %132 = phi i8 [ %.pre211, %130 ], [ %122, %121 ]
  %.pre-phi = phi i64 [ %126, %130 ], [ %48, %121 ]
  %.1 = phi i32 [ %125, %130 ], [ %.0159, %121 ]
  %133 = getelementptr inbounds i8, ptr %40, i64 %.pre-phi
  %134 = icmp eq i8 %132, 108
  br i1 %134, label %135, label %136

135:                                              ; preds = %131
  store i32 0, ptr %20, align 4, !tbaa !37
  %.pr186 = load i8, ptr %133, align 1, !tbaa !22
  br label %136

136:                                              ; preds = %135, %131
  %137 = phi i8 [ %.pr186, %135 ], [ %132, %131 ]
  %138 = icmp eq i8 %137, 81
  br i1 %138, label %139, label %140

139:                                              ; preds = %136
  store i32 1, ptr %29, align 4, !tbaa !38
  %.pre212 = load i8, ptr %133, align 1, !tbaa !22
  br label %140

140:                                              ; preds = %139, %136
  %141 = phi i8 [ %.pre212, %139 ], [ %137, %136 ]
  %142 = phi i32 [ 1, %139 ], [ %44, %136 ]
  %143 = icmp eq i8 %141, 86
  br i1 %143, label %144, label %.thread220

144:                                              ; preds = %140
  %145 = add nsw i32 %42, 1
  store i32 %145, ptr %28, align 4, !tbaa !39
  br label %.thread220

.thread220:                                       ; preds = %124, %140, %144
  %146 = phi i32 [ %142, %140 ], [ %142, %144 ], [ %44, %124 ]
  %.1216219222 = phi i32 [ %.1, %140 ], [ %.1, %144 ], [ %.0159, %124 ]
  %147 = phi i32 [ %42, %140 ], [ %145, %144 ], [ %42, %124 ]
  %148 = add nsw i32 %.1216219222, 1
  br label %41, !llvm.loop !40

149:                                              ; preds = %41
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next, %wide.trip.count
  br i1 %exitcond.not, label %._crit_edge, label %.preheader, !llvm.loop !42

._crit_edge:                                      ; preds = %149
  %150 = icmp eq i32 %47, 0
  %151 = icmp eq i32 %44, 0
  %152 = getelementptr inbounds i8, ptr %2, i64 120
  %153 = getelementptr inbounds i8, ptr %2, i64 140
  br i1 %150, label %155, label %.thread

.thread:                                          ; preds = %._crit_edge
  %154 = icmp eq i32 %45, 0
  store i32 1, ptr %152, align 4, !tbaa !17
  store <2 x float> <float 1.000000e+00, float 0.000000e+00>, ptr %153, align 4, !tbaa !18
  br i1 %154, label %162, label %158

155:                                              ; preds = %._crit_edge
  %156 = icmp ne i32 %46, 0
  %157 = zext i1 %156 to i32
  store i32 %157, ptr %152, align 4, !tbaa !17
  store <2 x float> <float 1.000000e+00, float 0.000000e+00>, ptr %153, align 4, !tbaa !18
  store i32 0, ptr %4, align 4, !tbaa !43
  store i32 0, ptr %8, align 4, !tbaa !19
  br label %162

158:                                              ; preds = %.thread
  store i32 0, ptr %6, align 4, !tbaa !25
  br i1 %151, label %159, label %162

159:                                              ; preds = %158
  %160 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.5)
  %161 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.6)
  %.pre = load i32, ptr %5, align 4, !tbaa !26
  br label %162

162:                                              ; preds = %155, %.thread, %158, %159
  %163 = phi i32 [ %43, %158 ], [ %.pre, %159 ], [ %43, %.thread ], [ %43, %155 ]
  %.not174 = icmp eq i32 %163, 0
  br i1 %.not174, label %172, label %164

164:                                              ; preds = %162
  %165 = load i32, ptr %15, align 4, !tbaa !33
  %.not175 = icmp eq i32 %165, 0
  br i1 %.not175, label %172, label %166

166:                                              ; preds = %164
  %167 = load i32, ptr %29, align 4, !tbaa !38
  %.not176 = icmp eq i32 %167, 0
  br i1 %.not176, label %168, label %172

168:                                              ; preds = %166
  %169 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.7)
  %170 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.8)
  %171 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.9)
  br label %172

172:                                              ; preds = %.thread253, %168, %166, %164, %162
  ret void
}

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #2

attributes #0 = { 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 #1 = { nofree 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 = { nocallback nofree nounwind willreturn memory(argmem: write) }

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !7, i64 40}
!6 = !{!"behavior", !7, i64 0, !7, i64 4, !7, i64 8, !7, i64 12, !7, i64 16, !7, i64 20, !7, i64 24, !7, i64 28, !7, i64 32, !7, i64 36, !7, i64 40, !7, i64 44, !7, i64 48, !7, i64 52, !7, i64 56, !7, i64 60, !7, i64 64, !7, i64 68, !7, i64 72, !7, i64 76, !7, i64 80, !7, i64 84, !7, i64 88, !7, i64 92, !7, i64 96, !7, i64 100, !7, i64 104, !7, i64 108, !7, i64 112, !7, i64 116, !7, i64 120, !7, i64 124, !7, i64 128, !7, i64 132, !10, i64 136, !10, i64 140, !10, i64 144, !10, i64 148}
!7 = !{!"int", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C/C++ TBAA"}
!10 = !{!"float", !8, i64 0}
!11 = !{!6, !7, i64 128}
!12 = !{!7, !7, i64 0}
!13 = !{!6, !7, i64 132}
!14 = !{!6, !7, i64 124}
!15 = !{!6, !10, i64 136}
!16 = !{!6, !10, i64 148}
!17 = !{!6, !7, i64 120}
!18 = !{!10, !10, i64 0}
!19 = !{!6, !7, i64 24}
!20 = !{!21, !21, i64 0}
!21 = !{!"any pointer", !8, i64 0}
!22 = !{!8, !8, i64 0}
!23 = !{!6, !7, i64 0}
!24 = !{!6, !7, i64 28}
!25 = !{!6, !7, i64 32}
!26 = !{!6, !7, i64 36}
!27 = !{!6, !7, i64 44}
!28 = !{!6, !7, i64 48}
!29 = !{!6, !7, i64 52}
!30 = !{!6, !7, i64 56}
!31 = !{!6, !7, i64 60}
!32 = !{!6, !7, i64 64}
!33 = !{!6, !7, i64 68}
!34 = !{!6, !7, i64 72}
!35 = !{!6, !7, i64 80}
!36 = !{!6, !7, i64 84}
!37 = !{!6, !7, i64 100}
!38 = !{!6, !7, i64 112}
!39 = !{!6, !7, i64 116}
!40 = distinct !{!40, !41}
!41 = !{!"llvm.loop.mustprogress"}
!42 = distinct !{!42, !41}
!43 = !{!6, !7, i64 12}


; Effective O3 passes: ADCEPass,CorrelatedValuePropagationPass,DSEPass,EarlyCSEPass,GVNPass,GlobalOptPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,MemCpyOptPass,PostOrderFunctionAttrsPass,SCCPPass,SLPVectorizerPass,SROAPass,SimplifyCFGPass,TailCallElimPass