; LLVM IR from tangjz/acm-icpc :: 51nod/1570.ll (Z10expressionv)

; 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.Node = type { [65537 x i32] }

@qtot = external dso_local global i32, align 4
@que = external dso_local global [125 x %struct.Node], align 16
@x = external dso_local global %struct.Node, align 4
@y = external dso_local global %struct.Node, align 4
@z = external dso_local global %struct.Node, align 4
@ptr = external dso_local global ptr, align 8

; Function Attrs: mustprogress uwtable
define dso_local noundef i32 @_Z10expressionv() #0 {
  %1 = alloca i32, align 4
  %2 = alloca i32, align 4
  %3 = alloca i32, align 4
  %4 = alloca i8, align 1
  %5 = alloca i32, align 4
  %6 = alloca i32, align 4
  %7 = alloca i32, align 4
  %8 = alloca i32, align 4
  %9 = alloca i32, align 4
  %10 = alloca i32, align 4
  %11 = alloca i32, align 4
  %12 = alloca i32, align 4
  %13 = alloca i32, align 4
  %14 = alloca i32, align 4
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = load ptr, ptr @ptr, align 8, !tbaa !5
  %25 = load i8, ptr %24, align 1, !tbaa !9
  %26 = sext i8 %25 to i32
  %27 = icmp ne i32 %26, 40
  br i1 %27, label %28, label %60

28:                                               ; preds = %0
  call void @llvm.lifetime.start.p0(i64 4, ptr %2) #4
  %29 = load ptr, ptr @ptr, align 8, !tbaa !5
  %30 = load i8, ptr %29, align 1, !tbaa !9
  %31 = sext i8 %30 to i32
  %32 = icmp eq i32 %31, 63
  br i1 %32, label %33, label %34

33:                                               ; preds = %28
  store i32 8, ptr %2, align 4, !tbaa !10
  br label %56

34:                                               ; preds = %28
  %35 = load ptr, ptr @ptr, align 8, !tbaa !5
  %36 = load i8, ptr %35, align 1, !tbaa !9
  %37 = sext i8 %36 to i32
  %38 = icmp sge i32 %37, 65
  br i1 %38, label %39, label %49

39:                                               ; preds = %34
  %40 = load ptr, ptr @ptr, align 8, !tbaa !5
  %41 = load i8, ptr %40, align 1, !tbaa !9
  %42 = sext i8 %41 to i32
  %43 = icmp sle i32 %42, 68
  br i1 %43, label %44, label %49

44:                                               ; preds = %39
  %45 = load ptr, ptr @ptr, align 8, !tbaa !5
  %46 = load i8, ptr %45, align 1, !tbaa !9
  %47 = sext i8 %46 to i32
  %48 = sub nsw i32 %47, 65
  store i32 %48, ptr %2, align 4, !tbaa !10
  br label %55

49:                                               ; preds = %39, %34
  %50 = load ptr, ptr @ptr, align 8, !tbaa !5
  %51 = load i8, ptr %50, align 1, !tbaa !9
  %52 = sext i8 %51 to i32
  %53 = add nsw i32 4, %52
  %54 = sub nsw i32 %53, 97
  store i32 %54, ptr %2, align 4, !tbaa !10
  br label %55

55:                                               ; preds = %49, %44
  br label %56

56:                                               ; preds = %55, %33
  %57 = load ptr, ptr @ptr, align 8, !tbaa !5
  %58 = getelementptr inbounds i8, ptr %57, i32 1
  store ptr %58, ptr @ptr, align 8, !tbaa !5
  %59 = load i32, ptr %2, align 4, !tbaa !10
  store i32 %59, ptr %1, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %2) #4
  br label %415

60:                                               ; preds = %0
  %61 = load ptr, ptr @ptr, align 8, !tbaa !5
  %62 = getelementptr inbounds i8, ptr %61, i32 1
  store ptr %62, ptr @ptr, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %3) #4
  %63 = call noundef i32 @_Z10expressionv()
  store i32 %63, ptr %3, align 4, !tbaa !10
  %64 = load ptr, ptr @ptr, align 8, !tbaa !5
  %65 = getelementptr inbounds i8, ptr %64, i32 1
  store ptr %65, ptr @ptr, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %4) #4
  %66 = load ptr, ptr @ptr, align 8, !tbaa !5
  %67 = getelementptr inbounds i8, ptr %66, i32 1
  store ptr %67, ptr @ptr, align 8, !tbaa !5
  %68 = load i8, ptr %66, align 1, !tbaa !9
  store i8 %68, ptr %4, align 1, !tbaa !9
  %69 = load ptr, ptr @ptr, align 8, !tbaa !5
  %70 = getelementptr inbounds i8, ptr %69, i32 1
  store ptr %70, ptr @ptr, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %5) #4
  %71 = call noundef i32 @_Z10expressionv()
  store i32 %71, ptr %5, align 4, !tbaa !10
  %72 = load ptr, ptr @ptr, align 8, !tbaa !5
  %73 = getelementptr inbounds i8, ptr %72, i32 1
  store ptr %73, ptr @ptr, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #4
  %74 = load i32, ptr @qtot, align 4, !tbaa !10
  %75 = add nsw i32 %74, 1
  store i32 %75, ptr @qtot, align 4, !tbaa !10
  store i32 %74, ptr %6, align 4, !tbaa !10
  %76 = load i8, ptr %4, align 1, !tbaa !9
  %77 = sext i8 %76 to i32
  %78 = icmp eq i32 %77, 38
  br i1 %78, label %83, label %79

79:                                               ; preds = %60
  %80 = load i8, ptr %4, align 1, !tbaa !9
  %81 = sext i8 %80 to i32
  %82 = icmp eq i32 %81, 63
  br i1 %82, label %83, label %244

83:                                               ; preds = %79, %60
  %84 = load i32, ptr %3, align 4, !tbaa !10
  %85 = sext i32 %84 to i64
  %86 = getelementptr inbounds [125 x %struct.Node], ptr @que, i64 0, i64 %85
  %87 = getelementptr inbounds %struct.Node, ptr %86, i32 0, i32 0
  %88 = getelementptr inbounds [65537 x i32], ptr %87, i64 0, i64 0
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 @x, ptr align 4 %88, i64 262144, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #4
  store i32 0, ptr %7, align 4, !tbaa !10
  br label %89

89:                                               ; preds = %120, %83
  %90 = load i32, ptr %7, align 4, !tbaa !10
  %91 = icmp slt i32 %90, 16
  br i1 %91, label %93, label %92

92:                                               ; preds = %89
  store i32 2, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #4
  br label %123

93:                                               ; preds = %89
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #4
  store i32 65535, ptr %9, align 4, !tbaa !10
  br label %94

94:                                               ; preds = %116, %93
  %95 = load i32, ptr %9, align 4, !tbaa !10
  %96 = icmp sge i32 %95, 0
  br i1 %96, label %98, label %97

97:                                               ; preds = %94
  store i32 5, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #4
  br label %119

98:                                               ; preds = %94
  %99 = load i32, ptr %9, align 4, !tbaa !10
  %100 = load i32, ptr %7, align 4, !tbaa !10
  %101 = shl i32 1, %100
  %102 = and i32 %99, %101
  %103 = icmp ne i32 %102, 0
  br i1 %103, label %104, label %115

104:                                              ; preds = %98
  %105 = load i32, ptr %9, align 4, !tbaa !10
  %106 = load i32, ptr %7, align 4, !tbaa !10
  %107 = shl i32 1, %106
  %108 = xor i32 %105, %107
  %109 = sext i32 %108 to i64
  %110 = getelementptr inbounds [65537 x i32], ptr @x, i64 0, i64 %109
  %111 = load i32, ptr %9, align 4, !tbaa !10
  %112 = sext i32 %111 to i64
  %113 = getelementptr inbounds [65537 x i32], ptr @x, i64 0, i64 %112
  %114 = load i32, ptr %113, align 4, !tbaa !10
  call void @_Z7mod_incRii(ptr noundef nonnull align 4 dereferenceable(4) %110, i32 noundef %114)
  br label %115

115:                                              ; preds = %104, %98
  br label %116

116:                                              ; preds = %115
  %117 = load i32, ptr %9, align 4, !tbaa !10
  %118 = add nsw i32 %117, -1
  store i32 %118, ptr %9, align 4, !tbaa !10
  br label %94, !llvm.loop !12

119:                                              ; preds = %97
  br label %120

120:                                              ; preds = %119
  %121 = load i32, ptr %7, align 4, !tbaa !10
  %122 = add nsw i32 %121, 1
  store i32 %122, ptr %7, align 4, !tbaa !10
  br label %89, !llvm.loop !14

123:                                              ; preds = %92
  %124 = load i32, ptr %5, align 4, !tbaa !10
  %125 = sext i32 %124 to i64
  %126 = getelementptr inbounds [125 x %struct.Node], ptr @que, i64 0, i64 %125
  %127 = getelementptr inbounds %struct.Node, ptr %126, i32 0, i32 0
  %128 = getelementptr inbounds [65537 x i32], ptr %127, i64 0, i64 0
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 @y, ptr align 4 %128, i64 262144, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #4
  store i32 0, ptr %10, align 4, !tbaa !10
  br label %129

129:                                              ; preds = %160, %123
  %130 = load i32, ptr %10, align 4, !tbaa !10
  %131 = icmp slt i32 %130, 16
  br i1 %131, label %133, label %132

132:                                              ; preds = %129
  store i32 8, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #4
  br label %163

133:                                              ; preds = %129
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #4
  store i32 65535, ptr %11, align 4, !tbaa !10
  br label %134

134:                                              ; preds = %156, %133
  %135 = load i32, ptr %11, align 4, !tbaa !10
  %136 = icmp sge i32 %135, 0
  br i1 %136, label %138, label %137

137:                                              ; preds = %134
  store i32 11, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #4
  br label %159

138:                                              ; preds = %134
  %139 = load i32, ptr %11, align 4, !tbaa !10
  %140 = load i32, ptr %10, align 4, !tbaa !10
  %141 = shl i32 1, %140
  %142 = and i32 %139, %141
  %143 = icmp ne i32 %142, 0
  br i1 %143, label %144, label %155

144:                                              ; preds = %138
  %145 = load i32, ptr %11, align 4, !tbaa !10
  %146 = load i32, ptr %10, align 4, !tbaa !10
  %147 = shl i32 1, %146
  %148 = xor i32 %145, %147
  %149 = sext i32 %148 to i64
  %150 = getelementptr inbounds [65537 x i32], ptr @y, i64 0, i64 %149
  %151 = load i32, ptr %11, align 4, !tbaa !10
  %152 = sext i32 %151 to i64
  %153 = getelementptr inbounds [65537 x i32], ptr @y, i64 0, i64 %152
  %154 = load i32, ptr %153, align 4, !tbaa !10
  call void @_Z7mod_incRii(ptr noundef nonnull align 4 dereferenceable(4) %150, i32 noundef %154)
  br label %155

155:                                              ; preds = %144, %138
  br label %156

156:                                              ; preds = %155
  %157 = load i32, ptr %11, align 4, !tbaa !10
  %158 = add nsw i32 %157, -1
  store i32 %158, ptr %11, align 4, !tbaa !10
  br label %134, !llvm.loop !15

159:                                              ; preds = %137
  br label %160

160:                                              ; preds = %159
  %161 = load i32, ptr %10, align 4, !tbaa !10
  %162 = add nsw i32 %161, 1
  store i32 %162, ptr %10, align 4, !tbaa !10
  br label %129, !llvm.loop !16

163:                                              ; preds = %132
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #4
  store i32 0, ptr %12, align 4, !tbaa !10
  br label %164

164:                                              ; preds = %185, %163
  %165 = load i32, ptr %12, align 4, !tbaa !10
  %166 = icmp slt i32 %165, 65536
  br i1 %166, label %168, label %167

167:                                              ; preds = %164
  store i32 14, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #4
  br label %188

168:                                              ; preds = %164
  %169 = load i32, ptr %12, align 4, !tbaa !10
  %170 = sext i32 %169 to i64
  %171 = getelementptr inbounds [65537 x i32], ptr @x, i64 0, i64 %170
  %172 = load i32, ptr %171, align 4, !tbaa !10
  %173 = sext i32 %172 to i64
  %174 = load i32, ptr %12, align 4, !tbaa !10
  %175 = sext i32 %174 to i64
  %176 = getelementptr inbounds [65537 x i32], ptr @y, i64 0, i64 %175
  %177 = load i32, ptr %176, align 4, !tbaa !10
  %178 = sext i32 %177 to i64
  %179 = mul nsw i64 %173, %178
  %180 = srem i64 %179, 1000000007
  %181 = trunc i64 %180 to i32
  %182 = load i32, ptr %12, align 4, !tbaa !10
  %183 = sext i32 %182 to i64
  %184 = getelementptr inbounds [65537 x i32], ptr @z, i64 0, i64 %183
  store i32 %181, ptr %184, align 4, !tbaa !10
  br label %185

185:                                              ; preds = %168
  %186 = load i32, ptr %12, align 4, !tbaa !10
  %187 = add nsw i32 %186, 1
  store i32 %187, ptr %12, align 4, !tbaa !10
  br label %164, !llvm.loop !17

188:                                              ; preds = %167
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #4
  store i32 0, ptr %13, align 4, !tbaa !10
  br label %189

189:                                              ; preds = %220, %188
  %190 = load i32, ptr %13, align 4, !tbaa !10
  %191 = icmp slt i32 %190, 16
  br i1 %191, label %193, label %192

192:                                              ; preds = %189
  store i32 17, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #4
  br label %223

193:                                              ; preds = %189
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #4
  store i32 65535, ptr %14, align 4, !tbaa !10
  br label %194

194:                                              ; preds = %216, %193
  %195 = load i32, ptr %14, align 4, !tbaa !10
  %196 = icmp sge i32 %195, 0
  br i1 %196, label %198, label %197

197:                                              ; preds = %194
  store i32 20, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #4
  br label %219

198:                                              ; preds = %194
  %199 = load i32, ptr %14, align 4, !tbaa !10
  %200 = load i32, ptr %13, align 4, !tbaa !10
  %201 = shl i32 1, %200
  %202 = and i32 %199, %201
  %203 = icmp ne i32 %202, 0
  br i1 %203, label %204, label %215

204:                                              ; preds = %198
  %205 = load i32, ptr %14, align 4, !tbaa !10
  %206 = load i32, ptr %13, align 4, !tbaa !10
  %207 = shl i32 1, %206
  %208 = xor i32 %205, %207
  %209 = sext i32 %208 to i64
  %210 = getelementptr inbounds [65537 x i32], ptr @z, i64 0, i64 %209
  %211 = load i32, ptr %14, align 4, !tbaa !10
  %212 = sext i32 %211 to i64
  %213 = getelementptr inbounds [65537 x i32], ptr @z, i64 0, i64 %212
  %214 = load i32, ptr %213, align 4, !tbaa !10
  call void @_Z7mod_decRii(ptr noundef nonnull align 4 dereferenceable(4) %210, i32 noundef %214)
  br label %215

215:                                              ; preds = %204, %198
  br label %216

216:                                              ; preds = %215
  %217 = load i32, ptr %14, align 4, !tbaa !10
  %218 = add nsw i32 %217, -1
  store i32 %218, ptr %14, align 4, !tbaa !10
  br label %194, !llvm.loop !18

219:                                              ; preds = %197
  br label %220

220:                                              ; preds = %219
  %221 = load i32, ptr %13, align 4, !tbaa !10
  %222 = add nsw i32 %221, 1
  store i32 %222, ptr %13, align 4, !tbaa !10
  br label %189, !llvm.loop !19

223:                                              ; preds = %192
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #4
  store i32 0, ptr %15, align 4, !tbaa !10
  br label %224

224:                                              ; preds = %240, %223
  %225 = load i32, ptr %15, align 4, !tbaa !10
  %226 = icmp slt i32 %225, 65536
  br i1 %226, label %228, label %227

227:                                              ; preds = %224
  store i32 23, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #4
  br label %243

228:                                              ; preds = %224
  %229 = load i32, ptr %6, align 4, !tbaa !10
  %230 = sext i32 %229 to i64
  %231 = getelementptr inbounds [125 x %struct.Node], ptr @que, i64 0, i64 %230
  %232 = getelementptr inbounds %struct.Node, ptr %231, i32 0, i32 0
  %233 = load i32, ptr %15, align 4, !tbaa !10
  %234 = sext i32 %233 to i64
  %235 = getelementptr inbounds [65537 x i32], ptr %232, i64 0, i64 %234
  %236 = load i32, ptr %15, align 4, !tbaa !10
  %237 = sext i32 %236 to i64
  %238 = getelementptr inbounds [65537 x i32], ptr @z, i64 0, i64 %237
  %239 = load i32, ptr %238, align 4, !tbaa !10
  call void @_Z7mod_incRii(ptr noundef nonnull align 4 dereferenceable(4) %235, i32 noundef %239)
  br label %240

240:                                              ; preds = %228
  %241 = load i32, ptr %15, align 4, !tbaa !10
  %242 = add nsw i32 %241, 1
  store i32 %242, ptr %15, align 4, !tbaa !10
  br label %224, !llvm.loop !20

243:                                              ; preds = %227
  br label %244

244:                                              ; preds = %243, %79
  %245 = load i8, ptr %4, align 1, !tbaa !9
  %246 = sext i8 %245 to i32
  %247 = icmp eq i32 %246, 124
  br i1 %247, label %252, label %248

248:                                              ; preds = %244
  %249 = load i8, ptr %4, align 1, !tbaa !9
  %250 = sext i8 %249 to i32
  %251 = icmp eq i32 %250, 63
  br i1 %251, label %252, label %413

252:                                              ; preds = %248, %244
  %253 = load i32, ptr %3, align 4, !tbaa !10
  %254 = sext i32 %253 to i64
  %255 = getelementptr inbounds [125 x %struct.Node], ptr @que, i64 0, i64 %254
  %256 = getelementptr inbounds %struct.Node, ptr %255, i32 0, i32 0
  %257 = getelementptr inbounds [65537 x i32], ptr %256, i64 0, i64 0
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 @x, ptr align 4 %257, i64 262144, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #4
  store i32 0, ptr %16, align 4, !tbaa !10
  br label %258

258:                                              ; preds = %289, %252
  %259 = load i32, ptr %16, align 4, !tbaa !10
  %260 = icmp slt i32 %259, 16
  br i1 %260, label %262, label %261

261:                                              ; preds = %258
  store i32 26, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #4
  br label %292

262:                                              ; preds = %258
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #4
  store i32 0, ptr %17, align 4, !tbaa !10
  br label %263

263:                                              ; preds = %285, %262
  %264 = load i32, ptr %17, align 4, !tbaa !10
  %265 = icmp slt i32 %264, 65536
  br i1 %265, label %267, label %266

266:                                              ; preds = %263
  store i32 29, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #4
  br label %288

267:                                              ; preds = %263
  %268 = load i32, ptr %17, align 4, !tbaa !10
  %269 = load i32, ptr %16, align 4, !tbaa !10
  %270 = shl i32 1, %269
  %271 = and i32 %268, %270
  %272 = icmp ne i32 %271, 0
  br i1 %272, label %273, label %284

