; LLVM IR from siconos/siconos :: externals/lbl/metis4/subdomains.ll_ (MoveGroupMConn)

; 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.graphdef = type { ptr, ptr, i32, i32, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, i32, i32, ptr, ptr, i32, ptr, ptr, ptr, ptr, ptr, ptr, ptr, i32, ptr, ptr, ptr, ptr }
%struct.rinfodef = type { i32, i32, i32, ptr }
%struct.controldef = type { i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i32, %struct.workspacedef, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double }
%struct.workspacedef = type { ptr, i32, i32, ptr, ptr, i32, ptr, ptr }
%struct.edegreedef = type { i32, i32 }

; 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 nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #1

; 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 void @__MoveGroupMConn(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr noundef %3, i32 noundef %4, i32 noundef %5, i32 noundef %6, ptr noundef %7) #2 {
  %9 = alloca ptr, align 8
  %10 = alloca ptr, align 8
  %11 = alloca ptr, align 8
  %12 = alloca ptr, align 8
  %13 = alloca i32, align 4
  %14 = alloca i32, align 4
  %15 = alloca i32, align 4
  %16 = alloca ptr, align 8
  %17 = alloca i32, align 4
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  %26 = alloca i32, align 4
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca ptr, align 8
  %30 = alloca ptr, align 8
  %31 = alloca ptr, align 8
  %32 = alloca ptr, align 8
  %33 = alloca ptr, align 8
  %34 = alloca ptr, align 8
  %35 = alloca ptr, align 8
  %36 = alloca ptr, align 8
  store ptr %0, ptr %9, align 8, !tbaa !5
  store ptr %1, ptr %10, align 8, !tbaa !5
  store ptr %2, ptr %11, align 8, !tbaa !5
  store ptr %3, ptr %12, align 8, !tbaa !5
  store i32 %4, ptr %13, align 4, !tbaa !9
  store i32 %5, ptr %14, align 4, !tbaa !9
  store i32 %6, ptr %15, align 4, !tbaa !9
  store ptr %7, ptr %16, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #3
  %37 = load ptr, ptr %10, align 8, !tbaa !5
  %38 = getelementptr inbounds %struct.graphdef, ptr %37, i32 0, i32 2
  %39 = load i32, ptr %38, align 8, !tbaa !11
  store i32 %39, ptr %24, align 4, !tbaa !9
  %40 = load ptr, ptr %10, align 8, !tbaa !5
  %41 = getelementptr inbounds %struct.graphdef, ptr %40, i32 0, i32 4
  %42 = load ptr, ptr %41, align 8, !tbaa !13
  store ptr %42, ptr %29, align 8, !tbaa !5
  %43 = load ptr, ptr %10, align 8, !tbaa !5
  %44 = getelementptr inbounds %struct.graphdef, ptr %43, i32 0, i32 7
  %45 = load ptr, ptr %44, align 8, !tbaa !14
  store ptr %45, ptr %30, align 8, !tbaa !5
  %46 = load ptr, ptr %10, align 8, !tbaa !5
  %47 = getelementptr inbounds %struct.graphdef, ptr %46, i32 0, i32 8
  %48 = load ptr, ptr %47, align 8, !tbaa !15
  store ptr %48, ptr %31, align 8, !tbaa !5
  %49 = load ptr, ptr %10, align 8, !tbaa !5
  %50 = getelementptr inbounds %struct.graphdef, ptr %49, i32 0, i32 14
  %51 = load ptr, ptr %50, align 8, !tbaa !16
  store ptr %51, ptr %32, align 8, !tbaa !5
  %52 = load ptr, ptr %10, align 8, !tbaa !5
  %53 = getelementptr inbounds %struct.graphdef, ptr %52, i32 0, i32 17
  %54 = load ptr, ptr %53, align 8, !tbaa !17
  store ptr %54, ptr %33, align 8, !tbaa !5
  %55 = load ptr, ptr %10, align 8, !tbaa !5
  %56 = getelementptr inbounds %struct.graphdef, ptr %55, i32 0, i32 18
  %57 = load ptr, ptr %56, align 8, !tbaa !18
  store ptr %57, ptr %34, align 8, !tbaa !5
  %58 = load ptr, ptr %10, align 8, !tbaa !5
  %59 = getelementptr inbounds %struct.graphdef, ptr %58, i32 0, i32 16
  %60 = load i32, ptr %59, align 8, !tbaa !19
  store i32 %60, ptr %25, align 4, !tbaa !9
  store i32 0, ptr %19, align 4, !tbaa !9
  br label %61

61:                                               ; preds = %851, %8
  %62 = load i32, ptr %19, align 4, !tbaa !9
  %63 = load i32, ptr %15, align 4, !tbaa !9
  %64 = icmp slt i32 %62, %63
  br i1 %64, label %65, label %854

65:                                               ; preds = %61
  %66 = load ptr, ptr %16, align 8, !tbaa !5
  %67 = load i32, ptr %19, align 4, !tbaa !9
  %68 = sext i32 %67 to i64
  %69 = getelementptr inbounds i32, ptr %66, i64 %68
  %70 = load i32, ptr %69, align 4, !tbaa !9
  store i32 %70, ptr %17, align 4, !tbaa !9
  %71 = load ptr, ptr %32, align 8, !tbaa !5
  %72 = load i32, ptr %17, align 4, !tbaa !9
  %73 = sext i32 %72 to i64
  %74 = getelementptr inbounds i32, ptr %71, i64 %73
  %75 = load i32, ptr %74, align 4, !tbaa !9
  store i32 %75, ptr %27, align 4, !tbaa !9
  %76 = load ptr, ptr %10, align 8, !tbaa !5
  %77 = getelementptr inbounds %struct.graphdef, ptr %76, i32 0, i32 21
  %78 = load ptr, ptr %77, align 8, !tbaa !20
  %79 = load i32, ptr %17, align 4, !tbaa !9
  %80 = sext i32 %79 to i64
  %81 = getelementptr inbounds %struct.rinfodef, ptr %78, i64 %80
  store ptr %81, ptr %36, align 8, !tbaa !5
  %82 = load ptr, ptr %36, align 8, !tbaa !5
  %83 = getelementptr inbounds %struct.rinfodef, ptr %82, i32 0, i32 3
  %84 = load ptr, ptr %83, align 8, !tbaa !21
  %85 = icmp eq ptr %84, null
  br i1 %85, label %86, label %118

86:                                               ; preds = %65
  %87 = load ptr, ptr %9, align 8, !tbaa !5
  %88 = getelementptr inbounds %struct.controldef, ptr %87, i32 0, i32 11
  %89 = getelementptr inbounds %struct.workspacedef, ptr %88, i32 0, i32 3
  %90 = load ptr, ptr %89, align 8, !tbaa !23
  %91 = load ptr, ptr %9, align 8, !tbaa !5
  %92 = getelementptr inbounds %struct.controldef, ptr %91, i32 0, i32 11
  %93 = getelementptr inbounds %struct.workspacedef, ptr %92, i32 0, i32 5
  %94 = load i32, ptr %93, align 8, !tbaa !28
  %95 = sext i32 %94 to i64
  %96 = getelementptr inbounds %struct.edegreedef, ptr %90, i64 %95
  %97 = load ptr, ptr %36, align 8, !tbaa !5
  %98 = getelementptr inbounds %struct.rinfodef, ptr %97, i32 0, i32 3
  store ptr %96, ptr %98, align 8, !tbaa !21
  %99 = load ptr, ptr %29, align 8, !tbaa !5
  %100 = load i32, ptr %17, align 4, !tbaa !9
  %101 = add nsw i32 %100, 1
  %102 = sext i32 %101 to i64
  %103 = getelementptr inbounds i32, ptr %99, i64 %102
  %104 = load i32, ptr %103, align 4, !tbaa !9
  %105 = load ptr, ptr %29, align 8, !tbaa !5
  %106 = load i32, ptr %17, align 4, !tbaa !9
  %107 = sext i32 %106 to i64
  %108 = getelementptr inbounds i32, ptr %105, i64 %107
  %109 = load i32, ptr %108, align 4, !tbaa !9
  %110 = sub nsw i32 %104, %109
  %111 = load ptr, ptr %9, align 8, !tbaa !5
  %112 = getelementptr inbounds %struct.controldef, ptr %111, i32 0, i32 11
  %113 = getelementptr inbounds %struct.workspacedef, ptr %112, i32 0, i32 5
  %114 = load i32, ptr %113, align 8, !tbaa !28
  %115 = add nsw i32 %114, %110
  store i32 %115, ptr %113, align 8, !tbaa !28
  %116 = load ptr, ptr %36, align 8, !tbaa !5
  %117 = getelementptr inbounds %struct.rinfodef, ptr %116, i32 0, i32 2
  store i32 0, ptr %117, align 8, !tbaa !29
  br label %118

118:                                              ; preds = %86, %65
  %119 = load ptr, ptr %36, align 8, !tbaa !5
  %120 = getelementptr inbounds %struct.rinfodef, ptr %119, i32 0, i32 3
  %121 = load ptr, ptr %120, align 8, !tbaa !21
  store ptr %121, ptr %35, align 8, !tbaa !5
  store i32 0, ptr %22, align 4, !tbaa !9
  br label %122

122:                                              ; preds = %139, %118
  %123 = load i32, ptr %22, align 4, !tbaa !9
  %124 = load ptr, ptr %36, align 8, !tbaa !5
  %125 = getelementptr inbounds %struct.rinfodef, ptr %124, i32 0, i32 2
  %126 = load i32, ptr %125, align 8, !tbaa !29
  %127 = icmp slt i32 %123, %126
  br i1 %127, label %128, label %142

128:                                              ; preds = %122
  %129 = load ptr, ptr %35, align 8, !tbaa !5
  %130 = load i32, ptr %22, align 4, !tbaa !9
  %131 = sext i32 %130 to i64
  %132 = getelementptr inbounds %struct.edegreedef, ptr %129, i64 %131
  %133 = getelementptr inbounds %struct.edegreedef, ptr %132, i32 0, i32 0
  %134 = load i32, ptr %133, align 4, !tbaa !30
  %135 = load i32, ptr %14, align 4, !tbaa !9
  %136 = icmp eq i32 %134, %135
  br i1 %136, label %137, label %138

137:                                              ; preds = %128
  br label %142

138:                                              ; preds = %128
  br label %139

139:                                              ; preds = %138
  %140 = load i32, ptr %22, align 4, !tbaa !9
  %141 = add nsw i32 %140, 1
  store i32 %141, ptr %22, align 4, !tbaa !9
  br label %122, !llvm.loop !32

142:                                              ; preds = %137, %122
  %143 = load i32, ptr %22, align 4, !tbaa !9
  %144 = load ptr, ptr %36, align 8, !tbaa !5
  %145 = getelementptr inbounds %struct.rinfodef, ptr %144, i32 0, i32 2
  %146 = load i32, ptr %145, align 8, !tbaa !29
  %147 = icmp eq i32 %143, %146
  br i1 %147, label %148, label %164

148:                                              ; preds = %142
  %149 = load i32, ptr %14, align 4, !tbaa !9
  %150 = load ptr, ptr %35, align 8, !tbaa !5
  %151 = load i32, ptr %22, align 4, !tbaa !9
  %152 = sext i32 %151 to i64
  %153 = getelementptr inbounds %struct.edegreedef, ptr %150, i64 %152
  %154 = getelementptr inbounds %struct.edegreedef, ptr %153, i32 0, i32 0
  store i32 %149, ptr %154, align 4, !tbaa !30
  %155 = load ptr, ptr %35, align 8, !tbaa !5
  %156 = load i32, ptr %22, align 4, !tbaa !9
  %157 = sext i32 %156 to i64
  %158 = getelementptr inbounds %struct.edegreedef, ptr %155, i64 %157
  %159 = getelementptr inbounds %struct.edegreedef, ptr %158, i32 0, i32 1
  store i32 0, ptr %159, align 4, !tbaa !34
  %160 = load ptr, ptr %36, align 8, !tbaa !5
  %161 = getelementptr inbounds %struct.rinfodef, ptr %160, i32 0, i32 2
  %162 = load i32, ptr %161, align 8, !tbaa !29
  %163 = add nsw i32 %162, 1
  store i32 %163, ptr %161, align 8, !tbaa !29
  br label %164

