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

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

@gnum_ft_conn = external global i32, align 4
@gnum_fl_conn = external global i32, align 4
@gop_conn = external global ptr, align 8
@gft_conn = external global ptr, align 8
@result_to_dest.first_call = external hidden global i8, align 1
@result_to_dest.in_source = external hidden global ptr, align 8
@result_to_dest.in_dest = external hidden global ptr, align 8
@result_to_dest.in_del = external hidden global ptr, align 8
@result_to_dest.true_ef = external hidden global ptr, align 8
@result_to_dest.assigned = external hidden global ptr, align 8
@result_to_dest.del = external hidden global ptr, align 8
@result_to_dest.num_del = external hidden global i32, align 4
@gnum_ef_conn = external global i32, align 4
@gef_conn = external global ptr, align 8

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

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

; Function Attrs: nounwind uwtable
define dso_local zeroext i8 @result_to_dest(ptr noundef %0, ptr noundef %1, i32 noundef %2) #1 {
  %4 = alloca i8, align 1
  %5 = alloca ptr, align 8
  %6 = alloca ptr, align 8
  %7 = alloca i32, align 4
  %8 = alloca i32, align 4
  %9 = alloca i32, align 4
  %10 = alloca i32, align 4
  %11 = alloca i32, align 4
  %12 = alloca float, align 4
  %13 = alloca float, align 4
  %14 = alloca i32, align 4
  %15 = alloca i8, align 1
  %16 = alloca i32, align 4
  store ptr %0, ptr %5, align 8, !tbaa !5
  store ptr %1, ptr %6, align 8, !tbaa !5
  store i32 %2, ptr %7, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr %15) #4
  store i8 0, ptr %15, align 1, !tbaa !11
  %17 = load i8, ptr @result_to_dest.first_call, align 1, !tbaa !11
  %18 = icmp ne i8 %17, 0
  br i1 %18, label %19, label %85

19:                                               ; preds = %3
  %20 = load i32, ptr @gnum_ft_conn, align 4, !tbaa !9
  %21 = sext i32 %20 to i64
  %22 = call noalias ptr @calloc(i64 noundef %21, i64 noundef 1) #5
  store ptr %22, ptr @result_to_dest.in_source, align 8, !tbaa !5
  %23 = load i32, ptr @gnum_ft_conn, align 4, !tbaa !9
  %24 = sext i32 %23 to i64
  %25 = call noalias ptr @calloc(i64 noundef %24, i64 noundef 1) #5
  store ptr %25, ptr @result_to_dest.in_dest, align 8, !tbaa !5
  %26 = load i32, ptr @gnum_ft_conn, align 4, !tbaa !9
  %27 = sext i32 %26 to i64
  %28 = call noalias ptr @calloc(i64 noundef %27, i64 noundef 1) #5
  store ptr %28, ptr @result_to_dest.in_del, align 8, !tbaa !5
  %29 = load i32, ptr @gnum_ef_conn, align 4, !tbaa !9
  %30 = sext i32 %29 to i64
  %31 = call noalias ptr @calloc(i64 noundef %30, i64 noundef 1) #5
  store ptr %31, ptr @result_to_dest.true_ef, align 8, !tbaa !5
  %32 = load i32, ptr @gnum_fl_conn, align 4, !tbaa !9
  %33 = sext i32 %32 to i64
  %34 = call noalias ptr @calloc(i64 noundef %33, i64 noundef 1) #5
  store ptr %34, ptr @result_to_dest.assigned, align 8, !tbaa !5
  %35 = load i32, ptr @gnum_ft_conn, align 4, !tbaa !9
  %36 = sext i32 %35 to i64
  %37 = call noalias ptr @calloc(i64 noundef %36, i64 noundef 4) #5
  store ptr %37, ptr @result_to_dest.del, align 8, !tbaa !5
  store i32 0, ptr %8, align 4, !tbaa !9
  br label %38

38:                                               ; preds = %55, %19
  %39 = load i32, ptr %8, align 4, !tbaa !9
  %40 = load i32, ptr @gnum_ft_conn, align 4, !tbaa !9
  %41 = icmp slt i32 %39, %40
  br i1 %41, label %42, label %58

42:                                               ; preds = %38
  %43 = load ptr, ptr @result_to_dest.in_source, align 8, !tbaa !5
  %44 = load i32, ptr %8, align 4, !tbaa !9
  %45 = sext i32 %44 to i64
  %46 = getelementptr inbounds i8, ptr %43, i64 %45
  store i8 0, ptr %46, align 1, !tbaa !11
  %47 = load ptr, ptr @result_to_dest.in_dest, align 8, !tbaa !5
  %48 = load i32, ptr %8, align 4, !tbaa !9
  %49 = sext i32 %48 to i64
  %50 = getelementptr inbounds i8, ptr %47, i64 %49
  store i8 0, ptr %50, align 1, !tbaa !11
  %51 = load ptr, ptr @result_to_dest.in_del, align 8, !tbaa !5
  %52 = load i32, ptr %8, align 4, !tbaa !9
  %53 = sext i32 %52 to i64
  %54 = getelementptr inbounds i8, ptr %51, i64 %53
  store i8 0, ptr %54, align 1, !tbaa !11
  br label %55

55:                                               ; preds = %42
  %56 = load i32, ptr %8, align 4, !tbaa !9
  %57 = add nsw i32 %56, 1
  store i32 %57, ptr %8, align 4, !tbaa !9
  br label %38, !llvm.loop !12

58:                                               ; preds = %38
  store i32 0, ptr %8, align 4, !tbaa !9
  br label %59

59:                                               ; preds = %68, %58
  %60 = load i32, ptr %8, align 4, !tbaa !9
  %61 = load i32, ptr @gnum_ef_conn, align 4, !tbaa !9
  %62 = icmp slt i32 %60, %61
  br i1 %62, label %63, label %71

63:                                               ; preds = %59
  %64 = load ptr, ptr @result_to_dest.true_ef, align 8, !tbaa !5
  %65 = load i32, ptr %8, align 4, !tbaa !9
  %66 = sext i32 %65 to i64
  %67 = getelementptr inbounds i8, ptr %64, i64 %66
  store i8 0, ptr %67, align 1, !tbaa !11
  br label %68

68:                                               ; preds = %63
  %69 = load i32, ptr %8, align 4, !tbaa !9
  %70 = add nsw i32 %69, 1
  store i32 %70, ptr %8, align 4, !tbaa !9
  br label %59, !llvm.loop !14

71:                                               ; preds = %59
  store i32 0, ptr %8, align 4, !tbaa !9
  br label %72

72:                                               ; preds = %81, %71
  %73 = load i32, ptr %8, align 4, !tbaa !9
  %74 = load i32, ptr @gnum_fl_conn, align 4, !tbaa !9
  %75 = icmp slt i32 %73, %74
  br i1 %75, label %76, label %84

76:                                               ; preds = %72
  %77 = load ptr, ptr @result_to_dest.assigned, align 8, !tbaa !5
  %78 = load i32, ptr %8, align 4, !tbaa !9
  %79 = sext i32 %78 to i64
  %80 = getelementptr inbounds i8, ptr %77, i64 %79
  store i8 0, ptr %80, align 1, !tbaa !11
  br label %81

81:                                               ; preds = %76
  %82 = load i32, ptr %8, align 4, !tbaa !9
  %83 = add nsw i32 %82, 1
  store i32 %83, ptr %8, align 4, !tbaa !9
  br label %72, !llvm.loop !15

84:                                               ; preds = %72
  store i8 0, ptr @result_to_dest.first_call, align 1, !tbaa !11
  br label %85

85:                                               ; preds = %84, %3
  store i32 0, ptr %8, align 4, !tbaa !9
  br label %86

86:                                               ; preds = %103, %85
  %87 = load i32, ptr %8, align 4, !tbaa !9
  %88 = load ptr, ptr %6, align 8, !tbaa !5
  %89 = getelementptr inbounds %struct._State, ptr %88, i32 0, i32 1
  %90 = load i32, ptr %89, align 8, !tbaa !16
  %91 = icmp slt i32 %87, %90
  br i1 %91, label %92, label %106

92:                                               ; preds = %86
  %93 = load ptr, ptr @result_to_dest.in_source, align 8, !tbaa !5
  %94 = load ptr, ptr %6, align 8, !tbaa !5
  %95 = getelementptr inbounds %struct._State, ptr %94, i32 0, i32 0
  %96 = load ptr, ptr %95, align 8, !tbaa !18
  %97 = load i32, ptr %8, align 4, !tbaa !9
  %98 = sext i32 %97 to i64
  %99 = getelementptr inbounds i32, ptr %96, i64 %98
  %100 = load i32, ptr %99, align 4, !tbaa !9
  %101 = sext i32 %100 to i64
  %102 = getelementptr inbounds i8, ptr %93, i64 %101
  store i8 1, ptr %102, align 1, !tbaa !11
  br label %103

103:                                              ; preds = %92
  %104 = load i32, ptr %8, align 4, !tbaa !9
  %105 = add nsw i32 %104, 1
  store i32 %105, ptr %8, align 4, !tbaa !9
  br label %86, !llvm.loop !19

106:                                              ; preds = %86
  store i32 0, ptr @result_to_dest.num_del, align 4, !tbaa !9
  store i32 0, ptr %8, align 4, !tbaa !9
  br label %107

107:                                              ; preds = %419, %106
  %108 = load i32, ptr %8, align 4, !tbaa !9
  %109 = load ptr, ptr @gop_conn, align 8, !tbaa !5
  %110 = load i32, ptr %7, align 4, !tbaa !9
  %111 = sext i32 %110 to i64
  %112 = getelementptr inbounds %struct._OpConn, ptr %109, i64 %111
  %113 = getelementptr inbounds %struct._OpConn, ptr %112, i32 0, i32 3
  %114 = load i32, ptr %113, align 8, !tbaa !20
  %115 = icmp slt i32 %108, %114
  br i1 %115, label %116, label %422

116:                                              ; preds = %107
  %117 = load ptr, ptr @gop_conn, align 8, !tbaa !5
  %118 = load i32, ptr %7, align 4, !tbaa !9
  %119 = sext i32 %118 to i64
  %120 = getelementptr inbounds %struct._OpConn, ptr %117, i64 %119
  %121 = getelementptr inbounds %struct._OpConn, ptr %120, i32 0, i32 2
  %122 = load ptr, ptr %121, align 8, !tbaa !23
  %123 = load i32, ptr %8, align 4, !tbaa !9
  %124 = sext i32 %123 to i64
  %125 = getelementptr inbounds i32, ptr %122, i64 %124
  %126 = load i32, ptr %125, align 4, !tbaa !9
  store i32 %126, ptr %10, align 4, !tbaa !9
  store i32 0, ptr %9, align 4, !tbaa !9
  br label %127

127:                                              ; preds = %154, %116
  %128 = load i32, ptr %9, align 4, !tbaa !9
  %129 = load ptr, ptr @gef_conn, align 8, !tbaa !5
  %130 = load i32, ptr %10, align 4, !tbaa !9
  %131 = sext i32 %130 to i64
  %132 = getelementptr inbounds %struct._EfConn, ptr %129, i64 %131
  %133 = getelementptr inbounds %struct._EfConn, ptr %132, i32 0, i32 5
  %134 = load i32, ptr %133, align 8, !tbaa !24
  %135 = icmp slt i32 %128, %134
  br i1 %135, label %136, label %157

136:                                              ; preds = %127
  %137 = load ptr, ptr @result_to_dest.in_source, align 8, !tbaa !5
  %138 = load ptr, ptr @gef_conn, align 8, !tbaa !5
  %139 = load i32, ptr %10, align 4, !tbaa !9
  %140 = sext i32 %139 to i64
  %141 = getelementptr inbounds %struct._EfConn, ptr %138, i64 %140
  %142 = getelementptr inbounds %struct._EfConn, ptr %141, i32 0, i32 4
  %143 = load ptr, ptr %142, align 8, !tbaa !26
  %144 = load i32, ptr %9, align 4, !tbaa !9
  %145 = sext i32 %144 to i64
  %146 = getelementptr inbounds i32, ptr %143, i64 %145
  %147 = load i32, ptr %146, align 4, !tbaa !9
  %148 = sext i32 %147 to i64
  %149 = getelementptr inbounds i8, ptr %137, i64 %148
  %150 = load i8, ptr %149, align 1, !tbaa !11
  %151 = icmp ne i8 %150, 0
  br i1 %151, label %153, label %152

152:                                              ; preds = %136
  br label %157

153:                                              ; preds = %136
  br label %154

154:                                              ; preds = %153
  %155 = load i32, ptr %9, align 4, !tbaa !9
  %156 = add nsw i32 %155, 1
  store i32 %156, ptr %9, align 4, !tbaa !9
  br label %127, !llvm.loop !27

157:                                              ; preds = %152, %127
  %158 = load i32, ptr %9, align 4, !tbaa !9
  %159 = load ptr, ptr @gef_conn, align 8, !tbaa !5
  %160 = load i32, ptr %10, align 4, !tbaa !9
  %161 = sext i32 %160 to i64
  %162 = getelementptr inbounds %struct._EfConn, ptr %159, i64 %161
  %163 = getelementptr inbounds %struct._EfConn, ptr %162, i32 0, i32 5
  %164 = load i32, ptr %163, align 8, !tbaa !24
  %165 = icmp slt i32 %158, %164
  br i1 %165, label %166, label %167

166:                                              ; preds = %157
  br label %419

167:                                              ; preds = %157
  store i32 0, ptr %9, align 4, !tbaa !9
  br label %168

168:                                              ; preds = %277, %167
  %169 = load i32, ptr %9, align 4, !tbaa !9
  %170 = load ptr, ptr @gef_conn, align 8, !tbaa !5
  %171 = load i32, ptr %10, align 4, !tbaa !9
  %172 = sext i32 %171 to i64
  %173 = getelementptr inbounds %struct._EfConn, ptr %170, i64 %172
  %174 = getelementptr inbounds %struct._EfConn, ptr %173, i32 0, i32 9
  %175 = load i32, ptr %174, align 8, !tbaa !28
  %176 = icmp slt i32 %169, %175
  br i1 %176, label %177, label %280

177:                                              ; preds = %168
  %178 = load ptr, ptr @gef_conn, align 8, !tbaa !5
  %179 = load i32, ptr %10, align 4, !tbaa !9
  %180 = sext i32 %179 to i64
  %181 = getelementptr inbounds %struct._EfConn, ptr %178, i64 %180
  %182 = getelementptr inbounds %struct._EfConn, ptr %181, i32 0, i32 7
  %183 = load ptr, ptr %182, align 8, !tbaa !29
  %184 = load i32, ptr %9, align 4, !tbaa !9
  %185 = sext i32 %184 to i64
  %186 = getelementptr inbounds i32, ptr %183, i64 %185
  %187 = load i32, ptr %186, align 4, !tbaa !9
  store i32 %187, ptr %11, align 4, !tbaa !9
  %188 = load ptr, ptr @gef_conn, align 8, !tbaa !5
  %189 = load i32, ptr %10, align 4, !tbaa !9
  %190 = sext i32 %189 to i64
  %191 = getelementptr inbounds %struct._EfConn, ptr %188, i64 %190
  %192 = getelementptr inbounds %struct._EfConn, ptr %191, i32 0, i32 8
  %193 = load ptr, ptr %192, align 8, !tbaa !30
  %194 = load i32, ptr %9, align 4, !tbaa !9
  %195 = sext i32 %194 to i64
  %196 = getelementptr inbounds float, ptr %193, i64 %195
  %197 = load float, ptr %196, align 4, !tbaa !31
  store float %197, ptr %12, align 4, !tbaa !31
  %198 = load ptr, ptr @gef_conn, align 8, !tbaa !5
  %199 = load i32, ptr %10, align 4, !tbaa !9
  %200 = sext i32 %199 to i64
  %201 = getelementptr inbounds %struct._EfConn, ptr %198, i64 %200
  %202 = getelementptr inbounds %struct._EfConn, ptr %201, i32 0, i32 6
  %203 = load ptr, ptr %202, align 8, !tbaa !32
  %204 = load i32, ptr %9, align 4, !tbaa !9
  %205 = sext i32 %204 to i64
  %206 = getelementptr inbounds i32, ptr %203, i64 %205
  %207 = load i32, ptr %206, align 4, !tbaa !9
  store i32 %207, ptr %14, align 4, !tbaa !9
  %208 = load ptr, ptr %6, align 8, !tbaa !5
  %209 = load i32, ptr %11, align 4, !tbaa !9
  %210 = call zeroext i8 @determine_source_val(ptr noundef %208, i32 noundef %209, ptr noundef %13)
  %211 = icmp ne i8 %210, 0
  br i1 %211, label %269, label %212

212:                                              ; preds = %177
  store i32 0, ptr %8, align 4, !tbaa !9
  br label %213

213:                                              ; preds = %226, %212
  %214 = load i32, ptr %8, align 4, !tbaa !9
  %215 = load i32, ptr @result_to_dest.num_del, align 4, !tbaa !9
  %216 = icmp slt i32 %214, %215
  br i1 %216, label %217, label %229

217:                                              ; preds = %213
  %218 = load ptr, ptr @result_to_dest.in_del, align 8, !tbaa !5
  %219 = load ptr, ptr @result_to_dest.del, align 8, !tbaa !5
  %220 = load i32, ptr %8, align 4, !tbaa !9
  %221 = sext i32 %220 to i64
  %222 = getelementptr inbounds i32, ptr %219, i64 %221
  %223 = load i32, ptr %222, align 4, !tbaa !9
  %224 = sext i32 %223 to i64
  %225 = getelementptr inbounds i8, ptr %218, i64 %224
  store i8 0, ptr %225, align 1, !tbaa !11
  br label %226

226:                                              ; preds = %217
  %227 = load i32, ptr %8, align 4, !tbaa !9
  %228 = add nsw i32 %227, 1
  store i32 %228, ptr %8, align 4, !tbaa !9
  br label %213, !llvm.loop !33

229:                                              ; preds = %213
  store i32 0, ptr %8, align 4, !tbaa !9
  br label %230

230:                                              ; preds = %244, %229
  %231 = load i32, ptr %8, align 4, !tbaa !9
  %232 = load ptr, ptr @gop_conn, align 8, !tbaa !5
  %233 = load i32, ptr %7, align 4, !tbaa !9
  %234 = sext i32 %233 to i64
  %235 = getelementptr inbounds %struct._OpConn, ptr %232, i64 %234
  %236 = getelementptr inbounds %struct._OpConn, ptr %235, i32 0, i32 3
  %237 = load i32, ptr %236, align 8, !tbaa !20
  %238 = icmp slt i32 %231, %237
  br i1 %238, label %239, label %247

239:                                              ; preds = %230
  %240 = load ptr, ptr @result_to_dest.true_ef, align 8, !tbaa !5
  %241 = load i32, ptr %8, align 4, !tbaa !9
  %242 = sext i32 %241 to i64
  %243 = getelementptr inbounds i8, ptr %240, i64 %242
  store i8 0, ptr %243, align 1, !tbaa !11
  br label %244

244:                                              ; preds = %239
  %245 = load i32, ptr %8, align 4, !tbaa !9
  %246 = add nsw i32 %245, 1
  store i32 %246, ptr %8, align 4, !tbaa !9
  br label %230, !llvm.loop !34

247:                                              ; preds = %230
  store i32 0, ptr %8, align 4, !tbaa !9
  br label %248

248:                                              ; preds = %265, %247
  %249 = load i32, ptr %8, align 4, !tbaa !9
  %250 = load ptr, ptr %6, align 8, !tbaa !5
  %251 = getelementptr inbounds %struct._State, ptr %250, i32 0, i32 1
  %252 = load i32, ptr %251, align 8, !tbaa !16
  %253 = icmp slt i32 %249, %252
  br i1 %253, label %254, label %268

254:                                              ; preds = %248
  %255 = load ptr, ptr @result_to_dest.in_source, align 8, !tbaa !5
  %256 = load ptr, ptr %6, align 8, !tbaa !5
  %257 = getelementptr inbounds %struct._State, ptr %256, i32 0, i32 0
  %258 = load ptr, ptr %257, align 8, !tbaa !18
  %259 = load i32, ptr %8, align 4, !tbaa !9
  %260 = sext i32 %259 to i64
  %261 = getelementptr inbounds i32, ptr %258, i64 %260
  %262 = load i32, ptr %261, align 4, !tbaa !9
  %263 = sext i32 %262 to i64
  %264 = getelementptr inbounds i8, ptr %255, i64 %263
  store i8 0, ptr %264, align 1, !tbaa !11
  br label %265

265:                                              ; preds = %254
  %266 = load i32, ptr %8, align 4, !tbaa !9
  %267 = add nsw i32 %266, 1
  store i32 %267, ptr %8, align 4, !tbaa !9
  br label %248, !llvm.loop !35

268:                                              ; preds = %248
  store i8 0, ptr %4, align 1
  store i32 1, ptr %16, align 4
  br label %1293

269:                                              ; preds = %177
  %270 = load i32, ptr %14, align 4, !tbaa !9
  %271 = load float, ptr %13, align 4, !tbaa !31
  %272 = load float, ptr %12, align 4, !tbaa !31
  %273 = call zeroext i8 @number_comparison_holds(i32 noundef %270, float noundef %271, float noundef %272)
  %274 = icmp ne i8 %273, 0
  br i1 %274, label %276, label %275

275:                                              ; preds = %269
  br label %280

276:                                              ; preds = %269
  br label %277

277:                                              ; preds = %276
  %278 = load i32, ptr %9, align 4, !tbaa !9
  %279 = add nsw i32 %278, 1
  store i32 %279, ptr %9, align 4, !tbaa !9
  br label %168, !llvm.loop !36

280:                                              ; preds = %275, %168
  %281 = load i32, ptr %9, align 4, !tbaa !9
  %282 = load ptr, ptr @gef_conn, align 8, !tbaa !5
  %283 = load i32, ptr %10, align 4, !tbaa !9
  %284 = sext i32 %283 to i64
  %285 = getelementptr inbounds %struct._EfConn, ptr %282, i64 %284
  %286 = getelementptr inbounds %struct._EfConn, ptr %285, i32 0, i32 9
  %287 = load i32, ptr %286, align 8, !tbaa !28
  %288 = icmp slt i32 %281, %287
  br i1 %288, label %289, label %290

289:                                              ; preds = %280
  br label %419

290:                                              ; preds = %280
  %291 = load ptr, ptr @gef_conn, align 8, !tbaa !5
  %292 = load i32, ptr %10, align 4, !tbaa !9
  %293 = sext i32 %292 to i64
  %294 = getelementptr inbounds %struct._EfConn, ptr %291, i64 %293
  %295 = getelementptr inbounds %struct._EfConn, ptr %294, i32 0, i32 1
  %296 = load i8, ptr %295, align 4, !tbaa !37
  %297 = icmp ne i8 %296, 0
  br i1 %297, label %298, label %355

298:                                              ; preds = %290
  store i32 0, ptr %8, align 4, !tbaa !9
  br label %299

299:                                              ; preds = %316, %298
  %300 = load i32, ptr %8, align 4, !tbaa !9
  %301 = load ptr, ptr %6, align 8, !tbaa !5
  %302 = getelementptr inbounds %struct._State, ptr %301, i32 0, i32 1
  %303 = load i32, ptr %302, align 8, !tbaa !16
  %304 = icmp slt i32 %300, %303
  br i1 %304, label %305, label %319