273:                                              ; preds = %267
  %274 = load i32, ptr %17, align 4, !tbaa !10
  %275 = sext i32 %274 to i64
  %276 = getelementptr inbounds [65537 x i32], ptr @x, i64 0, i64 %275
  %277 = load i32, ptr %17, align 4, !tbaa !10
  %278 = load i32, ptr %16, align 4, !tbaa !10
  %279 = shl i32 1, %278
  %280 = xor i32 %277, %279
  %281 = sext i32 %280 to i64
  %282 = getelementptr inbounds [65537 x i32], ptr @x, i64 0, i64 %281
  %283 = load i32, ptr %282, align 4, !tbaa !10
  call void @_Z7mod_incRii(ptr noundef nonnull align 4 dereferenceable(4) %276, i32 noundef %283)
  br label %284

284:                                              ; preds = %273, %267
  br label %285

285:                                              ; preds = %284
  %286 = load i32, ptr %17, align 4, !tbaa !10
  %287 = add nsw i32 %286, 1
  store i32 %287, ptr %17, align 4, !tbaa !10
  br label %263, !llvm.loop !21

288:                                              ; preds = %266
  br label %289

289:                                              ; preds = %288
  %290 = load i32, ptr %16, align 4, !tbaa !10
  %291 = add nsw i32 %290, 1
  store i32 %291, ptr %16, align 4, !tbaa !10
  br label %258, !llvm.loop !22

292:                                              ; preds = %261
  %293 = load i32, ptr %5, align 4, !tbaa !10
  %294 = sext i32 %293 to i64
  %295 = getelementptr inbounds [125 x %struct.Node], ptr @que, i64 0, i64 %294
  %296 = getelementptr inbounds %struct.Node, ptr %295, i32 0, i32 0
  %297 = getelementptr inbounds [65537 x i32], ptr %296, i64 0, i64 0
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 @y, ptr align 4 %297, i64 262144, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #4
  store i32 0, ptr %18, align 4, !tbaa !10
  br label %298

298:                                              ; preds = %329, %292
  %299 = load i32, ptr %18, align 4, !tbaa !10
  %300 = icmp slt i32 %299, 16
  br i1 %300, label %302, label %301

301:                                              ; preds = %298
  store i32 32, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #4
  br label %332

302:                                              ; preds = %298
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #4
  store i32 0, ptr %19, align 4, !tbaa !10
  br label %303

303:                                              ; preds = %325, %302
  %304 = load i32, ptr %19, align 4, !tbaa !10
  %305 = icmp slt i32 %304, 65536
  br i1 %305, label %307, label %306

306:                                              ; preds = %303
  store i32 35, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #4
  br label %328

307:                                              ; preds = %303
  %308 = load i32, ptr %19, align 4, !tbaa !10
  %309 = load i32, ptr %18, align 4, !tbaa !10
  %310 = shl i32 1, %309
  %311 = and i32 %308, %310
  %312 = icmp ne i32 %311, 0
  br i1 %312, label %313, label %324

313:                                              ; preds = %307
  %314 = load i32, ptr %19, align 4, !tbaa !10
  %315 = sext i32 %314 to i64
  %316 = getelementptr inbounds [65537 x i32], ptr @y, i64 0, i64 %315
  %317 = load i32, ptr %19, align 4, !tbaa !10
  %318 = load i32, ptr %18, align 4, !tbaa !10
  %319 = shl i32 1, %318
  %320 = xor i32 %317, %319
  %321 = sext i32 %320 to i64
  %322 = getelementptr inbounds [65537 x i32], ptr @y, i64 0, i64 %321
  %323 = load i32, ptr %322, align 4, !tbaa !10
  call void @_Z7mod_incRii(ptr noundef nonnull align 4 dereferenceable(4) %316, i32 noundef %323)
  br label %324

324:                                              ; preds = %313, %307
  br label %325

325:                                              ; preds = %324
  %326 = load i32, ptr %19, align 4, !tbaa !10
  %327 = add nsw i32 %326, 1
  store i32 %327, ptr %19, align 4, !tbaa !10
  br label %303, !llvm.loop !23

328:                                              ; preds = %306
  br label %329

329:                                              ; preds = %328
  %330 = load i32, ptr %18, align 4, !tbaa !10
  %331 = add nsw i32 %330, 1
  store i32 %331, ptr %18, align 4, !tbaa !10
  br label %298, !llvm.loop !24

332:                                              ; preds = %301
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #4
  store i32 0, ptr %20, align 4, !tbaa !10
  br label %333

333:                                              ; preds = %354, %332
  %334 = load i32, ptr %20, align 4, !tbaa !10
  %335 = icmp slt i32 %334, 65536
  br i1 %335, label %337, label %336

336:                                              ; preds = %333
  store i32 38, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #4
  br label %357

337:                                              ; preds = %333
  %338 = load i32, ptr %20, align 4, !tbaa !10
  %339 = sext i32 %338 to i64
  %340 = getelementptr inbounds [65537 x i32], ptr @x, i64 0, i64 %339
  %341 = load i32, ptr %340, align 4, !tbaa !10
  %342 = sext i32 %341 to i64
  %343 = load i32, ptr %20, align 4, !tbaa !10
  %344 = sext i32 %343 to i64
  %345 = getelementptr inbounds [65537 x i32], ptr @y, i64 0, i64 %344
  %346 = load i32, ptr %345, align 4, !tbaa !10
  %347 = sext i32 %346 to i64
  %348 = mul nsw i64 %342, %347
  %349 = srem i64 %348, 1000000007
  %350 = trunc i64 %349 to i32
  %351 = load i32, ptr %20, align 4, !tbaa !10
  %352 = sext i32 %351 to i64
  %353 = getelementptr inbounds [65537 x i32], ptr @z, i64 0, i64 %352
  store i32 %350, ptr %353, align 4, !tbaa !10
  br label %354

354:                                              ; preds = %337
  %355 = load i32, ptr %20, align 4, !tbaa !10
  %356 = add nsw i32 %355, 1
  store i32 %356, ptr %20, align 4, !tbaa !10
  br label %333, !llvm.loop !25

357:                                              ; preds = %336
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #4
  store i32 0, ptr %21, align 4, !tbaa !10
  br label %358

358:                                              ; preds = %389, %357
  %359 = load i32, ptr %21, align 4, !tbaa !10
  %360 = icmp slt i32 %359, 16
  br i1 %360, label %362, label %361

361:                                              ; preds = %358
  store i32 41, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #4
  br label %392

362:                                              ; preds = %358
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #4
  store i32 0, ptr %22, align 4, !tbaa !10
  br label %363

363:                                              ; preds = %385, %362
  %364 = load i32, ptr %22, align 4, !tbaa !10
  %365 = icmp slt i32 %364, 65536
  br i1 %365, label %367, label %366

366:                                              ; preds = %363
  store i32 44, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #4
  br label %388

367:                                              ; preds = %363
  %368 = load i32, ptr %22, align 4, !tbaa !10
  %369 = load i32, ptr %21, align 4, !tbaa !10
  %370 = shl i32 1, %369
  %371 = and i32 %368, %370
  %372 = icmp ne i32 %371, 0
  br i1 %372, label %373, label %384

373:                                              ; preds = %367
  %374 = load i32, ptr %22, align 4, !tbaa !10
  %375 = sext i32 %374 to i64
  %376 = getelementptr inbounds [65537 x i32], ptr @z, i64 0, i64 %375
  %377 = load i32, ptr %22, align 4, !tbaa !10
  %378 = load i32, ptr %21, align 4, !tbaa !10
  %379 = shl i32 1, %378
  %380 = xor i32 %377, %379
  %381 = sext i32 %380 to i64
  %382 = getelementptr inbounds [65537 x i32], ptr @z, i64 0, i64 %381
  %383 = load i32, ptr %382, align 4, !tbaa !10
  call void @_Z7mod_decRii(ptr noundef nonnull align 4 dereferenceable(4) %376, i32 noundef %383)
  br label %384

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

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

388:                                              ; preds = %366
  br label %389

389:                                              ; preds = %388
  %390 = load i32, ptr %21, align 4, !tbaa !10
  %391 = add nsw i32 %390, 1
  store i32 %391, ptr %21, align 4, !tbaa !10
  br label %358, !llvm.loop !27

392:                                              ; preds = %361
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #4
  store i32 0, ptr %23, align 4, !tbaa !10
  br label %393

393:                                              ; preds = %409, %392
  %394 = load i32, ptr %23, align 4, !tbaa !10
  %395 = icmp slt i32 %394, 65536
  br i1 %395, label %397, label %396

396:                                              ; preds = %393
  store i32 47, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #4
  br label %412

397:                                              ; preds = %393
  %398 = load i32, ptr %6, align 4, !tbaa !10
  %399 = sext i32 %398 to i64
  %400 = getelementptr inbounds [125 x %struct.Node], ptr @que, i64 0, i64 %399
  %401 = getelementptr inbounds %struct.Node, ptr %400, i32 0, i32 0
  %402 = load i32, ptr %23, align 4, !tbaa !10
  %403 = sext i32 %402 to i64
  %404 = getelementptr inbounds [65537 x i32], ptr %401, i64 0, i64 %403
  %405 = load i32, ptr %23, align 4, !tbaa !10
  %406 = sext i32 %405 to i64
  %407 = getelementptr inbounds [65537 x i32], ptr @z, i64 0, i64 %406
  %408 = load i32, ptr %407, align 4, !tbaa !10
  call void @_Z7mod_incRii(ptr noundef nonnull align 4 dereferenceable(4) %404, i32 noundef %408)
  br label %409

409:                                              ; preds = %397
  %410 = load i32, ptr %23, align 4, !tbaa !10
  %411 = add nsw i32 %410, 1
  store i32 %411, ptr %23, align 4, !tbaa !10
  br label %393, !llvm.loop !28

412:                                              ; preds = %396
  br label %413

413:                                              ; preds = %412, %248
  %414 = load i32, ptr %6, align 4, !tbaa !10
  store i32 %414, ptr %1, align 4
  store i32 1, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %5) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %4) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %3) #4
  br label %415

415:                                              ; preds = %413, %56
  %416 = load i32, ptr %1, align 4
  ret i32 %416
}

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

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

; 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) #2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_Z7mod_incRii(ptr noundef nonnull align 4 dereferenceable(4), i32 noundef) #3

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_Z7mod_decRii(ptr noundef nonnull align 4 dereferenceable(4), i32 noundef) #3

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

!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++ TBAA"}
!9 = !{!7, !7, i64 0}
!10 = !{!11, !11, i64 0}
!11 = !{!"int", !7, i64 0}
!12 = distinct !{!12, !13}
!13 = !{!"llvm.loop.mustprogress"}
!14 = distinct !{!14, !13}
!15 = distinct !{!15, !13}
!16 = distinct !{!16, !13}
!17 = distinct !{!17, !13}
!18 = distinct !{!18, !13}
!19 = distinct !{!19, !13}
!20 = distinct !{!20, !13}
!21 = distinct !{!21, !13}
!22 = distinct !{!22, !13}
!23 = distinct !{!23, !13}
!24 = distinct !{!24, !13}
!25 = distinct !{!25, !13}
!26 = distinct !{!26, !13}
!27 = distinct !{!27, !13}
!28 = distinct !{!28, !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.Node = type { [65537 x i32] }

@qtot = external dso_local local_unnamed_addr global i32, align 4
@que = external dso_local global [125 x %struct.Node], align 16
@x = external dso_local global %struct.Node, align 4
@y = external dso_local global %struct.Node, align 4
@z = external dso_local global %struct.Node, align 4
@ptr = external dso_local local_unnamed_addr global ptr, align 8

; Function Attrs: mustprogress nounwind uwtable
define dso_local noundef i32 @_Z10expressionv() local_unnamed_addr #0 {
  %1 = load ptr, ptr @ptr, align 8, !tbaa !5
  %2 = load i8, ptr %1, align 1, !tbaa !9
  switch i8 %2, label %3 [
    i8 40, label %12
    i8 63, label %10
  ]

3:                                                ; preds = %0
  %4 = add i8 %2, -65
  %or.cond114 = icmp ult i8 %4, 4
  br i1 %or.cond114, label %5, label %7

5:                                                ; preds = %3
  %6 = zext nneg i8 %4 to i32
  br label %10

7:                                                ; preds = %3
  %8 = sext i8 %2 to i32
  %9 = add nsw i32 %8, -93
  br label %10

10:                                               ; preds = %0, %5, %7
  %.0106 = phi i32 [ %6, %5 ], [ %9, %7 ], [ 8, %0 ]
  %11 = getelementptr inbounds i8, ptr %1, i64 1
  store ptr %11, ptr @ptr, align 8, !tbaa !5
  br label %.loopexit

12:                                               ; preds = %0
  %13 = getelementptr inbounds i8, ptr %1, i64 1
  store ptr %13, ptr @ptr, align 8, !tbaa !5
  %14 = tail call noundef i32 @_Z10expressionv()
  %15 = load ptr, ptr @ptr, align 8, !tbaa !5
  %16 = getelementptr inbounds i8, ptr %15, i64 1
  %17 = getelementptr inbounds i8, ptr %15, i64 2
  store ptr %17, ptr @ptr, align 8, !tbaa !5
  %18 = load i8, ptr %16, align 1, !tbaa !9
  %19 = getelementptr inbounds i8, ptr %15, i64 3
  store ptr %19, ptr @ptr, align 8, !tbaa !5
  %20 = tail call noundef i32 @_Z10expressionv()
  %21 = load ptr, ptr @ptr, align 8, !tbaa !5
  %22 = getelementptr inbounds i8, ptr %21, i64 1
  store ptr %22, ptr @ptr, align 8, !tbaa !5
  %23 = load i32, ptr @qtot, align 4, !tbaa !10
  %24 = add nsw i32 %23, 1
  store i32 %24, ptr @qtot, align 4, !tbaa !10
  switch i8 %18, label %.loopexit [
    i8 63, label %.preheader125
    i8 38, label %.preheader125
    i8 124, label %..preheader119_crit_edge
  ]

..preheader119_crit_edge:                         ; preds = %12
  %.pre = sext i32 %14 to i64
  br label %.preheader119

.preheader125:                                    ; preds = %12, %12
  %25 = sext i32 %14 to i64
  %26 = getelementptr inbounds [125 x %struct.Node], ptr @que, i64 0, i64 %25
  tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(262144) @x, ptr noundef nonnull align 4 dereferenceable(262144) %26, i64 262144, i1 false)
  br label %134

.preheader125.1:                                  ; preds = %141, %33
  %indvars.iv.1 = phi i64 [ %indvars.iv.next.1, %33 ], [ 65535, %141 ]
  %27 = and i64 %indvars.iv.1, 2
  %.not113.1 = icmp eq i64 %27, 0
  br i1 %.not113.1, label %33, label %28

28:                                               ; preds = %.preheader125.1
  %29 = and i64 %indvars.iv.1, 4294967293
  %30 = getelementptr inbounds [65537 x i32], ptr @x, i64 0, i64 %29
  %31 = getelementptr inbounds [65537 x i32], ptr @x, i64 0, i64 %indvars.iv.1
  %32 = load i32, ptr %31, align 4, !tbaa !10
  tail call void @_Z7mod_incRii(ptr noundef nonnull align 4 dereferenceable(4) %30, i32 noundef %32)
  br label %33

33:                                               ; preds = %28, %.preheader125.1
  %indvars.iv.next.1 = add nsw i64 %indvars.iv.1, -1
  %.not180 = icmp eq i64 %indvars.iv.1, 0
  br i1 %.not180, label %.preheader125.2, label %.preheader125.1, !llvm.loop !12

.preheader125.2:                                  ; preds = %33, %40
  %indvars.iv.2 = phi i64 [ %indvars.iv.next.2, %40 ], [ 65535, %33 ]
  %34 = and i64 %indvars.iv.2, 4
  %.not113.2 = icmp eq i64 %34, 0
  br i1 %.not113.2, label %40, label %35

35:                                               ; preds = %.preheader125.2
  %36 = and i64 %indvars.iv.2, 4294967291
  %37 = getelementptr inbounds [65537 x i32], ptr @x, i64 0, i64 %36
  %38 = getelementptr inbounds [65537 x i32], ptr @x, i64 0, i64 %indvars.iv.2
  %39 = load i32, ptr %38, align 4, !tbaa !10
  tail call void @_Z7mod_incRii(ptr noundef nonnull align 4 dereferenceable(4) %37, i32 noundef %39)
  br label %40

40:                                               ; preds = %35, %.preheader125.2
  %indvars.iv.next.2 = add nsw i64 %indvars.iv.2, -1
  %.not181 = icmp eq i64 %indvars.iv.2, 0
  br i1 %.not181, label %.preheader125.3, label %.preheader125.2, !llvm.loop !12

.preheader125.3:                                  ; preds = %40, %47
  %indvars.iv.3 = phi i64 [ %indvars.iv.next.3, %47 ], [ 65535, %40 ]
  %41 = and i64 %indvars.iv.3, 8
  %.not113.3 = icmp eq i64 %41, 0
  br i1 %.not113.3, label %47, label %42

42:                                               ; preds = %.preheader125.3
  %43 = and i64 %indvars.iv.3, 4294967287
  %44 = getelementptr inbounds [65537 x i32], ptr @x, i64 0, i64 %43
  %45 = getelementptr inbounds [65537 x i32], ptr @x, i64 0, i64 %indvars.iv.3
  %46 = load i32, ptr %45, align 4, !tbaa !10
  tail call void @_Z7mod_incRii(ptr noundef nonnull align 4 dereferenceable(4) %44, i32 noundef %46)
  br label %47

47:                                               ; preds = %42, %.preheader125.3
  %indvars.iv.next.3 = add nsw i64 %indvars.iv.3, -1
  %.not182 = icmp eq i64 %indvars.iv.3, 0
  br i1 %.not182, label %.preheader125.4, label %.preheader125.3, !llvm.loop !12

.preheader125.4:                                  ; preds = %47, %54
  %indvars.iv.4 = phi i64 [ %indvars.iv.next.4, %54 ], [ 65535, %47 ]
  %48 = and i64 %indvars.iv.4, 16
  %.not113.4 = icmp eq i64 %48, 0
  br i1 %.not113.4, label %54, label %49

49:                                               ; preds = %.preheader125.4
  %50 = and i64 %indvars.iv.4, 4294967279
  %51 = getelementptr inbounds [65537 x i32], ptr @x, i64 0, i64 %50
  %52 = getelementptr inbounds [65537 x i32], ptr @x, i64 0, i64 %indvars.iv.4
  %53 = load i32, ptr %52, align 4, !tbaa !10
  tail call void @_Z7mod_incRii(ptr noundef nonnull align 4 dereferenceable(4) %51, i32 noundef %53)
  br label %54

54:                                               ; preds = %49, %.preheader125.4
  %indvars.iv.next.4 = add nsw i64 %indvars.iv.4, -1
  %.not183 = icmp eq i64 %indvars.iv.4, 0
  br i1 %.not183, label %.preheader125.5, label %.preheader125.4, !llvm.loop !12

.preheader125.5:                                  ; preds = %54, %61
  %indvars.iv.5 = phi i64 [ %indvars.iv.next.5, %61 ], [ 65535, %54 ]
  %55 = and i64 %indvars.iv.5, 32
  %.not113.5 = icmp eq i64 %55, 0
  br i1 %.not113.5, label %61, label %56

56:                                               ; preds = %.preheader125.5
  %57 = and i64 %indvars.iv.5, 4294967263
  %58 = getelementptr inbounds [65537 x i32], ptr @x, i64 0, i64 %57
  %59 = getelementptr inbounds [65537 x i32], ptr @x, i64 0, i64 %indvars.iv.5
  %60 = load i32, ptr %59, align 4, !tbaa !10
  tail call void @_Z7mod_incRii(ptr noundef nonnull align 4 dereferenceable(4) %58, i32 noundef %60)
  br label %61