164:                                              ; preds = %148, %142
  %165 = load ptr, ptr %35, align 8, !tbaa !5
  %166 = load i32, ptr %22, align 4, !tbaa !9
  %167 = sext i32 %166 to i64
  %168 = getelementptr inbounds %struct.edegreedef, ptr %165, i64 %167
  %169 = getelementptr inbounds %struct.edegreedef, ptr %168, i32 0, i32 1
  %170 = load i32, ptr %169, align 4, !tbaa !34
  %171 = load ptr, ptr %36, align 8, !tbaa !5
  %172 = getelementptr inbounds %struct.rinfodef, ptr %171, i32 0, i32 0
  %173 = load i32, ptr %172, align 8, !tbaa !35
  %174 = sub nsw i32 %170, %173
  %175 = load ptr, ptr %10, align 8, !tbaa !5
  %176 = getelementptr inbounds %struct.graphdef, ptr %175, i32 0, i32 12
  %177 = load i32, ptr %176, align 8, !tbaa !36
  %178 = sub nsw i32 %177, %174
  store i32 %178, ptr %176, align 8, !tbaa !36
  %179 = load ptr, ptr %36, align 8, !tbaa !5
  %180 = getelementptr inbounds %struct.rinfodef, ptr %179, i32 0, i32 0
  %181 = load i32, ptr %180, align 8, !tbaa !35
  %182 = load ptr, ptr %35, align 8, !tbaa !5
  %183 = load i32, ptr %22, align 4, !tbaa !9
  %184 = sext i32 %183 to i64
  %185 = getelementptr inbounds %struct.edegreedef, ptr %182, i64 %184
  %186 = getelementptr inbounds %struct.edegreedef, ptr %185, i32 0, i32 1
  %187 = load i32, ptr %186, align 4, !tbaa !34
  %188 = sub nsw i32 %181, %187
  %189 = load ptr, ptr %12, align 8, !tbaa !5
  %190 = load i32, ptr %27, align 4, !tbaa !9
  %191 = load i32, ptr %13, align 4, !tbaa !9
  %192 = mul nsw i32 %190, %191
  %193 = load i32, ptr %14, align 4, !tbaa !9
  %194 = add nsw i32 %192, %193
  %195 = sext i32 %194 to i64
  %196 = getelementptr inbounds i32, ptr %189, i64 %195
  %197 = load i32, ptr %196, align 4, !tbaa !9
  %198 = add nsw i32 %197, %188
  store i32 %198, ptr %196, align 4, !tbaa !9
  %199 = load ptr, ptr %36, align 8, !tbaa !5
  %200 = getelementptr inbounds %struct.rinfodef, ptr %199, i32 0, i32 0
  %201 = load i32, ptr %200, align 8, !tbaa !35
  %202 = load ptr, ptr %35, align 8, !tbaa !5
  %203 = load i32, ptr %22, align 4, !tbaa !9
  %204 = sext i32 %203 to i64
  %205 = getelementptr inbounds %struct.edegreedef, ptr %202, i64 %204
  %206 = getelementptr inbounds %struct.edegreedef, ptr %205, i32 0, i32 1
  %207 = load i32, ptr %206, align 4, !tbaa !34
  %208 = sub nsw i32 %201, %207
  %209 = load ptr, ptr %12, align 8, !tbaa !5
  %210 = load i32, ptr %14, align 4, !tbaa !9
  %211 = load i32, ptr %13, align 4, !tbaa !9
  %212 = mul nsw i32 %210, %211
  %213 = load i32, ptr %27, align 4, !tbaa !9
  %214 = add nsw i32 %212, %213
  %215 = sext i32 %214 to i64
  %216 = getelementptr inbounds i32, ptr %209, i64 %215
  %217 = load i32, ptr %216, align 4, !tbaa !9
  %218 = add nsw i32 %217, %208
  store i32 %218, ptr %216, align 4, !tbaa !9
  %219 = load ptr, ptr %12, align 8, !tbaa !5
  %220 = load i32, ptr %27, align 4, !tbaa !9
  %221 = load i32, ptr %13, align 4, !tbaa !9
  %222 = mul nsw i32 %220, %221
  %223 = load i32, ptr %14, align 4, !tbaa !9
  %224 = add nsw i32 %222, %223
  %225 = sext i32 %224 to i64
  %226 = getelementptr inbounds i32, ptr %219, i64 %225
  %227 = load i32, ptr %226, align 4, !tbaa !9
  %228 = icmp eq i32 %227, 0
  br i1 %228, label %229, label %236

229:                                              ; preds = %164
  %230 = load ptr, ptr %11, align 8, !tbaa !5
  %231 = load i32, ptr %27, align 4, !tbaa !9
  %232 = sext i32 %231 to i64
  %233 = getelementptr inbounds i32, ptr %230, i64 %232
  %234 = load i32, ptr %233, align 4, !tbaa !9
  %235 = add nsw i32 %234, -1
  store i32 %235, ptr %233, align 4, !tbaa !9
  br label %236

236:                                              ; preds = %229, %164
  %237 = load ptr, ptr %12, align 8, !tbaa !5
  %238 = load i32, ptr %14, align 4, !tbaa !9
  %239 = load i32, ptr %13, align 4, !tbaa !9
  %240 = mul nsw i32 %238, %239
  %241 = load i32, ptr %27, align 4, !tbaa !9
  %242 = add nsw i32 %240, %241
  %243 = sext i32 %242 to i64
  %244 = getelementptr inbounds i32, ptr %237, i64 %243
  %245 = load i32, ptr %244, align 4, !tbaa !9
  %246 = icmp eq i32 %245, 0
  br i1 %246, label %247, label %254

247:                                              ; preds = %236
  %248 = load ptr, ptr %11, align 8, !tbaa !5
  %249 = load i32, ptr %14, align 4, !tbaa !9
  %250 = sext i32 %249 to i64
  %251 = getelementptr inbounds i32, ptr %248, i64 %250
  %252 = load i32, ptr %251, align 4, !tbaa !9
  %253 = add nsw i32 %252, -1
  store i32 %253, ptr %251, align 4, !tbaa !9
  br label %254

254:                                              ; preds = %247, %236
  %255 = load i32, ptr %14, align 4, !tbaa !9
  %256 = load ptr, ptr %32, align 8, !tbaa !5
  %257 = load i32, ptr %17, align 4, !tbaa !9
  %258 = sext i32 %257 to i64
  %259 = getelementptr inbounds i32, ptr %256, i64 %258
  store i32 %255, ptr %259, align 4, !tbaa !9
  %260 = load ptr, ptr %36, align 8, !tbaa !5
  %261 = getelementptr inbounds %struct.rinfodef, ptr %260, i32 0, i32 0
  %262 = load i32, ptr %261, align 8, !tbaa !35
  %263 = load ptr, ptr %35, align 8, !tbaa !5
  %264 = load i32, ptr %22, align 4, !tbaa !9
  %265 = sext i32 %264 to i64
  %266 = getelementptr inbounds %struct.edegreedef, ptr %263, i64 %265
  %267 = getelementptr inbounds %struct.edegreedef, ptr %266, i32 0, i32 1
  %268 = load i32, ptr %267, align 4, !tbaa !34
  %269 = sub nsw i32 %262, %268
  %270 = load ptr, ptr %36, align 8, !tbaa !5
  %271 = getelementptr inbounds %struct.rinfodef, ptr %270, i32 0, i32 1
  %272 = load i32, ptr %271, align 4, !tbaa !37
  %273 = add nsw i32 %272, %269
  store i32 %273, ptr %271, align 4, !tbaa !37
  br label %274

274:                                              ; preds = %254
  %275 = load ptr, ptr %36, align 8, !tbaa !5
  %276 = getelementptr inbounds %struct.rinfodef, ptr %275, i32 0, i32 0
  %277 = load i32, ptr %276, align 8, !tbaa !35
  store i32 %277, ptr %20, align 4, !tbaa !9
  %278 = load ptr, ptr %35, align 8, !tbaa !5
  %279 = load i32, ptr %22, align 4, !tbaa !9
  %280 = sext i32 %279 to i64
  %281 = getelementptr inbounds %struct.edegreedef, ptr %278, i64 %280
  %282 = getelementptr inbounds %struct.edegreedef, ptr %281, i32 0, i32 1
  %283 = load i32, ptr %282, align 4, !tbaa !34
  %284 = load ptr, ptr %36, align 8, !tbaa !5
  %285 = getelementptr inbounds %struct.rinfodef, ptr %284, i32 0, i32 0
  store i32 %283, ptr %285, align 8, !tbaa !35
  %286 = load i32, ptr %20, align 4, !tbaa !9
  %287 = load ptr, ptr %35, align 8, !tbaa !5
  %288 = load i32, ptr %22, align 4, !tbaa !9
  %289 = sext i32 %288 to i64
  %290 = getelementptr inbounds %struct.edegreedef, ptr %287, i64 %289
  %291 = getelementptr inbounds %struct.edegreedef, ptr %290, i32 0, i32 1
  store i32 %286, ptr %291, align 4, !tbaa !34
  br label %292

292:                                              ; preds = %274
  br label %293

293:                                              ; preds = %292
  %294 = load ptr, ptr %35, align 8, !tbaa !5
  %295 = load i32, ptr %22, align 4, !tbaa !9
  %296 = sext i32 %295 to i64
  %297 = getelementptr inbounds %struct.edegreedef, ptr %294, i64 %296
  %298 = getelementptr inbounds %struct.edegreedef, ptr %297, i32 0, i32 1
  %299 = load i32, ptr %298, align 4, !tbaa !34
  %300 = icmp eq i32 %299, 0
  br i1 %300, label %301, label %313

301:                                              ; preds = %293
  %302 = load ptr, ptr %35, align 8, !tbaa !5
  %303 = load i32, ptr %22, align 4, !tbaa !9
  %304 = sext i32 %303 to i64
  %305 = getelementptr inbounds %struct.edegreedef, ptr %302, i64 %304
  %306 = load ptr, ptr %35, align 8, !tbaa !5
  %307 = load ptr, ptr %36, align 8, !tbaa !5
  %308 = getelementptr inbounds %struct.rinfodef, ptr %307, i32 0, i32 2
  %309 = load i32, ptr %308, align 8, !tbaa !29
  %310 = add nsw i32 %309, -1
  store i32 %310, ptr %308, align 8, !tbaa !29
  %311 = sext i32 %310 to i64
  %312 = getelementptr inbounds %struct.edegreedef, ptr %306, i64 %311
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %305, ptr align 4 %312, i64 8, i1 false), !tbaa.struct !38
  br label %320

313:                                              ; preds = %293
  %314 = load i32, ptr %27, align 4, !tbaa !9
  %315 = load ptr, ptr %35, align 8, !tbaa !5
  %316 = load i32, ptr %22, align 4, !tbaa !9
  %317 = sext i32 %316 to i64
  %318 = getelementptr inbounds %struct.edegreedef, ptr %315, i64 %317
  %319 = getelementptr inbounds %struct.edegreedef, ptr %318, i32 0, i32 0
  store i32 %314, ptr %319, align 4, !tbaa !30
  br label %320

320:                                              ; preds = %313, %301
  %321 = load ptr, ptr %36, align 8, !tbaa !5
  %322 = getelementptr inbounds %struct.rinfodef, ptr %321, i32 0, i32 1
  %323 = load i32, ptr %322, align 4, !tbaa !37
  %324 = load ptr, ptr %36, align 8, !tbaa !5
  %325 = getelementptr inbounds %struct.rinfodef, ptr %324, i32 0, i32 0
  %326 = load i32, ptr %325, align 8, !tbaa !35
  %327 = sub nsw i32 %323, %326
  %328 = icmp slt i32 %327, 0
  br i1 %328, label %329, label %371

