; LLVM IR from askforalfred/alfred :: gen/ff_planner (expressions)

; 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._FlConn = type { ptr, i32, ptr, ptr, ptr, i32, ptr, ptr, ptr, i32, i8, ptr, ptr, i32, i8, float, i8, ptr, ptr, i8, float, i32 }
%struct._EfConn = type { i32, i8, i8, float, ptr, i32, ptr, ptr, ptr, i32, ptr, ptr, ptr, i32, ptr, i32, ptr, ptr, ptr, i32, ptr, ptr, ptr, i32, ptr, i32, i32, float, i8, i32, i8, i32, i32 }

@gnum_real_fl_conn = external global i32, align 4
@gassign_influence = external global ptr, align 8
@gfl_conn = external global ptr, align 8
@gnum_ef_conn = external global i32, align 4
@gef_conn = external global ptr, align 8
@.str.51 = external hidden unnamed_addr constant [24 x i8], align 1
@gnum_fnumeric_goal = external global i32, align 4
@gfnumeric_goal_fl = external global ptr, align 8

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

; Function Attrs: noreturn nounwind
declare void @exit(i32 noundef) #1

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

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

; Function Attrs: nounwind allocsize(0,1)
declare noalias ptr @calloc(i64 noundef, i64 noundef) #3

; Function Attrs: nounwind uwtable
define dso_local void @determine_fl_relevance() #4 {
  %1 = alloca i32, align 4
  %2 = alloca i32, align 4
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca i32, align 4
  %6 = alloca i32, align 4
  %7 = alloca i32, align 4
  %8 = alloca i32, align 4
  %9 = alloca ptr, align 8
  call void @llvm.lifetime.start.p0(i64 4, ptr %1) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %2) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %3) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %4) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %5) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %9) #5
  %10 = load i32, ptr @gnum_real_fl_conn, align 4, !tbaa !5
  %11 = sext i32 %10 to i64
  %12 = call noalias ptr @calloc(i64 noundef %11, i64 noundef 8) #6
  store ptr %12, ptr %9, align 8, !tbaa !9
  store i32 0, ptr %1, align 4, !tbaa !5
  br label %13

13:                                               ; preds = %25, %0
  %14 = load i32, ptr %1, align 4, !tbaa !5
  %15 = load i32, ptr @gnum_real_fl_conn, align 4, !tbaa !5
  %16 = icmp slt i32 %14, %15
  br i1 %16, label %17, label %28

17:                                               ; preds = %13
  %18 = load i32, ptr @gnum_real_fl_conn, align 4, !tbaa !5
  %19 = sext i32 %18 to i64
  %20 = call noalias ptr @calloc(i64 noundef %19, i64 noundef 1) #6
  %21 = load ptr, ptr %9, align 8, !tbaa !9
  %22 = load i32, ptr %1, align 4, !tbaa !5
  %23 = sext i32 %22 to i64
  %24 = getelementptr inbounds ptr, ptr %21, i64 %23
  store ptr %20, ptr %24, align 8, !tbaa !9
  br label %25

25:                                               ; preds = %17
  %26 = load i32, ptr %1, align 4, !tbaa !5
  %27 = add nsw i32 %26, 1
  store i32 %27, ptr %1, align 4, !tbaa !5
  br label %13, !llvm.loop !11

28:                                               ; preds = %13
  store i32 0, ptr %1, align 4, !tbaa !5
  br label %29

29:                                               ; preds = %72, %28
  %30 = load i32, ptr %1, align 4, !tbaa !5
  %31 = load i32, ptr @gnum_real_fl_conn, align 4, !tbaa !5
  %32 = icmp slt i32 %30, %31
  br i1 %32, label %33, label %75

33:                                               ; preds = %29
  store i32 0, ptr %2, align 4, !tbaa !5
  br label %34

34:                                               ; preds = %68, %33
  %35 = load i32, ptr %2, align 4, !tbaa !5
  %36 = load i32, ptr @gnum_real_fl_conn, align 4, !tbaa !5
  %37 = icmp slt i32 %35, %36
  br i1 %37, label %38, label %71

38:                                               ; preds = %34
  %39 = load ptr, ptr @gassign_influence, align 8, !tbaa !9
  %40 = load i32, ptr %2, align 4, !tbaa !5
  %41 = sext i32 %40 to i64
  %42 = getelementptr inbounds ptr, ptr %39, i64 %41
  %43 = load ptr, ptr %42, align 8, !tbaa !9
  %44 = load i32, ptr %1, align 4, !tbaa !5
  %45 = sext i32 %44 to i64
  %46 = getelementptr inbounds i8, ptr %43, i64 %45
  %47 = load i8, ptr %46, align 1, !tbaa !13
  %48 = zext i8 %47 to i32
  %49 = icmp ne i32 %48, 0
  br i1 %49, label %56, label %50

50:                                               ; preds = %38
  %51 = load i32, ptr %2, align 4, !tbaa !5
  %52 = load i32, ptr %1, align 4, !tbaa !5
  %53 = call zeroext i8 @i_inc_influences_j(i32 noundef %51, i32 noundef %52)
  %54 = zext i8 %53 to i32
  %55 = icmp ne i32 %54, 0
  br label %56

56:                                               ; preds = %50, %38
  %57 = phi i1 [ true, %38 ], [ %55, %50 ]
  %58 = zext i1 %57 to i32
  %59 = trunc i32 %58 to i8
  %60 = load ptr, ptr %9, align 8, !tbaa !9
  %61 = load i32, ptr %1, align 4, !tbaa !5
  %62 = sext i32 %61 to i64
  %63 = getelementptr inbounds ptr, ptr %60, i64 %62
  %64 = load ptr, ptr %63, align 8, !tbaa !9
  %65 = load i32, ptr %2, align 4, !tbaa !5
  %66 = sext i32 %65 to i64
  %67 = getelementptr inbounds i8, ptr %64, i64 %66
  store i8 %59, ptr %67, align 1, !tbaa !13
  br label %68

68:                                               ; preds = %56
  %69 = load i32, ptr %2, align 4, !tbaa !5
  %70 = add nsw i32 %69, 1
  store i32 %70, ptr %2, align 4, !tbaa !5
  br label %34, !llvm.loop !14

71:                                               ; preds = %34
  br label %72

72:                                               ; preds = %71
  %73 = load i32, ptr %1, align 4, !tbaa !5
  %74 = add nsw i32 %73, 1
  store i32 %74, ptr %1, align 4, !tbaa !5
  br label %29, !llvm.loop !15

75:                                               ; preds = %29
  store i32 0, ptr %2, align 4, !tbaa !5
  br label %76

76:                                               ; preds = %131, %75
  %77 = load i32, ptr %2, align 4, !tbaa !5
  %78 = load i32, ptr @gnum_real_fl_conn, align 4, !tbaa !5
  %79 = icmp slt i32 %77, %78
  br i1 %79, label %80, label %134

80:                                               ; preds = %76
  store i32 0, ptr %1, align 4, !tbaa !5
  br label %81

81:                                               ; preds = %127, %80
  %82 = load i32, ptr %1, align 4, !tbaa !5
  %83 = load i32, ptr @gnum_real_fl_conn, align 4, !tbaa !5
  %84 = icmp slt i32 %82, %83
  br i1 %84, label %85, label %130

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

96:                                               ; preds = %85
  store i32 0, ptr %3, align 4, !tbaa !5
  br label %97

97:                                               ; preds = %122, %96
  %98 = load i32, ptr %3, align 4, !tbaa !5
  %99 = load i32, ptr @gnum_real_fl_conn, align 4, !tbaa !5
  %100 = icmp slt i32 %98, %99
  br i1 %100, label %101, label %125

101:                                              ; preds = %97
  %102 = load ptr, ptr %9, align 8, !tbaa !9
  %103 = load i32, ptr %2, align 4, !tbaa !5
  %104 = sext i32 %103 to i64
  %105 = getelementptr inbounds ptr, ptr %102, i64 %104
  %106 = load ptr, ptr %105, align 8, !tbaa !9
  %107 = load i32, ptr %3, align 4, !tbaa !5
  %108 = sext i32 %107 to i64
  %109 = getelementptr inbounds i8, ptr %106, i64 %108
  %110 = load i8, ptr %109, align 1, !tbaa !13
  %111 = icmp ne i8 %110, 0
  br i1 %111, label %112, label %121

112:                                              ; preds = %101
  %113 = load ptr, ptr %9, align 8, !tbaa !9
  %114 = load i32, ptr %1, align 4, !tbaa !5
  %115 = sext i32 %114 to i64
  %116 = getelementptr inbounds ptr, ptr %113, i64 %115
  %117 = load ptr, ptr %116, align 8, !tbaa !9
  %118 = load i32, ptr %3, align 4, !tbaa !5
  %119 = sext i32 %118 to i64
  %120 = getelementptr inbounds i8, ptr %117, i64 %119
  store i8 1, ptr %120, align 1, !tbaa !13
  br label %121

121:                                              ; preds = %112, %101
  br label %122

122:                                              ; preds = %121
  %123 = load i32, ptr %3, align 4, !tbaa !5
  %124 = add nsw i32 %123, 1
  store i32 %124, ptr %3, align 4, !tbaa !5
  br label %97, !llvm.loop !16

125:                                              ; preds = %97
  br label %126

126:                                              ; preds = %125, %85
  br label %127

127:                                              ; preds = %126
  %128 = load i32, ptr %1, align 4, !tbaa !5
  %129 = add nsw i32 %128, 1
  store i32 %129, ptr %1, align 4, !tbaa !5
  br label %81, !llvm.loop !17

130:                                              ; preds = %81
  br label %131

131:                                              ; preds = %130
  %132 = load i32, ptr %2, align 4, !tbaa !5
  %133 = add nsw i32 %132, 1
  store i32 %133, ptr %2, align 4, !tbaa !5
  br label %76, !llvm.loop !18

134:                                              ; preds = %76
  store i32 0, ptr %1, align 4, !tbaa !5
  br label %135

135:                                              ; preds = %145, %134
  %136 = load i32, ptr %1, align 4, !tbaa !5
  %137 = load i32, ptr @gnum_real_fl_conn, align 4, !tbaa !5
  %138 = icmp slt i32 %136, %137
  br i1 %138, label %139, label %148

139:                                              ; preds = %135
  %140 = load ptr, ptr @gfl_conn, align 8, !tbaa !9
  %141 = load i32, ptr %1, align 4, !tbaa !5
  %142 = sext i32 %141 to i64
  %143 = getelementptr inbounds %struct._FlConn, ptr %140, i64 %142
  %144 = getelementptr inbounds %struct._FlConn, ptr %143, i32 0, i32 16
  store i8 0, ptr %144, align 4, !tbaa !19
  br label %145

145:                                              ; preds = %139
  %146 = load i32, ptr %1, align 4, !tbaa !5
  %147 = add nsw i32 %146, 1
  store i32 %147, ptr %1, align 4, !tbaa !5
  br label %135, !llvm.loop !22

148:                                              ; preds = %135
  store i32 0, ptr %6, align 4, !tbaa !5
  br label %149

149:                                              ; preds = %279, %148
  %150 = load i32, ptr %6, align 4, !tbaa !5
  %151 = load i32, ptr @gnum_ef_conn, align 4, !tbaa !5
  %152 = icmp slt i32 %150, %151
  br i1 %152, label %153, label %282

153:                                              ; preds = %149
  store i32 0, ptr %7, align 4, !tbaa !5
  br label %154

154:                                              ; preds = %275, %153
  %155 = load i32, ptr %7, align 4, !tbaa !5
  %156 = load ptr, ptr @gef_conn, align 8, !tbaa !9
  %157 = load i32, ptr %6, align 4, !tbaa !5
  %158 = sext i32 %157 to i64
  %159 = getelementptr inbounds %struct._EfConn, ptr %156, i64 %158
  %160 = getelementptr inbounds %struct._EfConn, ptr %159, i32 0, i32 9
  %161 = load i32, ptr %160, align 8, !tbaa !23
  %162 = icmp slt i32 %155, %161
  br i1 %162, label %163, label %278

163:                                              ; preds = %154
  %164 = load ptr, ptr @gef_conn, align 8, !tbaa !9
  %165 = load i32, ptr %6, align 4, !tbaa !5
  %166 = sext i32 %165 to i64
  %167 = getelementptr inbounds %struct._EfConn, ptr %164, i64 %166
  %168 = getelementptr inbounds %struct._EfConn, ptr %167, i32 0, i32 7
  %169 = load ptr, ptr %168, align 8, !tbaa !25
  %170 = load i32, ptr %7, align 4, !tbaa !5
  %171 = sext i32 %170 to i64
  %172 = getelementptr inbounds i32, ptr %169, i64 %171
  %173 = load i32, ptr %172, align 4, !tbaa !5
  store i32 %173, ptr %4, align 4, !tbaa !5
  %174 = load i32, ptr %4, align 4, !tbaa !5
  %175 = icmp slt i32 %174, 0
  br i1 %175, label %176, label %178

176:                                              ; preds = %163
  %177 = call i32 (ptr, ...) @printf(ptr noundef @.str.51)
  call void @exit(i32 noundef 1) #7
  unreachable

178:                                              ; preds = %163
  %179 = load ptr, ptr @gfl_conn, align 8, !tbaa !9
  %180 = load i32, ptr %4, align 4, !tbaa !5
  %181 = sext i32 %180 to i64
  %182 = getelementptr inbounds %struct._FlConn, ptr %179, i64 %181
  %183 = getelementptr inbounds %struct._FlConn, ptr %182, i32 0, i32 10
  %184 = load i8, ptr %183, align 4, !tbaa !26
  %185 = icmp ne i8 %184, 0
  br i1 %185, label %218, label %186

186:                                              ; preds = %178
  %187 = load ptr, ptr @gfl_conn, align 8, !tbaa !9
  %188 = load i32, ptr %4, align 4, !tbaa !5
  %189 = sext i32 %188 to i64
  %190 = getelementptr inbounds %struct._FlConn, ptr %187, i64 %189
  %191 = getelementptr inbounds %struct._FlConn, ptr %190, i32 0, i32 16
  store i8 1, ptr %191, align 4, !tbaa !19
  store i32 0, ptr %1, align 4, !tbaa !5
  br label %192

192:                                              ; preds = %214, %186
  %193 = load i32, ptr %1, align 4, !tbaa !5
  %194 = load i32, ptr @gnum_real_fl_conn, align 4, !tbaa !5
  %195 = icmp slt i32 %193, %194
  br i1 %195, label %196, label %217

196:                                              ; preds = %192
  %197 = load ptr, ptr %9, align 8, !tbaa !9
  %198 = load i32, ptr %4, align 4, !tbaa !5
  %199 = sext i32 %198 to i64
  %200 = getelementptr inbounds ptr, ptr %197, i64 %199
  %201 = load ptr, ptr %200, align 8, !tbaa !9
  %202 = load i32, ptr %1, align 4, !tbaa !5
  %203 = sext i32 %202 to i64
  %204 = getelementptr inbounds i8, ptr %201, i64 %203
  %205 = load i8, ptr %204, align 1, !tbaa !13
  %206 = icmp ne i8 %205, 0
  br i1 %206, label %207, label %213

207:                                              ; preds = %196
  %208 = load ptr, ptr @gfl_conn, align 8, !tbaa !9
  %209 = load i32, ptr %1, align 4, !tbaa !5
  %210 = sext i32 %209 to i64
  %211 = getelementptr inbounds %struct._FlConn, ptr %208, i64 %210
  %212 = getelementptr inbounds %struct._FlConn, ptr %211, i32 0, i32 16
  store i8 1, ptr %212, align 4, !tbaa !19
  br label %213

213:                                              ; preds = %207, %196
  br label %214

214:                                              ; preds = %213
  %215 = load i32, ptr %1, align 4, !tbaa !5
  %216 = add nsw i32 %215, 1
  store i32 %216, ptr %1, align 4, !tbaa !5
  br label %192, !llvm.loop !27

217:                                              ; preds = %192
  br label %274

218:                                              ; preds = %178
  store i32 0, ptr %1, align 4, !tbaa !5
  br label %219

219:                                              ; preds = %270, %218
  %220 = load i32, ptr %1, align 4, !tbaa !5
  %221 = load ptr, ptr @gfl_conn, align 8, !tbaa !9
  %222 = load i32, ptr %4, align 4, !tbaa !5
  %223 = sext i32 %222 to i64
  %224 = getelementptr inbounds %struct._FlConn, ptr %221, i64 %223
  %225 = getelementptr inbounds %struct._FlConn, ptr %224, i32 0, i32 13
  %226 = load i32, ptr %225, align 8, !tbaa !28
  %227 = icmp slt i32 %220, %226
  br i1 %227, label %228, label %273

228:                                              ; preds = %219
  %229 = load ptr, ptr @gfl_conn, align 8, !tbaa !9
  %230 = load i32, ptr %4, align 4, !tbaa !5
  %231 = sext i32 %230 to i64
  %232 = getelementptr inbounds %struct._FlConn, ptr %229, i64 %231
  %233 = getelementptr inbounds %struct._FlConn, ptr %232, i32 0, i32 11
  %234 = load ptr, ptr %233, align 8, !tbaa !29
  %235 = load i32, ptr %1, align 4, !tbaa !5
  %236 = sext i32 %235 to i64
  %237 = getelementptr inbounds i32, ptr %234, i64 %236
  %238 = load i32, ptr %237, align 4, !tbaa !5
  store i32 %238, ptr %5, align 4, !tbaa !5
  %239 = load ptr, ptr @gfl_conn, align 8, !tbaa !9
  %240 = load i32, ptr %5, align 4, !tbaa !5
  %241 = sext i32 %240 to i64
  %242 = getelementptr inbounds %struct._FlConn, ptr %239, i64 %241
  %243 = getelementptr inbounds %struct._FlConn, ptr %242, i32 0, i32 16
  store i8 1, ptr %243, align 4, !tbaa !19
  store i32 0, ptr %2, align 4, !tbaa !5
  br label %244

244:                                              ; preds = %266, %228
  %245 = load i32, ptr %2, align 4, !tbaa !5
  %246 = load i32, ptr @gnum_real_fl_conn, align 4, !tbaa !5
  %247 = icmp slt i32 %245, %246
  br i1 %247, label %248, label %269

248:                                              ; preds = %244
  %249 = load ptr, ptr %9, align 8, !tbaa !9
  %250 = load i32, ptr %5, 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 %2, 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 !13
  %258 = icmp ne i8 %257, 0
  br i1 %258, label %259, label %265

259:                                              ; preds = %248
  %260 = load ptr, ptr @gfl_conn, align 8, !tbaa !9
  %261 = load i32, ptr %2, align 4, !tbaa !5
  %262 = sext i32 %261 to i64
  %263 = getelementptr inbounds %struct._FlConn, ptr %260, i64 %262
  %264 = getelementptr inbounds %struct._FlConn, ptr %263, i32 0, i32 16
  store i8 1, ptr %264, align 4, !tbaa !19
  br label %265

265:                                              ; preds = %259, %248
  br label %266

266:                                              ; preds = %265
  %267 = load i32, ptr %2, align 4, !tbaa !5
  %268 = add nsw i32 %267, 1
  store i32 %268, ptr %2, align 4, !tbaa !5
  br label %244, !llvm.loop !30

269:                                              ; preds = %244
  br label %270

270:                                              ; preds = %269
  %271 = load i32, ptr %1, align 4, !tbaa !5
  %272 = add nsw i32 %271, 1
  store i32 %272, ptr %1, align 4, !tbaa !5
  br label %219, !llvm.loop !31

273:                                              ; preds = %219
  br label %274

274:                                              ; preds = %273, %217
  br label %275

275:                                              ; preds = %274
  %276 = load i32, ptr %7, align 4, !tbaa !5
  %277 = add nsw i32 %276, 1
  store i32 %277, ptr %7, align 4, !tbaa !5
  br label %154, !llvm.loop !32

278:                                              ; preds = %154
  br label %279

279:                                              ; preds = %278
  %280 = load i32, ptr %6, align 4, !tbaa !5
  %281 = add nsw i32 %280, 1
  store i32 %281, ptr %6, align 4, !tbaa !5
  br label %149, !llvm.loop !33

282:                                              ; preds = %149
  store i32 0, ptr %8, align 4, !tbaa !5
  br label %283

283:                                              ; preds = %394, %282
  %284 = load i32, ptr %8, align 4, !tbaa !5
  %285 = load i32, ptr @gnum_fnumeric_goal, align 4, !tbaa !5
  %286 = icmp slt i32 %284, %285
  br i1 %286, label %287, label %397

287:                                              ; preds = %283
  %288 = load ptr, ptr @gfnumeric_goal_fl, align 8, !tbaa !9
  %289 = load i32, ptr %8, align 4, !tbaa !5
  %290 = sext i32 %289 to i64
  %291 = getelementptr inbounds i32, ptr %288, i64 %290
  %292 = load i32, ptr %291, align 4, !tbaa !5
  store i32 %292, ptr %4, align 4, !tbaa !5
  %293 = load i32, ptr %4, align 4, !tbaa !5
  %294 = icmp slt i32 %293, 0
  br i1 %294, label %295, label %297

295:                                              ; preds = %287
  %296 = call i32 (ptr, ...) @printf(ptr noundef @.str.51)
  call void @exit(i32 noundef 1) #7
  unreachable

297:                                              ; preds = %287
  %298 = load ptr, ptr @gfl_conn, align 8, !tbaa !9
  %299 = load i32, ptr %4, align 4, !tbaa !5
  %300 = sext i32 %299 to i64
  %301 = getelementptr inbounds %struct._FlConn, ptr %298, i64 %300
  %302 = getelementptr inbounds %struct._FlConn, ptr %301, i32 0, i32 10
  %303 = load i8, ptr %302, align 4, !tbaa !26
  %304 = icmp ne i8 %303, 0
  br i1 %304, label %337, label %305

305:                                              ; preds = %297
  %306 = load ptr, ptr @gfl_conn, align 8, !tbaa !9
  %307 = load i32, ptr %4, align 4, !tbaa !5
  %308 = sext i32 %307 to i64
  %309 = getelementptr inbounds %struct._FlConn, ptr %306, i64 %308
  %310 = getelementptr inbounds %struct._FlConn, ptr %309, i32 0, i32 16
  store i8 1, ptr %310, align 4, !tbaa !19
  store i32 0, ptr %1, align 4, !tbaa !5
  br label %311

311:                                              ; preds = %333, %305
  %312 = load i32, ptr %1, align 4, !tbaa !5
  %313 = load i32, ptr @gnum_real_fl_conn, align 4, !tbaa !5
  %314 = icmp slt i32 %312, %313
  br i1 %314, label %315, label %336

315:                                              ; preds = %311
  %316 = load ptr, ptr %9, align 8, !tbaa !9
  %317 = load i32, ptr %4, align 4, !tbaa !5
  %318 = sext i32 %317 to i64
  %319 = getelementptr inbounds ptr, ptr %316, i64 %318
  %320 = load ptr, ptr %319, align 8, !tbaa !9
  %321 = load i32, ptr %1, align 4, !tbaa !5
  %322 = sext i32 %321 to i64
  %323 = getelementptr inbounds i8, ptr %320, i64 %322
  %324 = load i8, ptr %323, align 1, !tbaa !13
  %325 = icmp ne i8 %324, 0
  br i1 %325, label %326, label %332

326:                                              ; preds = %315
  %327 = load ptr, ptr @gfl_conn, align 8, !tbaa !9
  %328 = load i32, ptr %1, align 4, !tbaa !5
  %329 = sext i32 %328 to i64
  %330 = getelementptr inbounds %struct._FlConn, ptr %327, i64 %329
  %331 = getelementptr inbounds %struct._FlConn, ptr %330, i32 0, i32 16
  store i8 1, ptr %331, align 4, !tbaa !19
  br label %332

332:                                              ; preds = %326, %315
  br label %333

333:                                              ; preds = %332
  %334 = load i32, ptr %1, align 4, !tbaa !5
  %335 = add nsw i32 %334, 1
  store i32 %335, ptr %1, align 4, !tbaa !5
  br label %311, !llvm.loop !34

336:                                              ; preds = %311
  br label %393

337:                                              ; preds = %297
  store i32 0, ptr %1, align 4, !tbaa !5
  br label %338

338:                                              ; preds = %389, %337
  %339 = load i32, ptr %1, align 4, !tbaa !5
  %340 = load ptr, ptr @gfl_conn, align 8, !tbaa !9
  %341 = load i32, ptr %4, align 4, !tbaa !5
  %342 = sext i32 %341 to i64
  %343 = getelementptr inbounds %struct._FlConn, ptr %340, i64 %342
  %344 = getelementptr inbounds %struct._FlConn, ptr %343, i32 0, i32 13
  %345 = load i32, ptr %344, align 8, !tbaa !28
  %346 = icmp slt i32 %339, %345
  br i1 %346, label %347, label %392