61:                                               ; preds = %56, %.preheader125.5
  %indvars.iv.next.5 = add nsw i64 %indvars.iv.5, -1
  %.not184 = icmp eq i64 %indvars.iv.5, 0
  br i1 %.not184, label %.preheader125.6, label %.preheader125.5, !llvm.loop !12

.preheader125.6:                                  ; preds = %61, %68
  %indvars.iv.6 = phi i64 [ %indvars.iv.next.6, %68 ], [ 65535, %61 ]
  %62 = and i64 %indvars.iv.6, 64
  %.not113.6 = icmp eq i64 %62, 0
  br i1 %.not113.6, label %68, label %63

63:                                               ; preds = %.preheader125.6
  %64 = and i64 %indvars.iv.6, 4294967231
  %65 = getelementptr inbounds [65537 x i32], ptr @x, i64 0, i64 %64
  %66 = getelementptr inbounds [65537 x i32], ptr @x, i64 0, i64 %indvars.iv.6
  %67 = load i32, ptr %66, align 4, !tbaa !10
  tail call void @_Z7mod_incRii(ptr noundef nonnull align 4 dereferenceable(4) %65, i32 noundef %67)
  br label %68

68:                                               ; preds = %63, %.preheader125.6
  %indvars.iv.next.6 = add nsw i64 %indvars.iv.6, -1
  %.not185 = icmp eq i64 %indvars.iv.6, 0
  br i1 %.not185, label %.preheader125.7, label %.preheader125.6, !llvm.loop !12

.preheader125.7:                                  ; preds = %68, %75
  %indvars.iv.7 = phi i64 [ %indvars.iv.next.7, %75 ], [ 65535, %68 ]
  %69 = and i64 %indvars.iv.7, 128
  %.not113.7 = icmp eq i64 %69, 0
  br i1 %.not113.7, label %75, label %70

70:                                               ; preds = %.preheader125.7
  %71 = and i64 %indvars.iv.7, 4294967167
  %72 = getelementptr inbounds [65537 x i32], ptr @x, i64 0, i64 %71
  %73 = getelementptr inbounds [65537 x i32], ptr @x, i64 0, i64 %indvars.iv.7
  %74 = load i32, ptr %73, align 4, !tbaa !10
  tail call void @_Z7mod_incRii(ptr noundef nonnull align 4 dereferenceable(4) %72, i32 noundef %74)
  br label %75

75:                                               ; preds = %70, %.preheader125.7
  %indvars.iv.next.7 = add nsw i64 %indvars.iv.7, -1
  %.not186 = icmp eq i64 %indvars.iv.7, 0
  br i1 %.not186, label %.preheader125.8, label %.preheader125.7, !llvm.loop !12

.preheader125.8:                                  ; preds = %75, %82
  %indvars.iv.8 = phi i64 [ %indvars.iv.next.8, %82 ], [ 65535, %75 ]
  %76 = and i64 %indvars.iv.8, 256
  %.not113.8 = icmp eq i64 %76, 0
  br i1 %.not113.8, label %82, label %77

77:                                               ; preds = %.preheader125.8
  %78 = and i64 %indvars.iv.8, 4294967039
  %79 = getelementptr inbounds [65537 x i32], ptr @x, i64 0, i64 %78
  %80 = getelementptr inbounds [65537 x i32], ptr @x, i64 0, i64 %indvars.iv.8
  %81 = load i32, ptr %80, align 4, !tbaa !10
  tail call void @_Z7mod_incRii(ptr noundef nonnull align 4 dereferenceable(4) %79, i32 noundef %81)
  br label %82

82:                                               ; preds = %77, %.preheader125.8
  %indvars.iv.next.8 = add nsw i64 %indvars.iv.8, -1
  %.not187 = icmp eq i64 %indvars.iv.8, 0
  br i1 %.not187, label %.preheader125.9, label %.preheader125.8, !llvm.loop !12

.preheader125.9:                                  ; preds = %82, %89
  %indvars.iv.9 = phi i64 [ %indvars.iv.next.9, %89 ], [ 65535, %82 ]
  %83 = and i64 %indvars.iv.9, 512
  %.not113.9 = icmp eq i64 %83, 0
  br i1 %.not113.9, label %89, label %84

84:                                               ; preds = %.preheader125.9
  %85 = and i64 %indvars.iv.9, 4294966783
  %86 = getelementptr inbounds [65537 x i32], ptr @x, i64 0, i64 %85
  %87 = getelementptr inbounds [65537 x i32], ptr @x, i64 0, i64 %indvars.iv.9
  %88 = load i32, ptr %87, align 4, !tbaa !10
  tail call void @_Z7mod_incRii(ptr noundef nonnull align 4 dereferenceable(4) %86, i32 noundef %88)
  br label %89

89:                                               ; preds = %84, %.preheader125.9
  %indvars.iv.next.9 = add nsw i64 %indvars.iv.9, -1
  %.not188 = icmp eq i64 %indvars.iv.9, 0
  br i1 %.not188, label %.preheader125.10, label %.preheader125.9, !llvm.loop !12

.preheader125.10:                                 ; preds = %89, %96
  %indvars.iv.10 = phi i64 [ %indvars.iv.next.10, %96 ], [ 65535, %89 ]
  %90 = and i64 %indvars.iv.10, 1024
  %.not113.10 = icmp eq i64 %90, 0
  br i1 %.not113.10, label %96, label %91

91:                                               ; preds = %.preheader125.10
  %92 = and i64 %indvars.iv.10, 4294966271
  %93 = getelementptr inbounds [65537 x i32], ptr @x, i64 0, i64 %92
  %94 = getelementptr inbounds [65537 x i32], ptr @x, i64 0, i64 %indvars.iv.10
  %95 = load i32, ptr %94, align 4, !tbaa !10
  tail call void @_Z7mod_incRii(ptr noundef nonnull align 4 dereferenceable(4) %93, i32 noundef %95)
  br label %96

96:                                               ; preds = %91, %.preheader125.10
  %indvars.iv.next.10 = add nsw i64 %indvars.iv.10, -1
  %.not189 = icmp eq i64 %indvars.iv.10, 0
  br i1 %.not189, label %.preheader125.11, label %.preheader125.10, !llvm.loop !12

.preheader125.11:                                 ; preds = %96, %103
  %indvars.iv.11 = phi i64 [ %indvars.iv.next.11, %103 ], [ 65535, %96 ]
  %97 = and i64 %indvars.iv.11, 2048
  %.not113.11 = icmp eq i64 %97, 0
  br i1 %.not113.11, label %103, label %98

98:                                               ; preds = %.preheader125.11
  %99 = and i64 %indvars.iv.11, 4294965247
  %100 = getelementptr inbounds [65537 x i32], ptr @x, i64 0, i64 %99
  %101 = getelementptr inbounds [65537 x i32], ptr @x, i64 0, i64 %indvars.iv.11
  %102 = load i32, ptr %101, align 4, !tbaa !10
  tail call void @_Z7mod_incRii(ptr noundef nonnull align 4 dereferenceable(4) %100, i32 noundef %102)
  br label %103

103:                                              ; preds = %98, %.preheader125.11
  %indvars.iv.next.11 = add nsw i64 %indvars.iv.11, -1
  %.not190 = icmp eq i64 %indvars.iv.11, 0
  br i1 %.not190, label %.preheader125.12, label %.preheader125.11, !llvm.loop !12

.preheader125.12:                                 ; preds = %103, %110
  %indvars.iv.12 = phi i64 [ %indvars.iv.next.12, %110 ], [ 65535, %103 ]
  %104 = and i64 %indvars.iv.12, 4096
  %.not113.12 = icmp eq i64 %104, 0
  br i1 %.not113.12, label %110, label %105

105:                                              ; preds = %.preheader125.12
  %106 = and i64 %indvars.iv.12, 4294963199
  %107 = getelementptr inbounds [65537 x i32], ptr @x, i64 0, i64 %106
  %108 = getelementptr inbounds [65537 x i32], ptr @x, i64 0, i64 %indvars.iv.12
  %109 = load i32, ptr %108, align 4, !tbaa !10
  tail call void @_Z7mod_incRii(ptr noundef nonnull align 4 dereferenceable(4) %107, i32 noundef %109)
  br label %110

110:                                              ; preds = %105, %.preheader125.12
  %indvars.iv.next.12 = add nsw i64 %indvars.iv.12, -1
  %.not191 = icmp eq i64 %indvars.iv.12, 0
  br i1 %.not191, label %.preheader125.13, label %.preheader125.12, !llvm.loop !12

.preheader125.13:                                 ; preds = %110, %117
  %indvars.iv.13 = phi i64 [ %indvars.iv.next.13, %117 ], [ 65535, %110 ]
  %111 = and i64 %indvars.iv.13, 8192
  %.not113.13 = icmp eq i64 %111, 0
  br i1 %.not113.13, label %117, label %112

112:                                              ; preds = %.preheader125.13
  %113 = and i64 %indvars.iv.13, 4294959103
  %114 = getelementptr inbounds [65537 x i32], ptr @x, i64 0, i64 %113
  %115 = getelementptr inbounds [65537 x i32], ptr @x, i64 0, i64 %indvars.iv.13
  %116 = load i32, ptr %115, align 4, !tbaa !10
  tail call void @_Z7mod_incRii(ptr noundef nonnull align 4 dereferenceable(4) %114, i32 noundef %116)
  br label %117

117:                                              ; preds = %112, %.preheader125.13
  %indvars.iv.next.13 = add nsw i64 %indvars.iv.13, -1
  %.not192 = icmp eq i64 %indvars.iv.13, 0
  br i1 %.not192, label %.preheader125.14, label %.preheader125.13, !llvm.loop !12

.preheader125.14:                                 ; preds = %117, %124
  %indvars.iv.14 = phi i64 [ %indvars.iv.next.14, %124 ], [ 65535, %117 ]
  %118 = and i64 %indvars.iv.14, 16384
  %.not113.14 = icmp eq i64 %118, 0
  br i1 %.not113.14, label %124, label %119

119:                                              ; preds = %.preheader125.14
  %120 = and i64 %indvars.iv.14, 4294950911
  %121 = getelementptr inbounds [65537 x i32], ptr @x, i64 0, i64 %120
  %122 = getelementptr inbounds [65537 x i32], ptr @x, i64 0, i64 %indvars.iv.14
  %123 = load i32, ptr %122, align 4, !tbaa !10
  tail call void @_Z7mod_incRii(ptr noundef nonnull align 4 dereferenceable(4) %121, i32 noundef %123)
  br label %124

124:                                              ; preds = %119, %.preheader125.14
  %indvars.iv.next.14 = add nsw i64 %indvars.iv.14, -1
  %.not193 = icmp eq i64 %indvars.iv.14, 0
  br i1 %.not193, label %.preheader125.15, label %.preheader125.14, !llvm.loop !12

.preheader125.15:                                 ; preds = %124, %131
  %indvars.iv.15 = phi i64 [ %indvars.iv.next.15, %131 ], [ 65535, %124 ]
  %125 = and i64 %indvars.iv.15, 32768
  %.not113.15 = icmp eq i64 %125, 0
  br i1 %.not113.15, label %131, label %126

126:                                              ; preds = %.preheader125.15
  %127 = and i64 %indvars.iv.15, 4294934527
  %128 = getelementptr inbounds [65537 x i32], ptr @x, i64 0, i64 %127
  %129 = getelementptr inbounds [65537 x i32], ptr @x, i64 0, i64 %indvars.iv.15
  %130 = load i32, ptr %129, align 4, !tbaa !10
  tail call void @_Z7mod_incRii(ptr noundef nonnull align 4 dereferenceable(4) %128, i32 noundef %130)
  br label %131

131:                                              ; preds = %126, %.preheader125.15
  %indvars.iv.next.15 = add nsw i64 %indvars.iv.15, -1
  %.not194 = icmp eq i64 %indvars.iv.15, 0
  br i1 %.not194, label %.preheader124, label %.preheader125.15, !llvm.loop !12

.preheader124:                                    ; preds = %131
  %132 = sext i32 %20 to i64
  %133 = getelementptr inbounds [125 x %struct.Node], ptr @que, i64 0, i64 %132
  tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(262144) @y, ptr noundef nonnull align 4 dereferenceable(262144) %133, i64 262144, i1 false)
  br label %247

134:                                              ; preds = %.preheader125, %141
  %indvars.iv = phi i64 [ 65535, %.preheader125 ], [ %indvars.iv.next, %141 ]
  %135 = and i64 %indvars.iv, 1
  %.not113 = icmp eq i64 %135, 0
  br i1 %.not113, label %141, label %136

136:                                              ; preds = %134
  %137 = and i64 %indvars.iv, 4294967294
  %138 = getelementptr inbounds [65537 x i32], ptr @x, i64 0, i64 %137
  %139 = getelementptr inbounds [65537 x i32], ptr @x, i64 0, i64 %indvars.iv
  %140 = load i32, ptr %139, align 4, !tbaa !10
  tail call void @_Z7mod_incRii(ptr noundef nonnull align 4 dereferenceable(4) %138, i32 noundef %140)
  br label %141

141:                                              ; preds = %134, %136
  %indvars.iv.next = add nsw i64 %indvars.iv, -1
  %.not = icmp eq i64 %indvars.iv, 0
  br i1 %.not, label %.preheader125.1, label %134, !llvm.loop !12

.preheader124.1:                                  ; preds = %254, %148
  %indvars.iv143.1 = phi i64 [ %indvars.iv.next144.1, %148 ], [ 65535, %254 ]
  %142 = and i64 %indvars.iv143.1, 2
  %.not112.1 = icmp eq i64 %142, 0
  br i1 %.not112.1, label %148, label %143

143:                                              ; preds = %.preheader124.1
  %144 = and i64 %indvars.iv143.1, 4294967293
  %145 = getelementptr inbounds [65537 x i32], ptr @y, i64 0, i64 %144
  %146 = getelementptr inbounds [65537 x i32], ptr @y, i64 0, i64 %indvars.iv143.1
  %147 = load i32, ptr %146, align 4, !tbaa !10
  tail call void @_Z7mod_incRii(ptr noundef nonnull align 4 dereferenceable(4) %145, i32 noundef %147)
  br label %148

148:                                              ; preds = %143, %.preheader124.1
  %indvars.iv.next144.1 = add nsw i64 %indvars.iv143.1, -1
  %.not196 = icmp eq i64 %indvars.iv143.1, 0
  br i1 %.not196, label %.preheader124.2, label %.preheader124.1, !llvm.loop !14

.preheader124.2:                                  ; preds = %148, %155
  %indvars.iv143.2 = phi i64 [ %indvars.iv.next144.2, %155 ], [ 65535, %148 ]
  %149 = and i64 %indvars.iv143.2, 4
  %.not112.2 = icmp eq i64 %149, 0
  br i1 %.not112.2, label %155, label %150

150:                                              ; preds = %.preheader124.2
  %151 = and i64 %indvars.iv143.2, 4294967291
  %152 = getelementptr inbounds [65537 x i32], ptr @y, i64 0, i64 %151
  %153 = getelementptr inbounds [65537 x i32], ptr @y, i64 0, i64 %indvars.iv143.2
  %154 = load i32, ptr %153, align 4, !tbaa !10
  tail call void @_Z7mod_incRii(ptr noundef nonnull align 4 dereferenceable(4) %152, i32 noundef %154)
  br label %155

155:                                              ; preds = %150, %.preheader124.2
  %indvars.iv.next144.2 = add nsw i64 %indvars.iv143.2, -1
  %.not197 = icmp eq i64 %indvars.iv143.2, 0
  br i1 %.not197, label %.preheader124.3, label %.preheader124.2, !llvm.loop !14

.preheader124.3:                                  ; preds = %155, %162
  %indvars.iv143.3 = phi i64 [ %indvars.iv.next144.3, %162 ], [ 65535, %155 ]
  %156 = and i64 %indvars.iv143.3, 8
  %.not112.3 = icmp eq i64 %156, 0
  br i1 %.not112.3, label %162, label %157

157:                                              ; preds = %.preheader124.3
  %158 = and i64 %indvars.iv143.3, 4294967287
  %159 = getelementptr inbounds [65537 x i32], ptr @y, i64 0, i64 %158
  %160 = getelementptr inbounds [65537 x i32], ptr @y, i64 0, i64 %indvars.iv143.3
  %161 = load i32, ptr %160, align 4, !tbaa !10
  tail call void @_Z7mod_incRii(ptr noundef nonnull align 4 dereferenceable(4) %159, i32 noundef %161)
  br label %162

162:                                              ; preds = %157, %.preheader124.3
  %indvars.iv.next144.3 = add nsw i64 %indvars.iv143.3, -1
  %.not198 = icmp eq i64 %indvars.iv143.3, 0
  br i1 %.not198, label %.preheader124.4, label %.preheader124.3, !llvm.loop !14

.preheader124.4:                                  ; preds = %162, %169
  %indvars.iv143.4 = phi i64 [ %indvars.iv.next144.4, %169 ], [ 65535, %162 ]
  %163 = and i64 %indvars.iv143.4, 16
  %.not112.4 = icmp eq i64 %163, 0
  br i1 %.not112.4, label %169, label %164

164:                                              ; preds = %.preheader124.4
  %165 = and i64 %indvars.iv143.4, 4294967279
  %166 = getelementptr inbounds [65537 x i32], ptr @y, i64 0, i64 %165
  %167 = getelementptr inbounds [65537 x i32], ptr @y, i64 0, i64 %indvars.iv143.4
  %168 = load i32, ptr %167, align 4, !tbaa !10
  tail call void @_Z7mod_incRii(ptr noundef nonnull align 4 dereferenceable(4) %166, i32 noundef %168)
  br label %169

169:                                              ; preds = %164, %.preheader124.4
  %indvars.iv.next144.4 = add nsw i64 %indvars.iv143.4, -1
  %.not199 = icmp eq i64 %indvars.iv143.4, 0
  br i1 %.not199, label %.preheader124.5, label %.preheader124.4, !llvm.loop !14

.preheader124.5:                                  ; preds = %169, %176
  %indvars.iv143.5 = phi i64 [ %indvars.iv.next144.5, %176 ], [ 65535, %169 ]
  %170 = and i64 %indvars.iv143.5, 32
  %.not112.5 = icmp eq i64 %170, 0
  br i1 %.not112.5, label %176, label %171

171:                                              ; preds = %.preheader124.5
  %172 = and i64 %indvars.iv143.5, 4294967263
  %173 = getelementptr inbounds [65537 x i32], ptr @y, i64 0, i64 %172
  %174 = getelementptr inbounds [65537 x i32], ptr @y, i64 0, i64 %indvars.iv143.5
  %175 = load i32, ptr %174, align 4, !tbaa !10
  tail call void @_Z7mod_incRii(ptr noundef nonnull align 4 dereferenceable(4) %173, i32 noundef %175)
  br label %176

176:                                              ; preds = %171, %.preheader124.5
  %indvars.iv.next144.5 = add nsw i64 %indvars.iv143.5, -1
  %.not200 = icmp eq i64 %indvars.iv143.5, 0
  br i1 %.not200, label %.preheader124.6, label %.preheader124.5, !llvm.loop !14

.preheader124.6:                                  ; preds = %176, %183
  %indvars.iv143.6 = phi i64 [ %indvars.iv.next144.6, %183 ], [ 65535, %176 ]
  %177 = and i64 %indvars.iv143.6, 64
  %.not112.6 = icmp eq i64 %177, 0
  br i1 %.not112.6, label %183, label %178