329:                                              ; preds = %320
  %330 = load ptr, ptr %33, align 8, !tbaa !5
  %331 = load i32, ptr %17, align 4, !tbaa !9
  %332 = sext i32 %331 to i64
  %333 = getelementptr inbounds i32, ptr %330, i64 %332
  %334 = load i32, ptr %333, align 4, !tbaa !9
  %335 = icmp ne i32 %334, -1
  br i1 %335, label %336, label %371

336:                                              ; preds = %329
  br label %337

337:                                              ; preds = %336
  %338 = load ptr, ptr %34, align 8, !tbaa !5
  %339 = load i32, ptr %25, align 4, !tbaa !9
  %340 = add nsw i32 %339, -1
  store i32 %340, ptr %25, align 4, !tbaa !9
  %341 = sext i32 %340 to i64
  %342 = getelementptr inbounds i32, ptr %338, i64 %341
  %343 = load i32, ptr %342, align 4, !tbaa !9
  %344 = load ptr, ptr %34, align 8, !tbaa !5
  %345 = load ptr, ptr %33, align 8, !tbaa !5
  %346 = load i32, ptr %17, align 4, !tbaa !9
  %347 = sext i32 %346 to i64
  %348 = getelementptr inbounds i32, ptr %345, i64 %347
  %349 = load i32, ptr %348, align 4, !tbaa !9
  %350 = sext i32 %349 to i64
  %351 = getelementptr inbounds i32, ptr %344, i64 %350
  store i32 %343, ptr %351, align 4, !tbaa !9
  %352 = load ptr, ptr %33, align 8, !tbaa !5
  %353 = load i32, ptr %17, align 4, !tbaa !9
  %354 = sext i32 %353 to i64
  %355 = getelementptr inbounds i32, ptr %352, i64 %354
  %356 = load i32, ptr %355, align 4, !tbaa !9
  %357 = load ptr, ptr %33, align 8, !tbaa !5
  %358 = load ptr, ptr %34, align 8, !tbaa !5
  %359 = load i32, ptr %25, align 4, !tbaa !9
  %360 = sext i32 %359 to i64
  %361 = getelementptr inbounds i32, ptr %358, i64 %360
  %362 = load i32, ptr %361, align 4, !tbaa !9
  %363 = sext i32 %362 to i64
  %364 = getelementptr inbounds i32, ptr %357, i64 %363
  store i32 %356, ptr %364, align 4, !tbaa !9
  %365 = load ptr, ptr %33, align 8, !tbaa !5
  %366 = load i32, ptr %17, align 4, !tbaa !9
  %367 = sext i32 %366 to i64
  %368 = getelementptr inbounds i32, ptr %365, i64 %367
  store i32 -1, ptr %368, align 4, !tbaa !9
  br label %369

369:                                              ; preds = %337
  br label %370

370:                                              ; preds = %369
  br label %371

371:                                              ; preds = %370, %329, %320
  %372 = load ptr, ptr %29, align 8, !tbaa !5
  %373 = load i32, ptr %17, align 4, !tbaa !9
  %374 = sext i32 %373 to i64
  %375 = getelementptr inbounds i32, ptr %372, i64 %374
  %376 = load i32, ptr %375, align 4, !tbaa !9
  store i32 %376, ptr %20, align 4, !tbaa !9
  br label %377

377:                                              ; preds = %847, %371
  %378 = load i32, ptr %20, align 4, !tbaa !9
  %379 = load ptr, ptr %29, align 8, !tbaa !5
  %380 = load i32, ptr %17, align 4, !tbaa !9
  %381 = add nsw i32 %380, 1
  %382 = sext i32 %381 to i64
  %383 = getelementptr inbounds i32, ptr %379, i64 %382
  %384 = load i32, ptr %383, align 4, !tbaa !9
  %385 = icmp slt i32 %378, %384
  br i1 %385, label %386, label %850

386:                                              ; preds = %377
  %387 = load ptr, ptr %30, align 8, !tbaa !5
  %388 = load i32, ptr %20, align 4, !tbaa !9
  %389 = sext i32 %388 to i64
  %390 = getelementptr inbounds i32, ptr %387, i64 %389
  %391 = load i32, ptr %390, align 4, !tbaa !9
  store i32 %391, ptr %18, align 4, !tbaa !9
  %392 = load ptr, ptr %32, align 8, !tbaa !5
  %393 = load i32, ptr %18, align 4, !tbaa !9
  %394 = sext i32 %393 to i64
  %395 = getelementptr inbounds i32, ptr %392, i64 %394
  %396 = load i32, ptr %395, align 4, !tbaa !9
  store i32 %396, ptr %28, align 4, !tbaa !9
  %397 = load ptr, ptr %10, align 8, !tbaa !5
  %398 = getelementptr inbounds %struct.graphdef, ptr %397, i32 0, i32 21
  %399 = load ptr, ptr %398, align 8, !tbaa !20
  %400 = load i32, ptr %18, align 4, !tbaa !9
  %401 = sext i32 %400 to i64
  %402 = getelementptr inbounds %struct.rinfodef, ptr %399, i64 %401
  store ptr %402, ptr %36, align 8, !tbaa !5
  %403 = load ptr, ptr %36, align 8, !tbaa !5
  %404 = getelementptr inbounds %struct.rinfodef, ptr %403, i32 0, i32 3
  %405 = load ptr, ptr %404, align 8, !tbaa !21
  %406 = icmp eq ptr %405, null
  br i1 %406, label %407, label %437

407:                                              ; preds = %386
  %408 = load ptr, ptr %9, align 8, !tbaa !5
  %409 = getelementptr inbounds %struct.controldef, ptr %408, i32 0, i32 11
  %410 = getelementptr inbounds %struct.workspacedef, ptr %409, i32 0, i32 3
  %411 = load ptr, ptr %410, align 8, !tbaa !23
  %412 = load ptr, ptr %9, align 8, !tbaa !5
  %413 = getelementptr inbounds %struct.controldef, ptr %412, i32 0, i32 11
  %414 = getelementptr inbounds %struct.workspacedef, ptr %413, i32 0, i32 5
  %415 = load i32, ptr %414, align 8, !tbaa !28
  %416 = sext i32 %415 to i64
  %417 = getelementptr inbounds %struct.edegreedef, ptr %411, i64 %416
  %418 = load ptr, ptr %36, align 8, !tbaa !5
  %419 = getelementptr inbounds %struct.rinfodef, ptr %418, i32 0, i32 3
  store ptr %417, ptr %419, align 8, !tbaa !21
  %420 = load ptr, ptr %29, align 8, !tbaa !5
  %421 = load i32, ptr %18, align 4, !tbaa !9
  %422 = add nsw i32 %421, 1
  %423 = sext i32 %422 to i64
  %424 = getelementptr inbounds i32, ptr %420, i64 %423
  %425 = load i32, ptr %424, align 4, !tbaa !9
  %426 = load ptr, ptr %29, align 8, !tbaa !5
  %427 = load i32, ptr %18, align 4, !tbaa !9
  %428 = sext i32 %427 to i64
  %429 = getelementptr inbounds i32, ptr %426, i64 %428
  %430 = load i32, ptr %429, align 4, !tbaa !9
  %431 = sub nsw i32 %425, %430
  %432 = load ptr, ptr %9, align 8, !tbaa !5
  %433 = getelementptr inbounds %struct.controldef, ptr %432, i32 0, i32 11
  %434 = getelementptr inbounds %struct.workspacedef, ptr %433, i32 0, i32 5
  %435 = load i32, ptr %434, align 8, !tbaa !28
  %436 = add nsw i32 %435, %431
  store i32 %436, ptr %434, align 8, !tbaa !28
  br label %437

437:                                              ; preds = %407, %386
  %438 = load ptr, ptr %36, align 8, !tbaa !5
  %439 = getelementptr inbounds %struct.rinfodef, ptr %438, i32 0, i32 3
  %440 = load ptr, ptr %439, align 8, !tbaa !21
  store ptr %440, ptr %35, align 8, !tbaa !5
  %441 = load i32, ptr %28, align 4, !tbaa !9
  %442 = load i32, ptr %27, align 4, !tbaa !9
  %443 = icmp eq i32 %441, %442
  br i1 %443, label %444, label %497

444:                                              ; preds = %437
  br label %445

445:                                              ; preds = %444
  %446 = load ptr, ptr %31, align 8, !tbaa !5
  %447 = load i32, ptr %20, align 4, !tbaa !9
  %448 = sext i32 %447 to i64
  %449 = getelementptr inbounds i32, ptr %446, i64 %448
  %450 = load i32, ptr %449, align 4, !tbaa !9
  %451 = load ptr, ptr %36, align 8, !tbaa !5
  %452 = getelementptr inbounds %struct.rinfodef, ptr %451, i32 0, i32 1
  %453 = load i32, ptr %452, align 4, !tbaa !37
  %454 = add nsw i32 %453, %450
  store i32 %454, ptr %452, align 4, !tbaa !37
  %455 = load ptr, ptr %31, align 8, !tbaa !5
  %456 = load i32, ptr %20, align 4, !tbaa !9
  %457 = sext i32 %456 to i64
  %458 = getelementptr inbounds i32, ptr %455, i64 %457
  %459 = load i32, ptr %458, align 4, !tbaa !9
  %460 = load ptr, ptr %36, align 8, !tbaa !5
  %461 = getelementptr inbounds %struct.rinfodef, ptr %460, i32 0, i32 0
  %462 = load i32, ptr %461, align 8, !tbaa !35
  %463 = sub nsw i32 %462, %459
  store i32 %463, ptr %461, align 8, !tbaa !35
  br label %464

464:                                              ; preds = %445
  br label %465

465:                                              ; preds = %464
  %466 = load ptr, ptr %36, align 8, !tbaa !5
  %467 = getelementptr inbounds %struct.rinfodef, ptr %466, i32 0, i32 1
  %468 = load i32, ptr %467, align 4, !tbaa !37
  %469 = load ptr, ptr %36, align 8, !tbaa !5
  %470 = getelementptr inbounds %struct.rinfodef, ptr %469, i32 0, i32 0
  %471 = load i32, ptr %470, align 8, !tbaa !35
  %472 = sub nsw i32 %468, %471
  %473 = icmp sge i32 %472, 0
  br i1 %473, label %474, label %496

474:                                              ; preds = %465
  %475 = load ptr, ptr %33, align 8, !tbaa !5
  %476 = load i32, ptr %18, align 4, !tbaa !9
  %477 = sext i32 %476 to i64
  %478 = getelementptr inbounds i32, ptr %475, i64 %477
  %479 = load i32, ptr %478, align 4, !tbaa !9
  %480 = icmp eq i32 %479, -1
  br i1 %480, label %481, label %496

481:                                              ; preds = %474
  br label %482

482:                                              ; preds = %481
  %483 = load i32, ptr %18, align 4, !tbaa !9
  %484 = load ptr, ptr %34, align 8, !tbaa !5
  %485 = load i32, ptr %25, align 4, !tbaa !9
  %486 = sext i32 %485 to i64
  %487 = getelementptr inbounds i32, ptr %484, i64 %486
  store i32 %483, ptr %487, align 4, !tbaa !9
  %488 = load i32, ptr %25, align 4, !tbaa !9
  %489 = add nsw i32 %488, 1
  store i32 %489, ptr %25, align 4, !tbaa !9
  %490 = load ptr, ptr %33, align 8, !tbaa !5
  %491 = load i32, ptr %18, align 4, !tbaa !9
  %492 = sext i32 %491 to i64
  %493 = getelementptr inbounds i32, ptr %490, i64 %492
  store i32 %488, ptr %493, align 4, !tbaa !9
  br label %494

494:                                              ; preds = %482
  br label %495