347:                                              ; preds = %338
  %348 = load ptr, ptr @gfl_conn, align 8, !tbaa !9
  %349 = load i32, ptr %4, align 4, !tbaa !5
  %350 = sext i32 %349 to i64
  %351 = getelementptr inbounds %struct._FlConn, ptr %348, i64 %350
  %352 = getelementptr inbounds %struct._FlConn, ptr %351, i32 0, i32 11
  %353 = load ptr, ptr %352, align 8, !tbaa !29
  %354 = load i32, ptr %1, align 4, !tbaa !5
  %355 = sext i32 %354 to i64
  %356 = getelementptr inbounds i32, ptr %353, i64 %355
  %357 = load i32, ptr %356, align 4, !tbaa !5
  store i32 %357, ptr %5, align 4, !tbaa !5
  %358 = load ptr, ptr @gfl_conn, align 8, !tbaa !9
  %359 = load i32, ptr %5, align 4, !tbaa !5
  %360 = sext i32 %359 to i64
  %361 = getelementptr inbounds %struct._FlConn, ptr %358, i64 %360
  %362 = getelementptr inbounds %struct._FlConn, ptr %361, i32 0, i32 16
  store i8 1, ptr %362, align 4, !tbaa !19
  store i32 0, ptr %2, align 4, !tbaa !5
  br label %363

363:                                              ; preds = %385, %347
  %364 = load i32, ptr %2, align 4, !tbaa !5
  %365 = load i32, ptr @gnum_real_fl_conn, align 4, !tbaa !5
  %366 = icmp slt i32 %364, %365
  br i1 %366, label %367, label %388

367:                                              ; preds = %363
  %368 = load ptr, ptr %9, align 8, !tbaa !9
  %369 = load i32, ptr %5, align 4, !tbaa !5
  %370 = sext i32 %369 to i64
  %371 = getelementptr inbounds ptr, ptr %368, i64 %370
  %372 = load ptr, ptr %371, align 8, !tbaa !9
  %373 = load i32, ptr %2, align 4, !tbaa !5
  %374 = sext i32 %373 to i64
  %375 = getelementptr inbounds i8, ptr %372, i64 %374
  %376 = load i8, ptr %375, align 1, !tbaa !13
  %377 = icmp ne i8 %376, 0
  br i1 %377, label %378, label %384

378:                                              ; preds = %367
  %379 = load ptr, ptr @gfl_conn, align 8, !tbaa !9
  %380 = load i32, ptr %2, align 4, !tbaa !5
  %381 = sext i32 %380 to i64
  %382 = getelementptr inbounds %struct._FlConn, ptr %379, i64 %381
  %383 = getelementptr inbounds %struct._FlConn, ptr %382, i32 0, i32 16
  store i8 1, ptr %383, align 4, !tbaa !19
  br label %384

384:                                              ; preds = %378, %367
  br label %385

385:                                              ; preds = %384
  %386 = load i32, ptr %2, align 4, !tbaa !5
  %387 = add nsw i32 %386, 1
  store i32 %387, ptr %2, align 4, !tbaa !5
  br label %363, !llvm.loop !35

388:                                              ; preds = %363
  br label %389

389:                                              ; preds = %388
  %390 = load i32, ptr %1, align 4, !tbaa !5
  %391 = add nsw i32 %390, 1
  store i32 %391, ptr %1, align 4, !tbaa !5
  br label %338, !llvm.loop !36

392:                                              ; preds = %338
  br label %393

393:                                              ; preds = %392, %336
  br label %394

394:                                              ; preds = %393
  %395 = load i32, ptr %8, align 4, !tbaa !5
  %396 = add nsw i32 %395, 1
  store i32 %396, ptr %8, align 4, !tbaa !5
  br label %283, !llvm.loop !37

397:                                              ; preds = %283
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %5) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %4) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %3) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %2) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %1) #5
  ret void
}

; Function Attrs: nounwind uwtable
declare dso_local zeroext i8 @i_inc_influences_j(i32 noundef, i32 noundef) #4

attributes #0 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { noreturn 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 #2 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #3 = { nounwind allocsize(0,1) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { 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 #5 = { nounwind }
attributes #6 = { nounwind allocsize(0,1) }
attributes #7 = { noreturn 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 = distinct !{!11, !12}
!12 = !{!"llvm.loop.mustprogress"}
!13 = !{!7, !7, i64 0}
!14 = distinct !{!14, !12}
!15 = distinct !{!15, !12}
!16 = distinct !{!16, !12}
!17 = distinct !{!17, !12}
!18 = distinct !{!18, !12}
!19 = !{!20, !7, i64 108}
!20 = !{!"_FlConn", !10, i64 0, !6, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !6, i64 40, !10, i64 48, !10, i64 56, !10, i64 64, !6, i64 72, !7, i64 76, !10, i64 80, !10, i64 88, !6, i64 96, !7, i64 100, !21, i64 104, !7, i64 108, !10, i64 112, !10, i64 120, !7, i64 128, !21, i64 132, !6, i64 136}
!21 = !{!"float", !7, i64 0}
!22 = distinct !{!22, !12}
!23 = !{!24, !6, i64 56}
!24 = !{!"_EfConn", !6, i64 0, !7, i64 4, !7, i64 5, !21, i64 8, !10, i64 16, !6, i64 24, !10, i64 32, !10, i64 40, !10, i64 48, !6, i64 56, !10, i64 64, !10, i64 72, !10, i64 80, !6, i64 88, !10, i64 96, !6, i64 104, !10, i64 112, !10, i64 120, !10, i64 128, !6, i64 136, !10, i64 144, !10, i64 152, !10, i64 160, !6, i64 168, !10, i64 176, !6, i64 184, !6, i64 188, !21, i64 192, !7, i64 196, !6, i64 200, !7, i64 204, !6, i64 208, !6, i64 212}
!25 = !{!24, !10, i64 40}
!26 = !{!20, !7, i64 76}
!27 = distinct !{!27, !12}
!28 = !{!20, !6, i64 96}
!29 = !{!20, !10, i64 80}
!30 = distinct !{!30, !12}
!31 = distinct !{!31, !12}
!32 = distinct !{!32, !12}
!33 = distinct !{!33, !12}
!34 = distinct !{!34, !12}
!35 = distinct !{!35, !12}
!36 = distinct !{!36, !12}
!37 = distinct !{!37, !12}


; Optimized IR (opt -passes='default<O3>'):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%struct._FlConn = type { ptr, i32, ptr, ptr, ptr, i32, ptr, ptr, ptr, i32, i8, ptr, ptr, i32, i8, float, i8, ptr, ptr, i8, float, i32 }
%struct._EfConn = type { i32, i8, i8, float, ptr, i32, ptr, ptr, ptr, i32, ptr, ptr, ptr, i32, ptr, i32, ptr, ptr, ptr, i32, ptr, ptr, ptr, i32, ptr, i32, i32, float, i8, i32, i8, i32, i32 }

@gnum_real_fl_conn = external local_unnamed_addr global i32, align 4
@gassign_influence = external local_unnamed_addr global ptr, align 8
@gfl_conn = external local_unnamed_addr global ptr, align 8
@gnum_ef_conn = external local_unnamed_addr global i32, align 4
@gef_conn = external local_unnamed_addr global ptr, align 8
@.str.51 = external hidden unnamed_addr constant [24 x i8], align 1
@gnum_fnumeric_goal = external local_unnamed_addr global i32, align 4
@gfnumeric_goal_fl = external local_unnamed_addr global ptr, align 8

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

; Function Attrs: noreturn nounwind
declare void @exit(i32 noundef) local_unnamed_addr #1

; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite)
declare noalias noundef ptr @calloc(i64 noundef, i64 noundef) local_unnamed_addr #2

; Function Attrs: nounwind uwtable
define dso_local void @determine_fl_relevance() local_unnamed_addr #3 {
  %1 = load i32, ptr @gnum_real_fl_conn, align 4
  %2 = sext i32 %1 to i64
  %3 = tail call noalias ptr @calloc(i64 noundef %2, i64 noundef 8) #4
  %4 = icmp sgt i32 %1, 0
  br i1 %4, label %.lr.ph.preheader, label %.preheader110

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

.preheader116:                                    ; preds = %.lr.ph
  br i1 %4, label %.preheader115, label %.preheader110

.lr.ph:                                           ; preds = %.lr.ph.preheader, %.lr.ph
  %indvars.iv = phi i64 [ 0, %.lr.ph.preheader ], [ %indvars.iv.next, %.lr.ph ]
  %5 = tail call noalias ptr @calloc(i64 noundef %2, i64 noundef 1) #4
  %6 = getelementptr inbounds ptr, ptr %3, i64 %indvars.iv
  store ptr %5, ptr %6, align 8, !tbaa !5
  %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 %.preheader116, label %.lr.ph, !llvm.loop !9

.preheader115:                                    ; preds = %.preheader116, %._crit_edge
  %7 = phi i32 [ %30, %._crit_edge ], [ %1, %.preheader116 ]
  %indvars.iv171 = phi i64 [ %indvars.iv.next172, %._crit_edge ], [ 0, %.preheader116 ]
  %8 = icmp sgt i32 %7, 0
  br i1 %8, label %.lr.ph119, label %.preheader115.._crit_edge_crit_edge

.preheader115.._crit_edge_crit_edge:              ; preds = %.preheader115
  %.pre278 = sext i32 %7 to i64
  br label %._crit_edge

.lr.ph119:                                        ; preds = %.preheader115
  %9 = getelementptr inbounds ptr, ptr %3, i64 %indvars.iv171
  %10 = trunc nuw nsw i64 %indvars.iv171 to i32
  br label %12

.preheader114:                                    ; preds = %._crit_edge
  %11 = icmp sgt i32 %30, 0
  br i1 %11, label %.preheader113, label %.preheader110

12:                                               ; preds = %.lr.ph119, %22
  %indvars.iv168 = phi i64 [ 0, %.lr.ph119 ], [ %indvars.iv.next169, %22 ]
  %13 = load ptr, ptr @gassign_influence, align 8, !tbaa !5
  %14 = getelementptr inbounds ptr, ptr %13, i64 %indvars.iv168
  %15 = load ptr, ptr %14, align 8, !tbaa !5
  %16 = getelementptr inbounds i8, ptr %15, i64 %indvars.iv171
  %17 = load i8, ptr %16, align 1, !tbaa !11
  %.not102 = icmp eq i8 %17, 0
  br i1 %.not102, label %18, label %22

18:                                               ; preds = %12
  %19 = trunc nuw nsw i64 %indvars.iv168 to i32
  %20 = tail call zeroext i8 @i_inc_influences_j(i32 noundef %19, i32 noundef %10)
  %21 = icmp ne i8 %20, 0
  br label %22

22:                                               ; preds = %18, %12
  %23 = phi i1 [ true, %12 ], [ %21, %18 ]
  %24 = zext i1 %23 to i8
  %25 = load ptr, ptr %9, align 8, !tbaa !5
  %26 = getelementptr inbounds i8, ptr %25, i64 %indvars.iv168
  store i8 %24, ptr %26, align 1, !tbaa !11
  %indvars.iv.next169 = add nuw nsw i64 %indvars.iv168, 1
  %27 = load i32, ptr @gnum_real_fl_conn, align 4
  %28 = sext i32 %27 to i64
  %29 = icmp slt i64 %indvars.iv.next169, %28
  br i1 %29, label %12, label %._crit_edge, !llvm.loop !12

._crit_edge:                                      ; preds = %22, %.preheader115.._crit_edge_crit_edge
  %.pre-phi = phi i64 [ %.pre278, %.preheader115.._crit_edge_crit_edge ], [ %28, %22 ]
  %30 = phi i32 [ %7, %.preheader115.._crit_edge_crit_edge ], [ %27, %22 ]
  %indvars.iv.next172 = add nuw nsw i64 %indvars.iv171, 1
  %31 = icmp slt i64 %indvars.iv.next172, %.pre-phi
  br i1 %31, label %.preheader115, label %.preheader114, !llvm.loop !13

.preheader113:                                    ; preds = %.preheader114, %._crit_edge125
  %32 = phi i32 [ %65, %._crit_edge125 ], [ %30, %.preheader114 ]
  %indvars.iv180 = phi i64 [ %indvars.iv.next181, %._crit_edge125 ], [ 0, %.preheader114 ]
  %33 = icmp sgt i32 %32, 0
  br i1 %33, label %.lr.ph124, label %._crit_edge125

.lr.ph124:                                        ; preds = %.preheader113
  %34 = getelementptr inbounds ptr, ptr %3, i64 %indvars.iv180
  br label %38

.preheader110:                                    ; preds = %._crit_edge125, %0, %.preheader116, %.preheader114
  %.lcssa = phi i32 [ %30, %.preheader114 ], [ %1, %.preheader116 ], [ %1, %0 ], [ %65, %._crit_edge125 ]
  %.lcssa.fr = freeze i32 %.lcssa
  %35 = icmp sgt i32 %.lcssa.fr, 0
  br i1 %35, label %.lr.ph128, label %.preheader109.thread

.lr.ph128:                                        ; preds = %.preheader110
  %36 = load ptr, ptr @gfl_conn, align 8, !tbaa !5
  %wide.trip.count186 = zext nneg i32 %.lcssa.fr to i64
  %xtraiter = and i64 %wide.trip.count186, 3
  %37 = icmp ult i32 %.lcssa.fr, 4
  br i1 %37, label %.preheader109.unr-lcssa, label %.lr.ph128.new

.lr.ph128.new:                                    ; preds = %.lr.ph128
  %unroll_iter = and i64 %wide.trip.count186, 2147483644
  br label %393

38:                                               ; preds = %.lr.ph124, %.loopexit112
  %39 = phi i32 [ %32, %.lr.ph124 ], [ %61, %.loopexit112 ]
  %40 = phi i32 [ %32, %.lr.ph124 ], [ %62, %.loopexit112 ]
  %indvars.iv177 = phi i64 [ 0, %.lr.ph124 ], [ %indvars.iv.next178, %.loopexit112 ]
  %41 = getelementptr inbounds ptr, ptr %3, i64 %indvars.iv177
  %42 = load ptr, ptr %41, align 8, !tbaa !5
  %43 = getelementptr inbounds i8, ptr %42, i64 %indvars.iv180
  %44 = load i8, ptr %43, align 1, !tbaa !11
  %.not100 = icmp ne i8 %44, 0
  %45 = icmp sgt i32 %40, 0
  %or.cond = and i1 %.not100, %45
  br i1 %or.cond, label %.lr.ph122, label %.loopexit112

.lr.ph122:                                        ; preds = %38
  %46 = load ptr, ptr %34, align 8, !tbaa !5
  br label %47

47:                                               ; preds = %.lr.ph122, %55
  %48 = phi i32 [ %39, %.lr.ph122 ], [ %56, %55 ]
  %49 = phi i32 [ %40, %.lr.ph122 ], [ %57, %55 ]
  %50 = phi i32 [ %40, %.lr.ph122 ], [ %58, %55 ]
  %indvars.iv174 = phi i64 [ 0, %.lr.ph122 ], [ %indvars.iv.next175, %55 ]
  %51 = getelementptr inbounds i8, ptr %46, i64 %indvars.iv174
  %52 = load i8, ptr %51, align 1, !tbaa !11
  %.not101 = icmp eq i8 %52, 0
  br i1 %.not101, label %55, label %53

53:                                               ; preds = %47
  %54 = getelementptr inbounds i8, ptr %42, i64 %indvars.iv174
  store i8 1, ptr %54, align 1, !tbaa !11
  %.pre = load i32, ptr @gnum_real_fl_conn, align 4
  br label %55

55:                                               ; preds = %47, %53
  %56 = phi i32 [ %48, %47 ], [ %.pre, %53 ]
  %57 = phi i32 [ %49, %47 ], [ %.pre, %53 ]
  %58 = phi i32 [ %50, %47 ], [ %.pre, %53 ]
  %indvars.iv.next175 = add nuw nsw i64 %indvars.iv174, 1
  %59 = sext i32 %58 to i64
  %60 = icmp slt i64 %indvars.iv.next175, %59
  br i1 %60, label %47, label %.loopexit112, !llvm.loop !15

.loopexit112:                                     ; preds = %55, %38
  %61 = phi i32 [ %39, %38 ], [ %56, %55 ]
  %62 = phi i32 [ %40, %38 ], [ %57, %55 ]
  %indvars.iv.next178 = add nuw nsw i64 %indvars.iv177, 1
  %63 = sext i32 %62 to i64
  %64 = icmp slt i64 %indvars.iv.next178, %63
  br i1 %64, label %38, label %._crit_edge125, !llvm.loop !16

._crit_edge125:                                   ; preds = %.loopexit112, %.preheader113
  %65 = phi i32 [ %32, %.preheader113 ], [ %61, %.loopexit112 ]
  %indvars.iv.next181 = add nuw nsw i64 %indvars.iv180, 1
  %66 = sext i32 %65 to i64
  %67 = icmp slt i64 %indvars.iv.next181, %66
  br i1 %67, label %.preheader113, label %.preheader110, !llvm.loop !17

.preheader109.unr-lcssa:                          ; preds = %393, %.lr.ph128
  %indvars.iv183.unr = phi i64 [ 0, %.lr.ph128 ], [ %indvars.iv.next184.3, %393 ]
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  br i1 %lcmp.mod.not, label %.preheader109, label %.epil.preheader

.epil.preheader:                                  ; preds = %.preheader109.unr-lcssa, %.epil.preheader
  %indvars.iv183.epil = phi i64 [ %indvars.iv.next184.epil, %.epil.preheader ], [ %indvars.iv183.unr, %.preheader109.unr-lcssa ]
  %epil.iter = phi i64 [ %epil.iter.next, %.epil.preheader ], [ 0, %.preheader109.unr-lcssa ]
  %68 = getelementptr inbounds %struct._FlConn, ptr %36, i64 %indvars.iv183.epil, i32 16
  store i8 0, ptr %68, align 4, !tbaa !18
  %indvars.iv.next184.epil = add nuw nsw i64 %indvars.iv183.epil, 1
  %epil.iter.next = add i64 %epil.iter, 1
  %epil.iter.cmp.not = icmp eq i64 %epil.iter.next, %xtraiter
  br i1 %epil.iter.cmp.not, label %.preheader109, label %.epil.preheader, !llvm.loop !22

.preheader109:                                    ; preds = %.epil.preheader, %.preheader109.unr-lcssa
  %69 = load i32, ptr @gnum_ef_conn, align 4, !tbaa !24
  %70 = icmp sgt i32 %69, 0
  br i1 %70, label %.preheader108.lr.ph, label %.preheader104

.preheader109.thread:                             ; preds = %.preheader110
  %71 = load i32, ptr @gnum_ef_conn, align 4, !tbaa !24
  %72 = icmp sgt i32 %71, 0
  br i1 %72, label %.preheader108.lr.ph.thread, label %.preheader104

.preheader108.lr.ph.thread:                       ; preds = %.preheader109.thread
  %73 = load ptr, ptr @gef_conn, align 8, !tbaa !5
  br label %.preheader108.preheader

.preheader108.lr.ph:                              ; preds = %.preheader109
  %74 = load ptr, ptr @gef_conn, align 8, !tbaa !5
  br i1 %35, label %.preheader108.us.us.preheader, label %.preheader108.preheader

.preheader108.preheader:                          ; preds = %.preheader108.lr.ph.thread, %.preheader108.lr.ph
  %75 = phi ptr [ %73, %.preheader108.lr.ph.thread ], [ %74, %.preheader108.lr.ph ]
  %76 = phi i32 [ %71, %.preheader108.lr.ph.thread ], [ %69, %.preheader108.lr.ph ]
  %wide.trip.count206 = zext nneg i32 %76 to i64
  br label %.preheader108

.preheader108.us.us.preheader:                    ; preds = %.preheader108.lr.ph
  %wide.trip.count251 = zext nneg i32 %69 to i64
  %wide.trip.count231 = zext nneg i32 %.lcssa.fr to i64
  %wide.trip.count241 = zext nneg i32 %.lcssa.fr to i64
  %77 = mul nuw nsw i64 %wide.trip.count186, 144
  %78 = mul nuw nsw i64 %wide.trip.count186, 144
  %min.iters.check398 = icmp ult i32 %.lcssa.fr, 8
  %min.iters.check401 = icmp ult i32 %.lcssa.fr, 32
  %n.vec405 = and i64 %wide.trip.count186, 2147483616
  %cmp.n475 = icmp eq i64 %n.vec405, %wide.trip.count186
  %n.vec.remaining480 = and i64 %wide.trip.count186, 24
  %min.epilog.iters.check481 = icmp eq i64 %n.vec.remaining480, 0
  %n.vec484 = and i64 %wide.trip.count186, 2147483640
  %cmp.n506 = icmp eq i64 %n.vec484, %wide.trip.count186
  %xtraiter758 = and i64 %wide.trip.count186, 1
  %lcmp.mod759.not = icmp eq i64 %xtraiter758, 0
  %79 = add nsw i64 %wide.trip.count186, -1
  %min.iters.check = icmp ult i32 %.lcssa.fr, 8
  %min.iters.check305 = icmp ult i32 %.lcssa.fr, 32
  %n.vec = and i64 %wide.trip.count186, 2147483616
  %cmp.n = icmp eq i64 %n.vec, %wide.trip.count186
  %n.vec.remaining = and i64 %wide.trip.count186, 24
  %min.epilog.iters.check = icmp eq i64 %n.vec.remaining, 0
  %n.vec370 = and i64 %wide.trip.count186, 2147483640
  %cmp.n390 = icmp eq i64 %n.vec370, %wide.trip.count186
  %xtraiter760 = and i64 %wide.trip.count186, 1
  %lcmp.mod761.not = icmp eq i64 %xtraiter760, 0
  %80 = add nsw i64 %wide.trip.count186, -1
  br label %.preheader108.us.us

.preheader108.us.us:                              ; preds = %.preheader108.us.us.preheader, %._crit_edge140.split.us.us.split.us.us
  %indvars.iv248 = phi i64 [ 0, %.preheader108.us.us.preheader ], [ %indvars.iv.next249, %._crit_edge140.split.us.us.split.us.us ]
  %81 = getelementptr inbounds %struct._EfConn, ptr %74, i64 %indvars.iv248
  %82 = getelementptr inbounds i8, ptr %81, i64 56
  %83 = load i32, ptr %82, align 8, !tbaa !25
  %84 = icmp sgt i32 %83, 0
  br i1 %84, label %.lr.ph139.us.us, label %._crit_edge140.split.us.us.split.us.us

._crit_edge140.split.us.us.split.us.us:           ; preds = %.loopexit107.us.us.us.us, %.preheader108.us.us
  %indvars.iv.next249 = add nuw nsw i64 %indvars.iv248, 1
  %exitcond252.not = icmp eq i64 %indvars.iv.next249, %wide.trip.count251
  br i1 %exitcond252.not, label %.preheader104, label %.preheader108.us.us, !llvm.loop !27

.lr.ph139.us.us:                                  ; preds = %.preheader108.us.us
  %85 = getelementptr inbounds i8, ptr %81, i64 40
  %86 = load ptr, ptr %85, align 8, !tbaa !28
  %87 = load ptr, ptr @gfl_conn, align 8
  %wide.trip.count246 = zext nneg i32 %83 to i64
  %scevgep = getelementptr i8, ptr %87, i64 108
  %88 = getelementptr i8, ptr %87, i64 %77
  %scevgep303 = getelementptr i8, ptr %88, i64 -35
  %89 = getelementptr i8, ptr %87, i64 %78
  %scevgep392 = getelementptr i8, ptr %89, i64 -35
  br label %90

90:                                               ; preds = %.loopexit107.us.us.us.us, %.lr.ph139.us.us
  %indvars.iv243 = phi i64 [ %indvars.iv.next244, %.loopexit107.us.us.us.us ], [ 0, %.lr.ph139.us.us ]
  %91 = getelementptr inbounds i32, ptr %86, i64 %indvars.iv243
  %92 = load i32, ptr %91, align 4, !tbaa !24
  %93 = icmp slt i32 %92, 0
  br i1 %93, label %.split.us, label %94