178:                                              ; preds = %.preheader124.6
  %179 = and i64 %indvars.iv143.6, 4294967231
  %180 = getelementptr inbounds [65537 x i32], ptr @y, i64 0, i64 %179
  %181 = getelementptr inbounds [65537 x i32], ptr @y, i64 0, i64 %indvars.iv143.6
  %182 = load i32, ptr %181, align 4, !tbaa !10
  tail call void @_Z7mod_incRii(ptr noundef nonnull align 4 dereferenceable(4) %180, i32 noundef %182)
  br label %183

183:                                              ; preds = %178, %.preheader124.6
  %indvars.iv.next144.6 = add nsw i64 %indvars.iv143.6, -1
  %.not201 = icmp eq i64 %indvars.iv143.6, 0
  br i1 %.not201, label %.preheader124.7, label %.preheader124.6, !llvm.loop !14

.preheader124.7:                                  ; preds = %183, %190
  %indvars.iv143.7 = phi i64 [ %indvars.iv.next144.7, %190 ], [ 65535, %183 ]
  %184 = and i64 %indvars.iv143.7, 128
  %.not112.7 = icmp eq i64 %184, 0
  br i1 %.not112.7, label %190, label %185

185:                                              ; preds = %.preheader124.7
  %186 = and i64 %indvars.iv143.7, 4294967167
  %187 = getelementptr inbounds [65537 x i32], ptr @y, i64 0, i64 %186
  %188 = getelementptr inbounds [65537 x i32], ptr @y, i64 0, i64 %indvars.iv143.7
  %189 = load i32, ptr %188, align 4, !tbaa !10
  tail call void @_Z7mod_incRii(ptr noundef nonnull align 4 dereferenceable(4) %187, i32 noundef %189)
  br label %190

190:                                              ; preds = %185, %.preheader124.7
  %indvars.iv.next144.7 = add nsw i64 %indvars.iv143.7, -1
  %.not202 = icmp eq i64 %indvars.iv143.7, 0
  br i1 %.not202, label %.preheader124.8, label %.preheader124.7, !llvm.loop !14

.preheader124.8:                                  ; preds = %190, %197
  %indvars.iv143.8 = phi i64 [ %indvars.iv.next144.8, %197 ], [ 65535, %190 ]
  %191 = and i64 %indvars.iv143.8, 256
  %.not112.8 = icmp eq i64 %191, 0
  br i1 %.not112.8, label %197, label %192

192:                                              ; preds = %.preheader124.8
  %193 = and i64 %indvars.iv143.8, 4294967039
  %194 = getelementptr inbounds [65537 x i32], ptr @y, i64 0, i64 %193
  %195 = getelementptr inbounds [65537 x i32], ptr @y, i64 0, i64 %indvars.iv143.8
  %196 = load i32, ptr %195, align 4, !tbaa !10
  tail call void @_Z7mod_incRii(ptr noundef nonnull align 4 dereferenceable(4) %194, i32 noundef %196)
  br label %197

197:                                              ; preds = %192, %.preheader124.8
  %indvars.iv.next144.8 = add nsw i64 %indvars.iv143.8, -1
  %.not203 = icmp eq i64 %indvars.iv143.8, 0
  br i1 %.not203, label %.preheader124.9, label %.preheader124.8, !llvm.loop !14

.preheader124.9:                                  ; preds = %197, %204
  %indvars.iv143.9 = phi i64 [ %indvars.iv.next144.9, %204 ], [ 65535, %197 ]
  %198 = and i64 %indvars.iv143.9, 512
  %.not112.9 = icmp eq i64 %198, 0
  br i1 %.not112.9, label %204, label %199

199:                                              ; preds = %.preheader124.9
  %200 = and i64 %indvars.iv143.9, 4294966783
  %201 = getelementptr inbounds [65537 x i32], ptr @y, i64 0, i64 %200
  %202 = getelementptr inbounds [65537 x i32], ptr @y, i64 0, i64 %indvars.iv143.9
  %203 = load i32, ptr %202, align 4, !tbaa !10
  tail call void @_Z7mod_incRii(ptr noundef nonnull align 4 dereferenceable(4) %201, i32 noundef %203)
  br label %204

204:                                              ; preds = %199, %.preheader124.9
  %indvars.iv.next144.9 = add nsw i64 %indvars.iv143.9, -1
  %.not204 = icmp eq i64 %indvars.iv143.9, 0
  br i1 %.not204, label %.preheader124.10, label %.preheader124.9, !llvm.loop !14

.preheader124.10:                                 ; preds = %204, %211
  %indvars.iv143.10 = phi i64 [ %indvars.iv.next144.10, %211 ], [ 65535, %204 ]
  %205 = and i64 %indvars.iv143.10, 1024
  %.not112.10 = icmp eq i64 %205, 0
  br i1 %.not112.10, label %211, label %206

206:                                              ; preds = %.preheader124.10
  %207 = and i64 %indvars.iv143.10, 4294966271
  %208 = getelementptr inbounds [65537 x i32], ptr @y, i64 0, i64 %207
  %209 = getelementptr inbounds [65537 x i32], ptr @y, i64 0, i64 %indvars.iv143.10
  %210 = load i32, ptr %209, align 4, !tbaa !10
  tail call void @_Z7mod_incRii(ptr noundef nonnull align 4 dereferenceable(4) %208, i32 noundef %210)
  br label %211

211:                                              ; preds = %206, %.preheader124.10
  %indvars.iv.next144.10 = add nsw i64 %indvars.iv143.10, -1
  %.not205 = icmp eq i64 %indvars.iv143.10, 0
  br i1 %.not205, label %.preheader124.11, label %.preheader124.10, !llvm.loop !14

.preheader124.11:                                 ; preds = %211, %218
  %indvars.iv143.11 = phi i64 [ %indvars.iv.next144.11, %218 ], [ 65535, %211 ]
  %212 = and i64 %indvars.iv143.11, 2048
  %.not112.11 = icmp eq i64 %212, 0
  br i1 %.not112.11, label %218, label %213

213:                                              ; preds = %.preheader124.11
  %214 = and i64 %indvars.iv143.11, 4294965247
  %215 = getelementptr inbounds [65537 x i32], ptr @y, i64 0, i64 %214
  %216 = getelementptr inbounds [65537 x i32], ptr @y, i64 0, i64 %indvars.iv143.11
  %217 = load i32, ptr %216, align 4, !tbaa !10
  tail call void @_Z7mod_incRii(ptr noundef nonnull align 4 dereferenceable(4) %215, i32 noundef %217)
  br label %218

218:                                              ; preds = %213, %.preheader124.11
  %indvars.iv.next144.11 = add nsw i64 %indvars.iv143.11, -1
  %.not206 = icmp eq i64 %indvars.iv143.11, 0
  br i1 %.not206, label %.preheader124.12, label %.preheader124.11, !llvm.loop !14

.preheader124.12:                                 ; preds = %218, %225
  %indvars.iv143.12 = phi i64 [ %indvars.iv.next144.12, %225 ], [ 65535, %218 ]
  %219 = and i64 %indvars.iv143.12, 4096
  %.not112.12 = icmp eq i64 %219, 0
  br i1 %.not112.12, label %225, label %220

220:                                              ; preds = %.preheader124.12
  %221 = and i64 %indvars.iv143.12, 4294963199
  %222 = getelementptr inbounds [65537 x i32], ptr @y, i64 0, i64 %221
  %223 = getelementptr inbounds [65537 x i32], ptr @y, i64 0, i64 %indvars.iv143.12
  %224 = load i32, ptr %223, align 4, !tbaa !10
  tail call void @_Z7mod_incRii(ptr noundef nonnull align 4 dereferenceable(4) %222, i32 noundef %224)
  br label %225

225:                                              ; preds = %220, %.preheader124.12
  %indvars.iv.next144.12 = add nsw i64 %indvars.iv143.12, -1
  %.not207 = icmp eq i64 %indvars.iv143.12, 0
  br i1 %.not207, label %.preheader124.13, label %.preheader124.12, !llvm.loop !14

.preheader124.13:                                 ; preds = %225, %232
  %indvars.iv143.13 = phi i64 [ %indvars.iv.next144.13, %232 ], [ 65535, %225 ]
  %226 = and i64 %indvars.iv143.13, 8192
  %.not112.13 = icmp eq i64 %226, 0
  br i1 %.not112.13, label %232, label %227

227:                                              ; preds = %.preheader124.13
  %228 = and i64 %indvars.iv143.13, 4294959103
  %229 = getelementptr inbounds [65537 x i32], ptr @y, i64 0, i64 %228
  %230 = getelementptr inbounds [65537 x i32], ptr @y, i64 0, i64 %indvars.iv143.13
  %231 = load i32, ptr %230, align 4, !tbaa !10
  tail call void @_Z7mod_incRii(ptr noundef nonnull align 4 dereferenceable(4) %229, i32 noundef %231)
  br label %232

232:                                              ; preds = %227, %.preheader124.13
  %indvars.iv.next144.13 = add nsw i64 %indvars.iv143.13, -1
  %.not208 = icmp eq i64 %indvars.iv143.13, 0
  br i1 %.not208, label %.preheader124.14, label %.preheader124.13, !llvm.loop !14

.preheader124.14:                                 ; preds = %232, %239
  %indvars.iv143.14 = phi i64 [ %indvars.iv.next144.14, %239 ], [ 65535, %232 ]
  %233 = and i64 %indvars.iv143.14, 16384
  %.not112.14 = icmp eq i64 %233, 0
  br i1 %.not112.14, label %239, label %234

234:                                              ; preds = %.preheader124.14
  %235 = and i64 %indvars.iv143.14, 4294950911
  %236 = getelementptr inbounds [65537 x i32], ptr @y, i64 0, i64 %235
  %237 = getelementptr inbounds [65537 x i32], ptr @y, i64 0, i64 %indvars.iv143.14
  %238 = load i32, ptr %237, align 4, !tbaa !10
  tail call void @_Z7mod_incRii(ptr noundef nonnull align 4 dereferenceable(4) %236, i32 noundef %238)
  br label %239

239:                                              ; preds = %234, %.preheader124.14
  %indvars.iv.next144.14 = add nsw i64 %indvars.iv143.14, -1
  %.not209 = icmp eq i64 %indvars.iv143.14, 0
  br i1 %.not209, label %.preheader124.15, label %.preheader124.14, !llvm.loop !14

.preheader124.15:                                 ; preds = %239, %246
  %indvars.iv143.15 = phi i64 [ %indvars.iv.next144.15, %246 ], [ 65535, %239 ]
  %240 = and i64 %indvars.iv143.15, 32768
  %.not112.15 = icmp eq i64 %240, 0
  br i1 %.not112.15, label %246, label %241

241:                                              ; preds = %.preheader124.15
  %242 = and i64 %indvars.iv143.15, 4294934527
  %243 = getelementptr inbounds [65537 x i32], ptr @y, i64 0, i64 %242
  %244 = getelementptr inbounds [65537 x i32], ptr @y, i64 0, i64 %indvars.iv143.15
  %245 = load i32, ptr %244, align 4, !tbaa !10
  tail call void @_Z7mod_incRii(ptr noundef nonnull align 4 dereferenceable(4) %243, i32 noundef %245)
  br label %246

246:                                              ; preds = %241, %.preheader124.15
  %indvars.iv.next144.15 = add nsw i64 %indvars.iv143.15, -1
  %.not210 = icmp eq i64 %indvars.iv143.15, 0
  br i1 %.not210, label %.preheader123, label %.preheader124.15, !llvm.loop !14

247:                                              ; preds = %.preheader124, %254
  %indvars.iv143 = phi i64 [ 65535, %.preheader124 ], [ %indvars.iv.next144, %254 ]
  %248 = and i64 %indvars.iv143, 1
  %.not112 = icmp eq i64 %248, 0
  br i1 %.not112, label %254, label %249

249:                                              ; preds = %247
  %250 = and i64 %indvars.iv143, 4294967294
  %251 = getelementptr inbounds [65537 x i32], ptr @y, i64 0, i64 %250
  %252 = getelementptr inbounds [65537 x i32], ptr @y, i64 0, i64 %indvars.iv143
  %253 = load i32, ptr %252, align 4, !tbaa !10
  tail call void @_Z7mod_incRii(ptr noundef nonnull align 4 dereferenceable(4) %251, i32 noundef %253)
  br label %254

254:                                              ; preds = %247, %249
  %indvars.iv.next144 = add nsw i64 %indvars.iv143, -1
  %.not195 = icmp eq i64 %indvars.iv143, 0
  br i1 %.not195, label %.preheader124.1, label %247, !llvm.loop !14

.preheader123:                                    ; preds = %246, %.preheader123
  %indvars.iv146 = phi i64 [ %indvars.iv.next147.1, %.preheader123 ], [ 0, %246 ]
  %255 = getelementptr inbounds [65537 x i32], ptr @x, i64 0, i64 %indvars.iv146
  %256 = load i32, ptr %255, align 4, !tbaa !10
  %257 = sext i32 %256 to i64
  %258 = getelementptr inbounds [65537 x i32], ptr @y, i64 0, i64 %indvars.iv146
  %259 = load i32, ptr %258, align 4, !tbaa !10
  %260 = sext i32 %259 to i64
  %261 = mul nsw i64 %260, %257
  %262 = srem i64 %261, 1000000007
  %263 = trunc nsw i64 %262 to i32
  %264 = getelementptr inbounds [65537 x i32], ptr @z, i64 0, i64 %indvars.iv146
  store i32 %263, ptr %264, align 4, !tbaa !10
  %indvars.iv.next147 = or disjoint i64 %indvars.iv146, 1
  %265 = getelementptr inbounds [65537 x i32], ptr @x, i64 0, i64 %indvars.iv.next147
  %266 = load i32, ptr %265, align 4, !tbaa !10
  %267 = sext i32 %266 to i64
  %268 = getelementptr inbounds [65537 x i32], ptr @y, i64 0, i64 %indvars.iv.next147
  %269 = load i32, ptr %268, align 4, !tbaa !10
  %270 = sext i32 %269 to i64
  %271 = mul nsw i64 %270, %267
  %272 = srem i64 %271, 1000000007
  %273 = trunc nsw i64 %272 to i32
  %274 = getelementptr inbounds [65537 x i32], ptr @z, i64 0, i64 %indvars.iv.next147
  store i32 %273, ptr %274, align 4, !tbaa !10
  %indvars.iv.next147.1 = add nuw nsw i64 %indvars.iv146, 2
  %exitcond.not.1 = icmp eq i64 %indvars.iv.next147.1, 65536
  br i1 %exitcond.not.1, label %.preheader121.preheader, label %.preheader123, !llvm.loop !15

.preheader121.1:                                  ; preds = %388, %281
  %indvars.iv149.1 = phi i64 [ %indvars.iv.next150.1, %281 ], [ 65535, %388 ]
  %275 = and i64 %indvars.iv149.1, 2
  %.not111.1 = icmp eq i64 %275, 0
  br i1 %.not111.1, label %281, label %276

276:                                              ; preds = %.preheader121.1
  %277 = and i64 %indvars.iv149.1, 4294967293
  %278 = getelementptr inbounds [65537 x i32], ptr @z, i64 0, i64 %277
  %279 = getelementptr inbounds [65537 x i32], ptr @z, i64 0, i64 %indvars.iv149.1
  %280 = load i32, ptr %279, align 4, !tbaa !10
  tail call void @_Z7mod_decRii(ptr noundef nonnull align 4 dereferenceable(4) %278, i32 noundef %280)
  br label %281

281:                                              ; preds = %276, %.preheader121.1
  %indvars.iv.next150.1 = add nsw i64 %indvars.iv149.1, -1
  %.not212 = icmp eq i64 %indvars.iv149.1, 0
  br i1 %.not212, label %.preheader121.2, label %.preheader121.1, !llvm.loop !16

.preheader121.2:                                  ; preds = %281, %288
  %indvars.iv149.2 = phi i64 [ %indvars.iv.next150.2, %288 ], [ 65535, %281 ]
  %282 = and i64 %indvars.iv149.2, 4
  %.not111.2 = icmp eq i64 %282, 0
  br i1 %.not111.2, label %288, label %283

283:                                              ; preds = %.preheader121.2
  %284 = and i64 %indvars.iv149.2, 4294967291
  %285 = getelementptr inbounds [65537 x i32], ptr @z, i64 0, i64 %284
  %286 = getelementptr inbounds [65537 x i32], ptr @z, i64 0, i64 %indvars.iv149.2
  %287 = load i32, ptr %286, align 4, !tbaa !10
  tail call void @_Z7mod_decRii(ptr noundef nonnull align 4 dereferenceable(4) %285, i32 noundef %287)
  br label %288

288:                                              ; preds = %283, %.preheader121.2
  %indvars.iv.next150.2 = add nsw i64 %indvars.iv149.2, -1
  %.not213 = icmp eq i64 %indvars.iv149.2, 0
  br i1 %.not213, label %.preheader121.3, label %.preheader121.2, !llvm.loop !16

.preheader121.3:                                  ; preds = %288, %295
  %indvars.iv149.3 = phi i64 [ %indvars.iv.next150.3, %295 ], [ 65535, %288 ]
  %289 = and i64 %indvars.iv149.3, 8
  %.not111.3 = icmp eq i64 %289, 0
  br i1 %.not111.3, label %295, label %290

290:                                              ; preds = %.preheader121.3
  %291 = and i64 %indvars.iv149.3, 4294967287
  %292 = getelementptr inbounds [65537 x i32], ptr @z, i64 0, i64 %291
  %293 = getelementptr inbounds [65537 x i32], ptr @z, i64 0, i64 %indvars.iv149.3
  %294 = load i32, ptr %293, align 4, !tbaa !10
  tail call void @_Z7mod_decRii(ptr noundef nonnull align 4 dereferenceable(4) %292, i32 noundef %294)
  br label %295

295:                                              ; preds = %290, %.preheader121.3
  %indvars.iv.next150.3 = add nsw i64 %indvars.iv149.3, -1
  %.not214 = icmp eq i64 %indvars.iv149.3, 0
  br i1 %.not214, label %.preheader121.4, label %.preheader121.3, !llvm.loop !16

.preheader121.4:                                  ; preds = %295, %302
  %indvars.iv149.4 = phi i64 [ %indvars.iv.next150.4, %302 ], [ 65535, %295 ]
  %296 = and i64 %indvars.iv149.4, 16
  %.not111.4 = icmp eq i64 %296, 0
  br i1 %.not111.4, label %302, label %297

297:                                              ; preds = %.preheader121.4
  %298 = and i64 %indvars.iv149.4, 4294967279
  %299 = getelementptr inbounds [65537 x i32], ptr @z, i64 0, i64 %298
  %300 = getelementptr inbounds [65537 x i32], ptr @z, i64 0, i64 %indvars.iv149.4
  %301 = load i32, ptr %300, align 4, !tbaa !10
  tail call void @_Z7mod_decRii(ptr noundef nonnull align 4 dereferenceable(4) %299, i32 noundef %301)
  br label %302

302:                                              ; preds = %297, %.preheader121.4
  %indvars.iv.next150.4 = add nsw i64 %indvars.iv149.4, -1
  %.not215 = icmp eq i64 %indvars.iv149.4, 0
  br i1 %.not215, label %.preheader121.5, label %.preheader121.4, !llvm.loop !16

.preheader121.5:                                  ; preds = %302, %309
  %indvars.iv149.5 = phi i64 [ %indvars.iv.next150.5, %309 ], [ 65535, %302 ]
  %303 = and i64 %indvars.iv149.5, 32
  %.not111.5 = icmp eq i64 %303, 0
  br i1 %.not111.5, label %309, label %304