495:                                              ; preds = %494
  br label %496

496:                                              ; preds = %495, %474, %465
  br label %575

497:                                              ; preds = %437
  %498 = load i32, ptr %28, align 4, !tbaa !9
  %499 = load i32, ptr %14, align 4, !tbaa !9
  %500 = icmp eq i32 %498, %499
  br i1 %500, label %501, label %574

501:                                              ; preds = %497
  br label %502

502:                                              ; preds = %501
  %503 = load ptr, ptr %31, align 8, !tbaa !5
  %504 = load i32, ptr %20, align 4, !tbaa !9
  %505 = sext i32 %504 to i64
  %506 = getelementptr inbounds i32, ptr %503, i64 %505
  %507 = load i32, ptr %506, align 4, !tbaa !9
  %508 = load ptr, ptr %36, align 8, !tbaa !5
  %509 = getelementptr inbounds %struct.rinfodef, ptr %508, i32 0, i32 0
  %510 = load i32, ptr %509, align 8, !tbaa !35
  %511 = add nsw i32 %510, %507
  store i32 %511, ptr %509, align 8, !tbaa !35
  %512 = load ptr, ptr %31, align 8, !tbaa !5
  %513 = load i32, ptr %20, align 4, !tbaa !9
  %514 = sext i32 %513 to i64
  %515 = getelementptr inbounds i32, ptr %512, i64 %514
  %516 = load i32, ptr %515, align 4, !tbaa !9
  %517 = load ptr, ptr %36, align 8, !tbaa !5
  %518 = getelementptr inbounds %struct.rinfodef, ptr %517, i32 0, i32 1
  %519 = load i32, ptr %518, align 4, !tbaa !37
  %520 = sub nsw i32 %519, %516
  store i32 %520, ptr %518, align 4, !tbaa !37
  br label %521

521:                                              ; preds = %502
  br label %522

522:                                              ; preds = %521
  %523 = load ptr, ptr %36, align 8, !tbaa !5
  %524 = getelementptr inbounds %struct.rinfodef, ptr %523, i32 0, i32 1
  %525 = load i32, ptr %524, align 4, !tbaa !37
  %526 = load ptr, ptr %36, align 8, !tbaa !5
  %527 = getelementptr inbounds %struct.rinfodef, ptr %526, i32 0, i32 0
  %528 = load i32, ptr %527, align 8, !tbaa !35
  %529 = sub nsw i32 %525, %528
  %530 = icmp slt i32 %529, 0
  br i1 %530, label %531, label %573

531:                                              ; preds = %522
  %532 = load ptr, ptr %33, align 8, !tbaa !5
  %533 = load i32, ptr %18, align 4, !tbaa !9
  %534 = sext i32 %533 to i64
  %535 = getelementptr inbounds i32, ptr %532, i64 %534
  %536 = load i32, ptr %535, align 4, !tbaa !9
  %537 = icmp ne i32 %536, -1
  br i1 %537, label %538, label %573

538:                                              ; preds = %531
  br label %539

539:                                              ; preds = %538
  %540 = load ptr, ptr %34, align 8, !tbaa !5
  %541 = load i32, ptr %25, align 4, !tbaa !9
  %542 = add nsw i32 %541, -1
  store i32 %542, ptr %25, align 4, !tbaa !9
  %543 = sext i32 %542 to i64
  %544 = getelementptr inbounds i32, ptr %540, i64 %543
  %545 = load i32, ptr %544, align 4, !tbaa !9
  %546 = load ptr, ptr %34, align 8, !tbaa !5
  %547 = load ptr, ptr %33, align 8, !tbaa !5
  %548 = load i32, ptr %18, align 4, !tbaa !9
  %549 = sext i32 %548 to i64
  %550 = getelementptr inbounds i32, ptr %547, i64 %549
  %551 = load i32, ptr %550, align 4, !tbaa !9
  %552 = sext i32 %551 to i64
  %553 = getelementptr inbounds i32, ptr %546, i64 %552
  store i32 %545, ptr %553, align 4, !tbaa !9
  %554 = load ptr, ptr %33, align 8, !tbaa !5
  %555 = load i32, ptr %18, align 4, !tbaa !9
  %556 = sext i32 %555 to i64
  %557 = getelementptr inbounds i32, ptr %554, i64 %556
  %558 = load i32, ptr %557, align 4, !tbaa !9
  %559 = load ptr, ptr %33, align 8, !tbaa !5
  %560 = load ptr, ptr %34, align 8, !tbaa !5
  %561 = load i32, ptr %25, align 4, !tbaa !9
  %562 = sext i32 %561 to i64
  %563 = getelementptr inbounds i32, ptr %560, i64 %562
  %564 = load i32, ptr %563, align 4, !tbaa !9
  %565 = sext i32 %564 to i64
  %566 = getelementptr inbounds i32, ptr %559, i64 %565
  store i32 %558, ptr %566, align 4, !tbaa !9
  %567 = load ptr, ptr %33, align 8, !tbaa !5
  %568 = load i32, ptr %18, align 4, !tbaa !9
  %569 = sext i32 %568 to i64
  %570 = getelementptr inbounds i32, ptr %567, i64 %569
  store i32 -1, ptr %570, align 4, !tbaa !9
  br label %571

571:                                              ; preds = %539
  br label %572

572:                                              ; preds = %571
  br label %573

573:                                              ; preds = %572, %531, %522
  br label %574

574:                                              ; preds = %573, %497
  br label %575

575:                                              ; preds = %574, %496
  %576 = load i32, ptr %28, align 4, !tbaa !9
  %577 = load i32, ptr %27, align 4, !tbaa !9
  %578 = icmp ne i32 %576, %577
  br i1 %578, label %579, label %639

579:                                              ; preds = %575
  store i32 0, ptr %22, align 4, !tbaa !9
  br label %580

580:                                              ; preds = %635, %579
  %581 = load i32, ptr %22, align 4, !tbaa !9
  %582 = load ptr, ptr %36, align 8, !tbaa !5
  %583 = getelementptr inbounds %struct.rinfodef, ptr %582, i32 0, i32 2
  %584 = load i32, ptr %583, align 8, !tbaa !29
  %585 = icmp slt i32 %581, %584
  br i1 %585, label %586, label %638

586:                                              ; preds = %580
  %587 = load ptr, ptr %35, align 8, !tbaa !5
  %588 = load i32, ptr %22, align 4, !tbaa !9
  %589 = sext i32 %588 to i64
  %590 = getelementptr inbounds %struct.edegreedef, ptr %587, i64 %589
  %591 = getelementptr inbounds %struct.edegreedef, ptr %590, i32 0, i32 0
  %592 = load i32, ptr %591, align 4, !tbaa !30
  %593 = load i32, ptr %27, align 4, !tbaa !9
  %594 = icmp eq i32 %592, %593
  br i1 %594, label %595, label %634

595:                                              ; preds = %586
  %596 = load ptr, ptr %35, align 8, !tbaa !5
  %597 = load i32, ptr %22, align 4, !tbaa !9
  %598 = sext i32 %597 to i64
  %599 = getelementptr inbounds %struct.edegreedef, ptr %596, i64 %598
  %600 = getelementptr inbounds %struct.edegreedef, ptr %599, i32 0, i32 1
  %601 = load i32, ptr %600, align 4, !tbaa !34
  %602 = load ptr, ptr %31, align 8, !tbaa !5
  %603 = load i32, ptr %20, align 4, !tbaa !9
  %604 = sext i32 %603 to i64
  %605 = getelementptr inbounds i32, ptr %602, i64 %604
  %606 = load i32, ptr %605, align 4, !tbaa !9
  %607 = icmp eq i32 %601, %606
  br i1 %607, label %608, label %620

608:                                              ; preds = %595
  %609 = load ptr, ptr %35, align 8, !tbaa !5
  %610 = load i32, ptr %22, align 4, !tbaa !9
  %611 = sext i32 %610 to i64
  %612 = getelementptr inbounds %struct.edegreedef, ptr %609, i64 %611
  %613 = load ptr, ptr %35, align 8, !tbaa !5
  %614 = load ptr, ptr %36, align 8, !tbaa !5
  %615 = getelementptr inbounds %struct.rinfodef, ptr %614, i32 0, i32 2
  %616 = load i32, ptr %615, align 8, !tbaa !29
  %617 = add nsw i32 %616, -1
  store i32 %617, ptr %615, align 8, !tbaa !29
  %618 = sext i32 %617 to i64
  %619 = getelementptr inbounds %struct.edegreedef, ptr %613, i64 %618
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %612, ptr align 4 %619, i64 8, i1 false), !tbaa.struct !38
  br label %633

620:                                              ; preds = %595
  %621 = load ptr, ptr %31, align 8, !tbaa !5
  %622 = load i32, ptr %20, align 4, !tbaa !9
  %623 = sext i32 %622 to i64
  %624 = getelementptr inbounds i32, ptr %621, i64 %623
  %625 = load i32, ptr %624, align 4, !tbaa !9
  %626 = load ptr, ptr %35, align 8, !tbaa !5
  %627 = load i32, ptr %22, align 4, !tbaa !9
  %628 = sext i32 %627 to i64
  %629 = getelementptr inbounds %struct.edegreedef, ptr %626, i64 %628
  %630 = getelementptr inbounds %struct.edegreedef, ptr %629, i32 0, i32 1
  %631 = load i32, ptr %630, align 4, !tbaa !34
  %632 = sub nsw i32 %631, %625
  store i32 %632, ptr %630, align 4, !tbaa !34
  br label %633

633:                                              ; preds = %620, %608
  br label %638

634:                                              ; preds = %586
  br label %635

635:                                              ; preds = %634
  %636 = load i32, ptr %22, align 4, !tbaa !9
  %637 = add nsw i32 %636, 1
  store i32 %637, ptr %22, align 4, !tbaa !9
  br label %580, !llvm.loop !39

638:                                              ; preds = %633, %580
  br label %639

639:                                              ; preds = %638, %575
  %640 = load i32, ptr %28, align 4, !tbaa !9
  %641 = load i32, ptr %14, align 4, !tbaa !9
  %642 = icmp ne i32 %640, %641
  br i1 %642, label %643, label %705

643:                                              ; preds = %639
  store i32 0, ptr %22, align 4, !tbaa !9
  br label %644

644:                                              ; preds = %673, %643
  %645 = load i32, ptr %22, align 4, !tbaa !9
  %646 = load ptr, ptr %36, align 8, !tbaa !5
  %647 = getelementptr inbounds %struct.rinfodef, ptr %646, i32 0, i32 2
  %648 = load i32, ptr %647, align 8, !tbaa !29
  %649 = icmp slt i32 %645, %648
  br i1 %649, label %650, label %676

650:                                              ; preds = %644
  %651 = load ptr, ptr %35, align 8, !tbaa !5
  %652 = load i32, ptr %22, align 4, !tbaa !9
  %653 = sext i32 %652 to i64
  %654 = getelementptr inbounds %struct.edegreedef, ptr %651, i64 %653
  %655 = getelementptr inbounds %struct.edegreedef, ptr %654, i32 0, i32 0
  %656 = load i32, ptr %655, align 4, !tbaa !30
  %657 = load i32, ptr %14, align 4, !tbaa !9
  %658 = icmp eq i32 %656, %657
  br i1 %658, label %659, label %672

659:                                              ; preds = %650
  %660 = load ptr, ptr %31, align 8, !tbaa !5
  %661 = load i32, ptr %20, align 4, !tbaa !9
  %662 = sext i32 %661 to i64
  %663 = getelementptr inbounds i32, ptr %660, i64 %662
  %664 = load i32, ptr %663, align 4, !tbaa !9
  %665 = load ptr, ptr %35, align 8, !tbaa !5
  %666 = load i32, ptr %22, align 4, !tbaa !9
  %667 = sext i32 %666 to i64
  %668 = getelementptr inbounds %struct.edegreedef, ptr %665, i64 %667
  %669 = getelementptr inbounds %struct.edegreedef, ptr %668, i32 0, i32 1
  %670 = load i32, ptr %669, align 4, !tbaa !34
  %671 = add nsw i32 %670, %664
  store i32 %671, ptr %669, align 4, !tbaa !34
  br label %676