305:                                              ; preds = %299
  %306 = load ptr, ptr @result_to_dest.in_source, align 8, !tbaa !5
  %307 = load ptr, ptr %6, align 8, !tbaa !5
  %308 = getelementptr inbounds %struct._State, ptr %307, i32 0, i32 0
  %309 = load ptr, ptr %308, align 8, !tbaa !18
  %310 = load i32, ptr %8, align 4, !tbaa !9
  %311 = sext i32 %310 to i64
  %312 = getelementptr inbounds i32, ptr %309, i64 %311
  %313 = load i32, ptr %312, align 4, !tbaa !9
  %314 = sext i32 %313 to i64
  %315 = getelementptr inbounds i8, ptr %306, i64 %314
  store i8 0, ptr %315, align 1, !tbaa !11
  br label %316

316:                                              ; preds = %305
  %317 = load i32, ptr %8, align 4, !tbaa !9
  %318 = add nsw i32 %317, 1
  store i32 %318, ptr %8, align 4, !tbaa !9
  br label %299, !llvm.loop !38

319:                                              ; preds = %299
  store i32 0, ptr %8, align 4, !tbaa !9
  br label %320

320:                                              ; preds = %333, %319
  %321 = load i32, ptr %8, align 4, !tbaa !9
  %322 = load i32, ptr @result_to_dest.num_del, align 4, !tbaa !9
  %323 = icmp slt i32 %321, %322
  br i1 %323, label %324, label %336

324:                                              ; preds = %320
  %325 = load ptr, ptr @result_to_dest.in_del, align 8, !tbaa !5
  %326 = load ptr, ptr @result_to_dest.del, align 8, !tbaa !5
  %327 = load i32, ptr %8, align 4, !tbaa !9
  %328 = sext i32 %327 to i64
  %329 = getelementptr inbounds i32, ptr %326, i64 %328
  %330 = load i32, ptr %329, align 4, !tbaa !9
  %331 = sext i32 %330 to i64
  %332 = getelementptr inbounds i8, ptr %325, i64 %331
  store i8 0, ptr %332, align 1, !tbaa !11
  br label %333

333:                                              ; preds = %324
  %334 = load i32, ptr %8, align 4, !tbaa !9
  %335 = add nsw i32 %334, 1
  store i32 %335, ptr %8, align 4, !tbaa !9
  br label %320, !llvm.loop !39

336:                                              ; preds = %320
  store i32 0, ptr %8, align 4, !tbaa !9
  br label %337

337:                                              ; preds = %351, %336
  %338 = load i32, ptr %8, align 4, !tbaa !9
  %339 = load ptr, ptr @gop_conn, align 8, !tbaa !5
  %340 = load i32, ptr %7, align 4, !tbaa !9
  %341 = sext i32 %340 to i64
  %342 = getelementptr inbounds %struct._OpConn, ptr %339, i64 %341
  %343 = getelementptr inbounds %struct._OpConn, ptr %342, i32 0, i32 3
  %344 = load i32, ptr %343, align 8, !tbaa !20
  %345 = icmp slt i32 %338, %344
  br i1 %345, label %346, label %354

346:                                              ; preds = %337
  %347 = load ptr, ptr @result_to_dest.true_ef, align 8, !tbaa !5
  %348 = load i32, ptr %8, align 4, !tbaa !9
  %349 = sext i32 %348 to i64
  %350 = getelementptr inbounds i8, ptr %347, i64 %349
  store i8 0, ptr %350, align 1, !tbaa !11
  br label %351

351:                                              ; preds = %346
  %352 = load i32, ptr %8, align 4, !tbaa !9
  %353 = add nsw i32 %352, 1
  store i32 %353, ptr %8, align 4, !tbaa !9
  br label %337, !llvm.loop !40

354:                                              ; preds = %337
  store i8 0, ptr %4, align 1
  store i32 1, ptr %16, align 4
  br label %1293

355:                                              ; preds = %290
  %356 = load ptr, ptr @result_to_dest.true_ef, align 8, !tbaa !5
  %357 = load i32, ptr %8, align 4, !tbaa !9
  %358 = sext i32 %357 to i64
  %359 = getelementptr inbounds i8, ptr %356, i64 %358
  store i8 1, ptr %359, align 1, !tbaa !11
  store i8 1, ptr %15, align 1, !tbaa !11
  store i32 0, ptr %9, align 4, !tbaa !9
  br label %360

360:                                              ; preds = %415, %355
  %361 = load i32, ptr %9, align 4, !tbaa !9
  %362 = load ptr, ptr @gef_conn, align 8, !tbaa !5
  %363 = load i32, ptr %10, align 4, !tbaa !9
  %364 = sext i32 %363 to i64
  %365 = getelementptr inbounds %struct._EfConn, ptr %362, i64 %364
  %366 = getelementptr inbounds %struct._EfConn, ptr %365, i32 0, i32 15
  %367 = load i32, ptr %366, align 8, !tbaa !41
  %368 = icmp slt i32 %361, %367
  br i1 %368, label %369, label %418

369:                                              ; preds = %360
  %370 = load ptr, ptr @result_to_dest.in_del, align 8, !tbaa !5
  %371 = load ptr, ptr @gef_conn, align 8, !tbaa !5
  %372 = load i32, ptr %10, align 4, !tbaa !9
  %373 = sext i32 %372 to i64
  %374 = getelementptr inbounds %struct._EfConn, ptr %371, i64 %373
  %375 = getelementptr inbounds %struct._EfConn, ptr %374, i32 0, i32 14
  %376 = load ptr, ptr %375, align 8, !tbaa !42
  %377 = load i32, ptr %9, align 4, !tbaa !9
  %378 = sext i32 %377 to i64
  %379 = getelementptr inbounds i32, ptr %376, i64 %378
  %380 = load i32, ptr %379, align 4, !tbaa !9
  %381 = sext i32 %380 to i64
  %382 = getelementptr inbounds i8, ptr %370, i64 %381
  %383 = load i8, ptr %382, align 1, !tbaa !11
  %384 = icmp ne i8 %383, 0
  br i1 %384, label %385, label %386

385:                                              ; preds = %369
  br label %415

386:                                              ; preds = %369
  %387 = load ptr, ptr @result_to_dest.in_del, align 8, !tbaa !5
  %388 = load ptr, ptr @gef_conn, align 8, !tbaa !5
  %389 = load i32, ptr %10, align 4, !tbaa !9
  %390 = sext i32 %389 to i64
  %391 = getelementptr inbounds %struct._EfConn, ptr %388, i64 %390
  %392 = getelementptr inbounds %struct._EfConn, ptr %391, i32 0, i32 14
  %393 = load ptr, ptr %392, align 8, !tbaa !42
  %394 = load i32, ptr %9, align 4, !tbaa !9
  %395 = sext i32 %394 to i64
  %396 = getelementptr inbounds i32, ptr %393, i64 %395
  %397 = load i32, ptr %396, align 4, !tbaa !9
  %398 = sext i32 %397 to i64
  %399 = getelementptr inbounds i8, ptr %387, i64 %398
  store i8 1, ptr %399, align 1, !tbaa !11
  %400 = load ptr, ptr @gef_conn, align 8, !tbaa !5
  %401 = load i32, ptr %10, align 4, !tbaa !9
  %402 = sext i32 %401 to i64
  %403 = getelementptr inbounds %struct._EfConn, ptr %400, i64 %402
  %404 = getelementptr inbounds %struct._EfConn, ptr %403, i32 0, i32 14
  %405 = load ptr, ptr %404, align 8, !tbaa !42
  %406 = load i32, ptr %9, align 4, !tbaa !9
  %407 = sext i32 %406 to i64
  %408 = getelementptr inbounds i32, ptr %405, i64 %407
  %409 = load i32, ptr %408, align 4, !tbaa !9
  %410 = load ptr, ptr @result_to_dest.del, align 8, !tbaa !5
  %411 = load i32, ptr @result_to_dest.num_del, align 4, !tbaa !9
  %412 = add nsw i32 %411, 1
  store i32 %412, ptr @result_to_dest.num_del, align 4, !tbaa !9
  %413 = sext i32 %411 to i64
  %414 = getelementptr inbounds i32, ptr %410, i64 %413
  store i32 %409, ptr %414, align 4, !tbaa !9
  br label %415

415:                                              ; preds = %386, %385
  %416 = load i32, ptr %9, align 4, !tbaa !9
  %417 = add nsw i32 %416, 1
  store i32 %417, ptr %9, align 4, !tbaa !9
  br label %360, !llvm.loop !43

418:                                              ; preds = %360
  br label %419

419:                                              ; preds = %418, %289, %166
  %420 = load i32, ptr %8, align 4, !tbaa !9
  %421 = add nsw i32 %420, 1
  store i32 %421, ptr %8, align 4, !tbaa !9
  br label %107, !llvm.loop !44

422:                                              ; preds = %107
  %423 = load i8, ptr %15, align 1, !tbaa !11
  %424 = icmp ne i8 %423, 0
  br i1 %424, label %482, label %425

425:                                              ; preds = %422
  store i32 0, ptr %8, align 4, !tbaa !9
  br label %426

426:                                              ; preds = %443, %425
  %427 = load i32, ptr %8, align 4, !tbaa !9
  %428 = load ptr, ptr %6, align 8, !tbaa !5
  %429 = getelementptr inbounds %struct._State, ptr %428, i32 0, i32 1
  %430 = load i32, ptr %429, align 8, !tbaa !16
  %431 = icmp slt i32 %427, %430
  br i1 %431, label %432, label %446

432:                                              ; preds = %426
  %433 = load ptr, ptr @result_to_dest.in_source, align 8, !tbaa !5
  %434 = load ptr, ptr %6, align 8, !tbaa !5
  %435 = getelementptr inbounds %struct._State, ptr %434, i32 0, i32 0
  %436 = load ptr, ptr %435, align 8, !tbaa !18
  %437 = load i32, ptr %8, align 4, !tbaa !9
  %438 = sext i32 %437 to i64
  %439 = getelementptr inbounds i32, ptr %436, i64 %438
  %440 = load i32, ptr %439, align 4, !tbaa !9
  %441 = sext i32 %440 to i64
  %442 = getelementptr inbounds i8, ptr %433, i64 %441
  store i8 0, ptr %442, align 1, !tbaa !11
  br label %443

443:                                              ; preds = %432
  %444 = load i32, ptr %8, align 4, !tbaa !9
  %445 = add nsw i32 %444, 1
  store i32 %445, ptr %8, align 4, !tbaa !9
  br label %426, !llvm.loop !45

446:                                              ; preds = %426
  store i32 0, ptr %8, align 4, !tbaa !9
  br label %447

447:                                              ; preds = %460, %446
  %448 = load i32, ptr %8, align 4, !tbaa !9
  %449 = load i32, ptr @result_to_dest.num_del, align 4, !tbaa !9
  %450 = icmp slt i32 %448, %449
  br i1 %450, label %451, label %463

451:                                              ; preds = %447
  %452 = load ptr, ptr @result_to_dest.in_del, align 8, !tbaa !5
  %453 = load ptr, ptr @result_to_dest.del, align 8, !tbaa !5
  %454 = load i32, ptr %8, align 4, !tbaa !9
  %455 = sext i32 %454 to i64
  %456 = getelementptr inbounds i32, ptr %453, i64 %455
  %457 = load i32, ptr %456, align 4, !tbaa !9
  %458 = sext i32 %457 to i64
  %459 = getelementptr inbounds i8, ptr %452, i64 %458
  store i8 0, ptr %459, align 1, !tbaa !11
  br label %460

460:                                              ; preds = %451
  %461 = load i32, ptr %8, align 4, !tbaa !9
  %462 = add nsw i32 %461, 1
  store i32 %462, ptr %8, align 4, !tbaa !9
  br label %447, !llvm.loop !46

463:                                              ; preds = %447
  store i32 0, ptr %8, align 4, !tbaa !9
  br label %464

464:                                              ; preds = %478, %463
  %465 = load i32, ptr %8, align 4, !tbaa !9
  %466 = load ptr, ptr @gop_conn, align 8, !tbaa !5
  %467 = load i32, ptr %7, align 4, !tbaa !9
  %468 = sext i32 %467 to i64
  %469 = getelementptr inbounds %struct._OpConn, ptr %466, i64 %468
  %470 = getelementptr inbounds %struct._OpConn, ptr %469, i32 0, i32 3
  %471 = load i32, ptr %470, align 8, !tbaa !20
  %472 = icmp slt i32 %465, %471
  br i1 %472, label %473, label %481

473:                                              ; preds = %464
  %474 = load ptr, ptr @result_to_dest.true_ef, align 8, !tbaa !5
  %475 = load i32, ptr %8, align 4, !tbaa !9
  %476 = sext i32 %475 to i64
  %477 = getelementptr inbounds i8, ptr %474, i64 %476
  store i8 0, ptr %477, align 1, !tbaa !11
  br label %478

478:                                              ; preds = %473
  %479 = load i32, ptr %8, align 4, !tbaa !9
  %480 = add nsw i32 %479, 1
  store i32 %480, ptr %8, align 4, !tbaa !9
  br label %464, !llvm.loop !47

481:                                              ; preds = %464
  store i8 0, ptr %4, align 1
  store i32 1, ptr %16, align 4
  br label %1293

482:                                              ; preds = %422
  store i32 0, ptr %8, align 4, !tbaa !9
  br label %483

483:                                              ; preds = %514, %482
  %484 = load i32, ptr %8, align 4, !tbaa !9
  %485 = load i32, ptr @gnum_fl_conn, align 4, !tbaa !9
  %486 = icmp slt i32 %484, %485
  br i1 %486, label %487, label %517

487:                                              ; preds = %483
  %488 = load ptr, ptr %6, align 8, !tbaa !5
  %489 = getelementptr inbounds %struct._State, ptr %488, i32 0, i32 2
  %490 = load ptr, ptr %489, align 8, !tbaa !48
  %491 = load i32, ptr %8, align 4, !tbaa !9
  %492 = sext i32 %491 to i64
  %493 = getelementptr inbounds i8, ptr %490, i64 %492
  %494 = load i8, ptr %493, align 1, !tbaa !11
  %495 = load ptr, ptr %5, align 8, !tbaa !5
  %496 = getelementptr inbounds %struct._State, ptr %495, i32 0, i32 2
  %497 = load ptr, ptr %496, align 8, !tbaa !48
  %498 = load i32, ptr %8, align 4, !tbaa !9
  %499 = sext i32 %498 to i64
  %500 = getelementptr inbounds i8, ptr %497, i64 %499
  store i8 %494, ptr %500, align 1, !tbaa !11
  %501 = load ptr, ptr %6, align 8, !tbaa !5
  %502 = getelementptr inbounds %struct._State, ptr %501, i32 0, i32 3
  %503 = load ptr, ptr %502, align 8, !tbaa !49
  %504 = load i32, ptr %8, align 4, !tbaa !9
  %505 = sext i32 %504 to i64
  %506 = getelementptr inbounds float, ptr %503, i64 %505
  %507 = load float, ptr %506, align 4, !tbaa !31
  %508 = load ptr, ptr %5, align 8, !tbaa !5
  %509 = getelementptr inbounds %struct._State, ptr %508, i32 0, i32 3
  %510 = load ptr, ptr %509, align 8, !tbaa !49
  %511 = load i32, ptr %8, align 4, !tbaa !9
  %512 = sext i32 %511 to i64
  %513 = getelementptr inbounds float, ptr %510, i64 %512
  store float %507, ptr %513, align 4, !tbaa !31
  br label %514

514:                                              ; preds = %487
  %515 = load i32, ptr %8, align 4, !tbaa !9
  %516 = add nsw i32 %515, 1
  store i32 %516, ptr %8, align 4, !tbaa !9
  br label %483, !llvm.loop !50

517:                                              ; preds = %483
  store i32 0, ptr %8, align 4, !tbaa !9
  br label %518

518:                                              ; preds = %1035, %517
  %519 = load i32, ptr %8, align 4, !tbaa !9
  %520 = load ptr, ptr @gop_conn, align 8, !tbaa !5
  %521 = load i32, ptr %7, align 4, !tbaa !9
  %522 = sext i32 %521 to i64
  %523 = getelementptr inbounds %struct._OpConn, ptr %520, i64 %522
  %524 = getelementptr inbounds %struct._OpConn, ptr %523, i32 0, i32 3
  %525 = load i32, ptr %524, align 8, !tbaa !20
  %526 = icmp slt i32 %519, %525
  br i1 %526, label %527, label %1038

527:                                              ; preds = %518
  %528 = load ptr, ptr @result_to_dest.true_ef, align 8, !tbaa !5
  %529 = load i32, ptr %8, align 4, !tbaa !9
  %530 = sext i32 %529 to i64
  %531 = getelementptr inbounds i8, ptr %528, i64 %530
  %532 = load i8, ptr %531, align 1, !tbaa !11
  %533 = icmp ne i8 %532, 0
  br i1 %533, label %535, label %534

534:                                              ; preds = %527
  br label %1035

535:                                              ; preds = %527
  %536 = load ptr, ptr @gop_conn, align 8, !tbaa !5
  %537 = load i32, ptr %7, align 4, !tbaa !9
  %538 = sext i32 %537 to i64
  %539 = getelementptr inbounds %struct._OpConn, ptr %536, i64 %538
  %540 = getelementptr inbounds %struct._OpConn, ptr %539, i32 0, i32 2
  %541 = load ptr, ptr %540, align 8, !tbaa !23
  %542 = load i32, ptr %8, align 4, !tbaa !9
  %543 = sext i32 %542 to i64
  %544 = getelementptr inbounds i32, ptr %541, i64 %543
  %545 = load i32, ptr %544, align 4, !tbaa !9
  store i32 %545, ptr %10, align 4, !tbaa !9
  store i32 0, ptr %9, align 4, !tbaa !9
  br label %546

546:                                              ; preds = %791, %535
  %547 = load i32, ptr %9, align 4, !tbaa !9
  %548 = load ptr, ptr @gef_conn, align 8, !tbaa !5
  %549 = load i32, ptr %10, align 4, !tbaa !9
  %550 = sext i32 %549 to i64
  %551 = getelementptr inbounds %struct._EfConn, ptr %548, i64 %550
  %552 = getelementptr inbounds %struct._EfConn, ptr %551, i32 0, i32 23
  %553 = load i32, ptr %552, align 8, !tbaa !51
  %554 = icmp slt i32 %547, %553
  br i1 %554, label %555, label %794

555:                                              ; preds = %546
  %556 = load ptr, ptr @gef_conn, align 8, !tbaa !5
  %557 = load i32, ptr %10, align 4, !tbaa !9
  %558 = sext i32 %557 to i64
  %559 = getelementptr inbounds %struct._EfConn, ptr %556, i64 %558
  %560 = getelementptr inbounds %struct._EfConn, ptr %559, i32 0, i32 20
  %561 = load ptr, ptr %560, align 8, !tbaa !52
  %562 = load i32, ptr %9, align 4, !tbaa !9
  %563 = sext i32 %562 to i64
  %564 = getelementptr inbounds i32, ptr %561, i64 %563
  %565 = load i32, ptr %564, align 4, !tbaa !9
  store i32 %565, ptr %11, align 4, !tbaa !9
  %566 = load ptr, ptr @gef_conn, align 8, !tbaa !5
  %567 = load i32, ptr %10, align 4, !tbaa !9
  %568 = sext i32 %567 to i64
  %569 = getelementptr inbounds %struct._EfConn, ptr %566, i64 %568
  %570 = getelementptr inbounds %struct._EfConn, ptr %569, i32 0, i32 21
  %571 = load ptr, ptr %570, align 8, !tbaa !53
  %572 = load i32, ptr %9, align 4, !tbaa !9
  %573 = sext i32 %572 to i64
  %574 = getelementptr inbounds i32, ptr %571, i64 %573
  %575 = load i32, ptr %574, align 4, !tbaa !9
  %576 = icmp eq i32 %575, -1
  br i1 %576, label %577, label %588

577:                                              ; preds = %555
  %578 = load ptr, ptr @gef_conn, align 8, !tbaa !5
  %579 = load i32, ptr %10, align 4, !tbaa !9
  %580 = sext i32 %579 to i64
  %581 = getelementptr inbounds %struct._EfConn, ptr %578, i64 %580
  %582 = getelementptr inbounds %struct._EfConn, ptr %581, i32 0, i32 22
  %583 = load ptr, ptr %582, align 8, !tbaa !54
  %584 = load i32, ptr %9, align 4, !tbaa !9
  %585 = sext i32 %584 to i64
  %586 = getelementptr inbounds float, ptr %583, i64 %585
  %587 = load float, ptr %586, align 4, !tbaa !31
  store float %587, ptr %12, align 4, !tbaa !31
  br label %685

588:                                              ; preds = %555
  %589 = load ptr, ptr %6, align 8, !tbaa !5
  %590 = load ptr, ptr @gef_conn, align 8, !tbaa !5
  %591 = load i32, ptr %10, align 4, !tbaa !9
  %592 = sext i32 %591 to i64
  %593 = getelementptr inbounds %struct._EfConn, ptr %590, i64 %592
  %594 = getelementptr inbounds %struct._EfConn, ptr %593, i32 0, i32 21
  %595 = load ptr, ptr %594, align 8, !tbaa !53
  %596 = load i32, ptr %9, align 4, !tbaa !9
  %597 = sext i32 %596 to i64
  %598 = getelementptr inbounds i32, ptr %595, i64 %597
  %599 = load i32, ptr %598, align 4, !tbaa !9
  %600 = call zeroext i8 @determine_source_val(ptr noundef %589, i32 noundef %599, ptr noundef %12)
  %601 = icmp ne i8 %600, 0
  br i1 %601, label %672, label %602

602:                                              ; preds = %588
  store i32 0, ptr %8, align 4, !tbaa !9
  br label %603

603:                                              ; preds = %612, %602
  %604 = load i32, ptr %8, align 4, !tbaa !9
  %605 = load i32, ptr @gnum_fl_conn, align 4, !tbaa !9
  %606 = icmp slt i32 %604, %605
  br i1 %606, label %607, label %615

607:                                              ; preds = %603
  %608 = load ptr, ptr @result_to_dest.assigned, align 8, !tbaa !5
  %609 = load i32, ptr %8, align 4, !tbaa !9
  %610 = sext i32 %609 to i64
  %611 = getelementptr inbounds i8, ptr %608, i64 %610
  store i8 0, ptr %611, align 1, !tbaa !11
  br label %612

612:                                              ; preds = %607
  %613 = load i32, ptr %8, align 4, !tbaa !9
  %614 = add nsw i32 %613, 1
  store i32 %614, ptr %8, align 4, !tbaa !9
  br label %603, !llvm.loop !55

615:                                              ; preds = %603
  store i32 0, ptr %8, align 4, !tbaa !9
  br label %616

616:                                              ; preds = %633, %615
  %617 = load i32, ptr %8, align 4, !tbaa !9
  %618 = load ptr, ptr %6, align 8, !tbaa !5
  %619 = getelementptr inbounds %struct._State, ptr %618, i32 0, i32 1
  %620 = load i32, ptr %619, align 8, !tbaa !16
  %621 = icmp slt i32 %617, %620
  br i1 %621, label %622, label %636