94:                                               ; preds = %90
  %95 = zext nneg i32 %92 to i64
  %96 = getelementptr inbounds %struct._FlConn, ptr %87, i64 %95
  %97 = getelementptr inbounds i8, ptr %96, i64 76
  %98 = load i8, ptr %97, align 4, !tbaa !29
  %.not97.us.us.us.us = icmp eq i8 %98, 0
  br i1 %.not97.us.us.us.us, label %iter.check, label %.preheader106.us.us.us.us

iter.check:                                       ; preds = %94
  %99 = getelementptr inbounds i8, ptr %96, i64 108
  store i8 1, ptr %99, align 4, !tbaa !18
  %100 = getelementptr inbounds ptr, ptr %3, i64 %95
  %101 = load ptr, ptr %100, align 8, !tbaa !5
  br i1 %min.iters.check, label %vec.epilog.scalar.ph.preheader, label %vector.memcheck

vector.memcheck:                                  ; preds = %iter.check
  %scevgep304 = getelementptr i8, ptr %101, i64 %wide.trip.count186
  %bound0 = icmp ult ptr %scevgep, %scevgep304
  %bound1 = icmp ult ptr %101, %scevgep303
  %found.conflict = and i1 %bound0, %bound1
  br i1 %found.conflict, label %vec.epilog.scalar.ph.preheader, label %vector.main.loop.iter.check

vector.main.loop.iter.check:                      ; preds = %vector.memcheck
  br i1 %min.iters.check305, label %vec.epilog.ph, label %vector.body

vector.body:                                      ; preds = %vector.main.loop.iter.check, %pred.store.continue368
  %index = phi i64 [ %index.next, %pred.store.continue368 ], [ 0, %vector.main.loop.iter.check ]
  %102 = or disjoint i64 %index, 16
  %103 = getelementptr inbounds i8, ptr %101, i64 %index
  %104 = getelementptr inbounds i8, ptr %103, i64 16
  %wide.load = load <16 x i8>, ptr %103, align 1, !tbaa !11, !alias.scope !30
  %wide.load306 = load <16 x i8>, ptr %104, align 1, !tbaa !11, !alias.scope !30
  %105 = icmp ne <16 x i8> %wide.load, zeroinitializer
  %106 = icmp ne <16 x i8> %wide.load306, zeroinitializer
  %107 = extractelement <16 x i1> %105, i64 0
  br i1 %107, label %pred.store.if, label %pred.store.continue

pred.store.if:                                    ; preds = %vector.body
  %108 = getelementptr inbounds %struct._FlConn, ptr %87, i64 %index, i32 16
  store i8 1, ptr %108, align 4, !tbaa !18, !alias.scope !33, !noalias !30
  br label %pred.store.continue

pred.store.continue:                              ; preds = %pred.store.if, %vector.body
  %109 = extractelement <16 x i1> %105, i64 1
  br i1 %109, label %pred.store.if307, label %pred.store.continue308

pred.store.if307:                                 ; preds = %pred.store.continue
  %110 = or disjoint i64 %index, 1
  %111 = getelementptr inbounds %struct._FlConn, ptr %87, i64 %110, i32 16
  store i8 1, ptr %111, align 4, !tbaa !18, !alias.scope !33, !noalias !30
  br label %pred.store.continue308

pred.store.continue308:                           ; preds = %pred.store.if307, %pred.store.continue
  %112 = extractelement <16 x i1> %105, i64 2
  br i1 %112, label %pred.store.if309, label %pred.store.continue310

pred.store.if309:                                 ; preds = %pred.store.continue308
  %113 = or disjoint i64 %index, 2
  %114 = getelementptr inbounds %struct._FlConn, ptr %87, i64 %113, i32 16
  store i8 1, ptr %114, align 4, !tbaa !18, !alias.scope !33, !noalias !30
  br label %pred.store.continue310

pred.store.continue310:                           ; preds = %pred.store.if309, %pred.store.continue308
  %115 = extractelement <16 x i1> %105, i64 3
  br i1 %115, label %pred.store.if311, label %pred.store.continue312

pred.store.if311:                                 ; preds = %pred.store.continue310
  %116 = or disjoint i64 %index, 3
  %117 = getelementptr inbounds %struct._FlConn, ptr %87, i64 %116, i32 16
  store i8 1, ptr %117, align 4, !tbaa !18, !alias.scope !33, !noalias !30
  br label %pred.store.continue312

pred.store.continue312:                           ; preds = %pred.store.if311, %pred.store.continue310
  %118 = extractelement <16 x i1> %105, i64 4
  br i1 %118, label %pred.store.if313, label %pred.store.continue314

pred.store.if313:                                 ; preds = %pred.store.continue312
  %119 = or disjoint i64 %index, 4
  %120 = getelementptr inbounds %struct._FlConn, ptr %87, i64 %119, i32 16
  store i8 1, ptr %120, align 4, !tbaa !18, !alias.scope !33, !noalias !30
  br label %pred.store.continue314

pred.store.continue314:                           ; preds = %pred.store.if313, %pred.store.continue312
  %121 = extractelement <16 x i1> %105, i64 5
  br i1 %121, label %pred.store.if315, label %pred.store.continue316

pred.store.if315:                                 ; preds = %pred.store.continue314
  %122 = or disjoint i64 %index, 5
  %123 = getelementptr inbounds %struct._FlConn, ptr %87, i64 %122, i32 16
  store i8 1, ptr %123, align 4, !tbaa !18, !alias.scope !33, !noalias !30
  br label %pred.store.continue316

pred.store.continue316:                           ; preds = %pred.store.if315, %pred.store.continue314
  %124 = extractelement <16 x i1> %105, i64 6
  br i1 %124, label %pred.store.if317, label %pred.store.continue318

pred.store.if317:                                 ; preds = %pred.store.continue316
  %125 = or disjoint i64 %index, 6
  %126 = getelementptr inbounds %struct._FlConn, ptr %87, i64 %125, i32 16
  store i8 1, ptr %126, align 4, !tbaa !18, !alias.scope !33, !noalias !30
  br label %pred.store.continue318

pred.store.continue318:                           ; preds = %pred.store.if317, %pred.store.continue316
  %127 = extractelement <16 x i1> %105, i64 7
  br i1 %127, label %pred.store.if319, label %pred.store.continue320

pred.store.if319:                                 ; preds = %pred.store.continue318
  %128 = or disjoint i64 %index, 7
  %129 = getelementptr inbounds %struct._FlConn, ptr %87, i64 %128, i32 16
  store i8 1, ptr %129, align 4, !tbaa !18, !alias.scope !33, !noalias !30
  br label %pred.store.continue320

pred.store.continue320:                           ; preds = %pred.store.if319, %pred.store.continue318
  %130 = extractelement <16 x i1> %105, i64 8
  br i1 %130, label %pred.store.if321, label %pred.store.continue322

pred.store.if321:                                 ; preds = %pred.store.continue320
  %131 = or disjoint i64 %index, 8
  %132 = getelementptr inbounds %struct._FlConn, ptr %87, i64 %131, i32 16
  store i8 1, ptr %132, align 4, !tbaa !18, !alias.scope !33, !noalias !30
  br label %pred.store.continue322

pred.store.continue322:                           ; preds = %pred.store.if321, %pred.store.continue320
  %133 = extractelement <16 x i1> %105, i64 9
  br i1 %133, label %pred.store.if323, label %pred.store.continue324

pred.store.if323:                                 ; preds = %pred.store.continue322
  %134 = or disjoint i64 %index, 9
  %135 = getelementptr inbounds %struct._FlConn, ptr %87, i64 %134, i32 16
  store i8 1, ptr %135, align 4, !tbaa !18, !alias.scope !33, !noalias !30
  br label %pred.store.continue324

pred.store.continue324:                           ; preds = %pred.store.if323, %pred.store.continue322
  %136 = extractelement <16 x i1> %105, i64 10
  br i1 %136, label %pred.store.if325, label %pred.store.continue326

pred.store.if325:                                 ; preds = %pred.store.continue324
  %137 = or disjoint i64 %index, 10
  %138 = getelementptr inbounds %struct._FlConn, ptr %87, i64 %137, i32 16
  store i8 1, ptr %138, align 4, !tbaa !18, !alias.scope !33, !noalias !30
  br label %pred.store.continue326

pred.store.continue326:                           ; preds = %pred.store.if325, %pred.store.continue324
  %139 = extractelement <16 x i1> %105, i64 11
  br i1 %139, label %pred.store.if327, label %pred.store.continue328

pred.store.if327:                                 ; preds = %pred.store.continue326
  %140 = or disjoint i64 %index, 11
  %141 = getelementptr inbounds %struct._FlConn, ptr %87, i64 %140, i32 16
  store i8 1, ptr %141, align 4, !tbaa !18, !alias.scope !33, !noalias !30
  br label %pred.store.continue328

pred.store.continue328:                           ; preds = %pred.store.if327, %pred.store.continue326
  %142 = extractelement <16 x i1> %105, i64 12
  br i1 %142, label %pred.store.if329, label %pred.store.continue330

pred.store.if329:                                 ; preds = %pred.store.continue328
  %143 = or disjoint i64 %index, 12
  %144 = getelementptr inbounds %struct._FlConn, ptr %87, i64 %143, i32 16
  store i8 1, ptr %144, align 4, !tbaa !18, !alias.scope !33, !noalias !30
  br label %pred.store.continue330

pred.store.continue330:                           ; preds = %pred.store.if329, %pred.store.continue328
  %145 = extractelement <16 x i1> %105, i64 13
  br i1 %145, label %pred.store.if331, label %pred.store.continue332

pred.store.if331:                                 ; preds = %pred.store.continue330
  %146 = or disjoint i64 %index, 13
  %147 = getelementptr inbounds %struct._FlConn, ptr %87, i64 %146, i32 16
  store i8 1, ptr %147, align 4, !tbaa !18, !alias.scope !33, !noalias !30
  br label %pred.store.continue332

pred.store.continue332:                           ; preds = %pred.store.if331, %pred.store.continue330
  %148 = extractelement <16 x i1> %105, i64 14
  br i1 %148, label %pred.store.if333, label %pred.store.continue334

pred.store.if333:                                 ; preds = %pred.store.continue332
  %149 = or disjoint i64 %index, 14
  %150 = getelementptr inbounds %struct._FlConn, ptr %87, i64 %149, i32 16
  store i8 1, ptr %150, align 4, !tbaa !18, !alias.scope !33, !noalias !30
  br label %pred.store.continue334

pred.store.continue334:                           ; preds = %pred.store.if333, %pred.store.continue332
  %151 = extractelement <16 x i1> %105, i64 15
  br i1 %151, label %pred.store.if335, label %pred.store.continue336

pred.store.if335:                                 ; preds = %pred.store.continue334
  %152 = or disjoint i64 %index, 15
  %153 = getelementptr inbounds %struct._FlConn, ptr %87, i64 %152, i32 16
  store i8 1, ptr %153, align 4, !tbaa !18, !alias.scope !33, !noalias !30
  br label %pred.store.continue336

pred.store.continue336:                           ; preds = %pred.store.if335, %pred.store.continue334
  %154 = extractelement <16 x i1> %106, i64 0
  br i1 %154, label %pred.store.if337, label %pred.store.continue338

pred.store.if337:                                 ; preds = %pred.store.continue336
  %155 = getelementptr inbounds %struct._FlConn, ptr %87, i64 %102, i32 16
  store i8 1, ptr %155, align 4, !tbaa !18, !alias.scope !33, !noalias !30
  br label %pred.store.continue338

pred.store.continue338:                           ; preds = %pred.store.if337, %pred.store.continue336
  %156 = extractelement <16 x i1> %106, i64 1
  br i1 %156, label %pred.store.if339, label %pred.store.continue340

pred.store.if339:                                 ; preds = %pred.store.continue338
  %157 = or disjoint i64 %index, 17
  %158 = getelementptr inbounds %struct._FlConn, ptr %87, i64 %157, i32 16
  store i8 1, ptr %158, align 4, !tbaa !18, !alias.scope !33, !noalias !30
  br label %pred.store.continue340

pred.store.continue340:                           ; preds = %pred.store.if339, %pred.store.continue338
  %159 = extractelement <16 x i1> %106, i64 2
  br i1 %159, label %pred.store.if341, label %pred.store.continue342

pred.store.if341:                                 ; preds = %pred.store.continue340
  %160 = or disjoint i64 %index, 18
  %161 = getelementptr inbounds %struct._FlConn, ptr %87, i64 %160, i32 16
  store i8 1, ptr %161, align 4, !tbaa !18, !alias.scope !33, !noalias !30
  br label %pred.store.continue342

pred.store.continue342:                           ; preds = %pred.store.if341, %pred.store.continue340
  %162 = extractelement <16 x i1> %106, i64 3
  br i1 %162, label %pred.store.if343, label %pred.store.continue344

pred.store.if343:                                 ; preds = %pred.store.continue342
  %163 = or disjoint i64 %index, 19
  %164 = getelementptr inbounds %struct._FlConn, ptr %87, i64 %163, i32 16
  store i8 1, ptr %164, align 4, !tbaa !18, !alias.scope !33, !noalias !30
  br label %pred.store.continue344

pred.store.continue344:                           ; preds = %pred.store.if343, %pred.store.continue342
  %165 = extractelement <16 x i1> %106, i64 4
  br i1 %165, label %pred.store.if345, label %pred.store.continue346

pred.store.if345:                                 ; preds = %pred.store.continue344
  %166 = or disjoint i64 %index, 20
  %167 = getelementptr inbounds %struct._FlConn, ptr %87, i64 %166, i32 16
  store i8 1, ptr %167, align 4, !tbaa !18, !alias.scope !33, !noalias !30
  br label %pred.store.continue346

pred.store.continue346:                           ; preds = %pred.store.if345, %pred.store.continue344
  %168 = extractelement <16 x i1> %106, i64 5
  br i1 %168, label %pred.store.if347, label %pred.store.continue348

pred.store.if347:                                 ; preds = %pred.store.continue346
  %169 = or disjoint i64 %index, 21
  %170 = getelementptr inbounds %struct._FlConn, ptr %87, i64 %169, i32 16
  store i8 1, ptr %170, align 4, !tbaa !18, !alias.scope !33, !noalias !30
  br label %pred.store.continue348

pred.store.continue348:                           ; preds = %pred.store.if347, %pred.store.continue346
  %171 = extractelement <16 x i1> %106, i64 6
  br i1 %171, label %pred.store.if349, label %pred.store.continue350

pred.store.if349:                                 ; preds = %pred.store.continue348
  %172 = or disjoint i64 %index, 22
  %173 = getelementptr inbounds %struct._FlConn, ptr %87, i64 %172, i32 16
  store i8 1, ptr %173, align 4, !tbaa !18, !alias.scope !33, !noalias !30
  br label %pred.store.continue350

pred.store.continue350:                           ; preds = %pred.store.if349, %pred.store.continue348
  %174 = extractelement <16 x i1> %106, i64 7
  br i1 %174, label %pred.store.if351, label %pred.store.continue352

pred.store.if351:                                 ; preds = %pred.store.continue350
  %175 = or disjoint i64 %index, 23
  %176 = getelementptr inbounds %struct._FlConn, ptr %87, i64 %175, i32 16
  store i8 1, ptr %176, align 4, !tbaa !18, !alias.scope !33, !noalias !30
  br label %pred.store.continue352

pred.store.continue352:                           ; preds = %pred.store.if351, %pred.store.continue350
  %177 = extractelement <16 x i1> %106, i64 8
  br i1 %177, label %pred.store.if353, label %pred.store.continue354

pred.store.if353:                                 ; preds = %pred.store.continue352
  %178 = or disjoint i64 %index, 24
  %179 = getelementptr inbounds %struct._FlConn, ptr %87, i64 %178, i32 16
  store i8 1, ptr %179, align 4, !tbaa !18, !alias.scope !33, !noalias !30
  br label %pred.store.continue354

pred.store.continue354:                           ; preds = %pred.store.if353, %pred.store.continue352
  %180 = extractelement <16 x i1> %106, i64 9
  br i1 %180, label %pred.store.if355, label %pred.store.continue356

pred.store.if355:                                 ; preds = %pred.store.continue354
  %181 = or disjoint i64 %index, 25
  %182 = getelementptr inbounds %struct._FlConn, ptr %87, i64 %181, i32 16
  store i8 1, ptr %182, align 4, !tbaa !18, !alias.scope !33, !noalias !30
  br label %pred.store.continue356

pred.store.continue356:                           ; preds = %pred.store.if355, %pred.store.continue354
  %183 = extractelement <16 x i1> %106, i64 10
  br i1 %183, label %pred.store.if357, label %pred.store.continue358

pred.store.if357:                                 ; preds = %pred.store.continue356
  %184 = or disjoint i64 %index, 26
  %185 = getelementptr inbounds %struct._FlConn, ptr %87, i64 %184, i32 16
  store i8 1, ptr %185, align 4, !tbaa !18, !alias.scope !33, !noalias !30
  br label %pred.store.continue358

pred.store.continue358:                           ; preds = %pred.store.if357, %pred.store.continue356
  %186 = extractelement <16 x i1> %106, i64 11
  br i1 %186, label %pred.store.if359, label %pred.store.continue360

pred.store.if359:                                 ; preds = %pred.store.continue358
  %187 = or disjoint i64 %index, 27
  %188 = getelementptr inbounds %struct._FlConn, ptr %87, i64 %187, i32 16
  store i8 1, ptr %188, align 4, !tbaa !18, !alias.scope !33, !noalias !30
  br label %pred.store.continue360

pred.store.continue360:                           ; preds = %pred.store.if359, %pred.store.continue358
  %189 = extractelement <16 x i1> %106, i64 12
  br i1 %189, label %pred.store.if361, label %pred.store.continue362

pred.store.if361:                                 ; preds = %pred.store.continue360
  %190 = or disjoint i64 %index, 28
  %191 = getelementptr inbounds %struct._FlConn, ptr %87, i64 %190, i32 16
  store i8 1, ptr %191, align 4, !tbaa !18, !alias.scope !33, !noalias !30
  br label %pred.store.continue362

pred.store.continue362:                           ; preds = %pred.store.if361, %pred.store.continue360
  %192 = extractelement <16 x i1> %106, i64 13
  br i1 %192, label %pred.store.if363, label %pred.store.continue364

pred.store.if363:                                 ; preds = %pred.store.continue362
  %193 = or disjoint i64 %index, 29
  %194 = getelementptr inbounds %struct._FlConn, ptr %87, i64 %193, i32 16
  store i8 1, ptr %194, align 4, !tbaa !18, !alias.scope !33, !noalias !30
  br label %pred.store.continue364

pred.store.continue364:                           ; preds = %pred.store.if363, %pred.store.continue362
  %195 = extractelement <16 x i1> %106, i64 14
  br i1 %195, label %pred.store.if365, label %pred.store.continue366

pred.store.if365:                                 ; preds = %pred.store.continue364
  %196 = or disjoint i64 %index, 30
  %197 = getelementptr inbounds %struct._FlConn, ptr %87, i64 %196, i32 16
  store i8 1, ptr %197, align 4, !tbaa !18, !alias.scope !33, !noalias !30
  br label %pred.store.continue366

pred.store.continue366:                           ; preds = %pred.store.if365, %pred.store.continue364
  %198 = extractelement <16 x i1> %106, i64 15
  br i1 %198, label %pred.store.if367, label %pred.store.continue368

pred.store.if367:                                 ; preds = %pred.store.continue366
  %199 = or disjoint i64 %index, 31
  %200 = getelementptr inbounds %struct._FlConn, ptr %87, i64 %199, i32 16
  store i8 1, ptr %200, align 4, !tbaa !18, !alias.scope !33, !noalias !30
  br label %pred.store.continue368

pred.store.continue368:                           ; preds = %pred.store.if367, %pred.store.continue366
  %index.next = add nuw i64 %index, 32
  %201 = icmp eq i64 %index.next, %n.vec
  br i1 %201, label %middle.block, label %vector.body, !llvm.loop !35

middle.block:                                     ; preds = %pred.store.continue368
  br i1 %cmp.n, label %.loopexit107.us.us.us.us, label %vec.epilog.iter.check

vec.epilog.iter.check:                            ; preds = %middle.block
  br i1 %min.epilog.iters.check, label %vec.epilog.scalar.ph.preheader, label %vec.epilog.ph

vec.epilog.scalar.ph.preheader:                   ; preds = %vec.epilog.middle.block, %vector.memcheck, %iter.check, %vec.epilog.iter.check
  %indvars.iv238.ph = phi i64 [ 0, %iter.check ], [ 0, %vector.memcheck ], [ %n.vec, %vec.epilog.iter.check ], [ %n.vec370, %vec.epilog.middle.block ]
  br i1 %lcmp.mod761.not, label %vec.epilog.scalar.ph.prol.loopexit, label %vec.epilog.scalar.ph.prol

vec.epilog.scalar.ph.prol:                        ; preds = %vec.epilog.scalar.ph.preheader
  %202 = getelementptr inbounds i8, ptr %101, i64 %indvars.iv238.ph
  %203 = load i8, ptr %202, align 1, !tbaa !11
  %.not98.us.us.us.us.prol = icmp eq i8 %203, 0
  br i1 %.not98.us.us.us.us.prol, label %vec.epilog.scalar.ph.prol.loopexit.unr-lcssa, label %204

204:                                              ; preds = %vec.epilog.scalar.ph.prol
  %205 = getelementptr inbounds %struct._FlConn, ptr %87, i64 %indvars.iv238.ph, i32 16
  store i8 1, ptr %205, align 4, !tbaa !18
  br label %vec.epilog.scalar.ph.prol.loopexit.unr-lcssa

vec.epilog.scalar.ph.prol.loopexit.unr-lcssa:     ; preds = %204, %vec.epilog.scalar.ph.prol
  %indvars.iv.next239.prol = or disjoint i64 %indvars.iv238.ph, 1
  br label %vec.epilog.scalar.ph.prol.loopexit

vec.epilog.scalar.ph.prol.loopexit:               ; preds = %vec.epilog.scalar.ph.prol.loopexit.unr-lcssa, %vec.epilog.scalar.ph.preheader
  %indvars.iv238.unr = phi i64 [ %indvars.iv238.ph, %vec.epilog.scalar.ph.preheader ], [ %indvars.iv.next239.prol, %vec.epilog.scalar.ph.prol.loopexit.unr-lcssa ]
  %206 = icmp eq i64 %indvars.iv238.ph, %80
  br i1 %206, label %.loopexit107.us.us.us.us, label %vec.epilog.scalar.ph

vec.epilog.ph:                                    ; preds = %vector.main.loop.iter.check, %vec.epilog.iter.check
  %vec.epilog.resume.val = phi i64 [ %n.vec, %vec.epilog.iter.check ], [ 0, %vector.main.loop.iter.check ]
  br label %vec.epilog.vector.body

vec.epilog.vector.body:                           ; preds = %pred.store.continue388, %vec.epilog.ph
  %index371 = phi i64 [ %vec.epilog.resume.val, %vec.epilog.ph ], [ %index.next389, %pred.store.continue388 ]
  %207 = getelementptr inbounds i8, ptr %101, i64 %index371
  %wide.load372 = load <8 x i8>, ptr %207, align 1, !tbaa !11, !alias.scope !38
  %208 = icmp ne <8 x i8> %wide.load372, zeroinitializer
  %209 = extractelement <8 x i1> %208, i64 0
  br i1 %209, label %pred.store.if373, label %pred.store.continue374

pred.store.if373:                                 ; preds = %vec.epilog.vector.body
  %210 = getelementptr inbounds %struct._FlConn, ptr %87, i64 %index371, i32 16
  store i8 1, ptr %210, align 4, !tbaa !18, !alias.scope !41, !noalias !38
  br label %pred.store.continue374

pred.store.continue374:                           ; preds = %pred.store.if373, %vec.epilog.vector.body
  %211 = extractelement <8 x i1> %208, i64 1
  br i1 %211, label %pred.store.if375, label %pred.store.continue376

pred.store.if375:                                 ; preds = %pred.store.continue374
  %212 = or disjoint i64 %index371, 1
  %213 = getelementptr inbounds %struct._FlConn, ptr %87, i64 %212, i32 16
  store i8 1, ptr %213, align 4, !tbaa !18, !alias.scope !41, !noalias !38
  br label %pred.store.continue376

pred.store.continue376:                           ; preds = %pred.store.if375, %pred.store.continue374
  %214 = extractelement <8 x i1> %208, i64 2
  br i1 %214, label %pred.store.if377, label %pred.store.continue378