672:                                              ; preds = %650
  br label %673

673:                                              ; preds = %672
  %674 = load i32, ptr %22, align 4, !tbaa !9
  %675 = add nsw i32 %674, 1
  store i32 %675, ptr %22, align 4, !tbaa !9
  br label %644, !llvm.loop !40

676:                                              ; preds = %659, %644
  %677 = load i32, ptr %22, align 4, !tbaa !9
  %678 = load ptr, ptr %36, align 8, !tbaa !5
  %679 = getelementptr inbounds %struct.rinfodef, ptr %678, i32 0, i32 2
  %680 = load i32, ptr %679, align 8, !tbaa !29
  %681 = icmp eq i32 %677, %680
  br i1 %681, label %682, label %704

682:                                              ; preds = %676
  %683 = load i32, ptr %14, align 4, !tbaa !9
  %684 = load ptr, ptr %35, align 8, !tbaa !5
  %685 = load ptr, ptr %36, align 8, !tbaa !5
  %686 = getelementptr inbounds %struct.rinfodef, ptr %685, i32 0, i32 2
  %687 = load i32, ptr %686, align 8, !tbaa !29
  %688 = sext i32 %687 to i64
  %689 = getelementptr inbounds %struct.edegreedef, ptr %684, i64 %688
  %690 = getelementptr inbounds %struct.edegreedef, ptr %689, i32 0, i32 0
  store i32 %683, ptr %690, align 4, !tbaa !30
  %691 = load ptr, ptr %31, align 8, !tbaa !5
  %692 = load i32, ptr %20, align 4, !tbaa !9
  %693 = sext i32 %692 to i64
  %694 = getelementptr inbounds i32, ptr %691, i64 %693
  %695 = load i32, ptr %694, align 4, !tbaa !9
  %696 = load ptr, ptr %35, align 8, !tbaa !5
  %697 = load ptr, ptr %36, align 8, !tbaa !5
  %698 = getelementptr inbounds %struct.rinfodef, ptr %697, i32 0, i32 2
  %699 = load i32, ptr %698, align 8, !tbaa !29
  %700 = add nsw i32 %699, 1
  store i32 %700, ptr %698, align 8, !tbaa !29
  %701 = sext i32 %699 to i64
  %702 = getelementptr inbounds %struct.edegreedef, ptr %696, i64 %701
  %703 = getelementptr inbounds %struct.edegreedef, ptr %702, i32 0, i32 1
  store i32 %695, ptr %703, align 4, !tbaa !34
  br label %704

704:                                              ; preds = %682, %676
  br label %705

705:                                              ; preds = %704, %639
  %706 = load i32, ptr %28, align 4, !tbaa !9
  %707 = load i32, ptr %27, align 4, !tbaa !9
  %708 = icmp ne i32 %706, %707
  br i1 %708, label %709, label %846

709:                                              ; preds = %705
  %710 = load i32, ptr %28, align 4, !tbaa !9
  %711 = load i32, ptr %14, align 4, !tbaa !9
  %712 = icmp ne i32 %710, %711
  br i1 %712, label %713, label %846

713:                                              ; preds = %709
  %714 = load ptr, ptr %31, align 8, !tbaa !5
  %715 = load i32, ptr %20, align 4, !tbaa !9
  %716 = sext i32 %715 to i64
  %717 = getelementptr inbounds i32, ptr %714, i64 %716
  %718 = load i32, ptr %717, align 4, !tbaa !9
  %719 = load ptr, ptr %12, align 8, !tbaa !5
  %720 = load i32, ptr %28, align 4, !tbaa !9
  %721 = load i32, ptr %13, align 4, !tbaa !9
  %722 = mul nsw i32 %720, %721
  %723 = load i32, ptr %27, align 4, !tbaa !9
  %724 = add nsw i32 %722, %723
  %725 = sext i32 %724 to i64
  %726 = getelementptr inbounds i32, ptr %719, i64 %725
  %727 = load i32, ptr %726, align 4, !tbaa !9
  %728 = sub nsw i32 %727, %718
  store i32 %728, ptr %726, align 4, !tbaa !9
  %729 = load ptr, ptr %31, align 8, !tbaa !5
  %730 = load i32, ptr %20, align 4, !tbaa !9
  %731 = sext i32 %730 to i64
  %732 = getelementptr inbounds i32, ptr %729, i64 %731
  %733 = load i32, ptr %732, align 4, !tbaa !9
  %734 = load ptr, ptr %12, align 8, !tbaa !5
  %735 = load i32, ptr %27, align 4, !tbaa !9
  %736 = load i32, ptr %13, align 4, !tbaa !9
  %737 = mul nsw i32 %735, %736
  %738 = load i32, ptr %28, align 4, !tbaa !9
  %739 = add nsw i32 %737, %738
  %740 = sext i32 %739 to i64
  %741 = getelementptr inbounds i32, ptr %734, i64 %740
  %742 = load i32, ptr %741, align 4, !tbaa !9
  %743 = sub nsw i32 %742, %733
  store i32 %743, ptr %741, align 4, !tbaa !9
  %744 = load ptr, ptr %12, align 8, !tbaa !5
  %745 = load i32, ptr %28, align 4, !tbaa !9
  %746 = load i32, ptr %13, align 4, !tbaa !9
  %747 = mul nsw i32 %745, %746
  %748 = load i32, ptr %27, align 4, !tbaa !9
  %749 = add nsw i32 %747, %748
  %750 = sext i32 %749 to i64
  %751 = getelementptr inbounds i32, ptr %744, i64 %750
  %752 = load i32, ptr %751, align 4, !tbaa !9
  %753 = icmp eq i32 %752, 0
  br i1 %753, label %754, label %761

754:                                              ; preds = %713
  %755 = load ptr, ptr %11, align 8, !tbaa !5
  %756 = load i32, ptr %28, align 4, !tbaa !9
  %757 = sext i32 %756 to i64
  %758 = getelementptr inbounds i32, ptr %755, i64 %757
  %759 = load i32, ptr %758, align 4, !tbaa !9
  %760 = add nsw i32 %759, -1
  store i32 %760, ptr %758, align 4, !tbaa !9
  br label %761

761:                                              ; preds = %754, %713
  %762 = load ptr, ptr %12, align 8, !tbaa !5
  %763 = load i32, ptr %27, align 4, !tbaa !9
  %764 = load i32, ptr %13, align 4, !tbaa !9
  %765 = mul nsw i32 %763, %764
  %766 = load i32, ptr %28, align 4, !tbaa !9
  %767 = add nsw i32 %765, %766
  %768 = sext i32 %767 to i64
  %769 = getelementptr inbounds i32, ptr %762, i64 %768
  %770 = load i32, ptr %769, align 4, !tbaa !9
  %771 = icmp eq i32 %770, 0
  br i1 %771, label %772, label %779

772:                                              ; preds = %761
  %773 = load ptr, ptr %11, align 8, !tbaa !5
  %774 = load i32, ptr %27, align 4, !tbaa !9
  %775 = sext i32 %774 to i64
  %776 = getelementptr inbounds i32, ptr %773, i64 %775
  %777 = load i32, ptr %776, align 4, !tbaa !9
  %778 = add nsw i32 %777, -1
  store i32 %778, ptr %776, align 4, !tbaa !9
  br label %779

779:                                              ; preds = %772, %761
  %780 = load ptr, ptr %12, align 8, !tbaa !5
  %781 = load i32, ptr %28, align 4, !tbaa !9
  %782 = load i32, ptr %13, align 4, !tbaa !9
  %783 = mul nsw i32 %781, %782
  %784 = load i32, ptr %14, align 4, !tbaa !9
  %785 = add nsw i32 %783, %784
  %786 = sext i32 %785 to i64
  %787 = getelementptr inbounds i32, ptr %780, i64 %786
  %788 = load i32, ptr %787, align 4, !tbaa !9
  %789 = icmp eq i32 %788, 0
  br i1 %789, label %790, label %797

790:                                              ; preds = %779
  %791 = load ptr, ptr %11, align 8, !tbaa !5
  %792 = load i32, ptr %28, align 4, !tbaa !9
  %793 = sext i32 %792 to i64
  %794 = getelementptr inbounds i32, ptr %791, i64 %793
  %795 = load i32, ptr %794, align 4, !tbaa !9
  %796 = add nsw i32 %795, 1
  store i32 %796, ptr %794, align 4, !tbaa !9
  br label %797

797:                                              ; preds = %790, %779
  %798 = load ptr, ptr %12, align 8, !tbaa !5
  %799 = load i32, ptr %14, align 4, !tbaa !9
  %800 = load i32, ptr %13, align 4, !tbaa !9
  %801 = mul nsw i32 %799, %800
  %802 = load i32, ptr %28, align 4, !tbaa !9
  %803 = add nsw i32 %801, %802
  %804 = sext i32 %803 to i64
  %805 = getelementptr inbounds i32, ptr %798, i64 %804
  %806 = load i32, ptr %805, align 4, !tbaa !9
  %807 = icmp eq i32 %806, 0
  br i1 %807, label %808, label %815

808:                                              ; preds = %797
  %809 = load ptr, ptr %11, align 8, !tbaa !5
  %810 = load i32, ptr %14, align 4, !tbaa !9
  %811 = sext i32 %810 to i64
  %812 = getelementptr inbounds i32, ptr %809, i64 %811
  %813 = load i32, ptr %812, align 4, !tbaa !9
  %814 = add nsw i32 %813, 1
  store i32 %814, ptr %812, align 4, !tbaa !9
  br label %815

815:                                              ; preds = %808, %797
  %816 = load ptr, ptr %31, align 8, !tbaa !5
  %817 = load i32, ptr %20, align 4, !tbaa !9
  %818 = sext i32 %817 to i64
  %819 = getelementptr inbounds i32, ptr %816, i64 %818
  %820 = load i32, ptr %819, align 4, !tbaa !9
  %821 = load ptr, ptr %12, align 8, !tbaa !5
  %822 = load i32, ptr %28, align 4, !tbaa !9
  %823 = load i32, ptr %13, align 4, !tbaa !9
  %824 = mul nsw i32 %822, %823
  %825 = load i32, ptr %14, align 4, !tbaa !9
  %826 = add nsw i32 %824, %825
  %827 = sext i32 %826 to i64
  %828 = getelementptr inbounds i32, ptr %821, i64 %827
  %829 = load i32, ptr %828, align 4, !tbaa !9
  %830 = add nsw i32 %829, %820
  store i32 %830, ptr %828, align 4, !tbaa !9
  %831 = load ptr, ptr %31, align 8, !tbaa !5
  %832 = load i32, ptr %20, align 4, !tbaa !9
  %833 = sext i32 %832 to i64
  %834 = getelementptr inbounds i32, ptr %831, i64 %833
  %835 = load i32, ptr %834, align 4, !tbaa !9
  %836 = load ptr, ptr %12, align 8, !tbaa !5
  %837 = load i32, ptr %14, align 4, !tbaa !9
  %838 = load i32, ptr %13, align 4, !tbaa !9
  %839 = mul nsw i32 %837, %838
  %840 = load i32, ptr %28, align 4, !tbaa !9
  %841 = add nsw i32 %839, %840
  %842 = sext i32 %841 to i64
  %843 = getelementptr inbounds i32, ptr %836, i64 %842
  %844 = load i32, ptr %843, align 4, !tbaa !9
  %845 = add nsw i32 %844, %835
  store i32 %845, ptr %843, align 4, !tbaa !9
  br label %846

846:                                              ; preds = %815, %709, %705
  br label %847