622:                                              ; preds = %616
  %623 = load ptr, ptr @result_to_dest.in_source, align 8, !tbaa !5
  %624 = load ptr, ptr %6, align 8, !tbaa !5
  %625 = getelementptr inbounds %struct._State, ptr %624, i32 0, i32 0
  %626 = load ptr, ptr %625, align 8, !tbaa !18
  %627 = load i32, ptr %8, align 4, !tbaa !9
  %628 = sext i32 %627 to i64
  %629 = getelementptr inbounds i32, ptr %626, i64 %628
  %630 = load i32, ptr %629, align 4, !tbaa !9
  %631 = sext i32 %630 to i64
  %632 = getelementptr inbounds i8, ptr %623, i64 %631
  store i8 0, ptr %632, align 1, !tbaa !11
  br label %633

633:                                              ; preds = %622
  %634 = load i32, ptr %8, align 4, !tbaa !9
  %635 = add nsw i32 %634, 1
  store i32 %635, ptr %8, align 4, !tbaa !9
  br label %616, !llvm.loop !56

636:                                              ; preds = %616
  store i32 0, ptr %8, align 4, !tbaa !9
  br label %637

637:                                              ; preds = %650, %636
  %638 = load i32, ptr %8, align 4, !tbaa !9
  %639 = load i32, ptr @result_to_dest.num_del, align 4, !tbaa !9
  %640 = icmp slt i32 %638, %639
  br i1 %640, label %641, label %653

641:                                              ; preds = %637
  %642 = load ptr, ptr @result_to_dest.in_del, align 8, !tbaa !5
  %643 = load ptr, ptr @result_to_dest.del, align 8, !tbaa !5
  %644 = load i32, ptr %8, align 4, !tbaa !9
  %645 = sext i32 %644 to i64
  %646 = getelementptr inbounds i32, ptr %643, i64 %645
  %647 = load i32, ptr %646, align 4, !tbaa !9
  %648 = sext i32 %647 to i64
  %649 = getelementptr inbounds i8, ptr %642, i64 %648
  store i8 0, ptr %649, align 1, !tbaa !11
  br label %650

650:                                              ; preds = %641
  %651 = load i32, ptr %8, align 4, !tbaa !9
  %652 = add nsw i32 %651, 1
  store i32 %652, ptr %8, align 4, !tbaa !9
  br label %637, !llvm.loop !57

653:                                              ; preds = %637
  store i32 0, ptr %8, align 4, !tbaa !9
  br label %654

654:                                              ; preds = %668, %653
  %655 = load i32, ptr %8, align 4, !tbaa !9
  %656 = load ptr, ptr @gop_conn, align 8, !tbaa !5
  %657 = load i32, ptr %7, align 4, !tbaa !9
  %658 = sext i32 %657 to i64
  %659 = getelementptr inbounds %struct._OpConn, ptr %656, i64 %658
  %660 = getelementptr inbounds %struct._OpConn, ptr %659, i32 0, i32 3
  %661 = load i32, ptr %660, align 8, !tbaa !20
  %662 = icmp slt i32 %655, %661
  br i1 %662, label %663, label %671

663:                                              ; preds = %654
  %664 = load ptr, ptr @result_to_dest.true_ef, align 8, !tbaa !5
  %665 = load i32, ptr %8, align 4, !tbaa !9
  %666 = sext i32 %665 to i64
  %667 = getelementptr inbounds i8, ptr %664, i64 %666
  store i8 0, ptr %667, align 1, !tbaa !11
  br label %668

668:                                              ; preds = %663
  %669 = load i32, ptr %8, align 4, !tbaa !9
  %670 = add nsw i32 %669, 1
  store i32 %670, ptr %8, align 4, !tbaa !9
  br label %654, !llvm.loop !58

671:                                              ; preds = %654
  store i8 0, ptr %4, align 1
  store i32 1, ptr %16, align 4
  br label %1293

672:                                              ; preds = %588
  %673 = load ptr, ptr @gef_conn, align 8, !tbaa !5
  %674 = load i32, ptr %10, align 4, !tbaa !9
  %675 = sext i32 %674 to i64
  %676 = getelementptr inbounds %struct._EfConn, ptr %673, i64 %675
  %677 = getelementptr inbounds %struct._EfConn, ptr %676, i32 0, i32 22
  %678 = load ptr, ptr %677, align 8, !tbaa !54
  %679 = load i32, ptr %9, align 4, !tbaa !9
  %680 = sext i32 %679 to i64
  %681 = getelementptr inbounds float, ptr %678, i64 %680
  %682 = load float, ptr %681, align 4, !tbaa !31
  %683 = load float, ptr %12, align 4, !tbaa !31
  %684 = fadd float %683, %682
  store float %684, ptr %12, align 4, !tbaa !31
  br label %685

685:                                              ; preds = %672, %577
  %686 = load ptr, ptr @result_to_dest.assigned, align 8, !tbaa !5
  %687 = load i32, ptr %11, align 4, !tbaa !9
  %688 = sext i32 %687 to i64
  %689 = getelementptr inbounds i8, ptr %686, i64 %688
  %690 = load i8, ptr %689, align 1, !tbaa !11
  %691 = zext i8 %690 to i32
  %692 = icmp ne i32 %691, 0
  br i1 %692, label %693, label %773

693:                                              ; preds = %685
  %694 = load float, ptr %12, align 4, !tbaa !31
  %695 = load ptr, ptr %5, align 8, !tbaa !5
  %696 = getelementptr inbounds %struct._State, ptr %695, i32 0, i32 3
  %697 = load ptr, ptr %696, align 8, !tbaa !49
  %698 = load i32, ptr %11, align 4, !tbaa !9
  %699 = sext i32 %698 to i64
  %700 = getelementptr inbounds float, ptr %697, i64 %699
  %701 = load float, ptr %700, align 4, !tbaa !31
  %702 = fcmp une float %694, %701
  br i1 %702, label %703, label %773

703:                                              ; preds = %693
  store i32 0, ptr %8, align 4, !tbaa !9
  br label %704

704:                                              ; preds = %713, %703
  %705 = load i32, ptr %8, align 4, !tbaa !9
  %706 = load i32, ptr @gnum_fl_conn, align 4, !tbaa !9
  %707 = icmp slt i32 %705, %706
  br i1 %707, label %708, label %716

708:                                              ; preds = %704
  %709 = load ptr, ptr @result_to_dest.assigned, align 8, !tbaa !5
  %710 = load i32, ptr %8, align 4, !tbaa !9
  %711 = sext i32 %710 to i64
  %712 = getelementptr inbounds i8, ptr %709, i64 %711
  store i8 0, ptr %712, align 1, !tbaa !11
  br label %713

713:                                              ; preds = %708
  %714 = load i32, ptr %8, align 4, !tbaa !9
  %715 = add nsw i32 %714, 1
  store i32 %715, ptr %8, align 4, !tbaa !9
  br label %704, !llvm.loop !59

716:                                              ; preds = %704
  store i32 0, ptr %8, align 4, !tbaa !9
  br label %717

717:                                              ; preds = %734, %716
  %718 = load i32, ptr %8, align 4, !tbaa !9
  %719 = load ptr, ptr %6, align 8, !tbaa !5
  %720 = getelementptr inbounds %struct._State, ptr %719, i32 0, i32 1
  %721 = load i32, ptr %720, align 8, !tbaa !16
  %722 = icmp slt i32 %718, %721
  br i1 %722, label %723, label %737

723:                                              ; preds = %717
  %724 = load ptr, ptr @result_to_dest.in_source, align 8, !tbaa !5
  %725 = load ptr, ptr %6, align 8, !tbaa !5
  %726 = getelementptr inbounds %struct._State, ptr %725, i32 0, i32 0
  %727 = load ptr, ptr %726, align 8, !tbaa !18
  %728 = load i32, ptr %8, align 4, !tbaa !9
  %729 = sext i32 %728 to i64
  %730 = getelementptr inbounds i32, ptr %727, i64 %729
  %731 = load i32, ptr %730, align 4, !tbaa !9
  %732 = sext i32 %731 to i64
  %733 = getelementptr inbounds i8, ptr %724, i64 %732
  store i8 0, ptr %733, align 1, !tbaa !11
  br label %734

734:                                              ; preds = %723
  %735 = load i32, ptr %8, align 4, !tbaa !9
  %736 = add nsw i32 %735, 1
  store i32 %736, ptr %8, align 4, !tbaa !9
  br label %717, !llvm.loop !60

737:                                              ; preds = %717
  store i32 0, ptr %8, align 4, !tbaa !9
  br label %738

738:                                              ; preds = %751, %737
  %739 = load i32, ptr %8, align 4, !tbaa !9
  %740 = load i32, ptr @result_to_dest.num_del, align 4, !tbaa !9
  %741 = icmp slt i32 %739, %740
  br i1 %741, label %742, label %754

742:                                              ; preds = %738
  %743 = load ptr, ptr @result_to_dest.in_del, align 8, !tbaa !5
  %744 = load ptr, ptr @result_to_dest.del, align 8, !tbaa !5
  %745 = load i32, ptr %8, align 4, !tbaa !9
  %746 = sext i32 %745 to i64
  %747 = getelementptr inbounds i32, ptr %744, i64 %746
  %748 = load i32, ptr %747, align 4, !tbaa !9
  %749 = sext i32 %748 to i64
  %750 = getelementptr inbounds i8, ptr %743, i64 %749
  store i8 0, ptr %750, align 1, !tbaa !11
  br label %751

751:                                              ; preds = %742
  %752 = load i32, ptr %8, align 4, !tbaa !9
  %753 = add nsw i32 %752, 1
  store i32 %753, ptr %8, align 4, !tbaa !9
  br label %738, !llvm.loop !61

754:                                              ; preds = %738
  store i32 0, ptr %8, align 4, !tbaa !9
  br label %755

755:                                              ; preds = %769, %754
  %756 = load i32, ptr %8, align 4, !tbaa !9
  %757 = load ptr, ptr @gop_conn, align 8, !tbaa !5
  %758 = load i32, ptr %7, align 4, !tbaa !9
  %759 = sext i32 %758 to i64
  %760 = getelementptr inbounds %struct._OpConn, ptr %757, i64 %759
  %761 = getelementptr inbounds %struct._OpConn, ptr %760, i32 0, i32 3
  %762 = load i32, ptr %761, align 8, !tbaa !20
  %763 = icmp slt i32 %756, %762
  br i1 %763, label %764, label %772

764:                                              ; preds = %755
  %765 = load ptr, ptr @result_to_dest.true_ef, align 8, !tbaa !5
  %766 = load i32, ptr %8, align 4, !tbaa !9
  %767 = sext i32 %766 to i64
  %768 = getelementptr inbounds i8, ptr %765, i64 %767
  store i8 0, ptr %768, align 1, !tbaa !11
  br label %769

769:                                              ; preds = %764
  %770 = load i32, ptr %8, align 4, !tbaa !9
  %771 = add nsw i32 %770, 1
  store i32 %771, ptr %8, align 4, !tbaa !9
  br label %755, !llvm.loop !62

772:                                              ; preds = %755
  store i8 0, ptr %4, align 1
  store i32 1, ptr %16, align 4
  br label %1293

773:                                              ; preds = %693, %685
  %774 = load ptr, ptr %5, align 8, !tbaa !5
  %775 = getelementptr inbounds %struct._State, ptr %774, i32 0, i32 2
  %776 = load ptr, ptr %775, align 8, !tbaa !48
  %777 = load i32, ptr %11, align 4, !tbaa !9
  %778 = sext i32 %777 to i64
  %779 = getelementptr inbounds i8, ptr %776, i64 %778
  store i8 1, ptr %779, align 1, !tbaa !11
  %780 = load float, ptr %12, align 4, !tbaa !31
  %781 = load ptr, ptr %5, align 8, !tbaa !5
  %782 = getelementptr inbounds %struct._State, ptr %781, i32 0, i32 3
  %783 = load ptr, ptr %782, align 8, !tbaa !49
  %784 = load i32, ptr %11, align 4, !tbaa !9
  %785 = sext i32 %784 to i64
  %786 = getelementptr inbounds float, ptr %783, i64 %785
  store float %780, ptr %786, align 4, !tbaa !31
  %787 = load ptr, ptr @result_to_dest.assigned, align 8, !tbaa !5
  %788 = load i32, ptr %11, align 4, !tbaa !9
  %789 = sext i32 %788 to i64
  %790 = getelementptr inbounds i8, ptr %787, i64 %789
  store i8 1, ptr %790, align 1, !tbaa !11
  br label %791

791:                                              ; preds = %773
  %792 = load i32, ptr %9, align 4, !tbaa !9
  %793 = add nsw i32 %792, 1
  store i32 %793, ptr %9, align 4, !tbaa !9
  br label %546, !llvm.loop !63

794:                                              ; preds = %546
  store i32 0, ptr %9, align 4, !tbaa !9
  br label %795

795:                                              ; preds = %1031, %794
  %796 = load i32, ptr %9, align 4, !tbaa !9
  %797 = load ptr, ptr @gef_conn, align 8, !tbaa !5
  %798 = load i32, ptr %10, align 4, !tbaa !9
  %799 = sext i32 %798 to i64
  %800 = getelementptr inbounds %struct._EfConn, ptr %797, i64 %799
  %801 = getelementptr inbounds %struct._EfConn, ptr %800, i32 0, i32 19
  %802 = load i32, ptr %801, align 8, !tbaa !64
  %803 = icmp slt i32 %796, %802
  br i1 %803, label %804, label %1034

804:                                              ; preds = %795
  %805 = load ptr, ptr @gef_conn, align 8, !tbaa !5
  %806 = load i32, ptr %10, align 4, !tbaa !9
  %807 = sext i32 %806 to i64
  %808 = getelementptr inbounds %struct._EfConn, ptr %805, i64 %807
  %809 = getelementptr inbounds %struct._EfConn, ptr %808, i32 0, i32 16
  %810 = load ptr, ptr %809, align 8, !tbaa !65
  %811 = load i32, ptr %9, align 4, !tbaa !9
  %812 = sext i32 %811 to i64
  %813 = getelementptr inbounds i32, ptr %810, i64 %812
  %814 = load i32, ptr %813, align 4, !tbaa !9
  store i32 %814, ptr %11, align 4, !tbaa !9
  %815 = load ptr, ptr @result_to_dest.assigned, align 8, !tbaa !5
  %816 = load i32, ptr %11, align 4, !tbaa !9
  %817 = sext i32 %816 to i64
  %818 = getelementptr inbounds i8, ptr %815, i64 %817
  %819 = load i8, ptr %818, align 1, !tbaa !11
  %820 = zext i8 %819 to i32
  %821 = icmp ne i32 %820, 0
  br i1 %821, label %831, label %822

822:                                              ; preds = %804
  %823 = load ptr, ptr %6, align 8, !tbaa !5
  %824 = getelementptr inbounds %struct._State, ptr %823, i32 0, i32 2
  %825 = load ptr, ptr %824, align 8, !tbaa !48
  %826 = load i32, ptr %11, align 4, !tbaa !9
  %827 = sext i32 %826 to i64
  %828 = getelementptr inbounds i8, ptr %825, i64 %827
  %829 = load i8, ptr %828, align 1, !tbaa !11
  %830 = icmp ne i8 %829, 0
  br i1 %830, label %901, label %831

831:                                              ; preds = %822, %804
  store i32 0, ptr %8, align 4, !tbaa !9
  br label %832

832:                                              ; preds = %841, %831
  %833 = load i32, ptr %8, align 4, !tbaa !9
  %834 = load i32, ptr @gnum_fl_conn, align 4, !tbaa !9
  %835 = icmp slt i32 %833, %834
  br i1 %835, label %836, label %844

836:                                              ; preds = %832
  %837 = load ptr, ptr @result_to_dest.assigned, align 8, !tbaa !5
  %838 = load i32, ptr %8, align 4, !tbaa !9
  %839 = sext i32 %838 to i64
  %840 = getelementptr inbounds i8, ptr %837, i64 %839
  store i8 0, ptr %840, align 1, !tbaa !11
  br label %841

841:                                              ; preds = %836
  %842 = load i32, ptr %8, align 4, !tbaa !9
  %843 = add nsw i32 %842, 1
  store i32 %843, ptr %8, align 4, !tbaa !9
  br label %832, !llvm.loop !66

844:                                              ; preds = %832
  store i32 0, ptr %8, align 4, !tbaa !9
  br label %845

845:                                              ; preds = %862, %844
  %846 = load i32, ptr %8, align 4, !tbaa !9
  %847 = load ptr, ptr %6, align 8, !tbaa !5
  %848 = getelementptr inbounds %struct._State, ptr %847, i32 0, i32 1
  %849 = load i32, ptr %848, align 8, !tbaa !16
  %850 = icmp slt i32 %846, %849
  br i1 %850, label %851, label %865

851:                                              ; preds = %845
  %852 = load ptr, ptr @result_to_dest.in_source, align 8, !tbaa !5
  %853 = load ptr, ptr %6, align 8, !tbaa !5
  %854 = getelementptr inbounds %struct._State, ptr %853, i32 0, i32 0
  %855 = load ptr, ptr %854, align 8, !tbaa !18
  %856 = load i32, ptr %8, align 4, !tbaa !9
  %857 = sext i32 %856 to i64
  %858 = getelementptr inbounds i32, ptr %855, i64 %857
  %859 = load i32, ptr %858, align 4, !tbaa !9
  %860 = sext i32 %859 to i64
  %861 = getelementptr inbounds i8, ptr %852, i64 %860
  store i8 0, ptr %861, align 1, !tbaa !11
  br label %862

862:                                              ; preds = %851
  %863 = load i32, ptr %8, align 4, !tbaa !9
  %864 = add nsw i32 %863, 1
  store i32 %864, ptr %8, align 4, !tbaa !9
  br label %845, !llvm.loop !67

865:                                              ; preds = %845
  store i32 0, ptr %8, align 4, !tbaa !9
  br label %866

866:                                              ; preds = %879, %865
  %867 = load i32, ptr %8, align 4, !tbaa !9
  %868 = load i32, ptr @result_to_dest.num_del, align 4, !tbaa !9
  %869 = icmp slt i32 %867, %868
  br i1 %869, label %870, label %882

870:                                              ; preds = %866
  %871 = load ptr, ptr @result_to_dest.in_del, align 8, !tbaa !5
  %872 = load ptr, ptr @result_to_dest.del, align 8, !tbaa !5
  %873 = load i32, ptr %8, align 4, !tbaa !9
  %874 = sext i32 %873 to i64
  %875 = getelementptr inbounds i32, ptr %872, i64 %874
  %876 = load i32, ptr %875, align 4, !tbaa !9
  %877 = sext i32 %876 to i64
  %878 = getelementptr inbounds i8, ptr %871, i64 %877
  store i8 0, ptr %878, align 1, !tbaa !11
  br label %879

879:                                              ; preds = %870
  %880 = load i32, ptr %8, align 4, !tbaa !9
  %881 = add nsw i32 %880, 1
  store i32 %881, ptr %8, align 4, !tbaa !9
  br label %866, !llvm.loop !68

882:                                              ; preds = %866
  store i32 0, ptr %8, align 4, !tbaa !9
  br label %883

883:                                              ; preds = %897, %882
  %884 = load i32, ptr %8, align 4, !tbaa !9
  %885 = load ptr, ptr @gop_conn, align 8, !tbaa !5
  %886 = load i32, ptr %7, align 4, !tbaa !9
  %887 = sext i32 %886 to i64
  %888 = getelementptr inbounds %struct._OpConn, ptr %885, i64 %887
  %889 = getelementptr inbounds %struct._OpConn, ptr %888, i32 0, i32 3
  %890 = load i32, ptr %889, align 8, !tbaa !20
  %891 = icmp slt i32 %884, %890
  br i1 %891, label %892, label %900

892:                                              ; preds = %883
  %893 = load ptr, ptr @result_to_dest.true_ef, align 8, !tbaa !5
  %894 = load i32, ptr %8, align 4, !tbaa !9
  %895 = sext i32 %894 to i64
  %896 = getelementptr inbounds i8, ptr %893, i64 %895
  store i8 0, ptr %896, align 1, !tbaa !11
  br label %897

897:                                              ; preds = %892
  %898 = load i32, ptr %8, align 4, !tbaa !9
  %899 = add nsw i32 %898, 1
  store i32 %899, ptr %8, align 4, !tbaa !9
  br label %883, !llvm.loop !69

900:                                              ; preds = %883
  store i8 0, ptr %4, align 1
  store i32 1, ptr %16, align 4
  br label %1293

901:                                              ; preds = %822
  %902 = load ptr, ptr @gef_conn, align 8, !tbaa !5
  %903 = load i32, ptr %10, align 4, !tbaa !9
  %904 = sext i32 %903 to i64
  %905 = getelementptr inbounds %struct._EfConn, ptr %902, i64 %904
  %906 = getelementptr inbounds %struct._EfConn, ptr %905, i32 0, i32 17
  %907 = load ptr, ptr %906, align 8, !tbaa !70
  %908 = load i32, ptr %9, align 4, !tbaa !9
  %909 = sext i32 %908 to i64
  %910 = getelementptr inbounds i32, ptr %907, i64 %909
  %911 = load i32, ptr %910, align 4, !tbaa !9
  %912 = icmp eq i32 %911, -1
  br i1 %912, label %913, label %924

913:                                              ; preds = %901
  %914 = load ptr, ptr @gef_conn, align 8, !tbaa !5
  %915 = load i32, ptr %10, align 4, !tbaa !9
  %916 = sext i32 %915 to i64
  %917 = getelementptr inbounds %struct._EfConn, ptr %914, i64 %916
  %918 = getelementptr inbounds %struct._EfConn, ptr %917, i32 0, i32 18
  %919 = load ptr, ptr %918, align 8, !tbaa !71
  %920 = load i32, ptr %9, align 4, !tbaa !9
  %921 = sext i32 %920 to i64
  %922 = getelementptr inbounds float, ptr %919, i64 %921
  %923 = load float, ptr %922, align 4, !tbaa !31
  store float %923, ptr %12, align 4, !tbaa !31
  br label %1021

924:                                              ; preds = %901
  %925 = load ptr, ptr %6, align 8, !tbaa !5
  %926 = load ptr, ptr @gef_conn, align 8, !tbaa !5
  %927 = load i32, ptr %10, align 4, !tbaa !9
  %928 = sext i32 %927 to i64
  %929 = getelementptr inbounds %struct._EfConn, ptr %926, i64 %928
  %930 = getelementptr inbounds %struct._EfConn, ptr %929, i32 0, i32 17
  %931 = load ptr, ptr %930, align 8, !tbaa !70
  %932 = load i32, ptr %9, align 4, !tbaa !9
  %933 = sext i32 %932 to i64
  %934 = getelementptr inbounds i32, ptr %931, i64 %933
  %935 = load i32, ptr %934, align 4, !tbaa !9
  %936 = call zeroext i8 @determine_source_val(ptr noundef %925, i32 noundef %935, ptr noundef %12)
  %937 = icmp ne i8 %936, 0
  br i1 %937, label %1008, label %938

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

939:                                              ; preds = %948, %938
  %940 = load i32, ptr %8, align 4, !tbaa !9
  %941 = load i32, ptr @gnum_fl_conn, align 4, !tbaa !9
  %942 = icmp slt i32 %940, %941
  br i1 %942, label %943, label %951