304:                                              ; preds = %.preheader121.5
  %305 = and i64 %indvars.iv149.5, 4294967263
  %306 = getelementptr inbounds [65537 x i32], ptr @z, i64 0, i64 %305
  %307 = getelementptr inbounds [65537 x i32], ptr @z, i64 0, i64 %indvars.iv149.5
  %308 = load i32, ptr %307, align 4, !tbaa !10
  tail call void @_Z7mod_decRii(ptr noundef nonnull align 4 dereferenceable(4) %306, i32 noundef %308)
  br label %309

309:                                              ; preds = %304, %.preheader121.5
  %indvars.iv.next150.5 = add nsw i64 %indvars.iv149.5, -1
  %.not216 = icmp eq i64 %indvars.iv149.5, 0
  br i1 %.not216, label %.preheader121.6, label %.preheader121.5, !llvm.loop !16

.preheader121.6:                                  ; preds = %309, %316
  %indvars.iv149.6 = phi i64 [ %indvars.iv.next150.6, %316 ], [ 65535, %309 ]
  %310 = and i64 %indvars.iv149.6, 64
  %.not111.6 = icmp eq i64 %310, 0
  br i1 %.not111.6, label %316, label %311

311:                                              ; preds = %.preheader121.6
  %312 = and i64 %indvars.iv149.6, 4294967231
  %313 = getelementptr inbounds [65537 x i32], ptr @z, i64 0, i64 %312
  %314 = getelementptr inbounds [65537 x i32], ptr @z, i64 0, i64 %indvars.iv149.6
  %315 = load i32, ptr %314, align 4, !tbaa !10
  tail call void @_Z7mod_decRii(ptr noundef nonnull align 4 dereferenceable(4) %313, i32 noundef %315)
  br label %316

316:                                              ; preds = %311, %.preheader121.6
  %indvars.iv.next150.6 = add nsw i64 %indvars.iv149.6, -1
  %.not217 = icmp eq i64 %indvars.iv149.6, 0
  br i1 %.not217, label %.preheader121.7, label %.preheader121.6, !llvm.loop !16

.preheader121.7:                                  ; preds = %316, %323
  %indvars.iv149.7 = phi i64 [ %indvars.iv.next150.7, %323 ], [ 65535, %316 ]
  %317 = and i64 %indvars.iv149.7, 128
  %.not111.7 = icmp eq i64 %317, 0
  br i1 %.not111.7, label %323, label %318

318:                                              ; preds = %.preheader121.7
  %319 = and i64 %indvars.iv149.7, 4294967167
  %320 = getelementptr inbounds [65537 x i32], ptr @z, i64 0, i64 %319
  %321 = getelementptr inbounds [65537 x i32], ptr @z, i64 0, i64 %indvars.iv149.7
  %322 = load i32, ptr %321, align 4, !tbaa !10
  tail call void @_Z7mod_decRii(ptr noundef nonnull align 4 dereferenceable(4) %320, i32 noundef %322)
  br label %323

323:                                              ; preds = %318, %.preheader121.7
  %indvars.iv.next150.7 = add nsw i64 %indvars.iv149.7, -1
  %.not218 = icmp eq i64 %indvars.iv149.7, 0
  br i1 %.not218, label %.preheader121.8, label %.preheader121.7, !llvm.loop !16

.preheader121.8:                                  ; preds = %323, %330
  %indvars.iv149.8 = phi i64 [ %indvars.iv.next150.8, %330 ], [ 65535, %323 ]
  %324 = and i64 %indvars.iv149.8, 256
  %.not111.8 = icmp eq i64 %324, 0
  br i1 %.not111.8, label %330, label %325

325:                                              ; preds = %.preheader121.8
  %326 = and i64 %indvars.iv149.8, 4294967039
  %327 = getelementptr inbounds [65537 x i32], ptr @z, i64 0, i64 %326
  %328 = getelementptr inbounds [65537 x i32], ptr @z, i64 0, i64 %indvars.iv149.8
  %329 = load i32, ptr %328, align 4, !tbaa !10
  tail call void @_Z7mod_decRii(ptr noundef nonnull align 4 dereferenceable(4) %327, i32 noundef %329)
  br label %330

330:                                              ; preds = %325, %.preheader121.8
  %indvars.iv.next150.8 = add nsw i64 %indvars.iv149.8, -1
  %.not219 = icmp eq i64 %indvars.iv149.8, 0
  br i1 %.not219, label %.preheader121.9, label %.preheader121.8, !llvm.loop !16

.preheader121.9:                                  ; preds = %330, %337
  %indvars.iv149.9 = phi i64 [ %indvars.iv.next150.9, %337 ], [ 65535, %330 ]
  %331 = and i64 %indvars.iv149.9, 512
  %.not111.9 = icmp eq i64 %331, 0
  br i1 %.not111.9, label %337, label %332

332:                                              ; preds = %.preheader121.9
  %333 = and i64 %indvars.iv149.9, 4294966783
  %334 = getelementptr inbounds [65537 x i32], ptr @z, i64 0, i64 %333
  %335 = getelementptr inbounds [65537 x i32], ptr @z, i64 0, i64 %indvars.iv149.9
  %336 = load i32, ptr %335, align 4, !tbaa !10
  tail call void @_Z7mod_decRii(ptr noundef nonnull align 4 dereferenceable(4) %334, i32 noundef %336)
  br label %337

337:                                              ; preds = %332, %.preheader121.9
  %indvars.iv.next150.9 = add nsw i64 %indvars.iv149.9, -1
  %.not220 = icmp eq i64 %indvars.iv149.9, 0
  br i1 %.not220, label %.preheader121.10, label %.preheader121.9, !llvm.loop !16

.preheader121.10:                                 ; preds = %337, %344
  %indvars.iv149.10 = phi i64 [ %indvars.iv.next150.10, %344 ], [ 65535, %337 ]
  %338 = and i64 %indvars.iv149.10, 1024
  %.not111.10 = icmp eq i64 %338, 0
  br i1 %.not111.10, label %344, label %339

339:                                              ; preds = %.preheader121.10
  %340 = and i64 %indvars.iv149.10, 4294966271
  %341 = getelementptr inbounds [65537 x i32], ptr @z, i64 0, i64 %340
  %342 = getelementptr inbounds [65537 x i32], ptr @z, i64 0, i64 %indvars.iv149.10
  %343 = load i32, ptr %342, align 4, !tbaa !10
  tail call void @_Z7mod_decRii(ptr noundef nonnull align 4 dereferenceable(4) %341, i32 noundef %343)
  br label %344

344:                                              ; preds = %339, %.preheader121.10
  %indvars.iv.next150.10 = add nsw i64 %indvars.iv149.10, -1
  %.not221 = icmp eq i64 %indvars.iv149.10, 0
  br i1 %.not221, label %.preheader121.11, label %.preheader121.10, !llvm.loop !16

.preheader121.11:                                 ; preds = %344, %351
  %indvars.iv149.11 = phi i64 [ %indvars.iv.next150.11, %351 ], [ 65535, %344 ]
  %345 = and i64 %indvars.iv149.11, 2048
  %.not111.11 = icmp eq i64 %345, 0
  br i1 %.not111.11, label %351, label %346

346:                                              ; preds = %.preheader121.11
  %347 = and i64 %indvars.iv149.11, 4294965247
  %348 = getelementptr inbounds [65537 x i32], ptr @z, i64 0, i64 %347
  %349 = getelementptr inbounds [65537 x i32], ptr @z, i64 0, i64 %indvars.iv149.11
  %350 = load i32, ptr %349, align 4, !tbaa !10
  tail call void @_Z7mod_decRii(ptr noundef nonnull align 4 dereferenceable(4) %348, i32 noundef %350)
  br label %351

351:                                              ; preds = %346, %.preheader121.11
  %indvars.iv.next150.11 = add nsw i64 %indvars.iv149.11, -1
  %.not222 = icmp eq i64 %indvars.iv149.11, 0
  br i1 %.not222, label %.preheader121.12, label %.preheader121.11, !llvm.loop !16

.preheader121.12:                                 ; preds = %351, %358
  %indvars.iv149.12 = phi i64 [ %indvars.iv.next150.12, %358 ], [ 65535, %351 ]
  %352 = and i64 %indvars.iv149.12, 4096
  %.not111.12 = icmp eq i64 %352, 0
  br i1 %.not111.12, label %358, label %353

353:                                              ; preds = %.preheader121.12
  %354 = and i64 %indvars.iv149.12, 4294963199
  %355 = getelementptr inbounds [65537 x i32], ptr @z, i64 0, i64 %354
  %356 = getelementptr inbounds [65537 x i32], ptr @z, i64 0, i64 %indvars.iv149.12
  %357 = load i32, ptr %356, align 4, !tbaa !10
  tail call void @_Z7mod_decRii(ptr noundef nonnull align 4 dereferenceable(4) %355, i32 noundef %357)
  br label %358

358:                                              ; preds = %353, %.preheader121.12
  %indvars.iv.next150.12 = add nsw i64 %indvars.iv149.12, -1
  %.not223 = icmp eq i64 %indvars.iv149.12, 0
  br i1 %.not223, label %.preheader121.13, label %.preheader121.12, !llvm.loop !16

.preheader121.13:                                 ; preds = %358, %365
  %indvars.iv149.13 = phi i64 [ %indvars.iv.next150.13, %365 ], [ 65535, %358 ]
  %359 = and i64 %indvars.iv149.13, 8192
  %.not111.13 = icmp eq i64 %359, 0
  br i1 %.not111.13, label %365, label %360

360:                                              ; preds = %.preheader121.13
  %361 = and i64 %indvars.iv149.13, 4294959103
  %362 = getelementptr inbounds [65537 x i32], ptr @z, i64 0, i64 %361
  %363 = getelementptr inbounds [65537 x i32], ptr @z, i64 0, i64 %indvars.iv149.13
  %364 = load i32, ptr %363, align 4, !tbaa !10
  tail call void @_Z7mod_decRii(ptr noundef nonnull align 4 dereferenceable(4) %362, i32 noundef %364)
  br label %365

365:                                              ; preds = %360, %.preheader121.13
  %indvars.iv.next150.13 = add nsw i64 %indvars.iv149.13, -1
  %.not224 = icmp eq i64 %indvars.iv149.13, 0
  br i1 %.not224, label %.preheader121.14, label %.preheader121.13, !llvm.loop !16

.preheader121.14:                                 ; preds = %365, %372
  %indvars.iv149.14 = phi i64 [ %indvars.iv.next150.14, %372 ], [ 65535, %365 ]
  %366 = and i64 %indvars.iv149.14, 16384
  %.not111.14 = icmp eq i64 %366, 0
  br i1 %.not111.14, label %372, label %367

367:                                              ; preds = %.preheader121.14
  %368 = and i64 %indvars.iv149.14, 4294950911
  %369 = getelementptr inbounds [65537 x i32], ptr @z, i64 0, i64 %368
  %370 = getelementptr inbounds [65537 x i32], ptr @z, i64 0, i64 %indvars.iv149.14
  %371 = load i32, ptr %370, align 4, !tbaa !10
  tail call void @_Z7mod_decRii(ptr noundef nonnull align 4 dereferenceable(4) %369, i32 noundef %371)
  br label %372

372:                                              ; preds = %367, %.preheader121.14
  %indvars.iv.next150.14 = add nsw i64 %indvars.iv149.14, -1
  %.not225 = icmp eq i64 %indvars.iv149.14, 0
  br i1 %.not225, label %.preheader121.15, label %.preheader121.14, !llvm.loop !16

.preheader121.15:                                 ; preds = %372, %379
  %indvars.iv149.15 = phi i64 [ %indvars.iv.next150.15, %379 ], [ 65535, %372 ]
  %373 = and i64 %indvars.iv149.15, 32768
  %.not111.15 = icmp eq i64 %373, 0
  br i1 %.not111.15, label %379, label %374

374:                                              ; preds = %.preheader121.15
  %375 = and i64 %indvars.iv149.15, 4294934527
  %376 = getelementptr inbounds [65537 x i32], ptr @z, i64 0, i64 %375
  %377 = getelementptr inbounds [65537 x i32], ptr @z, i64 0, i64 %indvars.iv149.15
  %378 = load i32, ptr %377, align 4, !tbaa !10
  tail call void @_Z7mod_decRii(ptr noundef nonnull align 4 dereferenceable(4) %376, i32 noundef %378)
  br label %379

379:                                              ; preds = %374, %.preheader121.15
  %indvars.iv.next150.15 = add nsw i64 %indvars.iv149.15, -1
  %.not226 = icmp eq i64 %indvars.iv149.15, 0
  br i1 %.not226, label %.preheader120, label %.preheader121.15, !llvm.loop !16

.preheader120:                                    ; preds = %379
  %380 = sext i32 %23 to i64
  %381 = getelementptr inbounds [125 x %struct.Node], ptr @que, i64 0, i64 %380
  br label %389

.preheader121.preheader:                          ; preds = %.preheader123, %388
  %indvars.iv149 = phi i64 [ %indvars.iv.next150, %388 ], [ 65535, %.preheader123 ]
  %382 = and i64 %indvars.iv149, 1
  %.not111 = icmp eq i64 %382, 0
  br i1 %.not111, label %388, label %383

383:                                              ; preds = %.preheader121.preheader
  %384 = and i64 %indvars.iv149, 4294967294
  %385 = getelementptr inbounds [65537 x i32], ptr @z, i64 0, i64 %384
  %386 = getelementptr inbounds [65537 x i32], ptr @z, i64 0, i64 %indvars.iv149
  %387 = load i32, ptr %386, align 4, !tbaa !10
  tail call void @_Z7mod_decRii(ptr noundef nonnull align 4 dereferenceable(4) %385, i32 noundef %387)
  br label %388

388:                                              ; preds = %.preheader121.preheader, %383
  %indvars.iv.next150 = add nsw i64 %indvars.iv149, -1
  %.not211 = icmp eq i64 %indvars.iv149, 0
  br i1 %.not211, label %.preheader121.1, label %.preheader121.preheader, !llvm.loop !16

389:                                              ; preds = %.preheader120, %389
  %indvars.iv153 = phi i64 [ 0, %.preheader120 ], [ %indvars.iv.next154, %389 ]
  %390 = getelementptr inbounds [65537 x i32], ptr %381, i64 0, i64 %indvars.iv153
  %391 = getelementptr inbounds [65537 x i32], ptr @z, i64 0, i64 %indvars.iv153
  %392 = load i32, ptr %391, align 4, !tbaa !10
  tail call void @_Z7mod_incRii(ptr noundef nonnull align 4 dereferenceable(4) %390, i32 noundef %392)
  %indvars.iv.next154 = add nuw nsw i64 %indvars.iv153, 1
  %exitcond156.not = icmp eq i64 %indvars.iv.next154, 65536
  br i1 %exitcond156.not, label %393, label %389, !llvm.loop !17

393:                                              ; preds = %389
  switch i8 %18, label %.loopexit [
    i8 124, label %.preheader119
    i8 63, label %.preheader119
  ]

.preheader119:                                    ; preds = %..preheader119_crit_edge, %393, %393
  %.pre-phi = phi i64 [ %.pre, %..preheader119_crit_edge ], [ %25, %393 ], [ %25, %393 ]
  %394 = getelementptr inbounds [125 x %struct.Node], ptr @que, i64 0, i64 %.pre-phi
  tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(262144) @x, ptr noundef nonnull align 4 dereferenceable(262144) %394, i64 262144, i1 false)
  br label %502

.preheader119.1:                                  ; preds = %509, %401
  %indvars.iv157.1 = phi i64 [ %indvars.iv.next158.1, %401 ], [ 0, %509 ]
  %395 = and i64 %indvars.iv157.1, 2
  %.not110.1 = icmp eq i64 %395, 0
  br i1 %.not110.1, label %401, label %396

396:                                              ; preds = %.preheader119.1
  %397 = getelementptr inbounds [65537 x i32], ptr @x, i64 0, i64 %indvars.iv157.1
  %398 = and i64 %indvars.iv157.1, 4294967293
  %399 = getelementptr inbounds [65537 x i32], ptr @x, i64 0, i64 %398
  %400 = load i32, ptr %399, align 4, !tbaa !10
  tail call void @_Z7mod_incRii(ptr noundef nonnull align 4 dereferenceable(4) %397, i32 noundef %400)
  br label %401

401:                                              ; preds = %396, %.preheader119.1
  %indvars.iv.next158.1 = add nuw nsw i64 %indvars.iv157.1, 1
  %exitcond160.1.not = icmp eq i64 %indvars.iv.next158.1, 65536
  br i1 %exitcond160.1.not, label %.preheader119.2, label %.preheader119.1, !llvm.loop !18

.preheader119.2:                                  ; preds = %401, %408
  %indvars.iv157.2 = phi i64 [ %indvars.iv.next158.2, %408 ], [ 0, %401 ]
  %402 = and i64 %indvars.iv157.2, 4
  %.not110.2 = icmp eq i64 %402, 0
  br i1 %.not110.2, label %408, label %403

403:                                              ; preds = %.preheader119.2
  %404 = getelementptr inbounds [65537 x i32], ptr @x, i64 0, i64 %indvars.iv157.2
  %405 = and i64 %indvars.iv157.2, 4294967291
  %406 = getelementptr inbounds [65537 x i32], ptr @x, i64 0, i64 %405
  %407 = load i32, ptr %406, align 4, !tbaa !10
  tail call void @_Z7mod_incRii(ptr noundef nonnull align 4 dereferenceable(4) %404, i32 noundef %407)
  br label %408

408:                                              ; preds = %403, %.preheader119.2
  %indvars.iv.next158.2 = add nuw nsw i64 %indvars.iv157.2, 1
  %exitcond160.2.not = icmp eq i64 %indvars.iv.next158.2, 65536
  br i1 %exitcond160.2.not, label %.preheader119.3, label %.preheader119.2, !llvm.loop !18

.preheader119.3:                                  ; preds = %408, %415
  %indvars.iv157.3 = phi i64 [ %indvars.iv.next158.3, %415 ], [ 0, %408 ]
  %409 = and i64 %indvars.iv157.3, 8
  %.not110.3 = icmp eq i64 %409, 0
  br i1 %.not110.3, label %415, label %410

410:                                              ; preds = %.preheader119.3
  %411 = getelementptr inbounds [65537 x i32], ptr @x, i64 0, i64 %indvars.iv157.3
  %412 = and i64 %indvars.iv157.3, 4294967287
  %413 = getelementptr inbounds [65537 x i32], ptr @x, i64 0, i64 %412
  %414 = load i32, ptr %413, align 4, !tbaa !10
  tail call void @_Z7mod_incRii(ptr noundef nonnull align 4 dereferenceable(4) %411, i32 noundef %414)
  br label %415

415:                                              ; preds = %410, %.preheader119.3
  %indvars.iv.next158.3 = add nuw nsw i64 %indvars.iv157.3, 1
  %exitcond160.3.not = icmp eq i64 %indvars.iv.next158.3, 65536
  br i1 %exitcond160.3.not, label %.preheader119.4, label %.preheader119.3, !llvm.loop !18

.preheader119.4:                                  ; preds = %415, %422
  %indvars.iv157.4 = phi i64 [ %indvars.iv.next158.4, %422 ], [ 0, %415 ]
  %416 = and i64 %indvars.iv157.4, 16
  %.not110.4 = icmp eq i64 %416, 0
  br i1 %.not110.4, label %422, label %417