847:                                              ; preds = %846
  %848 = load i32, ptr %20, align 4, !tbaa !9
  %849 = add nsw i32 %848, 1
  store i32 %849, ptr %20, align 4, !tbaa !9
  br label %377, !llvm.loop !41

850:                                              ; preds = %377
  br label %851

851:                                              ; preds = %850
  %852 = load i32, ptr %19, align 4, !tbaa !9
  %853 = add nsw i32 %852, 1
  store i32 %853, ptr %19, align 4, !tbaa !9
  br label %61, !llvm.loop !42

854:                                              ; preds = %61
  %855 = load i32, ptr %25, align 4, !tbaa !9
  %856 = load ptr, ptr %10, align 8, !tbaa !5
  %857 = getelementptr inbounds %struct.graphdef, ptr %856, i32 0, i32 16
  store i32 %855, ptr %857, align 8, !tbaa !19
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #3
  ret void
}

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"int", !7, i64 0}
!11 = !{!12, !10, i64 16}
!12 = !{!"graphdef", !6, i64 0, !6, i64 8, !10, i64 16, !10, i64 20, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48, !6, i64 56, !6, i64 64, !6, i64 72, !6, i64 80, !10, i64 88, !10, i64 92, !6, i64 96, !6, i64 104, !10, i64 112, !6, i64 120, !6, i64 128, !6, i64 136, !6, i64 144, !6, i64 152, !6, i64 160, !6, i64 168, !10, i64 176, !6, i64 184, !6, i64 192, !6, i64 200, !6, i64 208}
!13 = !{!12, !6, i64 24}
!14 = !{!12, !6, i64 48}
!15 = !{!12, !6, i64 56}
!16 = !{!12, !6, i64 96}
!17 = !{!12, !6, i64 120}
!18 = !{!12, !6, i64 128}
!19 = !{!12, !10, i64 112}
!20 = !{!12, !6, i64 152}
!21 = !{!22, !6, i64 16}
!22 = !{!"rinfodef", !10, i64 0, !10, i64 4, !10, i64 8, !6, i64 16}
!23 = !{!24, !6, i64 64}
!24 = !{!"controldef", !10, i64 0, !10, i64 4, !10, i64 8, !10, i64 12, !10, i64 16, !10, i64 20, !25, i64 24, !10, i64 28, !10, i64 32, !10, i64 36, !10, i64 40, !26, i64 48, !27, i64 104, !27, i64 112, !27, i64 120, !27, i64 128, !27, i64 136, !27, i64 144, !27, i64 152, !27, i64 160, !27, i64 168, !27, i64 176, !27, i64 184, !27, i64 192, !27, i64 200, !27, i64 208, !27, i64 216, !27, i64 224}
!25 = !{!"float", !7, i64 0}
!26 = !{!"workspacedef", !6, i64 0, !10, i64 8, !10, i64 12, !6, i64 16, !6, i64 24, !10, i64 32, !6, i64 40, !6, i64 48}
!27 = !{!"double", !7, i64 0}
!28 = !{!24, !10, i64 80}
!29 = !{!22, !10, i64 8}
!30 = !{!31, !10, i64 0}
!31 = !{!"edegreedef", !10, i64 0, !10, i64 4}
!32 = distinct !{!32, !33}
!33 = !{!"llvm.loop.mustprogress"}
!34 = !{!31, !10, i64 4}
!35 = !{!22, !10, i64 0}
!36 = !{!12, !10, i64 88}
!37 = !{!22, !10, i64 4}
!38 = !{i64 0, i64 4, !9, i64 4, i64 4, !9}
!39 = distinct !{!39, !33}
!40 = distinct !{!40, !33}
!41 = distinct !{!41, !33}
!42 = distinct !{!42, !33}


; 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.rinfodef = type { i32, i32, i32, ptr }
%struct.edegreedef = type { i32, i32 }

; Function Attrs: nofree norecurse nosync nounwind memory(readwrite, inaccessiblemem: none) uwtable
define dso_local void @__MoveGroupMConn(ptr nocapture noundef %0, ptr nocapture noundef %1, ptr nocapture noundef %2, ptr nocapture noundef %3, i32 noundef %4, i32 noundef %5, i32 noundef %6, ptr nocapture noundef readonly %7) local_unnamed_addr #0 {
  %9 = getelementptr inbounds i8, ptr %1, i64 24
  %10 = load ptr, ptr %9, align 8, !tbaa !5
  %11 = getelementptr inbounds i8, ptr %1, i64 48
  %12 = load ptr, ptr %11, align 8, !tbaa !11
  %13 = getelementptr inbounds i8, ptr %1, i64 56
  %14 = load ptr, ptr %13, align 8, !tbaa !12
  %15 = getelementptr inbounds i8, ptr %1, i64 96
  %16 = load ptr, ptr %15, align 8, !tbaa !13
  %17 = getelementptr inbounds i8, ptr %1, i64 120
  %18 = load ptr, ptr %17, align 8, !tbaa !14
  %19 = getelementptr inbounds i8, ptr %1, i64 128
  %20 = load ptr, ptr %19, align 8, !tbaa !15
  %21 = getelementptr inbounds i8, ptr %1, i64 112
  %22 = load i32, ptr %21, align 8, !tbaa !16
  %23 = icmp sgt i32 %6, 0
  br i1 %23, label %.lr.ph334, label %._crit_edge335

.lr.ph334:                                        ; preds = %8
  %24 = getelementptr inbounds i8, ptr %1, i64 152
  %25 = getelementptr inbounds i8, ptr %0, i64 64
  %26 = getelementptr inbounds i8, ptr %0, i64 80
  %27 = getelementptr inbounds i8, ptr %1, i64 88
  %28 = mul nsw i32 %5, %4
  %29 = sext i32 %5 to i64
  %30 = getelementptr inbounds i32, ptr %2, i64 %29
  %wide.trip.count359 = zext nneg i32 %6 to i64
  br label %31

31:                                               ; preds = %.lr.ph334, %._crit_edge329
  %indvars.iv356 = phi i64 [ 0, %.lr.ph334 ], [ %indvars.iv.next357, %._crit_edge329 ]
  %.0271331 = phi i32 [ %22, %.lr.ph334 ], [ %.2273.lcssa, %._crit_edge329 ]
  %32 = getelementptr inbounds i32, ptr %7, i64 %indvars.iv356
  %33 = load i32, ptr %32, align 4, !tbaa !17
  %34 = sext i32 %33 to i64
  %35 = getelementptr inbounds i32, ptr %16, i64 %34
  %36 = load i32, ptr %35, align 4, !tbaa !17
  %37 = load ptr, ptr %24, align 8, !tbaa !18
  %38 = getelementptr inbounds %struct.rinfodef, ptr %37, i64 %34
  %39 = getelementptr inbounds i8, ptr %38, i64 16
  %40 = load ptr, ptr %39, align 8, !tbaa !19
  %41 = icmp eq ptr %40, null
  br i1 %41, label %.thread364, label %54

.thread364:                                       ; preds = %31
  %42 = load ptr, ptr %25, align 8, !tbaa !21
  %43 = load i32, ptr %26, align 8, !tbaa !26
  %44 = sext i32 %43 to i64
  %45 = getelementptr inbounds %struct.edegreedef, ptr %42, i64 %44
  store ptr %45, ptr %39, align 8, !tbaa !19
  %46 = getelementptr i32, ptr %10, i64 %34
  %47 = getelementptr i8, ptr %46, i64 4
  %48 = load i32, ptr %47, align 4, !tbaa !17
  %49 = load i32, ptr %46, align 4, !tbaa !17
  %50 = add i32 %48, %43
  %51 = sub i32 %50, %49
  store i32 %51, ptr %26, align 8, !tbaa !26
  %52 = getelementptr inbounds i8, ptr %38, i64 8
  store i32 0, ptr %52, align 8, !tbaa !27
  %53 = getelementptr inbounds i8, ptr %38, i64 8
  br label %._crit_edge.thread

54:                                               ; preds = %31
  %.phi.trans.insert = getelementptr inbounds i8, ptr %38, i64 8
  %.pre = load i32, ptr %.phi.trans.insert, align 8, !tbaa !27
  %55 = getelementptr inbounds i8, ptr %38, i64 8
  %56 = icmp sgt i32 %.pre, 0
  br i1 %56, label %.lr.ph.preheader, label %._crit_edge

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

.lr.ph:                                           ; preds = %.lr.ph.preheader, %60
  %indvars.iv = phi i64 [ 0, %.lr.ph.preheader ], [ %indvars.iv.next, %60 ]
  %57 = getelementptr inbounds %struct.edegreedef, ptr %40, i64 %indvars.iv
  %58 = load i32, ptr %57, align 4, !tbaa !28
  %59 = icmp eq i32 %58, %5
  br i1 %59, label %._crit_edge.loopexit, label %60

60:                                               ; preds = %.lr.ph
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next, %wide.trip.count
  br i1 %exitcond.not, label %._crit_edge.thread, label %.lr.ph, !llvm.loop !30

._crit_edge.loopexit:                             ; preds = %.lr.ph
  %61 = trunc nuw nsw i64 %indvars.iv to i32
  br label %._crit_edge

._crit_edge:                                      ; preds = %._crit_edge.loopexit, %54
  %.0270.lcssa = phi i32 [ 0, %54 ], [ %61, %._crit_edge.loopexit ]
  %62 = icmp eq i32 %.0270.lcssa, %.pre
  br i1 %62, label %._crit_edge.thread, label %70

._crit_edge.thread:                               ; preds = %60, %.thread364, %._crit_edge
  %.0270.lcssa369 = phi i32 [ %.0270.lcssa, %._crit_edge ], [ 0, %.thread364 ], [ %.pre, %60 ]
  %63 = phi i32 [ %.pre, %._crit_edge ], [ 0, %.thread364 ], [ %.pre, %60 ]
  %64 = phi ptr [ %40, %._crit_edge ], [ %45, %.thread364 ], [ %40, %60 ]
  %65 = phi ptr [ %55, %._crit_edge ], [ %53, %.thread364 ], [ %55, %60 ]
  %66 = zext nneg i32 %63 to i64
  %67 = getelementptr inbounds %struct.edegreedef, ptr %64, i64 %66
  store i32 %5, ptr %67, align 4, !tbaa !28
  %68 = getelementptr inbounds i8, ptr %67, i64 4
  store i32 0, ptr %68, align 4, !tbaa !32
  %69 = add nsw i32 %63, 1
  store i32 %69, ptr %65, align 8, !tbaa !27
  br label %70

70:                                               ; preds = %._crit_edge.thread, %._crit_edge
  %.0270.lcssa368 = phi i32 [ %.0270.lcssa369, %._crit_edge.thread ], [ %.0270.lcssa, %._crit_edge ]
  %71 = phi ptr [ %64, %._crit_edge.thread ], [ %40, %._crit_edge ]
  %72 = phi ptr [ %65, %._crit_edge.thread ], [ %55, %._crit_edge ]
  %73 = zext nneg i32 %.0270.lcssa368 to i64
  %74 = getelementptr inbounds %struct.edegreedef, ptr %71, i64 %73
  %75 = getelementptr inbounds i8, ptr %74, i64 4
  %76 = load i32, ptr %75, align 4, !tbaa !32
  %77 = load i32, ptr %38, align 8, !tbaa !33
  %.neg = sub i32 %77, %76
  %78 = load i32, ptr %27, align 8, !tbaa !34
  %79 = add i32 %.neg, %78
  store i32 %79, ptr %27, align 8, !tbaa !34
  %80 = mul nsw i32 %36, %4
  %81 = add nsw i32 %80, %5
  %82 = sext i32 %81 to i64
  %83 = getelementptr inbounds i32, ptr %3, i64 %82
  %84 = load i32, ptr %83, align 4, !tbaa !17
  %85 = add nsw i32 %84, %.neg
  store i32 %85, ptr %83, align 4, !tbaa !17
  %86 = load i32, ptr %38, align 8, !tbaa !33
  %87 = load i32, ptr %75, align 4, !tbaa !32
  %88 = sub nsw i32 %86, %87
  %89 = add nsw i32 %36, %28
  %90 = sext i32 %89 to i64
  %91 = getelementptr inbounds i32, ptr %3, i64 %90
  %92 = load i32, ptr %91, align 4, !tbaa !17
  %93 = add nsw i32 %92, %88
  store i32 %93, ptr %91, align 4, !tbaa !17
  %94 = load i32, ptr %83, align 4, !tbaa !17
  %95 = icmp eq i32 %94, 0
  br i1 %95, label %96, label %101