pred.store.if377:                                 ; preds = %pred.store.continue376
  %215 = or disjoint i64 %index371, 2
  %216 = getelementptr inbounds %struct._FlConn, ptr %87, i64 %215, i32 16
  store i8 1, ptr %216, align 4, !tbaa !18, !alias.scope !41, !noalias !38
  br label %pred.store.continue378

pred.store.continue378:                           ; preds = %pred.store.if377, %pred.store.continue376
  %217 = extractelement <8 x i1> %208, i64 3
  br i1 %217, label %pred.store.if379, label %pred.store.continue380

pred.store.if379:                                 ; preds = %pred.store.continue378
  %218 = or disjoint i64 %index371, 3
  %219 = getelementptr inbounds %struct._FlConn, ptr %87, i64 %218, i32 16
  store i8 1, ptr %219, align 4, !tbaa !18, !alias.scope !41, !noalias !38
  br label %pred.store.continue380

pred.store.continue380:                           ; preds = %pred.store.if379, %pred.store.continue378
  %220 = extractelement <8 x i1> %208, i64 4
  br i1 %220, label %pred.store.if381, label %pred.store.continue382

pred.store.if381:                                 ; preds = %pred.store.continue380
  %221 = or disjoint i64 %index371, 4
  %222 = getelementptr inbounds %struct._FlConn, ptr %87, i64 %221, i32 16
  store i8 1, ptr %222, align 4, !tbaa !18, !alias.scope !41, !noalias !38
  br label %pred.store.continue382

pred.store.continue382:                           ; preds = %pred.store.if381, %pred.store.continue380
  %223 = extractelement <8 x i1> %208, i64 5
  br i1 %223, label %pred.store.if383, label %pred.store.continue384

pred.store.if383:                                 ; preds = %pred.store.continue382
  %224 = or disjoint i64 %index371, 5
  %225 = getelementptr inbounds %struct._FlConn, ptr %87, i64 %224, i32 16
  store i8 1, ptr %225, align 4, !tbaa !18, !alias.scope !41, !noalias !38
  br label %pred.store.continue384

pred.store.continue384:                           ; preds = %pred.store.if383, %pred.store.continue382
  %226 = extractelement <8 x i1> %208, i64 6
  br i1 %226, label %pred.store.if385, label %pred.store.continue386

pred.store.if385:                                 ; preds = %pred.store.continue384
  %227 = or disjoint i64 %index371, 6
  %228 = getelementptr inbounds %struct._FlConn, ptr %87, i64 %227, i32 16
  store i8 1, ptr %228, align 4, !tbaa !18, !alias.scope !41, !noalias !38
  br label %pred.store.continue386

pred.store.continue386:                           ; preds = %pred.store.if385, %pred.store.continue384
  %229 = extractelement <8 x i1> %208, i64 7
  br i1 %229, label %pred.store.if387, label %pred.store.continue388

pred.store.if387:                                 ; preds = %pred.store.continue386
  %230 = or disjoint i64 %index371, 7
  %231 = getelementptr inbounds %struct._FlConn, ptr %87, i64 %230, i32 16
  store i8 1, ptr %231, align 4, !tbaa !18, !alias.scope !41, !noalias !38
  br label %pred.store.continue388

pred.store.continue388:                           ; preds = %pred.store.if387, %pred.store.continue386
  %index.next389 = add nuw i64 %index371, 8
  %232 = icmp eq i64 %index.next389, %n.vec370
  br i1 %232, label %vec.epilog.middle.block, label %vec.epilog.vector.body, !llvm.loop !43

vec.epilog.middle.block:                          ; preds = %pred.store.continue388
  br i1 %cmp.n390, label %.loopexit107.us.us.us.us, label %vec.epilog.scalar.ph.preheader

.loopexit107.us.us.us.us:                         ; preds = %._crit_edge132.us.us.us.us.us, %vec.epilog.scalar.ph.prol.loopexit, %241, %middle.block, %vec.epilog.middle.block, %.preheader106.us.us.us.us
  %indvars.iv.next244 = add nuw nsw i64 %indvars.iv243, 1
  %exitcond247.not = icmp eq i64 %indvars.iv.next244, %wide.trip.count246
  br i1 %exitcond247.not, label %._crit_edge140.split.us.us.split.us.us, label %90, !llvm.loop !44

vec.epilog.scalar.ph:                             ; preds = %vec.epilog.scalar.ph.prol.loopexit, %241
  %indvars.iv238 = phi i64 [ %indvars.iv.next239.1, %241 ], [ %indvars.iv238.unr, %vec.epilog.scalar.ph.prol.loopexit ]
  %233 = getelementptr inbounds i8, ptr %101, i64 %indvars.iv238
  %234 = load i8, ptr %233, align 1, !tbaa !11
  %.not98.us.us.us.us = icmp eq i8 %234, 0
  br i1 %.not98.us.us.us.us, label %vec.epilog.scalar.ph.1, label %235

235:                                              ; preds = %vec.epilog.scalar.ph
  %236 = getelementptr inbounds %struct._FlConn, ptr %87, i64 %indvars.iv238, i32 16
  store i8 1, ptr %236, align 4, !tbaa !18
  br label %vec.epilog.scalar.ph.1

vec.epilog.scalar.ph.1:                           ; preds = %235, %vec.epilog.scalar.ph
  %indvars.iv.next239 = add nuw nsw i64 %indvars.iv238, 1
  %237 = getelementptr inbounds i8, ptr %101, i64 %indvars.iv.next239
  %238 = load i8, ptr %237, align 1, !tbaa !11
  %.not98.us.us.us.us.1 = icmp eq i8 %238, 0
  br i1 %.not98.us.us.us.us.1, label %241, label %239

239:                                              ; preds = %vec.epilog.scalar.ph.1
  %240 = getelementptr inbounds %struct._FlConn, ptr %87, i64 %indvars.iv.next239, i32 16
  store i8 1, ptr %240, align 4, !tbaa !18
  br label %241

241:                                              ; preds = %239, %vec.epilog.scalar.ph.1
  %indvars.iv.next239.1 = add nuw nsw i64 %indvars.iv238, 2
  %exitcond242.not.1 = icmp eq i64 %indvars.iv.next239.1, %wide.trip.count241
  br i1 %exitcond242.not.1, label %.loopexit107.us.us.us.us, label %vec.epilog.scalar.ph, !llvm.loop !45

.preheader106.us.us.us.us:                        ; preds = %94
  %242 = getelementptr inbounds i8, ptr %96, i64 96
  %243 = load i32, ptr %242, align 8, !tbaa !46
  %244 = icmp sgt i32 %243, 0
  br i1 %244, label %.lr.ph134.us.us.us.us, label %.loopexit107.us.us.us.us

.lr.ph134.us.us.us.us:                            ; preds = %.preheader106.us.us.us.us
  %245 = getelementptr inbounds i8, ptr %96, i64 80
  %246 = load ptr, ptr %245, align 8, !tbaa !47
  %wide.trip.count236 = zext nneg i32 %243 to i64
  br label %iter.check400

iter.check400:                                    ; preds = %._crit_edge132.us.us.us.us.us, %.lr.ph134.us.us.us.us
  %indvars.iv233 = phi i64 [ %indvars.iv.next234, %._crit_edge132.us.us.us.us.us ], [ 0, %.lr.ph134.us.us.us.us ]
  %247 = getelementptr inbounds i32, ptr %246, i64 %indvars.iv233
  %248 = load i32, ptr %247, align 4, !tbaa !24
  %249 = sext i32 %248 to i64
  %250 = getelementptr inbounds %struct._FlConn, ptr %87, i64 %249, i32 16
  store i8 1, ptr %250, align 4, !tbaa !18
  %251 = getelementptr inbounds ptr, ptr %3, i64 %249
  %252 = load ptr, ptr %251, align 8, !tbaa !5
  br i1 %min.iters.check398, label %vec.epilog.scalar.ph477.preheader, label %vector.memcheck391

vector.memcheck391:                               ; preds = %iter.check400
  %scevgep393 = getelementptr i8, ptr %252, i64 %wide.trip.count186
  %bound0394 = icmp ult ptr %scevgep, %scevgep393
  %bound1395 = icmp ult ptr %252, %scevgep392
  %found.conflict396 = and i1 %bound0394, %bound1395
  br i1 %found.conflict396, label %vec.epilog.scalar.ph477.preheader, label %vector.main.loop.iter.check402

vector.main.loop.iter.check402:                   ; preds = %vector.memcheck391
  br i1 %min.iters.check401, label %vec.epilog.ph478, label %vector.body406

vector.body406:                                   ; preds = %vector.main.loop.iter.check402, %pred.store.continue473
  %index407 = phi i64 [ %index.next474, %pred.store.continue473 ], [ 0, %vector.main.loop.iter.check402 ]
  %253 = or disjoint i64 %index407, 16
  %254 = getelementptr inbounds i8, ptr %252, i64 %index407
  %255 = getelementptr inbounds i8, ptr %254, i64 16
  %wide.load408 = load <16 x i8>, ptr %254, align 1, !tbaa !11, !alias.scope !48
  %wide.load409 = load <16 x i8>, ptr %255, align 1, !tbaa !11, !alias.scope !48
  %256 = icmp ne <16 x i8> %wide.load408, zeroinitializer
  %257 = icmp ne <16 x i8> %wide.load409, zeroinitializer
  %258 = extractelement <16 x i1> %256, i64 0
  br i1 %258, label %pred.store.if410, label %pred.store.continue411

pred.store.if410:                                 ; preds = %vector.body406
  %259 = getelementptr inbounds %struct._FlConn, ptr %87, i64 %index407, i32 16
  store i8 1, ptr %259, align 4, !tbaa !18, !alias.scope !51, !noalias !48
  br label %pred.store.continue411

pred.store.continue411:                           ; preds = %pred.store.if410, %vector.body406
  %260 = extractelement <16 x i1> %256, i64 1
  br i1 %260, label %pred.store.if412, label %pred.store.continue413

pred.store.if412:                                 ; preds = %pred.store.continue411
  %261 = or disjoint i64 %index407, 1
  %262 = getelementptr inbounds %struct._FlConn, ptr %87, i64 %261, i32 16
  store i8 1, ptr %262, align 4, !tbaa !18, !alias.scope !51, !noalias !48
  br label %pred.store.continue413

pred.store.continue413:                           ; preds = %pred.store.if412, %pred.store.continue411
  %263 = extractelement <16 x i1> %256, i64 2
  br i1 %263, label %pred.store.if414, label %pred.store.continue415

pred.store.if414:                                 ; preds = %pred.store.continue413
  %264 = or disjoint i64 %index407, 2
  %265 = getelementptr inbounds %struct._FlConn, ptr %87, i64 %264, i32 16
  store i8 1, ptr %265, align 4, !tbaa !18, !alias.scope !51, !noalias !48
  br label %pred.store.continue415

pred.store.continue415:                           ; preds = %pred.store.if414, %pred.store.continue413
  %266 = extractelement <16 x i1> %256, i64 3
  br i1 %266, label %pred.store.if416, label %pred.store.continue417

pred.store.if416:                                 ; preds = %pred.store.continue415
  %267 = or disjoint i64 %index407, 3
  %268 = getelementptr inbounds %struct._FlConn, ptr %87, i64 %267, i32 16
  store i8 1, ptr %268, align 4, !tbaa !18, !alias.scope !51, !noalias !48
  br label %pred.store.continue417

pred.store.continue417:                           ; preds = %pred.store.if416, %pred.store.continue415
  %269 = extractelement <16 x i1> %256, i64 4
  br i1 %269, label %pred.store.if418, label %pred.store.continue419

pred.store.if418:                                 ; preds = %pred.store.continue417
  %270 = or disjoint i64 %index407, 4
  %271 = getelementptr inbounds %struct._FlConn, ptr %87, i64 %270, i32 16
  store i8 1, ptr %271, align 4, !tbaa !18, !alias.scope !51, !noalias !48
  br label %pred.store.continue419

pred.store.continue419:                           ; preds = %pred.store.if418, %pred.store.continue417
  %272 = extractelement <16 x i1> %256, i64 5
  br i1 %272, label %pred.store.if420, label %pred.store.continue421

pred.store.if420:                                 ; preds = %pred.store.continue419
  %273 = or disjoint i64 %index407, 5
  %274 = getelementptr inbounds %struct._FlConn, ptr %87, i64 %273, i32 16
  store i8 1, ptr %274, align 4, !tbaa !18, !alias.scope !51, !noalias !48
  br label %pred.store.continue421

pred.store.continue421:                           ; preds = %pred.store.if420, %pred.store.continue419
  %275 = extractelement <16 x i1> %256, i64 6
  br i1 %275, label %pred.store.if422, label %pred.store.continue423

pred.store.if422:                                 ; preds = %pred.store.continue421
  %276 = or disjoint i64 %index407, 6
  %277 = getelementptr inbounds %struct._FlConn, ptr %87, i64 %276, i32 16
  store i8 1, ptr %277, align 4, !tbaa !18, !alias.scope !51, !noalias !48
  br label %pred.store.continue423

pred.store.continue423:                           ; preds = %pred.store.if422, %pred.store.continue421
  %278 = extractelement <16 x i1> %256, i64 7
  br i1 %278, label %pred.store.if424, label %pred.store.continue425

pred.store.if424:                                 ; preds = %pred.store.continue423
  %279 = or disjoint i64 %index407, 7
  %280 = getelementptr inbounds %struct._FlConn, ptr %87, i64 %279, i32 16
  store i8 1, ptr %280, align 4, !tbaa !18, !alias.scope !51, !noalias !48
  br label %pred.store.continue425

pred.store.continue425:                           ; preds = %pred.store.if424, %pred.store.continue423
  %281 = extractelement <16 x i1> %256, i64 8
  br i1 %281, label %pred.store.if426, label %pred.store.continue427

pred.store.if426:                                 ; preds = %pred.store.continue425
  %282 = or disjoint i64 %index407, 8
  %283 = getelementptr inbounds %struct._FlConn, ptr %87, i64 %282, i32 16
  store i8 1, ptr %283, align 4, !tbaa !18, !alias.scope !51, !noalias !48
  br label %pred.store.continue427

pred.store.continue427:                           ; preds = %pred.store.if426, %pred.store.continue425
  %284 = extractelement <16 x i1> %256, i64 9
  br i1 %284, label %pred.store.if428, label %pred.store.continue429

pred.store.if428:                                 ; preds = %pred.store.continue427
  %285 = or disjoint i64 %index407, 9
  %286 = getelementptr inbounds %struct._FlConn, ptr %87, i64 %285, i32 16
  store i8 1, ptr %286, align 4, !tbaa !18, !alias.scope !51, !noalias !48
  br label %pred.store.continue429

pred.store.continue429:                           ; preds = %pred.store.if428, %pred.store.continue427
  %287 = extractelement <16 x i1> %256, i64 10
  br i1 %287, label %pred.store.if430, label %pred.store.continue431

pred.store.if430:                                 ; preds = %pred.store.continue429
  %288 = or disjoint i64 %index407, 10
  %289 = getelementptr inbounds %struct._FlConn, ptr %87, i64 %288, i32 16
  store i8 1, ptr %289, align 4, !tbaa !18, !alias.scope !51, !noalias !48
  br label %pred.store.continue431

pred.store.continue431:                           ; preds = %pred.store.if430, %pred.store.continue429
  %290 = extractelement <16 x i1> %256, i64 11
  br i1 %290, label %pred.store.if432, label %pred.store.continue433

pred.store.if432:                                 ; preds = %pred.store.continue431
  %291 = or disjoint i64 %index407, 11
  %292 = getelementptr inbounds %struct._FlConn, ptr %87, i64 %291, i32 16
  store i8 1, ptr %292, align 4, !tbaa !18, !alias.scope !51, !noalias !48
  br label %pred.store.continue433

pred.store.continue433:                           ; preds = %pred.store.if432, %pred.store.continue431
  %293 = extractelement <16 x i1> %256, i64 12
  br i1 %293, label %pred.store.if434, label %pred.store.continue435

pred.store.if434:                                 ; preds = %pred.store.continue433
  %294 = or disjoint i64 %index407, 12
  %295 = getelementptr inbounds %struct._FlConn, ptr %87, i64 %294, i32 16
  store i8 1, ptr %295, align 4, !tbaa !18, !alias.scope !51, !noalias !48
  br label %pred.store.continue435

pred.store.continue435:                           ; preds = %pred.store.if434, %pred.store.continue433
  %296 = extractelement <16 x i1> %256, i64 13
  br i1 %296, label %pred.store.if436, label %pred.store.continue437

pred.store.if436:                                 ; preds = %pred.store.continue435
  %297 = or disjoint i64 %index407, 13
  %298 = getelementptr inbounds %struct._FlConn, ptr %87, i64 %297, i32 16
  store i8 1, ptr %298, align 4, !tbaa !18, !alias.scope !51, !noalias !48
  br label %pred.store.continue437

pred.store.continue437:                           ; preds = %pred.store.if436, %pred.store.continue435
  %299 = extractelement <16 x i1> %256, i64 14
  br i1 %299, label %pred.store.if438, label %pred.store.continue439

pred.store.if438:                                 ; preds = %pred.store.continue437
  %300 = or disjoint i64 %index407, 14
  %301 = getelementptr inbounds %struct._FlConn, ptr %87, i64 %300, i32 16
  store i8 1, ptr %301, align 4, !tbaa !18, !alias.scope !51, !noalias !48
  br label %pred.store.continue439

pred.store.continue439:                           ; preds = %pred.store.if438, %pred.store.continue437
  %302 = extractelement <16 x i1> %256, i64 15
  br i1 %302, label %pred.store.if440, label %pred.store.continue441

pred.store.if440:                                 ; preds = %pred.store.continue439
  %303 = or disjoint i64 %index407, 15
  %304 = getelementptr inbounds %struct._FlConn, ptr %87, i64 %303, i32 16
  store i8 1, ptr %304, align 4, !tbaa !18, !alias.scope !51, !noalias !48
  br label %pred.store.continue441

pred.store.continue441:                           ; preds = %pred.store.if440, %pred.store.continue439
  %305 = extractelement <16 x i1> %257, i64 0
  br i1 %305, label %pred.store.if442, label %pred.store.continue443

pred.store.if442:                                 ; preds = %pred.store.continue441
  %306 = getelementptr inbounds %struct._FlConn, ptr %87, i64 %253, i32 16
  store i8 1, ptr %306, align 4, !tbaa !18, !alias.scope !51, !noalias !48
  br label %pred.store.continue443

pred.store.continue443:                           ; preds = %pred.store.if442, %pred.store.continue441
  %307 = extractelement <16 x i1> %257, i64 1
  br i1 %307, label %pred.store.if444, label %pred.store.continue445

pred.store.if444:                                 ; preds = %pred.store.continue443
  %308 = or disjoint i64 %index407, 17
  %309 = getelementptr inbounds %struct._FlConn, ptr %87, i64 %308, i32 16
  store i8 1, ptr %309, align 4, !tbaa !18, !alias.scope !51, !noalias !48
  br label %pred.store.continue445

pred.store.continue445:                           ; preds = %pred.store.if444, %pred.store.continue443
  %310 = extractelement <16 x i1> %257, i64 2
  br i1 %310, label %pred.store.if446, label %pred.store.continue447

pred.store.if446:                                 ; preds = %pred.store.continue445
  %311 = or disjoint i64 %index407, 18
  %312 = getelementptr inbounds %struct._FlConn, ptr %87, i64 %311, i32 16
  store i8 1, ptr %312, align 4, !tbaa !18, !alias.scope !51, !noalias !48
  br label %pred.store.continue447

pred.store.continue447:                           ; preds = %pred.store.if446, %pred.store.continue445
  %313 = extractelement <16 x i1> %257, i64 3
  br i1 %313, label %pred.store.if448, label %pred.store.continue449

pred.store.if448:                                 ; preds = %pred.store.continue447
  %314 = or disjoint i64 %index407, 19
  %315 = getelementptr inbounds %struct._FlConn, ptr %87, i64 %314, i32 16
  store i8 1, ptr %315, align 4, !tbaa !18, !alias.scope !51, !noalias !48
  br label %pred.store.continue449

pred.store.continue449:                           ; preds = %pred.store.if448, %pred.store.continue447
  %316 = extractelement <16 x i1> %257, i64 4
  br i1 %316, label %pred.store.if450, label %pred.store.continue451

pred.store.if450:                                 ; preds = %pred.store.continue449
  %317 = or disjoint i64 %index407, 20
  %318 = getelementptr inbounds %struct._FlConn, ptr %87, i64 %317, i32 16
  store i8 1, ptr %318, align 4, !tbaa !18, !alias.scope !51, !noalias !48
  br label %pred.store.continue451

pred.store.continue451:                           ; preds = %pred.store.if450, %pred.store.continue449
  %319 = extractelement <16 x i1> %257, i64 5
  br i1 %319, label %pred.store.if452, label %pred.store.continue453

pred.store.if452:                                 ; preds = %pred.store.continue451
  %320 = or disjoint i64 %index407, 21
  %321 = getelementptr inbounds %struct._FlConn, ptr %87, i64 %320, i32 16
  store i8 1, ptr %321, align 4, !tbaa !18, !alias.scope !51, !noalias !48
  br label %pred.store.continue453

pred.store.continue453:                           ; preds = %pred.store.if452, %pred.store.continue451
  %322 = extractelement <16 x i1> %257, i64 6
  br i1 %322, label %pred.store.if454, label %pred.store.continue455

pred.store.if454:                                 ; preds = %pred.store.continue453
  %323 = or disjoint i64 %index407, 22
  %324 = getelementptr inbounds %struct._FlConn, ptr %87, i64 %323, i32 16
  store i8 1, ptr %324, align 4, !tbaa !18, !alias.scope !51, !noalias !48
  br label %pred.store.continue455

pred.store.continue455:                           ; preds = %pred.store.if454, %pred.store.continue453
  %325 = extractelement <16 x i1> %257, i64 7
  br i1 %325, label %pred.store.if456, label %pred.store.continue457

pred.store.if456:                                 ; preds = %pred.store.continue455
  %326 = or disjoint i64 %index407, 23
  %327 = getelementptr inbounds %struct._FlConn, ptr %87, i64 %326, i32 16
  store i8 1, ptr %327, align 4, !tbaa !18, !alias.scope !51, !noalias !48
  br label %pred.store.continue457

pred.store.continue457:                           ; preds = %pred.store.if456, %pred.store.continue455
  %328 = extractelement <16 x i1> %257, i64 8
  br i1 %328, label %pred.store.if458, label %pred.store.continue459

pred.store.if458:                                 ; preds = %pred.store.continue457
  %329 = or disjoint i64 %index407, 24
  %330 = getelementptr inbounds %struct._FlConn, ptr %87, i64 %329, i32 16
  store i8 1, ptr %330, align 4, !tbaa !18, !alias.scope !51, !noalias !48
  br label %pred.store.continue459

pred.store.continue459:                           ; preds = %pred.store.if458, %pred.store.continue457
  %331 = extractelement <16 x i1> %257, i64 9
  br i1 %331, label %pred.store.if460, label %pred.store.continue461

pred.store.if460:                                 ; preds = %pred.store.continue459
  %332 = or disjoint i64 %index407, 25
  %333 = getelementptr inbounds %struct._FlConn, ptr %87, i64 %332, i32 16
  store i8 1, ptr %333, align 4, !tbaa !18, !alias.scope !51, !noalias !48
  br label %pred.store.continue461

pred.store.continue461:                           ; preds = %pred.store.if460, %pred.store.continue459
  %334 = extractelement <16 x i1> %257, i64 10
  br i1 %334, label %pred.store.if462, label %pred.store.continue463

pred.store.if462:                                 ; preds = %pred.store.continue461
  %335 = or disjoint i64 %index407, 26
  %336 = getelementptr inbounds %struct._FlConn, ptr %87, i64 %335, i32 16
  store i8 1, ptr %336, align 4, !tbaa !18, !alias.scope !51, !noalias !48
  br label %pred.store.continue463

pred.store.continue463:                           ; preds = %pred.store.if462, %pred.store.continue461
  %337 = extractelement <16 x i1> %257, i64 11
  br i1 %337, label %pred.store.if464, label %pred.store.continue465

pred.store.if464:                                 ; preds = %pred.store.continue463
  %338 = or disjoint i64 %index407, 27
  %339 = getelementptr inbounds %struct._FlConn, ptr %87, i64 %338, i32 16
  store i8 1, ptr %339, align 4, !tbaa !18, !alias.scope !51, !noalias !48
  br label %pred.store.continue465

pred.store.continue465:                           ; preds = %pred.store.if464, %pred.store.continue463
  %340 = extractelement <16 x i1> %257, i64 12
  br i1 %340, label %pred.store.if466, label %pred.store.continue467