417:                                              ; preds = %.preheader119.4
  %418 = getelementptr inbounds [65537 x i32], ptr @x, i64 0, i64 %indvars.iv157.4
  %419 = and i64 %indvars.iv157.4, 4294967279
  %420 = getelementptr inbounds [65537 x i32], ptr @x, i64 0, i64 %419
  %421 = load i32, ptr %420, align 4, !tbaa !10
  tail call void @_Z7mod_incRii(ptr noundef nonnull align 4 dereferenceable(4) %418, i32 noundef %421)
  br label %422

422:                                              ; preds = %417, %.preheader119.4
  %indvars.iv.next158.4 = add nuw nsw i64 %indvars.iv157.4, 1
  %exitcond160.4.not = icmp eq i64 %indvars.iv.next158.4, 65536
  br i1 %exitcond160.4.not, label %.preheader119.5, label %.preheader119.4, !llvm.loop !18

.preheader119.5:                                  ; preds = %422, %429
  %indvars.iv157.5 = phi i64 [ %indvars.iv.next158.5, %429 ], [ 0, %422 ]
  %423 = and i64 %indvars.iv157.5, 32
  %.not110.5 = icmp eq i64 %423, 0
  br i1 %.not110.5, label %429, label %424

424:                                              ; preds = %.preheader119.5
  %425 = getelementptr inbounds [65537 x i32], ptr @x, i64 0, i64 %indvars.iv157.5
  %426 = and i64 %indvars.iv157.5, 4294967263
  %427 = getelementptr inbounds [65537 x i32], ptr @x, i64 0, i64 %426
  %428 = load i32, ptr %427, align 4, !tbaa !10
  tail call void @_Z7mod_incRii(ptr noundef nonnull align 4 dereferenceable(4) %425, i32 noundef %428)
  br label %429

429:                                              ; preds = %424, %.preheader119.5
  %indvars.iv.next158.5 = add nuw nsw i64 %indvars.iv157.5, 1
  %exitcond160.5.not = icmp eq i64 %indvars.iv.next158.5, 65536
  br i1 %exitcond160.5.not, label %.preheader119.6, label %.preheader119.5, !llvm.loop !18

.preheader119.6:                                  ; preds = %429, %436
  %indvars.iv157.6 = phi i64 [ %indvars.iv.next158.6, %436 ], [ 0, %429 ]
  %430 = and i64 %indvars.iv157.6, 64
  %.not110.6 = icmp eq i64 %430, 0
  br i1 %.not110.6, label %436, label %431

431:                                              ; preds = %.preheader119.6
  %432 = getelementptr inbounds [65537 x i32], ptr @x, i64 0, i64 %indvars.iv157.6
  %433 = and i64 %indvars.iv157.6, 4294967231
  %434 = getelementptr inbounds [65537 x i32], ptr @x, i64 0, i64 %433
  %435 = load i32, ptr %434, align 4, !tbaa !10
  tail call void @_Z7mod_incRii(ptr noundef nonnull align 4 dereferenceable(4) %432, i32 noundef %435)
  br label %436

436:                                              ; preds = %431, %.preheader119.6
  %indvars.iv.next158.6 = add nuw nsw i64 %indvars.iv157.6, 1
  %exitcond160.6.not = icmp eq i64 %indvars.iv.next158.6, 65536
  br i1 %exitcond160.6.not, label %.preheader119.7, label %.preheader119.6, !llvm.loop !18

.preheader119.7:                                  ; preds = %436, %443
  %indvars.iv157.7 = phi i64 [ %indvars.iv.next158.7, %443 ], [ 0, %436 ]
  %437 = and i64 %indvars.iv157.7, 128
  %.not110.7 = icmp eq i64 %437, 0
  br i1 %.not110.7, label %443, label %438

438:                                              ; preds = %.preheader119.7
  %439 = getelementptr inbounds [65537 x i32], ptr @x, i64 0, i64 %indvars.iv157.7
  %440 = and i64 %indvars.iv157.7, 4294967167
  %441 = getelementptr inbounds [65537 x i32], ptr @x, i64 0, i64 %440
  %442 = load i32, ptr %441, align 4, !tbaa !10
  tail call void @_Z7mod_incRii(ptr noundef nonnull align 4 dereferenceable(4) %439, i32 noundef %442)
  br label %443

443:                                              ; preds = %438, %.preheader119.7
  %indvars.iv.next158.7 = add nuw nsw i64 %indvars.iv157.7, 1
  %exitcond160.7.not = icmp eq i64 %indvars.iv.next158.7, 65536
  br i1 %exitcond160.7.not, label %.preheader119.8, label %.preheader119.7, !llvm.loop !18

.preheader119.8:                                  ; preds = %443, %450
  %indvars.iv157.8 = phi i64 [ %indvars.iv.next158.8, %450 ], [ 0, %443 ]
  %444 = and i64 %indvars.iv157.8, 256
  %.not110.8 = icmp eq i64 %444, 0
  br i1 %.not110.8, label %450, label %445

445:                                              ; preds = %.preheader119.8
  %446 = getelementptr inbounds [65537 x i32], ptr @x, i64 0, i64 %indvars.iv157.8
  %447 = and i64 %indvars.iv157.8, 4294967039
  %448 = getelementptr inbounds [65537 x i32], ptr @x, i64 0, i64 %447
  %449 = load i32, ptr %448, align 4, !tbaa !10
  tail call void @_Z7mod_incRii(ptr noundef nonnull align 4 dereferenceable(4) %446, i32 noundef %449)
  br label %450

450:                                              ; preds = %445, %.preheader119.8
  %indvars.iv.next158.8 = add nuw nsw i64 %indvars.iv157.8, 1
  %exitcond160.8.not = icmp eq i64 %indvars.iv.next158.8, 65536
  br i1 %exitcond160.8.not, label %.preheader119.9, label %.preheader119.8, !llvm.loop !18

.preheader119.9:                                  ; preds = %450, %457
  %indvars.iv157.9 = phi i64 [ %indvars.iv.next158.9, %457 ], [ 0, %450 ]
  %451 = and i64 %indvars.iv157.9, 512
  %.not110.9 = icmp eq i64 %451, 0
  br i1 %.not110.9, label %457, label %452

452:                                              ; preds = %.preheader119.9
  %453 = getelementptr inbounds [65537 x i32], ptr @x, i64 0, i64 %indvars.iv157.9
  %454 = and i64 %indvars.iv157.9, 4294966783
  %455 = getelementptr inbounds [65537 x i32], ptr @x, i64 0, i64 %454
  %456 = load i32, ptr %455, align 4, !tbaa !10
  tail call void @_Z7mod_incRii(ptr noundef nonnull align 4 dereferenceable(4) %453, i32 noundef %456)
  br label %457

457:                                              ; preds = %452, %.preheader119.9
  %indvars.iv.next158.9 = add nuw nsw i64 %indvars.iv157.9, 1
  %exitcond160.9.not = icmp eq i64 %indvars.iv.next158.9, 65536
  br i1 %exitcond160.9.not, label %.preheader119.10, label %.preheader119.9, !llvm.loop !18

.preheader119.10:                                 ; preds = %457, %464
  %indvars.iv157.10 = phi i64 [ %indvars.iv.next158.10, %464 ], [ 0, %457 ]
  %458 = and i64 %indvars.iv157.10, 1024
  %.not110.10 = icmp eq i64 %458, 0
  br i1 %.not110.10, label %464, label %459

459:                                              ; preds = %.preheader119.10
  %460 = getelementptr inbounds [65537 x i32], ptr @x, i64 0, i64 %indvars.iv157.10
  %461 = and i64 %indvars.iv157.10, 4294966271
  %462 = getelementptr inbounds [65537 x i32], ptr @x, i64 0, i64 %461
  %463 = load i32, ptr %462, align 4, !tbaa !10
  tail call void @_Z7mod_incRii(ptr noundef nonnull align 4 dereferenceable(4) %460, i32 noundef %463)
  br label %464

464:                                              ; preds = %459, %.preheader119.10
  %indvars.iv.next158.10 = add nuw nsw i64 %indvars.iv157.10, 1
  %exitcond160.10.not = icmp eq i64 %indvars.iv.next158.10, 65536
  br i1 %exitcond160.10.not, label %.preheader119.11, label %.preheader119.10, !llvm.loop !18

.preheader119.11:                                 ; preds = %464, %471
  %indvars.iv157.11 = phi i64 [ %indvars.iv.next158.11, %471 ], [ 0, %464 ]
  %465 = and i64 %indvars.iv157.11, 2048
  %.not110.11 = icmp eq i64 %465, 0
  br i1 %.not110.11, label %471, label %466

466:                                              ; preds = %.preheader119.11
  %467 = getelementptr inbounds [65537 x i32], ptr @x, i64 0, i64 %indvars.iv157.11
  %468 = and i64 %indvars.iv157.11, 4294965247
  %469 = getelementptr inbounds [65537 x i32], ptr @x, i64 0, i64 %468
  %470 = load i32, ptr %469, align 4, !tbaa !10
  tail call void @_Z7mod_incRii(ptr noundef nonnull align 4 dereferenceable(4) %467, i32 noundef %470)
  br label %471

471:                                              ; preds = %466, %.preheader119.11
  %indvars.iv.next158.11 = add nuw nsw i64 %indvars.iv157.11, 1
  %exitcond160.11.not = icmp eq i64 %indvars.iv.next158.11, 65536
  br i1 %exitcond160.11.not, label %.preheader119.12, label %.preheader119.11, !llvm.loop !18

.preheader119.12:                                 ; preds = %471, %478
  %indvars.iv157.12 = phi i64 [ %indvars.iv.next158.12, %478 ], [ 0, %471 ]
  %472 = and i64 %indvars.iv157.12, 4096
  %.not110.12 = icmp eq i64 %472, 0
  br i1 %.not110.12, label %478, label %473

473:                                              ; preds = %.preheader119.12
  %474 = getelementptr inbounds [65537 x i32], ptr @x, i64 0, i64 %indvars.iv157.12
  %475 = and i64 %indvars.iv157.12, 4294963199
  %476 = getelementptr inbounds [65537 x i32], ptr @x, i64 0, i64 %475
  %477 = load i32, ptr %476, align 4, !tbaa !10
  tail call void @_Z7mod_incRii(ptr noundef nonnull align 4 dereferenceable(4) %474, i32 noundef %477)
  br label %478

478:                                              ; preds = %473, %.preheader119.12
  %indvars.iv.next158.12 = add nuw nsw i64 %indvars.iv157.12, 1
  %exitcond160.12.not = icmp eq i64 %indvars.iv.next158.12, 65536
  br i1 %exitcond160.12.not, label %.preheader119.13, label %.preheader119.12, !llvm.loop !18

.preheader119.13:                                 ; preds = %478, %485
  %indvars.iv157.13 = phi i64 [ %indvars.iv.next158.13, %485 ], [ 0, %478 ]
  %479 = and i64 %indvars.iv157.13, 8192
  %.not110.13 = icmp eq i64 %479, 0
  br i1 %.not110.13, label %485, label %480

480:                                              ; preds = %.preheader119.13
  %481 = getelementptr inbounds [65537 x i32], ptr @x, i64 0, i64 %indvars.iv157.13
  %482 = and i64 %indvars.iv157.13, 4294959103
  %483 = getelementptr inbounds [65537 x i32], ptr @x, i64 0, i64 %482
  %484 = load i32, ptr %483, align 4, !tbaa !10
  tail call void @_Z7mod_incRii(ptr noundef nonnull align 4 dereferenceable(4) %481, i32 noundef %484)
  br label %485

485:                                              ; preds = %480, %.preheader119.13
  %indvars.iv.next158.13 = add nuw nsw i64 %indvars.iv157.13, 1
  %exitcond160.13.not = icmp eq i64 %indvars.iv.next158.13, 65536
  br i1 %exitcond160.13.not, label %.preheader119.14, label %.preheader119.13, !llvm.loop !18

.preheader119.14:                                 ; preds = %485, %492
  %indvars.iv157.14 = phi i64 [ %indvars.iv.next158.14, %492 ], [ 0, %485 ]
  %486 = and i64 %indvars.iv157.14, 16384
  %.not110.14 = icmp eq i64 %486, 0
  br i1 %.not110.14, label %492, label %487

487:                                              ; preds = %.preheader119.14
  %488 = getelementptr inbounds [65537 x i32], ptr @x, i64 0, i64 %indvars.iv157.14
  %489 = and i64 %indvars.iv157.14, 4294950911
  %490 = getelementptr inbounds [65537 x i32], ptr @x, i64 0, i64 %489
  %491 = load i32, ptr %490, align 4, !tbaa !10
  tail call void @_Z7mod_incRii(ptr noundef nonnull align 4 dereferenceable(4) %488, i32 noundef %491)
  br label %492

492:                                              ; preds = %487, %.preheader119.14
  %indvars.iv.next158.14 = add nuw nsw i64 %indvars.iv157.14, 1
  %exitcond160.14.not = icmp eq i64 %indvars.iv.next158.14, 65536
  br i1 %exitcond160.14.not, label %.preheader119.15, label %.preheader119.14, !llvm.loop !18

.preheader119.15:                                 ; preds = %492, %499
  %indvars.iv157.15 = phi i64 [ %indvars.iv.next158.15, %499 ], [ 0, %492 ]
  %493 = and i64 %indvars.iv157.15, 32768
  %.not110.15 = icmp eq i64 %493, 0
  br i1 %.not110.15, label %499, label %494

494:                                              ; preds = %.preheader119.15
  %495 = getelementptr inbounds [65537 x i32], ptr @x, i64 0, i64 %indvars.iv157.15
  %496 = and i64 %indvars.iv157.15, 4294934527
  %497 = getelementptr inbounds [65537 x i32], ptr @x, i64 0, i64 %496
  %498 = load i32, ptr %497, align 4, !tbaa !10
  tail call void @_Z7mod_incRii(ptr noundef nonnull align 4 dereferenceable(4) %495, i32 noundef %498)
  br label %499

499:                                              ; preds = %494, %.preheader119.15
  %indvars.iv.next158.15 = add nuw nsw i64 %indvars.iv157.15, 1
  %exitcond160.15.not = icmp eq i64 %indvars.iv.next158.15, 65536
  br i1 %exitcond160.15.not, label %.preheader118, label %.preheader119.15, !llvm.loop !18

.preheader118:                                    ; preds = %499
  %500 = sext i32 %20 to i64
  %501 = getelementptr inbounds [125 x %struct.Node], ptr @que, i64 0, i64 %500
  tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(262144) @y, ptr noundef nonnull align 4 dereferenceable(262144) %501, i64 262144, i1 false)
  br label %615

502:                                              ; preds = %.preheader119, %509
  %indvars.iv157 = phi i64 [ 0, %.preheader119 ], [ %indvars.iv.next158, %509 ]
  %503 = and i64 %indvars.iv157, 1
  %.not110 = icmp eq i64 %503, 0
  br i1 %.not110, label %509, label %504

504:                                              ; preds = %502
  %505 = getelementptr inbounds [65537 x i32], ptr @x, i64 0, i64 %indvars.iv157
  %506 = and i64 %indvars.iv157, 4294967294
  %507 = getelementptr inbounds [65537 x i32], ptr @x, i64 0, i64 %506
  %508 = load i32, ptr %507, align 4, !tbaa !10
  tail call void @_Z7mod_incRii(ptr noundef nonnull align 4 dereferenceable(4) %505, i32 noundef %508)
  br label %509

509:                                              ; preds = %502, %504
  %indvars.iv.next158 = add nuw nsw i64 %indvars.iv157, 1
  %exitcond160.not = icmp eq i64 %indvars.iv.next158, 65536
  br i1 %exitcond160.not, label %.preheader119.1, label %502, !llvm.loop !18

.preheader118.1:                                  ; preds = %622, %516
  %indvars.iv162.1 = phi i64 [ %indvars.iv.next163.1, %516 ], [ 0, %622 ]
  %510 = and i64 %indvars.iv162.1, 2
  %.not109.1 = icmp eq i64 %510, 0
  br i1 %.not109.1, label %516, label %511

511:                                              ; preds = %.preheader118.1
  %512 = getelementptr inbounds [65537 x i32], ptr @y, i64 0, i64 %indvars.iv162.1
  %513 = and i64 %indvars.iv162.1, 4294967293
  %514 = getelementptr inbounds [65537 x i32], ptr @y, i64 0, i64 %513
  %515 = load i32, ptr %514, align 4, !tbaa !10
  tail call void @_Z7mod_incRii(ptr noundef nonnull align 4 dereferenceable(4) %512, i32 noundef %515)
  br label %516

516:                                              ; preds = %511, %.preheader118.1
  %indvars.iv.next163.1 = add nuw nsw i64 %indvars.iv162.1, 1
  %exitcond165.1.not = icmp eq i64 %indvars.iv.next163.1, 65536
  br i1 %exitcond165.1.not, label %.preheader118.2, label %.preheader118.1, !llvm.loop !19

.preheader118.2:                                  ; preds = %516, %523
  %indvars.iv162.2 = phi i64 [ %indvars.iv.next163.2, %523 ], [ 0, %516 ]
  %517 = and i64 %indvars.iv162.2, 4
  %.not109.2 = icmp eq i64 %517, 0
  br i1 %.not109.2, label %523, label %518

518:                                              ; preds = %.preheader118.2
  %519 = getelementptr inbounds [65537 x i32], ptr @y, i64 0, i64 %indvars.iv162.2
  %520 = and i64 %indvars.iv162.2, 4294967291
  %521 = getelementptr inbounds [65537 x i32], ptr @y, i64 0, i64 %520
  %522 = load i32, ptr %521, align 4, !tbaa !10
  tail call void @_Z7mod_incRii(ptr noundef nonnull align 4 dereferenceable(4) %519, i32 noundef %522)
  br label %523

523:                                              ; preds = %518, %.preheader118.2
  %indvars.iv.next163.2 = add nuw nsw i64 %indvars.iv162.2, 1
  %exitcond165.2.not = icmp eq i64 %indvars.iv.next163.2, 65536
  br i1 %exitcond165.2.not, label %.preheader118.3, label %.preheader118.2, !llvm.loop !19

.preheader118.3:                                  ; preds = %523, %530
  %indvars.iv162.3 = phi i64 [ %indvars.iv.next163.3, %530 ], [ 0, %523 ]
  %524 = and i64 %indvars.iv162.3, 8
  %.not109.3 = icmp eq i64 %524, 0
  br i1 %.not109.3, label %530, label %525

525:                                              ; preds = %.preheader118.3
  %526 = getelementptr inbounds [65537 x i32], ptr @y, i64 0, i64 %indvars.iv162.3
  %527 = and i64 %indvars.iv162.3, 4294967287
  %528 = getelementptr inbounds [65537 x i32], ptr @y, i64 0, i64 %527
  %529 = load i32, ptr %528, align 4, !tbaa !10
  tail call void @_Z7mod_incRii(ptr noundef nonnull align 4 dereferenceable(4) %526, i32 noundef %529)
  br label %530

530:                                              ; preds = %525, %.preheader118.3
  %indvars.iv.next163.3 = add nuw nsw i64 %indvars.iv162.3, 1
  %exitcond165.3.not = icmp eq i64 %indvars.iv.next163.3, 65536
  br i1 %exitcond165.3.not, label %.preheader118.4, label %.preheader118.3, !llvm.loop !19

.preheader118.4:                                  ; preds = %530, %537
  %indvars.iv162.4 = phi i64 [ %indvars.iv.next163.4, %537 ], [ 0, %530 ]
  %531 = and i64 %indvars.iv162.4, 16
  %.not109.4 = icmp eq i64 %531, 0
  br i1 %.not109.4, label %537, label %532