96:                                               ; preds = %70
  %97 = sext i32 %36 to i64
  %98 = getelementptr inbounds i32, ptr %2, i64 %97
  %99 = load i32, ptr %98, align 4, !tbaa !17
  %100 = add nsw i32 %99, -1
  store i32 %100, ptr %98, align 4, !tbaa !17
  %.pr = load i32, ptr %91, align 4, !tbaa !17
  br label %101

101:                                              ; preds = %96, %70
  %102 = phi i32 [ %.pr, %96 ], [ %93, %70 ]
  %103 = icmp eq i32 %102, 0
  br i1 %103, label %104, label %107

104:                                              ; preds = %101
  %105 = load i32, ptr %30, align 4, !tbaa !17
  %106 = add nsw i32 %105, -1
  store i32 %106, ptr %30, align 4, !tbaa !17
  br label %107

107:                                              ; preds = %104, %101
  store i32 %5, ptr %35, align 4, !tbaa !17
  %108 = load i32, ptr %38, align 8, !tbaa !33
  %109 = load i32, ptr %75, align 4, !tbaa !32
  %110 = sub i32 %108, %109
  %111 = getelementptr inbounds i8, ptr %38, i64 4
  %112 = load i32, ptr %111, align 4, !tbaa !35
  %113 = add nsw i32 %110, %112
  store i32 %113, ptr %111, align 4, !tbaa !35
  store i32 %109, ptr %38, align 8, !tbaa !33
  store i32 %108, ptr %75, align 4, !tbaa !32
  %114 = icmp eq i32 %108, 0
  br i1 %114, label %115, label %121

115:                                              ; preds = %107
  %116 = load i32, ptr %72, align 8, !tbaa !27
  %117 = add nsw i32 %116, -1
  store i32 %117, ptr %72, align 8, !tbaa !27
  %118 = sext i32 %117 to i64
  %119 = getelementptr inbounds %struct.edegreedef, ptr %71, i64 %118
  %120 = load i64, ptr %119, align 4
  store i64 %120, ptr %74, align 4
  %.pre362 = load i32, ptr %111, align 4, !tbaa !35
  %.pre363 = load i32, ptr %38, align 8, !tbaa !33
  br label %122

121:                                              ; preds = %107
  store i32 %36, ptr %74, align 4, !tbaa !28
  br label %122

122:                                              ; preds = %121, %115
  %123 = phi i32 [ %109, %121 ], [ %.pre363, %115 ]
  %124 = phi i32 [ %113, %121 ], [ %.pre362, %115 ]
  %125 = icmp slt i32 %124, %123
  br i1 %125, label %126, label %139

126:                                              ; preds = %122
  %127 = getelementptr inbounds i32, ptr %18, i64 %34
  %128 = load i32, ptr %127, align 4, !tbaa !17
  %.not = icmp eq i32 %128, -1
  br i1 %.not, label %139, label %129

129:                                              ; preds = %126
  %130 = add nsw i32 %.0271331, -1
  %131 = sext i32 %130 to i64
  %132 = getelementptr inbounds i32, ptr %20, i64 %131
  %133 = load i32, ptr %132, align 4, !tbaa !17
  %134 = sext i32 %128 to i64
  %135 = getelementptr inbounds i32, ptr %20, i64 %134
  store i32 %133, ptr %135, align 4, !tbaa !17
  %136 = load i32, ptr %127, align 4, !tbaa !17
  %137 = sext i32 %133 to i64
  %138 = getelementptr inbounds i32, ptr %18, i64 %137
  store i32 %136, ptr %138, align 4, !tbaa !17
  store i32 -1, ptr %127, align 4, !tbaa !17
  br label %139

139:                                              ; preds = %129, %126, %122
  %.1272 = phi i32 [ %130, %129 ], [ %.0271331, %126 ], [ %.0271331, %122 ]
  %140 = getelementptr inbounds i32, ptr %10, i64 %34
  %141 = load i32, ptr %140, align 4, !tbaa !17
  %142 = getelementptr i8, ptr %140, i64 4
  %143 = load i32, ptr %142, align 4, !tbaa !17
  %144 = icmp slt i32 %141, %143
  br i1 %144, label %.lr.ph328, label %._crit_edge329

.lr.ph328:                                        ; preds = %139
  %145 = sext i32 %36 to i64
  %146 = getelementptr inbounds i32, ptr %2, i64 %145
  %147 = sext i32 %141 to i64
  br label %148

148:                                              ; preds = %.lr.ph328, %.thread292
  %indvars.iv353 = phi i64 [ %147, %.lr.ph328 ], [ %indvars.iv.next354, %.thread292 ]
  %.2273325 = phi i32 [ %.1272, %.lr.ph328 ], [ %.3291, %.thread292 ]
  %149 = getelementptr inbounds i32, ptr %12, i64 %indvars.iv353
  %150 = load i32, ptr %149, align 4, !tbaa !17
  %151 = sext i32 %150 to i64
  %152 = getelementptr inbounds i32, ptr %16, i64 %151
  %153 = load i32, ptr %152, align 4, !tbaa !17
  %154 = load ptr, ptr %24, align 8, !tbaa !18
  %155 = getelementptr inbounds %struct.rinfodef, ptr %154, i64 %151
  %156 = getelementptr inbounds i8, ptr %155, i64 16
  %157 = load ptr, ptr %156, align 8, !tbaa !19
  %158 = icmp eq ptr %157, null
  br i1 %158, label %159, label %170

159:                                              ; preds = %148
  %160 = load ptr, ptr %25, align 8, !tbaa !21
  %161 = load i32, ptr %26, align 8, !tbaa !26
  %162 = sext i32 %161 to i64
  %163 = getelementptr inbounds %struct.edegreedef, ptr %160, i64 %162
  store ptr %163, ptr %156, align 8, !tbaa !19
  %164 = getelementptr i32, ptr %10, i64 %151
  %165 = getelementptr i8, ptr %164, i64 4
  %166 = load i32, ptr %165, align 4, !tbaa !17
  %167 = load i32, ptr %164, align 4, !tbaa !17
  %168 = add i32 %166, %161
  %169 = sub i32 %168, %167
  store i32 %169, ptr %26, align 8, !tbaa !26
  br label %170

170:                                              ; preds = %159, %148
  %171 = phi ptr [ %163, %159 ], [ %157, %148 ]
  %172 = icmp eq i32 %153, %36
  br i1 %172, label %173, label %190

173:                                              ; preds = %170
  %174 = getelementptr inbounds i32, ptr %14, i64 %indvars.iv353
  %175 = load i32, ptr %174, align 4, !tbaa !17
  %176 = getelementptr inbounds i8, ptr %155, i64 4
  %177 = load i32, ptr %176, align 4, !tbaa !35
  %178 = add nsw i32 %177, %175
  store i32 %178, ptr %176, align 4, !tbaa !35
  %179 = load i32, ptr %174, align 4, !tbaa !17
  %180 = load i32, ptr %155, align 8, !tbaa !33
  %181 = sub nsw i32 %180, %179
  store i32 %181, ptr %155, align 8, !tbaa !33
  %.not287 = icmp slt i32 %178, %181
  br i1 %.not287, label %.thread, label %182

182:                                              ; preds = %173
  %183 = getelementptr inbounds i32, ptr %18, i64 %151
  %184 = load i32, ptr %183, align 4, !tbaa !17
  %185 = icmp eq i32 %184, -1
  br i1 %185, label %186, label %.thread

186:                                              ; preds = %182
  %187 = sext i32 %.2273325 to i64
  %188 = getelementptr inbounds i32, ptr %20, i64 %187
  store i32 %150, ptr %188, align 4, !tbaa !17
  %189 = add nsw i32 %.2273325, 1
  store i32 %.2273325, ptr %183, align 4, !tbaa !17
  br label %.thread

190:                                              ; preds = %170
  %191 = icmp eq i32 %153, %5
  br i1 %191, label %192, label %215

192:                                              ; preds = %190
  %193 = getelementptr inbounds i32, ptr %14, i64 %indvars.iv353
  %194 = load i32, ptr %193, align 4, !tbaa !17
  %195 = load i32, ptr %155, align 8, !tbaa !33
  %196 = add nsw i32 %195, %194
  store i32 %196, ptr %155, align 8, !tbaa !33
  %197 = load i32, ptr %193, align 4, !tbaa !17
  %198 = getelementptr inbounds i8, ptr %155, i64 4
  %199 = load i32, ptr %198, align 4, !tbaa !35
  %200 = sub nsw i32 %199, %197
  store i32 %200, ptr %198, align 4, !tbaa !35
  %201 = icmp slt i32 %200, %196
  br i1 %201, label %202, label %215

202:                                              ; preds = %192
  %203 = getelementptr inbounds i32, ptr %18, i64 %151
  %204 = load i32, ptr %203, align 4, !tbaa !17
  %.not286 = icmp eq i32 %204, -1
  br i1 %.not286, label %215, label %205

205:                                              ; preds = %202
  %206 = add nsw i32 %.2273325, -1
  %207 = sext i32 %206 to i64
  %208 = getelementptr inbounds i32, ptr %20, i64 %207
  %209 = load i32, ptr %208, align 4, !tbaa !17
  %210 = sext i32 %204 to i64
  %211 = getelementptr inbounds i32, ptr %20, i64 %210
  store i32 %209, ptr %211, align 4, !tbaa !17
  %212 = load i32, ptr %203, align 4, !tbaa !17
  %213 = sext i32 %209 to i64
  %214 = getelementptr inbounds i32, ptr %18, i64 %213
  store i32 %212, ptr %214, align 4, !tbaa !17
  store i32 -1, ptr %203, align 4, !tbaa !17
  br label %215

215:                                              ; preds = %190, %205, %202, %192
  %.3 = phi i32 [ %206, %205 ], [ %.2273325, %202 ], [ %.2273325, %192 ], [ %.2273325, %190 ]
  %216 = getelementptr inbounds i8, ptr %155, i64 8
  %217 = load i32, ptr %216, align 8, !tbaa !27
  %218 = icmp sgt i32 %217, 0
  br i1 %218, label %.lr.ph319.preheader, label %.thread

.lr.ph319.preheader:                              ; preds = %215
  %wide.trip.count346 = zext nneg i32 %217 to i64
  br label %.lr.ph319

219:                                              ; preds = %.lr.ph319
  %indvars.iv.next344 = add nuw nsw i64 %indvars.iv343, 1
  %exitcond347.not = icmp eq i64 %indvars.iv.next344, %wide.trip.count346
  br i1 %exitcond347.not, label %.thread, label %.lr.ph319, !llvm.loop !36

.lr.ph319:                                        ; preds = %.lr.ph319.preheader, %219
  %indvars.iv343 = phi i64 [ 0, %.lr.ph319.preheader ], [ %indvars.iv.next344, %219 ]
  %220 = getelementptr inbounds %struct.edegreedef, ptr %171, i64 %indvars.iv343
  %221 = load i32, ptr %220, align 4, !tbaa !28
  %222 = icmp eq i32 %221, %36
  br i1 %222, label %223, label %219

223:                                              ; preds = %.lr.ph319
  %224 = getelementptr inbounds %struct.edegreedef, ptr %171, i64 %indvars.iv343
  %225 = getelementptr inbounds i8, ptr %224, i64 4
  %226 = load i32, ptr %225, align 4, !tbaa !32
  %227 = getelementptr inbounds i32, ptr %14, i64 %indvars.iv353
  %228 = load i32, ptr %227, align 4, !tbaa !17
  %229 = icmp eq i32 %226, %228
  br i1 %229, label %230, label %235