943:                                              ; preds = %939
  %944 = load ptr, ptr @result_to_dest.assigned, align 8, !tbaa !5
  %945 = load i32, ptr %8, align 4, !tbaa !9
  %946 = sext i32 %945 to i64
  %947 = getelementptr inbounds i8, ptr %944, i64 %946
  store i8 0, ptr %947, align 1, !tbaa !11
  br label %948

948:                                              ; preds = %943
  %949 = load i32, ptr %8, align 4, !tbaa !9
  %950 = add nsw i32 %949, 1
  store i32 %950, ptr %8, align 4, !tbaa !9
  br label %939, !llvm.loop !72

951:                                              ; preds = %939
  store i32 0, ptr %8, align 4, !tbaa !9
  br label %952

952:                                              ; preds = %969, %951
  %953 = load i32, ptr %8, align 4, !tbaa !9
  %954 = load ptr, ptr %6, align 8, !tbaa !5
  %955 = getelementptr inbounds %struct._State, ptr %954, i32 0, i32 1
  %956 = load i32, ptr %955, align 8, !tbaa !16
  %957 = icmp slt i32 %953, %956
  br i1 %957, label %958, label %972

958:                                              ; preds = %952
  %959 = load ptr, ptr @result_to_dest.in_source, align 8, !tbaa !5
  %960 = load ptr, ptr %6, align 8, !tbaa !5
  %961 = getelementptr inbounds %struct._State, ptr %960, i32 0, i32 0
  %962 = load ptr, ptr %961, align 8, !tbaa !18
  %963 = load i32, ptr %8, align 4, !tbaa !9
  %964 = sext i32 %963 to i64
  %965 = getelementptr inbounds i32, ptr %962, i64 %964
  %966 = load i32, ptr %965, align 4, !tbaa !9
  %967 = sext i32 %966 to i64
  %968 = getelementptr inbounds i8, ptr %959, i64 %967
  store i8 0, ptr %968, align 1, !tbaa !11
  br label %969

969:                                              ; preds = %958
  %970 = load i32, ptr %8, align 4, !tbaa !9
  %971 = add nsw i32 %970, 1
  store i32 %971, ptr %8, align 4, !tbaa !9
  br label %952, !llvm.loop !73

972:                                              ; preds = %952
  store i32 0, ptr %8, align 4, !tbaa !9
  br label %973

973:                                              ; preds = %986, %972
  %974 = load i32, ptr %8, align 4, !tbaa !9
  %975 = load i32, ptr @result_to_dest.num_del, align 4, !tbaa !9
  %976 = icmp slt i32 %974, %975
  br i1 %976, label %977, label %989

977:                                              ; preds = %973
  %978 = load ptr, ptr @result_to_dest.in_del, align 8, !tbaa !5
  %979 = load ptr, ptr @result_to_dest.del, align 8, !tbaa !5
  %980 = load i32, ptr %8, align 4, !tbaa !9
  %981 = sext i32 %980 to i64
  %982 = getelementptr inbounds i32, ptr %979, i64 %981
  %983 = load i32, ptr %982, align 4, !tbaa !9
  %984 = sext i32 %983 to i64
  %985 = getelementptr inbounds i8, ptr %978, i64 %984
  store i8 0, ptr %985, align 1, !tbaa !11
  br label %986

986:                                              ; preds = %977
  %987 = load i32, ptr %8, align 4, !tbaa !9
  %988 = add nsw i32 %987, 1
  store i32 %988, ptr %8, align 4, !tbaa !9
  br label %973, !llvm.loop !74

989:                                              ; preds = %973
  store i32 0, ptr %8, align 4, !tbaa !9
  br label %990

990:                                              ; preds = %1004, %989
  %991 = load i32, ptr %8, align 4, !tbaa !9
  %992 = load ptr, ptr @gop_conn, align 8, !tbaa !5
  %993 = load i32, ptr %7, align 4, !tbaa !9
  %994 = sext i32 %993 to i64
  %995 = getelementptr inbounds %struct._OpConn, ptr %992, i64 %994
  %996 = getelementptr inbounds %struct._OpConn, ptr %995, i32 0, i32 3
  %997 = load i32, ptr %996, align 8, !tbaa !20
  %998 = icmp slt i32 %991, %997
  br i1 %998, label %999, label %1007

999:                                              ; preds = %990
  %1000 = load ptr, ptr @result_to_dest.true_ef, align 8, !tbaa !5
  %1001 = load i32, ptr %8, align 4, !tbaa !9
  %1002 = sext i32 %1001 to i64
  %1003 = getelementptr inbounds i8, ptr %1000, i64 %1002
  store i8 0, ptr %1003, align 1, !tbaa !11
  br label %1004

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

1007:                                             ; preds = %990
  store i8 0, ptr %4, align 1
  store i32 1, ptr %16, align 4
  br label %1293

1008:                                             ; preds = %924
  %1009 = load ptr, ptr @gef_conn, align 8, !tbaa !5
  %1010 = load i32, ptr %10, align 4, !tbaa !9
  %1011 = sext i32 %1010 to i64
  %1012 = getelementptr inbounds %struct._EfConn, ptr %1009, i64 %1011
  %1013 = getelementptr inbounds %struct._EfConn, ptr %1012, i32 0, i32 18
  %1014 = load ptr, ptr %1013, align 8, !tbaa !71
  %1015 = load i32, ptr %9, align 4, !tbaa !9
  %1016 = sext i32 %1015 to i64
  %1017 = getelementptr inbounds float, ptr %1014, i64 %1016
  %1018 = load float, ptr %1017, align 4, !tbaa !31
  %1019 = load float, ptr %12, align 4, !tbaa !31
  %1020 = fadd float %1019, %1018
  store float %1020, ptr %12, align 4, !tbaa !31
  br label %1021

1021:                                             ; preds = %1008, %913
  %1022 = load float, ptr %12, align 4, !tbaa !31
  %1023 = load ptr, ptr %5, align 8, !tbaa !5
  %1024 = getelementptr inbounds %struct._State, ptr %1023, i32 0, i32 3
  %1025 = load ptr, ptr %1024, align 8, !tbaa !49
  %1026 = load i32, ptr %11, align 4, !tbaa !9
  %1027 = sext i32 %1026 to i64
  %1028 = getelementptr inbounds float, ptr %1025, i64 %1027
  %1029 = load float, ptr %1028, align 4, !tbaa !31
  %1030 = fadd float %1029, %1022
  store float %1030, ptr %1028, align 4, !tbaa !31
  br label %1031

1031:                                             ; preds = %1021
  %1032 = load i32, ptr %9, align 4, !tbaa !9
  %1033 = add nsw i32 %1032, 1
  store i32 %1033, ptr %9, align 4, !tbaa !9
  br label %795, !llvm.loop !76

1034:                                             ; preds = %795
  br label %1035

1035:                                             ; preds = %1034, %534
  %1036 = load i32, ptr %8, align 4, !tbaa !9
  %1037 = add nsw i32 %1036, 1
  store i32 %1037, ptr %8, align 4, !tbaa !9
  br label %518, !llvm.loop !77

1038:                                             ; preds = %518
  %1039 = load ptr, ptr %5, align 8, !tbaa !5
  %1040 = getelementptr inbounds %struct._State, ptr %1039, i32 0, i32 1
  store i32 0, ptr %1040, align 8, !tbaa !16
  store i32 0, ptr %8, align 4, !tbaa !9
  br label %1041

1041:                                             ; preds = %1103, %1038
  %1042 = load i32, ptr %8, align 4, !tbaa !9
  %1043 = load ptr, ptr %6, align 8, !tbaa !5
  %1044 = getelementptr inbounds %struct._State, ptr %1043, i32 0, i32 1
  %1045 = load i32, ptr %1044, align 8, !tbaa !16
  %1046 = icmp slt i32 %1042, %1045
  br i1 %1046, label %1047, label %1106

1047:                                             ; preds = %1041
  %1048 = load ptr, ptr @result_to_dest.in_del, align 8, !tbaa !5
  %1049 = load ptr, ptr %6, align 8, !tbaa !5
  %1050 = getelementptr inbounds %struct._State, ptr %1049, i32 0, i32 0
  %1051 = load ptr, ptr %1050, align 8, !tbaa !18
  %1052 = load i32, ptr %8, align 4, !tbaa !9
  %1053 = sext i32 %1052 to i64
  %1054 = getelementptr inbounds i32, ptr %1051, i64 %1053
  %1055 = load i32, ptr %1054, align 4, !tbaa !9
  %1056 = sext i32 %1055 to i64
  %1057 = getelementptr inbounds i8, ptr %1048, i64 %1056
  %1058 = load i8, ptr %1057, align 1, !tbaa !11
  %1059 = icmp ne i8 %1058, 0
  br i1 %1059, label %1060, label %1061

1060:                                             ; preds = %1047
  br label %1103

1061:                                             ; preds = %1047
  %1062 = load ptr, ptr @gft_conn, align 8, !tbaa !5
  %1063 = load ptr, ptr %6, align 8, !tbaa !5
  %1064 = getelementptr inbounds %struct._State, ptr %1063, i32 0, i32 0
  %1065 = load ptr, ptr %1064, align 8, !tbaa !18
  %1066 = load i32, ptr %8, align 4, !tbaa !9
  %1067 = sext i32 %1066 to i64
  %1068 = getelementptr inbounds i32, ptr %1065, i64 %1067
  %1069 = load i32, ptr %1068, align 4, !tbaa !9
  %1070 = sext i32 %1069 to i64
  %1071 = getelementptr inbounds %struct._FtConn, ptr %1062, i64 %1070
  %1072 = getelementptr inbounds %struct._FtConn, ptr %1071, i32 0, i32 15
  %1073 = load i8, ptr %1072, align 8, !tbaa !78
  %1074 = icmp ne i8 %1073, 0
  br i1 %1074, label %1075, label %1076

1075:                                             ; preds = %1061
  br label %1103

1076:                                             ; preds = %1061
  %1077 = load ptr, ptr %6, align 8, !tbaa !5
  %1078 = getelementptr inbounds %struct._State, ptr %1077, i32 0, i32 0
  %1079 = load ptr, ptr %1078, align 8, !tbaa !18
  %1080 = load i32, ptr %8, align 4, !tbaa !9
  %1081 = sext i32 %1080 to i64
  %1082 = getelementptr inbounds i32, ptr %1079, i64 %1081
  %1083 = load i32, ptr %1082, align 4, !tbaa !9
  %1084 = load ptr, ptr %5, align 8, !tbaa !5
  %1085 = getelementptr inbounds %struct._State, ptr %1084, i32 0, i32 0
  %1086 = load ptr, ptr %1085, align 8, !tbaa !18
  %1087 = load ptr, ptr %5, align 8, !tbaa !5
  %1088 = getelementptr inbounds %struct._State, ptr %1087, i32 0, i32 1
  %1089 = load i32, ptr %1088, align 8, !tbaa !16
  %1090 = add nsw i32 %1089, 1
  store i32 %1090, ptr %1088, align 8, !tbaa !16
  %1091 = sext i32 %1089 to i64
  %1092 = getelementptr inbounds i32, ptr %1086, i64 %1091
  store i32 %1083, ptr %1092, align 4, !tbaa !9
  %1093 = load ptr, ptr @result_to_dest.in_dest, align 8, !tbaa !5
  %1094 = load ptr, ptr %6, align 8, !tbaa !5
  %1095 = getelementptr inbounds %struct._State, ptr %1094, i32 0, i32 0
  %1096 = load ptr, ptr %1095, align 8, !tbaa !18
  %1097 = load i32, ptr %8, align 4, !tbaa !9
  %1098 = sext i32 %1097 to i64
  %1099 = getelementptr inbounds i32, ptr %1096, i64 %1098
  %1100 = load i32, ptr %1099, align 4, !tbaa !9
  %1101 = sext i32 %1100 to i64
  %1102 = getelementptr inbounds i8, ptr %1093, i64 %1101
  store i8 1, ptr %1102, align 1, !tbaa !11
  br label %1103

1103:                                             ; preds = %1076, %1075, %1060
  %1104 = load i32, ptr %8, align 4, !tbaa !9
  %1105 = add nsw i32 %1104, 1
  store i32 %1105, ptr %8, align 4, !tbaa !9
  br label %1041, !llvm.loop !80

1106:                                             ; preds = %1041
  store i32 0, ptr %8, align 4, !tbaa !9
  br label %1107

1107:                                             ; preds = %1198, %1106
  %1108 = load i32, ptr %8, align 4, !tbaa !9
  %1109 = load ptr, ptr @gop_conn, align 8, !tbaa !5
  %1110 = load i32, ptr %7, align 4, !tbaa !9
  %1111 = sext i32 %1110 to i64
  %1112 = getelementptr inbounds %struct._OpConn, ptr %1109, i64 %1111
  %1113 = getelementptr inbounds %struct._OpConn, ptr %1112, i32 0, i32 3
  %1114 = load i32, ptr %1113, align 8, !tbaa !20
  %1115 = icmp slt i32 %1108, %1114
  br i1 %1115, label %1116, label %1201

1116:                                             ; preds = %1107
  %1117 = load ptr, ptr @result_to_dest.true_ef, align 8, !tbaa !5
  %1118 = load i32, ptr %8, align 4, !tbaa !9
  %1119 = sext i32 %1118 to i64
  %1120 = getelementptr inbounds i8, ptr %1117, i64 %1119
  %1121 = load i8, ptr %1120, align 1, !tbaa !11
  %1122 = icmp ne i8 %1121, 0
  br i1 %1122, label %1124, label %1123

1123:                                             ; preds = %1116
  br label %1198

1124:                                             ; preds = %1116
  %1125 = load ptr, ptr @gop_conn, align 8, !tbaa !5
  %1126 = load i32, ptr %7, align 4, !tbaa !9
  %1127 = sext i32 %1126 to i64
  %1128 = getelementptr inbounds %struct._OpConn, ptr %1125, i64 %1127
  %1129 = getelementptr inbounds %struct._OpConn, ptr %1128, i32 0, i32 2
  %1130 = load ptr, ptr %1129, align 8, !tbaa !23
  %1131 = load i32, ptr %8, align 4, !tbaa !9
  %1132 = sext i32 %1131 to i64
  %1133 = getelementptr inbounds i32, ptr %1130, i64 %1132
  %1134 = load i32, ptr %1133, align 4, !tbaa !9
  store i32 %1134, ptr %10, align 4, !tbaa !9
  store i32 0, ptr %9, align 4, !tbaa !9
  br label %1135

1135:                                             ; preds = %1194, %1124
  %1136 = load i32, ptr %9, align 4, !tbaa !9
  %1137 = load ptr, ptr @gef_conn, align 8, !tbaa !5
  %1138 = load i32, ptr %10, align 4, !tbaa !9
  %1139 = sext i32 %1138 to i64
  %1140 = getelementptr inbounds %struct._EfConn, ptr %1137, i64 %1139
  %1141 = getelementptr inbounds %struct._EfConn, ptr %1140, i32 0, i32 13
  %1142 = load i32, ptr %1141, align 8, !tbaa !81
  %1143 = icmp slt i32 %1136, %1142
  br i1 %1143, label %1144, label %1197

1144:                                             ; preds = %1135
  %1145 = load ptr, ptr @result_to_dest.in_dest, align 8, !tbaa !5
  %1146 = load ptr, ptr @gef_conn, align 8, !tbaa !5
  %1147 = load i32, ptr %10, align 4, !tbaa !9
  %1148 = sext i32 %1147 to i64
  %1149 = getelementptr inbounds %struct._EfConn, ptr %1146, i64 %1148
  %1150 = getelementptr inbounds %struct._EfConn, ptr %1149, i32 0, i32 12
  %1151 = load ptr, ptr %1150, align 8, !tbaa !82
  %1152 = load i32, ptr %9, align 4, !tbaa !9
  %1153 = sext i32 %1152 to i64
  %1154 = getelementptr inbounds i32, ptr %1151, i64 %1153
  %1155 = load i32, ptr %1154, align 4, !tbaa !9
  %1156 = sext i32 %1155 to i64
  %1157 = getelementptr inbounds i8, ptr %1145, i64 %1156
  %1158 = load i8, ptr %1157, align 1, !tbaa !11
  %1159 = icmp ne i8 %1158, 0
  br i1 %1159, label %1160, label %1161

1160:                                             ; preds = %1144
  br label %1194

1161:                                             ; preds = %1144
  %1162 = load ptr, ptr @gef_conn, align 8, !tbaa !5
  %1163 = load i32, ptr %10, align 4, !tbaa !9
  %1164 = sext i32 %1163 to i64
  %1165 = getelementptr inbounds %struct._EfConn, ptr %1162, i64 %1164
  %1166 = getelementptr inbounds %struct._EfConn, ptr %1165, i32 0, i32 12
  %1167 = load ptr, ptr %1166, align 8, !tbaa !82
  %1168 = load i32, ptr %9, align 4, !tbaa !9
  %1169 = sext i32 %1168 to i64
  %1170 = getelementptr inbounds i32, ptr %1167, i64 %1169
  %1171 = load i32, ptr %1170, align 4, !tbaa !9
  %1172 = load ptr, ptr %5, align 8, !tbaa !5
  %1173 = getelementptr inbounds %struct._State, ptr %1172, i32 0, i32 0
  %1174 = load ptr, ptr %1173, align 8, !tbaa !18
  %1175 = load ptr, ptr %5, align 8, !tbaa !5
  %1176 = getelementptr inbounds %struct._State, ptr %1175, i32 0, i32 1
  %1177 = load i32, ptr %1176, align 8, !tbaa !16
  %1178 = add nsw i32 %1177, 1
  store i32 %1178, ptr %1176, align 8, !tbaa !16
  %1179 = sext i32 %1177 to i64
  %1180 = getelementptr inbounds i32, ptr %1174, i64 %1179
  store i32 %1171, ptr %1180, align 4, !tbaa !9
  %1181 = load ptr, ptr @result_to_dest.in_dest, align 8, !tbaa !5
  %1182 = load ptr, ptr @gef_conn, align 8, !tbaa !5
  %1183 = load i32, ptr %10, align 4, !tbaa !9
  %1184 = sext i32 %1183 to i64
  %1185 = getelementptr inbounds %struct._EfConn, ptr %1182, i64 %1184
  %1186 = getelementptr inbounds %struct._EfConn, ptr %1185, i32 0, i32 12
  %1187 = load ptr, ptr %1186, align 8, !tbaa !82
  %1188 = load i32, ptr %9, align 4, !tbaa !9
  %1189 = sext i32 %1188 to i64
  %1190 = getelementptr inbounds i32, ptr %1187, i64 %1189
  %1191 = load i32, ptr %1190, align 4, !tbaa !9
  %1192 = sext i32 %1191 to i64
  %1193 = getelementptr inbounds i8, ptr %1181, i64 %1192
  store i8 1, ptr %1193, align 1, !tbaa !11
  br label %1194

1194:                                             ; preds = %1161, %1160
  %1195 = load i32, ptr %9, align 4, !tbaa !9
  %1196 = add nsw i32 %1195, 1
  store i32 %1196, ptr %9, align 4, !tbaa !9
  br label %1135, !llvm.loop !83

1197:                                             ; preds = %1135
  br label %1198

1198:                                             ; preds = %1197, %1123
  %1199 = load i32, ptr %8, align 4, !tbaa !9
  %1200 = add nsw i32 %1199, 1
  store i32 %1200, ptr %8, align 4, !tbaa !9
  br label %1107, !llvm.loop !84

1201:                                             ; preds = %1107
  %1202 = load ptr, ptr %5, align 8, !tbaa !5
  call void @do_axiom_update(ptr noundef %1202)
  store i32 0, ptr %8, align 4, !tbaa !9
  br label %1203

1203:                                             ; preds = %1220, %1201
  %1204 = load i32, ptr %8, align 4, !tbaa !9
  %1205 = load ptr, ptr %6, align 8, !tbaa !5
  %1206 = getelementptr inbounds %struct._State, ptr %1205, i32 0, i32 1
  %1207 = load i32, ptr %1206, align 8, !tbaa !16
  %1208 = icmp slt i32 %1204, %1207
  br i1 %1208, label %1209, label %1223

1209:                                             ; preds = %1203
  %1210 = load ptr, ptr @result_to_dest.in_source, align 8, !tbaa !5
  %1211 = load ptr, ptr %6, align 8, !tbaa !5
  %1212 = getelementptr inbounds %struct._State, ptr %1211, i32 0, i32 0
  %1213 = load ptr, ptr %1212, align 8, !tbaa !18
  %1214 = load i32, ptr %8, align 4, !tbaa !9
  %1215 = sext i32 %1214 to i64
  %1216 = getelementptr inbounds i32, ptr %1213, i64 %1215
  %1217 = load i32, ptr %1216, align 4, !tbaa !9
  %1218 = sext i32 %1217 to i64
  %1219 = getelementptr inbounds i8, ptr %1210, i64 %1218
  store i8 0, ptr %1219, align 1, !tbaa !11
  br label %1220

1220:                                             ; preds = %1209
  %1221 = load i32, ptr %8, align 4, !tbaa !9
  %1222 = add nsw i32 %1221, 1
  store i32 %1222, ptr %8, align 4, !tbaa !9
  br label %1203, !llvm.loop !85

1223:                                             ; preds = %1203
  store i32 0, ptr %8, align 4, !tbaa !9
  br label %1224

1224:                                             ; preds = %1241, %1223
  %1225 = load i32, ptr %8, align 4, !tbaa !9
  %1226 = load ptr, ptr %5, align 8, !tbaa !5
  %1227 = getelementptr inbounds %struct._State, ptr %1226, i32 0, i32 1
  %1228 = load i32, ptr %1227, align 8, !tbaa !16
  %1229 = icmp slt i32 %1225, %1228
  br i1 %1229, label %1230, label %1244

1230:                                             ; preds = %1224
  %1231 = load ptr, ptr @result_to_dest.in_dest, align 8, !tbaa !5
  %1232 = load ptr, ptr %5, align 8, !tbaa !5
  %1233 = getelementptr inbounds %struct._State, ptr %1232, i32 0, i32 0
  %1234 = load ptr, ptr %1233, align 8, !tbaa !18
  %1235 = load i32, ptr %8, align 4, !tbaa !9
  %1236 = sext i32 %1235 to i64
  %1237 = getelementptr inbounds i32, ptr %1234, i64 %1236
  %1238 = load i32, ptr %1237, align 4, !tbaa !9
  %1239 = sext i32 %1238 to i64
  %1240 = getelementptr inbounds i8, ptr %1231, i64 %1239
  store i8 0, ptr %1240, align 1, !tbaa !11
  br label %1241

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

1244:                                             ; preds = %1224
  store i32 0, ptr %8, align 4, !tbaa !9
  br label %1245

1245:                                             ; preds = %1258, %1244
  %1246 = load i32, ptr %8, align 4, !tbaa !9
  %1247 = load i32, ptr @result_to_dest.num_del, align 4, !tbaa !9
  %1248 = icmp slt i32 %1246, %1247
  br i1 %1248, label %1249, label %1261