532:                                              ; preds = %.preheader118.4
  %533 = getelementptr inbounds [65537 x i32], ptr @y, i64 0, i64 %indvars.iv162.4
  %534 = and i64 %indvars.iv162.4, 4294967279
  %535 = getelementptr inbounds [65537 x i32], ptr @y, i64 0, i64 %534
  %536 = load i32, ptr %535, align 4, !tbaa !10
  tail call void @_Z7mod_incRii(ptr noundef nonnull align 4 dereferenceable(4) %533, i32 noundef %536)
  br label %537

537:                                              ; preds = %532, %.preheader118.4
  %indvars.iv.next163.4 = add nuw nsw i64 %indvars.iv162.4, 1
  %exitcond165.4.not = icmp eq i64 %indvars.iv.next163.4, 65536
  br i1 %exitcond165.4.not, label %.preheader118.5, label %.preheader118.4, !llvm.loop !19

.preheader118.5:                                  ; preds = %537, %544
  %indvars.iv162.5 = phi i64 [ %indvars.iv.next163.5, %544 ], [ 0, %537 ]
  %538 = and i64 %indvars.iv162.5, 32
  %.not109.5 = icmp eq i64 %538, 0
  br i1 %.not109.5, label %544, label %539

539:                                              ; preds = %.preheader118.5
  %540 = getelementptr inbounds [65537 x i32], ptr @y, i64 0, i64 %indvars.iv162.5
  %541 = and i64 %indvars.iv162.5, 4294967263
  %542 = getelementptr inbounds [65537 x i32], ptr @y, i64 0, i64 %541
  %543 = load i32, ptr %542, align 4, !tbaa !10
  tail call void @_Z7mod_incRii(ptr noundef nonnull align 4 dereferenceable(4) %540, i32 noundef %543)
  br label %544

544:                                              ; preds = %539, %.preheader118.5
  %indvars.iv.next163.5 = add nuw nsw i64 %indvars.iv162.5, 1
  %exitcond165.5.not = icmp eq i64 %indvars.iv.next163.5, 65536
  br i1 %exitcond165.5.not, label %.preheader118.6, label %.preheader118.5, !llvm.loop !19

.preheader118.6:                                  ; preds = %544, %551
  %indvars.iv162.6 = phi i64 [ %indvars.iv.next163.6, %551 ], [ 0, %544 ]
  %545 = and i64 %indvars.iv162.6, 64
  %.not109.6 = icmp eq i64 %545, 0
  br i1 %.not109.6, label %551, label %546

546:                                              ; preds = %.preheader118.6
  %547 = getelementptr inbounds [65537 x i32], ptr @y, i64 0, i64 %indvars.iv162.6
  %548 = and i64 %indvars.iv162.6, 4294967231
  %549 = getelementptr inbounds [65537 x i32], ptr @y, i64 0, i64 %548
  %550 = load i32, ptr %549, align 4, !tbaa !10
  tail call void @_Z7mod_incRii(ptr noundef nonnull align 4 dereferenceable(4) %547, i32 noundef %550)
  br label %551

551:                                              ; preds = %546, %.preheader118.6
  %indvars.iv.next163.6 = add nuw nsw i64 %indvars.iv162.6, 1
  %exitcond165.6.not = icmp eq i64 %indvars.iv.next163.6, 65536
  br i1 %exitcond165.6.not, label %.preheader118.7, label %.preheader118.6, !llvm.loop !19

.preheader118.7:                                  ; preds = %551, %558
  %indvars.iv162.7 = phi i64 [ %indvars.iv.next163.7, %558 ], [ 0, %551 ]
  %552 = and i64 %indvars.iv162.7, 128
  %.not109.7 = icmp eq i64 %552, 0
  br i1 %.not109.7, label %558, label %553

553:                                              ; preds = %.preheader118.7
  %554 = getelementptr inbounds [65537 x i32], ptr @y, i64 0, i64 %indvars.iv162.7
  %555 = and i64 %indvars.iv162.7, 4294967167
  %556 = getelementptr inbounds [65537 x i32], ptr @y, i64 0, i64 %555
  %557 = load i32, ptr %556, align 4, !tbaa !10
  tail call void @_Z7mod_incRii(ptr noundef nonnull align 4 dereferenceable(4) %554, i32 noundef %557)
  br label %558

558:                                              ; preds = %553, %.preheader118.7
  %indvars.iv.next163.7 = add nuw nsw i64 %indvars.iv162.7, 1
  %exitcond165.7.not = icmp eq i64 %indvars.iv.next163.7, 65536
  br i1 %exitcond165.7.not, label %.preheader118.8, label %.preheader118.7, !llvm.loop !19

.preheader118.8:                                  ; preds = %558, %565
  %indvars.iv162.8 = phi i64 [ %indvars.iv.next163.8, %565 ], [ 0, %558 ]
  %559 = and i64 %indvars.iv162.8, 256
  %.not109.8 = icmp eq i64 %559, 0
  br i1 %.not109.8, label %565, label %560

560:                                              ; preds = %.preheader118.8
  %561 = getelementptr inbounds [65537 x i32], ptr @y, i64 0, i64 %indvars.iv162.8
  %562 = and i64 %indvars.iv162.8, 4294967039
  %563 = getelementptr inbounds [65537 x i32], ptr @y, i64 0, i64 %562
  %564 = load i32, ptr %563, align 4, !tbaa !10
  tail call void @_Z7mod_incRii(ptr noundef nonnull align 4 dereferenceable(4) %561, i32 noundef %564)
  br label %565

565:                                              ; preds = %560, %.preheader118.8
  %indvars.iv.next163.8 = add nuw nsw i64 %indvars.iv162.8, 1
  %exitcond165.8.not = icmp eq i64 %indvars.iv.next163.8, 65536
  br i1 %exitcond165.8.not, label %.preheader118.9, label %.preheader118.8, !llvm.loop !19

.preheader118.9:                                  ; preds = %565, %572
  %indvars.iv162.9 = phi i64 [ %indvars.iv.next163.9, %572 ], [ 0, %565 ]
  %566 = and i64 %indvars.iv162.9, 512
  %.not109.9 = icmp eq i64 %566, 0
  br i1 %.not109.9, label %572, label %567

567:                                              ; preds = %.preheader118.9
  %568 = getelementptr inbounds [65537 x i32], ptr @y, i64 0, i64 %indvars.iv162.9
  %569 = and i64 %indvars.iv162.9, 4294966783
  %570 = getelementptr inbounds [65537 x i32], ptr @y, i64 0, i64 %569
  %571 = load i32, ptr %570, align 4, !tbaa !10
  tail call void @_Z7mod_incRii(ptr noundef nonnull align 4 dereferenceable(4) %568, i32 noundef %571)
  br label %572

572:                                              ; preds = %567, %.preheader118.9
  %indvars.iv.next163.9 = add nuw nsw i64 %indvars.iv162.9, 1
  %exitcond165.9.not = icmp eq i64 %indvars.iv.next163.9, 65536
  br i1 %exitcond165.9.not, label %.preheader118.10, label %.preheader118.9, !llvm.loop !19

.preheader118.10:                                 ; preds = %572, %579
  %indvars.iv162.10 = phi i64 [ %indvars.iv.next163.10, %579 ], [ 0, %572 ]
  %573 = and i64 %indvars.iv162.10, 1024
  %.not109.10 = icmp eq i64 %573, 0
  br i1 %.not109.10, label %579, label %574

574:                                              ; preds = %.preheader118.10
  %575 = getelementptr inbounds [65537 x i32], ptr @y, i64 0, i64 %indvars.iv162.10
  %576 = and i64 %indvars.iv162.10, 4294966271
  %577 = getelementptr inbounds [65537 x i32], ptr @y, i64 0, i64 %576
  %578 = load i32, ptr %577, align 4, !tbaa !10
  tail call void @_Z7mod_incRii(ptr noundef nonnull align 4 dereferenceable(4) %575, i32 noundef %578)
  br label %579

579:                                              ; preds = %574, %.preheader118.10
  %indvars.iv.next163.10 = add nuw nsw i64 %indvars.iv162.10, 1
  %exitcond165.10.not = icmp eq i64 %indvars.iv.next163.10, 65536
  br i1 %exitcond165.10.not, label %.preheader118.11, label %.preheader118.10, !llvm.loop !19

.preheader118.11:                                 ; preds = %579, %586
  %indvars.iv162.11 = phi i64 [ %indvars.iv.next163.11, %586 ], [ 0, %579 ]
  %580 = and i64 %indvars.iv162.11, 2048
  %.not109.11 = icmp eq i64 %580, 0
  br i1 %.not109.11, label %586, label %581

581:                                              ; preds = %.preheader118.11
  %582 = getelementptr inbounds [65537 x i32], ptr @y, i64 0, i64 %indvars.iv162.11
  %583 = and i64 %indvars.iv162.11, 4294965247
  %584 = getelementptr inbounds [65537 x i32], ptr @y, i64 0, i64 %583
  %585 = load i32, ptr %584, align 4, !tbaa !10
  tail call void @_Z7mod_incRii(ptr noundef nonnull align 4 dereferenceable(4) %582, i32 noundef %585)
  br label %586

586:                                              ; preds = %581, %.preheader118.11
  %indvars.iv.next163.11 = add nuw nsw i64 %indvars.iv162.11, 1
  %exitcond165.11.not = icmp eq i64 %indvars.iv.next163.11, 65536
  br i1 %exitcond165.11.not, label %.preheader118.12, label %.preheader118.11, !llvm.loop !19

.preheader118.12:                                 ; preds = %586, %593
  %indvars.iv162.12 = phi i64 [ %indvars.iv.next163.12, %593 ], [ 0, %586 ]
  %587 = and i64 %indvars.iv162.12, 4096
  %.not109.12 = icmp eq i64 %587, 0
  br i1 %.not109.12, label %593, label %588

588:                                              ; preds = %.preheader118.12
  %589 = getelementptr inbounds [65537 x i32], ptr @y, i64 0, i64 %indvars.iv162.12
  %590 = and i64 %indvars.iv162.12, 4294963199
  %591 = getelementptr inbounds [65537 x i32], ptr @y, i64 0, i64 %590
  %592 = load i32, ptr %591, align 4, !tbaa !10
  tail call void @_Z7mod_incRii(ptr noundef nonnull align 4 dereferenceable(4) %589, i32 noundef %592)
  br label %593

593:                                              ; preds = %588, %.preheader118.12
  %indvars.iv.next163.12 = add nuw nsw i64 %indvars.iv162.12, 1
  %exitcond165.12.not = icmp eq i64 %indvars.iv.next163.12, 65536
  br i1 %exitcond165.12.not, label %.preheader118.13, label %.preheader118.12, !llvm.loop !19

.preheader118.13:                                 ; preds = %593, %600
  %indvars.iv162.13 = phi i64 [ %indvars.iv.next163.13, %600 ], [ 0, %593 ]
  %594 = and i64 %indvars.iv162.13, 8192
  %.not109.13 = icmp eq i64 %594, 0
  br i1 %.not109.13, label %600, label %595

595:                                              ; preds = %.preheader118.13
  %596 = getelementptr inbounds [65537 x i32], ptr @y, i64 0, i64 %indvars.iv162.13
  %597 = and i64 %indvars.iv162.13, 4294959103
  %598 = getelementptr inbounds [65537 x i32], ptr @y, i64 0, i64 %597
  %599 = load i32, ptr %598, align 4, !tbaa !10
  tail call void @_Z7mod_incRii(ptr noundef nonnull align 4 dereferenceable(4) %596, i32 noundef %599)
  br label %600

600:                                              ; preds = %595, %.preheader118.13
  %indvars.iv.next163.13 = add nuw nsw i64 %indvars.iv162.13, 1
  %exitcond165.13.not = icmp eq i64 %indvars.iv.next163.13, 65536
  br i1 %exitcond165.13.not, label %.preheader118.14, label %.preheader118.13, !llvm.loop !19

.preheader118.14:                                 ; preds = %600, %607
  %indvars.iv162.14 = phi i64 [ %indvars.iv.next163.14, %607 ], [ 0, %600 ]
  %601 = and i64 %indvars.iv162.14, 16384
  %.not109.14 = icmp eq i64 %601, 0
  br i1 %.not109.14, label %607, label %602

602:                                              ; preds = %.preheader118.14
  %603 = getelementptr inbounds [65537 x i32], ptr @y, i64 0, i64 %indvars.iv162.14
  %604 = and i64 %indvars.iv162.14, 4294950911
  %605 = getelementptr inbounds [65537 x i32], ptr @y, i64 0, i64 %604
  %606 = load i32, ptr %605, align 4, !tbaa !10
  tail call void @_Z7mod_incRii(ptr noundef nonnull align 4 dereferenceable(4) %603, i32 noundef %606)
  br label %607

607:                                              ; preds = %602, %.preheader118.14
  %indvars.iv.next163.14 = add nuw nsw i64 %indvars.iv162.14, 1
  %exitcond165.14.not = icmp eq i64 %indvars.iv.next163.14, 65536
  br i1 %exitcond165.14.not, label %.preheader118.15, label %.preheader118.14, !llvm.loop !19

.preheader118.15:                                 ; preds = %607, %614
  %indvars.iv162.15 = phi i64 [ %indvars.iv.next163.15, %614 ], [ 0, %607 ]
  %608 = and i64 %indvars.iv162.15, 32768
  %.not109.15 = icmp eq i64 %608, 0
  br i1 %.not109.15, label %614, label %609

609:                                              ; preds = %.preheader118.15
  %610 = getelementptr inbounds [65537 x i32], ptr @y, i64 0, i64 %indvars.iv162.15
  %611 = and i64 %indvars.iv162.15, 4294934527
  %612 = getelementptr inbounds [65537 x i32], ptr @y, i64 0, i64 %611
  %613 = load i32, ptr %612, align 4, !tbaa !10
  tail call void @_Z7mod_incRii(ptr noundef nonnull align 4 dereferenceable(4) %610, i32 noundef %613)
  br label %614

614:                                              ; preds = %609, %.preheader118.15
  %indvars.iv.next163.15 = add nuw nsw i64 %indvars.iv162.15, 1
  %exitcond165.15.not = icmp eq i64 %indvars.iv.next163.15, 65536
  br i1 %exitcond165.15.not, label %.preheader117, label %.preheader118.15, !llvm.loop !19

615:                                              ; preds = %.preheader118, %622
  %indvars.iv162 = phi i64 [ 0, %.preheader118 ], [ %indvars.iv.next163, %622 ]
  %616 = and i64 %indvars.iv162, 1
  %.not109 = icmp eq i64 %616, 0
  br i1 %.not109, label %622, label %617

617:                                              ; preds = %615
  %618 = getelementptr inbounds [65537 x i32], ptr @y, i64 0, i64 %indvars.iv162
  %619 = and i64 %indvars.iv162, 4294967294
  %620 = getelementptr inbounds [65537 x i32], ptr @y, i64 0, i64 %619
  %621 = load i32, ptr %620, align 4, !tbaa !10
  tail call void @_Z7mod_incRii(ptr noundef nonnull align 4 dereferenceable(4) %618, i32 noundef %621)
  br label %622

622:                                              ; preds = %615, %617
  %indvars.iv.next163 = add nuw nsw i64 %indvars.iv162, 1
  %exitcond165.not = icmp eq i64 %indvars.iv.next163, 65536
  br i1 %exitcond165.not, label %.preheader118.1, label %615, !llvm.loop !19

.preheader117:                                    ; preds = %614, %.preheader117
  %indvars.iv167 = phi i64 [ %indvars.iv.next168.1, %.preheader117 ], [ 0, %614 ]
  %623 = getelementptr inbounds [65537 x i32], ptr @x, i64 0, i64 %indvars.iv167
  %624 = load i32, ptr %623, align 4, !tbaa !10
  %625 = sext i32 %624 to i64
  %626 = getelementptr inbounds [65537 x i32], ptr @y, i64 0, i64 %indvars.iv167
  %627 = load i32, ptr %626, align 4, !tbaa !10
  %628 = sext i32 %627 to i64
  %629 = mul nsw i64 %628, %625
  %630 = srem i64 %629, 1000000007
  %631 = trunc nsw i64 %630 to i32
  %632 = getelementptr inbounds [65537 x i32], ptr @z, i64 0, i64 %indvars.iv167
  store i32 %631, ptr %632, align 4, !tbaa !10
  %indvars.iv.next168 = or disjoint i64 %indvars.iv167, 1
  %633 = getelementptr inbounds [65537 x i32], ptr @x, i64 0, i64 %indvars.iv.next168
  %634 = load i32, ptr %633, align 4, !tbaa !10
  %635 = sext i32 %634 to i64
  %636 = getelementptr inbounds [65537 x i32], ptr @y, i64 0, i64 %indvars.iv.next168
  %637 = load i32, ptr %636, align 4, !tbaa !10
  %638 = sext i32 %637 to i64
  %639 = mul nsw i64 %638, %635
  %640 = srem i64 %639, 1000000007
  %641 = trunc nsw i64 %640 to i32
  %642 = getelementptr inbounds [65537 x i32], ptr @z, i64 0, i64 %indvars.iv.next168
  store i32 %641, ptr %642, align 4, !tbaa !10
  %indvars.iv.next168.1 = add nuw nsw i64 %indvars.iv167, 2
  %exitcond170.not.1 = icmp eq i64 %indvars.iv.next168.1, 65536
  br i1 %exitcond170.not.1, label %.preheader115.preheader, label %.preheader117, !llvm.loop !20

.preheader115.1:                                  ; preds = %756, %649
  %indvars.iv171.1 = phi i64 [ %indvars.iv.next172.1, %649 ], [ 0, %756 ]
  %643 = and i64 %indvars.iv171.1, 2
  %.not108.1 = icmp eq i64 %643, 0
  br i1 %.not108.1, label %649, label %644

644:                                              ; preds = %.preheader115.1
  %645 = getelementptr inbounds [65537 x i32], ptr @z, i64 0, i64 %indvars.iv171.1
  %646 = and i64 %indvars.iv171.1, 4294967293
  %647 = getelementptr inbounds [65537 x i32], ptr @z, i64 0, i64 %646
  %648 = load i32, ptr %647, align 4, !tbaa !10
  tail call void @_Z7mod_decRii(ptr noundef nonnull align 4 dereferenceable(4) %645, i32 noundef %648)
  br label %649

649:                                              ; preds = %644, %.preheader115.1
  %indvars.iv.next172.1 = add nuw nsw i64 %indvars.iv171.1, 1
  %exitcond174.1.not = icmp eq i64 %indvars.iv.next172.1, 65536
  br i1 %exitcond174.1.not, label %.preheader115.2, label %.preheader115.1, !llvm.loop !21

.preheader115.2:                                  ; preds = %649, %656
  %indvars.iv171.2 = phi i64 [ %indvars.iv.next172.2, %656 ], [ 0, %649 ]
  %650 = and i64 %indvars.iv171.2, 4
  %.not108.2 = icmp eq i64 %650, 0
  br i1 %.not108.2, label %656, label %651

651:                                              ; preds = %.preheader115.2
  %652 = getelementptr inbounds [65537 x i32], ptr @z, i64 0, i64 %indvars.iv171.2
  %653 = and i64 %indvars.iv171.2, 4294967291
  %654 = getelementptr inbounds [65537 x i32], ptr @z, i64 0, i64 %653
  %655 = load i32, ptr %654, align 4, !tbaa !10
  tail call void @_Z7mod_decRii(ptr noundef nonnull align 4 dereferenceable(4) %652, i32 noundef %655)
  br label %656