230:                                              ; preds = %223
  %231 = add nsw i32 %217, -1
  store i32 %231, ptr %216, align 8, !tbaa !27
  %232 = sext i32 %231 to i64
  %233 = getelementptr inbounds %struct.edegreedef, ptr %171, i64 %232
  %234 = load i64, ptr %233, align 4
  store i64 %234, ptr %224, align 4
  br label %.thread

235:                                              ; preds = %223
  %236 = sub nsw i32 %226, %228
  store i32 %236, ptr %225, align 4, !tbaa !32
  br label %.thread

.thread:                                          ; preds = %219, %215, %186, %182, %173, %235, %230
  %.3291 = phi i32 [ %.3, %235 ], [ %.3, %230 ], [ %.2273325, %173 ], [ %.2273325, %182 ], [ %189, %186 ], [ %.3, %215 ], [ %.3, %219 ]
  %.not289 = icmp eq i32 %153, %5
  br i1 %.not289, label %.thread292, label %.preheader

.preheader:                                       ; preds = %.thread
  %237 = getelementptr inbounds i8, ptr %155, i64 8
  %238 = load i32, ptr %237, align 8, !tbaa !27
  %239 = icmp sgt i32 %238, 0
  br i1 %239, label %.lr.ph322.preheader, label %.loopexit

.lr.ph322.preheader:                              ; preds = %.preheader
  %wide.trip.count351 = zext nneg i32 %238 to i64
  br label %.lr.ph322

.lr.ph322:                                        ; preds = %.lr.ph322.preheader, %250
  %indvars.iv348 = phi i64 [ 0, %.lr.ph322.preheader ], [ %indvars.iv.next349, %250 ]
  %240 = getelementptr inbounds %struct.edegreedef, ptr %171, i64 %indvars.iv348
  %241 = load i32, ptr %240, align 4, !tbaa !28
  %242 = icmp eq i32 %241, %5
  br i1 %242, label %243, label %250

243:                                              ; preds = %.lr.ph322
  %244 = trunc nuw nsw i64 %indvars.iv348 to i32
  %245 = getelementptr inbounds i32, ptr %14, i64 %indvars.iv353
  %246 = load i32, ptr %245, align 4, !tbaa !17
  %247 = getelementptr inbounds %struct.edegreedef, ptr %171, i64 %indvars.iv348, i32 1
  %248 = load i32, ptr %247, align 4, !tbaa !32
  %249 = add nsw i32 %248, %246
  store i32 %249, ptr %247, align 4, !tbaa !32
  br label %.loopexit

250:                                              ; preds = %.lr.ph322
  %indvars.iv.next349 = add nuw nsw i64 %indvars.iv348, 1
  %exitcond352.not = icmp eq i64 %indvars.iv.next349, %wide.trip.count351
  br i1 %exitcond352.not, label %.loopexit.thread, label %.lr.ph322, !llvm.loop !37

.loopexit:                                        ; preds = %.preheader, %243
  %.2309 = phi i32 [ %244, %243 ], [ 0, %.preheader ]
  %251 = icmp eq i32 %.2309, %238
  br i1 %251, label %.loopexit.thread, label %258

.loopexit.thread:                                 ; preds = %250, %.loopexit
  %252 = sext i32 %238 to i64
  %253 = getelementptr inbounds %struct.edegreedef, ptr %171, i64 %252
  store i32 %5, ptr %253, align 4, !tbaa !28
  %254 = getelementptr inbounds i32, ptr %14, i64 %indvars.iv353
  %255 = load i32, ptr %254, align 4, !tbaa !17
  %256 = add nsw i32 %238, 1
  store i32 %256, ptr %237, align 8, !tbaa !27
  %257 = getelementptr inbounds %struct.edegreedef, ptr %171, i64 %252, i32 1
  store i32 %255, ptr %257, align 4, !tbaa !32
  br label %258

258:                                              ; preds = %.loopexit, %.loopexit.thread
  br i1 %172, label %.thread292, label %259

259:                                              ; preds = %258
  %260 = getelementptr inbounds i32, ptr %14, i64 %indvars.iv353
  %261 = load i32, ptr %260, align 4, !tbaa !17
  %262 = mul nsw i32 %153, %4
  %263 = add nsw i32 %262, %36
  %264 = sext i32 %263 to i64
  %265 = getelementptr inbounds i32, ptr %3, i64 %264
  %266 = load i32, ptr %265, align 4, !tbaa !17
  %267 = sub nsw i32 %266, %261
  store i32 %267, ptr %265, align 4, !tbaa !17
  %268 = load i32, ptr %260, align 4, !tbaa !17
  %269 = add nsw i32 %153, %80
  %270 = sext i32 %269 to i64
  %271 = getelementptr inbounds i32, ptr %3, i64 %270
  %272 = load i32, ptr %271, align 4, !tbaa !17
  %273 = sub nsw i32 %272, %268
  store i32 %273, ptr %271, align 4, !tbaa !17
  %274 = load i32, ptr %265, align 4, !tbaa !17
  %275 = icmp eq i32 %274, 0
  br i1 %275, label %276, label %281

276:                                              ; preds = %259
  %277 = sext i32 %153 to i64
  %278 = getelementptr inbounds i32, ptr %2, i64 %277
  %279 = load i32, ptr %278, align 4, !tbaa !17
  %280 = add nsw i32 %279, -1
  store i32 %280, ptr %278, align 4, !tbaa !17
  %.pr294 = load i32, ptr %271, align 4, !tbaa !17
  br label %281

281:                                              ; preds = %276, %259
  %282 = phi i32 [ %.pr294, %276 ], [ %273, %259 ]
  %283 = icmp eq i32 %282, 0
  br i1 %283, label %284, label %287

284:                                              ; preds = %281
  %285 = load i32, ptr %146, align 4, !tbaa !17
  %286 = add nsw i32 %285, -1
  store i32 %286, ptr %146, align 4, !tbaa !17
  br label %287

287:                                              ; preds = %284, %281
  %288 = add nsw i32 %262, %5
  %289 = sext i32 %288 to i64
  %290 = getelementptr inbounds i32, ptr %3, i64 %289
  %291 = load i32, ptr %290, align 4, !tbaa !17
  %292 = icmp eq i32 %291, 0
  br i1 %292, label %293, label %298

293:                                              ; preds = %287
  %294 = sext i32 %153 to i64
  %295 = getelementptr inbounds i32, ptr %2, i64 %294
  %296 = load i32, ptr %295, align 4, !tbaa !17
  %297 = add nsw i32 %296, 1
  store i32 %297, ptr %295, align 4, !tbaa !17
  br label %298

298:                                              ; preds = %293, %287
  %299 = add nsw i32 %153, %28
  %300 = sext i32 %299 to i64
  %301 = getelementptr inbounds i32, ptr %3, i64 %300
  %302 = load i32, ptr %301, align 4, !tbaa !17
  %303 = icmp eq i32 %302, 0
  br i1 %303, label %304, label %307

304:                                              ; preds = %298
  %305 = load i32, ptr %30, align 4, !tbaa !17
  %306 = add nsw i32 %305, 1
  store i32 %306, ptr %30, align 4, !tbaa !17
  br label %307

307:                                              ; preds = %304, %298
  %308 = load i32, ptr %260, align 4, !tbaa !17
  %309 = load i32, ptr %290, align 4, !tbaa !17
  %310 = add nsw i32 %309, %308
  store i32 %310, ptr %290, align 4, !tbaa !17
  %311 = load i32, ptr %260, align 4, !tbaa !17
  %312 = load i32, ptr %301, align 4, !tbaa !17
  %313 = add nsw i32 %312, %311
  store i32 %313, ptr %301, align 4, !tbaa !17
  br label %.thread292

.thread292:                                       ; preds = %.thread, %258, %307
  %indvars.iv.next354 = add nsw i64 %indvars.iv353, 1
  %314 = load i32, ptr %142, align 4, !tbaa !17
  %315 = sext i32 %314 to i64
  %316 = icmp slt i64 %indvars.iv.next354, %315
  br i1 %316, label %148, label %._crit_edge329, !llvm.loop !38

._crit_edge329:                                   ; preds = %.thread292, %139
  %.2273.lcssa = phi i32 [ %.1272, %139 ], [ %.3291, %.thread292 ]
  %indvars.iv.next357 = add nuw nsw i64 %indvars.iv356, 1
  %exitcond360.not = icmp eq i64 %indvars.iv.next357, %wide.trip.count359
  br i1 %exitcond360.not, label %._crit_edge335, label %31, !llvm.loop !39

._crit_edge335:                                   ; preds = %._crit_edge329, %8
  %.0271.lcssa = phi i32 [ %22, %8 ], [ %.2273.lcssa, %._crit_edge329 ]
  store i32 %.0271.lcssa, ptr %21, align 8, !tbaa !16
  ret void
}

attributes #0 = { nofree norecurse nosync nounwind memory(readwrite, inaccessiblemem: none) 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" }

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !7, i64 24}
!6 = !{!"graphdef", !7, i64 0, !7, i64 8, !10, i64 16, !10, i64 20, !7, i64 24, !7, i64 32, !7, i64 40, !7, i64 48, !7, i64 56, !7, i64 64, !7, i64 72, !7, i64 80, !10, i64 88, !10, i64 92, !7, i64 96, !7, i64 104, !10, i64 112, !7, i64 120, !7, i64 128, !7, i64 136, !7, i64 144, !7, i64 152, !7, i64 160, !7, i64 168, !10, i64 176, !7, i64 184, !7, i64 192, !7, i64 200, !7, i64 208}
!7 = !{!"any pointer", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C/C++ TBAA"}
!10 = !{!"int", !8, i64 0}
!11 = !{!6, !7, i64 48}
!12 = !{!6, !7, i64 56}
!13 = !{!6, !7, i64 96}
!14 = !{!6, !7, i64 120}
!15 = !{!6, !7, i64 128}
!16 = !{!6, !10, i64 112}
!17 = !{!10, !10, i64 0}
!18 = !{!6, !7, i64 152}
!19 = !{!20, !7, i64 16}
!20 = !{!"rinfodef", !10, i64 0, !10, i64 4, !10, i64 8, !7, i64 16}
!21 = !{!22, !7, i64 64}
!22 = !{!"controldef", !10, i64 0, !10, i64 4, !10, i64 8, !10, i64 12, !10, i64 16, !10, i64 20, !23, i64 24, !10, i64 28, !10, i64 32, !10, i64 36, !10, i64 40, !24, i64 48, !25, i64 104, !25, i64 112, !25, i64 120, !25, i64 128, !25, i64 136, !25, i64 144, !25, i64 152, !25, i64 160, !25, i64 168, !25, i64 176, !25, i64 184, !25, i64 192, !25, i64 200, !25, i64 208, !25, i64 216, !25, i64 224}
!23 = !{!"float", !8, i64 0}
!24 = !{!"workspacedef", !7, i64 0, !10, i64 8, !10, i64 12, !7, i64 16, !7, i64 24, !10, i64 32, !7, i64 40, !7, i64 48}
!25 = !{!"double", !8, i64 0}
!26 = !{!22, !10, i64 80}
!27 = !{!20, !10, i64 8}
!28 = !{!29, !10, i64 0}
!29 = !{!"edegreedef", !10, i64 0, !10, i64 4}
!30 = distinct !{!30, !31}
!31 = !{!"llvm.loop.mustprogress"}
!32 = !{!29, !10, i64 4}
!33 = !{!20, !10, i64 0}
!34 = !{!6, !10, i64 88}
!35 = !{!20, !10, i64 4}
!36 = distinct !{!36, !31}
!37 = distinct !{!37, !31}
!38 = distinct !{!38, !31}
!39 = distinct !{!39, !31}


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