1249:                                             ; preds = %1245
  %1250 = load ptr, ptr @result_to_dest.in_del, align 8, !tbaa !5
  %1251 = load ptr, ptr @result_to_dest.del, align 8, !tbaa !5
  %1252 = load i32, ptr %8, align 4, !tbaa !9
  %1253 = sext i32 %1252 to i64
  %1254 = getelementptr inbounds i32, ptr %1251, i64 %1253
  %1255 = load i32, ptr %1254, align 4, !tbaa !9
  %1256 = sext i32 %1255 to i64
  %1257 = getelementptr inbounds i8, ptr %1250, i64 %1256
  store i8 0, ptr %1257, align 1, !tbaa !11
  br label %1258

1258:                                             ; preds = %1249
  %1259 = load i32, ptr %8, align 4, !tbaa !9
  %1260 = add nsw i32 %1259, 1
  store i32 %1260, ptr %8, align 4, !tbaa !9
  br label %1245, !llvm.loop !87

1261:                                             ; preds = %1245
  store i32 0, ptr %8, align 4, !tbaa !9
  br label %1262

1262:                                             ; preds = %1276, %1261
  %1263 = load i32, ptr %8, align 4, !tbaa !9
  %1264 = load ptr, ptr @gop_conn, align 8, !tbaa !5
  %1265 = load i32, ptr %7, align 4, !tbaa !9
  %1266 = sext i32 %1265 to i64
  %1267 = getelementptr inbounds %struct._OpConn, ptr %1264, i64 %1266
  %1268 = getelementptr inbounds %struct._OpConn, ptr %1267, i32 0, i32 3
  %1269 = load i32, ptr %1268, align 8, !tbaa !20
  %1270 = icmp slt i32 %1263, %1269
  br i1 %1270, label %1271, label %1279

1271:                                             ; preds = %1262
  %1272 = load ptr, ptr @result_to_dest.true_ef, align 8, !tbaa !5
  %1273 = load i32, ptr %8, align 4, !tbaa !9
  %1274 = sext i32 %1273 to i64
  %1275 = getelementptr inbounds i8, ptr %1272, i64 %1274
  store i8 0, ptr %1275, align 1, !tbaa !11
  br label %1276

1276:                                             ; preds = %1271
  %1277 = load i32, ptr %8, align 4, !tbaa !9
  %1278 = add nsw i32 %1277, 1
  store i32 %1278, ptr %8, align 4, !tbaa !9
  br label %1262, !llvm.loop !88

1279:                                             ; preds = %1262
  store i32 0, ptr %8, align 4, !tbaa !9
  br label %1280

1280:                                             ; preds = %1289, %1279
  %1281 = load i32, ptr %8, align 4, !tbaa !9
  %1282 = load i32, ptr @gnum_fl_conn, align 4, !tbaa !9
  %1283 = icmp slt i32 %1281, %1282
  br i1 %1283, label %1284, label %1292

1284:                                             ; preds = %1280
  %1285 = load ptr, ptr @result_to_dest.assigned, align 8, !tbaa !5
  %1286 = load i32, ptr %8, align 4, !tbaa !9
  %1287 = sext i32 %1286 to i64
  %1288 = getelementptr inbounds i8, ptr %1285, i64 %1287
  store i8 0, ptr %1288, align 1, !tbaa !11
  br label %1289

1289:                                             ; preds = %1284
  %1290 = load i32, ptr %8, align 4, !tbaa !9
  %1291 = add nsw i32 %1290, 1
  store i32 %1291, ptr %8, align 4, !tbaa !9
  br label %1280, !llvm.loop !89

1292:                                             ; preds = %1280
  store i8 1, ptr %4, align 1
  store i32 1, ptr %16, align 4
  br label %1293

1293:                                             ; preds = %1292, %1007, %900, %772, %671, %481, %354, %268
  call void @llvm.lifetime.end.p0(i64 1, ptr %15) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #4
  %1294 = load i8, ptr %4, align 1
  ret i8 %1294
}

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

; Function Attrs: nounwind uwtable
declare dso_local zeroext i8 @determine_source_val(ptr noundef, i32 noundef, ptr noundef) #1

declare zeroext i8 @number_comparison_holds(i32 noundef, float noundef, float noundef) #3

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

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

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

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


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

@gnum_ft_conn = external local_unnamed_addr global i32, align 4
@gnum_fl_conn = external local_unnamed_addr global i32, align 4
@gop_conn = external local_unnamed_addr global ptr, align 8
@gft_conn = external local_unnamed_addr global ptr, align 8
@result_to_dest.first_call = external hidden local_unnamed_addr global i8, align 1
@result_to_dest.in_source = external hidden local_unnamed_addr global ptr, align 8
@result_to_dest.in_dest = external hidden local_unnamed_addr global ptr, align 8
@result_to_dest.in_del = external hidden local_unnamed_addr global ptr, align 8
@result_to_dest.true_ef = external hidden local_unnamed_addr global ptr, align 8
@result_to_dest.assigned = external hidden local_unnamed_addr global ptr, align 8
@result_to_dest.del = external hidden local_unnamed_addr global ptr, align 8
@result_to_dest.num_del = external hidden local_unnamed_addr global i32, align 4
@gnum_ef_conn = external local_unnamed_addr global i32, align 4
@gef_conn = external local_unnamed_addr global ptr, align 8

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

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

; Function Attrs: nounwind uwtable
define dso_local zeroext range(i8 0, 2) i8 @result_to_dest(ptr noundef %0, ptr noundef %1, i32 noundef %2) local_unnamed_addr #1 {
  %4 = alloca float, align 4
  %5 = alloca float, align 4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %4) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %5) #4
  %6 = load i8, ptr @result_to_dest.first_call, align 1, !tbaa !5
  %.not = icmp eq i8 %6, 0
  br i1 %.not, label %44, label %7

7:                                                ; preds = %3
  %8 = load i32, ptr @gnum_ft_conn, align 4, !tbaa !8
  %9 = sext i32 %8 to i64
  %10 = tail call noalias ptr @calloc(i64 noundef %9, i64 noundef 1) #5
  store ptr %10, ptr @result_to_dest.in_source, align 8, !tbaa !10
  %11 = tail call noalias ptr @calloc(i64 noundef %9, i64 noundef 1) #5
  store ptr %11, ptr @result_to_dest.in_dest, align 8, !tbaa !10
  %12 = tail call noalias ptr @calloc(i64 noundef %9, i64 noundef 1) #5
  store ptr %12, ptr @result_to_dest.in_del, align 8, !tbaa !10
  %13 = load i32, ptr @gnum_ef_conn, align 4, !tbaa !8
  %14 = sext i32 %13 to i64
  %15 = tail call noalias ptr @calloc(i64 noundef %14, i64 noundef 1) #5
  store ptr %15, ptr @result_to_dest.true_ef, align 8, !tbaa !10
  %16 = load i32, ptr @gnum_fl_conn, align 4, !tbaa !8
  %17 = sext i32 %16 to i64
  %18 = tail call noalias ptr @calloc(i64 noundef %17, i64 noundef 1) #5
  store ptr %18, ptr @result_to_dest.assigned, align 8, !tbaa !10
  %19 = tail call noalias ptr @calloc(i64 noundef %9, i64 noundef 4) #5
  store ptr %19, ptr @result_to_dest.del, align 8, !tbaa !10
  %20 = icmp sgt i32 %8, 0
  br i1 %20, label %.lr.ph, label %.preheader330

.preheader330.loopexit:                           ; preds = %.lr.ph
  %.pre = load i32, ptr @gnum_ef_conn, align 4, !tbaa !8
  br label %.preheader330

.preheader330:                                    ; preds = %.preheader330.loopexit, %7
  %21 = phi i32 [ %.pre, %.preheader330.loopexit ], [ %13, %7 ]
  %22 = icmp sgt i32 %21, 0
  br i1 %22, label %.lr.ph344, label %.preheader329

.lr.ph:                                           ; preds = %7, %.lr.ph
  %indvars.iv = phi i64 [ %indvars.iv.next, %.lr.ph ], [ 0, %7 ]
  %23 = load ptr, ptr @result_to_dest.in_source, align 8, !tbaa !10
  %24 = getelementptr inbounds i8, ptr %23, i64 %indvars.iv
  store i8 0, ptr %24, align 1, !tbaa !5
  %25 = load ptr, ptr @result_to_dest.in_dest, align 8, !tbaa !10
  %26 = getelementptr inbounds i8, ptr %25, i64 %indvars.iv
  store i8 0, ptr %26, align 1, !tbaa !5
  %27 = load ptr, ptr @result_to_dest.in_del, align 8, !tbaa !10
  %28 = getelementptr inbounds i8, ptr %27, i64 %indvars.iv
  store i8 0, ptr %28, align 1, !tbaa !5
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %29 = load i32, ptr @gnum_ft_conn, align 4, !tbaa !8
  %30 = sext i32 %29 to i64
  %31 = icmp slt i64 %indvars.iv.next, %30
  br i1 %31, label %.lr.ph, label %.preheader330.loopexit, !llvm.loop !12

.preheader329:                                    ; preds = %.lr.ph344, %.preheader330
  %32 = load i32, ptr @gnum_fl_conn, align 4, !tbaa !8
  %33 = icmp sgt i32 %32, 0
  br i1 %33, label %.lr.ph346, label %._crit_edge

.lr.ph344:                                        ; preds = %.preheader330, %.lr.ph344
  %indvars.iv467 = phi i64 [ %indvars.iv.next468, %.lr.ph344 ], [ 0, %.preheader330 ]
  %34 = load ptr, ptr @result_to_dest.true_ef, align 8, !tbaa !10
  %35 = getelementptr inbounds i8, ptr %34, i64 %indvars.iv467
  store i8 0, ptr %35, align 1, !tbaa !5
  %indvars.iv.next468 = add nuw nsw i64 %indvars.iv467, 1
  %36 = load i32, ptr @gnum_ef_conn, align 4, !tbaa !8
  %37 = sext i32 %36 to i64
  %38 = icmp slt i64 %indvars.iv.next468, %37
  br i1 %38, label %.lr.ph344, label %.preheader329, !llvm.loop !14

.lr.ph346:                                        ; preds = %.preheader329, %.lr.ph346
  %indvars.iv470 = phi i64 [ %indvars.iv.next471, %.lr.ph346 ], [ 0, %.preheader329 ]
  %39 = load ptr, ptr @result_to_dest.assigned, align 8, !tbaa !10
  %40 = getelementptr inbounds i8, ptr %39, i64 %indvars.iv470
  store i8 0, ptr %40, align 1, !tbaa !5
  %indvars.iv.next471 = add nuw nsw i64 %indvars.iv470, 1
  %41 = load i32, ptr @gnum_fl_conn, align 4, !tbaa !8
  %42 = sext i32 %41 to i64
  %43 = icmp slt i64 %indvars.iv.next471, %42
  br i1 %43, label %.lr.ph346, label %._crit_edge, !llvm.loop !15

._crit_edge:                                      ; preds = %.lr.ph346, %.preheader329
  store i8 0, ptr @result_to_dest.first_call, align 1, !tbaa !5
  br label %44

44:                                               ; preds = %._crit_edge, %3
  %45 = getelementptr inbounds i8, ptr %1, i64 8
  %46 = load i32, ptr %45, align 8, !tbaa !16
  %47 = icmp sgt i32 %46, 0
  br i1 %47, label %.lr.ph349, label %._crit_edge350

.lr.ph349:                                        ; preds = %44, %.lr.ph349
  %indvars.iv473 = phi i64 [ %indvars.iv.next474, %.lr.ph349 ], [ 0, %44 ]
  %48 = load ptr, ptr @result_to_dest.in_source, align 8, !tbaa !10
  %49 = load ptr, ptr %1, align 8, !tbaa !18
  %50 = getelementptr inbounds i32, ptr %49, i64 %indvars.iv473
  %51 = load i32, ptr %50, align 4, !tbaa !8
  %52 = sext i32 %51 to i64
  %53 = getelementptr inbounds i8, ptr %48, i64 %52
  store i8 1, ptr %53, align 1, !tbaa !5
  %indvars.iv.next474 = add nuw nsw i64 %indvars.iv473, 1
  %54 = load i32, ptr %45, align 8, !tbaa !16
  %55 = sext i32 %54 to i64
  %56 = icmp slt i64 %indvars.iv.next474, %55
  br i1 %56, label %.lr.ph349, label %._crit_edge350, !llvm.loop !19

._crit_edge350:                                   ; preds = %.lr.ph349, %44
  store i32 0, ptr @result_to_dest.num_del, align 4, !tbaa !8
  %57 = sext i32 %2 to i64
  %58 = load ptr, ptr @gop_conn, align 8, !tbaa !10
  %59 = getelementptr inbounds %struct._OpConn, ptr %58, i64 %57, i32 3
  %60 = load i32, ptr %59, align 8, !tbaa !20
  %61 = icmp sgt i32 %60, 0
  br i1 %61, label %.lr.ph373.preheader, label %.preheader296

.lr.ph373.preheader:                              ; preds = %._crit_edge350
  %.pre636 = load ptr, ptr @gef_conn, align 8, !tbaa !10
  br label %.lr.ph373

.lr.ph373:                                        ; preds = %.lr.ph373.preheader, %.loopexit327
  %62 = phi ptr [ %.pre636, %.lr.ph373.preheader ], [ %222, %.loopexit327 ]
  %63 = phi ptr [ %.pre636, %.lr.ph373.preheader ], [ %223, %.loopexit327 ]
  %indvars.iv486 = phi i64 [ 0, %.lr.ph373.preheader ], [ %indvars.iv.next487, %.loopexit327 ]
  %64 = phi ptr [ %58, %.lr.ph373.preheader ], [ %224, %.loopexit327 ]
  %.0371 = phi i8 [ 0, %.lr.ph373.preheader ], [ %.1, %.loopexit327 ]
  %65 = getelementptr inbounds %struct._OpConn, ptr %64, i64 %57, i32 2
  %66 = load ptr, ptr %65, align 8, !tbaa !23
  %67 = getelementptr inbounds i32, ptr %66, i64 %indvars.iv486
  %68 = load i32, ptr %67, align 4, !tbaa !8
  %69 = sext i32 %68 to i64
  %70 = getelementptr inbounds %struct._EfConn, ptr %63, i64 %69
  %71 = getelementptr inbounds i8, ptr %70, i64 24
  %72 = load i32, ptr %71, align 8, !tbaa !24
  %73 = icmp sgt i32 %72, 0
  br i1 %73, label %.lr.ph353, label %._crit_edge354

.lr.ph353:                                        ; preds = %.lr.ph373
  %74 = load ptr, ptr @result_to_dest.in_source, align 8, !tbaa !10
  %75 = getelementptr inbounds i8, ptr %70, i64 16
  %76 = load ptr, ptr %75, align 8, !tbaa !26
  %wide.trip.count = zext nneg i32 %72 to i64
  br label %77

77:                                               ; preds = %.lr.ph353, %83
  %indvars.iv476 = phi i64 [ 0, %.lr.ph353 ], [ %indvars.iv.next477, %83 ]
  %78 = getelementptr inbounds i32, ptr %76, i64 %indvars.iv476
  %79 = load i32, ptr %78, align 4, !tbaa !8
  %80 = sext i32 %79 to i64
  %81 = getelementptr inbounds i8, ptr %74, i64 %80
  %82 = load i8, ptr %81, align 1, !tbaa !5
  %.not282 = icmp eq i8 %82, 0
  br i1 %.not282, label %._crit_edge354.loopexit, label %83

83:                                               ; preds = %77
  %indvars.iv.next477 = add nuw nsw i64 %indvars.iv476, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next477, %wide.trip.count
  br i1 %exitcond.not, label %.preheader328, label %77, !llvm.loop !27

._crit_edge354.loopexit:                          ; preds = %77
  %84 = trunc nuw nsw i64 %indvars.iv476 to i32
  br label %._crit_edge354

._crit_edge354:                                   ; preds = %._crit_edge354.loopexit, %.lr.ph373
  %.0260.lcssa = phi i32 [ 0, %.lr.ph373 ], [ %84, %._crit_edge354.loopexit ]
  %85 = icmp slt i32 %.0260.lcssa, %72
  br i1 %85, label %.loopexit327, label %.preheader328

.preheader328:                                    ; preds = %83, %._crit_edge354
  %86 = getelementptr inbounds i8, ptr %70, i64 56
  %87 = load i32, ptr %86, align 8, !tbaa !28
  %88 = icmp sgt i32 %87, 0
  br i1 %88, label %.lr.ph362, label %._crit_edge363

.lr.ph362:                                        ; preds = %.preheader328, %141
  %indvars.iv479 = phi i64 [ %indvars.iv.next480, %141 ], [ 0, %.preheader328 ]
  %89 = phi ptr [ %142, %141 ], [ %70, %.preheader328 ]
  %90 = phi ptr [ %.pre637.pre, %141 ], [ %63, %.preheader328 ]
  %91 = getelementptr inbounds i8, ptr %89, i64 40
  %92 = load ptr, ptr %91, align 8, !tbaa !29
  %93 = getelementptr inbounds i32, ptr %92, i64 %indvars.iv479
  %94 = load i32, ptr %93, align 4, !tbaa !8
  %95 = getelementptr inbounds i8, ptr %89, i64 48
  %96 = load ptr, ptr %95, align 8, !tbaa !30
  %97 = getelementptr inbounds float, ptr %96, i64 %indvars.iv479
  %98 = load float, ptr %97, align 4, !tbaa !31
  store float %98, ptr %4, align 4, !tbaa !31
  %99 = getelementptr inbounds %struct._EfConn, ptr %90, i64 %69, i32 6
  %100 = load ptr, ptr %99, align 8, !tbaa !32
  %101 = getelementptr inbounds i32, ptr %100, i64 %indvars.iv479
  %102 = load i32, ptr %101, align 4, !tbaa !8
  %103 = call zeroext i8 @determine_source_val(ptr noundef %1, i32 noundef %94, ptr noundef nonnull %5)
  %.not283 = icmp eq i8 %103, 0
  br i1 %.not283, label %.preheader288, label %137

.preheader288:                                    ; preds = %.lr.ph362
  %104 = load i32, ptr @result_to_dest.num_del, align 4, !tbaa !8
  %105 = icmp sgt i32 %104, 0
  br i1 %105, label %.lr.ph454, label %.preheader287

.preheader287:                                    ; preds = %.lr.ph454, %.preheader288
  %106 = load ptr, ptr @gop_conn, align 8, !tbaa !10
  %107 = getelementptr inbounds %struct._OpConn, ptr %106, i64 %57, i32 3
  %108 = load i32, ptr %107, align 8, !tbaa !20
  %109 = icmp sgt i32 %108, 0
  br i1 %109, label %.lr.ph456, label %.preheader

.lr.ph454:                                        ; preds = %.preheader288, %.lr.ph454
  %indvars.iv500 = phi i64 [ %indvars.iv.next501, %.lr.ph454 ], [ 0, %.preheader288 ]
  %110 = load ptr, ptr @result_to_dest.in_del, align 8, !tbaa !10
  %111 = load ptr, ptr @result_to_dest.del, align 8, !tbaa !10
  %112 = getelementptr inbounds i32, ptr %111, i64 %indvars.iv500
  %113 = load i32, ptr %112, align 4, !tbaa !8
  %114 = sext i32 %113 to i64
  %115 = getelementptr inbounds i8, ptr %110, i64 %114
  store i8 0, ptr %115, align 1, !tbaa !5
  %indvars.iv.next501 = add nuw nsw i64 %indvars.iv500, 1
  %116 = load i32, ptr @result_to_dest.num_del, align 4, !tbaa !8
  %117 = sext i32 %116 to i64
  %118 = icmp slt i64 %indvars.iv.next501, %117
  br i1 %118, label %.lr.ph454, label %.preheader287, !llvm.loop !33

.preheader:                                       ; preds = %.lr.ph456, %.preheader287
  %119 = load i32, ptr %45, align 8, !tbaa !16
  %120 = icmp sgt i32 %119, 0
  br i1 %120, label %.lr.ph458, label %.loopexit

.lr.ph456:                                        ; preds = %.preheader287, %.lr.ph456
  %indvars.iv504 = phi i64 [ %indvars.iv.next505, %.lr.ph456 ], [ 0, %.preheader287 ]
  %121 = load ptr, ptr @result_to_dest.true_ef, align 8, !tbaa !10
  %122 = getelementptr inbounds i8, ptr %121, i64 %indvars.iv504
  store i8 0, ptr %122, align 1, !tbaa !5
  %indvars.iv.next505 = add nuw nsw i64 %indvars.iv504, 1
  %123 = load ptr, ptr @gop_conn, align 8, !tbaa !10
  %124 = getelementptr inbounds %struct._OpConn, ptr %123, i64 %57, i32 3
  %125 = load i32, ptr %124, align 8, !tbaa !20
  %126 = sext i32 %125 to i64
  %127 = icmp slt i64 %indvars.iv.next505, %126
  br i1 %127, label %.lr.ph456, label %.preheader, !llvm.loop !34

.lr.ph458:                                        ; preds = %.preheader, %.lr.ph458
  %indvars.iv508 = phi i64 [ %indvars.iv.next509, %.lr.ph458 ], [ 0, %.preheader ]
  %128 = load ptr, ptr @result_to_dest.in_source, align 8, !tbaa !10
  %129 = load ptr, ptr %1, align 8, !tbaa !18
  %130 = getelementptr inbounds i32, ptr %129, i64 %indvars.iv508
  %131 = load i32, ptr %130, align 4, !tbaa !8
  %132 = sext i32 %131 to i64
  %133 = getelementptr inbounds i8, ptr %128, i64 %132
  store i8 0, ptr %133, align 1, !tbaa !5
  %indvars.iv.next509 = add nuw nsw i64 %indvars.iv508, 1
  %134 = load i32, ptr %45, align 8, !tbaa !16
  %135 = sext i32 %134 to i64
  %136 = icmp slt i64 %indvars.iv.next509, %135
  br i1 %136, label %.lr.ph458, label %.loopexit, !llvm.loop !35

137:                                              ; preds = %.lr.ph362
  %138 = load float, ptr %5, align 4, !tbaa !31
  %139 = load float, ptr %4, align 4, !tbaa !31
  %140 = call zeroext i8 @number_comparison_holds(i32 noundef %102, float noundef %138, float noundef %139) #4
  %.not284 = icmp eq i8 %140, 0
  %.pre637.pre = load ptr, ptr @gef_conn, align 8, !tbaa !10
  br i1 %.not284, label %._crit_edge363.loopexit, label %141

141:                                              ; preds = %137
  %indvars.iv.next480 = add nuw nsw i64 %indvars.iv479, 1
  %142 = getelementptr inbounds %struct._EfConn, ptr %.pre637.pre, i64 %69
  %143 = getelementptr inbounds i8, ptr %142, i64 56
  %144 = load i32, ptr %143, align 8, !tbaa !28
  %145 = sext i32 %144 to i64
  %146 = icmp slt i64 %indvars.iv.next480, %145
  br i1 %146, label %.lr.ph362, label %._crit_edge363.loopexit, !llvm.loop !36

._crit_edge363.loopexit:                          ; preds = %137, %141
  %.1261.lcssa.ph.in = phi i64 [ %indvars.iv.next480, %141 ], [ %indvars.iv479, %137 ]
  %.1261.lcssa.ph = trunc i64 %.1261.lcssa.ph.in to i32
  br label %._crit_edge363