pred.store.if466:                                 ; preds = %pred.store.continue465
  %341 = or disjoint i64 %index407, 28
  %342 = getelementptr inbounds %struct._FlConn, ptr %87, i64 %341, i32 16
  store i8 1, ptr %342, align 4, !tbaa !18, !alias.scope !51, !noalias !48
  br label %pred.store.continue467

pred.store.continue467:                           ; preds = %pred.store.if466, %pred.store.continue465
  %343 = extractelement <16 x i1> %257, i64 13
  br i1 %343, label %pred.store.if468, label %pred.store.continue469

pred.store.if468:                                 ; preds = %pred.store.continue467
  %344 = or disjoint i64 %index407, 29
  %345 = getelementptr inbounds %struct._FlConn, ptr %87, i64 %344, i32 16
  store i8 1, ptr %345, align 4, !tbaa !18, !alias.scope !51, !noalias !48
  br label %pred.store.continue469

pred.store.continue469:                           ; preds = %pred.store.if468, %pred.store.continue467
  %346 = extractelement <16 x i1> %257, i64 14
  br i1 %346, label %pred.store.if470, label %pred.store.continue471

pred.store.if470:                                 ; preds = %pred.store.continue469
  %347 = or disjoint i64 %index407, 30
  %348 = getelementptr inbounds %struct._FlConn, ptr %87, i64 %347, i32 16
  store i8 1, ptr %348, align 4, !tbaa !18, !alias.scope !51, !noalias !48
  br label %pred.store.continue471

pred.store.continue471:                           ; preds = %pred.store.if470, %pred.store.continue469
  %349 = extractelement <16 x i1> %257, i64 15
  br i1 %349, label %pred.store.if472, label %pred.store.continue473

pred.store.if472:                                 ; preds = %pred.store.continue471
  %350 = or disjoint i64 %index407, 31
  %351 = getelementptr inbounds %struct._FlConn, ptr %87, i64 %350, i32 16
  store i8 1, ptr %351, align 4, !tbaa !18, !alias.scope !51, !noalias !48
  br label %pred.store.continue473

pred.store.continue473:                           ; preds = %pred.store.if472, %pred.store.continue471
  %index.next474 = add nuw i64 %index407, 32
  %352 = icmp eq i64 %index.next474, %n.vec405
  br i1 %352, label %middle.block397, label %vector.body406, !llvm.loop !53

middle.block397:                                  ; preds = %pred.store.continue473
  br i1 %cmp.n475, label %._crit_edge132.us.us.us.us.us, label %vec.epilog.iter.check479

vec.epilog.iter.check479:                         ; preds = %middle.block397
  br i1 %min.epilog.iters.check481, label %vec.epilog.scalar.ph477.preheader, label %vec.epilog.ph478

vec.epilog.ph478:                                 ; preds = %vector.main.loop.iter.check402, %vec.epilog.iter.check479
  %vec.epilog.resume.val482 = phi i64 [ %n.vec405, %vec.epilog.iter.check479 ], [ 0, %vector.main.loop.iter.check402 ]
  br label %vec.epilog.vector.body486

vec.epilog.vector.body486:                        ; preds = %pred.store.continue504, %vec.epilog.ph478
  %index487 = phi i64 [ %vec.epilog.resume.val482, %vec.epilog.ph478 ], [ %index.next505, %pred.store.continue504 ]
  %353 = getelementptr inbounds i8, ptr %252, i64 %index487
  %wide.load488 = load <8 x i8>, ptr %353, align 1, !tbaa !11, !alias.scope !54
  %354 = icmp ne <8 x i8> %wide.load488, zeroinitializer
  %355 = extractelement <8 x i1> %354, i64 0
  br i1 %355, label %pred.store.if489, label %pred.store.continue490

pred.store.if489:                                 ; preds = %vec.epilog.vector.body486
  %356 = getelementptr inbounds %struct._FlConn, ptr %87, i64 %index487, i32 16
  store i8 1, ptr %356, align 4, !tbaa !18, !alias.scope !57, !noalias !54
  br label %pred.store.continue490

pred.store.continue490:                           ; preds = %pred.store.if489, %vec.epilog.vector.body486
  %357 = extractelement <8 x i1> %354, i64 1
  br i1 %357, label %pred.store.if491, label %pred.store.continue492

pred.store.if491:                                 ; preds = %pred.store.continue490
  %358 = or disjoint i64 %index487, 1
  %359 = getelementptr inbounds %struct._FlConn, ptr %87, i64 %358, i32 16
  store i8 1, ptr %359, align 4, !tbaa !18, !alias.scope !57, !noalias !54
  br label %pred.store.continue492

pred.store.continue492:                           ; preds = %pred.store.if491, %pred.store.continue490
  %360 = extractelement <8 x i1> %354, i64 2
  br i1 %360, label %pred.store.if493, label %pred.store.continue494

pred.store.if493:                                 ; preds = %pred.store.continue492
  %361 = or disjoint i64 %index487, 2
  %362 = getelementptr inbounds %struct._FlConn, ptr %87, i64 %361, i32 16
  store i8 1, ptr %362, align 4, !tbaa !18, !alias.scope !57, !noalias !54
  br label %pred.store.continue494

pred.store.continue494:                           ; preds = %pred.store.if493, %pred.store.continue492
  %363 = extractelement <8 x i1> %354, i64 3
  br i1 %363, label %pred.store.if495, label %pred.store.continue496

pred.store.if495:                                 ; preds = %pred.store.continue494
  %364 = or disjoint i64 %index487, 3
  %365 = getelementptr inbounds %struct._FlConn, ptr %87, i64 %364, i32 16
  store i8 1, ptr %365, align 4, !tbaa !18, !alias.scope !57, !noalias !54
  br label %pred.store.continue496

pred.store.continue496:                           ; preds = %pred.store.if495, %pred.store.continue494
  %366 = extractelement <8 x i1> %354, i64 4
  br i1 %366, label %pred.store.if497, label %pred.store.continue498

pred.store.if497:                                 ; preds = %pred.store.continue496
  %367 = or disjoint i64 %index487, 4
  %368 = getelementptr inbounds %struct._FlConn, ptr %87, i64 %367, i32 16
  store i8 1, ptr %368, align 4, !tbaa !18, !alias.scope !57, !noalias !54
  br label %pred.store.continue498

pred.store.continue498:                           ; preds = %pred.store.if497, %pred.store.continue496
  %369 = extractelement <8 x i1> %354, i64 5
  br i1 %369, label %pred.store.if499, label %pred.store.continue500

pred.store.if499:                                 ; preds = %pred.store.continue498
  %370 = or disjoint i64 %index487, 5
  %371 = getelementptr inbounds %struct._FlConn, ptr %87, i64 %370, i32 16
  store i8 1, ptr %371, align 4, !tbaa !18, !alias.scope !57, !noalias !54
  br label %pred.store.continue500

pred.store.continue500:                           ; preds = %pred.store.if499, %pred.store.continue498
  %372 = extractelement <8 x i1> %354, i64 6
  br i1 %372, label %pred.store.if501, label %pred.store.continue502

pred.store.if501:                                 ; preds = %pred.store.continue500
  %373 = or disjoint i64 %index487, 6
  %374 = getelementptr inbounds %struct._FlConn, ptr %87, i64 %373, i32 16
  store i8 1, ptr %374, align 4, !tbaa !18, !alias.scope !57, !noalias !54
  br label %pred.store.continue502

pred.store.continue502:                           ; preds = %pred.store.if501, %pred.store.continue500
  %375 = extractelement <8 x i1> %354, i64 7
  br i1 %375, label %pred.store.if503, label %pred.store.continue504

pred.store.if503:                                 ; preds = %pred.store.continue502
  %376 = or disjoint i64 %index487, 7
  %377 = getelementptr inbounds %struct._FlConn, ptr %87, i64 %376, i32 16
  store i8 1, ptr %377, align 4, !tbaa !18, !alias.scope !57, !noalias !54
  br label %pred.store.continue504

pred.store.continue504:                           ; preds = %pred.store.if503, %pred.store.continue502
  %index.next505 = add nuw i64 %index487, 8
  %378 = icmp eq i64 %index.next505, %n.vec484
  br i1 %378, label %vec.epilog.middle.block476, label %vec.epilog.vector.body486, !llvm.loop !59

vec.epilog.middle.block476:                       ; preds = %pred.store.continue504
  br i1 %cmp.n506, label %._crit_edge132.us.us.us.us.us, label %vec.epilog.scalar.ph477.preheader

vec.epilog.scalar.ph477.preheader:                ; preds = %vec.epilog.middle.block476, %vector.memcheck391, %iter.check400, %vec.epilog.iter.check479
  %indvars.iv228.ph = phi i64 [ 0, %iter.check400 ], [ 0, %vector.memcheck391 ], [ %n.vec405, %vec.epilog.iter.check479 ], [ %n.vec484, %vec.epilog.middle.block476 ]
  br i1 %lcmp.mod759.not, label %vec.epilog.scalar.ph477.prol.loopexit, label %vec.epilog.scalar.ph477.prol

vec.epilog.scalar.ph477.prol:                     ; preds = %vec.epilog.scalar.ph477.preheader
  %379 = getelementptr inbounds i8, ptr %252, i64 %indvars.iv228.ph
  %380 = load i8, ptr %379, align 1, !tbaa !11
  %.not99.us.us.us.us.us.prol = icmp eq i8 %380, 0
  br i1 %.not99.us.us.us.us.us.prol, label %vec.epilog.scalar.ph477.prol.loopexit.unr-lcssa, label %381

381:                                              ; preds = %vec.epilog.scalar.ph477.prol
  %382 = getelementptr inbounds %struct._FlConn, ptr %87, i64 %indvars.iv228.ph, i32 16
  store i8 1, ptr %382, align 4, !tbaa !18
  br label %vec.epilog.scalar.ph477.prol.loopexit.unr-lcssa

vec.epilog.scalar.ph477.prol.loopexit.unr-lcssa:  ; preds = %381, %vec.epilog.scalar.ph477.prol
  %indvars.iv.next229.prol = or disjoint i64 %indvars.iv228.ph, 1
  br label %vec.epilog.scalar.ph477.prol.loopexit

vec.epilog.scalar.ph477.prol.loopexit:            ; preds = %vec.epilog.scalar.ph477.prol.loopexit.unr-lcssa, %vec.epilog.scalar.ph477.preheader
  %indvars.iv228.unr = phi i64 [ %indvars.iv228.ph, %vec.epilog.scalar.ph477.preheader ], [ %indvars.iv.next229.prol, %vec.epilog.scalar.ph477.prol.loopexit.unr-lcssa ]
  %383 = icmp eq i64 %indvars.iv228.ph, %79
  br i1 %383, label %._crit_edge132.us.us.us.us.us, label %vec.epilog.scalar.ph477

vec.epilog.scalar.ph477:                          ; preds = %vec.epilog.scalar.ph477.prol.loopexit, %392
  %indvars.iv228 = phi i64 [ %indvars.iv.next229.1, %392 ], [ %indvars.iv228.unr, %vec.epilog.scalar.ph477.prol.loopexit ]
  %384 = getelementptr inbounds i8, ptr %252, i64 %indvars.iv228
  %385 = load i8, ptr %384, align 1, !tbaa !11
  %.not99.us.us.us.us.us = icmp eq i8 %385, 0
  br i1 %.not99.us.us.us.us.us, label %vec.epilog.scalar.ph477.1, label %386

386:                                              ; preds = %vec.epilog.scalar.ph477
  %387 = getelementptr inbounds %struct._FlConn, ptr %87, i64 %indvars.iv228, i32 16
  store i8 1, ptr %387, align 4, !tbaa !18
  br label %vec.epilog.scalar.ph477.1

vec.epilog.scalar.ph477.1:                        ; preds = %386, %vec.epilog.scalar.ph477
  %indvars.iv.next229 = add nuw nsw i64 %indvars.iv228, 1
  %388 = getelementptr inbounds i8, ptr %252, i64 %indvars.iv.next229
  %389 = load i8, ptr %388, align 1, !tbaa !11
  %.not99.us.us.us.us.us.1 = icmp eq i8 %389, 0
  br i1 %.not99.us.us.us.us.us.1, label %392, label %390

390:                                              ; preds = %vec.epilog.scalar.ph477.1
  %391 = getelementptr inbounds %struct._FlConn, ptr %87, i64 %indvars.iv.next229, i32 16
  store i8 1, ptr %391, align 4, !tbaa !18
  br label %392

392:                                              ; preds = %390, %vec.epilog.scalar.ph477.1
  %indvars.iv.next229.1 = add nuw nsw i64 %indvars.iv228, 2
  %exitcond232.not.1 = icmp eq i64 %indvars.iv.next229.1, %wide.trip.count231
  br i1 %exitcond232.not.1, label %._crit_edge132.us.us.us.us.us, label %vec.epilog.scalar.ph477, !llvm.loop !60

._crit_edge132.us.us.us.us.us:                    ; preds = %vec.epilog.scalar.ph477.prol.loopexit, %392, %vec.epilog.middle.block476, %middle.block397
  %indvars.iv.next234 = add nuw nsw i64 %indvars.iv233, 1
  %exitcond237.not = icmp eq i64 %indvars.iv.next234, %wide.trip.count236
  br i1 %exitcond237.not, label %.loopexit107.us.us.us.us, label %iter.check400, !llvm.loop !61

393:                                              ; preds = %393, %.lr.ph128.new
  %indvars.iv183 = phi i64 [ 0, %.lr.ph128.new ], [ %indvars.iv.next184.3, %393 ]
  %niter = phi i64 [ 0, %.lr.ph128.new ], [ %niter.next.3, %393 ]
  %394 = getelementptr inbounds %struct._FlConn, ptr %36, i64 %indvars.iv183, i32 16
  store i8 0, ptr %394, align 4, !tbaa !18
  %indvars.iv.next184 = or disjoint i64 %indvars.iv183, 1
  %395 = getelementptr inbounds %struct._FlConn, ptr %36, i64 %indvars.iv.next184, i32 16
  store i8 0, ptr %395, align 4, !tbaa !18
  %indvars.iv.next184.1 = or disjoint i64 %indvars.iv183, 2
  %396 = getelementptr inbounds %struct._FlConn, ptr %36, i64 %indvars.iv.next184.1, i32 16
  store i8 0, ptr %396, align 4, !tbaa !18
  %indvars.iv.next184.2 = or disjoint i64 %indvars.iv183, 3
  %397 = getelementptr inbounds %struct._FlConn, ptr %36, i64 %indvars.iv.next184.2, i32 16
  store i8 0, ptr %397, align 4, !tbaa !18
  %indvars.iv.next184.3 = add nuw nsw i64 %indvars.iv183, 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 %.preheader109.unr-lcssa, label %393, !llvm.loop !62

.preheader108:                                    ; preds = %.preheader108.preheader, %._crit_edge140.split
  %indvars.iv203 = phi i64 [ 0, %.preheader108.preheader ], [ %indvars.iv.next204, %._crit_edge140.split ]
  %398 = getelementptr inbounds %struct._EfConn, ptr %75, i64 %indvars.iv203
  %399 = getelementptr inbounds i8, ptr %398, i64 56
  %400 = load i32, ptr %399, align 8, !tbaa !25
  %401 = icmp sgt i32 %400, 0
  br i1 %401, label %.lr.ph139, label %._crit_edge140.split

.lr.ph139:                                        ; preds = %.preheader108
  %402 = getelementptr inbounds i8, ptr %398, i64 40
  %403 = load ptr, ptr %402, align 8, !tbaa !28
  %404 = load ptr, ptr @gfl_conn, align 8
  %wide.trip.count201 = zext nneg i32 %400 to i64
  br label %415

.preheader104:                                    ; preds = %._crit_edge140.split, %._crit_edge140.split.us.us.split.us.us, %.preheader109.thread, %.preheader109
  %405 = load i32, ptr @gnum_fnumeric_goal, align 4, !tbaa !24
  %406 = icmp sgt i32 %405, 0
  br i1 %406, label %.lr.ph153, label %._crit_edge154

.lr.ph153:                                        ; preds = %.preheader104
  %407 = load ptr, ptr @gfnumeric_goal_fl, align 8, !tbaa !5
  %408 = load ptr, ptr @gfl_conn, align 8
  %wide.trip.count276 = zext nneg i32 %405 to i64
  %wide.trip.count261 = zext i32 %.lcssa.fr to i64
  %wide.trip.count271 = zext nneg i32 %.lcssa.fr to i64
  %scevgep508 = getelementptr i8, ptr %408, i64 108
  %409 = mul nuw nsw i64 %wide.trip.count261, 144
  %410 = getelementptr i8, ptr %408, i64 %409
  %scevgep509 = getelementptr i8, ptr %410, i64 -35
  %411 = mul nuw nsw i64 %wide.trip.count261, 144
  %412 = getelementptr i8, ptr %408, i64 %411
  %scevgep625 = getelementptr i8, ptr %412, i64 -35
  %min.iters.check631 = icmp ult i32 %.lcssa.fr, 8
  %min.iters.check634 = icmp ult i32 %.lcssa.fr, 32
  %n.vec638 = and i64 %wide.trip.count261, 2147483616
  %cmp.n708 = icmp eq i64 %n.vec638, %wide.trip.count261
  %n.vec.remaining713 = and i64 %wide.trip.count261, 24
  %min.epilog.iters.check714 = icmp eq i64 %n.vec.remaining713, 0
  %n.vec717 = and i64 %wide.trip.count261, 2147483640
  %cmp.n739 = icmp eq i64 %n.vec717, %wide.trip.count261
  %xtraiter767 = and i64 %wide.trip.count261, 1
  %lcmp.mod768.not = icmp eq i64 %xtraiter767, 0
  %413 = add nsw i64 %wide.trip.count261, -1
  %min.iters.check515 = icmp ult i32 %.lcssa.fr, 8
  %min.iters.check518 = icmp ult i32 %.lcssa.fr, 32
  %n.vec522 = and i64 %wide.trip.count261, 2147483616
  %cmp.n592 = icmp eq i64 %n.vec522, %wide.trip.count261
  %n.vec.remaining597 = and i64 %wide.trip.count261, 24
  %min.epilog.iters.check598 = icmp eq i64 %n.vec.remaining597, 0
  %n.vec601 = and i64 %wide.trip.count261, 2147483640
  %cmp.n623 = icmp eq i64 %n.vec601, %wide.trip.count261
  %xtraiter769 = and i64 %wide.trip.count261, 1
  %lcmp.mod770.not = icmp eq i64 %xtraiter769, 0
  %414 = add nsw i64 %wide.trip.count261, -1
  br label %454

415:                                              ; preds = %.lr.ph139, %.loopexit105
  %indvars.iv198 = phi i64 [ 0, %.lr.ph139 ], [ %indvars.iv.next199, %.loopexit105 ]
  %416 = getelementptr inbounds i32, ptr %403, i64 %indvars.iv198
  %417 = load i32, ptr %416, align 4, !tbaa !24
  %418 = icmp slt i32 %417, 0
  br i1 %418, label %.split.us, label %420

.split.us:                                        ; preds = %415, %90
  %419 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.51)
  tail call void @exit(i32 noundef 1) #5
  unreachable

420:                                              ; preds = %415
  %421 = zext nneg i32 %417 to i64
  %422 = getelementptr inbounds %struct._FlConn, ptr %404, i64 %421
  %423 = getelementptr inbounds i8, ptr %422, i64 76
  %424 = load i8, ptr %423, align 4, !tbaa !29
  %.not97 = icmp eq i8 %424, 0
  br i1 %.not97, label %431, label %.preheader106

.preheader106:                                    ; preds = %420
  %425 = getelementptr inbounds i8, ptr %422, i64 96
  %426 = load i32, ptr %425, align 8, !tbaa !46
  %427 = icmp sgt i32 %426, 0
  br i1 %427, label %.lr.ph134, label %.loopexit105

.lr.ph134:                                        ; preds = %.preheader106
  %428 = getelementptr inbounds i8, ptr %422, i64 80
  %429 = load ptr, ptr %428, align 8, !tbaa !47
  %wide.trip.count191 = zext nneg i32 %426 to i64
  %xtraiter753 = and i64 %wide.trip.count191, 3
  %430 = icmp ult i32 %426, 4
  br i1 %430, label %.loopexit105.loopexit.unr-lcssa, label %.lr.ph134.new

.lr.ph134.new:                                    ; preds = %.lr.ph134
  %unroll_iter756 = and i64 %wide.trip.count191, 2147483644
  br label %433

431:                                              ; preds = %420
  %432 = getelementptr inbounds i8, ptr %422, i64 108
  store i8 1, ptr %432, align 4, !tbaa !18
  br label %.loopexit105

433:                                              ; preds = %433, %.lr.ph134.new
  %indvars.iv188 = phi i64 [ 0, %.lr.ph134.new ], [ %indvars.iv.next189.3, %433 ]
  %niter757 = phi i64 [ 0, %.lr.ph134.new ], [ %niter757.next.3, %433 ]
  %434 = getelementptr inbounds i32, ptr %429, i64 %indvars.iv188
  %435 = load i32, ptr %434, align 4, !tbaa !24
  %436 = sext i32 %435 to i64
  %437 = getelementptr inbounds %struct._FlConn, ptr %404, i64 %436, i32 16
  store i8 1, ptr %437, align 4, !tbaa !18
  %indvars.iv.next189 = or disjoint i64 %indvars.iv188, 1
  %438 = getelementptr inbounds i32, ptr %429, i64 %indvars.iv.next189
  %439 = load i32, ptr %438, align 4, !tbaa !24
  %440 = sext i32 %439 to i64
  %441 = getelementptr inbounds %struct._FlConn, ptr %404, i64 %440, i32 16
  store i8 1, ptr %441, align 4, !tbaa !18
  %indvars.iv.next189.1 = or disjoint i64 %indvars.iv188, 2
  %442 = getelementptr inbounds i32, ptr %429, i64 %indvars.iv.next189.1
  %443 = load i32, ptr %442, align 4, !tbaa !24
  %444 = sext i32 %443 to i64
  %445 = getelementptr inbounds %struct._FlConn, ptr %404, i64 %444, i32 16
  store i8 1, ptr %445, align 4, !tbaa !18
  %indvars.iv.next189.2 = or disjoint i64 %indvars.iv188, 3
  %446 = getelementptr inbounds i32, ptr %429, i64 %indvars.iv.next189.2
  %447 = load i32, ptr %446, align 4, !tbaa !24
  %448 = sext i32 %447 to i64
  %449 = getelementptr inbounds %struct._FlConn, ptr %404, i64 %448, i32 16
  store i8 1, ptr %449, align 4, !tbaa !18
  %indvars.iv.next189.3 = add nuw nsw i64 %indvars.iv188, 4
  %niter757.next.3 = add i64 %niter757, 4
  %niter757.ncmp.3 = icmp eq i64 %niter757.next.3, %unroll_iter756
  br i1 %niter757.ncmp.3, label %.loopexit105.loopexit.unr-lcssa, label %433, !llvm.loop !61

.loopexit105.loopexit.unr-lcssa:                  ; preds = %433, %.lr.ph134
  %indvars.iv188.unr = phi i64 [ 0, %.lr.ph134 ], [ %indvars.iv.next189.3, %433 ]
  %lcmp.mod755.not = icmp eq i64 %xtraiter753, 0
  br i1 %lcmp.mod755.not, label %.loopexit105, label %.epil.preheader752

.epil.preheader752:                               ; preds = %.loopexit105.loopexit.unr-lcssa, %.epil.preheader752
  %indvars.iv188.epil = phi i64 [ %indvars.iv.next189.epil, %.epil.preheader752 ], [ %indvars.iv188.unr, %.loopexit105.loopexit.unr-lcssa ]
  %epil.iter754 = phi i64 [ %epil.iter754.next, %.epil.preheader752 ], [ 0, %.loopexit105.loopexit.unr-lcssa ]
  %450 = getelementptr inbounds i32, ptr %429, i64 %indvars.iv188.epil
  %451 = load i32, ptr %450, align 4, !tbaa !24
  %452 = sext i32 %451 to i64
  %453 = getelementptr inbounds %struct._FlConn, ptr %404, i64 %452, i32 16
  store i8 1, ptr %453, align 4, !tbaa !18
  %indvars.iv.next189.epil = add nuw nsw i64 %indvars.iv188.epil, 1
  %epil.iter754.next = add i64 %epil.iter754, 1
  %epil.iter754.cmp.not = icmp eq i64 %epil.iter754.next, %xtraiter753
  br i1 %epil.iter754.cmp.not, label %.loopexit105, label %.epil.preheader752, !llvm.loop !63