656:                                              ; preds = %651, %.preheader115.2
  %indvars.iv.next172.2 = add nuw nsw i64 %indvars.iv171.2, 1
  %exitcond174.2.not = icmp eq i64 %indvars.iv.next172.2, 65536
  br i1 %exitcond174.2.not, label %.preheader115.3, label %.preheader115.2, !llvm.loop !21

.preheader115.3:                                  ; preds = %656, %663
  %indvars.iv171.3 = phi i64 [ %indvars.iv.next172.3, %663 ], [ 0, %656 ]
  %657 = and i64 %indvars.iv171.3, 8
  %.not108.3 = icmp eq i64 %657, 0
  br i1 %.not108.3, label %663, label %658

658:                                              ; preds = %.preheader115.3
  %659 = getelementptr inbounds [65537 x i32], ptr @z, i64 0, i64 %indvars.iv171.3
  %660 = and i64 %indvars.iv171.3, 4294967287
  %661 = getelementptr inbounds [65537 x i32], ptr @z, i64 0, i64 %660
  %662 = load i32, ptr %661, align 4, !tbaa !10
  tail call void @_Z7mod_decRii(ptr noundef nonnull align 4 dereferenceable(4) %659, i32 noundef %662)
  br label %663

663:                                              ; preds = %658, %.preheader115.3
  %indvars.iv.next172.3 = add nuw nsw i64 %indvars.iv171.3, 1
  %exitcond174.3.not = icmp eq i64 %indvars.iv.next172.3, 65536
  br i1 %exitcond174.3.not, label %.preheader115.4, label %.preheader115.3, !llvm.loop !21

.preheader115.4:                                  ; preds = %663, %670
  %indvars.iv171.4 = phi i64 [ %indvars.iv.next172.4, %670 ], [ 0, %663 ]
  %664 = and i64 %indvars.iv171.4, 16
  %.not108.4 = icmp eq i64 %664, 0
  br i1 %.not108.4, label %670, label %665

665:                                              ; preds = %.preheader115.4
  %666 = getelementptr inbounds [65537 x i32], ptr @z, i64 0, i64 %indvars.iv171.4
  %667 = and i64 %indvars.iv171.4, 4294967279
  %668 = getelementptr inbounds [65537 x i32], ptr @z, i64 0, i64 %667
  %669 = load i32, ptr %668, align 4, !tbaa !10
  tail call void @_Z7mod_decRii(ptr noundef nonnull align 4 dereferenceable(4) %666, i32 noundef %669)
  br label %670

670:                                              ; preds = %665, %.preheader115.4
  %indvars.iv.next172.4 = add nuw nsw i64 %indvars.iv171.4, 1
  %exitcond174.4.not = icmp eq i64 %indvars.iv.next172.4, 65536
  br i1 %exitcond174.4.not, label %.preheader115.5, label %.preheader115.4, !llvm.loop !21

.preheader115.5:                                  ; preds = %670, %677
  %indvars.iv171.5 = phi i64 [ %indvars.iv.next172.5, %677 ], [ 0, %670 ]
  %671 = and i64 %indvars.iv171.5, 32
  %.not108.5 = icmp eq i64 %671, 0
  br i1 %.not108.5, label %677, label %672

672:                                              ; preds = %.preheader115.5
  %673 = getelementptr inbounds [65537 x i32], ptr @z, i64 0, i64 %indvars.iv171.5
  %674 = and i64 %indvars.iv171.5, 4294967263
  %675 = getelementptr inbounds [65537 x i32], ptr @z, i64 0, i64 %674
  %676 = load i32, ptr %675, align 4, !tbaa !10
  tail call void @_Z7mod_decRii(ptr noundef nonnull align 4 dereferenceable(4) %673, i32 noundef %676)
  br label %677

677:                                              ; preds = %672, %.preheader115.5
  %indvars.iv.next172.5 = add nuw nsw i64 %indvars.iv171.5, 1
  %exitcond174.5.not = icmp eq i64 %indvars.iv.next172.5, 65536
  br i1 %exitcond174.5.not, label %.preheader115.6, label %.preheader115.5, !llvm.loop !21

.preheader115.6:                                  ; preds = %677, %684
  %indvars.iv171.6 = phi i64 [ %indvars.iv.next172.6, %684 ], [ 0, %677 ]
  %678 = and i64 %indvars.iv171.6, 64
  %.not108.6 = icmp eq i64 %678, 0
  br i1 %.not108.6, label %684, label %679

679:                                              ; preds = %.preheader115.6
  %680 = getelementptr inbounds [65537 x i32], ptr @z, i64 0, i64 %indvars.iv171.6
  %681 = and i64 %indvars.iv171.6, 4294967231
  %682 = getelementptr inbounds [65537 x i32], ptr @z, i64 0, i64 %681
  %683 = load i32, ptr %682, align 4, !tbaa !10
  tail call void @_Z7mod_decRii(ptr noundef nonnull align 4 dereferenceable(4) %680, i32 noundef %683)
  br label %684

684:                                              ; preds = %679, %.preheader115.6
  %indvars.iv.next172.6 = add nuw nsw i64 %indvars.iv171.6, 1
  %exitcond174.6.not = icmp eq i64 %indvars.iv.next172.6, 65536
  br i1 %exitcond174.6.not, label %.preheader115.7, label %.preheader115.6, !llvm.loop !21

.preheader115.7:                                  ; preds = %684, %691
  %indvars.iv171.7 = phi i64 [ %indvars.iv.next172.7, %691 ], [ 0, %684 ]
  %685 = and i64 %indvars.iv171.7, 128
  %.not108.7 = icmp eq i64 %685, 0
  br i1 %.not108.7, label %691, label %686

686:                                              ; preds = %.preheader115.7
  %687 = getelementptr inbounds [65537 x i32], ptr @z, i64 0, i64 %indvars.iv171.7
  %688 = and i64 %indvars.iv171.7, 4294967167
  %689 = getelementptr inbounds [65537 x i32], ptr @z, i64 0, i64 %688
  %690 = load i32, ptr %689, align 4, !tbaa !10
  tail call void @_Z7mod_decRii(ptr noundef nonnull align 4 dereferenceable(4) %687, i32 noundef %690)
  br label %691

691:                                              ; preds = %686, %.preheader115.7
  %indvars.iv.next172.7 = add nuw nsw i64 %indvars.iv171.7, 1
  %exitcond174.7.not = icmp eq i64 %indvars.iv.next172.7, 65536
  br i1 %exitcond174.7.not, label %.preheader115.8, label %.preheader115.7, !llvm.loop !21

.preheader115.8:                                  ; preds = %691, %698
  %indvars.iv171.8 = phi i64 [ %indvars.iv.next172.8, %698 ], [ 0, %691 ]
  %692 = and i64 %indvars.iv171.8, 256
  %.not108.8 = icmp eq i64 %692, 0
  br i1 %.not108.8, label %698, label %693

693:                                              ; preds = %.preheader115.8
  %694 = getelementptr inbounds [65537 x i32], ptr @z, i64 0, i64 %indvars.iv171.8
  %695 = and i64 %indvars.iv171.8, 4294967039
  %696 = getelementptr inbounds [65537 x i32], ptr @z, i64 0, i64 %695
  %697 = load i32, ptr %696, align 4, !tbaa !10
  tail call void @_Z7mod_decRii(ptr noundef nonnull align 4 dereferenceable(4) %694, i32 noundef %697)
  br label %698

698:                                              ; preds = %693, %.preheader115.8
  %indvars.iv.next172.8 = add nuw nsw i64 %indvars.iv171.8, 1
  %exitcond174.8.not = icmp eq i64 %indvars.iv.next172.8, 65536
  br i1 %exitcond174.8.not, label %.preheader115.9, label %.preheader115.8, !llvm.loop !21

.preheader115.9:                                  ; preds = %698, %705
  %indvars.iv171.9 = phi i64 [ %indvars.iv.next172.9, %705 ], [ 0, %698 ]
  %699 = and i64 %indvars.iv171.9, 512
  %.not108.9 = icmp eq i64 %699, 0
  br i1 %.not108.9, label %705, label %700

700:                                              ; preds = %.preheader115.9
  %701 = getelementptr inbounds [65537 x i32], ptr @z, i64 0, i64 %indvars.iv171.9
  %702 = and i64 %indvars.iv171.9, 4294966783
  %703 = getelementptr inbounds [65537 x i32], ptr @z, i64 0, i64 %702
  %704 = load i32, ptr %703, align 4, !tbaa !10
  tail call void @_Z7mod_decRii(ptr noundef nonnull align 4 dereferenceable(4) %701, i32 noundef %704)
  br label %705

705:                                              ; preds = %700, %.preheader115.9
  %indvars.iv.next172.9 = add nuw nsw i64 %indvars.iv171.9, 1
  %exitcond174.9.not = icmp eq i64 %indvars.iv.next172.9, 65536
  br i1 %exitcond174.9.not, label %.preheader115.10, label %.preheader115.9, !llvm.loop !21

.preheader115.10:                                 ; preds = %705, %712
  %indvars.iv171.10 = phi i64 [ %indvars.iv.next172.10, %712 ], [ 0, %705 ]
  %706 = and i64 %indvars.iv171.10, 1024
  %.not108.10 = icmp eq i64 %706, 0
  br i1 %.not108.10, label %712, label %707

707:                                              ; preds = %.preheader115.10
  %708 = getelementptr inbounds [65537 x i32], ptr @z, i64 0, i64 %indvars.iv171.10
  %709 = and i64 %indvars.iv171.10, 4294966271
  %710 = getelementptr inbounds [65537 x i32], ptr @z, i64 0, i64 %709
  %711 = load i32, ptr %710, align 4, !tbaa !10
  tail call void @_Z7mod_decRii(ptr noundef nonnull align 4 dereferenceable(4) %708, i32 noundef %711)
  br label %712

712:                                              ; preds = %707, %.preheader115.10
  %indvars.iv.next172.10 = add nuw nsw i64 %indvars.iv171.10, 1
  %exitcond174.10.not = icmp eq i64 %indvars.iv.next172.10, 65536
  br i1 %exitcond174.10.not, label %.preheader115.11, label %.preheader115.10, !llvm.loop !21

.preheader115.11:                                 ; preds = %712, %719
  %indvars.iv171.11 = phi i64 [ %indvars.iv.next172.11, %719 ], [ 0, %712 ]
  %713 = and i64 %indvars.iv171.11, 2048
  %.not108.11 = icmp eq i64 %713, 0
  br i1 %.not108.11, label %719, label %714

714:                                              ; preds = %.preheader115.11
  %715 = getelementptr inbounds [65537 x i32], ptr @z, i64 0, i64 %indvars.iv171.11
  %716 = and i64 %indvars.iv171.11, 4294965247
  %717 = getelementptr inbounds [65537 x i32], ptr @z, i64 0, i64 %716
  %718 = load i32, ptr %717, align 4, !tbaa !10
  tail call void @_Z7mod_decRii(ptr noundef nonnull align 4 dereferenceable(4) %715, i32 noundef %718)
  br label %719

719:                                              ; preds = %714, %.preheader115.11
  %indvars.iv.next172.11 = add nuw nsw i64 %indvars.iv171.11, 1
  %exitcond174.11.not = icmp eq i64 %indvars.iv.next172.11, 65536
  br i1 %exitcond174.11.not, label %.preheader115.12, label %.preheader115.11, !llvm.loop !21

.preheader115.12:                                 ; preds = %719, %726
  %indvars.iv171.12 = phi i64 [ %indvars.iv.next172.12, %726 ], [ 0, %719 ]
  %720 = and i64 %indvars.iv171.12, 4096
  %.not108.12 = icmp eq i64 %720, 0
  br i1 %.not108.12, label %726, label %721

721:                                              ; preds = %.preheader115.12
  %722 = getelementptr inbounds [65537 x i32], ptr @z, i64 0, i64 %indvars.iv171.12
  %723 = and i64 %indvars.iv171.12, 4294963199
  %724 = getelementptr inbounds [65537 x i32], ptr @z, i64 0, i64 %723
  %725 = load i32, ptr %724, align 4, !tbaa !10
  tail call void @_Z7mod_decRii(ptr noundef nonnull align 4 dereferenceable(4) %722, i32 noundef %725)
  br label %726

726:                                              ; preds = %721, %.preheader115.12
  %indvars.iv.next172.12 = add nuw nsw i64 %indvars.iv171.12, 1
  %exitcond174.12.not = icmp eq i64 %indvars.iv.next172.12, 65536
  br i1 %exitcond174.12.not, label %.preheader115.13, label %.preheader115.12, !llvm.loop !21

.preheader115.13:                                 ; preds = %726, %733
  %indvars.iv171.13 = phi i64 [ %indvars.iv.next172.13, %733 ], [ 0, %726 ]
  %727 = and i64 %indvars.iv171.13, 8192
  %.not108.13 = icmp eq i64 %727, 0
  br i1 %.not108.13, label %733, label %728

728:                                              ; preds = %.preheader115.13
  %729 = getelementptr inbounds [65537 x i32], ptr @z, i64 0, i64 %indvars.iv171.13
  %730 = and i64 %indvars.iv171.13, 4294959103
  %731 = getelementptr inbounds [65537 x i32], ptr @z, i64 0, i64 %730
  %732 = load i32, ptr %731, align 4, !tbaa !10
  tail call void @_Z7mod_decRii(ptr noundef nonnull align 4 dereferenceable(4) %729, i32 noundef %732)
  br label %733

733:                                              ; preds = %728, %.preheader115.13
  %indvars.iv.next172.13 = add nuw nsw i64 %indvars.iv171.13, 1
  %exitcond174.13.not = icmp eq i64 %indvars.iv.next172.13, 65536
  br i1 %exitcond174.13.not, label %.preheader115.14, label %.preheader115.13, !llvm.loop !21

.preheader115.14:                                 ; preds = %733, %740
  %indvars.iv171.14 = phi i64 [ %indvars.iv.next172.14, %740 ], [ 0, %733 ]
  %734 = and i64 %indvars.iv171.14, 16384
  %.not108.14 = icmp eq i64 %734, 0
  br i1 %.not108.14, label %740, label %735

735:                                              ; preds = %.preheader115.14
  %736 = getelementptr inbounds [65537 x i32], ptr @z, i64 0, i64 %indvars.iv171.14
  %737 = and i64 %indvars.iv171.14, 4294950911
  %738 = getelementptr inbounds [65537 x i32], ptr @z, i64 0, i64 %737
  %739 = load i32, ptr %738, align 4, !tbaa !10
  tail call void @_Z7mod_decRii(ptr noundef nonnull align 4 dereferenceable(4) %736, i32 noundef %739)
  br label %740

740:                                              ; preds = %735, %.preheader115.14
  %indvars.iv.next172.14 = add nuw nsw i64 %indvars.iv171.14, 1
  %exitcond174.14.not = icmp eq i64 %indvars.iv.next172.14, 65536
  br i1 %exitcond174.14.not, label %.preheader115.15, label %.preheader115.14, !llvm.loop !21

.preheader115.15:                                 ; preds = %740, %747
  %indvars.iv171.15 = phi i64 [ %indvars.iv.next172.15, %747 ], [ 0, %740 ]
  %741 = and i64 %indvars.iv171.15, 32768
  %.not108.15 = icmp eq i64 %741, 0
  br i1 %.not108.15, label %747, label %742

742:                                              ; preds = %.preheader115.15
  %743 = getelementptr inbounds [65537 x i32], ptr @z, i64 0, i64 %indvars.iv171.15
  %744 = and i64 %indvars.iv171.15, 4294934527
  %745 = getelementptr inbounds [65537 x i32], ptr @z, i64 0, i64 %744
  %746 = load i32, ptr %745, align 4, !tbaa !10
  tail call void @_Z7mod_decRii(ptr noundef nonnull align 4 dereferenceable(4) %743, i32 noundef %746)
  br label %747

747:                                              ; preds = %742, %.preheader115.15
  %indvars.iv.next172.15 = add nuw nsw i64 %indvars.iv171.15, 1
  %exitcond174.15.not = icmp eq i64 %indvars.iv.next172.15, 65536
  br i1 %exitcond174.15.not, label %.preheader, label %.preheader115.15, !llvm.loop !21

.preheader:                                       ; preds = %747
  %748 = sext i32 %23 to i64
  %749 = getelementptr inbounds [125 x %struct.Node], ptr @que, i64 0, i64 %748
  br label %757

.preheader115.preheader:                          ; preds = %.preheader117, %756
  %indvars.iv171 = phi i64 [ %indvars.iv.next172, %756 ], [ 0, %.preheader117 ]
  %750 = and i64 %indvars.iv171, 1
  %.not108 = icmp eq i64 %750, 0
  br i1 %.not108, label %756, label %751

751:                                              ; preds = %.preheader115.preheader
  %752 = getelementptr inbounds [65537 x i32], ptr @z, i64 0, i64 %indvars.iv171
  %753 = and i64 %indvars.iv171, 4294967294
  %754 = getelementptr inbounds [65537 x i32], ptr @z, i64 0, i64 %753
  %755 = load i32, ptr %754, align 4, !tbaa !10
  tail call void @_Z7mod_decRii(ptr noundef nonnull align 4 dereferenceable(4) %752, i32 noundef %755)
  br label %756

756:                                              ; preds = %.preheader115.preheader, %751
  %indvars.iv.next172 = add nuw nsw i64 %indvars.iv171, 1
  %exitcond174.not = icmp eq i64 %indvars.iv.next172, 65536
  br i1 %exitcond174.not, label %.preheader115.1, label %.preheader115.preheader, !llvm.loop !21

757:                                              ; preds = %.preheader, %757
  %indvars.iv176 = phi i64 [ 0, %.preheader ], [ %indvars.iv.next177, %757 ]
  %758 = getelementptr inbounds [65537 x i32], ptr %749, i64 0, i64 %indvars.iv176
  %759 = getelementptr inbounds [65537 x i32], ptr @z, i64 0, i64 %indvars.iv176
  %760 = load i32, ptr %759, align 4, !tbaa !10
  tail call void @_Z7mod_incRii(ptr noundef nonnull align 4 dereferenceable(4) %758, i32 noundef %760)
  %indvars.iv.next177 = add nuw nsw i64 %indvars.iv176, 1
  %exitcond179.not = icmp eq i64 %indvars.iv.next177, 65536
  br i1 %exitcond179.not, label %.loopexit, label %757, !llvm.loop !22

.loopexit:                                        ; preds = %757, %12, %393, %10
  %.0105 = phi i32 [ %.0106, %10 ], [ %23, %393 ], [ %23, %12 ], [ %23, %757 ]
  ret i32 %.0105
}

; Function Attrs: mustprogress 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: inlinehint mustprogress nounwind uwtable
declare dso_local void @_Z7mod_incRii(ptr noundef nonnull align 4 dereferenceable(4), i32 noundef) local_unnamed_addr #2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_Z7mod_decRii(ptr noundef nonnull align 4 dereferenceable(4), i32 noundef) local_unnamed_addr #2

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

!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++ TBAA"}
!9 = !{!7, !7, i64 0}
!10 = !{!11, !11, i64 0}
!11 = !{!"int", !7, i64 0}
!12 = distinct !{!12, !13}
!13 = !{!"llvm.loop.mustprogress"}
!14 = distinct !{!14, !13}
!15 = distinct !{!15, !13}
!16 = distinct !{!16, !13}
!17 = distinct !{!17, !13}
!18 = distinct !{!18, !13}
!19 = distinct !{!19, !13}
!20 = distinct !{!20, !13}
!21 = distinct !{!21, !13}
!22 = distinct !{!22, !13}


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