._crit_edge363:                                   ; preds = %._crit_edge363.loopexit, %.preheader328
  %147 = phi ptr [ %62, %.preheader328 ], [ %.pre637.pre, %._crit_edge363.loopexit ]
  %.1261.lcssa = phi i32 [ 0, %.preheader328 ], [ %.1261.lcssa.ph, %._crit_edge363.loopexit ]
  %148 = getelementptr inbounds %struct._EfConn, ptr %147, i64 %69
  %149 = getelementptr inbounds i8, ptr %148, i64 56
  %150 = load i32, ptr %149, align 8, !tbaa !28
  %151 = icmp slt i32 %.1261.lcssa, %150
  br i1 %151, label %.loopexit327, label %152

152:                                              ; preds = %._crit_edge363
  %153 = getelementptr inbounds i8, ptr %148, i64 4
  %154 = load i8, ptr %153, align 4, !tbaa !37
  %.not285 = icmp eq i8 %154, 0
  br i1 %.not285, label %188, label %.preheader292

.preheader292:                                    ; preds = %152
  %155 = load i32, ptr %45, align 8, !tbaa !16
  %156 = icmp sgt i32 %155, 0
  br i1 %156, label %.lr.ph448, label %.preheader291

.preheader291:                                    ; preds = %.lr.ph448, %.preheader292
  %157 = load i32, ptr @result_to_dest.num_del, align 4, !tbaa !8
  %158 = icmp sgt i32 %157, 0
  br i1 %158, label %.lr.ph450, label %.preheader289

.lr.ph448:                                        ; preds = %.preheader292, %.lr.ph448
  %indvars.iv488 = phi i64 [ %indvars.iv.next489, %.lr.ph448 ], [ 0, %.preheader292 ]
  %159 = load ptr, ptr @result_to_dest.in_source, align 8, !tbaa !10
  %160 = load ptr, ptr %1, align 8, !tbaa !18
  %161 = getelementptr inbounds i32, ptr %160, i64 %indvars.iv488
  %162 = load i32, ptr %161, align 4, !tbaa !8
  %163 = sext i32 %162 to i64
  %164 = getelementptr inbounds i8, ptr %159, i64 %163
  store i8 0, ptr %164, align 1, !tbaa !5
  %indvars.iv.next489 = add nuw nsw i64 %indvars.iv488, 1
  %165 = load i32, ptr %45, align 8, !tbaa !16
  %166 = sext i32 %165 to i64
  %167 = icmp slt i64 %indvars.iv.next489, %166
  br i1 %167, label %.lr.ph448, label %.preheader291, !llvm.loop !38

.preheader289:                                    ; preds = %.lr.ph450, %.preheader291
  %168 = load ptr, ptr @gop_conn, align 8, !tbaa !10
  %169 = getelementptr inbounds %struct._OpConn, ptr %168, i64 %57, i32 3
  %170 = load i32, ptr %169, align 8, !tbaa !20
  %171 = icmp sgt i32 %170, 0
  br i1 %171, label %.lr.ph452, label %.loopexit

.lr.ph450:                                        ; preds = %.preheader291, %.lr.ph450
  %indvars.iv492 = phi i64 [ %indvars.iv.next493, %.lr.ph450 ], [ 0, %.preheader291 ]
  %172 = load ptr, ptr @result_to_dest.in_del, align 8, !tbaa !10
  %173 = load ptr, ptr @result_to_dest.del, align 8, !tbaa !10
  %174 = getelementptr inbounds i32, ptr %173, i64 %indvars.iv492
  %175 = load i32, ptr %174, align 4, !tbaa !8
  %176 = sext i32 %175 to i64
  %177 = getelementptr inbounds i8, ptr %172, i64 %176
  store i8 0, ptr %177, align 1, !tbaa !5
  %indvars.iv.next493 = add nuw nsw i64 %indvars.iv492, 1
  %178 = load i32, ptr @result_to_dest.num_del, align 4, !tbaa !8
  %179 = sext i32 %178 to i64
  %180 = icmp slt i64 %indvars.iv.next493, %179
  br i1 %180, label %.lr.ph450, label %.preheader289, !llvm.loop !39

.lr.ph452:                                        ; preds = %.preheader289, %.lr.ph452
  %indvars.iv496 = phi i64 [ %indvars.iv.next497, %.lr.ph452 ], [ 0, %.preheader289 ]
  %181 = load ptr, ptr @result_to_dest.true_ef, align 8, !tbaa !10
  %182 = getelementptr inbounds i8, ptr %181, i64 %indvars.iv496
  store i8 0, ptr %182, align 1, !tbaa !5
  %indvars.iv.next497 = add nuw nsw i64 %indvars.iv496, 1
  %183 = load ptr, ptr @gop_conn, align 8, !tbaa !10
  %184 = getelementptr inbounds %struct._OpConn, ptr %183, i64 %57, i32 3
  %185 = load i32, ptr %184, align 8, !tbaa !20
  %186 = sext i32 %185 to i64
  %187 = icmp slt i64 %indvars.iv.next497, %186
  br i1 %187, label %.lr.ph452, label %.loopexit, !llvm.loop !40

188:                                              ; preds = %152
  %189 = load ptr, ptr @result_to_dest.true_ef, align 8, !tbaa !10
  %190 = getelementptr inbounds i8, ptr %189, i64 %indvars.iv486
  store i8 1, ptr %190, align 1, !tbaa !5
  %191 = load ptr, ptr @gef_conn, align 8, !tbaa !10
  %192 = getelementptr inbounds %struct._EfConn, ptr %191, i64 %69, i32 15
  %193 = load i32, ptr %192, align 8, !tbaa !41
  %194 = icmp sgt i32 %193, 0
  br i1 %194, label %.lr.ph369.preheader, label %.loopexit327

.lr.ph369.preheader:                              ; preds = %188
  %.pre639 = load ptr, ptr @result_to_dest.in_del, align 8, !tbaa !10
  br label %.lr.ph369

.lr.ph369:                                        ; preds = %.lr.ph369.preheader, %215
  %195 = phi ptr [ %191, %.lr.ph369.preheader ], [ %216, %215 ]
  %196 = phi ptr [ %.pre639, %.lr.ph369.preheader ], [ %217, %215 ]
  %indvars.iv482 = phi i64 [ 0, %.lr.ph369.preheader ], [ %indvars.iv.next483, %215 ]
  %197 = getelementptr inbounds %struct._EfConn, ptr %195, i64 %69, i32 14
  %198 = load ptr, ptr %197, align 8, !tbaa !42
  %199 = getelementptr inbounds i32, ptr %198, i64 %indvars.iv482
  %200 = load i32, ptr %199, align 4, !tbaa !8
  %201 = sext i32 %200 to i64
  %202 = getelementptr inbounds i8, ptr %196, i64 %201
  %203 = load i8, ptr %202, align 1, !tbaa !5
  %.not286 = icmp eq i8 %203, 0
  br i1 %.not286, label %204, label %215

204:                                              ; preds = %.lr.ph369
  store i8 1, ptr %202, align 1, !tbaa !5
  %205 = load ptr, ptr @gef_conn, align 8, !tbaa !10
  %206 = getelementptr inbounds %struct._EfConn, ptr %205, i64 %69, i32 14
  %207 = load ptr, ptr %206, align 8, !tbaa !42
  %208 = getelementptr inbounds i32, ptr %207, i64 %indvars.iv482
  %209 = load i32, ptr %208, align 4, !tbaa !8
  %210 = load ptr, ptr @result_to_dest.del, align 8, !tbaa !10
  %211 = load i32, ptr @result_to_dest.num_del, align 4, !tbaa !8
  %212 = add nsw i32 %211, 1
  store i32 %212, ptr @result_to_dest.num_del, align 4, !tbaa !8
  %213 = sext i32 %211 to i64
  %214 = getelementptr inbounds i32, ptr %210, i64 %213
  store i32 %209, ptr %214, align 4, !tbaa !8
  %.pre638 = load ptr, ptr @result_to_dest.in_del, align 8, !tbaa !10
  br label %215

215:                                              ; preds = %.lr.ph369, %204
  %216 = phi ptr [ %195, %.lr.ph369 ], [ %205, %204 ]
  %217 = phi ptr [ %196, %.lr.ph369 ], [ %.pre638, %204 ]
  %indvars.iv.next483 = add nuw nsw i64 %indvars.iv482, 1
  %218 = getelementptr inbounds %struct._EfConn, ptr %216, i64 %69, i32 15
  %219 = load i32, ptr %218, align 8, !tbaa !41
  %220 = sext i32 %219 to i64
  %221 = icmp slt i64 %indvars.iv.next483, %220
  br i1 %221, label %.lr.ph369, label %.loopexit327, !llvm.loop !43

.loopexit327:                                     ; preds = %215, %188, %._crit_edge363, %._crit_edge354
  %222 = phi ptr [ %62, %._crit_edge354 ], [ %147, %._crit_edge363 ], [ %191, %188 ], [ %216, %215 ]
  %223 = phi ptr [ %63, %._crit_edge354 ], [ %147, %._crit_edge363 ], [ %191, %188 ], [ %216, %215 ]
  %.1 = phi i8 [ %.0371, %._crit_edge354 ], [ %.0371, %._crit_edge363 ], [ 1, %188 ], [ 1, %215 ]
  %indvars.iv.next487 = add nuw nsw i64 %indvars.iv486, 1
  %224 = load ptr, ptr @gop_conn, align 8, !tbaa !10
  %225 = getelementptr inbounds %struct._OpConn, ptr %224, i64 %57, i32 3
  %226 = load i32, ptr %225, align 8, !tbaa !20
  %227 = sext i32 %226 to i64
  %228 = icmp slt i64 %indvars.iv.next487, %227
  br i1 %228, label %.lr.ph373, label %._crit_edge374, !llvm.loop !44

._crit_edge374:                                   ; preds = %.loopexit327
  %.not270 = icmp eq i8 %.1, 0
  br i1 %.not270, label %.preheader296, label %.preheader326

.preheader326:                                    ; preds = %._crit_edge374
  %229 = load i32, ptr @gnum_fl_conn, align 4, !tbaa !8
  %230 = icmp sgt i32 %229, 0
  br i1 %230, label %.lr.ph378, label %.preheader325

.lr.ph378:                                        ; preds = %.preheader326
  %231 = getelementptr inbounds i8, ptr %1, i64 16
  %232 = getelementptr inbounds i8, ptr %0, i64 16
  %233 = getelementptr inbounds i8, ptr %1, i64 24
  %234 = getelementptr inbounds i8, ptr %0, i64 24
  br label %275

.preheader296:                                    ; preds = %._crit_edge350, %._crit_edge374
  %235 = load i32, ptr %45, align 8, !tbaa !16
  %236 = icmp sgt i32 %235, 0
  br i1 %236, label %.lr.ph442, label %.preheader295

.preheader295:                                    ; preds = %.lr.ph442, %.preheader296
  %237 = load i32, ptr @result_to_dest.num_del, align 4, !tbaa !8
  %238 = icmp sgt i32 %237, 0
  br i1 %238, label %.lr.ph444, label %.preheader293

.lr.ph442:                                        ; preds = %.preheader296, %.lr.ph442
  %indvars.iv624 = phi i64 [ %indvars.iv.next625, %.lr.ph442 ], [ 0, %.preheader296 ]
  %239 = load ptr, ptr @result_to_dest.in_source, align 8, !tbaa !10
  %240 = load ptr, ptr %1, align 8, !tbaa !18
  %241 = getelementptr inbounds i32, ptr %240, i64 %indvars.iv624
  %242 = load i32, ptr %241, align 4, !tbaa !8
  %243 = sext i32 %242 to i64
  %244 = getelementptr inbounds i8, ptr %239, i64 %243
  store i8 0, ptr %244, align 1, !tbaa !5
  %indvars.iv.next625 = add nuw nsw i64 %indvars.iv624, 1
  %245 = load i32, ptr %45, align 8, !tbaa !16
  %246 = sext i32 %245 to i64
  %247 = icmp slt i64 %indvars.iv.next625, %246
  br i1 %247, label %.lr.ph442, label %.preheader295, !llvm.loop !45

.preheader293:                                    ; preds = %.lr.ph444, %.preheader295
  %248 = load ptr, ptr @gop_conn, align 8, !tbaa !10
  %249 = getelementptr inbounds %struct._OpConn, ptr %248, i64 %57, i32 3
  %250 = load i32, ptr %249, align 8, !tbaa !20
  %251 = icmp sgt i32 %250, 0
  br i1 %251, label %.lr.ph446, label %.loopexit

.lr.ph444:                                        ; preds = %.preheader295, %.lr.ph444
  %indvars.iv628 = phi i64 [ %indvars.iv.next629, %.lr.ph444 ], [ 0, %.preheader295 ]
  %252 = load ptr, ptr @result_to_dest.in_del, align 8, !tbaa !10
  %253 = load ptr, ptr @result_to_dest.del, align 8, !tbaa !10
  %254 = getelementptr inbounds i32, ptr %253, i64 %indvars.iv628
  %255 = load i32, ptr %254, align 4, !tbaa !8
  %256 = sext i32 %255 to i64
  %257 = getelementptr inbounds i8, ptr %252, i64 %256
  store i8 0, ptr %257, align 1, !tbaa !5
  %indvars.iv.next629 = add nuw nsw i64 %indvars.iv628, 1
  %258 = load i32, ptr @result_to_dest.num_del, align 4, !tbaa !8
  %259 = sext i32 %258 to i64
  %260 = icmp slt i64 %indvars.iv.next629, %259
  br i1 %260, label %.lr.ph444, label %.preheader293, !llvm.loop !46

.lr.ph446:                                        ; preds = %.preheader293, %.lr.ph446
  %indvars.iv632 = phi i64 [ %indvars.iv.next633, %.lr.ph446 ], [ 0, %.preheader293 ]
  %261 = load ptr, ptr @result_to_dest.true_ef, align 8, !tbaa !10
  %262 = getelementptr inbounds i8, ptr %261, i64 %indvars.iv632
  store i8 0, ptr %262, align 1, !tbaa !5
  %indvars.iv.next633 = add nuw nsw i64 %indvars.iv632, 1
  %263 = load ptr, ptr @gop_conn, align 8, !tbaa !10
  %264 = getelementptr inbounds %struct._OpConn, ptr %263, i64 %57, i32 3
  %265 = load i32, ptr %264, align 8, !tbaa !20
  %266 = sext i32 %265 to i64
  %267 = icmp slt i64 %indvars.iv.next633, %266
  br i1 %267, label %.lr.ph446, label %.loopexit, !llvm.loop !47

.preheader325.loopexit:                           ; preds = %275
  %.pre640 = load ptr, ptr @gop_conn, align 8, !tbaa !10
  br label %.preheader325

.preheader325:                                    ; preds = %.preheader325.loopexit, %.preheader326
  %268 = phi ptr [ %.pre640, %.preheader325.loopexit ], [ %224, %.preheader326 ]
  %269 = getelementptr inbounds %struct._OpConn, ptr %268, i64 %57, i32 3
  %270 = load i32, ptr %269, align 8, !tbaa !20
  %271 = icmp sgt i32 %270, 0
  br i1 %271, label %.lr.ph386, label %._crit_edge387

.lr.ph386:                                        ; preds = %.preheader325
  %272 = getelementptr inbounds i8, ptr %0, i64 24
  %273 = getelementptr inbounds i8, ptr %0, i64 16
  %274 = getelementptr inbounds i8, ptr %1, i64 16
  br label %289

275:                                              ; preds = %.lr.ph378, %275
  %indvars.iv512 = phi i64 [ 0, %.lr.ph378 ], [ %indvars.iv.next513, %275 ]
  %276 = load ptr, ptr %231, align 8, !tbaa !48
  %277 = getelementptr inbounds i8, ptr %276, i64 %indvars.iv512
  %278 = load i8, ptr %277, align 1, !tbaa !5
  %279 = load ptr, ptr %232, align 8, !tbaa !48
  %280 = getelementptr inbounds i8, ptr %279, i64 %indvars.iv512
  store i8 %278, ptr %280, align 1, !tbaa !5
  %281 = load ptr, ptr %233, align 8, !tbaa !49
  %282 = getelementptr inbounds float, ptr %281, i64 %indvars.iv512
  %283 = load float, ptr %282, align 4, !tbaa !31
  %284 = load ptr, ptr %234, align 8, !tbaa !49
  %285 = getelementptr inbounds float, ptr %284, i64 %indvars.iv512
  store float %283, ptr %285, align 4, !tbaa !31
  %indvars.iv.next513 = add nuw nsw i64 %indvars.iv512, 1
  %286 = load i32, ptr @gnum_fl_conn, align 4, !tbaa !8
  %287 = sext i32 %286 to i64
  %288 = icmp slt i64 %indvars.iv.next513, %287
  br i1 %288, label %275, label %.preheader325.loopexit, !llvm.loop !50

289:                                              ; preds = %.lr.ph386, %.loopexit324
  %indvars.iv524 = phi i64 [ 0, %.lr.ph386 ], [ %indvars.iv.next525, %.loopexit324 ]
  %290 = phi ptr [ %268, %.lr.ph386 ], [ %567, %.loopexit324 ]
  %291 = load ptr, ptr @result_to_dest.true_ef, align 8, !tbaa !10
  %292 = getelementptr inbounds i8, ptr %291, i64 %indvars.iv524
  %293 = load i8, ptr %292, align 1, !tbaa !5
  %.not275 = icmp eq i8 %293, 0
  br i1 %.not275, label %.loopexit324, label %294

294:                                              ; preds = %289
  %295 = getelementptr inbounds %struct._OpConn, ptr %290, i64 %57, i32 2
  %296 = load ptr, ptr %295, align 8, !tbaa !23
  %297 = getelementptr inbounds i32, ptr %296, i64 %indvars.iv524
  %298 = load i32, ptr %297, align 4, !tbaa !8
  %299 = sext i32 %298 to i64
  %300 = load ptr, ptr @gef_conn, align 8, !tbaa !10
  %301 = getelementptr inbounds %struct._EfConn, ptr %300, i64 %299
  %302 = getelementptr inbounds i8, ptr %301, i64 168
  %303 = load i32, ptr %302, align 8, !tbaa !51
  %304 = icmp sgt i32 %303, 0
  br i1 %304, label %.lr.ph381, label %.preheader323

.preheader323:                                    ; preds = %425, %294
  %305 = phi ptr [ %300, %294 ], [ %433, %425 ]
  %306 = getelementptr inbounds %struct._EfConn, ptr %305, i64 %299
  %307 = getelementptr inbounds i8, ptr %306, i64 136
  %308 = load i32, ptr %307, align 8, !tbaa !52
  %309 = icmp sgt i32 %308, 0
  br i1 %309, label %.lr.ph384.preheader, label %.loopexit324

.lr.ph384.preheader:                              ; preds = %.preheader323
  %.pre642 = load ptr, ptr @result_to_dest.assigned, align 8, !tbaa !10
  br label %.lr.ph384

.lr.ph381:                                        ; preds = %294, %425
  %indvars.iv516 = phi i64 [ %indvars.iv.next517, %425 ], [ 0, %294 ]
  %310 = phi ptr [ %434, %425 ], [ %301, %294 ]
  %311 = getelementptr inbounds i8, ptr %310, i64 144
  %312 = load ptr, ptr %311, align 8, !tbaa !53
  %313 = getelementptr inbounds i32, ptr %312, i64 %indvars.iv516
  %314 = load i32, ptr %313, align 4, !tbaa !8
  %315 = getelementptr inbounds i8, ptr %310, i64 152
  %316 = load ptr, ptr %315, align 8, !tbaa !54
  %317 = getelementptr inbounds i32, ptr %316, i64 %indvars.iv516
  %318 = load i32, ptr %317, align 4, !tbaa !8
  %319 = icmp eq i32 %318, -1
  br i1 %319, label %320, label %325

320:                                              ; preds = %.lr.ph381
  %321 = getelementptr inbounds i8, ptr %310, i64 160
  %322 = load ptr, ptr %321, align 8, !tbaa !55
  %323 = getelementptr inbounds float, ptr %322, i64 %indvars.iv516
  %324 = load float, ptr %323, align 4, !tbaa !31
  br label %375

325:                                              ; preds = %.lr.ph381
  %326 = call zeroext i8 @determine_source_val(ptr noundef %1, i32 noundef %318, ptr noundef nonnull %4)
  %.not279 = icmp eq i8 %326, 0
  br i1 %.not279, label %.preheader306, label %367

.preheader306:                                    ; preds = %325
  %327 = load i32, ptr @gnum_fl_conn, align 4, !tbaa !8
  %328 = icmp sgt i32 %327, 0
  br i1 %328, label %.lr.ph426, label %.preheader305

.preheader305:                                    ; preds = %.lr.ph426, %.preheader306
  %329 = load i32, ptr %45, align 8, !tbaa !16
  %330 = icmp sgt i32 %329, 0
  br i1 %330, label %.lr.ph428, label %.preheader304

.lr.ph426:                                        ; preds = %.preheader306, %.lr.ph426
  %indvars.iv528 = phi i64 [ %indvars.iv.next529, %.lr.ph426 ], [ 0, %.preheader306 ]
  %331 = load ptr, ptr @result_to_dest.assigned, align 8, !tbaa !10
  %332 = getelementptr inbounds i8, ptr %331, i64 %indvars.iv528
  store i8 0, ptr %332, align 1, !tbaa !5
  %indvars.iv.next529 = add nuw nsw i64 %indvars.iv528, 1
  %333 = load i32, ptr @gnum_fl_conn, align 4, !tbaa !8
  %334 = sext i32 %333 to i64
  %335 = icmp slt i64 %indvars.iv.next529, %334
  br i1 %335, label %.lr.ph426, label %.preheader305, !llvm.loop !56

.preheader304:                                    ; preds = %.lr.ph428, %.preheader305
  %336 = load i32, ptr @result_to_dest.num_del, align 4, !tbaa !8
  %337 = icmp sgt i32 %336, 0
  br i1 %337, label %.lr.ph430, label %.preheader302

.lr.ph428:                                        ; preds = %.preheader305, %.lr.ph428
  %indvars.iv532 = phi i64 [ %indvars.iv.next533, %.lr.ph428 ], [ 0, %.preheader305 ]
  %338 = load ptr, ptr @result_to_dest.in_source, align 8, !tbaa !10
  %339 = load ptr, ptr %1, align 8, !tbaa !18
  %340 = getelementptr inbounds i32, ptr %339, i64 %indvars.iv532
  %341 = load i32, ptr %340, align 4, !tbaa !8
  %342 = sext i32 %341 to i64
  %343 = getelementptr inbounds i8, ptr %338, i64 %342
  store i8 0, ptr %343, align 1, !tbaa !5
  %indvars.iv.next533 = add nuw nsw i64 %indvars.iv532, 1
  %344 = load i32, ptr %45, align 8, !tbaa !16
  %345 = sext i32 %344 to i64
  %346 = icmp slt i64 %indvars.iv.next533, %345
  br i1 %346, label %.lr.ph428, label %.preheader304, !llvm.loop !57

.preheader302:                                    ; preds = %.lr.ph430, %.preheader304
  %347 = load ptr, ptr @gop_conn, align 8, !tbaa !10
  %348 = getelementptr inbounds %struct._OpConn, ptr %347, i64 %57, i32 3
  %349 = load i32, ptr %348, align 8, !tbaa !20
  %350 = icmp sgt i32 %349, 0
  br i1 %350, label %.lr.ph432, label %.loopexit