.loopexit105:                                     ; preds = %.loopexit105.loopexit.unr-lcssa, %.epil.preheader752, %431, %.preheader106
  %indvars.iv.next199 = add nuw nsw i64 %indvars.iv198, 1
  %exitcond202.not = icmp eq i64 %indvars.iv.next199, %wide.trip.count201
  br i1 %exitcond202.not, label %._crit_edge140.split, label %415, !llvm.loop !44

._crit_edge140.split:                             ; preds = %.loopexit105, %.preheader108
  %indvars.iv.next204 = add nuw nsw i64 %indvars.iv203, 1
  %exitcond207.not = icmp eq i64 %indvars.iv.next204, %wide.trip.count206
  br i1 %exitcond207.not, label %.preheader104, label %.preheader108, !llvm.loop !27

454:                                              ; preds = %.lr.ph153, %.loopexit
  %indvars.iv273 = phi i64 [ 0, %.lr.ph153 ], [ %indvars.iv.next274, %.loopexit ]
  %455 = getelementptr inbounds i32, ptr %407, i64 %indvars.iv273
  %456 = load i32, ptr %455, align 4, !tbaa !24
  %457 = icmp slt i32 %456, 0
  br i1 %457, label %458, label %460

458:                                              ; preds = %454
  %459 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.51)
  tail call void @exit(i32 noundef 1) #5
  unreachable

460:                                              ; preds = %454
  %461 = zext nneg i32 %456 to i64
  %462 = getelementptr inbounds %struct._FlConn, ptr %408, i64 %461
  %463 = getelementptr inbounds i8, ptr %462, i64 76
  %464 = load i8, ptr %463, align 4, !tbaa !29
  %.not = icmp eq i8 %464, 0
  br i1 %.not, label %617, label %.preheader

.preheader:                                       ; preds = %460
  %465 = getelementptr inbounds i8, ptr %462, i64 96
  %466 = load i32, ptr %465, align 8, !tbaa !46
  %467 = icmp sgt i32 %466, 0
  br i1 %467, label %.lr.ph148, label %.loopexit

.lr.ph148:                                        ; preds = %.preheader
  %468 = getelementptr inbounds i8, ptr %462, i64 80
  %469 = load ptr, ptr %468, align 8, !tbaa !47
  %wide.trip.count266 = zext nneg i32 %466 to i64
  br i1 %35, label %iter.check633, label %.lr.ph148.split.preheader

.lr.ph148.split.preheader:                        ; preds = %.lr.ph148
  %xtraiter762 = and i64 %wide.trip.count266, 3
  %470 = icmp ult i32 %466, 4
  br i1 %470, label %.loopexit.loopexit741.unr-lcssa, label %.lr.ph148.split.preheader.new

.lr.ph148.split.preheader.new:                    ; preds = %.lr.ph148.split.preheader
  %unroll_iter765 = and i64 %wide.trip.count266, 2147483644
  br label %.lr.ph148.split

iter.check633:                                    ; preds = %.lr.ph148, %._crit_edge146.us
  %indvars.iv263 = phi i64 [ %indvars.iv.next264, %._crit_edge146.us ], [ 0, %.lr.ph148 ]
  %471 = getelementptr inbounds i32, ptr %469, i64 %indvars.iv263
  %472 = load i32, ptr %471, align 4, !tbaa !24
  %473 = sext i32 %472 to i64
  %474 = getelementptr inbounds %struct._FlConn, ptr %408, i64 %473, i32 16
  store i8 1, ptr %474, align 4, !tbaa !18
  %475 = getelementptr inbounds ptr, ptr %3, i64 %473
  %476 = load ptr, ptr %475, align 8, !tbaa !5
  br i1 %min.iters.check631, label %vec.epilog.scalar.ph710.preheader, label %vector.memcheck624

vector.memcheck624:                               ; preds = %iter.check633
  %scevgep626 = getelementptr i8, ptr %476, i64 %wide.trip.count261
  %bound0627 = icmp ult ptr %scevgep508, %scevgep626
  %bound1628 = icmp ult ptr %476, %scevgep625
  %found.conflict629 = and i1 %bound0627, %bound1628
  br i1 %found.conflict629, label %vec.epilog.scalar.ph710.preheader, label %vector.main.loop.iter.check635

vector.main.loop.iter.check635:                   ; preds = %vector.memcheck624
  br i1 %min.iters.check634, label %vec.epilog.ph711, label %vector.body639

vector.body639:                                   ; preds = %vector.main.loop.iter.check635, %pred.store.continue706
  %index640 = phi i64 [ %index.next707, %pred.store.continue706 ], [ 0, %vector.main.loop.iter.check635 ]
  %477 = or disjoint i64 %index640, 16
  %478 = getelementptr inbounds i8, ptr %476, i64 %index640
  %479 = getelementptr inbounds i8, ptr %478, i64 16
  %wide.load641 = load <16 x i8>, ptr %478, align 1, !tbaa !11, !alias.scope !64
  %wide.load642 = load <16 x i8>, ptr %479, align 1, !tbaa !11, !alias.scope !64
  %480 = icmp ne <16 x i8> %wide.load641, zeroinitializer
  %481 = icmp ne <16 x i8> %wide.load642, zeroinitializer
  %482 = extractelement <16 x i1> %480, i64 0
  br i1 %482, label %pred.store.if643, label %pred.store.continue644

pred.store.if643:                                 ; preds = %vector.body639
  %483 = getelementptr inbounds %struct._FlConn, ptr %408, i64 %index640, i32 16
  store i8 1, ptr %483, align 4, !tbaa !18, !alias.scope !67, !noalias !64
  br label %pred.store.continue644

pred.store.continue644:                           ; preds = %pred.store.if643, %vector.body639
  %484 = extractelement <16 x i1> %480, i64 1
  br i1 %484, label %pred.store.if645, label %pred.store.continue646

pred.store.if645:                                 ; preds = %pred.store.continue644
  %485 = or disjoint i64 %index640, 1
  %486 = getelementptr inbounds %struct._FlConn, ptr %408, i64 %485, i32 16
  store i8 1, ptr %486, align 4, !tbaa !18, !alias.scope !67, !noalias !64
  br label %pred.store.continue646

pred.store.continue646:                           ; preds = %pred.store.if645, %pred.store.continue644
  %487 = extractelement <16 x i1> %480, i64 2
  br i1 %487, label %pred.store.if647, label %pred.store.continue648

pred.store.if647:                                 ; preds = %pred.store.continue646
  %488 = or disjoint i64 %index640, 2
  %489 = getelementptr inbounds %struct._FlConn, ptr %408, i64 %488, i32 16
  store i8 1, ptr %489, align 4, !tbaa !18, !alias.scope !67, !noalias !64
  br label %pred.store.continue648

pred.store.continue648:                           ; preds = %pred.store.if647, %pred.store.continue646
  %490 = extractelement <16 x i1> %480, i64 3
  br i1 %490, label %pred.store.if649, label %pred.store.continue650

pred.store.if649:                                 ; preds = %pred.store.continue648
  %491 = or disjoint i64 %index640, 3
  %492 = getelementptr inbounds %struct._FlConn, ptr %408, i64 %491, i32 16
  store i8 1, ptr %492, align 4, !tbaa !18, !alias.scope !67, !noalias !64
  br label %pred.store.continue650

pred.store.continue650:                           ; preds = %pred.store.if649, %pred.store.continue648
  %493 = extractelement <16 x i1> %480, i64 4
  br i1 %493, label %pred.store.if651, label %pred.store.continue652

pred.store.if651:                                 ; preds = %pred.store.continue650
  %494 = or disjoint i64 %index640, 4
  %495 = getelementptr inbounds %struct._FlConn, ptr %408, i64 %494, i32 16
  store i8 1, ptr %495, align 4, !tbaa !18, !alias.scope !67, !noalias !64
  br label %pred.store.continue652

pred.store.continue652:                           ; preds = %pred.store.if651, %pred.store.continue650
  %496 = extractelement <16 x i1> %480, i64 5
  br i1 %496, label %pred.store.if653, label %pred.store.continue654

pred.store.if653:                                 ; preds = %pred.store.continue652
  %497 = or disjoint i64 %index640, 5
  %498 = getelementptr inbounds %struct._FlConn, ptr %408, i64 %497, i32 16
  store i8 1, ptr %498, align 4, !tbaa !18, !alias.scope !67, !noalias !64
  br label %pred.store.continue654

pred.store.continue654:                           ; preds = %pred.store.if653, %pred.store.continue652
  %499 = extractelement <16 x i1> %480, i64 6
  br i1 %499, label %pred.store.if655, label %pred.store.continue656

pred.store.if655:                                 ; preds = %pred.store.continue654
  %500 = or disjoint i64 %index640, 6
  %501 = getelementptr inbounds %struct._FlConn, ptr %408, i64 %500, i32 16
  store i8 1, ptr %501, align 4, !tbaa !18, !alias.scope !67, !noalias !64
  br label %pred.store.continue656

pred.store.continue656:                           ; preds = %pred.store.if655, %pred.store.continue654
  %502 = extractelement <16 x i1> %480, i64 7
  br i1 %502, label %pred.store.if657, label %pred.store.continue658

pred.store.if657:                                 ; preds = %pred.store.continue656
  %503 = or disjoint i64 %index640, 7
  %504 = getelementptr inbounds %struct._FlConn, ptr %408, i64 %503, i32 16
  store i8 1, ptr %504, align 4, !tbaa !18, !alias.scope !67, !noalias !64
  br label %pred.store.continue658

pred.store.continue658:                           ; preds = %pred.store.if657, %pred.store.continue656
  %505 = extractelement <16 x i1> %480, i64 8
  br i1 %505, label %pred.store.if659, label %pred.store.continue660

pred.store.if659:                                 ; preds = %pred.store.continue658
  %506 = or disjoint i64 %index640, 8
  %507 = getelementptr inbounds %struct._FlConn, ptr %408, i64 %506, i32 16
  store i8 1, ptr %507, align 4, !tbaa !18, !alias.scope !67, !noalias !64
  br label %pred.store.continue660

pred.store.continue660:                           ; preds = %pred.store.if659, %pred.store.continue658
  %508 = extractelement <16 x i1> %480, i64 9
  br i1 %508, label %pred.store.if661, label %pred.store.continue662

pred.store.if661:                                 ; preds = %pred.store.continue660
  %509 = or disjoint i64 %index640, 9
  %510 = getelementptr inbounds %struct._FlConn, ptr %408, i64 %509, i32 16
  store i8 1, ptr %510, align 4, !tbaa !18, !alias.scope !67, !noalias !64
  br label %pred.store.continue662

pred.store.continue662:                           ; preds = %pred.store.if661, %pred.store.continue660
  %511 = extractelement <16 x i1> %480, i64 10
  br i1 %511, label %pred.store.if663, label %pred.store.continue664

pred.store.if663:                                 ; preds = %pred.store.continue662
  %512 = or disjoint i64 %index640, 10
  %513 = getelementptr inbounds %struct._FlConn, ptr %408, i64 %512, i32 16
  store i8 1, ptr %513, align 4, !tbaa !18, !alias.scope !67, !noalias !64
  br label %pred.store.continue664

pred.store.continue664:                           ; preds = %pred.store.if663, %pred.store.continue662
  %514 = extractelement <16 x i1> %480, i64 11
  br i1 %514, label %pred.store.if665, label %pred.store.continue666

pred.store.if665:                                 ; preds = %pred.store.continue664
  %515 = or disjoint i64 %index640, 11
  %516 = getelementptr inbounds %struct._FlConn, ptr %408, i64 %515, i32 16
  store i8 1, ptr %516, align 4, !tbaa !18, !alias.scope !67, !noalias !64
  br label %pred.store.continue666

pred.store.continue666:                           ; preds = %pred.store.if665, %pred.store.continue664
  %517 = extractelement <16 x i1> %480, i64 12
  br i1 %517, label %pred.store.if667, label %pred.store.continue668

pred.store.if667:                                 ; preds = %pred.store.continue666
  %518 = or disjoint i64 %index640, 12
  %519 = getelementptr inbounds %struct._FlConn, ptr %408, i64 %518, i32 16
  store i8 1, ptr %519, align 4, !tbaa !18, !alias.scope !67, !noalias !64
  br label %pred.store.continue668

pred.store.continue668:                           ; preds = %pred.store.if667, %pred.store.continue666
  %520 = extractelement <16 x i1> %480, i64 13
  br i1 %520, label %pred.store.if669, label %pred.store.continue670

pred.store.if669:                                 ; preds = %pred.store.continue668
  %521 = or disjoint i64 %index640, 13
  %522 = getelementptr inbounds %struct._FlConn, ptr %408, i64 %521, i32 16
  store i8 1, ptr %522, align 4, !tbaa !18, !alias.scope !67, !noalias !64
  br label %pred.store.continue670

pred.store.continue670:                           ; preds = %pred.store.if669, %pred.store.continue668
  %523 = extractelement <16 x i1> %480, i64 14
  br i1 %523, label %pred.store.if671, label %pred.store.continue672

pred.store.if671:                                 ; preds = %pred.store.continue670
  %524 = or disjoint i64 %index640, 14
  %525 = getelementptr inbounds %struct._FlConn, ptr %408, i64 %524, i32 16
  store i8 1, ptr %525, align 4, !tbaa !18, !alias.scope !67, !noalias !64
  br label %pred.store.continue672

pred.store.continue672:                           ; preds = %pred.store.if671, %pred.store.continue670
  %526 = extractelement <16 x i1> %480, i64 15
  br i1 %526, label %pred.store.if673, label %pred.store.continue674

pred.store.if673:                                 ; preds = %pred.store.continue672
  %527 = or disjoint i64 %index640, 15
  %528 = getelementptr inbounds %struct._FlConn, ptr %408, i64 %527, i32 16
  store i8 1, ptr %528, align 4, !tbaa !18, !alias.scope !67, !noalias !64
  br label %pred.store.continue674

pred.store.continue674:                           ; preds = %pred.store.if673, %pred.store.continue672
  %529 = extractelement <16 x i1> %481, i64 0
  br i1 %529, label %pred.store.if675, label %pred.store.continue676

pred.store.if675:                                 ; preds = %pred.store.continue674
  %530 = getelementptr inbounds %struct._FlConn, ptr %408, i64 %477, i32 16
  store i8 1, ptr %530, align 4, !tbaa !18, !alias.scope !67, !noalias !64
  br label %pred.store.continue676

pred.store.continue676:                           ; preds = %pred.store.if675, %pred.store.continue674
  %531 = extractelement <16 x i1> %481, i64 1
  br i1 %531, label %pred.store.if677, label %pred.store.continue678

pred.store.if677:                                 ; preds = %pred.store.continue676
  %532 = or disjoint i64 %index640, 17
  %533 = getelementptr inbounds %struct._FlConn, ptr %408, i64 %532, i32 16
  store i8 1, ptr %533, align 4, !tbaa !18, !alias.scope !67, !noalias !64
  br label %pred.store.continue678

pred.store.continue678:                           ; preds = %pred.store.if677, %pred.store.continue676
  %534 = extractelement <16 x i1> %481, i64 2
  br i1 %534, label %pred.store.if679, label %pred.store.continue680

pred.store.if679:                                 ; preds = %pred.store.continue678
  %535 = or disjoint i64 %index640, 18
  %536 = getelementptr inbounds %struct._FlConn, ptr %408, i64 %535, i32 16
  store i8 1, ptr %536, align 4, !tbaa !18, !alias.scope !67, !noalias !64
  br label %pred.store.continue680

pred.store.continue680:                           ; preds = %pred.store.if679, %pred.store.continue678
  %537 = extractelement <16 x i1> %481, i64 3
  br i1 %537, label %pred.store.if681, label %pred.store.continue682

pred.store.if681:                                 ; preds = %pred.store.continue680
  %538 = or disjoint i64 %index640, 19
  %539 = getelementptr inbounds %struct._FlConn, ptr %408, i64 %538, i32 16
  store i8 1, ptr %539, align 4, !tbaa !18, !alias.scope !67, !noalias !64
  br label %pred.store.continue682

pred.store.continue682:                           ; preds = %pred.store.if681, %pred.store.continue680
  %540 = extractelement <16 x i1> %481, i64 4
  br i1 %540, label %pred.store.if683, label %pred.store.continue684

pred.store.if683:                                 ; preds = %pred.store.continue682
  %541 = or disjoint i64 %index640, 20
  %542 = getelementptr inbounds %struct._FlConn, ptr %408, i64 %541, i32 16
  store i8 1, ptr %542, align 4, !tbaa !18, !alias.scope !67, !noalias !64
  br label %pred.store.continue684

pred.store.continue684:                           ; preds = %pred.store.if683, %pred.store.continue682
  %543 = extractelement <16 x i1> %481, i64 5
  br i1 %543, label %pred.store.if685, label %pred.store.continue686

pred.store.if685:                                 ; preds = %pred.store.continue684
  %544 = or disjoint i64 %index640, 21
  %545 = getelementptr inbounds %struct._FlConn, ptr %408, i64 %544, i32 16
  store i8 1, ptr %545, align 4, !tbaa !18, !alias.scope !67, !noalias !64
  br label %pred.store.continue686

pred.store.continue686:                           ; preds = %pred.store.if685, %pred.store.continue684
  %546 = extractelement <16 x i1> %481, i64 6
  br i1 %546, label %pred.store.if687, label %pred.store.continue688

pred.store.if687:                                 ; preds = %pred.store.continue686
  %547 = or disjoint i64 %index640, 22
  %548 = getelementptr inbounds %struct._FlConn, ptr %408, i64 %547, i32 16
  store i8 1, ptr %548, align 4, !tbaa !18, !alias.scope !67, !noalias !64
  br label %pred.store.continue688

pred.store.continue688:                           ; preds = %pred.store.if687, %pred.store.continue686
  %549 = extractelement <16 x i1> %481, i64 7
  br i1 %549, label %pred.store.if689, label %pred.store.continue690

pred.store.if689:                                 ; preds = %pred.store.continue688
  %550 = or disjoint i64 %index640, 23
  %551 = getelementptr inbounds %struct._FlConn, ptr %408, i64 %550, i32 16
  store i8 1, ptr %551, align 4, !tbaa !18, !alias.scope !67, !noalias !64
  br label %pred.store.continue690

pred.store.continue690:                           ; preds = %pred.store.if689, %pred.store.continue688
  %552 = extractelement <16 x i1> %481, i64 8
  br i1 %552, label %pred.store.if691, label %pred.store.continue692

pred.store.if691:                                 ; preds = %pred.store.continue690
  %553 = or disjoint i64 %index640, 24
  %554 = getelementptr inbounds %struct._FlConn, ptr %408, i64 %553, i32 16
  store i8 1, ptr %554, align 4, !tbaa !18, !alias.scope !67, !noalias !64
  br label %pred.store.continue692

pred.store.continue692:                           ; preds = %pred.store.if691, %pred.store.continue690
  %555 = extractelement <16 x i1> %481, i64 9
  br i1 %555, label %pred.store.if693, label %pred.store.continue694

pred.store.if693:                                 ; preds = %pred.store.continue692
  %556 = or disjoint i64 %index640, 25
  %557 = getelementptr inbounds %struct._FlConn, ptr %408, i64 %556, i32 16
  store i8 1, ptr %557, align 4, !tbaa !18, !alias.scope !67, !noalias !64
  br label %pred.store.continue694

pred.store.continue694:                           ; preds = %pred.store.if693, %pred.store.continue692
  %558 = extractelement <16 x i1> %481, i64 10
  br i1 %558, label %pred.store.if695, label %pred.store.continue696

pred.store.if695:                                 ; preds = %pred.store.continue694
  %559 = or disjoint i64 %index640, 26
  %560 = getelementptr inbounds %struct._FlConn, ptr %408, i64 %559, i32 16
  store i8 1, ptr %560, align 4, !tbaa !18, !alias.scope !67, !noalias !64
  br label %pred.store.continue696

pred.store.continue696:                           ; preds = %pred.store.if695, %pred.store.continue694
  %561 = extractelement <16 x i1> %481, i64 11
  br i1 %561, label %pred.store.if697, label %pred.store.continue698

pred.store.if697:                                 ; preds = %pred.store.continue696
  %562 = or disjoint i64 %index640, 27
  %563 = getelementptr inbounds %struct._FlConn, ptr %408, i64 %562, i32 16
  store i8 1, ptr %563, align 4, !tbaa !18, !alias.scope !67, !noalias !64
  br label %pred.store.continue698

pred.store.continue698:                           ; preds = %pred.store.if697, %pred.store.continue696
  %564 = extractelement <16 x i1> %481, i64 12
  br i1 %564, label %pred.store.if699, label %pred.store.continue700

pred.store.if699:                                 ; preds = %pred.store.continue698
  %565 = or disjoint i64 %index640, 28
  %566 = getelementptr inbounds %struct._FlConn, ptr %408, i64 %565, i32 16
  store i8 1, ptr %566, align 4, !tbaa !18, !alias.scope !67, !noalias !64
  br label %pred.store.continue700

pred.store.continue700:                           ; preds = %pred.store.if699, %pred.store.continue698
  %567 = extractelement <16 x i1> %481, i64 13
  br i1 %567, label %pred.store.if701, label %pred.store.continue702

pred.store.if701:                                 ; preds = %pred.store.continue700
  %568 = or disjoint i64 %index640, 29
  %569 = getelementptr inbounds %struct._FlConn, ptr %408, i64 %568, i32 16
  store i8 1, ptr %569, align 4, !tbaa !18, !alias.scope !67, !noalias !64
  br label %pred.store.continue702

pred.store.continue702:                           ; preds = %pred.store.if701, %pred.store.continue700
  %570 = extractelement <16 x i1> %481, i64 14
  br i1 %570, label %pred.store.if703, label %pred.store.continue704

pred.store.if703:                                 ; preds = %pred.store.continue702
  %571 = or disjoint i64 %index640, 30
  %572 = getelementptr inbounds %struct._FlConn, ptr %408, i64 %571, i32 16
  store i8 1, ptr %572, align 4, !tbaa !18, !alias.scope !67, !noalias !64
  br label %pred.store.continue704

pred.store.continue704:                           ; preds = %pred.store.if703, %pred.store.continue702
  %573 = extractelement <16 x i1> %481, i64 15
  br i1 %573, label %pred.store.if705, label %pred.store.continue706

pred.store.if705:                                 ; preds = %pred.store.continue704
  %574 = or disjoint i64 %index640, 31
  %575 = getelementptr inbounds %struct._FlConn, ptr %408, i64 %574, i32 16
  store i8 1, ptr %575, align 4, !tbaa !18, !alias.scope !67, !noalias !64
  br label %pred.store.continue706

pred.store.continue706:                           ; preds = %pred.store.if705, %pred.store.continue704
  %index.next707 = add nuw i64 %index640, 32
  %576 = icmp eq i64 %index.next707, %n.vec638
  br i1 %576, label %middle.block630, label %vector.body639, !llvm.loop !69

middle.block630:                                  ; preds = %pred.store.continue706
  br i1 %cmp.n708, label %._crit_edge146.us, label %vec.epilog.iter.check712

vec.epilog.iter.check712:                         ; preds = %middle.block630
  br i1 %min.epilog.iters.check714, label %vec.epilog.scalar.ph710.preheader, label %vec.epilog.ph711

vec.epilog.ph711:                                 ; preds = %vector.main.loop.iter.check635, %vec.epilog.iter.check712
  %vec.epilog.resume.val715 = phi i64 [ %n.vec638, %vec.epilog.iter.check712 ], [ 0, %vector.main.loop.iter.check635 ]
  br label %vec.epilog.vector.body719

vec.epilog.vector.body719:                        ; preds = %pred.store.continue737, %vec.epilog.ph711
  %index720 = phi i64 [ %vec.epilog.resume.val715, %vec.epilog.ph711 ], [ %index.next738, %pred.store.continue737 ]
  %577 = getelementptr inbounds i8, ptr %476, i64 %index720
  %wide.load721 = load <8 x i8>, ptr %577, align 1, !tbaa !11, !alias.scope !70
  %578 = icmp ne <8 x i8> %wide.load721, zeroinitializer
  %579 = extractelement <8 x i1> %578, i64 0
  br i1 %579, label %pred.store.if722, label %pred.store.continue723

pred.store.if722:                                 ; preds = %vec.epilog.vector.body719
  %580 = getelementptr inbounds %struct._FlConn, ptr %408, i64 %index720, i32 16
  store i8 1, ptr %580, align 4, !tbaa !18, !alias.scope !73, !noalias !70
  br label %pred.store.continue723