.lr.ph430:                                        ; preds = %.preheader304, %.lr.ph430
  %indvars.iv536 = phi i64 [ %indvars.iv.next537, %.lr.ph430 ], [ 0, %.preheader304 ]
  %351 = load ptr, ptr @result_to_dest.in_del, align 8, !tbaa !10
  %352 = load ptr, ptr @result_to_dest.del, align 8, !tbaa !10
  %353 = getelementptr inbounds i32, ptr %352, i64 %indvars.iv536
  %354 = load i32, ptr %353, align 4, !tbaa !8
  %355 = sext i32 %354 to i64
  %356 = getelementptr inbounds i8, ptr %351, i64 %355
  store i8 0, ptr %356, align 1, !tbaa !5
  %indvars.iv.next537 = add nuw nsw i64 %indvars.iv536, 1
  %357 = load i32, ptr @result_to_dest.num_del, align 4, !tbaa !8
  %358 = sext i32 %357 to i64
  %359 = icmp slt i64 %indvars.iv.next537, %358
  br i1 %359, label %.lr.ph430, label %.preheader302, !llvm.loop !58

.lr.ph432:                                        ; preds = %.preheader302, %.lr.ph432
  %indvars.iv540 = phi i64 [ %indvars.iv.next541, %.lr.ph432 ], [ 0, %.preheader302 ]
  %360 = load ptr, ptr @result_to_dest.true_ef, align 8, !tbaa !10
  %361 = getelementptr inbounds i8, ptr %360, i64 %indvars.iv540
  store i8 0, ptr %361, align 1, !tbaa !5
  %indvars.iv.next541 = add nuw nsw i64 %indvars.iv540, 1
  %362 = load ptr, ptr @gop_conn, align 8, !tbaa !10
  %363 = getelementptr inbounds %struct._OpConn, ptr %362, i64 %57, i32 3
  %364 = load i32, ptr %363, align 8, !tbaa !20
  %365 = sext i32 %364 to i64
  %366 = icmp slt i64 %indvars.iv.next541, %365
  br i1 %366, label %.lr.ph432, label %.loopexit, !llvm.loop !59

367:                                              ; preds = %325
  %368 = load ptr, ptr @gef_conn, align 8, !tbaa !10
  %369 = getelementptr inbounds %struct._EfConn, ptr %368, i64 %299, i32 22
  %370 = load ptr, ptr %369, align 8, !tbaa !55
  %371 = getelementptr inbounds float, ptr %370, i64 %indvars.iv516
  %372 = load float, ptr %371, align 4, !tbaa !31
  %373 = load float, ptr %4, align 4, !tbaa !31
  %374 = fadd float %372, %373
  br label %375

375:                                              ; preds = %367, %320
  %storemerge280 = phi float [ %374, %367 ], [ %324, %320 ]
  store float %storemerge280, ptr %4, align 4, !tbaa !31
  %376 = load ptr, ptr @result_to_dest.assigned, align 8, !tbaa !10
  %377 = sext i32 %314 to i64
  %378 = getelementptr inbounds i8, ptr %376, i64 %377
  %379 = load i8, ptr %378, align 1, !tbaa !5
  %.not281 = icmp eq i8 %379, 0
  br i1 %.not281, label %425, label %380

380:                                              ; preds = %375
  %381 = load ptr, ptr %272, align 8, !tbaa !49
  %382 = getelementptr inbounds float, ptr %381, i64 %377
  %383 = load float, ptr %382, align 4, !tbaa !31
  %384 = fcmp une float %storemerge280, %383
  br i1 %384, label %.preheader301, label %425

.preheader301:                                    ; preds = %380
  %385 = load i32, ptr @gnum_fl_conn, align 4, !tbaa !8
  %386 = icmp sgt i32 %385, 0
  br i1 %386, label %.lr.ph434, label %.preheader300

.preheader300:                                    ; preds = %.lr.ph434, %.preheader301
  %387 = load i32, ptr %45, align 8, !tbaa !16
  %388 = icmp sgt i32 %387, 0
  br i1 %388, label %.lr.ph436, label %.preheader299

.lr.ph434:                                        ; preds = %.preheader301, %.lr.ph434
  %indvars.iv544 = phi i64 [ %indvars.iv.next545, %.lr.ph434 ], [ 0, %.preheader301 ]
  %389 = load ptr, ptr @result_to_dest.assigned, align 8, !tbaa !10
  %390 = getelementptr inbounds i8, ptr %389, i64 %indvars.iv544
  store i8 0, ptr %390, align 1, !tbaa !5
  %indvars.iv.next545 = add nuw nsw i64 %indvars.iv544, 1
  %391 = load i32, ptr @gnum_fl_conn, align 4, !tbaa !8
  %392 = sext i32 %391 to i64
  %393 = icmp slt i64 %indvars.iv.next545, %392
  br i1 %393, label %.lr.ph434, label %.preheader300, !llvm.loop !60

.preheader299:                                    ; preds = %.lr.ph436, %.preheader300
  %394 = load i32, ptr @result_to_dest.num_del, align 4, !tbaa !8
  %395 = icmp sgt i32 %394, 0
  br i1 %395, label %.lr.ph438, label %.preheader297

.lr.ph436:                                        ; preds = %.preheader300, %.lr.ph436
  %indvars.iv548 = phi i64 [ %indvars.iv.next549, %.lr.ph436 ], [ 0, %.preheader300 ]
  %396 = load ptr, ptr @result_to_dest.in_source, align 8, !tbaa !10
  %397 = load ptr, ptr %1, align 8, !tbaa !18
  %398 = getelementptr inbounds i32, ptr %397, i64 %indvars.iv548
  %399 = load i32, ptr %398, align 4, !tbaa !8
  %400 = sext i32 %399 to i64
  %401 = getelementptr inbounds i8, ptr %396, i64 %400
  store i8 0, ptr %401, align 1, !tbaa !5
  %indvars.iv.next549 = add nuw nsw i64 %indvars.iv548, 1
  %402 = load i32, ptr %45, align 8, !tbaa !16
  %403 = sext i32 %402 to i64
  %404 = icmp slt i64 %indvars.iv.next549, %403
  br i1 %404, label %.lr.ph436, label %.preheader299, !llvm.loop !61

.preheader297:                                    ; preds = %.lr.ph438, %.preheader299
  %405 = load ptr, ptr @gop_conn, align 8, !tbaa !10
  %406 = getelementptr inbounds %struct._OpConn, ptr %405, i64 %57, i32 3
  %407 = load i32, ptr %406, align 8, !tbaa !20
  %408 = icmp sgt i32 %407, 0
  br i1 %408, label %.lr.ph440, label %.loopexit

.lr.ph438:                                        ; preds = %.preheader299, %.lr.ph438
  %indvars.iv552 = phi i64 [ %indvars.iv.next553, %.lr.ph438 ], [ 0, %.preheader299 ]
  %409 = load ptr, ptr @result_to_dest.in_del, align 8, !tbaa !10
  %410 = load ptr, ptr @result_to_dest.del, align 8, !tbaa !10
  %411 = getelementptr inbounds i32, ptr %410, i64 %indvars.iv552
  %412 = load i32, ptr %411, align 4, !tbaa !8
  %413 = sext i32 %412 to i64
  %414 = getelementptr inbounds i8, ptr %409, i64 %413
  store i8 0, ptr %414, align 1, !tbaa !5
  %indvars.iv.next553 = add nuw nsw i64 %indvars.iv552, 1
  %415 = load i32, ptr @result_to_dest.num_del, align 4, !tbaa !8
  %416 = sext i32 %415 to i64
  %417 = icmp slt i64 %indvars.iv.next553, %416
  br i1 %417, label %.lr.ph438, label %.preheader297, !llvm.loop !62

.lr.ph440:                                        ; preds = %.preheader297, %.lr.ph440
  %indvars.iv556 = phi i64 [ %indvars.iv.next557, %.lr.ph440 ], [ 0, %.preheader297 ]
  %418 = load ptr, ptr @result_to_dest.true_ef, align 8, !tbaa !10
  %419 = getelementptr inbounds i8, ptr %418, i64 %indvars.iv556
  store i8 0, ptr %419, align 1, !tbaa !5
  %indvars.iv.next557 = add nuw nsw i64 %indvars.iv556, 1
  %420 = load ptr, ptr @gop_conn, align 8, !tbaa !10
  %421 = getelementptr inbounds %struct._OpConn, ptr %420, i64 %57, i32 3
  %422 = load i32, ptr %421, align 8, !tbaa !20
  %423 = sext i32 %422 to i64
  %424 = icmp slt i64 %indvars.iv.next557, %423
  br i1 %424, label %.lr.ph440, label %.loopexit, !llvm.loop !63

425:                                              ; preds = %380, %375
  %426 = load ptr, ptr %273, align 8, !tbaa !48
  %427 = getelementptr inbounds i8, ptr %426, i64 %377
  store i8 1, ptr %427, align 1, !tbaa !5
  %428 = load float, ptr %4, align 4, !tbaa !31
  %429 = load ptr, ptr %272, align 8, !tbaa !49
  %430 = getelementptr inbounds float, ptr %429, i64 %377
  store float %428, ptr %430, align 4, !tbaa !31
  %431 = load ptr, ptr @result_to_dest.assigned, align 8, !tbaa !10
  %432 = getelementptr inbounds i8, ptr %431, i64 %377
  store i8 1, ptr %432, align 1, !tbaa !5
  %indvars.iv.next517 = add nuw nsw i64 %indvars.iv516, 1
  %433 = load ptr, ptr @gef_conn, align 8, !tbaa !10
  %434 = getelementptr inbounds %struct._EfConn, ptr %433, i64 %299
  %435 = getelementptr inbounds i8, ptr %434, i64 168
  %436 = load i32, ptr %435, align 8, !tbaa !51
  %437 = sext i32 %436 to i64
  %438 = icmp slt i64 %indvars.iv.next517, %437
  br i1 %438, label %.lr.ph381, label %.preheader323, !llvm.loop !64

.lr.ph384:                                        ; preds = %.lr.ph384.preheader, %555
  %439 = phi ptr [ %305, %.lr.ph384.preheader ], [ %556, %555 ]
  %440 = phi ptr [ %.pre642, %.lr.ph384.preheader ], [ %557, %555 ]
  %indvars.iv520 = phi i64 [ 0, %.lr.ph384.preheader ], [ %indvars.iv.next521, %555 ]
  %441 = phi ptr [ %306, %.lr.ph384.preheader ], [ %562, %555 ]
  %442 = getelementptr inbounds i8, ptr %441, i64 112
  %443 = load ptr, ptr %442, align 8, !tbaa !65
  %444 = getelementptr inbounds i32, ptr %443, i64 %indvars.iv520
  %445 = load i32, ptr %444, align 4, !tbaa !8
  %446 = sext i32 %445 to i64
  %447 = getelementptr inbounds i8, ptr %440, i64 %446
  %448 = load i8, ptr %447, align 1, !tbaa !5
  %.not276 = icmp eq i8 %448, 0
  br i1 %.not276, label %449, label %453

449:                                              ; preds = %.lr.ph384
  %450 = load ptr, ptr %274, align 8, !tbaa !48
  %451 = getelementptr inbounds i8, ptr %450, i64 %446
  %452 = load i8, ptr %451, align 1, !tbaa !5
  %.not277 = icmp eq i8 %452, 0
  br i1 %.not277, label %453, label %494

453:                                              ; preds = %449, %.lr.ph384
  %454 = load i32, ptr @gnum_fl_conn, align 4, !tbaa !8
  %455 = icmp sgt i32 %454, 0
  br i1 %455, label %.lr.ph418, label %.preheader310

.preheader310:                                    ; preds = %.lr.ph418, %453
  %456 = load i32, ptr %45, align 8, !tbaa !16
  %457 = icmp sgt i32 %456, 0
  br i1 %457, label %.lr.ph420, label %.preheader309

.lr.ph418:                                        ; preds = %453, %.lr.ph418
  %indvars.iv576 = phi i64 [ %indvars.iv.next577, %.lr.ph418 ], [ 0, %453 ]
  %458 = load ptr, ptr @result_to_dest.assigned, align 8, !tbaa !10
  %459 = getelementptr inbounds i8, ptr %458, i64 %indvars.iv576
  store i8 0, ptr %459, align 1, !tbaa !5
  %indvars.iv.next577 = add nuw nsw i64 %indvars.iv576, 1
  %460 = load i32, ptr @gnum_fl_conn, align 4, !tbaa !8
  %461 = sext i32 %460 to i64
  %462 = icmp slt i64 %indvars.iv.next577, %461
  br i1 %462, label %.lr.ph418, label %.preheader310, !llvm.loop !66

.preheader309:                                    ; preds = %.lr.ph420, %.preheader310
  %463 = load i32, ptr @result_to_dest.num_del, align 4, !tbaa !8
  %464 = icmp sgt i32 %463, 0
  br i1 %464, label %.lr.ph422, label %.preheader307

.lr.ph420:                                        ; preds = %.preheader310, %.lr.ph420
  %indvars.iv580 = phi i64 [ %indvars.iv.next581, %.lr.ph420 ], [ 0, %.preheader310 ]
  %465 = load ptr, ptr @result_to_dest.in_source, align 8, !tbaa !10
  %466 = load ptr, ptr %1, align 8, !tbaa !18
  %467 = getelementptr inbounds i32, ptr %466, i64 %indvars.iv580
  %468 = load i32, ptr %467, align 4, !tbaa !8
  %469 = sext i32 %468 to i64
  %470 = getelementptr inbounds i8, ptr %465, i64 %469
  store i8 0, ptr %470, align 1, !tbaa !5
  %indvars.iv.next581 = add nuw nsw i64 %indvars.iv580, 1
  %471 = load i32, ptr %45, align 8, !tbaa !16
  %472 = sext i32 %471 to i64
  %473 = icmp slt i64 %indvars.iv.next581, %472
  br i1 %473, label %.lr.ph420, label %.preheader309, !llvm.loop !67

.preheader307:                                    ; preds = %.lr.ph422, %.preheader309
  %474 = load ptr, ptr @gop_conn, align 8, !tbaa !10
  %475 = getelementptr inbounds %struct._OpConn, ptr %474, i64 %57, i32 3
  %476 = load i32, ptr %475, align 8, !tbaa !20
  %477 = icmp sgt i32 %476, 0
  br i1 %477, label %.lr.ph424, label %.loopexit

.lr.ph422:                                        ; preds = %.preheader309, %.lr.ph422
  %indvars.iv584 = phi i64 [ %indvars.iv.next585, %.lr.ph422 ], [ 0, %.preheader309 ]
  %478 = load ptr, ptr @result_to_dest.in_del, align 8, !tbaa !10
  %479 = load ptr, ptr @result_to_dest.del, align 8, !tbaa !10
  %480 = getelementptr inbounds i32, ptr %479, i64 %indvars.iv584
  %481 = load i32, ptr %480, align 4, !tbaa !8
  %482 = sext i32 %481 to i64
  %483 = getelementptr inbounds i8, ptr %478, i64 %482
  store i8 0, ptr %483, align 1, !tbaa !5
  %indvars.iv.next585 = add nuw nsw i64 %indvars.iv584, 1
  %484 = load i32, ptr @result_to_dest.num_del, align 4, !tbaa !8
  %485 = sext i32 %484 to i64
  %486 = icmp slt i64 %indvars.iv.next585, %485
  br i1 %486, label %.lr.ph422, label %.preheader307, !llvm.loop !68

.lr.ph424:                                        ; preds = %.preheader307, %.lr.ph424
  %indvars.iv588 = phi i64 [ %indvars.iv.next589, %.lr.ph424 ], [ 0, %.preheader307 ]
  %487 = load ptr, ptr @result_to_dest.true_ef, align 8, !tbaa !10
  %488 = getelementptr inbounds i8, ptr %487, i64 %indvars.iv588
  store i8 0, ptr %488, align 1, !tbaa !5
  %indvars.iv.next589 = add nuw nsw i64 %indvars.iv588, 1
  %489 = load ptr, ptr @gop_conn, align 8, !tbaa !10
  %490 = getelementptr inbounds %struct._OpConn, ptr %489, i64 %57, i32 3
  %491 = load i32, ptr %490, align 8, !tbaa !20
  %492 = sext i32 %491 to i64
  %493 = icmp slt i64 %indvars.iv.next589, %492
  br i1 %493, label %.lr.ph424, label %.loopexit, !llvm.loop !69

494:                                              ; preds = %449
  %495 = getelementptr inbounds i8, ptr %441, i64 120
  %496 = load ptr, ptr %495, align 8, !tbaa !70
  %497 = getelementptr inbounds i32, ptr %496, i64 %indvars.iv520
  %498 = load i32, ptr %497, align 4, !tbaa !8
  %499 = icmp eq i32 %498, -1
  br i1 %499, label %500, label %505

500:                                              ; preds = %494
  %501 = getelementptr inbounds i8, ptr %441, i64 128
  %502 = load ptr, ptr %501, align 8, !tbaa !71
  %503 = getelementptr inbounds float, ptr %502, i64 %indvars.iv520
  %504 = load float, ptr %503, align 4, !tbaa !31
  br label %555

505:                                              ; preds = %494
  %506 = call zeroext i8 @determine_source_val(ptr noundef nonnull %1, i32 noundef %498, ptr noundef nonnull %4)
  %.not278 = icmp eq i8 %506, 0
  br i1 %.not278, label %.preheader315, label %547

.preheader315:                                    ; preds = %505
  %507 = load i32, ptr @gnum_fl_conn, align 4, !tbaa !8
  %508 = icmp sgt i32 %507, 0
  br i1 %508, label %.lr.ph409, label %.preheader314

.preheader314:                                    ; preds = %.lr.ph409, %.preheader315
  %509 = load i32, ptr %45, align 8, !tbaa !16
  %510 = icmp sgt i32 %509, 0
  br i1 %510, label %.lr.ph411, label %.preheader313

.lr.ph409:                                        ; preds = %.preheader315, %.lr.ph409
  %indvars.iv560 = phi i64 [ %indvars.iv.next561, %.lr.ph409 ], [ 0, %.preheader315 ]
  %511 = load ptr, ptr @result_to_dest.assigned, align 8, !tbaa !10
  %512 = getelementptr inbounds i8, ptr %511, i64 %indvars.iv560
  store i8 0, ptr %512, align 1, !tbaa !5
  %indvars.iv.next561 = add nuw nsw i64 %indvars.iv560, 1
  %513 = load i32, ptr @gnum_fl_conn, align 4, !tbaa !8
  %514 = sext i32 %513 to i64
  %515 = icmp slt i64 %indvars.iv.next561, %514
  br i1 %515, label %.lr.ph409, label %.preheader314, !llvm.loop !72

.preheader313:                                    ; preds = %.lr.ph411, %.preheader314
  %516 = load i32, ptr @result_to_dest.num_del, align 4, !tbaa !8
  %517 = icmp sgt i32 %516, 0
  br i1 %517, label %.lr.ph413, label %.preheader311

.lr.ph411:                                        ; preds = %.preheader314, %.lr.ph411
  %indvars.iv564 = phi i64 [ %indvars.iv.next565, %.lr.ph411 ], [ 0, %.preheader314 ]
  %518 = load ptr, ptr @result_to_dest.in_source, align 8, !tbaa !10
  %519 = load ptr, ptr %1, align 8, !tbaa !18
  %520 = getelementptr inbounds i32, ptr %519, i64 %indvars.iv564
  %521 = load i32, ptr %520, align 4, !tbaa !8
  %522 = sext i32 %521 to i64
  %523 = getelementptr inbounds i8, ptr %518, i64 %522
  store i8 0, ptr %523, align 1, !tbaa !5
  %indvars.iv.next565 = add nuw nsw i64 %indvars.iv564, 1
  %524 = load i32, ptr %45, align 8, !tbaa !16
  %525 = sext i32 %524 to i64
  %526 = icmp slt i64 %indvars.iv.next565, %525
  br i1 %526, label %.lr.ph411, label %.preheader313, !llvm.loop !73

.preheader311:                                    ; preds = %.lr.ph413, %.preheader313
  %527 = load ptr, ptr @gop_conn, align 8, !tbaa !10
  %528 = getelementptr inbounds %struct._OpConn, ptr %527, i64 %57, i32 3
  %529 = load i32, ptr %528, align 8, !tbaa !20
  %530 = icmp sgt i32 %529, 0
  br i1 %530, label %.lr.ph415, label %.loopexit

.lr.ph413:                                        ; preds = %.preheader313, %.lr.ph413
  %indvars.iv568 = phi i64 [ %indvars.iv.next569, %.lr.ph413 ], [ 0, %.preheader313 ]
  %531 = load ptr, ptr @result_to_dest.in_del, align 8, !tbaa !10
  %532 = load ptr, ptr @result_to_dest.del, align 8, !tbaa !10
  %533 = getelementptr inbounds i32, ptr %532, i64 %indvars.iv568
  %534 = load i32, ptr %533, align 4, !tbaa !8
  %535 = sext i32 %534 to i64
  %536 = getelementptr inbounds i8, ptr %531, i64 %535
  store i8 0, ptr %536, align 1, !tbaa !5
  %indvars.iv.next569 = add nuw nsw i64 %indvars.iv568, 1
  %537 = load i32, ptr @result_to_dest.num_del, align 4, !tbaa !8
  %538 = sext i32 %537 to i64
  %539 = icmp slt i64 %indvars.iv.next569, %538
  br i1 %539, label %.lr.ph413, label %.preheader311, !llvm.loop !74

.lr.ph415:                                        ; preds = %.preheader311, %.lr.ph415
  %indvars.iv572 = phi i64 [ %indvars.iv.next573, %.lr.ph415 ], [ 0, %.preheader311 ]
  %540 = load ptr, ptr @result_to_dest.true_ef, align 8, !tbaa !10
  %541 = getelementptr inbounds i8, ptr %540, i64 %indvars.iv572
  store i8 0, ptr %541, align 1, !tbaa !5
  %indvars.iv.next573 = add nuw nsw i64 %indvars.iv572, 1
  %542 = load ptr, ptr @gop_conn, align 8, !tbaa !10
  %543 = getelementptr inbounds %struct._OpConn, ptr %542, i64 %57, i32 3
  %544 = load i32, ptr %543, align 8, !tbaa !20
  %545 = sext i32 %544 to i64
  %546 = icmp slt i64 %indvars.iv.next573, %545
  br i1 %546, label %.lr.ph415, label %.loopexit, !llvm.loop !75

547:                                              ; preds = %505
  %.pre641 = load ptr, ptr @result_to_dest.assigned, align 8, !tbaa !10
  %548 = load ptr, ptr @gef_conn, align 8, !tbaa !10
  %549 = getelementptr inbounds %struct._EfConn, ptr %548, i64 %299, i32 18
  %550 = load ptr, ptr %549, align 8, !tbaa !71
  %551 = getelementptr inbounds float, ptr %550, i64 %indvars.iv520
  %552 = load float, ptr %551, align 4, !tbaa !31
  %553 = load float, ptr %4, align 4, !tbaa !31
  %554 = fadd float %552, %553
  br label %555