pred.store.continue723:                           ; preds = %pred.store.if722, %vec.epilog.vector.body719
  %581 = extractelement <8 x i1> %578, i64 1
  br i1 %581, label %pred.store.if724, label %pred.store.continue725

pred.store.if724:                                 ; preds = %pred.store.continue723
  %582 = or disjoint i64 %index720, 1
  %583 = getelementptr inbounds %struct._FlConn, ptr %408, i64 %582, i32 16
  store i8 1, ptr %583, align 4, !tbaa !18, !alias.scope !73, !noalias !70
  br label %pred.store.continue725

pred.store.continue725:                           ; preds = %pred.store.if724, %pred.store.continue723
  %584 = extractelement <8 x i1> %578, i64 2
  br i1 %584, label %pred.store.if726, label %pred.store.continue727

pred.store.if726:                                 ; preds = %pred.store.continue725
  %585 = or disjoint i64 %index720, 2
  %586 = getelementptr inbounds %struct._FlConn, ptr %408, i64 %585, i32 16
  store i8 1, ptr %586, align 4, !tbaa !18, !alias.scope !73, !noalias !70
  br label %pred.store.continue727

pred.store.continue727:                           ; preds = %pred.store.if726, %pred.store.continue725
  %587 = extractelement <8 x i1> %578, i64 3
  br i1 %587, label %pred.store.if728, label %pred.store.continue729

pred.store.if728:                                 ; preds = %pred.store.continue727
  %588 = or disjoint i64 %index720, 3
  %589 = getelementptr inbounds %struct._FlConn, ptr %408, i64 %588, i32 16
  store i8 1, ptr %589, align 4, !tbaa !18, !alias.scope !73, !noalias !70
  br label %pred.store.continue729

pred.store.continue729:                           ; preds = %pred.store.if728, %pred.store.continue727
  %590 = extractelement <8 x i1> %578, i64 4
  br i1 %590, label %pred.store.if730, label %pred.store.continue731

pred.store.if730:                                 ; preds = %pred.store.continue729
  %591 = or disjoint i64 %index720, 4
  %592 = getelementptr inbounds %struct._FlConn, ptr %408, i64 %591, i32 16
  store i8 1, ptr %592, align 4, !tbaa !18, !alias.scope !73, !noalias !70
  br label %pred.store.continue731

pred.store.continue731:                           ; preds = %pred.store.if730, %pred.store.continue729
  %593 = extractelement <8 x i1> %578, i64 5
  br i1 %593, label %pred.store.if732, label %pred.store.continue733

pred.store.if732:                                 ; preds = %pred.store.continue731
  %594 = or disjoint i64 %index720, 5
  %595 = getelementptr inbounds %struct._FlConn, ptr %408, i64 %594, i32 16
  store i8 1, ptr %595, align 4, !tbaa !18, !alias.scope !73, !noalias !70
  br label %pred.store.continue733

pred.store.continue733:                           ; preds = %pred.store.if732, %pred.store.continue731
  %596 = extractelement <8 x i1> %578, i64 6
  br i1 %596, label %pred.store.if734, label %pred.store.continue735

pred.store.if734:                                 ; preds = %pred.store.continue733
  %597 = or disjoint i64 %index720, 6
  %598 = getelementptr inbounds %struct._FlConn, ptr %408, i64 %597, i32 16
  store i8 1, ptr %598, align 4, !tbaa !18, !alias.scope !73, !noalias !70
  br label %pred.store.continue735

pred.store.continue735:                           ; preds = %pred.store.if734, %pred.store.continue733
  %599 = extractelement <8 x i1> %578, i64 7
  br i1 %599, label %pred.store.if736, label %pred.store.continue737

pred.store.if736:                                 ; preds = %pred.store.continue735
  %600 = or disjoint i64 %index720, 7
  %601 = getelementptr inbounds %struct._FlConn, ptr %408, i64 %600, i32 16
  store i8 1, ptr %601, align 4, !tbaa !18, !alias.scope !73, !noalias !70
  br label %pred.store.continue737

pred.store.continue737:                           ; preds = %pred.store.if736, %pred.store.continue735
  %index.next738 = add nuw i64 %index720, 8
  %602 = icmp eq i64 %index.next738, %n.vec717
  br i1 %602, label %vec.epilog.middle.block709, label %vec.epilog.vector.body719, !llvm.loop !75

vec.epilog.middle.block709:                       ; preds = %pred.store.continue737
  br i1 %cmp.n739, label %._crit_edge146.us, label %vec.epilog.scalar.ph710.preheader

vec.epilog.scalar.ph710.preheader:                ; preds = %vec.epilog.middle.block709, %vector.memcheck624, %iter.check633, %vec.epilog.iter.check712
  %indvars.iv258.ph = phi i64 [ 0, %iter.check633 ], [ 0, %vector.memcheck624 ], [ %n.vec638, %vec.epilog.iter.check712 ], [ %n.vec717, %vec.epilog.middle.block709 ]
  br i1 %lcmp.mod768.not, label %vec.epilog.scalar.ph710.prol.loopexit, label %vec.epilog.scalar.ph710.prol

vec.epilog.scalar.ph710.prol:                     ; preds = %vec.epilog.scalar.ph710.preheader
  %603 = getelementptr inbounds i8, ptr %476, i64 %indvars.iv258.ph
  %604 = load i8, ptr %603, align 1, !tbaa !11
  %.not96.us.prol = icmp eq i8 %604, 0
  br i1 %.not96.us.prol, label %vec.epilog.scalar.ph710.prol.loopexit.unr-lcssa, label %605

605:                                              ; preds = %vec.epilog.scalar.ph710.prol
  %606 = getelementptr inbounds %struct._FlConn, ptr %408, i64 %indvars.iv258.ph, i32 16
  store i8 1, ptr %606, align 4, !tbaa !18
  br label %vec.epilog.scalar.ph710.prol.loopexit.unr-lcssa

vec.epilog.scalar.ph710.prol.loopexit.unr-lcssa:  ; preds = %605, %vec.epilog.scalar.ph710.prol
  %indvars.iv.next259.prol = or disjoint i64 %indvars.iv258.ph, 1
  br label %vec.epilog.scalar.ph710.prol.loopexit

vec.epilog.scalar.ph710.prol.loopexit:            ; preds = %vec.epilog.scalar.ph710.prol.loopexit.unr-lcssa, %vec.epilog.scalar.ph710.preheader
  %indvars.iv258.unr = phi i64 [ %indvars.iv258.ph, %vec.epilog.scalar.ph710.preheader ], [ %indvars.iv.next259.prol, %vec.epilog.scalar.ph710.prol.loopexit.unr-lcssa ]
  %607 = icmp eq i64 %indvars.iv258.ph, %413
  br i1 %607, label %._crit_edge146.us, label %vec.epilog.scalar.ph710

vec.epilog.scalar.ph710:                          ; preds = %vec.epilog.scalar.ph710.prol.loopexit, %616
  %indvars.iv258 = phi i64 [ %indvars.iv.next259.1, %616 ], [ %indvars.iv258.unr, %vec.epilog.scalar.ph710.prol.loopexit ]
  %608 = getelementptr inbounds i8, ptr %476, i64 %indvars.iv258
  %609 = load i8, ptr %608, align 1, !tbaa !11
  %.not96.us = icmp eq i8 %609, 0
  br i1 %.not96.us, label %vec.epilog.scalar.ph710.1, label %610

610:                                              ; preds = %vec.epilog.scalar.ph710
  %611 = getelementptr inbounds %struct._FlConn, ptr %408, i64 %indvars.iv258, i32 16
  store i8 1, ptr %611, align 4, !tbaa !18
  br label %vec.epilog.scalar.ph710.1

vec.epilog.scalar.ph710.1:                        ; preds = %610, %vec.epilog.scalar.ph710
  %indvars.iv.next259 = add nuw nsw i64 %indvars.iv258, 1
  %612 = getelementptr inbounds i8, ptr %476, i64 %indvars.iv.next259
  %613 = load i8, ptr %612, align 1, !tbaa !11
  %.not96.us.1 = icmp eq i8 %613, 0
  br i1 %.not96.us.1, label %616, label %614

614:                                              ; preds = %vec.epilog.scalar.ph710.1
  %615 = getelementptr inbounds %struct._FlConn, ptr %408, i64 %indvars.iv.next259, i32 16
  store i8 1, ptr %615, align 4, !tbaa !18
  br label %616

616:                                              ; preds = %614, %vec.epilog.scalar.ph710.1
  %indvars.iv.next259.1 = add nuw nsw i64 %indvars.iv258, 2
  %exitcond262.not.1 = icmp eq i64 %indvars.iv.next259.1, %wide.trip.count261
  br i1 %exitcond262.not.1, label %._crit_edge146.us, label %vec.epilog.scalar.ph710, !llvm.loop !76

._crit_edge146.us:                                ; preds = %vec.epilog.scalar.ph710.prol.loopexit, %616, %vec.epilog.middle.block709, %middle.block630
  %indvars.iv.next264 = add nuw nsw i64 %indvars.iv263, 1
  %exitcond267.not = icmp eq i64 %indvars.iv.next264, %wide.trip.count266
  br i1 %exitcond267.not, label %.loopexit, label %iter.check633, !llvm.loop !77

617:                                              ; preds = %460
  %618 = getelementptr inbounds i8, ptr %462, i64 108
  store i8 1, ptr %618, align 4, !tbaa !18
  br i1 %35, label %iter.check517, label %.loopexit

iter.check517:                                    ; preds = %617
  %619 = getelementptr inbounds ptr, ptr %3, i64 %461
  %620 = load ptr, ptr %619, align 8, !tbaa !5
  br i1 %min.iters.check515, label %vec.epilog.scalar.ph594.preheader, label %vector.memcheck507

vector.memcheck507:                               ; preds = %iter.check517
  %scevgep510 = getelementptr i8, ptr %620, i64 %wide.trip.count261
  %bound0511 = icmp ult ptr %scevgep508, %scevgep510
  %bound1512 = icmp ult ptr %620, %scevgep509
  %found.conflict513 = and i1 %bound0511, %bound1512
  br i1 %found.conflict513, label %vec.epilog.scalar.ph594.preheader, label %vector.main.loop.iter.check519

vector.main.loop.iter.check519:                   ; preds = %vector.memcheck507
  br i1 %min.iters.check518, label %vec.epilog.ph595, label %vector.body523

vector.body523:                                   ; preds = %vector.main.loop.iter.check519, %pred.store.continue590
  %index524 = phi i64 [ %index.next591, %pred.store.continue590 ], [ 0, %vector.main.loop.iter.check519 ]
  %621 = or disjoint i64 %index524, 16
  %622 = getelementptr inbounds i8, ptr %620, i64 %index524
  %623 = getelementptr inbounds i8, ptr %622, i64 16
  %wide.load525 = load <16 x i8>, ptr %622, align 1, !tbaa !11, !alias.scope !78
  %wide.load526 = load <16 x i8>, ptr %623, align 1, !tbaa !11, !alias.scope !78
  %624 = icmp ne <16 x i8> %wide.load525, zeroinitializer
  %625 = icmp ne <16 x i8> %wide.load526, zeroinitializer
  %626 = extractelement <16 x i1> %624, i64 0
  br i1 %626, label %pred.store.if527, label %pred.store.continue528

pred.store.if527:                                 ; preds = %vector.body523
  %627 = getelementptr inbounds %struct._FlConn, ptr %408, i64 %index524, i32 16
  store i8 1, ptr %627, align 4, !tbaa !18, !alias.scope !81, !noalias !78
  br label %pred.store.continue528

pred.store.continue528:                           ; preds = %pred.store.if527, %vector.body523
  %628 = extractelement <16 x i1> %624, i64 1
  br i1 %628, label %pred.store.if529, label %pred.store.continue530

pred.store.if529:                                 ; preds = %pred.store.continue528
  %629 = or disjoint i64 %index524, 1
  %630 = getelementptr inbounds %struct._FlConn, ptr %408, i64 %629, i32 16
  store i8 1, ptr %630, align 4, !tbaa !18, !alias.scope !81, !noalias !78
  br label %pred.store.continue530

pred.store.continue530:                           ; preds = %pred.store.if529, %pred.store.continue528
  %631 = extractelement <16 x i1> %624, i64 2
  br i1 %631, label %pred.store.if531, label %pred.store.continue532

pred.store.if531:                                 ; preds = %pred.store.continue530
  %632 = or disjoint i64 %index524, 2
  %633 = getelementptr inbounds %struct._FlConn, ptr %408, i64 %632, i32 16
  store i8 1, ptr %633, align 4, !tbaa !18, !alias.scope !81, !noalias !78
  br label %pred.store.continue532

pred.store.continue532:                           ; preds = %pred.store.if531, %pred.store.continue530
  %634 = extractelement <16 x i1> %624, i64 3
  br i1 %634, label %pred.store.if533, label %pred.store.continue534

pred.store.if533:                                 ; preds = %pred.store.continue532
  %635 = or disjoint i64 %index524, 3
  %636 = getelementptr inbounds %struct._FlConn, ptr %408, i64 %635, i32 16
  store i8 1, ptr %636, align 4, !tbaa !18, !alias.scope !81, !noalias !78
  br label %pred.store.continue534

pred.store.continue534:                           ; preds = %pred.store.if533, %pred.store.continue532
  %637 = extractelement <16 x i1> %624, i64 4
  br i1 %637, label %pred.store.if535, label %pred.store.continue536

pred.store.if535:                                 ; preds = %pred.store.continue534
  %638 = or disjoint i64 %index524, 4
  %639 = getelementptr inbounds %struct._FlConn, ptr %408, i64 %638, i32 16
  store i8 1, ptr %639, align 4, !tbaa !18, !alias.scope !81, !noalias !78
  br label %pred.store.continue536

pred.store.continue536:                           ; preds = %pred.store.if535, %pred.store.continue534
  %640 = extractelement <16 x i1> %624, i64 5
  br i1 %640, label %pred.store.if537, label %pred.store.continue538

pred.store.if537:                                 ; preds = %pred.store.continue536
  %641 = or disjoint i64 %index524, 5
  %642 = getelementptr inbounds %struct._FlConn, ptr %408, i64 %641, i32 16
  store i8 1, ptr %642, align 4, !tbaa !18, !alias.scope !81, !noalias !78
  br label %pred.store.continue538

pred.store.continue538:                           ; preds = %pred.store.if537, %pred.store.continue536
  %643 = extractelement <16 x i1> %624, i64 6
  br i1 %643, label %pred.store.if539, label %pred.store.continue540

pred.store.if539:                                 ; preds = %pred.store.continue538
  %644 = or disjoint i64 %index524, 6
  %645 = getelementptr inbounds %struct._FlConn, ptr %408, i64 %644, i32 16
  store i8 1, ptr %645, align 4, !tbaa !18, !alias.scope !81, !noalias !78
  br label %pred.store.continue540

pred.store.continue540:                           ; preds = %pred.store.if539, %pred.store.continue538
  %646 = extractelement <16 x i1> %624, i64 7
  br i1 %646, label %pred.store.if541, label %pred.store.continue542

pred.store.if541:                                 ; preds = %pred.store.continue540
  %647 = or disjoint i64 %index524, 7
  %648 = getelementptr inbounds %struct._FlConn, ptr %408, i64 %647, i32 16
  store i8 1, ptr %648, align 4, !tbaa !18, !alias.scope !81, !noalias !78
  br label %pred.store.continue542

pred.store.continue542:                           ; preds = %pred.store.if541, %pred.store.continue540
  %649 = extractelement <16 x i1> %624, i64 8
  br i1 %649, label %pred.store.if543, label %pred.store.continue544

pred.store.if543:                                 ; preds = %pred.store.continue542
  %650 = or disjoint i64 %index524, 8
  %651 = getelementptr inbounds %struct._FlConn, ptr %408, i64 %650, i32 16
  store i8 1, ptr %651, align 4, !tbaa !18, !alias.scope !81, !noalias !78
  br label %pred.store.continue544

pred.store.continue544:                           ; preds = %pred.store.if543, %pred.store.continue542
  %652 = extractelement <16 x i1> %624, i64 9
  br i1 %652, label %pred.store.if545, label %pred.store.continue546

pred.store.if545:                                 ; preds = %pred.store.continue544
  %653 = or disjoint i64 %index524, 9
  %654 = getelementptr inbounds %struct._FlConn, ptr %408, i64 %653, i32 16
  store i8 1, ptr %654, align 4, !tbaa !18, !alias.scope !81, !noalias !78
  br label %pred.store.continue546

pred.store.continue546:                           ; preds = %pred.store.if545, %pred.store.continue544
  %655 = extractelement <16 x i1> %624, i64 10
  br i1 %655, label %pred.store.if547, label %pred.store.continue548

pred.store.if547:                                 ; preds = %pred.store.continue546
  %656 = or disjoint i64 %index524, 10
  %657 = getelementptr inbounds %struct._FlConn, ptr %408, i64 %656, i32 16
  store i8 1, ptr %657, align 4, !tbaa !18, !alias.scope !81, !noalias !78
  br label %pred.store.continue548

pred.store.continue548:                           ; preds = %pred.store.if547, %pred.store.continue546
  %658 = extractelement <16 x i1> %624, i64 11
  br i1 %658, label %pred.store.if549, label %pred.store.continue550

pred.store.if549:                                 ; preds = %pred.store.continue548
  %659 = or disjoint i64 %index524, 11
  %660 = getelementptr inbounds %struct._FlConn, ptr %408, i64 %659, i32 16
  store i8 1, ptr %660, align 4, !tbaa !18, !alias.scope !81, !noalias !78
  br label %pred.store.continue550

pred.store.continue550:                           ; preds = %pred.store.if549, %pred.store.continue548
  %661 = extractelement <16 x i1> %624, i64 12
  br i1 %661, label %pred.store.if551, label %pred.store.continue552

pred.store.if551:                                 ; preds = %pred.store.continue550
  %662 = or disjoint i64 %index524, 12
  %663 = getelementptr inbounds %struct._FlConn, ptr %408, i64 %662, i32 16
  store i8 1, ptr %663, align 4, !tbaa !18, !alias.scope !81, !noalias !78
  br label %pred.store.continue552

pred.store.continue552:                           ; preds = %pred.store.if551, %pred.store.continue550
  %664 = extractelement <16 x i1> %624, i64 13
  br i1 %664, label %pred.store.if553, label %pred.store.continue554

pred.store.if553:                                 ; preds = %pred.store.continue552
  %665 = or disjoint i64 %index524, 13
  %666 = getelementptr inbounds %struct._FlConn, ptr %408, i64 %665, i32 16
  store i8 1, ptr %666, align 4, !tbaa !18, !alias.scope !81, !noalias !78
  br label %pred.store.continue554

pred.store.continue554:                           ; preds = %pred.store.if553, %pred.store.continue552
  %667 = extractelement <16 x i1> %624, i64 14
  br i1 %667, label %pred.store.if555, label %pred.store.continue556

pred.store.if555:                                 ; preds = %pred.store.continue554
  %668 = or disjoint i64 %index524, 14
  %669 = getelementptr inbounds %struct._FlConn, ptr %408, i64 %668, i32 16
  store i8 1, ptr %669, align 4, !tbaa !18, !alias.scope !81, !noalias !78
  br label %pred.store.continue556

pred.store.continue556:                           ; preds = %pred.store.if555, %pred.store.continue554
  %670 = extractelement <16 x i1> %624, i64 15
  br i1 %670, label %pred.store.if557, label %pred.store.continue558

pred.store.if557:                                 ; preds = %pred.store.continue556
  %671 = or disjoint i64 %index524, 15
  %672 = getelementptr inbounds %struct._FlConn, ptr %408, i64 %671, i32 16
  store i8 1, ptr %672, align 4, !tbaa !18, !alias.scope !81, !noalias !78
  br label %pred.store.continue558

pred.store.continue558:                           ; preds = %pred.store.if557, %pred.store.continue556
  %673 = extractelement <16 x i1> %625, i64 0
  br i1 %673, label %pred.store.if559, label %pred.store.continue560

pred.store.if559:                                 ; preds = %pred.store.continue558
  %674 = getelementptr inbounds %struct._FlConn, ptr %408, i64 %621, i32 16
  store i8 1, ptr %674, align 4, !tbaa !18, !alias.scope !81, !noalias !78
  br label %pred.store.continue560

pred.store.continue560:                           ; preds = %pred.store.if559, %pred.store.continue558
  %675 = extractelement <16 x i1> %625, i64 1
  br i1 %675, label %pred.store.if561, label %pred.store.continue562

pred.store.if561:                                 ; preds = %pred.store.continue560
  %676 = or disjoint i64 %index524, 17
  %677 = getelementptr inbounds %struct._FlConn, ptr %408, i64 %676, i32 16
  store i8 1, ptr %677, align 4, !tbaa !18, !alias.scope !81, !noalias !78
  br label %pred.store.continue562

pred.store.continue562:                           ; preds = %pred.store.if561, %pred.store.continue560
  %678 = extractelement <16 x i1> %625, i64 2
  br i1 %678, label %pred.store.if563, label %pred.store.continue564

pred.store.if563:                                 ; preds = %pred.store.continue562
  %679 = or disjoint i64 %index524, 18
  %680 = getelementptr inbounds %struct._FlConn, ptr %408, i64 %679, i32 16
  store i8 1, ptr %680, align 4, !tbaa !18, !alias.scope !81, !noalias !78
  br label %pred.store.continue564

pred.store.continue564:                           ; preds = %pred.store.if563, %pred.store.continue562
  %681 = extractelement <16 x i1> %625, i64 3
  br i1 %681, label %pred.store.if565, label %pred.store.continue566

pred.store.if565:                                 ; preds = %pred.store.continue564
  %682 = or disjoint i64 %index524, 19
  %683 = getelementptr inbounds %struct._FlConn, ptr %408, i64 %682, i32 16
  store i8 1, ptr %683, align 4, !tbaa !18, !alias.scope !81, !noalias !78
  br label %pred.store.continue566

pred.store.continue566:                           ; preds = %pred.store.if565, %pred.store.continue564
  %684 = extractelement <16 x i1> %625, i64 4
  br i1 %684, label %pred.store.if567, label %pred.store.continue568

pred.store.if567:                                 ; preds = %pred.store.continue566
  %685 = or disjoint i64 %index524, 20
  %686 = getelementptr inbounds %struct._FlConn, ptr %408, i64 %685, i32 16
  store i8 1, ptr %686, align 4, !tbaa !18, !alias.scope !81, !noalias !78
  br label %pred.store.continue568

pred.store.continue568:                           ; preds = %pred.store.if567, %pred.store.continue566
  %687 = extractelement <16 x i1> %625, i64 5
  br i1 %687, label %pred.store.if569, label %pred.store.continue570

pred.store.if569:                                 ; preds = %pred.store.continue568
  %688 = or disjoint i64 %index524, 21
  %689 = getelementptr inbounds %struct._FlConn, ptr %408, i64 %688, i32 16
  store i8 1, ptr %689, align 4, !tbaa !18, !alias.scope !81, !noalias !78
  br label %pred.store.continue570

pred.store.continue570:                           ; preds = %pred.store.if569, %pred.store.continue568
  %690 = extractelement <16 x i1> %625, i64 6
  br i1 %690, label %pred.store.if571, label %pred.store.continue572

pred.store.if571:                                 ; preds = %pred.store.continue570
  %691 = or disjoint i64 %index524, 22
  %692 = getelementptr inbounds %struct._FlConn, ptr %408, i64 %691, i32 16
  store i8 1, ptr %692, align 4, !tbaa !18, !alias.scope !81, !noalias !78
  br label %pred.store.continue572

pred.store.continue572:                           ; preds = %pred.store.if571, %pred.store.continue570
  %693 = extractelement <16 x i1> %625, i64 7
  br i1 %693, label %pred.store.if573, label %pred.store.continue574

pred.store.if573:                                 ; preds = %pred.store.continue572
  %694 = or disjoint i64 %index524, 23
  %695 = getelementptr inbounds %struct._FlConn, ptr %408, i64 %694, i32 16
  store i8 1, ptr %695, align 4, !tbaa !18, !alias.scope !81, !noalias !78
  br label %pred.store.continue574

pred.store.continue574:                           ; preds = %pred.store.if573, %pred.store.continue572
  %696 = extractelement <16 x i1> %625, i64 8
  br i1 %696, label %pred.store.if575, label %pred.store.continue576

pred.store.if575:                                 ; preds = %pred.store.continue574
  %697 = or disjoint i64 %index524, 24
  %698 = getelementptr inbounds %struct._FlConn, ptr %408, i64 %697, i32 16
  store i8 1, ptr %698, align 4, !tbaa !18, !alias.scope !81, !noalias !78
  br label %pred.store.continue576

pred.store.continue576:                           ; preds = %pred.store.if575, %pred.store.continue574
  %699 = extractelement <16 x i1> %625, i64 9
  br i1 %699, label %pred.store.if577, label %pred.store.continue578

pred.store.if577:                                 ; preds = %pred.store.continue576
  %700 = or disjoint i64 %index524, 25
  %701 = getelementptr inbounds %struct._FlConn, ptr %408, i64 %700, i32 16
  store i8 1, ptr %701, align 4, !tbaa !18, !alias.scope !81, !noalias !78
  br label %pred.store.continue578

pred.store.continue578:                           ; preds = %pred.store.if577, %pred.store.continue576
  %702 = extractelement <16 x i1> %625, i64 10
  br i1 %702, label %pred.store.if579, label %pred.store.continue580

pred.store.if579:                                 ; preds = %pred.store.continue578
  %703 = or disjoint i64 %index524, 26
  %704 = getelementptr inbounds %struct._FlConn, ptr %408, i64 %703, i32 16
  store i8 1, ptr %704, align 4, !tbaa !18, !alias.scope !81, !noalias !78
  br label %pred.store.continue580

pred.store.continue580:                           ; preds = %pred.store.if579, %pred.store.continue578
  %705 = extractelement <16 x i1> %625, i64 11
  br i1 %705, label %pred.store.if581, label %pred.store.continue582

pred.store.if581:                                 ; preds = %pred.store.continue580
  %706 = or disjoint i64 %index524, 27
  %707 = getelementptr inbounds %struct._FlConn, ptr %408, i64 %706, i32 16
  store i8 1, ptr %707, align 4, !tbaa !18, !alias.scope !81, !noalias !78
  br label %pred.store.continue582

pred.store.continue582:                           ; preds = %pred.store.if581, %pred.store.continue580
  %708 = extractelement <16 x i1> %625, i64 12
  br i1 %708, label %pred.store.if583, label %pred.store.continue584

pred.store.if583:                                 ; preds = %pred.store.continue582
  %709 = or disjoint i64 %index524, 28
  %710 = getelementptr inbounds %struct._FlConn, ptr %408, i64 %709, i32 16
  store i8 1, ptr %710, align 4, !tbaa !18, !alias.scope !81, !noalias !78
  br label %pred.store.continue584

pred.store.continue584:                           ; preds = %pred.store.if583, %pred.store.continue582
  %711 = extractelement <16 x i1> %625, i64 13
  br i1 %711, label %pred.store.if585, label %pred.store.continue586

pred.store.if585:                                 ; preds = %pred.store.continue584
  %712 = or disjoint i64 %index524, 29
  %713 = getelementptr inbounds %struct._FlConn, ptr %408, i64 %712, i32 16
  store i8 1, ptr %713, align 4, !tbaa !18, !alias.scope !81, !noalias !78
  br label %pred.store.continue586

pred.store.continue586:                           ; preds = %pred.store.if585, %pred.store.continue584
  %714 = extractelement <16 x i1> %625, i64 14
  br i1 %714, label %pred.store.if587, label %pred.store.continue588

pred.store.if587:                                 ; preds = %pred.store.continue586
  %715 = or disjoint i64 %index524, 30
  %716 = getelementptr inbounds %struct._FlConn, ptr %408, i64 %715, i32 16
  store i8 1, ptr %716, align 4, !tbaa !18, !alias.scope !81, !noalias !78
  br label %pred.store.continue588

pred.store.continue588:                           ; preds = %pred.store.if587, %pred.store.continue586
  %717 = extractelement <16 x i1> %625, i64 15
  br i1 %717, label %pred.store.if589, label %pred.store.continue590

pred.store.if589:                                 ; preds = %pred.store.continue588
  %718 = or disjoint i64 %index524, 31
  %719 = getelementptr inbounds %struct._FlConn, ptr %408, i64 %718, i32 16
  store i8 1, ptr %719, align 4, !tbaa !18, !alias.scope !81, !noalias !78
  br label %pred.store.continue590

pred.store.continue590:                           ; preds = %pred.store.if589, %pred.store.continue588
  %index.next591 = add nuw i64 %index524, 32
  %720 = icmp eq i64 %index.next591, %n.vec522
  br i1 %720, label %middle.block514, label %vector.body523, !llvm.loop !83

middle.block514:                                  ; preds = %pred.store.continue590
  br i1 %cmp.n592, label %.loopexit, label %vec.epilog.iter.check596

vec.epilog.iter.check596:                         ; preds = %middle.block514
  br i1 %min.epilog.iters.check598, label %vec.epilog.scalar.ph594.preheader, label %vec.epilog.ph595

vec.epilog.ph595:                                 ; preds = %vector.main.loop.iter.check519, %vec.epilog.iter.check596
  %vec.epilog.resume.val599 = phi i64 [ %n.vec522, %vec.epilog.iter.check596 ], [ 0, %vector.main.loop.iter.check519 ]
  br label %vec.epilog.vector.body603

vec.epilog.vector.body603:                        ; preds = %pred.store.continue621, %vec.epilog.ph595
  %index604 = phi i64 [ %vec.epilog.resume.val599, %vec.epilog.ph595 ], [ %index.next622, %pred.store.continue621 ]
  %721 = getelementptr inbounds i8, ptr %620, i64 %index604
  %wide.load605 = load <8 x i8>, ptr %721, align 1, !tbaa !11, !alias.scope !84
  %722 = icmp ne <8 x i8> %wide.load605, zeroinitializer
  %723 = extractelement <8 x i1> %722, i64 0
  br i1 %723, label %pred.store.if606, label %pred.store.continue607

pred.store.if606:                                 ; preds = %vec.epilog.vector.body603
  %724 = getelementptr inbounds %struct._FlConn, ptr %408, i64 %index604, i32 16
  store i8 1, ptr %724, align 4, !tbaa !18, !alias.scope !87, !noalias !84
  br label %pred.store.continue607

pred.store.continue607:                           ; preds = %pred.store.if606, %vec.epilog.vector.body603
  %725 = extractelement <8 x i1> %722, i64 1
  br i1 %725, label %pred.store.if608, label %pred.store.continue609

pred.store.if608:                                 ; preds = %pred.store.continue607
  %726 = or disjoint i64 %index604, 1
  %727 = getelementptr inbounds %struct._FlConn, ptr %408, i64 %726, i32 16
  store i8 1, ptr %727, align 4, !tbaa !18, !alias.scope !87, !noalias !84
  br label %pred.store.continue609

pred.store.continue609:                           ; preds = %pred.store.if608, %pred.store.continue607
  %728 = extractelement <8 x i1> %722, i64 2
  br i1 %728, label %pred.store.if610, label %pred.store.continue611

pred.store.if610:                                 ; preds = %pred.store.continue609
  %729 = or disjoint i64 %index604, 2
  %730 = getelementptr inbounds %struct._FlConn, ptr %408, i64 %729, i32 16
  store i8 1, ptr %730, align 4, !tbaa !18, !alias.scope !87, !noalias !84
  br label %pred.store.continue611

pred.store.continue611:                           ; preds = %pred.store.if610, %pred.store.continue609
  %731 = extractelement <8 x i1> %722, i64 3
  br i1 %731, label %pred.store.if612, label %pred.store.continue613

pred.store.if612:                                 ; preds = %pred.store.continue611
  %732 = or disjoint i64 %index604, 3
  %733 = getelementptr inbounds %struct._FlConn, ptr %408, i64 %732, i32 16
  store i8 1, ptr %733, align 4, !tbaa !18, !alias.scope !87, !noalias !84
  br label %pred.store.continue613

pred.store.continue613:                           ; preds = %pred.store.if612, %pred.store.continue611
  %734 = extractelement <8 x i1> %722, i64 4
  br i1 %734, label %pred.store.if614, label %pred.store.continue615

pred.store.if614:                                 ; preds = %pred.store.continue613
  %735 = or disjoint i64 %index604, 4
  %736 = getelementptr inbounds %struct._FlConn, ptr %408, i64 %735, i32 16
  store i8 1, ptr %736, align 4, !tbaa !18, !alias.scope !87, !noalias !84
  br label %pred.store.continue615

pred.store.continue615:                           ; preds = %pred.store.if614, %pred.store.continue613
  %737 = extractelement <8 x i1> %722, i64 5
  br i1 %737, label %pred.store.if616, label %pred.store.continue617

pred.store.if616:                                 ; preds = %pred.store.continue615
  %738 = or disjoint i64 %index604, 5
  %739 = getelementptr inbounds %struct._FlConn, ptr %408, i64 %738, i32 16
  store i8 1, ptr %739, align 4, !tbaa !18, !alias.scope !87, !noalias !84
  br label %pred.store.continue617

pred.store.continue617:                           ; preds = %pred.store.if616, %pred.store.continue615
  %740 = extractelement <8 x i1> %722, i64 6
  br i1 %740, label %pred.store.if618, label %pred.store.continue619

pred.store.if618:                                 ; preds = %pred.store.continue617
  %741 = or disjoint i64 %index604, 6
  %742 = getelementptr inbounds %struct._FlConn, ptr %408, i64 %741, i32 16
  store i8 1, ptr %742, align 4, !tbaa !18, !alias.scope !87, !noalias !84
  br label %pred.store.continue619

pred.store.continue619:                           ; preds = %pred.store.if618, %pred.store.continue617
  %743 = extractelement <8 x i1> %722, i64 7
  br i1 %743, label %pred.store.if620, label %pred.store.continue621

pred.store.if620:                                 ; preds = %pred.store.continue619
  %744 = or disjoint i64 %index604, 7
  %745 = getelementptr inbounds %struct._FlConn, ptr %408, i64 %744, i32 16
  store i8 1, ptr %745, align 4, !tbaa !18, !alias.scope !87, !noalias !84
  br label %pred.store.continue621

pred.store.continue621:                           ; preds = %pred.store.if620, %pred.store.continue619
  %index.next622 = add nuw i64 %index604, 8
  %746 = icmp eq i64 %index.next622, %n.vec601
  br i1 %746, label %vec.epilog.middle.block593, label %vec.epilog.vector.body603, !llvm.loop !89

vec.epilog.middle.block593:                       ; preds = %pred.store.continue621
  br i1 %cmp.n623, label %.loopexit, label %vec.epilog.scalar.ph594.preheader

vec.epilog.scalar.ph594.preheader:                ; preds = %vec.epilog.middle.block593, %vector.memcheck507, %iter.check517, %vec.epilog.iter.check596
  %indvars.iv268.ph = phi i64 [ 0, %iter.check517 ], [ 0, %vector.memcheck507 ], [ %n.vec522, %vec.epilog.iter.check596 ], [ %n.vec601, %vec.epilog.middle.block593 ]
  br i1 %lcmp.mod770.not, label %vec.epilog.scalar.ph594.prol.loopexit, label %vec.epilog.scalar.ph594.prol

vec.epilog.scalar.ph594.prol:                     ; preds = %vec.epilog.scalar.ph594.preheader
  %747 = getelementptr inbounds i8, ptr %620, i64 %indvars.iv268.ph
  %748 = load i8, ptr %747, align 1, !tbaa !11
  %.not95.prol = icmp eq i8 %748, 0
  br i1 %.not95.prol, label %vec.epilog.scalar.ph594.prol.loopexit.unr-lcssa, label %749

749:                                              ; preds = %vec.epilog.scalar.ph594.prol
  %750 = getelementptr inbounds %struct._FlConn, ptr %408, i64 %indvars.iv268.ph, i32 16
  store i8 1, ptr %750, align 4, !tbaa !18
  br label %vec.epilog.scalar.ph594.prol.loopexit.unr-lcssa

vec.epilog.scalar.ph594.prol.loopexit.unr-lcssa:  ; preds = %749, %vec.epilog.scalar.ph594.prol
  %indvars.iv.next269.prol = or disjoint i64 %indvars.iv268.ph, 1
  br label %vec.epilog.scalar.ph594.prol.loopexit

vec.epilog.scalar.ph594.prol.loopexit:            ; preds = %vec.epilog.scalar.ph594.prol.loopexit.unr-lcssa, %vec.epilog.scalar.ph594.preheader
  %indvars.iv268.unr = phi i64 [ %indvars.iv268.ph, %vec.epilog.scalar.ph594.preheader ], [ %indvars.iv.next269.prol, %vec.epilog.scalar.ph594.prol.loopexit.unr-lcssa ]
  %751 = icmp eq i64 %indvars.iv268.ph, %414
  br i1 %751, label %.loopexit, label %vec.epilog.scalar.ph594

vec.epilog.scalar.ph594:                          ; preds = %vec.epilog.scalar.ph594.prol.loopexit, %760
  %indvars.iv268 = phi i64 [ %indvars.iv.next269.1, %760 ], [ %indvars.iv268.unr, %vec.epilog.scalar.ph594.prol.loopexit ]
  %752 = getelementptr inbounds i8, ptr %620, i64 %indvars.iv268
  %753 = load i8, ptr %752, align 1, !tbaa !11
  %.not95 = icmp eq i8 %753, 0
  br i1 %.not95, label %vec.epilog.scalar.ph594.1, label %754

754:                                              ; preds = %vec.epilog.scalar.ph594
  %755 = getelementptr inbounds %struct._FlConn, ptr %408, i64 %indvars.iv268, i32 16
  store i8 1, ptr %755, align 4, !tbaa !18
  br label %vec.epilog.scalar.ph594.1

vec.epilog.scalar.ph594.1:                        ; preds = %vec.epilog.scalar.ph594, %754
  %indvars.iv.next269 = add nuw nsw i64 %indvars.iv268, 1
  %756 = getelementptr inbounds i8, ptr %620, i64 %indvars.iv.next269
  %757 = load i8, ptr %756, align 1, !tbaa !11
  %.not95.1 = icmp eq i8 %757, 0
  br i1 %.not95.1, label %760, label %758

758:                                              ; preds = %vec.epilog.scalar.ph594.1
  %759 = getelementptr inbounds %struct._FlConn, ptr %408, i64 %indvars.iv.next269, i32 16
  store i8 1, ptr %759, align 4, !tbaa !18
  br label %760

760:                                              ; preds = %758, %vec.epilog.scalar.ph594.1
  %indvars.iv.next269.1 = add nuw nsw i64 %indvars.iv268, 2
  %exitcond272.not.1 = icmp eq i64 %indvars.iv.next269.1, %wide.trip.count271
  br i1 %exitcond272.not.1, label %.loopexit, label %vec.epilog.scalar.ph594, !llvm.loop !90

.lr.ph148.split:                                  ; preds = %.lr.ph148.split, %.lr.ph148.split.preheader.new
  %indvars.iv253 = phi i64 [ 0, %.lr.ph148.split.preheader.new ], [ %indvars.iv.next254.3, %.lr.ph148.split ]
  %niter766 = phi i64 [ 0, %.lr.ph148.split.preheader.new ], [ %niter766.next.3, %.lr.ph148.split ]
  %761 = getelementptr inbounds i32, ptr %469, i64 %indvars.iv253
  %762 = load i32, ptr %761, align 4, !tbaa !24
  %763 = sext i32 %762 to i64
  %764 = getelementptr inbounds %struct._FlConn, ptr %408, i64 %763, i32 16
  store i8 1, ptr %764, align 4, !tbaa !18
  %indvars.iv.next254 = or disjoint i64 %indvars.iv253, 1
  %765 = getelementptr inbounds i32, ptr %469, i64 %indvars.iv.next254
  %766 = load i32, ptr %765, align 4, !tbaa !24
  %767 = sext i32 %766 to i64
  %768 = getelementptr inbounds %struct._FlConn, ptr %408, i64 %767, i32 16
  store i8 1, ptr %768, align 4, !tbaa !18
  %indvars.iv.next254.1 = or disjoint i64 %indvars.iv253, 2
  %769 = getelementptr inbounds i32, ptr %469, i64 %indvars.iv.next254.1
  %770 = load i32, ptr %769, align 4, !tbaa !24
  %771 = sext i32 %770 to i64
  %772 = getelementptr inbounds %struct._FlConn, ptr %408, i64 %771, i32 16
  store i8 1, ptr %772, align 4, !tbaa !18
  %indvars.iv.next254.2 = or disjoint i64 %indvars.iv253, 3
  %773 = getelementptr inbounds i32, ptr %469, i64 %indvars.iv.next254.2
  %774 = load i32, ptr %773, align 4, !tbaa !24
  %775 = sext i32 %774 to i64
  %776 = getelementptr inbounds %struct._FlConn, ptr %408, i64 %775, i32 16
  store i8 1, ptr %776, align 4, !tbaa !18
  %indvars.iv.next254.3 = add nuw nsw i64 %indvars.iv253, 4
  %niter766.next.3 = add i64 %niter766, 4
  %niter766.ncmp.3 = icmp eq i64 %niter766.next.3, %unroll_iter765
  br i1 %niter766.ncmp.3, label %.loopexit.loopexit741.unr-lcssa, label %.lr.ph148.split, !llvm.loop !77

.loopexit.loopexit741.unr-lcssa:                  ; preds = %.lr.ph148.split, %.lr.ph148.split.preheader
  %indvars.iv253.unr = phi i64 [ 0, %.lr.ph148.split.preheader ], [ %indvars.iv.next254.3, %.lr.ph148.split ]
  %lcmp.mod764.not = icmp eq i64 %xtraiter762, 0
  br i1 %lcmp.mod764.not, label %.loopexit, label %.lr.ph148.split.epil

.lr.ph148.split.epil:                             ; preds = %.loopexit.loopexit741.unr-lcssa, %.lr.ph148.split.epil
  %indvars.iv253.epil = phi i64 [ %indvars.iv.next254.epil, %.lr.ph148.split.epil ], [ %indvars.iv253.unr, %.loopexit.loopexit741.unr-lcssa ]
  %epil.iter763 = phi i64 [ %epil.iter763.next, %.lr.ph148.split.epil ], [ 0, %.loopexit.loopexit741.unr-lcssa ]
  %777 = getelementptr inbounds i32, ptr %469, i64 %indvars.iv253.epil
  %778 = load i32, ptr %777, align 4, !tbaa !24
  %779 = sext i32 %778 to i64
  %780 = getelementptr inbounds %struct._FlConn, ptr %408, i64 %779, i32 16
  store i8 1, ptr %780, align 4, !tbaa !18
  %indvars.iv.next254.epil = add nuw nsw i64 %indvars.iv253.epil, 1
  %epil.iter763.next = add i64 %epil.iter763, 1
  %epil.iter763.cmp.not = icmp eq i64 %epil.iter763.next, %xtraiter762
  br i1 %epil.iter763.cmp.not, label %.loopexit, label %.lr.ph148.split.epil, !llvm.loop !91

.loopexit:                                        ; preds = %.loopexit.loopexit741.unr-lcssa, %.lr.ph148.split.epil, %._crit_edge146.us, %vec.epilog.scalar.ph594.prol.loopexit, %760, %middle.block514, %vec.epilog.middle.block593, %.preheader, %617
  %indvars.iv.next274 = add nuw nsw i64 %indvars.iv273, 1
  %exitcond277.not = icmp eq i64 %indvars.iv.next274, %wide.trip.count276
  br i1 %exitcond277.not, label %._crit_edge154, label %454, !llvm.loop !92

._crit_edge154:                                   ; preds = %.loopexit, %.preheader104
  ret void
}

; Function Attrs: nounwind uwtable
declare dso_local zeroext i8 @i_inc_influences_j(i32 noundef, i32 noundef) local_unnamed_addr #3

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 = { noreturn 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 #2 = { mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "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 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 #4 = { nounwind allocsize(0,1) }
attributes #5 = { noreturn nounwind }

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = distinct !{!9, !10}
!10 = !{!"llvm.loop.mustprogress"}
!11 = !{!7, !7, i64 0}
!12 = distinct !{!12, !10}
!13 = distinct !{!13, !10, !14}
!14 = !{!"llvm.loop.unswitch.partial.disable"}
!15 = distinct !{!15, !10}
!16 = distinct !{!16, !10}
!17 = distinct !{!17, !10, !14}
!18 = !{!19, !7, i64 108}
!19 = !{!"_FlConn", !6, i64 0, !20, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !20, i64 40, !6, i64 48, !6, i64 56, !6, i64 64, !20, i64 72, !7, i64 76, !6, i64 80, !6, i64 88, !20, i64 96, !7, i64 100, !21, i64 104, !7, i64 108, !6, i64 112, !6, i64 120, !7, i64 128, !21, i64 132, !20, i64 136}
!20 = !{!"int", !7, i64 0}
!21 = !{!"float", !7, i64 0}
!22 = distinct !{!22, !23}
!23 = !{!"llvm.loop.unroll.disable"}
!24 = !{!20, !20, i64 0}
!25 = !{!26, !20, i64 56}
!26 = !{!"_EfConn", !20, i64 0, !7, i64 4, !7, i64 5, !21, i64 8, !6, i64 16, !20, i64 24, !6, i64 32, !6, i64 40, !6, i64 48, !20, i64 56, !6, i64 64, !6, i64 72, !6, i64 80, !20, i64 88, !6, i64 96, !20, i64 104, !6, i64 112, !6, i64 120, !6, i64 128, !20, i64 136, !6, i64 144, !6, i64 152, !6, i64 160, !20, i64 168, !6, i64 176, !20, i64 184, !20, i64 188, !21, i64 192, !7, i64 196, !20, i64 200, !7, i64 204, !20, i64 208, !20, i64 212}
!27 = distinct !{!27, !10}
!28 = !{!26, !6, i64 40}
!29 = !{!19, !7, i64 76}
!30 = !{!31}
!31 = distinct !{!31, !32}
!32 = distinct !{!32, !"LVerDomain"}
!33 = !{!34}
!34 = distinct !{!34, !32}
!35 = distinct !{!35, !10, !36, !37}
!36 = !{!"llvm.loop.isvectorized", i32 1}
!37 = !{!"llvm.loop.unroll.runtime.disable"}
!38 = !{!39}
!39 = distinct !{!39, !40}
!40 = distinct !{!40, !"LVerDomain"}
!41 = !{!42}
!42 = distinct !{!42, !40}
!43 = distinct !{!43, !10, !36, !37}
!44 = distinct !{!44, !10}
!45 = distinct !{!45, !10, !36}
!46 = !{!19, !20, i64 96}
!47 = !{!19, !6, i64 80}
!48 = !{!49}
!49 = distinct !{!49, !50}
!50 = distinct !{!50, !"LVerDomain"}
!51 = !{!52}
!52 = distinct !{!52, !50}
!53 = distinct !{!53, !10, !36, !37}
!54 = !{!55}
!55 = distinct !{!55, !56}
!56 = distinct !{!56, !"LVerDomain"}
!57 = !{!58}
!58 = distinct !{!58, !56}
!59 = distinct !{!59, !10, !36, !37}
!60 = distinct !{!60, !10, !36}
!61 = distinct !{!61, !10}
!62 = distinct !{!62, !10}
!63 = distinct !{!63, !23}
!64 = !{!65}
!65 = distinct !{!65, !66}
!66 = distinct !{!66, !"LVerDomain"}
!67 = !{!68}
!68 = distinct !{!68, !66}
!69 = distinct !{!69, !10, !36, !37}
!70 = !{!71}
!71 = distinct !{!71, !72}
!72 = distinct !{!72, !"LVerDomain"}
!73 = !{!74}
!74 = distinct !{!74, !72}
!75 = distinct !{!75, !10, !36, !37}
!76 = distinct !{!76, !10, !36}
!77 = distinct !{!77, !10}
!78 = !{!79}
!79 = distinct !{!79, !80}
!80 = distinct !{!80, !"LVerDomain"}
!81 = !{!82}
!82 = distinct !{!82, !80}
!83 = distinct !{!83, !10, !36, !37}
!84 = !{!85}
!85 = distinct !{!85, !86}
!86 = distinct !{!86, !"LVerDomain"}
!87 = !{!88}
!88 = distinct !{!88, !86}
!89 = distinct !{!89, !10, !36, !37}
!90 = distinct !{!90, !10, !36}
!91 = distinct !{!91, !23}
!92 = distinct !{!92, !10}


; Effective O3 passes: CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopLoadEliminationPass,LoopRotatePass,LoopSimplifyCFGPass,LoopSimplifyPass,LoopUnrollPass,LoopVectorizePass,SCCPPass,SROAPass,SimpleLoopUnswitchPass,SimplifyCFGPass,TailCallElimPass