555:                                              ; preds = %547, %500
  %556 = phi ptr [ %548, %547 ], [ %439, %500 ]
  %557 = phi ptr [ %.pre641, %547 ], [ %440, %500 ]
  %storemerge = phi float [ %554, %547 ], [ %504, %500 ]
  store float %storemerge, ptr %4, align 4, !tbaa !31
  %558 = load ptr, ptr %272, align 8, !tbaa !49
  %559 = getelementptr inbounds float, ptr %558, i64 %446
  %560 = load float, ptr %559, align 4, !tbaa !31
  %561 = fadd float %storemerge, %560
  store float %561, ptr %559, align 4, !tbaa !31
  %indvars.iv.next521 = add nuw nsw i64 %indvars.iv520, 1
  %562 = getelementptr inbounds %struct._EfConn, ptr %556, i64 %299
  %563 = getelementptr inbounds i8, ptr %562, i64 136
  %564 = load i32, ptr %563, align 8, !tbaa !52
  %565 = sext i32 %564 to i64
  %566 = icmp slt i64 %indvars.iv.next521, %565
  br i1 %566, label %.lr.ph384, label %.loopexit324, !llvm.loop !76

.loopexit324:                                     ; preds = %555, %.preheader323, %289
  %indvars.iv.next525 = add nuw nsw i64 %indvars.iv524, 1
  %567 = load ptr, ptr @gop_conn, align 8, !tbaa !10
  %568 = getelementptr inbounds %struct._OpConn, ptr %567, i64 %57, i32 3
  %569 = load i32, ptr %568, align 8, !tbaa !20
  %570 = sext i32 %569 to i64
  %571 = icmp slt i64 %indvars.iv.next525, %570
  br i1 %571, label %289, label %._crit_edge387, !llvm.loop !77

._crit_edge387:                                   ; preds = %.loopexit324, %.preheader325
  %572 = phi ptr [ %268, %.preheader325 ], [ %567, %.loopexit324 ]
  %573 = getelementptr inbounds i8, ptr %0, i64 8
  store i32 0, ptr %573, align 8, !tbaa !16
  %574 = load i32, ptr %45, align 8, !tbaa !16
  %575 = icmp sgt i32 %574, 0
  br i1 %575, label %.lr.ph390.preheader, label %.preheader322

.lr.ph390.preheader:                              ; preds = %._crit_edge387
  %.pre644 = load ptr, ptr @result_to_dest.in_del, align 8, !tbaa !10
  br label %.lr.ph390

.preheader322.loopexit:                           ; preds = %602
  %.pre646 = load ptr, ptr @gop_conn, align 8, !tbaa !10
  br label %.preheader322

.preheader322:                                    ; preds = %.preheader322.loopexit, %._crit_edge387
  %576 = phi ptr [ %.pre646, %.preheader322.loopexit ], [ %572, %._crit_edge387 ]
  %577 = getelementptr inbounds %struct._OpConn, ptr %576, i64 %57, i32 3
  %578 = load i32, ptr %577, align 8, !tbaa !20
  %579 = icmp sgt i32 %578, 0
  br i1 %579, label %.lr.ph395, label %._crit_edge396

.lr.ph390:                                        ; preds = %.lr.ph390.preheader, %602
  %580 = phi i32 [ %574, %.lr.ph390.preheader ], [ %603, %602 ]
  %581 = phi ptr [ %.pre644, %.lr.ph390.preheader ], [ %604, %602 ]
  %indvars.iv592 = phi i64 [ 0, %.lr.ph390.preheader ], [ %indvars.iv.next593, %602 ]
  %582 = load ptr, ptr %1, align 8, !tbaa !18
  %583 = getelementptr inbounds i32, ptr %582, i64 %indvars.iv592
  %584 = load i32, ptr %583, align 4, !tbaa !8
  %585 = sext i32 %584 to i64
  %586 = getelementptr inbounds i8, ptr %581, i64 %585
  %587 = load i8, ptr %586, align 1, !tbaa !5
  %.not273 = icmp eq i8 %587, 0
  br i1 %.not273, label %588, label %602

588:                                              ; preds = %.lr.ph390
  %589 = load ptr, ptr @gft_conn, align 8, !tbaa !10
  %590 = getelementptr inbounds %struct._FtConn, ptr %589, i64 %585, i32 15
  %591 = load i8, ptr %590, align 8, !tbaa !78
  %.not274 = icmp eq i8 %591, 0
  br i1 %.not274, label %592, label %602

592:                                              ; preds = %588
  %593 = load ptr, ptr %0, align 8, !tbaa !18
  %594 = load i32, ptr %573, align 8, !tbaa !16
  %595 = add nsw i32 %594, 1
  store i32 %595, ptr %573, align 8, !tbaa !16
  %596 = sext i32 %594 to i64
  %597 = getelementptr inbounds i32, ptr %593, i64 %596
  store i32 %584, ptr %597, align 4, !tbaa !8
  %598 = load ptr, ptr @result_to_dest.in_dest, align 8, !tbaa !10
  %599 = load i32, ptr %583, align 4, !tbaa !8
  %600 = sext i32 %599 to i64
  %601 = getelementptr inbounds i8, ptr %598, i64 %600
  store i8 1, ptr %601, align 1, !tbaa !5
  %.pre643 = load ptr, ptr @result_to_dest.in_del, align 8, !tbaa !10
  %.pre645 = load i32, ptr %45, align 8, !tbaa !16
  br label %602

602:                                              ; preds = %588, %.lr.ph390, %592
  %603 = phi i32 [ %580, %588 ], [ %580, %.lr.ph390 ], [ %.pre645, %592 ]
  %604 = phi ptr [ %581, %588 ], [ %581, %.lr.ph390 ], [ %.pre643, %592 ]
  %indvars.iv.next593 = add nuw nsw i64 %indvars.iv592, 1
  %605 = sext i32 %603 to i64
  %606 = icmp slt i64 %indvars.iv.next593, %605
  br i1 %606, label %.lr.ph390, label %.preheader322.loopexit, !llvm.loop !80

.lr.ph395:                                        ; preds = %.preheader322, %.loopexit321
  %607 = phi ptr [ %646, %.loopexit321 ], [ %576, %.preheader322 ]
  %indvars.iv600 = phi i64 [ %indvars.iv.next601, %.loopexit321 ], [ 0, %.preheader322 ]
  %608 = load ptr, ptr @result_to_dest.true_ef, align 8, !tbaa !10
  %609 = getelementptr inbounds i8, ptr %608, i64 %indvars.iv600
  %610 = load i8, ptr %609, align 1, !tbaa !5
  %.not271 = icmp eq i8 %610, 0
  br i1 %.not271, label %.loopexit321, label %611

611:                                              ; preds = %.lr.ph395
  %612 = getelementptr inbounds %struct._OpConn, ptr %607, i64 %57, i32 2
  %613 = load ptr, ptr %612, align 8, !tbaa !23
  %614 = getelementptr inbounds i32, ptr %613, i64 %indvars.iv600
  %615 = load i32, ptr %614, align 4, !tbaa !8
  %616 = sext i32 %615 to i64
  %617 = load ptr, ptr @gef_conn, align 8, !tbaa !10
  %618 = getelementptr inbounds %struct._EfConn, ptr %617, i64 %616, i32 13
  %619 = load i32, ptr %618, align 8, !tbaa !81
  %620 = icmp sgt i32 %619, 0
  br i1 %620, label %.lr.ph393.preheader, label %.loopexit321

.lr.ph393.preheader:                              ; preds = %611
  %.pre648 = load ptr, ptr @result_to_dest.in_dest, align 8, !tbaa !10
  br label %.lr.ph393

.lr.ph393:                                        ; preds = %.lr.ph393.preheader, %639
  %621 = phi ptr [ %617, %.lr.ph393.preheader ], [ %640, %639 ]
  %622 = phi ptr [ %.pre648, %.lr.ph393.preheader ], [ %641, %639 ]
  %indvars.iv596 = phi i64 [ 0, %.lr.ph393.preheader ], [ %indvars.iv.next597, %639 ]
  %623 = getelementptr inbounds %struct._EfConn, ptr %621, i64 %616, i32 12
  %624 = load ptr, ptr %623, align 8, !tbaa !82
  %625 = getelementptr inbounds i32, ptr %624, i64 %indvars.iv596
  %626 = load i32, ptr %625, align 4, !tbaa !8
  %627 = sext i32 %626 to i64
  %628 = getelementptr inbounds i8, ptr %622, i64 %627
  %629 = load i8, ptr %628, align 1, !tbaa !5
  %.not272 = icmp eq i8 %629, 0
  br i1 %.not272, label %630, label %639

630:                                              ; preds = %.lr.ph393
  %631 = load ptr, ptr %0, align 8, !tbaa !18
  %632 = load i32, ptr %573, align 8, !tbaa !16
  %633 = add nsw i32 %632, 1
  store i32 %633, ptr %573, align 8, !tbaa !16
  %634 = sext i32 %632 to i64
  %635 = getelementptr inbounds i32, ptr %631, i64 %634
  store i32 %626, ptr %635, align 4, !tbaa !8
  %636 = load i32, ptr %625, align 4, !tbaa !8
  %637 = sext i32 %636 to i64
  %638 = getelementptr inbounds i8, ptr %622, i64 %637
  store i8 1, ptr %638, align 1, !tbaa !5
  %.pre647 = load ptr, ptr @result_to_dest.in_dest, align 8, !tbaa !10
  %.pre649 = load ptr, ptr @gef_conn, align 8, !tbaa !10
  br label %639

639:                                              ; preds = %.lr.ph393, %630
  %640 = phi ptr [ %621, %.lr.ph393 ], [ %.pre649, %630 ]
  %641 = phi ptr [ %622, %.lr.ph393 ], [ %.pre647, %630 ]
  %indvars.iv.next597 = add nuw nsw i64 %indvars.iv596, 1
  %642 = getelementptr inbounds %struct._EfConn, ptr %640, i64 %616, i32 13
  %643 = load i32, ptr %642, align 8, !tbaa !81
  %644 = sext i32 %643 to i64
  %645 = icmp slt i64 %indvars.iv.next597, %644
  br i1 %645, label %.lr.ph393, label %.loopexit321.loopexit, !llvm.loop !83

.loopexit321.loopexit:                            ; preds = %639
  %.pre650 = load ptr, ptr @gop_conn, align 8, !tbaa !10
  br label %.loopexit321

.loopexit321:                                     ; preds = %.loopexit321.loopexit, %611, %.lr.ph395
  %646 = phi ptr [ %.pre650, %.loopexit321.loopexit ], [ %607, %611 ], [ %607, %.lr.ph395 ]
  %indvars.iv.next601 = add nuw nsw i64 %indvars.iv600, 1
  %647 = getelementptr inbounds %struct._OpConn, ptr %646, i64 %57, i32 3
  %648 = load i32, ptr %647, align 8, !tbaa !20
  %649 = sext i32 %648 to i64
  %650 = icmp slt i64 %indvars.iv.next601, %649
  br i1 %650, label %.lr.ph395, label %._crit_edge396, !llvm.loop !84

._crit_edge396:                                   ; preds = %.loopexit321, %.preheader322
  call void @do_axiom_update(ptr noundef %0)
  %651 = load i32, ptr %45, align 8, !tbaa !16
  %652 = icmp sgt i32 %651, 0
  br i1 %652, label %.lr.ph399, label %.preheader320

.preheader320:                                    ; preds = %.lr.ph399, %._crit_edge396
  %653 = load i32, ptr %573, align 8, !tbaa !16
  %654 = icmp sgt i32 %653, 0
  br i1 %654, label %.lr.ph401, label %.preheader319

.lr.ph399:                                        ; preds = %._crit_edge396, %.lr.ph399
  %indvars.iv604 = phi i64 [ %indvars.iv.next605, %.lr.ph399 ], [ 0, %._crit_edge396 ]
  %655 = load ptr, ptr @result_to_dest.in_source, align 8, !tbaa !10
  %656 = load ptr, ptr %1, align 8, !tbaa !18
  %657 = getelementptr inbounds i32, ptr %656, i64 %indvars.iv604
  %658 = load i32, ptr %657, align 4, !tbaa !8
  %659 = sext i32 %658 to i64
  %660 = getelementptr inbounds i8, ptr %655, i64 %659
  store i8 0, ptr %660, align 1, !tbaa !5
  %indvars.iv.next605 = add nuw nsw i64 %indvars.iv604, 1
  %661 = load i32, ptr %45, align 8, !tbaa !16
  %662 = sext i32 %661 to i64
  %663 = icmp slt i64 %indvars.iv.next605, %662
  br i1 %663, label %.lr.ph399, label %.preheader320, !llvm.loop !85

.preheader319:                                    ; preds = %.lr.ph401, %.preheader320
  %664 = load i32, ptr @result_to_dest.num_del, align 4, !tbaa !8
  %665 = icmp sgt i32 %664, 0
  br i1 %665, label %.lr.ph403, label %.preheader318

.lr.ph401:                                        ; preds = %.preheader320, %.lr.ph401
  %indvars.iv608 = phi i64 [ %indvars.iv.next609, %.lr.ph401 ], [ 0, %.preheader320 ]
  %666 = load ptr, ptr @result_to_dest.in_dest, align 8, !tbaa !10
  %667 = load ptr, ptr %0, align 8, !tbaa !18
  %668 = getelementptr inbounds i32, ptr %667, i64 %indvars.iv608
  %669 = load i32, ptr %668, align 4, !tbaa !8
  %670 = sext i32 %669 to i64
  %671 = getelementptr inbounds i8, ptr %666, i64 %670
  store i8 0, ptr %671, align 1, !tbaa !5
  %indvars.iv.next609 = add nuw nsw i64 %indvars.iv608, 1
  %672 = load i32, ptr %573, align 8, !tbaa !16
  %673 = sext i32 %672 to i64
  %674 = icmp slt i64 %indvars.iv.next609, %673
  br i1 %674, label %.lr.ph401, label %.preheader319, !llvm.loop !86

.preheader318:                                    ; preds = %.lr.ph403, %.preheader319
  %675 = load ptr, ptr @gop_conn, align 8, !tbaa !10
  %676 = getelementptr inbounds %struct._OpConn, ptr %675, i64 %57, i32 3
  %677 = load i32, ptr %676, align 8, !tbaa !20
  %678 = icmp sgt i32 %677, 0
  br i1 %678, label %.lr.ph405, label %.preheader316

.lr.ph403:                                        ; preds = %.preheader319, %.lr.ph403
  %indvars.iv612 = phi i64 [ %indvars.iv.next613, %.lr.ph403 ], [ 0, %.preheader319 ]
  %679 = load ptr, ptr @result_to_dest.in_del, align 8, !tbaa !10
  %680 = load ptr, ptr @result_to_dest.del, align 8, !tbaa !10
  %681 = getelementptr inbounds i32, ptr %680, i64 %indvars.iv612
  %682 = load i32, ptr %681, align 4, !tbaa !8
  %683 = sext i32 %682 to i64
  %684 = getelementptr inbounds i8, ptr %679, i64 %683
  store i8 0, ptr %684, align 1, !tbaa !5
  %indvars.iv.next613 = add nuw nsw i64 %indvars.iv612, 1
  %685 = load i32, ptr @result_to_dest.num_del, align 4, !tbaa !8
  %686 = sext i32 %685 to i64
  %687 = icmp slt i64 %indvars.iv.next613, %686
  br i1 %687, label %.lr.ph403, label %.preheader318, !llvm.loop !87

.preheader316:                                    ; preds = %.lr.ph405, %.preheader318
  %688 = load i32, ptr @gnum_fl_conn, align 4, !tbaa !8
  %689 = icmp sgt i32 %688, 0
  br i1 %689, label %.lr.ph407, label %.loopexit

.lr.ph405:                                        ; preds = %.preheader318, %.lr.ph405
  %indvars.iv616 = phi i64 [ %indvars.iv.next617, %.lr.ph405 ], [ 0, %.preheader318 ]
  %690 = load ptr, ptr @result_to_dest.true_ef, align 8, !tbaa !10
  %691 = getelementptr inbounds i8, ptr %690, i64 %indvars.iv616
  store i8 0, ptr %691, align 1, !tbaa !5
  %indvars.iv.next617 = add nuw nsw i64 %indvars.iv616, 1
  %692 = load ptr, ptr @gop_conn, align 8, !tbaa !10
  %693 = getelementptr inbounds %struct._OpConn, ptr %692, i64 %57, i32 3
  %694 = load i32, ptr %693, align 8, !tbaa !20
  %695 = sext i32 %694 to i64
  %696 = icmp slt i64 %indvars.iv.next617, %695
  br i1 %696, label %.lr.ph405, label %.preheader316, !llvm.loop !88

.lr.ph407:                                        ; preds = %.preheader316, %.lr.ph407
  %indvars.iv620 = phi i64 [ %indvars.iv.next621, %.lr.ph407 ], [ 0, %.preheader316 ]
  %697 = load ptr, ptr @result_to_dest.assigned, align 8, !tbaa !10
  %698 = getelementptr inbounds i8, ptr %697, i64 %indvars.iv620
  store i8 0, ptr %698, align 1, !tbaa !5
  %indvars.iv.next621 = add nuw nsw i64 %indvars.iv620, 1
  %699 = load i32, ptr @gnum_fl_conn, align 4, !tbaa !8
  %700 = sext i32 %699 to i64
  %701 = icmp slt i64 %indvars.iv.next621, %700
  br i1 %701, label %.lr.ph407, label %.loopexit, !llvm.loop !89

.loopexit:                                        ; preds = %.lr.ph452, %.lr.ph458, %.lr.ph432, %.lr.ph440, %.lr.ph415, %.lr.ph424, %.lr.ph407, %.lr.ph446, %.preheader316, %.preheader311, %.preheader307, %.preheader302, %.preheader297, %.preheader293, %.preheader289, %.preheader
  %.0259 = phi i8 [ 0, %.preheader ], [ 0, %.preheader289 ], [ 0, %.preheader293 ], [ 0, %.preheader297 ], [ 0, %.preheader302 ], [ 0, %.preheader307 ], [ 0, %.preheader311 ], [ 1, %.preheader316 ], [ 0, %.lr.ph446 ], [ 1, %.lr.ph407 ], [ 0, %.lr.ph424 ], [ 0, %.lr.ph415 ], [ 0, %.lr.ph440 ], [ 0, %.lr.ph432 ], [ 0, %.lr.ph458 ], [ 0, %.lr.ph452 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %5) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %4) #4
  ret i8 %.0259
}

; 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
declare dso_local zeroext i8 @determine_source_val(ptr noundef, i32 noundef, ptr noundef) local_unnamed_addr #1

declare zeroext i8 @number_comparison_holds(i32 noundef, float noundef, float noundef) local_unnamed_addr #3

; Function Attrs: nounwind uwtable
declare dso_local void @do_axiom_update(ptr noundef) local_unnamed_addr #1

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

!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 = !{!"omnipotent char", !7, i64 0}
!7 = !{!"Simple C/C++ TBAA"}
!8 = !{!9, !9, i64 0}
!9 = !{!"int", !6, i64 0}
!10 = !{!11, !11, i64 0}
!11 = !{!"any pointer", !6, i64 0}
!12 = distinct !{!12, !13}
!13 = !{!"llvm.loop.mustprogress"}
!14 = distinct !{!14, !13}
!15 = distinct !{!15, !13}
!16 = !{!17, !9, i64 8}
!17 = !{!"_State", !11, i64 0, !9, i64 8, !11, i64 16, !11, i64 24}
!18 = !{!17, !11, i64 0}
!19 = distinct !{!19, !13}
!20 = !{!21, !9, i64 24}
!21 = !{!"_OpConn", !11, i64 0, !6, i64 8, !11, i64 16, !9, i64 24, !6, i64 28, !6, i64 29, !9, i64 32, !6, i64 36, !22, i64 40}
!22 = !{!"float", !6, i64 0}
!23 = !{!21, !11, i64 16}
!24 = !{!25, !9, i64 24}
!25 = !{!"_EfConn", !9, i64 0, !6, i64 4, !6, i64 5, !22, i64 8, !11, i64 16, !9, i64 24, !11, i64 32, !11, i64 40, !11, i64 48, !9, i64 56, !11, i64 64, !11, i64 72, !11, i64 80, !9, i64 88, !11, i64 96, !9, i64 104, !11, i64 112, !11, i64 120, !11, i64 128, !9, i64 136, !11, i64 144, !11, i64 152, !11, i64 160, !9, i64 168, !11, i64 176, !9, i64 184, !9, i64 188, !22, i64 192, !6, i64 196, !9, i64 200, !6, i64 204, !9, i64 208, !9, i64 212}
!26 = !{!25, !11, i64 16}
!27 = distinct !{!27, !13}
!28 = !{!25, !9, i64 56}
!29 = !{!25, !11, i64 40}
!30 = !{!25, !11, i64 48}
!31 = !{!22, !22, i64 0}
!32 = !{!25, !11, i64 32}
!33 = distinct !{!33, !13}
!34 = distinct !{!34, !13}
!35 = distinct !{!35, !13}
!36 = distinct !{!36, !13}
!37 = !{!25, !6, i64 4}
!38 = distinct !{!38, !13}
!39 = distinct !{!39, !13}
!40 = distinct !{!40, !13}
!41 = !{!25, !9, i64 104}
!42 = !{!25, !11, i64 96}
!43 = distinct !{!43, !13}
!44 = distinct !{!44, !13}
!45 = distinct !{!45, !13}
!46 = distinct !{!46, !13}
!47 = distinct !{!47, !13}
!48 = !{!17, !11, i64 16}
!49 = !{!17, !11, i64 24}
!50 = distinct !{!50, !13}
!51 = !{!25, !9, i64 168}
!52 = !{!25, !9, i64 136}
!53 = !{!25, !11, i64 144}
!54 = !{!25, !11, i64 152}
!55 = !{!25, !11, i64 160}
!56 = distinct !{!56, !13}
!57 = distinct !{!57, !13}
!58 = distinct !{!58, !13}
!59 = distinct !{!59, !13}
!60 = distinct !{!60, !13}
!61 = distinct !{!61, !13}
!62 = distinct !{!62, !13}
!63 = distinct !{!63, !13}
!64 = distinct !{!64, !13}
!65 = !{!25, !11, i64 112}
!66 = distinct !{!66, !13}
!67 = distinct !{!67, !13}
!68 = distinct !{!68, !13}
!69 = distinct !{!69, !13}
!70 = !{!25, !11, i64 120}
!71 = !{!25, !11, i64 128}
!72 = distinct !{!72, !13}
!73 = distinct !{!73, !13}
!74 = distinct !{!74, !13}
!75 = distinct !{!75, !13}
!76 = distinct !{!76, !13}
!77 = distinct !{!77, !13}
!78 = !{!79, !6, i64 88}
!79 = !{!"_FtConn", !11, i64 0, !9, i64 8, !11, i64 16, !9, i64 24, !11, i64 32, !9, i64 40, !11, i64 48, !9, i64 56, !9, i64 60, !22, i64 64, !6, i64 68, !9, i64 72, !9, i64 76, !6, i64 80, !9, i64 84, !6, i64 88}
!80 = distinct !{!80, !13}
!81 = !{!25, !9, i64 88}
!82 = !{!25, !11, i64 80}
!83 = distinct !{!83, !13}
!84 = distinct !{!84, !13}
!85 = distinct !{!85, !13}
!86 = distinct !{!86, !13}
!87 = distinct !{!87, !13}
!88 = distinct !{!88, !13}
!89 = distinct !{!89, !13}


; Effective O3 passes: BDCEPass,CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopInstSimplifyPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,ReassociatePass,SROAPass,SimplifyCFGPass,TailCallElimPass