diff --git a/bench/abc/optimized/dchChoice.c.ll b/bench/abc/optimized/dchChoice.c.ll index c8f9afb7bcf..bd8cea757bb 100644 --- a/bench/abc/optimized/dchChoice.c.ll +++ b/bench/abc/optimized/dchChoice.c.ll @@ -196,53 +196,59 @@ Aig_ObjEquiv.exit: ; preds = %12, %13 } ; Function Attrs: nofree nosync nounwind memory(readwrite, inaccessiblemem: none) uwtable -define i32 @Dch_ObjMarkTfi_rec(ptr noundef %0, ptr noundef %1) local_unnamed_addr #0 { +define i32 @Dch_ObjMarkTfi_rec(ptr nocapture noundef readonly %0, ptr noundef %1) local_unnamed_addr #0 { %3 = icmp eq ptr %1, null - br i1 %3, label %26, label %4 + br i1 %3, label %.loopexit, label %.lr.ph -4: ; preds = %2 - %5 = getelementptr i8, ptr %0, i64 312 - %.val = load i32, ptr %5, align 8 - %6 = getelementptr i8, ptr %1, i64 32 +.lr.ph: ; preds = %2 + %4 = getelementptr i8, ptr %0, i64 312 + br label %5 + +5: ; preds = %.lr.ph, %tailrecurse + %.tr2933 = phi ptr [ %1, %.lr.ph ], [ %22, %tailrecurse ] + %accumulator.tr32 = phi i32 [ 0, %.lr.ph ], [ %23, %tailrecurse ] + %.val = load i32, ptr %4, align 8 + %6 = getelementptr i8, ptr %.tr2933, i64 32 %.val20 = load i32, ptr %6, align 8 %.not = icmp eq i32 %.val20, %.val - br i1 %.not, label %26, label %7 + br i1 %.not, label %.loopexit, label %7 -7: ; preds = %4 - %8 = getelementptr i8, ptr %1, i64 24 +7: ; preds = %5 + %8 = getelementptr i8, ptr %.tr2933, i64 24 %.val23 = load i64, ptr %8, align 8 %9 = and i64 %.val23, 7 %.not28 = icmp eq i64 %9, 2 - br i1 %.not28, label %10, label %13 + br i1 %.not28, label %10, label %tailrecurse 10: ; preds = %7 %11 = add nsw i32 %.val, -1 %12 = icmp ne i32 %11, %.val20 + %13 = zext i1 %12 to i32 store i32 %.val, ptr %6, align 8 - br label %26 + br label %.loopexit -13: ; preds = %7 +tailrecurse: ; preds = %7 store i32 %.val, ptr %6, align 8 - %14 = getelementptr i8, ptr %1, i64 8 + %14 = getelementptr i8, ptr %.tr2933, i64 8 %.val24 = load ptr, ptr %14, align 8 %15 = ptrtoint ptr %.val24 to i64 %16 = and i64 %15, -2 %17 = inttoptr i64 %16 to ptr %18 = tail call i32 @Dch_ObjMarkTfi_rec(ptr noundef nonnull %0, ptr noundef %17), !range !7 - %19 = getelementptr i8, ptr %1, i64 16 + %19 = getelementptr i8, ptr %.tr2933, i64 16 %.val25 = load ptr, ptr %19, align 8 %20 = ptrtoint ptr %.val25 to i64 %21 = and i64 %20, -2 %22 = inttoptr i64 %21 to ptr - %23 = tail call i32 @Dch_ObjMarkTfi_rec(ptr noundef nonnull %0, ptr noundef %22), !range !7 - %24 = sub nsw i32 0, %23 - %25 = icmp ne i32 %18, %24 - br label %26 - -26: ; preds = %4, %2, %13, %10 - %.0.shrunk = phi i1 [ %12, %10 ], [ %25, %13 ], [ false, %2 ], [ false, %4 ] - %.0 = zext i1 %.0.shrunk to i32 - ret i32 %.0 + %23 = or i32 %18, %accumulator.tr32 + %24 = icmp eq i64 %21, 0 + br i1 %24, label %.loopexit, label %5 + +.loopexit: ; preds = %tailrecurse, %5, %2, %10 + %accumulator.tr31 = phi i32 [ %accumulator.tr32, %10 ], [ 0, %2 ], [ %23, %tailrecurse ], [ %accumulator.tr32, %5 ] + %.0 = phi i32 [ %13, %10 ], [ 0, %2 ], [ 0, %5 ], [ 0, %tailrecurse ] + %accumulator.ret.tr = or i32 %.0, %accumulator.tr31 + ret i32 %accumulator.ret.tr } ; Function Attrs: nounwind uwtable @@ -733,7 +739,7 @@ define internal void @Abc_Print(i32 %0, ptr noundef %1, ...) unnamed_addr #1 { 5: ; preds = %2 %6 = tail call i32 (...) @Abc_FrameIsBridgeMode() #11 - call void @llvm.va_start(ptr nonnull %3) + call void @llvm.va_start.p0(ptr nonnull %3) %7 = call i32 (...) @Abc_FrameIsBridgeMode() #11 %.not9 = icmp eq i32 %7, 0 br i1 %.not9, label %14, label %8 @@ -752,7 +758,7 @@ define internal void @Abc_Print(i32 %0, ptr noundef %1, ...) unnamed_addr #1 { br label %16 16: ; preds = %14, %8 - call void @llvm.va_end(ptr nonnull %3) + call void @llvm.va_end.p0(ptr nonnull %3) br label %17 17: ; preds = %2, %16 @@ -1483,19 +1489,19 @@ declare i32 @Abc_FrameIsBridgeMode(...) local_unnamed_addr #2 declare i32 @Gia_ManToBridgeText(ptr noundef, i32 noundef, ptr noundef) local_unnamed_addr #2 -; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn -declare void @llvm.va_start(ptr) #8 - declare ptr @vnsprintf(ptr noundef, ptr noundef) local_unnamed_addr #2 ; Function Attrs: mustprogress nofree nounwind willreturn memory(argmem: read) -declare i64 @strlen(ptr nocapture noundef) local_unnamed_addr #9 +declare i64 @strlen(ptr nocapture noundef) local_unnamed_addr #8 ; Function Attrs: nofree nounwind declare noundef i32 @vprintf(ptr nocapture noundef readonly, ptr noundef) local_unnamed_addr #5 ; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn -declare void @llvm.va_end(ptr) #8 +declare void @llvm.va_start.p0(ptr) #9 + +; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn +declare void @llvm.va_end.p0(ptr) #9 ; Function Attrs: nofree nounwind declare noundef i32 @puts(ptr nocapture noundef readonly) local_unnamed_addr #10 @@ -1508,8 +1514,8 @@ attributes #4 = { nofree nounwind uwtable "frame-pointer"="all" "min-legal-vecto attributes #5 = { nofree nounwind "frame-pointer"="all" "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 #6 = { mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "frame-pointer"="all" "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 #7 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "frame-pointer"="all" "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 #8 = { mustprogress nocallback nofree nosync nounwind willreturn } -attributes #9 = { mustprogress nofree nounwind willreturn memory(argmem: read) "frame-pointer"="all" "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 #8 = { mustprogress nofree nounwind willreturn memory(argmem: read) "frame-pointer"="all" "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 #9 = { mustprogress nocallback nofree nosync nounwind willreturn } attributes #10 = { nofree nounwind } attributes #11 = { nounwind } attributes #12 = { nounwind willreturn memory(read) } diff --git a/bench/abc/optimized/kitDsd.c.ll b/bench/abc/optimized/kitDsd.c.ll index 9cd23be4e2f..604bb65c032 100644 --- a/bench/abc/optimized/kitDsd.c.ll +++ b/bench/abc/optimized/kitDsd.c.ll @@ -6852,8 +6852,8 @@ tailrecurse.outer: ; preds = %tailrecurse.outer.b br label %tailrecurse.outer660 tailrecurse.outer660: ; preds = %tailrecurse.outer660.backedge, %tailrecurse.outer - %.tr649.ph661 = phi i32 [ %.tr649.ph, %tailrecurse.outer ], [ %285, %tailrecurse.outer660.backedge ] - %.tr650.ph662 = phi ptr [ %.tr650.ph, %tailrecurse.outer ], [ %289, %tailrecurse.outer660.backedge ] + %.tr649.ph661 = phi i32 [ %.tr649.ph, %tailrecurse.outer ], [ %288, %tailrecurse.outer660.backedge ] + %.tr650.ph662 = phi ptr [ %.tr650.ph, %tailrecurse.outer ], [ %292, %tailrecurse.outer660.backedge ] br label %tailrecurse tailrecurse: ; preds = %tailrecurse.backedge, %tailrecurse.outer660 @@ -6991,8 +6991,8 @@ tailrecurse: ; preds = %tailrecurse.backedg %.not484 = icmp eq i32 %99, 0 br i1 %.not484, label %.preheader657, label %.loopexit658 -.preheader657: ; preds = %98, %148 - %.0474.in = phi i32 [ %.0474, %148 ], [ %85, %98 ] +.preheader657: ; preds = %98, %150 + %.0474.in = phi i32 [ %.0474, %150 ], [ %85, %98 ] %.0474 = add nsw i32 %.0474.in, -1 %100 = icmp sgt i32 %.0474.in, 0 %101 = load i32, ptr %.tr648.ph, align 4 @@ -7078,14 +7078,14 @@ select.unfold.i512: ; preds = %132, %Kit_TruthIsCo br i1 %.not.i515, label %select.unfold.i512, label %Kit_TruthIsConst1.exit516, !llvm.loop !77 Kit_TruthIsConst1.exit516: ; preds = %select.unfold.i512, %132 - %.05.i514.neg = phi i32 [ -1, %select.unfold.i512 ], [ 0, %132 ] + %.05.i514 = phi i32 [ 1, %select.unfold.i512 ], [ 0, %132 ] br label %select.unfold.i518 select.unfold.i518: ; preds = %138, %Kit_TruthIsConst1.exit516 %indvars.iv.i519 = phi i64 [ %111, %Kit_TruthIsConst1.exit516 ], [ %139, %138 ] %136 = trunc i64 %indvars.iv.i519 to i32 %137 = icmp sgt i32 %136, 0 - br i1 %137, label %138, label %Kit_TruthIsOpposite.exit.thread + br i1 %137, label %138, label %Kit_TruthIsOpposite.exit 138: ; preds = %select.unfold.i518 %139 = add nsw i64 %indvars.iv.i519, -1 @@ -7097,1139 +7097,1142 @@ select.unfold.i518: ; preds = %138, %Kit_TruthIsCo %.not.i520 = icmp eq i32 %144, -1 br i1 %.not.i520, label %select.unfold.i518, label %Kit_TruthIsOpposite.exit, !llvm.loop !78 -Kit_TruthIsOpposite.exit: ; preds = %138 +Kit_TruthIsOpposite.exit: ; preds = %select.unfold.i518, %138 + %.07.i = phi i32 [ 1, %select.unfold.i518 ], [ 0, %138 ] %145 = add nuw nsw i32 %.05.i503, %.05.i %146 = add nuw nsw i32 %145, %.05.i509 - %147 = icmp eq i32 %146, %.05.i514.neg - br i1 %147, label %148, label %Kit_TruthIsOpposite.exit.thread - -148: ; preds = %Kit_TruthIsOpposite.exit - %149 = tail call i32 @Kit_TruthSupport(ptr noundef nonnull %24, i32 noundef %107) #27 - %150 = load i32, ptr %.tr648.ph, align 4 - %151 = lshr i32 %150, 26 - %152 = tail call i32 @Kit_TruthSupport(ptr noundef nonnull %26, i32 noundef %151) #27 - %153 = and i32 %152, %149 - %.not490 = icmp eq i32 %153, 0 - br i1 %.not490, label %154, label %.preheader657, !llvm.loop !79 - -154: ; preds = %148 - %155 = load i32, ptr %.tr648.ph, align 4 - %156 = lshr i32 %155, 26 - %157 = tail call ptr @Kit_DsdObjAlloc(ptr noundef %0, i32 noundef 5, i32 noundef %156) - %158 = load i32, ptr %.tr648.ph, align 4 - %159 = lshr i32 %158, 26 - %160 = tail call ptr @Kit_DsdObjAlloc(ptr noundef %0, i32 noundef 5, i32 noundef %159) - %161 = load i32, ptr %.tr648.ph, align 4 - %162 = lshr i32 %161, 26 - %.not756 = icmp ult i32 %161, 67108864 + %147 = add nuw nsw i32 %146, %.05.i514 + %148 = or i32 %.07.i, %147 + %149 = icmp eq i32 %148, 0 + br i1 %149, label %150, label %250 + +150: ; preds = %Kit_TruthIsOpposite.exit + %151 = tail call i32 @Kit_TruthSupport(ptr noundef %24, i32 noundef %107) #27 + %152 = load i32, ptr %.tr648.ph, align 4 + %153 = lshr i32 %152, 26 + %154 = tail call i32 @Kit_TruthSupport(ptr noundef nonnull %26, i32 noundef %153) #27 + %155 = and i32 %154, %151 + %.not490 = icmp eq i32 %155, 0 + br i1 %.not490, label %156, label %.preheader657, !llvm.loop !79 + +156: ; preds = %150 + %157 = load i32, ptr %.tr648.ph, align 4 + %158 = lshr i32 %157, 26 + %159 = tail call ptr @Kit_DsdObjAlloc(ptr noundef %0, i32 noundef 5, i32 noundef %158) + %160 = load i32, ptr %.tr648.ph, align 4 + %161 = lshr i32 %160, 26 + %162 = tail call ptr @Kit_DsdObjAlloc(ptr noundef %0, i32 noundef 5, i32 noundef %161) + %163 = load i32, ptr %.tr648.ph, align 4 + %164 = lshr i32 %163, 26 + %.not756 = icmp ult i32 %163, 67108864 br i1 %.not756, label %._crit_edge750, label %.lr.ph749 -.lr.ph749: ; preds = %154 - %163 = getelementptr inbounds i8, ptr %157, i64 4 - %164 = getelementptr inbounds i8, ptr %160, i64 4 - br label %165 - -165: ; preds = %.lr.ph749, %179 - %indvars.iv836 = phi i64 [ 0, %.lr.ph749 ], [ %indvars.iv.next837, %179 ] - %166 = trunc i64 %indvars.iv836 to i32 - %167 = shl nuw i32 1, %166 - %168 = and i32 %167, %149 - %.not493 = icmp eq i32 %168, 0 - br i1 %.not493, label %172, label %169 - -169: ; preds = %165 - %170 = getelementptr inbounds [0 x i16], ptr %10, i64 0, i64 %indvars.iv836 - %171 = load i16, ptr %170, align 2 - br label %172 - -172: ; preds = %165, %169 - %173 = phi i16 [ %171, %169 ], [ 127, %165 ] - %174 = getelementptr inbounds [0 x i16], ptr %163, i64 0, i64 %indvars.iv836 - store i16 %173, ptr %174, align 2 - %175 = and i32 %167, %152 - %.not494 = icmp eq i32 %175, 0 - br i1 %.not494, label %179, label %176 - -176: ; preds = %172 - %177 = getelementptr inbounds [0 x i16], ptr %10, i64 0, i64 %indvars.iv836 - %178 = load i16, ptr %177, align 2 - br label %179 +.lr.ph749: ; preds = %156 + %165 = getelementptr inbounds i8, ptr %159, i64 4 + %166 = getelementptr inbounds i8, ptr %162, i64 4 + br label %167 + +167: ; preds = %.lr.ph749, %181 + %indvars.iv836 = phi i64 [ 0, %.lr.ph749 ], [ %indvars.iv.next837, %181 ] + %168 = trunc i64 %indvars.iv836 to i32 + %169 = shl nuw i32 1, %168 + %170 = and i32 %169, %151 + %.not493 = icmp eq i32 %170, 0 + br i1 %.not493, label %174, label %171 + +171: ; preds = %167 + %172 = getelementptr inbounds [0 x i16], ptr %10, i64 0, i64 %indvars.iv836 + %173 = load i16, ptr %172, align 2 + br label %174 -179: ; preds = %172, %176 - %180 = phi i16 [ %178, %176 ], [ 127, %172 ] - %181 = getelementptr inbounds [0 x i16], ptr %164, i64 0, i64 %indvars.iv836 - store i16 %180, ptr %181, align 2 +174: ; preds = %167, %171 + %175 = phi i16 [ %173, %171 ], [ 127, %167 ] + %176 = getelementptr inbounds [0 x i16], ptr %165, i64 0, i64 %indvars.iv836 + store i16 %175, ptr %176, align 2 + %177 = and i32 %169, %154 + %.not494 = icmp eq i32 %177, 0 + br i1 %.not494, label %181, label %178 + +178: ; preds = %174 + %179 = getelementptr inbounds [0 x i16], ptr %10, i64 0, i64 %indvars.iv836 + %180 = load i16, ptr %179, align 2 + br label %181 + +181: ; preds = %174, %178 + %182 = phi i16 [ %180, %178 ], [ 127, %174 ] + %183 = getelementptr inbounds [0 x i16], ptr %166, i64 0, i64 %indvars.iv836 + store i16 %182, ptr %183, align 2 %indvars.iv.next837 = add nuw nsw i64 %indvars.iv836, 1 - %182 = load i32, ptr %.tr648.ph, align 4 - %183 = lshr i32 %182, 26 - %184 = zext nneg i32 %183 to i64 - %185 = icmp ult i64 %indvars.iv.next837, %184 - br i1 %185, label %165, label %._crit_edge750, !llvm.loop !80 - -._crit_edge750: ; preds = %179, %154 - %.lcssa718 = phi i32 [ %161, %154 ], [ %182, %179 ] - %.lcssa717 = phi i32 [ %162, %154 ], [ %183, %179 ] - %186 = load i32, ptr %157, align 4 - %187 = and i32 %186, 448 - %188 = icmp eq i32 %187, 320 - %189 = getelementptr inbounds i8, ptr %157, i64 4 - %190 = lshr i32 %186, 10 - %191 = and i32 %190, 255 - %192 = zext nneg i32 %191 to i64 - %193 = getelementptr inbounds i32, ptr %189, i64 %192 - %194 = select i1 %188, ptr %193, ptr null - %195 = icmp ult i32 %.lcssa718, 402653184 - %196 = add nsw i32 %.lcssa717, -5 - %197 = shl nuw i32 1, %196 - %spec.select.i521 = select i1 %195, i32 1, i32 %197 - %198 = icmp sgt i32 %spec.select.i521, 0 - br i1 %198, label %select.unfold.preheader.i, label %Kit_TruthCopy.exit + %184 = load i32, ptr %.tr648.ph, align 4 + %185 = lshr i32 %184, 26 + %186 = zext nneg i32 %185 to i64 + %187 = icmp ult i64 %indvars.iv.next837, %186 + br i1 %187, label %167, label %._crit_edge750, !llvm.loop !80 + +._crit_edge750: ; preds = %181, %156 + %.lcssa718 = phi i32 [ %163, %156 ], [ %184, %181 ] + %.lcssa717 = phi i32 [ %164, %156 ], [ %185, %181 ] + %188 = load i32, ptr %159, align 4 + %189 = and i32 %188, 448 + %190 = icmp eq i32 %189, 320 + %191 = getelementptr inbounds i8, ptr %159, i64 4 + %192 = lshr i32 %188, 10 + %193 = and i32 %192, 255 + %194 = zext nneg i32 %193 to i64 + %195 = getelementptr inbounds i32, ptr %191, i64 %194 + %196 = select i1 %190, ptr %195, ptr null + %197 = icmp ult i32 %.lcssa718, 402653184 + %198 = add nsw i32 %.lcssa717, -5 + %199 = shl nuw i32 1, %198 + %spec.select.i521 = select i1 %197, i32 1, i32 %199 + %200 = icmp sgt i32 %spec.select.i521, 0 + br i1 %200, label %select.unfold.preheader.i, label %Kit_TruthCopy.exit select.unfold.preheader.i: ; preds = %._crit_edge750 - %199 = zext nneg i32 %spec.select.i521 to i64 + %201 = zext nneg i32 %spec.select.i521 to i64 br label %select.unfold.i522 select.unfold.i522: ; preds = %select.unfold.i522, %select.unfold.preheader.i - %indvars.iv.i523 = phi i64 [ %199, %select.unfold.preheader.i ], [ %indvars.iv.next.i, %select.unfold.i522 ] + %indvars.iv.i523 = phi i64 [ %201, %select.unfold.preheader.i ], [ %indvars.iv.next.i, %select.unfold.i522 ] %indvars.iv.next.i = add nsw i64 %indvars.iv.i523, -1 - %200 = getelementptr inbounds i32, ptr %24, i64 %indvars.iv.next.i - %201 = load i32, ptr %200, align 4 - %202 = getelementptr inbounds i32, ptr %194, i64 %indvars.iv.next.i - store i32 %201, ptr %202, align 4 - %203 = icmp ugt i64 %indvars.iv.i523, 1 - br i1 %203, label %select.unfold.i522, label %Kit_TruthCopy.exit.loopexit, !llvm.loop !15 + %202 = getelementptr inbounds i32, ptr %24, i64 %indvars.iv.next.i + %203 = load i32, ptr %202, align 4 + %204 = getelementptr inbounds i32, ptr %196, i64 %indvars.iv.next.i + store i32 %203, ptr %204, align 4 + %205 = icmp ugt i64 %indvars.iv.i523, 1 + br i1 %205, label %select.unfold.i522, label %Kit_TruthCopy.exit.loopexit, !llvm.loop !15 Kit_TruthCopy.exit.loopexit: ; preds = %select.unfold.i522 %.pre843 = load i32, ptr %.tr648.ph, align 4 br label %Kit_TruthCopy.exit Kit_TruthCopy.exit: ; preds = %Kit_TruthCopy.exit.loopexit, %._crit_edge750 - %204 = phi i32 [ %.pre843, %Kit_TruthCopy.exit.loopexit ], [ %.lcssa718, %._crit_edge750 ] - %205 = load i32, ptr %160, align 4 - %206 = and i32 %205, 448 - %207 = icmp eq i32 %206, 320 - %208 = getelementptr inbounds i8, ptr %160, i64 4 - %209 = lshr i32 %205, 10 - %210 = and i32 %209, 255 - %211 = zext nneg i32 %210 to i64 - %212 = getelementptr inbounds i32, ptr %208, i64 %211 - %213 = select i1 %207, ptr %212, ptr null - %214 = lshr i32 %204, 26 - %215 = icmp ult i32 %204, 402653184 - %216 = add nsw i32 %214, -5 - %217 = shl nuw i32 1, %216 - %spec.select.i524 = select i1 %215, i32 1, i32 %217 - %218 = icmp sgt i32 %spec.select.i524, 0 - br i1 %218, label %select.unfold.preheader.i525, label %Kit_TruthCopy.exit529 + %206 = phi i32 [ %.pre843, %Kit_TruthCopy.exit.loopexit ], [ %.lcssa718, %._crit_edge750 ] + %207 = load i32, ptr %162, align 4 + %208 = and i32 %207, 448 + %209 = icmp eq i32 %208, 320 + %210 = getelementptr inbounds i8, ptr %162, i64 4 + %211 = lshr i32 %207, 10 + %212 = and i32 %211, 255 + %213 = zext nneg i32 %212 to i64 + %214 = getelementptr inbounds i32, ptr %210, i64 %213 + %215 = select i1 %209, ptr %214, ptr null + %216 = lshr i32 %206, 26 + %217 = icmp ult i32 %206, 402653184 + %218 = add nsw i32 %216, -5 + %219 = shl nuw i32 1, %218 + %spec.select.i524 = select i1 %217, i32 1, i32 %219 + %220 = icmp sgt i32 %spec.select.i524, 0 + br i1 %220, label %select.unfold.preheader.i525, label %Kit_TruthCopy.exit529 select.unfold.preheader.i525: ; preds = %Kit_TruthCopy.exit - %219 = zext nneg i32 %spec.select.i524 to i64 + %221 = zext nneg i32 %spec.select.i524 to i64 br label %select.unfold.i526 select.unfold.i526: ; preds = %select.unfold.i526, %select.unfold.preheader.i525 - %indvars.iv.i527 = phi i64 [ %219, %select.unfold.preheader.i525 ], [ %indvars.iv.next.i528, %select.unfold.i526 ] + %indvars.iv.i527 = phi i64 [ %221, %select.unfold.preheader.i525 ], [ %indvars.iv.next.i528, %select.unfold.i526 ] %indvars.iv.next.i528 = add nsw i64 %indvars.iv.i527, -1 - %220 = getelementptr inbounds i32, ptr %26, i64 %indvars.iv.next.i528 - %221 = load i32, ptr %220, align 4 - %222 = getelementptr inbounds i32, ptr %213, i64 %indvars.iv.next.i528 - store i32 %221, ptr %222, align 4 - %223 = icmp ugt i64 %indvars.iv.i527, 1 - br i1 %223, label %select.unfold.i526, label %Kit_TruthCopy.exit529.loopexit, !llvm.loop !15 + %222 = getelementptr inbounds i32, ptr %26, i64 %indvars.iv.next.i528 + %223 = load i32, ptr %222, align 4 + %224 = getelementptr inbounds i32, ptr %215, i64 %indvars.iv.next.i528 + store i32 %223, ptr %224, align 4 + %225 = icmp ugt i64 %indvars.iv.i527, 1 + br i1 %225, label %select.unfold.i526, label %Kit_TruthCopy.exit529.loopexit, !llvm.loop !15 Kit_TruthCopy.exit529.loopexit: ; preds = %select.unfold.i526 %.pre844 = load i32, ptr %.tr648.ph, align 4 br label %Kit_TruthCopy.exit529 Kit_TruthCopy.exit529: ; preds = %Kit_TruthCopy.exit529.loopexit, %Kit_TruthCopy.exit - %224 = phi i32 [ %.pre844, %Kit_TruthCopy.exit529.loopexit ], [ %204, %Kit_TruthCopy.exit ] + %226 = phi i32 [ %.pre844, %Kit_TruthCopy.exit529.loopexit ], [ %206, %Kit_TruthCopy.exit ] store i32 -892679478, ptr %23, align 4 - %225 = and i32 %224, 67108863 - %226 = or disjoint i32 %225, 201326592 - store i32 %226, ptr %.tr648.ph, align 4 - %227 = zext nneg i32 %.0474 to i64 - %228 = getelementptr inbounds [0 x i16], ptr %10, i64 0, i64 %227 - %229 = load i16, ptr %228, align 2 - %230 = getelementptr inbounds i8, ptr %.tr648.ph, i64 8 - store i16 %229, ptr %230, align 4 - %231 = load i32, ptr %157, align 4 - %.tr491 = trunc i32 %231 to i16 - %232 = shl i16 %.tr491, 1 - %233 = and i16 %232, 126 - store i16 %233, ptr %10, align 4 - %234 = load i32, ptr %157, align 4 - %235 = add i32 %234, 262144 - %236 = and i32 %235, 66846720 - %237 = and i32 %234, -66846721 - %238 = or disjoint i32 %236, %237 - store i32 %238, ptr %157, align 4 - %239 = load i32, ptr %160, align 4 - %.tr492 = trunc i32 %239 to i16 - %240 = shl i16 %.tr492, 1 - %241 = and i16 %240, 126 - %242 = getelementptr inbounds i8, ptr %.tr648.ph, i64 6 - store i16 %241, ptr %242, align 2 - %243 = load i32, ptr %160, align 4 - %244 = add i32 %243, 262144 - %245 = and i32 %244, 66846720 - %246 = and i32 %243, -66846721 - %247 = or disjoint i32 %245, %246 - store i32 %247, ptr %160, align 4 - tail call void @Kit_DsdDecompose_rec(ptr noundef %0, ptr noundef nonnull %157, i32 noundef %149, ptr noundef nonnull %10, i32 noundef %4) + %227 = and i32 %226, 67108863 + %228 = or disjoint i32 %227, 201326592 + store i32 %228, ptr %.tr648.ph, align 4 + %229 = zext nneg i32 %.0474 to i64 + %230 = getelementptr inbounds [0 x i16], ptr %10, i64 0, i64 %229 + %231 = load i16, ptr %230, align 2 + %232 = getelementptr inbounds i8, ptr %.tr648.ph, i64 8 + store i16 %231, ptr %232, align 4 + %233 = load i32, ptr %159, align 4 + %.tr491 = trunc i32 %233 to i16 + %234 = shl i16 %.tr491, 1 + %235 = and i16 %234, 126 + store i16 %235, ptr %10, align 4 + %236 = load i32, ptr %159, align 4 + %237 = add i32 %236, 262144 + %238 = and i32 %237, 66846720 + %239 = and i32 %236, -66846721 + %240 = or disjoint i32 %238, %239 + store i32 %240, ptr %159, align 4 + %241 = load i32, ptr %162, align 4 + %.tr492 = trunc i32 %241 to i16 + %242 = shl i16 %.tr492, 1 + %243 = and i16 %242, 126 + %244 = getelementptr inbounds i8, ptr %.tr648.ph, i64 6 + store i16 %243, ptr %244, align 2 + %245 = load i32, ptr %162, align 4 + %246 = add i32 %245, 262144 + %247 = and i32 %246, 66846720 + %248 = and i32 %245, -66846721 + %249 = or disjoint i32 %247, %248 + store i32 %249, ptr %162, align 4 + tail call void @Kit_DsdDecompose_rec(ptr noundef %0, ptr noundef nonnull %159, i32 noundef %151, ptr noundef nonnull %10, i32 noundef %4) br label %tailrecurse.outer.backedge tailrecurse.outer.backedge: ; preds = %Kit_TruthCopy.exit529, %Kit_TruthCopy.exit646 - %.tr648.ph.be = phi ptr [ %677, %Kit_TruthCopy.exit646 ], [ %160, %Kit_TruthCopy.exit529 ] - %.tr649.ph.be = phi i32 [ %671, %Kit_TruthCopy.exit646 ], [ %152, %Kit_TruthCopy.exit529 ] - %.tr650.ph.be = phi ptr [ %747, %Kit_TruthCopy.exit646 ], [ %242, %Kit_TruthCopy.exit529 ] + %.tr648.ph.be = phi ptr [ %680, %Kit_TruthCopy.exit646 ], [ %162, %Kit_TruthCopy.exit529 ] + %.tr649.ph.be = phi i32 [ %674, %Kit_TruthCopy.exit646 ], [ %154, %Kit_TruthCopy.exit529 ] + %.tr650.ph.be = phi ptr [ %750, %Kit_TruthCopy.exit646 ], [ %244, %Kit_TruthCopy.exit529 ] br label %tailrecurse.outer -Kit_TruthIsOpposite.exit.thread: ; preds = %Kit_TruthIsOpposite.exit, %select.unfold.i518 +250: ; preds = %Kit_TruthIsOpposite.exit %calloc.i = tail call dereferenceable_or_null(8) ptr @calloc(i64 1, i64 8) - %248 = load i16, ptr %0, align 8 - %249 = zext i16 %248 to i32 - %250 = load i16, ptr %7, align 4 - %251 = zext i16 %250 to i32 - %252 = add nuw nsw i32 %251, %249 - %253 = and i32 %252, 63 - %254 = or disjoint i32 %253, 134218944 - store i32 %254, ptr %calloc.i, align 4 - %255 = load i16, ptr %8, align 2 - %256 = icmp eq i16 %250, %255 - br i1 %256, label %257, label %._crit_edge.i - -._crit_edge.i: ; preds = %Kit_TruthIsOpposite.exit.thread + %251 = load i16, ptr %0, align 8 + %252 = zext i16 %251 to i32 + %253 = load i16, ptr %7, align 4 + %254 = zext i16 %253 to i32 + %255 = add nuw nsw i32 %254, %252 + %256 = and i32 %255, 63 + %257 = or disjoint i32 %256, 134218944 + store i32 %257, ptr %calloc.i, align 4 + %258 = load i16, ptr %8, align 2 + %259 = icmp eq i16 %253, %258 + br i1 %259, label %260, label %._crit_edge.i + +._crit_edge.i: ; preds = %250 %.pre.i = load ptr, ptr %.phi.trans.insert.i629, align 8 br label %Kit_DsdObjAlloc.exit -257: ; preds = %Kit_TruthIsOpposite.exit.thread - %258 = shl i16 %250, 1 - store i16 %258, ptr %8, align 2 - %259 = load ptr, ptr %.phi.trans.insert.i629, align 8 - %.not.i530 = icmp eq ptr %259, null - %260 = zext i16 %258 to i64 - %261 = shl nuw nsw i64 %260, 3 - br i1 %.not.i530, label %264, label %262 - -262: ; preds = %257 - %263 = tail call ptr @realloc(ptr noundef nonnull %259, i64 noundef %261) #28 +260: ; preds = %250 + %261 = shl i16 %253, 1 + store i16 %261, ptr %8, align 2 + %262 = load ptr, ptr %.phi.trans.insert.i629, align 8 + %.not.i530 = icmp eq ptr %262, null + %263 = zext i16 %261 to i64 + %264 = shl nuw nsw i64 %263, 3 + br i1 %.not.i530, label %267, label %265 + +265: ; preds = %260 + %266 = tail call ptr @realloc(ptr noundef nonnull %262, i64 noundef %264) #28 %.pre27.pre.i = load i16, ptr %7, align 4 - br label %266 + br label %269 -264: ; preds = %257 - %265 = tail call noalias ptr @malloc(i64 noundef %261) #26 - br label %266 +267: ; preds = %260 + %268 = tail call noalias ptr @malloc(i64 noundef %264) #26 + br label %269 -266: ; preds = %264, %262 - %.pre27.i = phi i16 [ %.pre27.pre.i, %262 ], [ %250, %264 ] - %267 = phi ptr [ %263, %262 ], [ %265, %264 ] - store ptr %267, ptr %.phi.trans.insert.i629, align 8 +269: ; preds = %267, %265 + %.pre27.i = phi i16 [ %.pre27.pre.i, %265 ], [ %253, %267 ] + %270 = phi ptr [ %266, %265 ], [ %268, %267 ] + store ptr %270, ptr %.phi.trans.insert.i629, align 8 br label %Kit_DsdObjAlloc.exit -Kit_DsdObjAlloc.exit: ; preds = %._crit_edge.i, %266 - %268 = phi i16 [ %250, %._crit_edge.i ], [ %.pre27.i, %266 ] - %269 = phi ptr [ %.pre.i, %._crit_edge.i ], [ %267, %266 ] - %270 = add i16 %268, 1 - store i16 %270, ptr %7, align 4 - %271 = zext i16 %268 to i64 - %272 = getelementptr inbounds ptr, ptr %269, i64 %271 - store ptr %calloc.i, ptr %272, align 8 - %273 = load i32, ptr %calloc.i, align 4 - %274 = add i32 %273, 262144 - %275 = and i32 %274, 66846720 - %276 = and i32 %273, 262143 - %277 = or disjoint i32 %276, %275 - %278 = or disjoint i32 %277, 134217728 - store i32 %278, ptr %calloc.i, align 4 - %279 = zext nneg i32 %.0474 to i64 - %280 = getelementptr inbounds [0 x i16], ptr %10, i64 0, i64 %279 - %281 = load i16, ptr %280, align 2 - %282 = getelementptr inbounds i8, ptr %calloc.i, i64 4 - store i16 %281, ptr %282, align 4 - store i16 127, ptr %280, align 2 - %283 = shl nuw i32 1, %.0474 - %284 = xor i32 %283, -1 - %285 = and i32 %.0, %284 - %286 = load i32, ptr %.tr648.ph, align 4 - %.tr = trunc i32 %286 to i16 - %287 = shl i16 %.tr, 1 - %288 = and i16 %287, 126 - %289 = getelementptr inbounds i8, ptr %calloc.i, i64 6 - store i16 %288, ptr %289, align 2 - %290 = load i16, ptr %.tr650.ph662, align 2 - %291 = and i16 %290, 1 - %.tr849 = trunc i32 %273 to i16 - %292 = shl i16 %.tr849, 1 - %293 = and i16 %292, 126 - %294 = or disjoint i16 %293, %291 - store i16 %294, ptr %.tr650.ph662, align 2 - br i1 %113, label %307, label %295 - -295: ; preds = %Kit_DsdObjAlloc.exit - %296 = load i32, ptr %.tr648.ph, align 4 - %297 = lshr i32 %296, 26 - %298 = icmp ult i32 %296, 402653184 - %299 = add nsw i32 %297, -5 - %300 = shl nuw i32 1, %299 - %spec.select.i531 = select i1 %298, i32 1, i32 %300 - %301 = icmp sgt i32 %spec.select.i531, 0 - br i1 %301, label %select.unfold.preheader.i532, label %tailrecurse.outer660.backedge - -select.unfold.preheader.i532: ; preds = %295 - %302 = zext nneg i32 %spec.select.i531 to i64 +Kit_DsdObjAlloc.exit: ; preds = %._crit_edge.i, %269 + %271 = phi i16 [ %253, %._crit_edge.i ], [ %.pre27.i, %269 ] + %272 = phi ptr [ %.pre.i, %._crit_edge.i ], [ %270, %269 ] + %273 = add i16 %271, 1 + store i16 %273, ptr %7, align 4 + %274 = zext i16 %271 to i64 + %275 = getelementptr inbounds ptr, ptr %272, i64 %274 + store ptr %calloc.i, ptr %275, align 8 + %276 = load i32, ptr %calloc.i, align 4 + %277 = add i32 %276, 262144 + %278 = and i32 %277, 66846720 + %279 = and i32 %276, 262143 + %280 = or disjoint i32 %279, %278 + %281 = or disjoint i32 %280, 134217728 + store i32 %281, ptr %calloc.i, align 4 + %282 = zext nneg i32 %.0474 to i64 + %283 = getelementptr inbounds [0 x i16], ptr %10, i64 0, i64 %282 + %284 = load i16, ptr %283, align 2 + %285 = getelementptr inbounds i8, ptr %calloc.i, i64 4 + store i16 %284, ptr %285, align 4 + store i16 127, ptr %283, align 2 + %286 = shl nuw i32 1, %.0474 + %287 = xor i32 %286, -1 + %288 = and i32 %.0, %287 + %289 = load i32, ptr %.tr648.ph, align 4 + %.tr = trunc i32 %289 to i16 + %290 = shl i16 %.tr, 1 + %291 = and i16 %290, 126 + %292 = getelementptr inbounds i8, ptr %calloc.i, i64 6 + store i16 %291, ptr %292, align 2 + %293 = load i16, ptr %.tr650.ph662, align 2 + %294 = and i16 %293, 1 + %.tr849 = trunc i32 %276 to i16 + %295 = shl i16 %.tr849, 1 + %296 = and i16 %295, 126 + %297 = or disjoint i16 %296, %294 + store i16 %297, ptr %.tr650.ph662, align 2 + br i1 %113, label %310, label %298 + +298: ; preds = %Kit_DsdObjAlloc.exit + %299 = load i32, ptr %.tr648.ph, align 4 + %300 = lshr i32 %299, 26 + %301 = icmp ult i32 %299, 402653184 + %302 = add nsw i32 %300, -5 + %303 = shl nuw i32 1, %302 + %spec.select.i531 = select i1 %301, i32 1, i32 %303 + %304 = icmp sgt i32 %spec.select.i531, 0 + br i1 %304, label %select.unfold.preheader.i532, label %tailrecurse.outer660.backedge + +select.unfold.preheader.i532: ; preds = %298 + %305 = zext nneg i32 %spec.select.i531 to i64 br label %select.unfold.i533 select.unfold.i533: ; preds = %select.unfold.i533, %select.unfold.preheader.i532 - %indvars.iv.i534 = phi i64 [ %302, %select.unfold.preheader.i532 ], [ %indvars.iv.next.i535, %select.unfold.i533 ] + %indvars.iv.i534 = phi i64 [ %305, %select.unfold.preheader.i532 ], [ %indvars.iv.next.i535, %select.unfold.i533 ] %indvars.iv.next.i535 = add nsw i64 %indvars.iv.i534, -1 - %303 = getelementptr inbounds i32, ptr %26, i64 %indvars.iv.next.i535 - %304 = load i32, ptr %303, align 4 - %305 = getelementptr inbounds i32, ptr %23, i64 %indvars.iv.next.i535 - store i32 %304, ptr %305, align 4 - %306 = icmp ugt i64 %indvars.iv.i534, 1 - br i1 %306, label %select.unfold.i533, label %tailrecurse.outer660.backedge, !llvm.loop !15 - -307: ; preds = %Kit_DsdObjAlloc.exit - br i1 %119, label %321, label %308 - -308: ; preds = %307 - %309 = xor i16 %281, 1 - store i16 %309, ptr %282, align 4 - %310 = load i32, ptr %.tr648.ph, align 4 - %311 = lshr i32 %310, 26 - %312 = icmp ult i32 %310, 402653184 - %313 = add nsw i32 %311, -5 - %314 = shl nuw i32 1, %313 - %spec.select.i537 = select i1 %312, i32 1, i32 %314 - %315 = icmp sgt i32 %spec.select.i537, 0 - br i1 %315, label %select.unfold.preheader.i538, label %tailrecurse.outer660.backedge - -select.unfold.preheader.i538: ; preds = %308 - %316 = zext nneg i32 %spec.select.i537 to i64 + %306 = getelementptr inbounds i32, ptr %26, i64 %indvars.iv.next.i535 + %307 = load i32, ptr %306, align 4 + %308 = getelementptr inbounds i32, ptr %23, i64 %indvars.iv.next.i535 + store i32 %307, ptr %308, align 4 + %309 = icmp ugt i64 %indvars.iv.i534, 1 + br i1 %309, label %select.unfold.i533, label %tailrecurse.outer660.backedge, !llvm.loop !15 + +310: ; preds = %Kit_DsdObjAlloc.exit + br i1 %119, label %324, label %311 + +311: ; preds = %310 + %312 = xor i16 %284, 1 + store i16 %312, ptr %285, align 4 + %313 = load i32, ptr %.tr648.ph, align 4 + %314 = lshr i32 %313, 26 + %315 = icmp ult i32 %313, 402653184 + %316 = add nsw i32 %314, -5 + %317 = shl nuw i32 1, %316 + %spec.select.i537 = select i1 %315, i32 1, i32 %317 + %318 = icmp sgt i32 %spec.select.i537, 0 + br i1 %318, label %select.unfold.preheader.i538, label %tailrecurse.outer660.backedge + +select.unfold.preheader.i538: ; preds = %311 + %319 = zext nneg i32 %spec.select.i537 to i64 br label %select.unfold.i539 select.unfold.i539: ; preds = %select.unfold.i539, %select.unfold.preheader.i538 - %indvars.iv.i540 = phi i64 [ %316, %select.unfold.preheader.i538 ], [ %indvars.iv.next.i541, %select.unfold.i539 ] + %indvars.iv.i540 = phi i64 [ %319, %select.unfold.preheader.i538 ], [ %indvars.iv.next.i541, %select.unfold.i539 ] %indvars.iv.next.i541 = add nsw i64 %indvars.iv.i540, -1 - %317 = getelementptr inbounds i32, ptr %24, i64 %indvars.iv.next.i541 - %318 = load i32, ptr %317, align 4 - %319 = getelementptr inbounds i32, ptr %23, i64 %indvars.iv.next.i541 - store i32 %318, ptr %319, align 4 - %320 = icmp ugt i64 %indvars.iv.i540, 1 - br i1 %320, label %select.unfold.i539, label %tailrecurse.outer660.backedge, !llvm.loop !15 - -321: ; preds = %307 - br i1 %125, label %336, label %322 - -322: ; preds = %321 - %323 = xor i16 %294, 1 - store i16 %323, ptr %.tr650.ph662, align 2 - %324 = or disjoint i16 %288, 1 - store i16 %324, ptr %289, align 2 - %325 = load i32, ptr %.tr648.ph, align 4 - %326 = lshr i32 %325, 26 - %327 = icmp ult i32 %325, 402653184 - %328 = add nsw i32 %326, -5 - %329 = shl nuw i32 1, %328 - %spec.select.i543 = select i1 %327, i32 1, i32 %329 - %330 = icmp sgt i32 %spec.select.i543, 0 - br i1 %330, label %select.unfold.preheader.i544, label %tailrecurse.outer660.backedge - -select.unfold.preheader.i544: ; preds = %322 - %331 = zext nneg i32 %spec.select.i543 to i64 + %320 = getelementptr inbounds i32, ptr %24, i64 %indvars.iv.next.i541 + %321 = load i32, ptr %320, align 4 + %322 = getelementptr inbounds i32, ptr %23, i64 %indvars.iv.next.i541 + store i32 %321, ptr %322, align 4 + %323 = icmp ugt i64 %indvars.iv.i540, 1 + br i1 %323, label %select.unfold.i539, label %tailrecurse.outer660.backedge, !llvm.loop !15 + +324: ; preds = %310 + br i1 %125, label %339, label %325 + +325: ; preds = %324 + %326 = xor i16 %297, 1 + store i16 %326, ptr %.tr650.ph662, align 2 + %327 = or disjoint i16 %291, 1 + store i16 %327, ptr %292, align 2 + %328 = load i32, ptr %.tr648.ph, align 4 + %329 = lshr i32 %328, 26 + %330 = icmp ult i32 %328, 402653184 + %331 = add nsw i32 %329, -5 + %332 = shl nuw i32 1, %331 + %spec.select.i543 = select i1 %330, i32 1, i32 %332 + %333 = icmp sgt i32 %spec.select.i543, 0 + br i1 %333, label %select.unfold.preheader.i544, label %tailrecurse.outer660.backedge + +select.unfold.preheader.i544: ; preds = %325 + %334 = zext nneg i32 %spec.select.i543 to i64 br label %select.unfold.i545 select.unfold.i545: ; preds = %select.unfold.i545, %select.unfold.preheader.i544 - %indvars.iv.i546 = phi i64 [ %331, %select.unfold.preheader.i544 ], [ %indvars.iv.next.i547, %select.unfold.i545 ] + %indvars.iv.i546 = phi i64 [ %334, %select.unfold.preheader.i544 ], [ %indvars.iv.next.i547, %select.unfold.i545 ] %indvars.iv.next.i547 = add nsw i64 %indvars.iv.i546, -1 - %332 = getelementptr inbounds i32, ptr %26, i64 %indvars.iv.next.i547 - %333 = load i32, ptr %332, align 4 - %334 = getelementptr inbounds i32, ptr %23, i64 %indvars.iv.next.i547 - store i32 %333, ptr %334, align 4 - %335 = icmp ugt i64 %indvars.iv.i546, 1 - br i1 %335, label %select.unfold.i545, label %tailrecurse.outer660.backedge, !llvm.loop !15 - -336: ; preds = %321 - br i1 %131, label %352, label %337 - -337: ; preds = %336 - %338 = xor i16 %294, 1 - store i16 %338, ptr %.tr650.ph662, align 2 - %339 = xor i16 %281, 1 - store i16 %339, ptr %282, align 4 - %340 = or disjoint i16 %288, 1 - store i16 %340, ptr %289, align 2 - %341 = load i32, ptr %.tr648.ph, align 4 - %342 = lshr i32 %341, 26 - %343 = icmp ult i32 %341, 402653184 - %344 = add nsw i32 %342, -5 - %345 = shl nuw i32 1, %344 - %spec.select.i549 = select i1 %343, i32 1, i32 %345 - %346 = icmp sgt i32 %spec.select.i549, 0 - br i1 %346, label %select.unfold.preheader.i550, label %tailrecurse.outer660.backedge - -select.unfold.preheader.i550: ; preds = %337 - %347 = zext nneg i32 %spec.select.i549 to i64 + %335 = getelementptr inbounds i32, ptr %26, i64 %indvars.iv.next.i547 + %336 = load i32, ptr %335, align 4 + %337 = getelementptr inbounds i32, ptr %23, i64 %indvars.iv.next.i547 + store i32 %336, ptr %337, align 4 + %338 = icmp ugt i64 %indvars.iv.i546, 1 + br i1 %338, label %select.unfold.i545, label %tailrecurse.outer660.backedge, !llvm.loop !15 + +339: ; preds = %324 + br i1 %131, label %355, label %340 + +340: ; preds = %339 + %341 = xor i16 %297, 1 + store i16 %341, ptr %.tr650.ph662, align 2 + %342 = xor i16 %284, 1 + store i16 %342, ptr %285, align 4 + %343 = or disjoint i16 %291, 1 + store i16 %343, ptr %292, align 2 + %344 = load i32, ptr %.tr648.ph, align 4 + %345 = lshr i32 %344, 26 + %346 = icmp ult i32 %344, 402653184 + %347 = add nsw i32 %345, -5 + %348 = shl nuw i32 1, %347 + %spec.select.i549 = select i1 %346, i32 1, i32 %348 + %349 = icmp sgt i32 %spec.select.i549, 0 + br i1 %349, label %select.unfold.preheader.i550, label %tailrecurse.outer660.backedge + +select.unfold.preheader.i550: ; preds = %340 + %350 = zext nneg i32 %spec.select.i549 to i64 br label %select.unfold.i551 select.unfold.i551: ; preds = %select.unfold.i551, %select.unfold.preheader.i550 - %indvars.iv.i552 = phi i64 [ %347, %select.unfold.preheader.i550 ], [ %indvars.iv.next.i553, %select.unfold.i551 ] + %indvars.iv.i552 = phi i64 [ %350, %select.unfold.preheader.i550 ], [ %indvars.iv.next.i553, %select.unfold.i551 ] %indvars.iv.next.i553 = add nsw i64 %indvars.iv.i552, -1 - %348 = getelementptr inbounds i32, ptr %24, i64 %indvars.iv.next.i553 - %349 = load i32, ptr %348, align 4 - %350 = getelementptr inbounds i32, ptr %23, i64 %indvars.iv.next.i553 - store i32 %349, ptr %350, align 4 - %351 = icmp ugt i64 %indvars.iv.i552, 1 - br i1 %351, label %select.unfold.i551, label %tailrecurse.outer660.backedge, !llvm.loop !15 - -352: ; preds = %336 - br i1 %137, label %tailrecurse.outer660.backedge, label %353 - -353: ; preds = %352 - %354 = and i32 %278, 201326143 - %355 = or disjoint i32 %354, 256 - store i32 %355, ptr %calloc.i, align 4 - %356 = load i32, ptr %.tr648.ph, align 4 - %357 = lshr i32 %356, 26 - %358 = icmp ult i32 %356, 402653184 - %359 = add nsw i32 %357, -5 - %360 = shl nuw i32 1, %359 - %spec.select.i555 = select i1 %358, i32 1, i32 %360 - %361 = icmp sgt i32 %spec.select.i555, 0 - br i1 %361, label %select.unfold.preheader.i556, label %tailrecurse.outer660.backedge - -tailrecurse.outer660.backedge: ; preds = %select.unfold.i533, %select.unfold.i539, %select.unfold.i545, %select.unfold.i551, %select.unfold.i557, %353, %337, %322, %308, %295, %352 + %351 = getelementptr inbounds i32, ptr %24, i64 %indvars.iv.next.i553 + %352 = load i32, ptr %351, align 4 + %353 = getelementptr inbounds i32, ptr %23, i64 %indvars.iv.next.i553 + store i32 %352, ptr %353, align 4 + %354 = icmp ugt i64 %indvars.iv.i552, 1 + br i1 %354, label %select.unfold.i551, label %tailrecurse.outer660.backedge, !llvm.loop !15 + +355: ; preds = %339 + br i1 %137, label %tailrecurse.outer660.backedge, label %356 + +356: ; preds = %355 + %357 = and i32 %281, 201326143 + %358 = or disjoint i32 %357, 256 + store i32 %358, ptr %calloc.i, align 4 + %359 = load i32, ptr %.tr648.ph, align 4 + %360 = lshr i32 %359, 26 + %361 = icmp ult i32 %359, 402653184 + %362 = add nsw i32 %360, -5 + %363 = shl nuw i32 1, %362 + %spec.select.i555 = select i1 %361, i32 1, i32 %363 + %364 = icmp sgt i32 %spec.select.i555, 0 + br i1 %364, label %select.unfold.preheader.i556, label %tailrecurse.outer660.backedge + +tailrecurse.outer660.backedge: ; preds = %select.unfold.i533, %select.unfold.i539, %select.unfold.i545, %select.unfold.i551, %select.unfold.i557, %356, %340, %325, %311, %298, %355 br label %tailrecurse.outer660 -select.unfold.preheader.i556: ; preds = %353 - %362 = zext nneg i32 %spec.select.i555 to i64 +select.unfold.preheader.i556: ; preds = %356 + %365 = zext nneg i32 %spec.select.i555 to i64 br label %select.unfold.i557 select.unfold.i557: ; preds = %select.unfold.i557, %select.unfold.preheader.i556 - %indvars.iv.i558 = phi i64 [ %362, %select.unfold.preheader.i556 ], [ %indvars.iv.next.i559, %select.unfold.i557 ] + %indvars.iv.i558 = phi i64 [ %365, %select.unfold.preheader.i556 ], [ %indvars.iv.next.i559, %select.unfold.i557 ] %indvars.iv.next.i559 = add nsw i64 %indvars.iv.i558, -1 - %363 = getelementptr inbounds i32, ptr %24, i64 %indvars.iv.next.i559 - %364 = load i32, ptr %363, align 4 - %365 = getelementptr inbounds i32, ptr %23, i64 %indvars.iv.next.i559 - store i32 %364, ptr %365, align 4 - %366 = icmp ugt i64 %indvars.iv.i558, 1 - br i1 %366, label %select.unfold.i557, label %tailrecurse.outer660.backedge, !llvm.loop !15 + %366 = getelementptr inbounds i32, ptr %24, i64 %indvars.iv.next.i559 + %367 = load i32, ptr %366, align 4 + %368 = getelementptr inbounds i32, ptr %23, i64 %indvars.iv.next.i559 + store i32 %367, ptr %368, align 4 + %369 = icmp ugt i64 %indvars.iv.i558, 1 + br i1 %369, label %select.unfold.i557, label %tailrecurse.outer660.backedge, !llvm.loop !15 .loopexit658: ; preds = %.preheader657, %98 %.pre-phi = phi i32 [ %85, %98 ], [ %102, %.preheader657 ] - %367 = phi i32 [ %84, %98 ], [ %101, %.preheader657 ] - %368 = or i32 %367, 512 - store i32 %368, ptr %.tr648.ph, align 4 - %.not754 = icmp ult i32 %367, 67108864 + %370 = phi i32 [ %84, %98 ], [ %101, %.preheader657 ] + %371 = or i32 %370, 512 + store i32 %371, ptr %.tr648.ph, align 4 + %.not754 = icmp ult i32 %370, 67108864 br i1 %.not754, label %._crit_edge731, label %.lr.ph730 -.loopexit: ; preds = %657, %515 - %369 = phi i32 [ %516, %515 ], [ %525, %657 ] - %370 = icmp sgt i32 %.1475.in727, 1 - br i1 %370, label %.lr.ph730, label %._crit_edge731, !llvm.loop !81 +.loopexit: ; preds = %660, %518 + %372 = phi i32 [ %519, %518 ], [ %528, %660 ] + %373 = icmp sgt i32 %.1475.in727, 1 + br i1 %373, label %.lr.ph730, label %._crit_edge731, !llvm.loop !81 .lr.ph730: ; preds = %.loopexit658, %.loopexit - %371 = phi i32 [ %369, %.loopexit ], [ %368, %.loopexit658 ] + %374 = phi i32 [ %372, %.loopexit ], [ %371, %.loopexit658 ] %.1475.in727 = phi i32 [ %.1475728, %.loopexit ], [ %.pre-phi, %.loopexit658 ] %.1475728 = add nsw i32 %.1475.in727, -1 - %372 = lshr i32 %371, 26 - tail call void @Kit_TruthCofactor0New(ptr noundef %24, ptr noundef %23, i32 noundef %372, i32 noundef %.1475728) #27 - %373 = load i32, ptr %.tr648.ph, align 4 - %374 = lshr i32 %373, 26 - tail call void @Kit_TruthCofactor1New(ptr noundef nonnull %26, ptr noundef %23, i32 noundef %374, i32 noundef %.1475728) #27 - %375 = load i32, ptr %.tr648.ph, align 4 - %376 = lshr i32 %375, 26 - %377 = tail call i32 @Kit_TruthSupport(ptr noundef %24, i32 noundef %376) #27 + %375 = lshr i32 %374, 26 + tail call void @Kit_TruthCofactor0New(ptr noundef %24, ptr noundef %23, i32 noundef %375, i32 noundef %.1475728) #27 + %376 = load i32, ptr %.tr648.ph, align 4 + %377 = lshr i32 %376, 26 + tail call void @Kit_TruthCofactor1New(ptr noundef nonnull %26, ptr noundef %23, i32 noundef %377, i32 noundef %.1475728) #27 %378 = load i32, ptr %.tr648.ph, align 4 %379 = lshr i32 %378, 26 - %380 = tail call i32 @Kit_TruthSupport(ptr noundef nonnull %26, i32 noundef %379) #27 - %381 = icmp eq i32 %377, 0 - %382 = icmp eq i32 %380, 0 - %or.cond = select i1 %381, i1 true, i1 %382 - br i1 %or.cond, label %383, label %386 - -383: ; preds = %.lr.ph730 - %384 = load i32, ptr %.tr648.ph, align 4 - %385 = and i32 %384, -513 - store i32 %385, ptr %.tr648.ph, align 4 - br label %tailrecurse.backedge + %380 = tail call i32 @Kit_TruthSupport(ptr noundef %24, i32 noundef %379) #27 + %381 = load i32, ptr %.tr648.ph, align 4 + %382 = lshr i32 %381, 26 + %383 = tail call i32 @Kit_TruthSupport(ptr noundef nonnull %26, i32 noundef %382) #27 + %384 = icmp eq i32 %380, 0 + %385 = icmp eq i32 %383, 0 + %or.cond = select i1 %384, i1 true, i1 %385 + br i1 %or.cond, label %386, label %389 386: ; preds = %.lr.ph730 - %387 = xor i32 %380, -1 - %388 = and i32 %377, %387 - %389 = and i32 %388, 1431655765 - %390 = lshr i32 %388, 1 - %391 = and i32 %390, 1431655765 - %392 = xor i32 %377, -1 - %393 = and i32 %380, %392 + %387 = load i32, ptr %.tr648.ph, align 4 + %388 = and i32 %387, -513 + store i32 %388, ptr %.tr648.ph, align 4 + br label %tailrecurse.backedge + +389: ; preds = %.lr.ph730 + %390 = xor i32 %383, -1 + %391 = and i32 %380, %390 + %392 = and i32 %391, 1431655765 + %393 = lshr i32 %391, 1 %394 = and i32 %393, 1431655765 - %395 = lshr i32 %393, 1 - %396 = and i32 %395, 1431655765 - %397 = insertelement <2 x i32> poison, i32 %396, i64 0 - %398 = insertelement <2 x i32> %397, i32 %391, i64 1 - %399 = insertelement <2 x i32> poison, i32 %394, i64 0 - %400 = insertelement <2 x i32> %399, i32 %389, i64 1 - %401 = add nuw <2 x i32> %398, %400 - %402 = and <2 x i32> %401, - %403 = lshr <2 x i32> %401, - %404 = and <2 x i32> %403, - %405 = add nuw nsw <2 x i32> %404, %402 - %406 = and <2 x i32> %405, - %407 = lshr <2 x i32> %405, - %408 = and <2 x i32> %407, - %409 = add nuw nsw <2 x i32> %408, %406 - %410 = and <2 x i32> %409, - %411 = lshr <2 x i32> %409, - %412 = and <2 x i32> %411, - %413 = add nuw nsw <2 x i32> %412, %410 - %414 = and <2 x i32> %413, - %415 = lshr <2 x i32> %413, - %416 = add nuw nsw <2 x i32> %414, %415 - %417 = icmp eq <2 x i32> %416, - %418 = extractelement <2 x i1> %417, i64 0 - %419 = extractelement <2 x i1> %417, i64 1 - %or.cond3 = select i1 %419, i1 %418, i1 false + %395 = xor i32 %380, -1 + %396 = and i32 %383, %395 + %397 = and i32 %396, 1431655765 + %398 = lshr i32 %396, 1 + %399 = and i32 %398, 1431655765 + %400 = insertelement <2 x i32> poison, i32 %399, i64 0 + %401 = insertelement <2 x i32> %400, i32 %394, i64 1 + %402 = insertelement <2 x i32> poison, i32 %397, i64 0 + %403 = insertelement <2 x i32> %402, i32 %392, i64 1 + %404 = add nuw <2 x i32> %401, %403 + %405 = and <2 x i32> %404, + %406 = lshr <2 x i32> %404, + %407 = and <2 x i32> %406, + %408 = add nuw nsw <2 x i32> %407, %405 + %409 = and <2 x i32> %408, + %410 = lshr <2 x i32> %408, + %411 = and <2 x i32> %410, + %412 = add nuw nsw <2 x i32> %411, %409 + %413 = and <2 x i32> %412, + %414 = lshr <2 x i32> %412, + %415 = and <2 x i32> %414, + %416 = add nuw nsw <2 x i32> %415, %413 + %417 = and <2 x i32> %416, + %418 = lshr <2 x i32> %416, + %419 = add nuw nsw <2 x i32> %417, %418 + %420 = icmp eq <2 x i32> %419, + %421 = extractelement <2 x i1> %420, i64 0 + %422 = extractelement <2 x i1> %420, i64 1 + %or.cond3 = select i1 %422, i1 %421, i1 false br i1 %or.cond3, label %.preheader, label %._crit_edge839 -._crit_edge839: ; preds = %386 +._crit_edge839: ; preds = %389 %.pre840 = load i32, ptr %.tr648.ph, align 4 %.pre847 = lshr i32 %.pre840, 26 - br label %515 - -.preheader: ; preds = %386, %422 - %.07.i561 = phi i32 [ %423, %422 ], [ 0, %386 ] - %420 = shl nuw i32 1, %.07.i561 - %421 = and i32 %420, %388 - %.not.i562 = icmp eq i32 %421, 0 - br i1 %.not.i562, label %422, label %Kit_WordFindFirstBit.exit - -422: ; preds = %.preheader - %423 = add nuw nsw i32 %.07.i561, 1 - %exitcond.not.i = icmp eq i32 %423, 32 + br label %518 + +.preheader: ; preds = %389, %425 + %.07.i561 = phi i32 [ %426, %425 ], [ 0, %389 ] + %423 = shl nuw i32 1, %.07.i561 + %424 = and i32 %423, %391 + %.not.i562 = icmp eq i32 %424, 0 + br i1 %.not.i562, label %425, label %Kit_WordFindFirstBit.exit + +425: ; preds = %.preheader + %426 = add nuw nsw i32 %.07.i561, 1 + %exitcond.not.i = icmp eq i32 %426, 32 br i1 %exitcond.not.i, label %Kit_WordFindFirstBit.exit, label %.preheader, !llvm.loop !82 -Kit_WordFindFirstBit.exit: ; preds = %.preheader, %422 - %.06.i = phi i32 [ %.07.i561, %.preheader ], [ -1, %422 ] - br label %424 - -424: ; preds = %427, %Kit_WordFindFirstBit.exit - %.07.i563 = phi i32 [ 0, %Kit_WordFindFirstBit.exit ], [ %428, %427 ] - %425 = shl nuw i32 1, %.07.i563 - %426 = and i32 %425, %393 - %.not.i564 = icmp eq i32 %426, 0 - br i1 %.not.i564, label %427, label %Kit_WordFindFirstBit.exit567 - -427: ; preds = %424 - %428 = add nuw nsw i32 %.07.i563, 1 - %exitcond.not.i566 = icmp eq i32 %428, 32 - br i1 %exitcond.not.i566, label %Kit_WordFindFirstBit.exit567, label %424, !llvm.loop !82 - -Kit_WordFindFirstBit.exit567: ; preds = %424, %427 - %.06.i565 = phi i32 [ %.07.i563, %424 ], [ -1, %427 ] - %429 = load i32, ptr %.tr648.ph, align 4 - %430 = lshr i32 %429, 26 - tail call void @Kit_TruthCofactor0New(ptr noundef nonnull %29, ptr noundef %24, i32 noundef %430, i32 noundef %.06.i) #27 - %431 = load i32, ptr %.tr648.ph, align 4 - %432 = lshr i32 %431, 26 - tail call void @Kit_TruthCofactor1New(ptr noundef nonnull %33, ptr noundef %24, i32 noundef %432, i32 noundef %.06.i) #27 - %433 = load i32, ptr %.tr648.ph, align 4 - %434 = lshr i32 %433, 26 - tail call void @Kit_TruthCofactor0New(ptr noundef nonnull %36, ptr noundef nonnull %26, i32 noundef %434, i32 noundef %.06.i565) #27 - %435 = load i32, ptr %.tr648.ph, align 4 - %436 = lshr i32 %435, 26 - tail call void @Kit_TruthCofactor1New(ptr noundef nonnull %40, ptr noundef nonnull %26, i32 noundef %436, i32 noundef %.06.i565) #27 - %437 = load i32, ptr %.tr648.ph, align 4 - %438 = lshr i32 %437, 26 - %439 = icmp ult i32 %437, 402653184 - %440 = add nsw i32 %438, -5 - %441 = shl nuw i32 1, %440 - %spec.select.i568 = select i1 %439, i32 1, i32 %441 - %442 = zext i32 %spec.select.i568 to i64 +Kit_WordFindFirstBit.exit: ; preds = %.preheader, %425 + %.06.i = phi i32 [ %.07.i561, %.preheader ], [ -1, %425 ] + br label %427 + +427: ; preds = %430, %Kit_WordFindFirstBit.exit + %.07.i563 = phi i32 [ 0, %Kit_WordFindFirstBit.exit ], [ %431, %430 ] + %428 = shl nuw i32 1, %.07.i563 + %429 = and i32 %428, %396 + %.not.i564 = icmp eq i32 %429, 0 + br i1 %.not.i564, label %430, label %Kit_WordFindFirstBit.exit567 + +430: ; preds = %427 + %431 = add nuw nsw i32 %.07.i563, 1 + %exitcond.not.i566 = icmp eq i32 %431, 32 + br i1 %exitcond.not.i566, label %Kit_WordFindFirstBit.exit567, label %427, !llvm.loop !82 + +Kit_WordFindFirstBit.exit567: ; preds = %427, %430 + %.06.i565 = phi i32 [ %.07.i563, %427 ], [ -1, %430 ] + %432 = load i32, ptr %.tr648.ph, align 4 + %433 = lshr i32 %432, 26 + tail call void @Kit_TruthCofactor0New(ptr noundef nonnull %29, ptr noundef %24, i32 noundef %433, i32 noundef %.06.i) #27 + %434 = load i32, ptr %.tr648.ph, align 4 + %435 = lshr i32 %434, 26 + tail call void @Kit_TruthCofactor1New(ptr noundef nonnull %33, ptr noundef %24, i32 noundef %435, i32 noundef %.06.i) #27 + %436 = load i32, ptr %.tr648.ph, align 4 + %437 = lshr i32 %436, 26 + tail call void @Kit_TruthCofactor0New(ptr noundef nonnull %36, ptr noundef nonnull %26, i32 noundef %437, i32 noundef %.06.i565) #27 + %438 = load i32, ptr %.tr648.ph, align 4 + %439 = lshr i32 %438, 26 + tail call void @Kit_TruthCofactor1New(ptr noundef nonnull %40, ptr noundef nonnull %26, i32 noundef %439, i32 noundef %.06.i565) #27 + %440 = load i32, ptr %.tr648.ph, align 4 + %441 = lshr i32 %440, 26 + %442 = icmp ult i32 %440, 402653184 + %443 = add nsw i32 %441, -5 + %444 = shl nuw i32 1, %443 + %spec.select.i568 = select i1 %442, i32 1, i32 %444 + %445 = zext i32 %spec.select.i568 to i64 br label %select.unfold.i569 -select.unfold.i569: ; preds = %445, %Kit_WordFindFirstBit.exit567 - %indvars.iv.i570 = phi i64 [ %442, %Kit_WordFindFirstBit.exit567 ], [ %446, %445 ] - %443 = trunc i64 %indvars.iv.i570 to i32 - %444 = icmp slt i32 %443, 1 - br i1 %444, label %select.unfold.i574.preheader, label %445 - -445: ; preds = %select.unfold.i569 - %446 = add nsw i64 %indvars.iv.i570, -1 - %447 = getelementptr inbounds i32, ptr %29, i64 %446 - %448 = load i32, ptr %447, align 4 - %449 = getelementptr inbounds i32, ptr %36, i64 %446 - %450 = load i32, ptr %449, align 4 - %.not.i572 = icmp eq i32 %448, %450 +select.unfold.i569: ; preds = %448, %Kit_WordFindFirstBit.exit567 + %indvars.iv.i570 = phi i64 [ %445, %Kit_WordFindFirstBit.exit567 ], [ %449, %448 ] + %446 = trunc i64 %indvars.iv.i570 to i32 + %447 = icmp slt i32 %446, 1 + br i1 %447, label %select.unfold.i574.preheader, label %448 + +448: ; preds = %select.unfold.i569 + %449 = add nsw i64 %indvars.iv.i570, -1 + %450 = getelementptr inbounds i32, ptr %29, i64 %449 + %451 = load i32, ptr %450, align 4 + %452 = getelementptr inbounds i32, ptr %36, i64 %449 + %453 = load i32, ptr %452, align 4 + %.not.i572 = icmp eq i32 %451, %453 br i1 %.not.i572, label %select.unfold.i569, label %select.unfold.i574.preheader, !llvm.loop !83 -select.unfold.i574.preheader: ; preds = %select.unfold.i569, %445 +select.unfold.i574.preheader: ; preds = %select.unfold.i569, %448 br label %select.unfold.i574 -select.unfold.i574: ; preds = %select.unfold.i574.preheader, %453 - %indvars.iv.i575 = phi i64 [ %454, %453 ], [ %442, %select.unfold.i574.preheader ] - %451 = trunc i64 %indvars.iv.i575 to i32 - %452 = icmp slt i32 %451, 1 - br i1 %452, label %select.unfold.i580.preheader, label %453 - -453: ; preds = %select.unfold.i574 - %454 = add nsw i64 %indvars.iv.i575, -1 - %455 = getelementptr inbounds i32, ptr %33, i64 %454 - %456 = load i32, ptr %455, align 4 - %457 = getelementptr inbounds i32, ptr %40, i64 %454 - %458 = load i32, ptr %457, align 4 - %.not.i577 = icmp eq i32 %456, %458 +select.unfold.i574: ; preds = %select.unfold.i574.preheader, %456 + %indvars.iv.i575 = phi i64 [ %457, %456 ], [ %445, %select.unfold.i574.preheader ] + %454 = trunc i64 %indvars.iv.i575 to i32 + %455 = icmp slt i32 %454, 1 + br i1 %455, label %select.unfold.i580.preheader, label %456 + +456: ; preds = %select.unfold.i574 + %457 = add nsw i64 %indvars.iv.i575, -1 + %458 = getelementptr inbounds i32, ptr %33, i64 %457 + %459 = load i32, ptr %458, align 4 + %460 = getelementptr inbounds i32, ptr %40, i64 %457 + %461 = load i32, ptr %460, align 4 + %.not.i577 = icmp eq i32 %459, %461 br i1 %.not.i577, label %select.unfold.i574, label %select.unfold.i580.preheader, !llvm.loop !83 -select.unfold.i580.preheader: ; preds = %select.unfold.i574, %453 +select.unfold.i580.preheader: ; preds = %select.unfold.i574, %456 br label %select.unfold.i580 -select.unfold.i580: ; preds = %select.unfold.i580.preheader, %461 - %indvars.iv.i581 = phi i64 [ %462, %461 ], [ %442, %select.unfold.i580.preheader ] - %459 = trunc i64 %indvars.iv.i581 to i32 - %460 = icmp slt i32 %459, 1 - br i1 %460, label %select.unfold.i586.preheader, label %461 - -461: ; preds = %select.unfold.i580 - %462 = add nsw i64 %indvars.iv.i581, -1 - %463 = getelementptr inbounds i32, ptr %29, i64 %462 - %464 = load i32, ptr %463, align 4 - %465 = getelementptr inbounds i32, ptr %40, i64 %462 - %466 = load i32, ptr %465, align 4 - %.not.i583 = icmp eq i32 %464, %466 +select.unfold.i580: ; preds = %select.unfold.i580.preheader, %464 + %indvars.iv.i581 = phi i64 [ %465, %464 ], [ %445, %select.unfold.i580.preheader ] + %462 = trunc i64 %indvars.iv.i581 to i32 + %463 = icmp slt i32 %462, 1 + br i1 %463, label %select.unfold.i586.preheader, label %464 + +464: ; preds = %select.unfold.i580 + %465 = add nsw i64 %indvars.iv.i581, -1 + %466 = getelementptr inbounds i32, ptr %29, i64 %465 + %467 = load i32, ptr %466, align 4 + %468 = getelementptr inbounds i32, ptr %40, i64 %465 + %469 = load i32, ptr %468, align 4 + %.not.i583 = icmp eq i32 %467, %469 br i1 %.not.i583, label %select.unfold.i580, label %select.unfold.i586.preheader, !llvm.loop !83 -select.unfold.i586.preheader: ; preds = %select.unfold.i580, %461 +select.unfold.i586.preheader: ; preds = %select.unfold.i580, %464 br label %select.unfold.i586 -select.unfold.i586: ; preds = %select.unfold.i586.preheader, %469 - %indvars.iv.i587 = phi i64 [ %470, %469 ], [ %442, %select.unfold.i586.preheader ] - %467 = trunc i64 %indvars.iv.i587 to i32 - %468 = icmp slt i32 %467, 1 - br i1 %468, label %Kit_TruthIsEqual.exit590, label %469 - -469: ; preds = %select.unfold.i586 - %470 = add nsw i64 %indvars.iv.i587, -1 - %471 = getelementptr inbounds i32, ptr %33, i64 %470 - %472 = load i32, ptr %471, align 4 - %473 = getelementptr inbounds i32, ptr %36, i64 %470 - %474 = load i32, ptr %473, align 4 - %.not.i589 = icmp eq i32 %472, %474 +select.unfold.i586: ; preds = %select.unfold.i586.preheader, %472 + %indvars.iv.i587 = phi i64 [ %473, %472 ], [ %445, %select.unfold.i586.preheader ] + %470 = trunc i64 %indvars.iv.i587 to i32 + %471 = icmp slt i32 %470, 1 + br i1 %471, label %Kit_TruthIsEqual.exit590, label %472 + +472: ; preds = %select.unfold.i586 + %473 = add nsw i64 %indvars.iv.i587, -1 + %474 = getelementptr inbounds i32, ptr %33, i64 %473 + %475 = load i32, ptr %474, align 4 + %476 = getelementptr inbounds i32, ptr %36, i64 %473 + %477 = load i32, ptr %476, align 4 + %.not.i589 = icmp eq i32 %475, %477 br i1 %.not.i589, label %select.unfold.i586, label %Kit_TruthIsEqual.exit590, !llvm.loop !83 -Kit_TruthIsEqual.exit590: ; preds = %select.unfold.i586, %469 - %or.cond7 = and i1 %444, %452 - %or.cond11 = and i1 %460, %468 +Kit_TruthIsEqual.exit590: ; preds = %select.unfold.i586, %472 + %or.cond7 = and i1 %447, %455 + %or.cond11 = and i1 %463, %471 %or.cond652 = or i1 %or.cond7, %or.cond11 - br i1 %or.cond652, label %475, label %515 - -475: ; preds = %Kit_TruthIsEqual.exit590 - %476 = tail call ptr @Kit_DsdObjAlloc(ptr noundef %0, i32 noundef 5, i32 noundef 3) - %477 = load i32, ptr %476, align 4 - %478 = and i32 %477, 448 - %479 = icmp eq i32 %478, 320 - %480 = getelementptr inbounds i8, ptr %476, i64 4 - %481 = lshr i32 %477, 10 - %482 = and i32 %481, 255 - %483 = zext nneg i32 %482 to i64 - %484 = getelementptr inbounds i32, ptr %480, i64 %483 - %485 = select i1 %479, ptr %484, ptr null - store i32 -892679478, ptr %485, align 4 - %486 = add i32 %477, 262144 - %487 = and i32 %486, 66846720 - %488 = and i32 %477, 262143 - %489 = or disjoint i32 %488, %487 - %490 = or disjoint i32 %489, 201326592 - store i32 %490, ptr %476, align 4 - %491 = sext i32 %.06.i to i64 - %492 = getelementptr inbounds [0 x i16], ptr %10, i64 0, i64 %491 - %493 = load i16, ptr %492, align 2 - store i16 %493, ptr %480, align 4 - store i16 127, ptr %492, align 2 - %494 = shl nuw i32 1, %.06.i - %495 = sext i32 %.06.i565 to i64 - %496 = getelementptr inbounds [0 x i16], ptr %10, i64 0, i64 %495 - %497 = load i16, ptr %496, align 2 - %498 = getelementptr inbounds i8, ptr %476, i64 6 - store i16 %497, ptr %498, align 2 - store i16 127, ptr %496, align 2 - %499 = shl nuw i32 1, %.06.i565 - %500 = or i32 %499, %494 - %501 = xor i32 %500, -1 - %502 = and i32 %.0, %501 - %503 = zext nneg i32 %.1475728 to i64 - %504 = getelementptr inbounds [0 x i16], ptr %10, i64 0, i64 %503 - %505 = load i16, ptr %504, align 2 - %506 = getelementptr inbounds i8, ptr %476, i64 8 - store i16 %505, ptr %506, align 4 - %507 = load i32, ptr %476, align 4 - %.tr498 = trunc i32 %507 to i16 - %508 = shl i16 %.tr498, 1 - %509 = and i16 %508, 126 - store i16 %509, ptr %504, align 2 - %510 = load i32, ptr %.tr648.ph, align 4 - %511 = lshr i32 %510, 26 - tail call void @Kit_TruthMuxVar(ptr noundef %23, ptr noundef nonnull %36, ptr noundef nonnull %40, i32 noundef %511, i32 noundef %.1475728) #27 - br i1 %or.cond11, label %512, label %tailrecurse.backedge - -512: ; preds = %475 - %513 = load i16, ptr %480, align 4 - %514 = xor i16 %513, 1 - store i16 %514, ptr %480, align 4 + br i1 %or.cond652, label %478, label %518 + +478: ; preds = %Kit_TruthIsEqual.exit590 + %479 = tail call ptr @Kit_DsdObjAlloc(ptr noundef %0, i32 noundef 5, i32 noundef 3) + %480 = load i32, ptr %479, align 4 + %481 = and i32 %480, 448 + %482 = icmp eq i32 %481, 320 + %483 = getelementptr inbounds i8, ptr %479, i64 4 + %484 = lshr i32 %480, 10 + %485 = and i32 %484, 255 + %486 = zext nneg i32 %485 to i64 + %487 = getelementptr inbounds i32, ptr %483, i64 %486 + %488 = select i1 %482, ptr %487, ptr null + store i32 -892679478, ptr %488, align 4 + %489 = add i32 %480, 262144 + %490 = and i32 %489, 66846720 + %491 = and i32 %480, 262143 + %492 = or disjoint i32 %491, %490 + %493 = or disjoint i32 %492, 201326592 + store i32 %493, ptr %479, align 4 + %494 = sext i32 %.06.i to i64 + %495 = getelementptr inbounds [0 x i16], ptr %10, i64 0, i64 %494 + %496 = load i16, ptr %495, align 2 + store i16 %496, ptr %483, align 4 + store i16 127, ptr %495, align 2 + %497 = shl nuw i32 1, %.06.i + %498 = sext i32 %.06.i565 to i64 + %499 = getelementptr inbounds [0 x i16], ptr %10, i64 0, i64 %498 + %500 = load i16, ptr %499, align 2 + %501 = getelementptr inbounds i8, ptr %479, i64 6 + store i16 %500, ptr %501, align 2 + store i16 127, ptr %499, align 2 + %502 = shl nuw i32 1, %.06.i565 + %503 = or i32 %502, %497 + %504 = xor i32 %503, -1 + %505 = and i32 %.0, %504 + %506 = zext nneg i32 %.1475728 to i64 + %507 = getelementptr inbounds [0 x i16], ptr %10, i64 0, i64 %506 + %508 = load i16, ptr %507, align 2 + %509 = getelementptr inbounds i8, ptr %479, i64 8 + store i16 %508, ptr %509, align 4 + %510 = load i32, ptr %479, align 4 + %.tr498 = trunc i32 %510 to i16 + %511 = shl i16 %.tr498, 1 + %512 = and i16 %511, 126 + store i16 %512, ptr %507, align 2 + %513 = load i32, ptr %.tr648.ph, align 4 + %514 = lshr i32 %513, 26 + tail call void @Kit_TruthMuxVar(ptr noundef %23, ptr noundef nonnull %36, ptr noundef nonnull %40, i32 noundef %514, i32 noundef %.1475728) #27 + br i1 %or.cond11, label %515, label %tailrecurse.backedge + +515: ; preds = %478 + %516 = load i16, ptr %483, align 4 + %517 = xor i16 %516, 1 + store i16 %517, ptr %483, align 4 br label %tailrecurse.backedge -515: ; preds = %._crit_edge839, %Kit_TruthIsEqual.exit590 - %.pre-phi848 = phi i32 [ %.pre847, %._crit_edge839 ], [ %438, %Kit_TruthIsEqual.exit590 ] - %516 = phi i32 [ %.pre840, %._crit_edge839 ], [ %437, %Kit_TruthIsEqual.exit590 ] - %517 = icmp ult i32 %.1475.in727, %.pre-phi848 - br i1 %517, label %.lr.ph725, label %.loopexit - -.lr.ph725: ; preds = %515, %657 - %518 = phi i32 [ %526, %657 ], [ %.pre-phi848, %515 ] - %.3723 = phi i32 [ %658, %657 ], [ %.1475.in727, %515 ] - tail call void @Kit_TruthCofactor0New(ptr noundef nonnull %29, ptr noundef %24, i32 noundef %518, i32 noundef %.3723) #27 - %519 = load i32, ptr %.tr648.ph, align 4 - %520 = lshr i32 %519, 26 - tail call void @Kit_TruthCofactor1New(ptr noundef nonnull %33, ptr noundef %24, i32 noundef %520, i32 noundef %.3723) #27 - %521 = load i32, ptr %.tr648.ph, align 4 - %522 = lshr i32 %521, 26 - tail call void @Kit_TruthCofactor0New(ptr noundef nonnull %36, ptr noundef nonnull %26, i32 noundef %522, i32 noundef %.3723) #27 - %523 = load i32, ptr %.tr648.ph, align 4 - %524 = lshr i32 %523, 26 - tail call void @Kit_TruthCofactor1New(ptr noundef nonnull %40, ptr noundef nonnull %26, i32 noundef %524, i32 noundef %.3723) #27 - %525 = load i32, ptr %.tr648.ph, align 4 - %526 = lshr i32 %525, 26 - %527 = icmp ult i32 %525, 402653184 - %528 = add nsw i32 %526, -5 - %529 = shl nuw i32 1, %528 - %spec.select.i591 = select i1 %527, i32 1, i32 %529 - %530 = zext i32 %spec.select.i591 to i64 +518: ; preds = %._crit_edge839, %Kit_TruthIsEqual.exit590 + %.pre-phi848 = phi i32 [ %.pre847, %._crit_edge839 ], [ %441, %Kit_TruthIsEqual.exit590 ] + %519 = phi i32 [ %.pre840, %._crit_edge839 ], [ %440, %Kit_TruthIsEqual.exit590 ] + %520 = icmp ult i32 %.1475.in727, %.pre-phi848 + br i1 %520, label %.lr.ph725, label %.loopexit + +.lr.ph725: ; preds = %518, %660 + %521 = phi i32 [ %529, %660 ], [ %.pre-phi848, %518 ] + %.3723 = phi i32 [ %661, %660 ], [ %.1475.in727, %518 ] + tail call void @Kit_TruthCofactor0New(ptr noundef nonnull %29, ptr noundef %24, i32 noundef %521, i32 noundef %.3723) #27 + %522 = load i32, ptr %.tr648.ph, align 4 + %523 = lshr i32 %522, 26 + tail call void @Kit_TruthCofactor1New(ptr noundef nonnull %33, ptr noundef %24, i32 noundef %523, i32 noundef %.3723) #27 + %524 = load i32, ptr %.tr648.ph, align 4 + %525 = lshr i32 %524, 26 + tail call void @Kit_TruthCofactor0New(ptr noundef nonnull %36, ptr noundef nonnull %26, i32 noundef %525, i32 noundef %.3723) #27 + %526 = load i32, ptr %.tr648.ph, align 4 + %527 = lshr i32 %526, 26 + tail call void @Kit_TruthCofactor1New(ptr noundef nonnull %40, ptr noundef nonnull %26, i32 noundef %527, i32 noundef %.3723) #27 + %528 = load i32, ptr %.tr648.ph, align 4 + %529 = lshr i32 %528, 26 + %530 = icmp ult i32 %528, 402653184 + %531 = add nsw i32 %529, -5 + %532 = shl nuw i32 1, %531 + %spec.select.i591 = select i1 %530, i32 1, i32 %532 + %533 = zext i32 %spec.select.i591 to i64 br label %select.unfold.i592 -select.unfold.i592: ; preds = %533, %.lr.ph725 - %indvars.iv.i593 = phi i64 [ %530, %.lr.ph725 ], [ %534, %533 ] - %531 = trunc i64 %indvars.iv.i593 to i32 - %532 = icmp slt i32 %531, 1 - br i1 %532, label %Kit_TruthIsEqual.exit596, label %533 - -533: ; preds = %select.unfold.i592 - %534 = add nsw i64 %indvars.iv.i593, -1 - %535 = getelementptr inbounds i32, ptr %29, i64 %534 - %536 = load i32, ptr %535, align 4 - %537 = getelementptr inbounds i32, ptr %33, i64 %534 - %538 = load i32, ptr %537, align 4 - %.not.i595 = icmp eq i32 %536, %538 +select.unfold.i592: ; preds = %536, %.lr.ph725 + %indvars.iv.i593 = phi i64 [ %533, %.lr.ph725 ], [ %537, %536 ] + %534 = trunc i64 %indvars.iv.i593 to i32 + %535 = icmp slt i32 %534, 1 + br i1 %535, label %Kit_TruthIsEqual.exit596, label %536 + +536: ; preds = %select.unfold.i592 + %537 = add nsw i64 %indvars.iv.i593, -1 + %538 = getelementptr inbounds i32, ptr %29, i64 %537 + %539 = load i32, ptr %538, align 4 + %540 = getelementptr inbounds i32, ptr %33, i64 %537 + %541 = load i32, ptr %540, align 4 + %.not.i595 = icmp eq i32 %539, %541 br i1 %.not.i595, label %select.unfold.i592, label %Kit_TruthIsEqual.exit596, !llvm.loop !83 -Kit_TruthIsEqual.exit596: ; preds = %select.unfold.i592, %533 - %.07.i594 = phi i32 [ -3, %select.unfold.i592 ], [ -4, %533 ] +Kit_TruthIsEqual.exit596: ; preds = %select.unfold.i592, %536 + %.07.i594 = phi i32 [ -3, %select.unfold.i592 ], [ -4, %536 ] br label %select.unfold.i598 -select.unfold.i598: ; preds = %541, %Kit_TruthIsEqual.exit596 - %indvars.iv.i599 = phi i64 [ %530, %Kit_TruthIsEqual.exit596 ], [ %542, %541 ] - %539 = trunc i64 %indvars.iv.i599 to i32 - %540 = icmp slt i32 %539, 1 - br i1 %540, label %Kit_TruthIsEqual.exit602, label %541 - -541: ; preds = %select.unfold.i598 - %542 = add nsw i64 %indvars.iv.i599, -1 - %543 = getelementptr inbounds i32, ptr %29, i64 %542 - %544 = load i32, ptr %543, align 4 - %545 = getelementptr inbounds i32, ptr %36, i64 %542 - %546 = load i32, ptr %545, align 4 - %.not.i601 = icmp eq i32 %544, %546 +select.unfold.i598: ; preds = %544, %Kit_TruthIsEqual.exit596 + %indvars.iv.i599 = phi i64 [ %533, %Kit_TruthIsEqual.exit596 ], [ %545, %544 ] + %542 = trunc i64 %indvars.iv.i599 to i32 + %543 = icmp slt i32 %542, 1 + br i1 %543, label %Kit_TruthIsEqual.exit602, label %544 + +544: ; preds = %select.unfold.i598 + %545 = add nsw i64 %indvars.iv.i599, -1 + %546 = getelementptr inbounds i32, ptr %29, i64 %545 + %547 = load i32, ptr %546, align 4 + %548 = getelementptr inbounds i32, ptr %36, i64 %545 + %549 = load i32, ptr %548, align 4 + %.not.i601 = icmp eq i32 %547, %549 br i1 %.not.i601, label %select.unfold.i598, label %Kit_TruthIsEqual.exit602, !llvm.loop !83 -Kit_TruthIsEqual.exit602: ; preds = %select.unfold.i598, %541 - %.07.i600 = phi i32 [ 1, %select.unfold.i598 ], [ 0, %541 ] +Kit_TruthIsEqual.exit602: ; preds = %select.unfold.i598, %544 + %.07.i600 = phi i32 [ 1, %select.unfold.i598 ], [ 0, %544 ] br label %select.unfold.i604 -select.unfold.i604: ; preds = %549, %Kit_TruthIsEqual.exit602 - %indvars.iv.i605 = phi i64 [ %530, %Kit_TruthIsEqual.exit602 ], [ %550, %549 ] - %547 = trunc i64 %indvars.iv.i605 to i32 - %548 = icmp slt i32 %547, 1 - br i1 %548, label %Kit_TruthIsEqual.exit608, label %549 - -549: ; preds = %select.unfold.i604 - %550 = add nsw i64 %indvars.iv.i605, -1 - %551 = getelementptr inbounds i32, ptr %29, i64 %550 - %552 = load i32, ptr %551, align 4 - %553 = getelementptr inbounds i32, ptr %40, i64 %550 - %554 = load i32, ptr %553, align 4 - %.not.i607 = icmp eq i32 %552, %554 +select.unfold.i604: ; preds = %552, %Kit_TruthIsEqual.exit602 + %indvars.iv.i605 = phi i64 [ %533, %Kit_TruthIsEqual.exit602 ], [ %553, %552 ] + %550 = trunc i64 %indvars.iv.i605 to i32 + %551 = icmp slt i32 %550, 1 + br i1 %551, label %Kit_TruthIsEqual.exit608, label %552 + +552: ; preds = %select.unfold.i604 + %553 = add nsw i64 %indvars.iv.i605, -1 + %554 = getelementptr inbounds i32, ptr %29, i64 %553 + %555 = load i32, ptr %554, align 4 + %556 = getelementptr inbounds i32, ptr %40, i64 %553 + %557 = load i32, ptr %556, align 4 + %.not.i607 = icmp eq i32 %555, %557 br i1 %.not.i607, label %select.unfold.i604, label %Kit_TruthIsEqual.exit608, !llvm.loop !83 -Kit_TruthIsEqual.exit608: ; preds = %select.unfold.i604, %549 - %.07.i606 = phi i32 [ 1, %select.unfold.i604 ], [ 0, %549 ] +Kit_TruthIsEqual.exit608: ; preds = %select.unfold.i604, %552 + %.07.i606 = phi i32 [ 1, %select.unfold.i604 ], [ 0, %552 ] br label %select.unfold.i610 -select.unfold.i610: ; preds = %557, %Kit_TruthIsEqual.exit608 - %indvars.iv.i611 = phi i64 [ %530, %Kit_TruthIsEqual.exit608 ], [ %558, %557 ] - %555 = trunc i64 %indvars.iv.i611 to i32 - %556 = icmp slt i32 %555, 1 - br i1 %556, label %Kit_TruthIsEqual.exit614, label %557 - -557: ; preds = %select.unfold.i610 - %558 = add nsw i64 %indvars.iv.i611, -1 - %559 = getelementptr inbounds i32, ptr %33, i64 %558 - %560 = load i32, ptr %559, align 4 - %561 = getelementptr inbounds i32, ptr %36, i64 %558 - %562 = load i32, ptr %561, align 4 - %.not.i613 = icmp eq i32 %560, %562 +select.unfold.i610: ; preds = %560, %Kit_TruthIsEqual.exit608 + %indvars.iv.i611 = phi i64 [ %533, %Kit_TruthIsEqual.exit608 ], [ %561, %560 ] + %558 = trunc i64 %indvars.iv.i611 to i32 + %559 = icmp slt i32 %558, 1 + br i1 %559, label %Kit_TruthIsEqual.exit614, label %560 + +560: ; preds = %select.unfold.i610 + %561 = add nsw i64 %indvars.iv.i611, -1 + %562 = getelementptr inbounds i32, ptr %33, i64 %561 + %563 = load i32, ptr %562, align 4 + %564 = getelementptr inbounds i32, ptr %36, i64 %561 + %565 = load i32, ptr %564, align 4 + %.not.i613 = icmp eq i32 %563, %565 br i1 %.not.i613, label %select.unfold.i610, label %Kit_TruthIsEqual.exit614, !llvm.loop !83 -Kit_TruthIsEqual.exit614: ; preds = %select.unfold.i610, %557 - %.07.i612 = phi i32 [ 1, %select.unfold.i610 ], [ 0, %557 ] +Kit_TruthIsEqual.exit614: ; preds = %select.unfold.i610, %560 + %.07.i612 = phi i32 [ 1, %select.unfold.i610 ], [ 0, %560 ] br label %select.unfold.i616 -select.unfold.i616: ; preds = %565, %Kit_TruthIsEqual.exit614 - %indvars.iv.i617 = phi i64 [ %530, %Kit_TruthIsEqual.exit614 ], [ %566, %565 ] - %563 = trunc i64 %indvars.iv.i617 to i32 - %564 = icmp slt i32 %563, 1 - br i1 %564, label %Kit_TruthIsEqual.exit620, label %565 - -565: ; preds = %select.unfold.i616 - %566 = add nsw i64 %indvars.iv.i617, -1 - %567 = getelementptr inbounds i32, ptr %33, i64 %566 - %568 = load i32, ptr %567, align 4 - %569 = getelementptr inbounds i32, ptr %40, i64 %566 - %570 = load i32, ptr %569, align 4 - %.not.i619 = icmp eq i32 %568, %570 +select.unfold.i616: ; preds = %568, %Kit_TruthIsEqual.exit614 + %indvars.iv.i617 = phi i64 [ %533, %Kit_TruthIsEqual.exit614 ], [ %569, %568 ] + %566 = trunc i64 %indvars.iv.i617 to i32 + %567 = icmp slt i32 %566, 1 + br i1 %567, label %Kit_TruthIsEqual.exit620, label %568 + +568: ; preds = %select.unfold.i616 + %569 = add nsw i64 %indvars.iv.i617, -1 + %570 = getelementptr inbounds i32, ptr %33, i64 %569 + %571 = load i32, ptr %570, align 4 + %572 = getelementptr inbounds i32, ptr %40, i64 %569 + %573 = load i32, ptr %572, align 4 + %.not.i619 = icmp eq i32 %571, %573 br i1 %.not.i619, label %select.unfold.i616, label %Kit_TruthIsEqual.exit620, !llvm.loop !83 -Kit_TruthIsEqual.exit620: ; preds = %select.unfold.i616, %565 - %.07.i618 = phi i32 [ 1, %select.unfold.i616 ], [ 0, %565 ] +Kit_TruthIsEqual.exit620: ; preds = %select.unfold.i616, %568 + %.07.i618 = phi i32 [ 1, %select.unfold.i616 ], [ 0, %568 ] br label %select.unfold.i622 -select.unfold.i622: ; preds = %573, %Kit_TruthIsEqual.exit620 - %indvars.iv.i623 = phi i64 [ %530, %Kit_TruthIsEqual.exit620 ], [ %574, %573 ] - %571 = trunc i64 %indvars.iv.i623 to i32 - %572 = icmp sgt i32 %571, 0 - br i1 %572, label %573, label %Kit_TruthIsEqual.exit626 - -573: ; preds = %select.unfold.i622 - %574 = add nsw i64 %indvars.iv.i623, -1 - %575 = getelementptr inbounds i32, ptr %36, i64 %574 - %576 = load i32, ptr %575, align 4 - %577 = getelementptr inbounds i32, ptr %40, i64 %574 - %578 = load i32, ptr %577, align 4 - %.not.i625 = icmp eq i32 %576, %578 +select.unfold.i622: ; preds = %576, %Kit_TruthIsEqual.exit620 + %indvars.iv.i623 = phi i64 [ %533, %Kit_TruthIsEqual.exit620 ], [ %577, %576 ] + %574 = trunc i64 %indvars.iv.i623 to i32 + %575 = icmp sgt i32 %574, 0 + br i1 %575, label %576, label %Kit_TruthIsEqual.exit626 + +576: ; preds = %select.unfold.i622 + %577 = add nsw i64 %indvars.iv.i623, -1 + %578 = getelementptr inbounds i32, ptr %36, i64 %577 + %579 = load i32, ptr %578, align 4 + %580 = getelementptr inbounds i32, ptr %40, i64 %577 + %581 = load i32, ptr %580, align 4 + %.not.i625 = icmp eq i32 %579, %581 br i1 %.not.i625, label %select.unfold.i622, label %Kit_TruthIsEqual.exit626, !llvm.loop !83 -Kit_TruthIsEqual.exit626: ; preds = %select.unfold.i622, %573 - %.07.i624 = phi i32 [ 0, %573 ], [ 1, %select.unfold.i622 ] - %579 = add nuw nsw i32 %.07.i594, %.07.i600 - %580 = add nuw nsw i32 %579, %.07.i606 - %581 = add nsw i32 %580, %.07.i612 - %582 = add nsw i32 %581, %.07.i618 - %583 = add nsw i32 %582, %.07.i624 - %or.cond17 = icmp ult i32 %583, -2 - br i1 %or.cond17, label %657, label %584 - -584: ; preds = %Kit_TruthIsEqual.exit626 +Kit_TruthIsEqual.exit626: ; preds = %select.unfold.i622, %576 + %.07.i624 = phi i32 [ 0, %576 ], [ 1, %select.unfold.i622 ] + %582 = add nuw nsw i32 %.07.i594, %.07.i600 + %583 = add nuw nsw i32 %582, %.07.i606 + %584 = add nsw i32 %583, %.07.i612 + %585 = add nsw i32 %584, %.07.i618 + %586 = add nsw i32 %585, %.07.i624 + %or.cond17 = icmp ult i32 %586, -2 + br i1 %or.cond17, label %660, label %587 + +587: ; preds = %Kit_TruthIsEqual.exit626 %calloc.i627 = tail call dereferenceable_or_null(8) ptr @calloc(i64 1, i64 8) - %585 = load i16, ptr %0, align 8 - %586 = zext i16 %585 to i32 - %587 = load i16, ptr %7, align 4 - %588 = zext i16 %587 to i32 - %589 = add nuw nsw i32 %588, %586 - %590 = and i32 %589, 63 - %591 = or disjoint i32 %590, 134218944 - store i32 %591, ptr %calloc.i627, align 4 - %592 = load i16, ptr %8, align 2 - %593 = icmp eq i16 %587, %592 - br i1 %593, label %594, label %._crit_edge.i628 - -._crit_edge.i628: ; preds = %584 + %588 = load i16, ptr %0, align 8 + %589 = zext i16 %588 to i32 + %590 = load i16, ptr %7, align 4 + %591 = zext i16 %590 to i32 + %592 = add nuw nsw i32 %591, %589 + %593 = and i32 %592, 63 + %594 = or disjoint i32 %593, 134218944 + store i32 %594, ptr %calloc.i627, align 4 + %595 = load i16, ptr %8, align 2 + %596 = icmp eq i16 %590, %595 + br i1 %596, label %597, label %._crit_edge.i628 + +._crit_edge.i628: ; preds = %587 %.pre.i630 = load ptr, ptr %.phi.trans.insert.i629, align 8 br label %Kit_DsdObjAlloc.exit634 -594: ; preds = %584 - %595 = shl i16 %587, 1 - store i16 %595, ptr %8, align 2 - %596 = load ptr, ptr %.phi.trans.insert.i629, align 8 - %.not.i631 = icmp eq ptr %596, null - %597 = zext i16 %595 to i64 - %598 = shl nuw nsw i64 %597, 3 - br i1 %.not.i631, label %601, label %599 - -599: ; preds = %594 - %600 = tail call ptr @realloc(ptr noundef nonnull %596, i64 noundef %598) #28 +597: ; preds = %587 + %598 = shl i16 %590, 1 + store i16 %598, ptr %8, align 2 + %599 = load ptr, ptr %.phi.trans.insert.i629, align 8 + %.not.i631 = icmp eq ptr %599, null + %600 = zext i16 %598 to i64 + %601 = shl nuw nsw i64 %600, 3 + br i1 %.not.i631, label %604, label %602 + +602: ; preds = %597 + %603 = tail call ptr @realloc(ptr noundef nonnull %599, i64 noundef %601) #28 %.pre27.pre.i632 = load i16, ptr %7, align 4 - br label %603 + br label %606 -601: ; preds = %594 - %602 = tail call noalias ptr @malloc(i64 noundef %598) #26 - br label %603 +604: ; preds = %597 + %605 = tail call noalias ptr @malloc(i64 noundef %601) #26 + br label %606 -603: ; preds = %601, %599 - %.pre27.i633 = phi i16 [ %.pre27.pre.i632, %599 ], [ %587, %601 ] - %604 = phi ptr [ %600, %599 ], [ %602, %601 ] - store ptr %604, ptr %.phi.trans.insert.i629, align 8 +606: ; preds = %604, %602 + %.pre27.i633 = phi i16 [ %.pre27.pre.i632, %602 ], [ %590, %604 ] + %607 = phi ptr [ %603, %602 ], [ %605, %604 ] + store ptr %607, ptr %.phi.trans.insert.i629, align 8 br label %Kit_DsdObjAlloc.exit634 -Kit_DsdObjAlloc.exit634: ; preds = %._crit_edge.i628, %603 - %605 = phi i16 [ %587, %._crit_edge.i628 ], [ %.pre27.i633, %603 ] - %606 = phi ptr [ %.pre.i630, %._crit_edge.i628 ], [ %604, %603 ] - %607 = add i16 %605, 1 - store i16 %607, ptr %7, align 4 - %608 = zext i16 %605 to i64 - %609 = getelementptr inbounds ptr, ptr %606, i64 %608 - store ptr %calloc.i627, ptr %609, align 8 - %610 = load i32, ptr %calloc.i627, align 4 - %611 = add i32 %610, 262144 - %612 = and i32 %611, 66846720 - %613 = and i32 %610, 262143 - %614 = or disjoint i32 %613, %612 - %615 = or disjoint i32 %614, 134217728 - store i32 %615, ptr %calloc.i627, align 4 - %616 = zext nneg i32 %.3723 to i64 - %617 = getelementptr inbounds [0 x i16], ptr %10, i64 0, i64 %616 - %618 = load i16, ptr %617, align 2 - %619 = getelementptr inbounds i8, ptr %calloc.i627, i64 4 - store i16 %618, ptr %619, align 4 - %.tr497 = trunc i32 %610 to i16 - %620 = shl i16 %.tr497, 1 - %621 = and i16 %620, 126 - store i16 %621, ptr %617, align 2 - %622 = zext nneg i32 %.1475728 to i64 - %623 = getelementptr inbounds [0 x i16], ptr %10, i64 0, i64 %622 - %624 = load i16, ptr %623, align 2 - %625 = getelementptr inbounds i8, ptr %calloc.i627, i64 6 - store i16 %624, ptr %625, align 2 - store i16 127, ptr %623, align 2 - %626 = shl nuw i32 1, %.1475728 - %627 = xor i32 %626, -1 - %628 = and i32 %.0, %627 - %or.cond21 = or i1 %532, %540 - %or.cond25 = or i1 %or.cond21, %548 - br i1 %or.cond25, label %634, label %629 - -629: ; preds = %Kit_DsdObjAlloc.exit634 - %630 = xor i16 %618, 1 - store i16 %630, ptr %619, align 4 - %631 = xor i16 %624, 1 - store i16 %631, ptr %625, align 2 - %632 = load i32, ptr %.tr648.ph, align 4 - %633 = lshr i32 %632, 26 - tail call void @Kit_TruthMuxVar(ptr noundef %23, ptr noundef nonnull %40, ptr noundef nonnull %29, i32 noundef %633, i32 noundef %.3723) #27 +Kit_DsdObjAlloc.exit634: ; preds = %._crit_edge.i628, %606 + %608 = phi i16 [ %590, %._crit_edge.i628 ], [ %.pre27.i633, %606 ] + %609 = phi ptr [ %.pre.i630, %._crit_edge.i628 ], [ %607, %606 ] + %610 = add i16 %608, 1 + store i16 %610, ptr %7, align 4 + %611 = zext i16 %608 to i64 + %612 = getelementptr inbounds ptr, ptr %609, i64 %611 + store ptr %calloc.i627, ptr %612, align 8 + %613 = load i32, ptr %calloc.i627, align 4 + %614 = add i32 %613, 262144 + %615 = and i32 %614, 66846720 + %616 = and i32 %613, 262143 + %617 = or disjoint i32 %616, %615 + %618 = or disjoint i32 %617, 134217728 + store i32 %618, ptr %calloc.i627, align 4 + %619 = zext nneg i32 %.3723 to i64 + %620 = getelementptr inbounds [0 x i16], ptr %10, i64 0, i64 %619 + %621 = load i16, ptr %620, align 2 + %622 = getelementptr inbounds i8, ptr %calloc.i627, i64 4 + store i16 %621, ptr %622, align 4 + %.tr497 = trunc i32 %613 to i16 + %623 = shl i16 %.tr497, 1 + %624 = and i16 %623, 126 + store i16 %624, ptr %620, align 2 + %625 = zext nneg i32 %.1475728 to i64 + %626 = getelementptr inbounds [0 x i16], ptr %10, i64 0, i64 %625 + %627 = load i16, ptr %626, align 2 + %628 = getelementptr inbounds i8, ptr %calloc.i627, i64 6 + store i16 %627, ptr %628, align 2 + store i16 127, ptr %626, align 2 + %629 = shl nuw i32 1, %.1475728 + %630 = xor i32 %629, -1 + %631 = and i32 %.0, %630 + %or.cond21 = or i1 %535, %543 + %or.cond25 = or i1 %or.cond21, %551 + br i1 %or.cond25, label %637, label %632 + +632: ; preds = %Kit_DsdObjAlloc.exit634 + %633 = xor i16 %621, 1 + store i16 %633, ptr %622, align 4 + %634 = xor i16 %627, 1 + store i16 %634, ptr %628, align 2 + %635 = load i32, ptr %.tr648.ph, align 4 + %636 = lshr i32 %635, 26 + tail call void @Kit_TruthMuxVar(ptr noundef %23, ptr noundef nonnull %40, ptr noundef nonnull %29, i32 noundef %636, i32 noundef %.3723) #27 br label %tailrecurse.backedge -tailrecurse.backedge: ; preds = %629, %642, %652, %649, %635, %475, %512, %383 - %.tr649.be = phi i32 [ %.0, %383 ], [ %502, %512 ], [ %502, %475 ], [ %628, %635 ], [ %628, %649 ], [ %628, %652 ], [ %628, %642 ], [ %628, %629 ] +tailrecurse.backedge: ; preds = %632, %645, %655, %652, %638, %478, %515, %386 + %.tr649.be = phi i32 [ %.0, %386 ], [ %505, %515 ], [ %505, %478 ], [ %631, %638 ], [ %631, %652 ], [ %631, %655 ], [ %631, %645 ], [ %631, %632 ] br label %tailrecurse -634: ; preds = %Kit_DsdObjAlloc.exit634 - %or.cond29 = or i1 %532, %556 - %or.cond33 = or i1 %or.cond29, %564 - br i1 %or.cond33, label %639, label %635 - -635: ; preds = %634 - %636 = xor i16 %624, 1 - store i16 %636, ptr %625, align 2 - %637 = load i32, ptr %.tr648.ph, align 4 - %638 = lshr i32 %637, 26 - tail call void @Kit_TruthMuxVar(ptr noundef %23, ptr noundef nonnull %29, ptr noundef nonnull %33, i32 noundef %638, i32 noundef %.3723) #27 +637: ; preds = %Kit_DsdObjAlloc.exit634 + %or.cond29 = or i1 %535, %559 + %or.cond33 = or i1 %or.cond29, %567 + br i1 %or.cond33, label %642, label %638 + +638: ; preds = %637 + %639 = xor i16 %627, 1 + store i16 %639, ptr %628, align 2 + %640 = load i32, ptr %.tr648.ph, align 4 + %641 = lshr i32 %640, 26 + tail call void @Kit_TruthMuxVar(ptr noundef %23, ptr noundef nonnull %29, ptr noundef nonnull %33, i32 noundef %641, i32 noundef %.3723) #27 br label %tailrecurse.backedge -639: ; preds = %634 - %640 = or i32 %.07.i624, %.07.i612 - %641 = icmp ne i32 %640, 0 - %or.cond41 = or i1 %540, %641 - br i1 %or.cond41, label %646, label %642 - -642: ; preds = %639 - %643 = xor i16 %618, 1 - store i16 %643, ptr %619, align 4 - %644 = load i32, ptr %.tr648.ph, align 4 - %645 = lshr i32 %644, 26 - tail call void @Kit_TruthMuxVar(ptr noundef %23, ptr noundef nonnull %29, ptr noundef nonnull %36, i32 noundef %645, i32 noundef %.3723) #27 +642: ; preds = %637 + %643 = or i32 %.07.i624, %.07.i612 + %644 = icmp ne i32 %643, 0 + %or.cond41 = or i1 %543, %644 + br i1 %or.cond41, label %649, label %645 + +645: ; preds = %642 + %646 = xor i16 %621, 1 + store i16 %646, ptr %622, align 4 + %647 = load i32, ptr %.tr648.ph, align 4 + %648 = lshr i32 %647, 26 + tail call void @Kit_TruthMuxVar(ptr noundef %23, ptr noundef nonnull %29, ptr noundef nonnull %36, i32 noundef %648, i32 noundef %.3723) #27 br label %tailrecurse.backedge -646: ; preds = %639 - %647 = or i32 %.07.i624, %.07.i618 - %648 = icmp ne i32 %647, 0 - %or.cond49 = or i1 %548, %648 - br i1 %or.cond49, label %652, label %649 +649: ; preds = %642 + %650 = or i32 %.07.i624, %.07.i618 + %651 = icmp ne i32 %650, 0 + %or.cond49 = or i1 %551, %651 + br i1 %or.cond49, label %655, label %652 -649: ; preds = %646 - %650 = load i32, ptr %.tr648.ph, align 4 - %651 = lshr i32 %650, 26 - tail call void @Kit_TruthMuxVar(ptr noundef %23, ptr noundef nonnull %29, ptr noundef nonnull %40, i32 noundef %651, i32 noundef %.3723) #27 +652: ; preds = %649 + %653 = load i32, ptr %.tr648.ph, align 4 + %654 = lshr i32 %653, 26 + tail call void @Kit_TruthMuxVar(ptr noundef %23, ptr noundef nonnull %29, ptr noundef nonnull %40, i32 noundef %654, i32 noundef %.3723) #27 br label %tailrecurse.backedge -652: ; preds = %646 - %653 = and i32 %615, 201326143 - %654 = or disjoint i32 %653, 256 - store i32 %654, ptr %calloc.i627, align 4 - %655 = load i32, ptr %.tr648.ph, align 4 - %656 = lshr i32 %655, 26 - tail call void @Kit_TruthMuxVar(ptr noundef %23, ptr noundef nonnull %29, ptr noundef nonnull %33, i32 noundef %656, i32 noundef %.3723) #27 +655: ; preds = %649 + %656 = and i32 %618, 201326143 + %657 = or disjoint i32 %656, 256 + store i32 %657, ptr %calloc.i627, align 4 + %658 = load i32, ptr %.tr648.ph, align 4 + %659 = lshr i32 %658, 26 + tail call void @Kit_TruthMuxVar(ptr noundef %23, ptr noundef nonnull %29, ptr noundef nonnull %33, i32 noundef %659, i32 noundef %.3723) #27 br label %tailrecurse.backedge -657: ; preds = %Kit_TruthIsEqual.exit626 - %658 = add nuw nsw i32 %.3723, 1 - %659 = icmp ult i32 %658, %526 - br i1 %659, label %.lr.ph725, label %.loopexit, !llvm.loop !84 +660: ; preds = %Kit_TruthIsEqual.exit626 + %661 = add nuw nsw i32 %.3723, 1 + %662 = icmp ult i32 %661, %529 + br i1 %662, label %.lr.ph725, label %.loopexit, !llvm.loop !84 ._crit_edge731: ; preds = %.loopexit658, %.loopexit - %660 = phi i32 [ %369, %.loopexit ], [ %368, %.loopexit658 ] - br i1 %9, label %661, label %.loopexit659 - -661: ; preds = %._crit_edge731 - %662 = lshr i32 %660, 26 - %663 = icmp ugt i32 %662, %4 - br i1 %663, label %664, label %.loopexit659 - -664: ; preds = %661 - %665 = tail call i32 @Kit_TruthBestCofVar(ptr noundef %23, i32 noundef %662, ptr noundef %24, ptr noundef nonnull %26) #27 - %666 = load i32, ptr %.tr648.ph, align 4 - %667 = lshr i32 %666, 26 - %668 = tail call i32 @Kit_TruthSupport(ptr noundef %24, i32 noundef %667) #27 + %663 = phi i32 [ %372, %.loopexit ], [ %371, %.loopexit658 ] + br i1 %9, label %664, label %.loopexit659 + +664: ; preds = %._crit_edge731 + %665 = lshr i32 %663, 26 + %666 = icmp ugt i32 %665, %4 + br i1 %666, label %667, label %.loopexit659 + +667: ; preds = %664 + %668 = tail call i32 @Kit_TruthBestCofVar(ptr noundef %23, i32 noundef %665, ptr noundef %24, ptr noundef nonnull %26) #27 %669 = load i32, ptr %.tr648.ph, align 4 %670 = lshr i32 %669, 26 - %671 = tail call i32 @Kit_TruthSupport(ptr noundef nonnull %26, i32 noundef %670) #27 + %671 = tail call i32 @Kit_TruthSupport(ptr noundef %24, i32 noundef %670) #27 %672 = load i32, ptr %.tr648.ph, align 4 %673 = lshr i32 %672, 26 - %674 = tail call ptr @Kit_DsdObjAlloc(ptr noundef %0, i32 noundef 5, i32 noundef %673) + %674 = tail call i32 @Kit_TruthSupport(ptr noundef nonnull %26, i32 noundef %673) #27 %675 = load i32, ptr %.tr648.ph, align 4 %676 = lshr i32 %675, 26 %677 = tail call ptr @Kit_DsdObjAlloc(ptr noundef %0, i32 noundef 5, i32 noundef %676) %678 = load i32, ptr %.tr648.ph, align 4 %679 = lshr i32 %678, 26 - %.not755 = icmp ult i32 %678, 67108864 + %680 = tail call ptr @Kit_DsdObjAlloc(ptr noundef %0, i32 noundef 5, i32 noundef %679) + %681 = load i32, ptr %.tr648.ph, align 4 + %682 = lshr i32 %681, 26 + %.not755 = icmp ult i32 %681, 67108864 br i1 %.not755, label %._crit_edge744, label %.lr.ph743 -.lr.ph743: ; preds = %664 - %680 = getelementptr inbounds i8, ptr %677, i64 4 - %681 = getelementptr inbounds i8, ptr %674, i64 4 - br label %682 - -682: ; preds = %.lr.ph743, %682 - %indvars.iv833 = phi i64 [ 0, %.lr.ph743 ], [ %indvars.iv.next834, %682 ] - %683 = getelementptr inbounds [0 x i16], ptr %10, i64 0, i64 %indvars.iv833 - %684 = load i16, ptr %683, align 2 - %685 = getelementptr inbounds [0 x i16], ptr %680, i64 0, i64 %indvars.iv833 - store i16 %684, ptr %685, align 2 - %686 = getelementptr inbounds [0 x i16], ptr %681, i64 0, i64 %indvars.iv833 - store i16 %684, ptr %686, align 2 +.lr.ph743: ; preds = %667 + %683 = getelementptr inbounds i8, ptr %680, i64 4 + %684 = getelementptr inbounds i8, ptr %677, i64 4 + br label %685 + +685: ; preds = %.lr.ph743, %685 + %indvars.iv833 = phi i64 [ 0, %.lr.ph743 ], [ %indvars.iv.next834, %685 ] + %686 = getelementptr inbounds [0 x i16], ptr %10, i64 0, i64 %indvars.iv833 + %687 = load i16, ptr %686, align 2 + %688 = getelementptr inbounds [0 x i16], ptr %683, i64 0, i64 %indvars.iv833 + store i16 %687, ptr %688, align 2 + %689 = getelementptr inbounds [0 x i16], ptr %684, i64 0, i64 %indvars.iv833 + store i16 %687, ptr %689, align 2 %indvars.iv.next834 = add nuw nsw i64 %indvars.iv833, 1 - %687 = load i32, ptr %.tr648.ph, align 4 - %688 = lshr i32 %687, 26 - %689 = zext nneg i32 %688 to i64 - %690 = icmp ult i64 %indvars.iv.next834, %689 - br i1 %690, label %682, label %._crit_edge744, !llvm.loop !85 - -._crit_edge744: ; preds = %682, %664 - %.lcssa716 = phi i32 [ %678, %664 ], [ %687, %682 ] - %.lcssa715 = phi i32 [ %679, %664 ], [ %688, %682 ] - %691 = load i32, ptr %674, align 4 - %692 = and i32 %691, 448 - %693 = icmp eq i32 %692, 320 - %694 = getelementptr inbounds i8, ptr %674, i64 4 - %695 = lshr i32 %691, 10 - %696 = and i32 %695, 255 - %697 = zext nneg i32 %696 to i64 - %698 = getelementptr inbounds i32, ptr %694, i64 %697 - %699 = select i1 %693, ptr %698, ptr null - %700 = icmp ult i32 %.lcssa716, 402653184 - %701 = add nsw i32 %.lcssa715, -5 - %702 = shl nuw i32 1, %701 - %spec.select.i635 = select i1 %700, i32 1, i32 %702 - %703 = icmp sgt i32 %spec.select.i635, 0 - br i1 %703, label %select.unfold.preheader.i636, label %Kit_TruthCopy.exit640 + %690 = load i32, ptr %.tr648.ph, align 4 + %691 = lshr i32 %690, 26 + %692 = zext nneg i32 %691 to i64 + %693 = icmp ult i64 %indvars.iv.next834, %692 + br i1 %693, label %685, label %._crit_edge744, !llvm.loop !85 + +._crit_edge744: ; preds = %685, %667 + %.lcssa716 = phi i32 [ %681, %667 ], [ %690, %685 ] + %.lcssa715 = phi i32 [ %682, %667 ], [ %691, %685 ] + %694 = load i32, ptr %677, align 4 + %695 = and i32 %694, 448 + %696 = icmp eq i32 %695, 320 + %697 = getelementptr inbounds i8, ptr %677, i64 4 + %698 = lshr i32 %694, 10 + %699 = and i32 %698, 255 + %700 = zext nneg i32 %699 to i64 + %701 = getelementptr inbounds i32, ptr %697, i64 %700 + %702 = select i1 %696, ptr %701, ptr null + %703 = icmp ult i32 %.lcssa716, 402653184 + %704 = add nsw i32 %.lcssa715, -5 + %705 = shl nuw i32 1, %704 + %spec.select.i635 = select i1 %703, i32 1, i32 %705 + %706 = icmp sgt i32 %spec.select.i635, 0 + br i1 %706, label %select.unfold.preheader.i636, label %Kit_TruthCopy.exit640 select.unfold.preheader.i636: ; preds = %._crit_edge744 - %704 = zext nneg i32 %spec.select.i635 to i64 + %707 = zext nneg i32 %spec.select.i635 to i64 br label %select.unfold.i637 select.unfold.i637: ; preds = %select.unfold.i637, %select.unfold.preheader.i636 - %indvars.iv.i638 = phi i64 [ %704, %select.unfold.preheader.i636 ], [ %indvars.iv.next.i639, %select.unfold.i637 ] + %indvars.iv.i638 = phi i64 [ %707, %select.unfold.preheader.i636 ], [ %indvars.iv.next.i639, %select.unfold.i637 ] %indvars.iv.next.i639 = add nsw i64 %indvars.iv.i638, -1 - %705 = getelementptr inbounds i32, ptr %24, i64 %indvars.iv.next.i639 - %706 = load i32, ptr %705, align 4 - %707 = getelementptr inbounds i32, ptr %699, i64 %indvars.iv.next.i639 - store i32 %706, ptr %707, align 4 - %708 = icmp ugt i64 %indvars.iv.i638, 1 - br i1 %708, label %select.unfold.i637, label %Kit_TruthCopy.exit640.loopexit, !llvm.loop !15 + %708 = getelementptr inbounds i32, ptr %24, i64 %indvars.iv.next.i639 + %709 = load i32, ptr %708, align 4 + %710 = getelementptr inbounds i32, ptr %702, i64 %indvars.iv.next.i639 + store i32 %709, ptr %710, align 4 + %711 = icmp ugt i64 %indvars.iv.i638, 1 + br i1 %711, label %select.unfold.i637, label %Kit_TruthCopy.exit640.loopexit, !llvm.loop !15 Kit_TruthCopy.exit640.loopexit: ; preds = %select.unfold.i637 %.pre841 = load i32, ptr %.tr648.ph, align 4 br label %Kit_TruthCopy.exit640 Kit_TruthCopy.exit640: ; preds = %Kit_TruthCopy.exit640.loopexit, %._crit_edge744 - %709 = phi i32 [ %.pre841, %Kit_TruthCopy.exit640.loopexit ], [ %.lcssa716, %._crit_edge744 ] - %710 = load i32, ptr %677, align 4 - %711 = and i32 %710, 448 - %712 = icmp eq i32 %711, 320 - %713 = getelementptr inbounds i8, ptr %677, i64 4 - %714 = lshr i32 %710, 10 - %715 = and i32 %714, 255 - %716 = zext nneg i32 %715 to i64 - %717 = getelementptr inbounds i32, ptr %713, i64 %716 - %718 = select i1 %712, ptr %717, ptr null - %719 = lshr i32 %709, 26 - %720 = icmp ult i32 %709, 402653184 - %721 = add nsw i32 %719, -5 - %722 = shl nuw i32 1, %721 - %spec.select.i641 = select i1 %720, i32 1, i32 %722 - %723 = icmp sgt i32 %spec.select.i641, 0 - br i1 %723, label %select.unfold.preheader.i642, label %Kit_TruthCopy.exit646 + %712 = phi i32 [ %.pre841, %Kit_TruthCopy.exit640.loopexit ], [ %.lcssa716, %._crit_edge744 ] + %713 = load i32, ptr %680, align 4 + %714 = and i32 %713, 448 + %715 = icmp eq i32 %714, 320 + %716 = getelementptr inbounds i8, ptr %680, i64 4 + %717 = lshr i32 %713, 10 + %718 = and i32 %717, 255 + %719 = zext nneg i32 %718 to i64 + %720 = getelementptr inbounds i32, ptr %716, i64 %719 + %721 = select i1 %715, ptr %720, ptr null + %722 = lshr i32 %712, 26 + %723 = icmp ult i32 %712, 402653184 + %724 = add nsw i32 %722, -5 + %725 = shl nuw i32 1, %724 + %spec.select.i641 = select i1 %723, i32 1, i32 %725 + %726 = icmp sgt i32 %spec.select.i641, 0 + br i1 %726, label %select.unfold.preheader.i642, label %Kit_TruthCopy.exit646 select.unfold.preheader.i642: ; preds = %Kit_TruthCopy.exit640 - %724 = zext nneg i32 %spec.select.i641 to i64 + %727 = zext nneg i32 %spec.select.i641 to i64 br label %select.unfold.i643 select.unfold.i643: ; preds = %select.unfold.i643, %select.unfold.preheader.i642 - %indvars.iv.i644 = phi i64 [ %724, %select.unfold.preheader.i642 ], [ %indvars.iv.next.i645, %select.unfold.i643 ] + %indvars.iv.i644 = phi i64 [ %727, %select.unfold.preheader.i642 ], [ %indvars.iv.next.i645, %select.unfold.i643 ] %indvars.iv.next.i645 = add nsw i64 %indvars.iv.i644, -1 - %725 = getelementptr inbounds i32, ptr %26, i64 %indvars.iv.next.i645 - %726 = load i32, ptr %725, align 4 - %727 = getelementptr inbounds i32, ptr %718, i64 %indvars.iv.next.i645 - store i32 %726, ptr %727, align 4 - %728 = icmp ugt i64 %indvars.iv.i644, 1 - br i1 %728, label %select.unfold.i643, label %Kit_TruthCopy.exit646.loopexit, !llvm.loop !15 + %728 = getelementptr inbounds i32, ptr %26, i64 %indvars.iv.next.i645 + %729 = load i32, ptr %728, align 4 + %730 = getelementptr inbounds i32, ptr %721, i64 %indvars.iv.next.i645 + store i32 %729, ptr %730, align 4 + %731 = icmp ugt i64 %indvars.iv.i644, 1 + br i1 %731, label %select.unfold.i643, label %Kit_TruthCopy.exit646.loopexit, !llvm.loop !15 Kit_TruthCopy.exit646.loopexit: ; preds = %select.unfold.i643 %.pre842 = load i32, ptr %.tr648.ph, align 4 br label %Kit_TruthCopy.exit646 Kit_TruthCopy.exit646: ; preds = %Kit_TruthCopy.exit646.loopexit, %Kit_TruthCopy.exit640 - %729 = phi i32 [ %.pre842, %Kit_TruthCopy.exit646.loopexit ], [ %709, %Kit_TruthCopy.exit640 ] + %732 = phi i32 [ %.pre842, %Kit_TruthCopy.exit646.loopexit ], [ %712, %Kit_TruthCopy.exit640 ] store i32 -892679478, ptr %23, align 4 - %730 = and i32 %729, 67108863 - %731 = or disjoint i32 %730, 201326592 - store i32 %731, ptr %.tr648.ph, align 4 - %732 = sext i32 %665 to i64 - %733 = getelementptr inbounds [0 x i16], ptr %10, i64 0, i64 %732 - %734 = load i16, ptr %733, align 2 - %735 = getelementptr inbounds i8, ptr %.tr648.ph, i64 8 - store i16 %734, ptr %735, align 4 - %736 = load i32, ptr %674, align 4 - %.tr495 = trunc i32 %736 to i16 - %737 = shl i16 %.tr495, 1 - %738 = and i16 %737, 126 - store i16 %738, ptr %10, align 4 - %739 = load i32, ptr %674, align 4 - %740 = add i32 %739, 262144 - %741 = and i32 %740, 66846720 - %742 = and i32 %739, -66846721 - %743 = or disjoint i32 %741, %742 - store i32 %743, ptr %674, align 4 - %744 = load i32, ptr %677, align 4 - %.tr496 = trunc i32 %744 to i16 - %745 = shl i16 %.tr496, 1 - %746 = and i16 %745, 126 - %747 = getelementptr inbounds i8, ptr %.tr648.ph, i64 6 - store i16 %746, ptr %747, align 2 - %748 = load i32, ptr %677, align 4 - %749 = add i32 %748, 262144 - %750 = and i32 %749, 66846720 - %751 = and i32 %748, -66846721 - %752 = or disjoint i32 %750, %751 - store i32 %752, ptr %677, align 4 - tail call void @Kit_DsdDecompose_rec(ptr noundef %0, ptr noundef nonnull %674, i32 noundef %668, ptr noundef nonnull %10, i32 noundef %4) + %733 = and i32 %732, 67108863 + %734 = or disjoint i32 %733, 201326592 + store i32 %734, ptr %.tr648.ph, align 4 + %735 = sext i32 %668 to i64 + %736 = getelementptr inbounds [0 x i16], ptr %10, i64 0, i64 %735 + %737 = load i16, ptr %736, align 2 + %738 = getelementptr inbounds i8, ptr %.tr648.ph, i64 8 + store i16 %737, ptr %738, align 4 + %739 = load i32, ptr %677, align 4 + %.tr495 = trunc i32 %739 to i16 + %740 = shl i16 %.tr495, 1 + %741 = and i16 %740, 126 + store i16 %741, ptr %10, align 4 + %742 = load i32, ptr %677, align 4 + %743 = add i32 %742, 262144 + %744 = and i32 %743, 66846720 + %745 = and i32 %742, -66846721 + %746 = or disjoint i32 %744, %745 + store i32 %746, ptr %677, align 4 + %747 = load i32, ptr %680, align 4 + %.tr496 = trunc i32 %747 to i16 + %748 = shl i16 %.tr496, 1 + %749 = and i16 %748, 126 + %750 = getelementptr inbounds i8, ptr %.tr648.ph, i64 6 + store i16 %749, ptr %750, align 2 + %751 = load i32, ptr %680, align 4 + %752 = add i32 %751, 262144 + %753 = and i32 %752, 66846720 + %754 = and i32 %751, -66846721 + %755 = or disjoint i32 %753, %754 + store i32 %755, ptr %680, align 4 + tail call void @Kit_DsdDecompose_rec(ptr noundef %0, ptr noundef nonnull %677, i32 noundef %671, ptr noundef nonnull %10, i32 noundef %4) br label %tailrecurse.outer.backedge -.loopexit659: ; preds = %661, %._crit_edge731, %93 +.loopexit659: ; preds = %664, %._crit_edge731, %93 ret void } diff --git a/bench/abc/optimized/lucky.c.ll b/bench/abc/optimized/lucky.c.ll index ce1b7d820df..a8b88562e5c 100644 --- a/bench/abc/optimized/lucky.c.ll +++ b/bench/abc/optimized/lucky.c.ll @@ -866,8 +866,8 @@ minimalInitialFlip.exit: ; preds = %9, %13 %16 = tail call i32 @minimalFlip(ptr noundef nonnull %0, ptr noundef %1, ptr noundef %2, i32 noundef %3, ptr noundef %6), !range !15 %17 = add nuw nsw i32 %16, %.0.i %18 = tail call i32 @minimalSwap(ptr noundef nonnull %0, ptr noundef %1, ptr noundef %2, i32 noundef %3, ptr noundef %4, ptr noundef %5, ptr noundef %6), !range !15 - %19 = sub nsw i32 0, %18 - %.not = icmp eq i32 %17, %19 + %19 = or i32 %17, %18 + %.not = icmp eq i32 %19, 0 br i1 %.not, label %20, label %9, !llvm.loop !16 20: ; preds = %minimalInitialFlip.exit @@ -896,8 +896,8 @@ minimalInitialFlip1.exit: ; preds = %7, %11 %12 = tail call i32 @minimalFlip1(ptr noundef nonnull %0, ptr noundef %1, ptr noundef %2, i32 noundef %3), !range !15 %13 = add nuw nsw i32 %12, %.0.i %14 = tail call i32 @minimalSwap1(ptr noundef nonnull %0, ptr noundef %1, ptr noundef %2, i32 noundef %3), !range !15 - %15 = sub nsw i32 0, %14 - %.not = icmp eq i32 %13, %15 + %15 = or i32 %13, %14 + %.not = icmp eq i32 %15, 0 br i1 %.not, label %16, label %7, !llvm.loop !17 16: ; preds = %minimalInitialFlip1.exit @@ -927,8 +927,8 @@ minimalInitialFlip1.exit.i: ; preds = %9, %5 %10 = tail call i32 @minimalFlip1(ptr noundef nonnull %0, ptr noundef %1, ptr noundef %2, i32 noundef %3), !range !15 %11 = add nuw nsw i32 %10, %.0.i.i %12 = tail call i32 @minimalSwap1(ptr noundef nonnull %0, ptr noundef %1, ptr noundef %2, i32 noundef %3), !range !15 - %13 = sub nsw i32 0, %12 - %.not.i = icmp eq i32 %11, %13 + %13 = or i32 %11, %12 + %.not.i = icmp eq i32 %13, 0 br i1 %.not.i, label %luckyCanonicizer1_simple.exit, label %5, !llvm.loop !17 luckyCanonicizer1_simple.exit: ; preds = %minimalInitialFlip1.exit.i @@ -969,8 +969,8 @@ minimalInitialFlip.exit.i: ; preds = %14, %10 %17 = call i32 @minimalFlip(ptr noundef nonnull %0, ptr noundef nonnull %4, ptr noundef nonnull %5, i32 noundef %1, ptr noundef nonnull %7), !range !15 %18 = add nuw nsw i32 %17, %.0.i.i %19 = call i32 @minimalSwap(ptr noundef nonnull %0, ptr noundef nonnull %4, ptr noundef nonnull %5, i32 noundef %1, ptr noundef %2, ptr noundef nonnull %6, ptr noundef nonnull %7), !range !15 - %20 = sub nsw i32 0, %19 - %.not.i = icmp eq i32 %18, %20 + %20 = or i32 %18, %19 + %.not.i = icmp eq i32 %20, 0 br i1 %.not.i, label %luckyCanonicizer.exit, label %10, !llvm.loop !16 luckyCanonicizer.exit: ; preds = %minimalInitialFlip.exit.i diff --git a/bench/abseil-cpp/optimized/demangle.cc.ll b/bench/abseil-cpp/optimized/demangle.cc.ll index 5065dbc8754..c609d992378 100644 --- a/bench/abseil-cpp/optimized/demangle.cc.ll +++ b/bench/abseil-cpp/optimized/demangle.cc.ll @@ -3560,7 +3560,7 @@ if.end: ; preds = %if.then14.i, %for.e ; Function Attrs: mustprogress nofree nosync memory(readwrite, inaccessiblemem: none) uwtable define internal fastcc noundef zeroext i1 @_ZN4absl18debugging_internalL9ParseTypeEPNS0_5StateE(ptr noundef %state) unnamed_addr #0 personality ptr @__gxx_personality_v0 { entry: - %copy.i278 = alloca %"struct.absl::debugging_internal::ParseState", align 4 + %copy.i274 = alloca %"struct.absl::debugging_internal::ParseState", align 4 %copy.i = alloca %"struct.absl::debugging_internal::ParseState", align 4 %copy.i136 = alloca %"struct.absl::debugging_internal::ParseState", align 4 %copy.i99 = alloca %"struct.absl::debugging_internal::ParseState", align 4 @@ -3617,7 +3617,7 @@ if.then3.i.i: ; preds = %if.end.i.i br label %invoke.cont.i invoke.cont.i: ; preds = %if.then3.i.i, %if.end.i.i, %if.end.i - %retval.0.i.i.neg = phi i32 [ -1, %if.then3.i.i ], [ 0, %if.end.i.i ], [ 0, %if.end.i ] + %retval.0.i.i = phi i32 [ 1, %if.then3.i.i ], [ 0, %if.end.i.i ], [ 0, %if.end.i ] store i32 %inc.i.i.i, ptr %recursion_depth.i, align 4 %inc2.i.i16.i = add nsw i32 %1, 4 store i32 %inc2.i.i16.i, ptr %steps.i, align 8 @@ -3655,20 +3655,22 @@ if.end.i37.i: ; preds = %invoke.cont2.i %arrayidx.i.i41.i = getelementptr inbounds i8, ptr %state.val.i38.i, i64 %idxprom.i.i40.i %4 = load i8, ptr %arrayidx.i.i41.i, align 1 %cmp.i42.i = icmp eq i8 %4, 75 - br i1 %cmp.i42.i, label %_ZN4absl18debugging_internalL17ParseCVQualifiersEPNS0_5StateE.exit.thread195, label %_ZN4absl18debugging_internalL17ParseCVQualifiersEPNS0_5StateE.exit + br i1 %cmp.i42.i, label %if.then3.i44.i, label %_ZN4absl18debugging_internalL17ParseCVQualifiersEPNS0_5StateE.exit -_ZN4absl18debugging_internalL17ParseCVQualifiersEPNS0_5StateE.exit.thread195: ; preds = %if.end.i37.i +if.then3.i44.i: ; preds = %if.end.i37.i %inc.i45.i = add nsw i32 %state.val4.i39.i, 1 store i32 %inc.i45.i, ptr %parse_state, align 4 - store i32 %inc.i, ptr %recursion_depth.i, align 4 - br label %if.then2 + br label %_ZN4absl18debugging_internalL17ParseCVQualifiersEPNS0_5StateE.exit -_ZN4absl18debugging_internalL17ParseCVQualifiersEPNS0_5StateE.exit: ; preds = %invoke.cont2.i, %if.end.i37.i - %cmp.i38.not = icmp eq i32 %retval.0.i26.i, %retval.0.i.i.neg +_ZN4absl18debugging_internalL17ParseCVQualifiersEPNS0_5StateE.exit: ; preds = %invoke.cont2.i, %if.end.i37.i, %if.then3.i44.i + %retval.0.i43.i = phi i32 [ 1, %if.then3.i44.i ], [ 0, %if.end.i37.i ], [ 0, %invoke.cont2.i ] + %add5.i = add nuw nsw i32 %retval.0.i26.i, %retval.0.i.i + %5 = or i32 %retval.0.i43.i, %add5.i + %cmp.i38.not = icmp eq i32 %5, 0 store i32 %inc.i, ptr %recursion_depth.i, align 4 br i1 %cmp.i38.not, label %if.end9, label %if.then2 -if.then2: ; preds = %_ZN4absl18debugging_internalL17ParseCVQualifiersEPNS0_5StateE.exit.thread195, %_ZN4absl18debugging_internalL17ParseCVQualifiersEPNS0_5StateE.exit +if.then2: ; preds = %_ZN4absl18debugging_internalL17ParseCVQualifiersEPNS0_5StateE.exit %call4 = invoke fastcc noundef zeroext i1 @_ZN4absl18debugging_internalL9ParseTypeEPNS0_5StateE(ptr noundef nonnull %state) to label %invoke.cont3 unwind label %lpad @@ -3676,26 +3678,26 @@ invoke.cont3: ; preds = %if.then2 br i1 %call4, label %cleanup, label %cleanup.sink.split lpad: ; preds = %land.lhs.true66, %lor.lhs.false56, %land.lhs.true37, %land.lhs.true, %if.then13, %if.then2 - %5 = landingpad { ptr, i32 } + %6 = landingpad { ptr, i32 } cleanup - %.pre230.pre = load i32, ptr %recursion_depth.i, align 4 + %.pre226.pre = load i32, ptr %recursion_depth.i, align 4 br label %lpad.body -lpad.body: ; preds = %lpad.i273, %lpad.i301, %lpad, %lpad.i108, %lpad.i.body - %6 = phi i32 [ %dec.i117, %lpad.i.body ], [ %dec.i183, %lpad.i108 ], [ %dec.i.i274, %lpad.i273 ], [ %.pre230.pre, %lpad ], [ %dec.i.i302, %lpad.i301 ] - %eh.lpad-body = phi { ptr, i32 } [ %eh.lpad-body169, %lpad.i.body ], [ %61, %lpad.i108 ], [ %77, %lpad.i273 ], [ %5, %lpad ], [ %89, %lpad.i301 ] - %dec.i = add nsw i32 %6, -1 +lpad.body: ; preds = %lpad.i269, %lpad.i297, %lpad, %lpad.i108, %lpad.i.body + %7 = phi i32 [ %dec.i117, %lpad.i.body ], [ %dec.i183, %lpad.i108 ], [ %dec.i.i270, %lpad.i269 ], [ %.pre226.pre, %lpad ], [ %dec.i.i298, %lpad.i297 ] + %eh.lpad-body = phi { ptr, i32 } [ %eh.lpad-body169, %lpad.i.body ], [ %62, %lpad.i108 ], [ %78, %lpad.i269 ], [ %6, %lpad ], [ %90, %lpad.i297 ] + %dec.i = add nsw i32 %7, -1 store i32 %dec.i, ptr %recursion_depth.i, align 4 resume { ptr, i32 } %eh.lpad-body if.end9: ; preds = %_ZN4absl18debugging_internalL17ParseCVQualifiersEPNS0_5StateE.exit.thread, %_ZN4absl18debugging_internalL17ParseCVQualifiersEPNS0_5StateE.exit - %7 = phi i32 [ %inc2.i.i, %_ZN4absl18debugging_internalL17ParseCVQualifiersEPNS0_5StateE.exit.thread ], [ %inc2.i.i33.i, %_ZN4absl18debugging_internalL17ParseCVQualifiersEPNS0_5StateE.exit ] + %8 = phi i32 [ %inc2.i.i, %_ZN4absl18debugging_internalL17ParseCVQualifiersEPNS0_5StateE.exit.thread ], [ %inc2.i.i33.i, %_ZN4absl18debugging_internalL17ParseCVQualifiersEPNS0_5StateE.exit ] call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %parse_state, ptr noundef nonnull align 4 dereferenceable(16) %copy, i64 16, i1 false) %inc.i.i = add nsw i32 %0, 2 store i32 %inc.i.i, ptr %recursion_depth.i, align 4 - %inc2.i.i42 = add nsw i32 %7, 1 + %inc2.i.i42 = add nsw i32 %8, 1 store i32 %inc2.i.i42, ptr %steps.i, align 8 - %cmp3.i.i44 = icmp sgt i32 %7, 131071 + %cmp3.i.i44 = icmp sgt i32 %8, 131071 %or.cond.i45 = select i1 %cmp.i.i, i1 true, i1 %cmp3.i.i44 br i1 %or.cond.i45, label %if.end23, label %if.end.i46 @@ -3704,21 +3706,21 @@ if.end.i46: ; preds = %if.end9 %state.val9.i = load i32, ptr %parse_state, align 4 %idxprom.i.i = sext i32 %state.val9.i to i64 %arrayidx.i.i = getelementptr inbounds i8, ptr %state.val8.i, i64 %idxprom.i.i - %8 = load i8, ptr %arrayidx.i.i, align 1 - %cmp.i47 = icmp eq i8 %8, 0 + %9 = load i8, ptr %arrayidx.i.i, align 1 + %cmp.i47 = icmp eq i8 %9, 0 br i1 %cmp.i47, label %if.end23, label %for.body.i for.cond.i: ; preds = %for.body.i %p.016.i.add = add nuw nsw i64 %p.016.i.idx, 1 %incdec.ptr.i.ptr = getelementptr inbounds i8, ptr @.str.10, i64 %p.016.i.add - %9 = load i8, ptr %incdec.ptr.i.ptr, align 1 + %10 = load i8, ptr %incdec.ptr.i.ptr, align 1 %exitcond = icmp eq i64 %p.016.i.add, 5 br i1 %exitcond, label %if.end23, label %for.body.i, !llvm.loop !10 for.body.i: ; preds = %if.end.i46, %for.cond.i - %10 = phi i8 [ %9, %for.cond.i ], [ 79, %if.end.i46 ] + %11 = phi i8 [ %10, %for.cond.i ], [ 79, %if.end.i46 ] %p.016.i.idx = phi i64 [ %p.016.i.add, %for.cond.i ], [ 0, %if.end.i46 ] - %cmp11.i = icmp eq i8 %8, %10 + %cmp11.i = icmp eq i8 %9, %11 br i1 %cmp11.i, label %if.then13, label %for.cond.i if.then13: ; preds = %for.body.i @@ -3734,9 +3736,9 @@ invoke.cont15: ; preds = %if.then13 if.end23: ; preds = %for.cond.i, %if.end.i46, %if.end9 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %parse_state, ptr noundef nonnull align 4 dereferenceable(16) %copy, i64 16, i1 false) store i32 %inc.i.i, ptr %recursion_depth.i, align 4 - %inc2.i.i53 = add nsw i32 %7, 2 + %inc2.i.i53 = add nsw i32 %8, 2 store i32 %inc2.i.i53, ptr %steps.i, align 8 - %cmp3.i.i55 = icmp sgt i32 %7, 131070 + %cmp3.i.i55 = icmp sgt i32 %8, 131070 %or.cond.i56 = select i1 %cmp.i.i, i1 true, i1 %cmp3.i.i55 br i1 %or.cond.i56, label %_ZN4absl18debugging_internalL17ParseTwoCharTokenEPNS0_5StateEPKc.exit.thread, label %if.end.i57 @@ -3745,14 +3747,14 @@ if.end.i57: ; preds = %if.end23 %state.val8.i58 = load i32, ptr %parse_state, align 4 %idxprom.i.i59 = sext i32 %state.val8.i58 to i64 %arrayidx.i.i60 = getelementptr inbounds i8, ptr %state.val7.i, i64 %idxprom.i.i59 - %11 = load i8, ptr %arrayidx.i.i60, align 1 - %cmp.i61 = icmp eq i8 %11, 68 + %12 = load i8, ptr %arrayidx.i.i60, align 1 + %cmp.i61 = icmp eq i8 %12, 68 br i1 %cmp.i61, label %land.lhs.true.i, label %_ZN4absl18debugging_internalL17ParseTwoCharTokenEPNS0_5StateEPKc.exit.thread land.lhs.true.i: ; preds = %if.end.i57 %arrayidx6.i = getelementptr inbounds i8, ptr %arrayidx.i.i60, i64 1 - %12 = load i8, ptr %arrayidx6.i, align 1 - %cmp10.i = icmp eq i8 %12, 112 + %13 = load i8, ptr %arrayidx6.i, align 1 + %cmp10.i = icmp eq i8 %13, 112 br i1 %cmp10.i, label %land.lhs.true, label %_ZN4absl18debugging_internalL17ParseTwoCharTokenEPNS0_5StateEPKc.exit.thread _ZN4absl18debugging_internalL17ParseTwoCharTokenEPNS0_5StateEPKc.exit.thread: ; preds = %land.lhs.true.i, %if.end.i57, %if.end23 @@ -3771,19 +3773,19 @@ invoke.cont27: ; preds = %land.lhs.true invoke.cont27.if.end30_crit_edge: ; preds = %invoke.cont27 %.pre = load i32, ptr %recursion_depth.i, align 4 - %.pre220 = load i32, ptr %steps.i, align 8 + %.pre216 = load i32, ptr %steps.i, align 8 br label %if.end30 if.end30: ; preds = %invoke.cont27.if.end30_crit_edge, %_ZN4absl18debugging_internalL17ParseTwoCharTokenEPNS0_5StateEPKc.exit.thread - %13 = phi i32 [ %.pre220, %invoke.cont27.if.end30_crit_edge ], [ %inc2.i.i53, %_ZN4absl18debugging_internalL17ParseTwoCharTokenEPNS0_5StateEPKc.exit.thread ] - %14 = phi i32 [ %.pre, %invoke.cont27.if.end30_crit_edge ], [ %inc.i, %_ZN4absl18debugging_internalL17ParseTwoCharTokenEPNS0_5StateEPKc.exit.thread ] + %14 = phi i32 [ %.pre216, %invoke.cont27.if.end30_crit_edge ], [ %inc2.i.i53, %_ZN4absl18debugging_internalL17ParseTwoCharTokenEPNS0_5StateEPKc.exit.thread ] + %15 = phi i32 [ %.pre, %invoke.cont27.if.end30_crit_edge ], [ %inc.i, %_ZN4absl18debugging_internalL17ParseTwoCharTokenEPNS0_5StateEPKc.exit.thread ] call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %parse_state, ptr noundef nonnull align 4 dereferenceable(16) %copy, i64 16, i1 false) - %inc.i.i64 = add nsw i32 %14, 1 + %inc.i.i64 = add nsw i32 %15, 1 store i32 %inc.i.i64, ptr %recursion_depth.i, align 4 - %inc2.i.i66 = add nsw i32 %13, 1 + %inc2.i.i66 = add nsw i32 %14, 1 store i32 %inc2.i.i66, ptr %steps.i, align 8 - %cmp.i.i67 = icmp sgt i32 %14, 255 - %cmp3.i.i68 = icmp sgt i32 %13, 131071 + %cmp.i.i67 = icmp sgt i32 %15, 255 + %cmp3.i.i68 = icmp sgt i32 %14, 131071 %or.cond.i69 = select i1 %cmp.i.i67, i1 true, i1 %cmp3.i.i68 br i1 %or.cond.i69, label %_ZN4absl18debugging_internalL17ParseOneCharTokenEPNS0_5StateEc.exit.thread, label %if.end.i70 @@ -3792,18 +3794,18 @@ if.end.i70: ; preds = %if.end30 %state.val4.i = load i32, ptr %parse_state, align 4 %idxprom.i.i71 = sext i32 %state.val4.i to i64 %arrayidx.i.i72 = getelementptr inbounds i8, ptr %state.val.i, i64 %idxprom.i.i71 - %15 = load i8, ptr %arrayidx.i.i72, align 1 - %cmp.i73 = icmp eq i8 %15, 85 + %16 = load i8, ptr %arrayidx.i.i72, align 1 + %cmp.i73 = icmp eq i8 %16, 85 br i1 %cmp.i73, label %land.lhs.true34, label %_ZN4absl18debugging_internalL17ParseOneCharTokenEPNS0_5StateEc.exit.thread _ZN4absl18debugging_internalL17ParseOneCharTokenEPNS0_5StateEc.exit.thread: ; preds = %if.end.i70, %if.end30 - store i32 %14, ptr %recursion_depth.i, align 4 + store i32 %15, ptr %recursion_depth.i, align 4 br label %if.end41 land.lhs.true34: ; preds = %if.end.i70 %inc.i75 = add nsw i32 %state.val4.i, 1 store i32 %inc.i75, ptr %parse_state, align 4 - store i32 %14, ptr %recursion_depth.i, align 4 + store i32 %15, ptr %recursion_depth.i, align 4 %call36 = tail call fastcc noundef zeroext i1 @_ZN4absl18debugging_internalL15ParseSourceNameEPNS0_5StateE(ptr noundef nonnull %state) br i1 %call36, label %land.lhs.true37, label %if.end41 @@ -3816,37 +3818,37 @@ invoke.cont38: ; preds = %land.lhs.true37 if.end41: ; preds = %_ZN4absl18debugging_internalL17ParseOneCharTokenEPNS0_5StateEc.exit.thread, %invoke.cont38, %land.lhs.true34 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %parse_state, ptr noundef nonnull align 4 dereferenceable(16) %copy, i64 16, i1 false) - %16 = load i32, ptr %recursion_depth.i, align 4 - %inc.i.i77 = add nsw i32 %16, 1 + %17 = load i32, ptr %recursion_depth.i, align 4 + %inc.i.i77 = add nsw i32 %17, 1 store i32 %inc.i.i77, ptr %recursion_depth.i, align 4 - %17 = load i32, ptr %steps.i, align 8 - %inc2.i.i79 = add nsw i32 %17, 1 + %18 = load i32, ptr %steps.i, align 8 + %inc2.i.i79 = add nsw i32 %18, 1 store i32 %inc2.i.i79, ptr %steps.i, align 8 - %cmp.i.i80 = icmp sgt i32 %16, 255 - %cmp3.i.i81 = icmp sgt i32 %17, 131071 + %cmp.i.i80 = icmp sgt i32 %17, 255 + %cmp3.i.i81 = icmp sgt i32 %18, 131071 %or.cond.i82 = select i1 %cmp.i.i80, i1 true, i1 %cmp3.i.i81 br i1 %or.cond.i82, label %lor.lhs.false, label %for.cond.preheader.i83 for.cond.preheader.i83: ; preds = %if.end41 - %inc.i.i26.i = add nsw i32 %16, 2 - %cmp.i.i29.i = icmp sgt i32 %16, 254 + %inc.i.i26.i = add nsw i32 %17, 2 + %cmp.i.i29.i = icmp sgt i32 %17, 254 br label %for.body.i86 for.body.i86: ; preds = %for.inc.i, %for.cond.preheader.i83 - %18 = phi i32 [ %inc2.i.i79, %for.cond.preheader.i83 ], [ %34, %for.inc.i ] - %19 = phi ptr [ @.str.15, %for.cond.preheader.i83 ], [ %35, %for.inc.i ] + %19 = phi i32 [ %inc2.i.i79, %for.cond.preheader.i83 ], [ %35, %for.inc.i ] + %20 = phi ptr [ @.str.15, %for.cond.preheader.i83 ], [ %36, %for.inc.i ] %p.079.i = phi ptr [ @_ZN4absl18debugging_internalL16kBuiltinTypeListE, %for.cond.preheader.i83 ], [ %incdec.ptr.i87, %for.inc.i ] - %arrayidx.i = getelementptr inbounds i8, ptr %19, i64 1 - %20 = load i8, ptr %arrayidx.i, align 1 - %cmp2.i = icmp eq i8 %20, 0 + %arrayidx.i = getelementptr inbounds i8, ptr %20, i64 1 + %21 = load i8, ptr %arrayidx.i, align 1 + %cmp2.i = icmp eq i8 %21, 0 br i1 %cmp2.i, label %if.then3.i90, label %if.else.i if.then3.i90: ; preds = %for.body.i86 - %21 = load i8, ptr %19, align 1 + %22 = load i8, ptr %20, align 1 store i32 %inc.i.i26.i, ptr %recursion_depth.i, align 4 - %inc2.i.i.i91 = add nsw i32 %18, 1 + %inc2.i.i.i91 = add nsw i32 %19, 1 store i32 %inc2.i.i.i91, ptr %steps.i, align 8 - %cmp3.i.i.i92 = icmp sgt i32 %18, 131071 + %cmp3.i.i.i92 = icmp sgt i32 %19, 131071 %or.cond.i.i93 = select i1 %cmp.i.i29.i, i1 true, i1 %cmp3.i.i.i92 br i1 %or.cond.i.i93, label %for.inc.sink.split.i, label %if.end.i.i94 @@ -3855,8 +3857,8 @@ if.end.i.i94: ; preds = %if.then3.i90 %state.val4.i.i96 = load i32, ptr %parse_state, align 4 %idxprom.i.i.i97 = sext i32 %state.val4.i.i96 to i64 %arrayidx.i.i.i98 = getelementptr inbounds i8, ptr %state.val.i.i95, i64 %idxprom.i.i.i97 - %22 = load i8, ptr %arrayidx.i.i.i98, align 1 - %cmp.i20.i = icmp eq i8 %22, %21 + %23 = load i8, ptr %arrayidx.i.i.i98, align 1 + %cmp.i20.i = icmp eq i8 %23, %22 br i1 %cmp.i20.i, label %if.then7.i, label %for.inc.sink.split.i if.then7.i: ; preds = %if.end.i.i94 @@ -3864,42 +3866,42 @@ if.then7.i: ; preds = %if.end.i.i94 store i32 %inc.i21.i, ptr %parse_state, align 4 store i32 %inc.i.i77, ptr %recursion_depth.i, align 4 %real_name.i = getelementptr inbounds i8, ptr %p.079.i, i64 8 - %23 = load ptr, ptr %real_name.i, align 8 + %24 = load ptr, ptr %real_name.i, align 8 %append.i.i = getelementptr inbounds i8, ptr %state, i64 40 %bf.load.i.i = load i32, ptr %append.i.i, align 4 %tobool.not.i.i = icmp sgt i32 %bf.load.i.i, -1 br i1 %tobool.not.i.i, label %_ZN4absl18debugging_internalL16ParseBuiltinTypeEPNS0_5StateE.exit.thread, label %if.then.i.i if.then.i.i: ; preds = %if.then7.i - %24 = load i8, ptr %23, align 1 - %cmp.not3.i.i.i = icmp eq i8 %24, 0 + %25 = load i8, ptr %24, align 1 + %cmp.not3.i.i.i = icmp eq i8 %25, 0 br i1 %cmp.not3.i.i.i, label %_ZN4absl18debugging_internalL6StrLenEPKc.exit.i.i, label %while.body.i.i.i while.body.i.i.i: ; preds = %if.then.i.i, %while.body.i.i.i %len.05.i.i.i = phi i64 [ %inc.i.i22.i, %while.body.i.i.i ], [ 0, %if.then.i.i ] - %str.addr.04.i.i.i = phi ptr [ %incdec.ptr.i.i.i, %while.body.i.i.i ], [ %23, %if.then.i.i ] + %str.addr.04.i.i.i = phi ptr [ %incdec.ptr.i.i.i, %while.body.i.i.i ], [ %24, %if.then.i.i ] %incdec.ptr.i.i.i = getelementptr inbounds i8, ptr %str.addr.04.i.i.i, i64 1 %inc.i.i22.i = add i64 %len.05.i.i.i, 1 - %25 = load i8, ptr %incdec.ptr.i.i.i, align 1 - %cmp.not.i.i.i = icmp eq i8 %25, 0 + %26 = load i8, ptr %incdec.ptr.i.i.i, align 1 + %cmp.not.i.i.i = icmp eq i8 %26, 0 br i1 %cmp.not.i.i.i, label %_ZN4absl18debugging_internalL6StrLenEPKc.exit.i.i, label %while.body.i.i.i, !llvm.loop !9 _ZN4absl18debugging_internalL6StrLenEPKc.exit.i.i: ; preds = %while.body.i.i.i, %if.then.i.i %len.0.lcssa.i.i.i = phi i64 [ 0, %if.then.i.i ], [ %inc.i.i22.i, %while.body.i.i.i ] - tail call fastcc void @_ZN4absl18debugging_internalL21MaybeAppendWithLengthEPNS0_5StateEPKcm(ptr noundef nonnull %state, ptr noundef nonnull %23, i64 noundef %len.0.lcssa.i.i.i) + tail call fastcc void @_ZN4absl18debugging_internalL21MaybeAppendWithLengthEPNS0_5StateEPKcm(ptr noundef nonnull %state, ptr noundef nonnull %24, i64 noundef %len.0.lcssa.i.i.i) br label %_ZN4absl18debugging_internalL16ParseBuiltinTypeEPNS0_5StateE.exit.thread if.else.i: ; preds = %for.body.i86 - %arrayidx12.i = getelementptr inbounds i8, ptr %19, i64 2 - %26 = load i8, ptr %arrayidx12.i, align 1 - %cmp14.i = icmp eq i8 %26, 0 + %arrayidx12.i = getelementptr inbounds i8, ptr %20, i64 2 + %27 = load i8, ptr %arrayidx12.i, align 1 + %cmp14.i = icmp eq i8 %27, 0 br i1 %cmp14.i, label %land.lhs.true.i89, label %for.inc.i land.lhs.true.i89: ; preds = %if.else.i store i32 %inc.i.i26.i, ptr %recursion_depth.i, align 4 - %inc2.i.i28.i = add nsw i32 %18, 1 + %inc2.i.i28.i = add nsw i32 %19, 1 store i32 %inc2.i.i28.i, ptr %steps.i, align 8 - %cmp3.i.i30.i = icmp sgt i32 %18, 131071 + %cmp3.i.i30.i = icmp sgt i32 %19, 131071 %or.cond.i31.i = select i1 %cmp.i.i29.i, i1 true, i1 %cmp3.i.i30.i br i1 %or.cond.i31.i, label %for.inc.sink.split.i, label %if.end.i32.i @@ -3908,16 +3910,16 @@ if.end.i32.i: ; preds = %land.lhs.true.i89 %state.val8.i.i = load i32, ptr %parse_state, align 4 %idxprom.i.i33.i = sext i32 %state.val8.i.i to i64 %arrayidx.i.i34.i = getelementptr inbounds i8, ptr %state.val7.i.i, i64 %idxprom.i.i33.i - %27 = load i8, ptr %arrayidx.i.i34.i, align 1 - %28 = load i8, ptr %19, align 1 - %cmp.i35.i = icmp eq i8 %27, %28 + %28 = load i8, ptr %arrayidx.i.i34.i, align 1 + %29 = load i8, ptr %20, align 1 + %cmp.i35.i = icmp eq i8 %28, %29 br i1 %cmp.i35.i, label %land.lhs.true.i.i, label %for.inc.sink.split.i land.lhs.true.i.i: ; preds = %if.end.i32.i %arrayidx6.i.i = getelementptr inbounds i8, ptr %arrayidx.i.i34.i, i64 1 - %29 = load i8, ptr %arrayidx6.i.i, align 1 - %30 = load i8, ptr %arrayidx.i, align 1 - %cmp10.i.i = icmp eq i8 %29, %30 + %30 = load i8, ptr %arrayidx6.i.i, align 1 + %31 = load i8, ptr %arrayidx.i, align 1 + %cmp10.i.i = icmp eq i8 %30, %31 br i1 %cmp10.i.i, label %if.then18.i, label %for.inc.sink.split.i if.then18.i: ; preds = %land.lhs.true.i.i @@ -3925,29 +3927,29 @@ if.then18.i: ; preds = %land.lhs.true.i.i store i32 %add.i.i, ptr %parse_state, align 4 store i32 %inc.i.i77, ptr %recursion_depth.i, align 4 %real_name19.i = getelementptr inbounds i8, ptr %p.079.i, i64 8 - %31 = load ptr, ptr %real_name19.i, align 8 + %32 = load ptr, ptr %real_name19.i, align 8 %append.i37.i = getelementptr inbounds i8, ptr %state, i64 40 %bf.load.i38.i = load i32, ptr %append.i37.i, align 4 %tobool.not.i39.i = icmp sgt i32 %bf.load.i38.i, -1 br i1 %tobool.not.i39.i, label %_ZN4absl18debugging_internalL16ParseBuiltinTypeEPNS0_5StateE.exit.thread, label %if.then.i40.i if.then.i40.i: ; preds = %if.then18.i - %32 = load i8, ptr %31, align 1 - %cmp.not3.i.i41.i = icmp eq i8 %32, 0 + %33 = load i8, ptr %32, align 1 + %cmp.not3.i.i41.i = icmp eq i8 %33, 0 br i1 %cmp.not3.i.i41.i, label %_ZN4absl18debugging_internalL6StrLenEPKc.exit.i48.i, label %while.body.i.i42.i while.body.i.i42.i: ; preds = %if.then.i40.i, %while.body.i.i42.i %len.05.i.i43.i = phi i64 [ %inc.i.i46.i, %while.body.i.i42.i ], [ 0, %if.then.i40.i ] - %str.addr.04.i.i44.i = phi ptr [ %incdec.ptr.i.i45.i, %while.body.i.i42.i ], [ %31, %if.then.i40.i ] + %str.addr.04.i.i44.i = phi ptr [ %incdec.ptr.i.i45.i, %while.body.i.i42.i ], [ %32, %if.then.i40.i ] %incdec.ptr.i.i45.i = getelementptr inbounds i8, ptr %str.addr.04.i.i44.i, i64 1 %inc.i.i46.i = add i64 %len.05.i.i43.i, 1 - %33 = load i8, ptr %incdec.ptr.i.i45.i, align 1 - %cmp.not.i.i47.i = icmp eq i8 %33, 0 + %34 = load i8, ptr %incdec.ptr.i.i45.i, align 1 + %cmp.not.i.i47.i = icmp eq i8 %34, 0 br i1 %cmp.not.i.i47.i, label %_ZN4absl18debugging_internalL6StrLenEPKc.exit.i48.i, label %while.body.i.i42.i, !llvm.loop !9 _ZN4absl18debugging_internalL6StrLenEPKc.exit.i48.i: ; preds = %while.body.i.i42.i, %if.then.i40.i %len.0.lcssa.i.i49.i = phi i64 [ 0, %if.then.i40.i ], [ %inc.i.i46.i, %while.body.i.i42.i ] - tail call fastcc void @_ZN4absl18debugging_internalL21MaybeAppendWithLengthEPNS0_5StateEPKcm(ptr noundef nonnull %state, ptr noundef nonnull %31, i64 noundef %len.0.lcssa.i.i49.i) + tail call fastcc void @_ZN4absl18debugging_internalL21MaybeAppendWithLengthEPNS0_5StateEPKcm(ptr noundef nonnull %state, ptr noundef nonnull %32, i64 noundef %len.0.lcssa.i.i49.i) br label %_ZN4absl18debugging_internalL16ParseBuiltinTypeEPNS0_5StateE.exit.thread for.inc.sink.split.i: ; preds = %land.lhs.true.i.i, %if.end.i32.i, %land.lhs.true.i89, %if.end.i.i94, %if.then3.i90 @@ -3956,17 +3958,17 @@ for.inc.sink.split.i: ; preds = %land.lhs.true.i.i, br label %for.inc.i for.inc.i: ; preds = %for.inc.sink.split.i, %if.else.i - %34 = phi i32 [ %18, %if.else.i ], [ %.ph.i, %for.inc.sink.split.i ] + %35 = phi i32 [ %19, %if.else.i ], [ %.ph.i, %for.inc.sink.split.i ] %incdec.ptr.i87 = getelementptr inbounds i8, ptr %p.079.i, i64 24 - %35 = load ptr, ptr %incdec.ptr.i87, align 8 - %cmp.not.i = icmp eq ptr %35, null + %36 = load ptr, ptr %incdec.ptr.i87, align 8 + %cmp.not.i = icmp eq ptr %36, null br i1 %cmp.not.i, label %for.end.i, label %for.body.i86, !llvm.loop !18 for.end.i: ; preds = %for.inc.i store i32 %inc.i.i26.i, ptr %recursion_depth.i, align 4 - %inc2.i.i55.i = add nsw i32 %34, 1 + %inc2.i.i55.i = add nsw i32 %35, 1 store i32 %inc2.i.i55.i, ptr %steps.i, align 8 - %cmp3.i.i57.i = icmp sgt i32 %34, 131071 + %cmp3.i.i57.i = icmp sgt i32 %35, 131071 %or.cond.i58.i = select i1 %cmp.i.i29.i, i1 true, i1 %cmp3.i.i57.i br i1 %or.cond.i58.i, label %invoke.cont24.thread.i, label %if.end.i59.i @@ -3975,8 +3977,8 @@ if.end.i59.i: ; preds = %for.end.i %state.val4.i61.i = load i32, ptr %parse_state, align 4 %idxprom.i.i62.i = sext i32 %state.val4.i61.i to i64 %arrayidx.i.i63.i = getelementptr inbounds i8, ptr %state.val.i60.i, i64 %idxprom.i.i62.i - %36 = load i8, ptr %arrayidx.i.i63.i, align 1 - %cmp.i64.i = icmp eq i8 %36, 117 + %37 = load i8, ptr %arrayidx.i.i63.i, align 1 + %cmp.i64.i = icmp eq i8 %37, 117 br i1 %cmp.i64.i, label %land.lhs.true26.i, label %invoke.cont24.thread.i invoke.cont24.thread.i: ; preds = %if.end.i59.i, %for.end.i @@ -3991,53 +3993,53 @@ land.lhs.true26.i: ; preds = %if.end.i59.i br i1 %call28.i, label %_ZN4absl18debugging_internalL16ParseBuiltinTypeEPNS0_5StateE.exit.thread, label %land.lhs.true26.i.if.end30.i_crit_edge land.lhs.true26.i.if.end30.i_crit_edge: ; preds = %land.lhs.true26.i - %.pre221.pre = load i32, ptr %recursion_depth.i, align 4 - %.pre222.pre = load i32, ptr %steps.i, align 8 + %.pre217.pre = load i32, ptr %recursion_depth.i, align 4 + %.pre218.pre = load i32, ptr %steps.i, align 8 br label %if.end30.i if.end30.i: ; preds = %land.lhs.true26.i.if.end30.i_crit_edge, %invoke.cont24.thread.i - %.pre222 = phi i32 [ %.pre222.pre, %land.lhs.true26.i.if.end30.i_crit_edge ], [ %inc2.i.i55.i, %invoke.cont24.thread.i ] - %.pre221 = phi i32 [ %.pre221.pre, %land.lhs.true26.i.if.end30.i_crit_edge ], [ %inc.i.i77, %invoke.cont24.thread.i ] + %.pre218 = phi i32 [ %.pre218.pre, %land.lhs.true26.i.if.end30.i_crit_edge ], [ %inc2.i.i55.i, %invoke.cont24.thread.i ] + %.pre217 = phi i32 [ %.pre217.pre, %land.lhs.true26.i.if.end30.i_crit_edge ], [ %inc.i.i77, %invoke.cont24.thread.i ] call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %parse_state, ptr noundef nonnull align 4 dereferenceable(16) %copy, i64 16, i1 false) br label %lor.lhs.false _ZN4absl18debugging_internalL16ParseBuiltinTypeEPNS0_5StateE.exit.thread: ; preds = %land.lhs.true26.i, %if.then7.i, %_ZN4absl18debugging_internalL6StrLenEPKc.exit.i.i, %if.then18.i, %_ZN4absl18debugging_internalL6StrLenEPKc.exit.i48.i - %37 = load i32, ptr %recursion_depth.i, align 4 - %dec.i70.i203 = add nsw i32 %37, -1 - store i32 %dec.i70.i203, ptr %recursion_depth.i, align 4 + %38 = load i32, ptr %recursion_depth.i, align 4 + %dec.i70.i199 = add nsw i32 %38, -1 + store i32 %dec.i70.i199, ptr %recursion_depth.i, align 4 br label %cleanup lor.lhs.false: ; preds = %if.end30.i, %if.end41 - %38 = phi i32 [ %.pre222, %if.end30.i ], [ %inc2.i.i79, %if.end41 ] - %39 = phi i32 [ %.pre221, %if.end30.i ], [ %inc.i.i77, %if.end41 ] + %39 = phi i32 [ %.pre218, %if.end30.i ], [ %inc2.i.i79, %if.end41 ] + %40 = phi i32 [ %.pre217, %if.end30.i ], [ %inc.i.i77, %if.end41 ] call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %copy.i99) - store i32 %39, ptr %recursion_depth.i, align 4 - %inc2.i179 = add nsw i32 %38, 1 + store i32 %40, ptr %recursion_depth.i, align 4 + %inc2.i179 = add nsw i32 %39, 1 store i32 %inc2.i179, ptr %steps.i, align 8 - %cmp.i171 = icmp sgt i32 %39, 256 - %cmp3.i174 = icmp sgt i32 %38, 131071 - %or.cond240 = select i1 %cmp.i171, i1 true, i1 %cmp3.i174 - br i1 %or.cond240, label %lor.lhs.false47, label %if.end.i100 + %cmp.i171 = icmp sgt i32 %40, 256 + %cmp3.i174 = icmp sgt i32 %39, 131071 + %or.cond236 = select i1 %cmp.i171, i1 true, i1 %cmp3.i174 + br i1 %or.cond236, label %lor.lhs.false47, label %if.end.i100 if.end.i100: ; preds = %lor.lhs.false call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %copy.i99, ptr noundef nonnull align 4 dereferenceable(16) %parse_state, i64 16, i1 false) call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %copy.i136) - %inc.i.i138 = add nsw i32 %39, 1 + %inc.i.i138 = add nsw i32 %40, 1 store i32 %inc.i.i138, ptr %recursion_depth.i, align 4 - %inc2.i.i140 = add nsw i32 %38, 2 + %inc2.i.i140 = add nsw i32 %39, 2 store i32 %inc2.i.i140, ptr %steps.i, align 8 - %cmp.i.i142 = icmp eq i32 %39, 256 - %cmp3.i.i143 = icmp eq i32 %38, 131071 - %or.cond214 = select i1 %cmp.i.i142, i1 true, i1 %cmp3.i.i143 - br i1 %or.cond214, label %invoke.cont.i101, label %if.end.i144 + %cmp.i.i142 = icmp eq i32 %40, 256 + %cmp3.i.i143 = icmp eq i32 %39, 131071 + %or.cond210 = select i1 %cmp.i.i142, i1 true, i1 %cmp3.i.i143 + br i1 %or.cond210, label %invoke.cont.i101, label %if.end.i144 if.end.i144: ; preds = %if.end.i100 - %inc.i.i.i145 = add nsw i32 %39, 2 + %inc.i.i.i145 = add nsw i32 %40, 2 store i32 %inc.i.i.i145, ptr %recursion_depth.i, align 4 - %inc2.i.i.i146 = add nsw i32 %38, 3 + %inc2.i.i.i146 = add nsw i32 %39, 3 store i32 %inc2.i.i.i146, ptr %steps.i, align 8 - %cmp.i.i.i147 = icmp sgt i32 %39, 254 - %cmp3.i.i.i148 = icmp sgt i32 %38, 131069 + %cmp.i.i.i147 = icmp sgt i32 %40, 254 + %cmp3.i.i.i148 = icmp sgt i32 %39, 131069 %or.cond.i.i149 = select i1 %cmp.i.i.i147, i1 true, i1 %cmp3.i.i.i148 br i1 %or.cond.i.i149, label %if.end3.i, label %if.end.i.i150 @@ -4046,14 +4048,14 @@ if.end.i.i150: ; preds = %if.end.i144 %state.val8.i.i152 = load i32, ptr %parse_state, align 4 %idxprom.i.i.i153 = sext i32 %state.val8.i.i152 to i64 %arrayidx.i.i.i154 = getelementptr inbounds i8, ptr %state.val7.i.i151, i64 %idxprom.i.i.i153 - %40 = load i8, ptr %arrayidx.i.i.i154, align 1 - %cmp.i15.i = icmp eq i8 %40, 68 + %41 = load i8, ptr %arrayidx.i.i.i154, align 1 + %cmp.i15.i = icmp eq i8 %41, 68 br i1 %cmp.i15.i, label %land.lhs.true.i.i165, label %if.end3.i land.lhs.true.i.i165: ; preds = %if.end.i.i150 %arrayidx6.i.i166 = getelementptr inbounds i8, ptr %arrayidx.i.i.i154, i64 1 - %41 = load i8, ptr %arrayidx6.i.i166, align 1 - %cmp10.i.i167 = icmp eq i8 %41, 111 + %42 = load i8, ptr %arrayidx6.i.i166, align 1 + %cmp10.i.i167 = icmp eq i8 %42, 111 br i1 %cmp10.i.i167, label %_ZN4absl18debugging_internalL17ParseTwoCharTokenEPNS0_5StateEPKc.exit.i, label %if.end3.i _ZN4absl18debugging_internalL17ParseTwoCharTokenEPNS0_5StateEPKc.exit.i: ; preds = %land.lhs.true.i.i165 @@ -4074,17 +4076,17 @@ lpad.i159.loopexit.split-lp: ; preds = %land.lhs.true.i160, lpad.i159: ; preds = %lpad.i159.loopexit.split-lp, %lpad.i159.loopexit %lpad.phi = phi { ptr, i32 } [ %lpad.loopexit, %lpad.i159.loopexit ], [ %lpad.loopexit.split-lp, %lpad.i159.loopexit.split-lp ] - %42 = load i32, ptr %recursion_depth.i, align 4 - %dec.i.i = add nsw i32 %42, -1 + %43 = load i32, ptr %recursion_depth.i, align 4 + %dec.i.i = add nsw i32 %43, -1 store i32 %dec.i.i, ptr %recursion_depth.i, align 4 br label %lpad.i.body if.end3.i: ; preds = %land.lhs.true.i.i165, %if.end.i.i150, %if.end.i144 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %copy.i136, ptr noundef nonnull align 4 dereferenceable(16) %parse_state, i64 16, i1 false) store i32 %inc.i.i.i145, ptr %recursion_depth.i, align 4 - %inc2.i.i20.i = add nsw i32 %38, 4 + %inc2.i.i20.i = add nsw i32 %39, 4 store i32 %inc2.i.i20.i, ptr %steps.i, align 8 - %cmp3.i.i22.i = icmp sgt i32 %38, 131068 + %cmp3.i.i22.i = icmp sgt i32 %39, 131068 %or.cond.i23.i = select i1 %cmp.i.i.i147, i1 true, i1 %cmp3.i.i22.i br i1 %or.cond.i23.i, label %if.end12.i.sink.split, label %if.end.i24.i @@ -4093,14 +4095,14 @@ if.end.i24.i: ; preds = %if.end3.i %state.val8.i26.i = load i32, ptr %parse_state, align 4 %idxprom.i.i27.i = sext i32 %state.val8.i26.i to i64 %arrayidx.i.i28.i = getelementptr inbounds i8, ptr %state.val7.i25.i, i64 %idxprom.i.i27.i - %43 = load i8, ptr %arrayidx.i.i28.i, align 1 - %cmp.i29.i = icmp eq i8 %43, 68 + %44 = load i8, ptr %arrayidx.i.i28.i, align 1 + %cmp.i29.i = icmp eq i8 %44, 68 br i1 %cmp.i29.i, label %land.lhs.true.i31.i, label %if.end12.i.sink.split land.lhs.true.i31.i: ; preds = %if.end.i24.i %arrayidx6.i32.i = getelementptr inbounds i8, ptr %arrayidx.i.i28.i, i64 1 - %44 = load i8, ptr %arrayidx6.i32.i, align 1 - %cmp10.i33.i = icmp eq i8 %44, 79 + %45 = load i8, ptr %arrayidx6.i32.i, align 1 + %cmp10.i33.i = icmp eq i8 %45, 79 br i1 %cmp10.i33.i, label %land.lhs.true.i160, label %if.end12.i.sink.split land.lhs.true.i160: ; preds = %land.lhs.true.i31.i @@ -4111,17 +4113,17 @@ land.lhs.true.i160: ; preds = %land.lhs.true.i31.i to label %invoke.cont6.i161 unwind label %lpad.i159.loopexit.split-lp invoke.cont6.i161: ; preds = %land.lhs.true.i160 - %.pre223 = load i32, ptr %recursion_depth.i, align 4 - %.pre224 = load i32, ptr %steps.i, align 8 + %.pre219 = load i32, ptr %recursion_depth.i, align 4 + %.pre220 = load i32, ptr %steps.i, align 8 br i1 %call7.i, label %land.lhs.true8.i, label %if.end12.i land.lhs.true8.i: ; preds = %invoke.cont6.i161 - %inc.i.i38.i = add nsw i32 %.pre223, 1 + %inc.i.i38.i = add nsw i32 %.pre219, 1 store i32 %inc.i.i38.i, ptr %recursion_depth.i, align 4 - %inc2.i.i40.i = add nsw i32 %.pre224, 1 + %inc2.i.i40.i = add nsw i32 %.pre220, 1 store i32 %inc2.i.i40.i, ptr %steps.i, align 8 - %cmp.i.i41.i = icmp sgt i32 %.pre223, 255 - %cmp3.i.i42.i = icmp sgt i32 %.pre224, 131071 + %cmp.i.i41.i = icmp sgt i32 %.pre219, 255 + %cmp3.i.i42.i = icmp sgt i32 %.pre220, 131071 %or.cond.i43.i = select i1 %cmp.i.i41.i, i1 true, i1 %cmp3.i.i42.i br i1 %or.cond.i43.i, label %if.end12.i.sink.split, label %if.end.i44.i @@ -4130,32 +4132,32 @@ if.end.i44.i: ; preds = %land.lhs.true8.i %state.val4.i.i163 = load i32, ptr %parse_state, align 4 %idxprom.i.i45.i = sext i32 %state.val4.i.i163 to i64 %arrayidx.i.i46.i = getelementptr inbounds i8, ptr %state.val.i.i162, i64 %idxprom.i.i45.i - %45 = load i8, ptr %arrayidx.i.i46.i, align 1 - %cmp.i47.i = icmp eq i8 %45, 69 + %46 = load i8, ptr %arrayidx.i.i46.i, align 1 + %cmp.i47.i = icmp eq i8 %46, 69 br i1 %cmp.i47.i, label %_ZN4absl18debugging_internalL17ParseOneCharTokenEPNS0_5StateEc.exit.i, label %if.end12.i.sink.split _ZN4absl18debugging_internalL17ParseOneCharTokenEPNS0_5StateEc.exit.i: ; preds = %if.end.i44.i %inc.i49.i = add nsw i32 %state.val4.i.i163, 1 store i32 %inc.i49.i, ptr %parse_state, align 4 - store i32 %.pre223, ptr %recursion_depth.i, align 4 + store i32 %.pre219, ptr %recursion_depth.i, align 4 br label %invoke.cont.i101 if.end12.i.sink.split: ; preds = %land.lhs.true8.i, %if.end.i44.i, %if.end3.i, %if.end.i24.i, %land.lhs.true.i31.i - %.pre223.sink = phi i32 [ %inc.i.i138, %land.lhs.true.i31.i ], [ %inc.i.i138, %if.end.i24.i ], [ %inc.i.i138, %if.end3.i ], [ %.pre223, %if.end.i44.i ], [ %.pre223, %land.lhs.true8.i ] + %.pre219.sink = phi i32 [ %inc.i.i138, %land.lhs.true.i31.i ], [ %inc.i.i138, %if.end.i24.i ], [ %inc.i.i138, %if.end3.i ], [ %.pre219, %if.end.i44.i ], [ %.pre219, %land.lhs.true8.i ] %.ph = phi i32 [ %inc2.i.i20.i, %land.lhs.true.i31.i ], [ %inc2.i.i20.i, %if.end.i24.i ], [ %inc2.i.i20.i, %if.end3.i ], [ %inc2.i.i40.i, %if.end.i44.i ], [ %inc2.i.i40.i, %land.lhs.true8.i ] - store i32 %.pre223.sink, ptr %recursion_depth.i, align 4 + store i32 %.pre219.sink, ptr %recursion_depth.i, align 4 br label %if.end12.i if.end12.i: ; preds = %if.end12.i.sink.split, %invoke.cont6.i161 - %46 = phi i32 [ %.pre224, %invoke.cont6.i161 ], [ %.ph, %if.end12.i.sink.split ] - %47 = phi i32 [ %.pre223, %invoke.cont6.i161 ], [ %.pre223.sink, %if.end12.i.sink.split ] + %47 = phi i32 [ %.pre220, %invoke.cont6.i161 ], [ %.ph, %if.end12.i.sink.split ] + %48 = phi i32 [ %.pre219, %invoke.cont6.i161 ], [ %.pre219.sink, %if.end12.i.sink.split ] call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %parse_state, ptr noundef nonnull align 4 dereferenceable(16) %copy.i136, i64 16, i1 false) - %inc.i.i51.i = add nsw i32 %47, 1 + %inc.i.i51.i = add nsw i32 %48, 1 store i32 %inc.i.i51.i, ptr %recursion_depth.i, align 4 - %inc2.i.i53.i = add nsw i32 %46, 1 + %inc2.i.i53.i = add nsw i32 %47, 1 store i32 %inc2.i.i53.i, ptr %steps.i, align 8 - %cmp.i.i54.i = icmp sgt i32 %47, 255 - %cmp3.i.i55.i = icmp sgt i32 %46, 131071 + %cmp.i.i54.i = icmp sgt i32 %48, 255 + %cmp3.i.i55.i = icmp sgt i32 %47, 131071 %or.cond.i56.i = select i1 %cmp.i.i54.i, i1 true, i1 %cmp3.i.i55.i br i1 %or.cond.i56.i, label %if.end23.i157.sink.split, label %if.end.i57.i @@ -4164,20 +4166,20 @@ if.end.i57.i: ; preds = %if.end12.i %state.val8.i59.i = load i32, ptr %parse_state, align 4 %idxprom.i.i60.i = sext i32 %state.val8.i59.i to i64 %arrayidx.i.i61.i = getelementptr inbounds i8, ptr %state.val7.i58.i, i64 %idxprom.i.i60.i - %48 = load i8, ptr %arrayidx.i.i61.i, align 1 - %cmp.i62.i = icmp eq i8 %48, 68 + %49 = load i8, ptr %arrayidx.i.i61.i, align 1 + %cmp.i62.i = icmp eq i8 %49, 68 br i1 %cmp.i62.i, label %land.lhs.true.i64.i, label %if.end23.i157.sink.split land.lhs.true.i64.i: ; preds = %if.end.i57.i %arrayidx6.i65.i = getelementptr inbounds i8, ptr %arrayidx.i.i61.i, i64 1 - %49 = load i8, ptr %arrayidx6.i65.i, align 1 - %cmp10.i66.i = icmp eq i8 %49, 119 + %50 = load i8, ptr %arrayidx6.i65.i, align 1 + %cmp10.i66.i = icmp eq i8 %50, 119 br i1 %cmp10.i66.i, label %land.lhs.true16.i, label %if.end23.i157.sink.split land.lhs.true16.i: ; preds = %land.lhs.true.i64.i %add.i68.i = add nsw i32 %state.val8.i59.i, 2 store i32 %add.i68.i, ptr %parse_state, align 4 - store i32 %47, ptr %recursion_depth.i, align 4 + store i32 %48, ptr %recursion_depth.i, align 4 %call.i70.i = invoke fastcc noundef zeroext i1 @_ZN4absl18debugging_internalL9ParseTypeEPNS0_5StateE(ptr noundef nonnull %state) to label %call.i.noexc.i unwind label %lpad.i159.loopexit.split-lp @@ -4185,8 +4187,8 @@ call.i.noexc.i: ; preds = %land.lhs.true16.i br i1 %call.i70.i, label %while.cond.i.i, label %call.i.noexc.i.if.end23.i157_crit_edge call.i.noexc.i.if.end23.i157_crit_edge: ; preds = %call.i.noexc.i - %.pre225.pre = load i32, ptr %recursion_depth.i, align 4 - %.pre226.pre = load i32, ptr %steps.i, align 8 + %.pre221.pre = load i32, ptr %recursion_depth.i, align 4 + %.pre222.pre = load i32, ptr %steps.i, align 8 br label %if.end23.i157 while.cond.i.i: ; preds = %call.i.noexc.i, %call1.i.noexc.i @@ -4197,14 +4199,14 @@ call1.i.noexc.i: ; preds = %while.cond.i.i br i1 %call1.i71.i, label %while.cond.i.i, label %land.lhs.true19.i, !llvm.loop !11 land.lhs.true19.i: ; preds = %call1.i.noexc.i - %50 = load i32, ptr %recursion_depth.i, align 4 - %inc.i.i73.i = add nsw i32 %50, 1 + %51 = load i32, ptr %recursion_depth.i, align 4 + %inc.i.i73.i = add nsw i32 %51, 1 store i32 %inc.i.i73.i, ptr %recursion_depth.i, align 4 - %51 = load i32, ptr %steps.i, align 8 - %inc2.i.i75.i = add nsw i32 %51, 1 + %52 = load i32, ptr %steps.i, align 8 + %inc2.i.i75.i = add nsw i32 %52, 1 store i32 %inc2.i.i75.i, ptr %steps.i, align 8 - %cmp.i.i76.i = icmp sgt i32 %50, 255 - %cmp3.i.i77.i = icmp sgt i32 %51, 131071 + %cmp.i.i76.i = icmp sgt i32 %51, 255 + %cmp3.i.i77.i = icmp sgt i32 %52, 131071 %or.cond.i78.i = select i1 %cmp.i.i76.i, i1 true, i1 %cmp3.i.i77.i br i1 %or.cond.i78.i, label %if.end23.i157.sink.split, label %if.end.i79.i @@ -4213,38 +4215,38 @@ if.end.i79.i: ; preds = %land.lhs.true19.i %state.val4.i81.i = load i32, ptr %parse_state, align 4 %idxprom.i.i82.i = sext i32 %state.val4.i81.i to i64 %arrayidx.i.i83.i = getelementptr inbounds i8, ptr %state.val.i80.i, i64 %idxprom.i.i82.i - %52 = load i8, ptr %arrayidx.i.i83.i, align 1 - %cmp.i84.i = icmp eq i8 %52, 69 + %53 = load i8, ptr %arrayidx.i.i83.i, align 1 + %cmp.i84.i = icmp eq i8 %53, 69 br i1 %cmp.i84.i, label %_ZN4absl18debugging_internalL17ParseOneCharTokenEPNS0_5StateEc.exit88.i, label %if.end23.i157.sink.split _ZN4absl18debugging_internalL17ParseOneCharTokenEPNS0_5StateEc.exit88.i: ; preds = %if.end.i79.i %inc.i87.i = add nsw i32 %state.val4.i81.i, 1 store i32 %inc.i87.i, ptr %parse_state, align 4 - store i32 %50, ptr %recursion_depth.i, align 4 + store i32 %51, ptr %recursion_depth.i, align 4 br label %invoke.cont.i101 if.end23.i157.sink.split: ; preds = %land.lhs.true19.i, %if.end.i79.i, %if.end12.i, %if.end.i57.i, %land.lhs.true.i64.i - %.pre226317 = phi i32 [ %inc2.i.i53.i, %land.lhs.true.i64.i ], [ %inc2.i.i53.i, %if.end.i57.i ], [ %inc2.i.i53.i, %if.end12.i ], [ %inc2.i.i75.i, %if.end.i79.i ], [ %inc2.i.i75.i, %land.lhs.true19.i ] - %.sink = phi i32 [ %47, %land.lhs.true.i64.i ], [ %47, %if.end.i57.i ], [ %47, %if.end12.i ], [ %50, %if.end.i79.i ], [ %50, %land.lhs.true19.i ] + %.pre222313 = phi i32 [ %inc2.i.i53.i, %land.lhs.true.i64.i ], [ %inc2.i.i53.i, %if.end.i57.i ], [ %inc2.i.i53.i, %if.end12.i ], [ %inc2.i.i75.i, %if.end.i79.i ], [ %inc2.i.i75.i, %land.lhs.true19.i ] + %.sink = phi i32 [ %48, %land.lhs.true.i64.i ], [ %48, %if.end.i57.i ], [ %48, %if.end12.i ], [ %51, %if.end.i79.i ], [ %51, %land.lhs.true19.i ] store i32 %.sink, ptr %recursion_depth.i, align 4 br label %if.end23.i157 if.end23.i157: ; preds = %call.i.noexc.i.if.end23.i157_crit_edge, %if.end23.i157.sink.split - %.pre226 = phi i32 [ %.pre226.pre, %call.i.noexc.i.if.end23.i157_crit_edge ], [ %.pre226317, %if.end23.i157.sink.split ] - %.pre225 = phi i32 [ %.pre225.pre, %call.i.noexc.i.if.end23.i157_crit_edge ], [ %.sink, %if.end23.i157.sink.split ] + %.pre222 = phi i32 [ %.pre222.pre, %call.i.noexc.i.if.end23.i157_crit_edge ], [ %.pre222313, %if.end23.i157.sink.split ] + %.pre221 = phi i32 [ %.pre221.pre, %call.i.noexc.i.if.end23.i157_crit_edge ], [ %.sink, %if.end23.i157.sink.split ] call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %parse_state, ptr noundef nonnull align 4 dereferenceable(16) %copy.i136, i64 16, i1 false) br label %invoke.cont.i101 invoke.cont.i101: ; preds = %if.end.i100, %if.end23.i157, %_ZN4absl18debugging_internalL17ParseTwoCharTokenEPNS0_5StateEPKc.exit.i, %_ZN4absl18debugging_internalL17ParseOneCharTokenEPNS0_5StateEc.exit.i, %_ZN4absl18debugging_internalL17ParseOneCharTokenEPNS0_5StateEc.exit88.i - %53 = phi i32 [ %inc2.i.i140, %if.end.i100 ], [ %.pre226, %if.end23.i157 ], [ %inc2.i.i.i146, %_ZN4absl18debugging_internalL17ParseTwoCharTokenEPNS0_5StateEPKc.exit.i ], [ %inc2.i.i40.i, %_ZN4absl18debugging_internalL17ParseOneCharTokenEPNS0_5StateEc.exit.i ], [ %inc2.i.i75.i, %_ZN4absl18debugging_internalL17ParseOneCharTokenEPNS0_5StateEc.exit88.i ] - %54 = phi i32 [ %inc.i.i138, %if.end.i100 ], [ %.pre225, %if.end23.i157 ], [ %inc.i.i138, %_ZN4absl18debugging_internalL17ParseTwoCharTokenEPNS0_5StateEPKc.exit.i ], [ %.pre223, %_ZN4absl18debugging_internalL17ParseOneCharTokenEPNS0_5StateEc.exit.i ], [ %50, %_ZN4absl18debugging_internalL17ParseOneCharTokenEPNS0_5StateEc.exit88.i ] - %dec.i90.i = add nsw i32 %54, -1 + %54 = phi i32 [ %inc2.i.i140, %if.end.i100 ], [ %.pre222, %if.end23.i157 ], [ %inc2.i.i.i146, %_ZN4absl18debugging_internalL17ParseTwoCharTokenEPNS0_5StateEPKc.exit.i ], [ %inc2.i.i40.i, %_ZN4absl18debugging_internalL17ParseOneCharTokenEPNS0_5StateEc.exit.i ], [ %inc2.i.i75.i, %_ZN4absl18debugging_internalL17ParseOneCharTokenEPNS0_5StateEc.exit88.i ] + %55 = phi i32 [ %inc.i.i138, %if.end.i100 ], [ %.pre221, %if.end23.i157 ], [ %inc.i.i138, %_ZN4absl18debugging_internalL17ParseTwoCharTokenEPNS0_5StateEPKc.exit.i ], [ %.pre219, %_ZN4absl18debugging_internalL17ParseOneCharTokenEPNS0_5StateEc.exit.i ], [ %51, %_ZN4absl18debugging_internalL17ParseOneCharTokenEPNS0_5StateEc.exit88.i ] + %dec.i90.i = add nsw i32 %55, -1 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %copy.i136) - store i32 %54, ptr %recursion_depth.i, align 4 - %inc2.i.i121 = add nsw i32 %53, 1 + store i32 %55, ptr %recursion_depth.i, align 4 + %inc2.i.i121 = add nsw i32 %54, 1 store i32 %inc2.i.i121, ptr %steps.i, align 8 - %cmp.i.i122 = icmp sgt i32 %54, 256 - %cmp3.i.i123 = icmp sgt i32 %53, 131071 + %cmp.i.i122 = icmp sgt i32 %55, 256 + %cmp3.i.i123 = icmp sgt i32 %54, 131071 %or.cond.i124 = select i1 %cmp.i.i122, i1 true, i1 %cmp3.i.i123 br i1 %or.cond.i124, label %_ZN4absl18debugging_internalL17ParseOneCharTokenEPNS0_5StateEc.exit134.thread, label %if.end.i125 @@ -4253,8 +4255,8 @@ if.end.i125: ; preds = %invoke.cont.i101 %state.val4.i127 = load i32, ptr %parse_state, align 4 %idxprom.i.i128 = sext i32 %state.val4.i127 to i64 %arrayidx.i.i129 = getelementptr inbounds i8, ptr %state.val.i126, i64 %idxprom.i.i128 - %55 = load i8, ptr %arrayidx.i.i129, align 1 - %cmp.i130 = icmp eq i8 %55, 70 + %56 = load i8, ptr %arrayidx.i.i129, align 1 + %cmp.i130 = icmp eq i8 %56, 70 br i1 %cmp.i130, label %land.lhs.true6.i, label %_ZN4absl18debugging_internalL17ParseOneCharTokenEPNS0_5StateEc.exit134.thread _ZN4absl18debugging_internalL17ParseOneCharTokenEPNS0_5StateEc.exit134.thread: ; preds = %if.end.i125, %invoke.cont.i101 @@ -4264,25 +4266,25 @@ _ZN4absl18debugging_internalL17ParseOneCharTokenEPNS0_5StateEc.exit134.thread: ; land.lhs.true6.i: ; preds = %if.end.i125 %inc.i133 = add nsw i32 %state.val4.i127, 1 store i32 %inc.i133, ptr %parse_state, align 4 - store i32 %54, ptr %recursion_depth.i, align 4 - %inc2.i.i243 = add nsw i32 %53, 2 - store i32 %inc2.i.i243, ptr %steps.i, align 8 - %cmp3.i.i245 = icmp sgt i32 %53, 131070 - br i1 %cmp3.i.i245, label %_ZN4absl18debugging_internalL17ParseOneCharTokenEPNS0_5StateEc.exit, label %if.end.i247 - -if.end.i247: ; preds = %land.lhs.true6.i - %idxprom.i.i250 = sext i32 %inc.i133 to i64 - %arrayidx.i.i251 = getelementptr inbounds i8, ptr %state.val.i126, i64 %idxprom.i.i250 - %56 = load i8, ptr %arrayidx.i.i251, align 1 - %cmp.i252 = icmp eq i8 %56, 89 - br i1 %cmp.i252, label %if.then3.i, label %_ZN4absl18debugging_internalL17ParseOneCharTokenEPNS0_5StateEc.exit - -if.then3.i: ; preds = %if.end.i247 - %inc.i253 = add nsw i32 %state.val4.i127, 2 - store i32 %inc.i253, ptr %parse_state, align 4 + store i32 %55, ptr %recursion_depth.i, align 4 + %inc2.i.i239 = add nsw i32 %54, 2 + store i32 %inc2.i.i239, ptr %steps.i, align 8 + %cmp3.i.i241 = icmp sgt i32 %54, 131070 + br i1 %cmp3.i.i241, label %_ZN4absl18debugging_internalL17ParseOneCharTokenEPNS0_5StateEc.exit, label %if.end.i243 + +if.end.i243: ; preds = %land.lhs.true6.i + %idxprom.i.i246 = sext i32 %inc.i133 to i64 + %arrayidx.i.i247 = getelementptr inbounds i8, ptr %state.val.i126, i64 %idxprom.i.i246 + %57 = load i8, ptr %arrayidx.i.i247, align 1 + %cmp.i248 = icmp eq i8 %57, 89 + br i1 %cmp.i248, label %if.then3.i, label %_ZN4absl18debugging_internalL17ParseOneCharTokenEPNS0_5StateEc.exit + +if.then3.i: ; preds = %if.end.i243 + %inc.i249 = add nsw i32 %state.val4.i127, 2 + store i32 %inc.i249, ptr %parse_state, align 4 br label %_ZN4absl18debugging_internalL17ParseOneCharTokenEPNS0_5StateEc.exit -_ZN4absl18debugging_internalL17ParseOneCharTokenEPNS0_5StateEc.exit: ; preds = %land.lhs.true6.i, %if.end.i247, %if.then3.i +_ZN4absl18debugging_internalL17ParseOneCharTokenEPNS0_5StateEc.exit: ; preds = %land.lhs.true6.i, %if.end.i243, %if.then3.i store i32 %dec.i90.i, ptr %recursion_depth.i, align 4 %call13.i = invoke fastcc noundef zeroext i1 @_ZN4absl18debugging_internalL21ParseBareFunctionTypeEPNS0_5StateE(ptr noundef nonnull %state) to label %invoke.cont12.i unwind label %lpad.i @@ -4297,194 +4299,194 @@ invoke.cont12.i.if.end23.i_crit_edge: ; preds = %invoke.cont12.i land.lhs.true14.i: ; preds = %invoke.cont12.i %call16.i = tail call fastcc noundef zeroext i1 @_ZN4absl18debugging_internalL17ParseOneCharTokenEPNS0_5StateEc(ptr noundef nonnull %state, i8 noundef signext 79) %call21.i = tail call fastcc noundef zeroext i1 @_ZN4absl18debugging_internalL17ParseOneCharTokenEPNS0_5StateEc(ptr noundef nonnull %state, i8 noundef signext 69) - %.pr.pre.pre233 = load i32, ptr %recursion_depth.i, align 4 + %.pr.pre.pre229 = load i32, ptr %recursion_depth.i, align 4 br i1 %call21.i, label %invoke.cont45, label %if.end23.i lpad.i: ; preds = %_ZN4absl18debugging_internalL17ParseOneCharTokenEPNS0_5StateEc.exit - %57 = landingpad { ptr, i32 } + %58 = landingpad { ptr, i32 } cleanup - %.pre227 = load i32, ptr %recursion_depth.i, align 4 + %.pre223 = load i32, ptr %recursion_depth.i, align 4 br label %lpad.i.body lpad.i.body: ; preds = %lpad.i159, %lpad.i - %58 = phi i32 [ %.pre227, %lpad.i ], [ %dec.i.i, %lpad.i159 ] - %eh.lpad-body169 = phi { ptr, i32 } [ %57, %lpad.i ], [ %lpad.phi, %lpad.i159 ] - %dec.i117 = add nsw i32 %58, -1 + %59 = phi i32 [ %.pre223, %lpad.i ], [ %dec.i.i, %lpad.i159 ] + %eh.lpad-body169 = phi { ptr, i32 } [ %58, %lpad.i ], [ %lpad.phi, %lpad.i159 ] + %dec.i117 = add nsw i32 %59, -1 store i32 %dec.i117, ptr %recursion_depth.i, align 4 br label %lpad.body if.end23.i: ; preds = %invoke.cont12.i.if.end23.i_crit_edge, %_ZN4absl18debugging_internalL17ParseOneCharTokenEPNS0_5StateEc.exit134.thread, %land.lhs.true14.i - %.pr.pre = phi i32 [ %.pr.pre.pre, %invoke.cont12.i.if.end23.i_crit_edge ], [ %dec.i90.i, %_ZN4absl18debugging_internalL17ParseOneCharTokenEPNS0_5StateEc.exit134.thread ], [ %.pr.pre.pre233, %land.lhs.true14.i ] + %.pr.pre = phi i32 [ %.pr.pre.pre, %invoke.cont12.i.if.end23.i_crit_edge ], [ %dec.i90.i, %_ZN4absl18debugging_internalL17ParseOneCharTokenEPNS0_5StateEc.exit134.thread ], [ %.pr.pre.pre229, %land.lhs.true14.i ] call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %parse_state, ptr noundef nonnull align 4 dereferenceable(16) %copy.i99, i64 16, i1 false) - %.pre229.pre = load i32, ptr %steps.i, align 8 + %.pre225.pre = load i32, ptr %steps.i, align 8 br label %lor.lhs.false47 invoke.cont45: ; preds = %land.lhs.true14.i - %dec.i115 = add nsw i32 %.pr.pre.pre233, -1 + %dec.i115 = add nsw i32 %.pr.pre.pre229, -1 store i32 %dec.i115, ptr %recursion_depth.i, align 4 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %copy.i99) br label %cleanup lor.lhs.false47: ; preds = %if.end23.i, %lor.lhs.false - %59 = phi i32 [ %inc2.i179, %lor.lhs.false ], [ %.pre229.pre, %if.end23.i ] - %60 = phi i32 [ %39, %lor.lhs.false ], [ %.pr.pre, %if.end23.i ] + %60 = phi i32 [ %inc2.i179, %lor.lhs.false ], [ %.pre225.pre, %if.end23.i ] + %61 = phi i32 [ %40, %lor.lhs.false ], [ %.pr.pre, %if.end23.i ] call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %copy.i99) - store i32 %60, ptr %recursion_depth.i, align 4 - %inc2.i193 = add nsw i32 %59, 1 + store i32 %61, ptr %recursion_depth.i, align 4 + %inc2.i193 = add nsw i32 %60, 1 store i32 %inc2.i193, ptr %steps.i, align 8 - %cmp.i185 = icmp sgt i32 %60, 256 - %cmp3.i188 = icmp sgt i32 %59, 131071 - %or.cond215 = select i1 %cmp.i185, i1 true, i1 %cmp3.i188 - br i1 %or.cond215, label %invoke.cont48.thread, label %if.end.i106 + %cmp.i185 = icmp sgt i32 %61, 256 + %cmp3.i188 = icmp sgt i32 %60, 131071 + %or.cond211 = select i1 %cmp.i185, i1 true, i1 %cmp3.i188 + br i1 %or.cond211, label %invoke.cont48.thread, label %if.end.i106 if.end.i106: ; preds = %lor.lhs.false47 %call1.i107 = invoke fastcc noundef zeroext i1 @_ZN4absl18debugging_internalL9ParseNameEPNS0_5StateE(ptr noundef nonnull %state) to label %invoke.cont48 unwind label %lpad.i108 lpad.i108: ; preds = %if.end.i106 - %61 = landingpad { ptr, i32 } + %62 = landingpad { ptr, i32 } cleanup - %62 = load i32, ptr %recursion_depth.i, align 4 - %dec.i183 = add nsw i32 %62, -1 + %63 = load i32, ptr %recursion_depth.i, align 4 + %dec.i183 = add nsw i32 %63, -1 store i32 %dec.i183, ptr %recursion_depth.i, align 4 br label %lpad.body invoke.cont48.thread: ; preds = %lor.lhs.false47 - %dec.i115211.pre-phi = add nsw i32 %60, -1 - store i32 %dec.i115211.pre-phi, ptr %recursion_depth.i, align 4 + %dec.i115207.pre-phi = add nsw i32 %61, -1 + store i32 %dec.i115207.pre-phi, ptr %recursion_depth.i, align 4 br label %lor.lhs.false50 invoke.cont48: ; preds = %if.end.i106 - %63 = load i32, ptr %recursion_depth.i, align 4 - %dec.i181 = add nsw i32 %63, -1 + %64 = load i32, ptr %recursion_depth.i, align 4 + %dec.i181 = add nsw i32 %64, -1 store i32 %dec.i181, ptr %recursion_depth.i, align 4 br i1 %call1.i107, label %cleanup, label %invoke.cont48.lor.lhs.false50_crit_edge invoke.cont48.lor.lhs.false50_crit_edge: ; preds = %invoke.cont48 - %.pre318 = load i32, ptr %steps.i, align 8 + %.pre314 = load i32, ptr %steps.i, align 8 br label %lor.lhs.false50 lor.lhs.false50: ; preds = %invoke.cont48.lor.lhs.false50_crit_edge, %invoke.cont48.thread - %64 = phi i32 [ %inc2.i193, %invoke.cont48.thread ], [ %.pre318, %invoke.cont48.lor.lhs.false50_crit_edge ] - %65 = phi i32 [ %dec.i115211.pre-phi, %invoke.cont48.thread ], [ %dec.i181, %invoke.cont48.lor.lhs.false50_crit_edge ] + %65 = phi i32 [ %inc2.i193, %invoke.cont48.thread ], [ %.pre314, %invoke.cont48.lor.lhs.false50_crit_edge ] + %66 = phi i32 [ %dec.i115207.pre-phi, %invoke.cont48.thread ], [ %dec.i181, %invoke.cont48.lor.lhs.false50_crit_edge ] call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %copy.i) - %inc.i.i255 = add nsw i32 %65, 1 - store i32 %inc.i.i255, ptr %recursion_depth.i, align 4 - %inc2.i.i257 = add nsw i32 %64, 1 - store i32 %inc2.i.i257, ptr %steps.i, align 8 - %cmp.i.i258 = icmp sgt i32 %65, 255 - %cmp3.i.i259 = icmp sgt i32 %64, 131071 - %or.cond.i260 = select i1 %cmp.i.i258, i1 true, i1 %cmp3.i.i259 - br i1 %or.cond.i260, label %lor.lhs.false53, label %if.end.i261 - -if.end.i261: ; preds = %lor.lhs.false50 + %inc.i.i251 = add nsw i32 %66, 1 + store i32 %inc.i.i251, ptr %recursion_depth.i, align 4 + %inc2.i.i253 = add nsw i32 %65, 1 + store i32 %inc2.i.i253, ptr %steps.i, align 8 + %cmp.i.i254 = icmp sgt i32 %66, 255 + %cmp3.i.i255 = icmp sgt i32 %65, 131071 + %or.cond.i256 = select i1 %cmp.i.i254, i1 true, i1 %cmp3.i.i255 + br i1 %or.cond.i256, label %lor.lhs.false53, label %if.end.i257 + +if.end.i257: ; preds = %lor.lhs.false50 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %copy.i, ptr noundef nonnull align 4 dereferenceable(16) %parse_state, i64 16, i1 false) - %inc.i.i.i262 = add nsw i32 %65, 2 - store i32 %inc.i.i.i262, ptr %recursion_depth.i, align 4 - %inc2.i.i.i263 = add nsw i32 %64, 2 - store i32 %inc2.i.i.i263, ptr %steps.i, align 8 - %cmp.i.i.i264 = icmp sgt i32 %65, 254 - %cmp3.i.i.i265 = icmp sgt i32 %64, 131070 - %or.cond.i.i266 = select i1 %cmp.i.i.i264, i1 true, i1 %cmp3.i.i.i265 - br i1 %or.cond.i.i266, label %_ZN4absl18debugging_internalL17ParseOneCharTokenEPNS0_5StateEc.exit.thread.i, label %if.end.i.i267 - -if.end.i.i267: ; preds = %if.end.i261 - %state.val.i.i268 = load ptr, ptr %state, align 8 - %state.val4.i.i269 = load i32, ptr %parse_state, align 4 - %idxprom.i.i.i270 = sext i32 %state.val4.i.i269 to i64 - %arrayidx.i.i.i271 = getelementptr inbounds i8, ptr %state.val.i.i268, i64 %idxprom.i.i.i270 - %66 = load i8, ptr %arrayidx.i.i.i271, align 1 - %cmp.i16.i = icmp eq i8 %66, 65 - br i1 %cmp.i16.i, label %land.lhs.true.i275, label %_ZN4absl18debugging_internalL17ParseOneCharTokenEPNS0_5StateEc.exit.thread.i - -_ZN4absl18debugging_internalL17ParseOneCharTokenEPNS0_5StateEc.exit.thread.i: ; preds = %if.end.i.i267, %if.end.i261 - store i32 %inc.i.i255, ptr %recursion_depth.i, align 4 + %inc.i.i.i258 = add nsw i32 %66, 2 + store i32 %inc.i.i.i258, ptr %recursion_depth.i, align 4 + %inc2.i.i.i259 = add nsw i32 %65, 2 + store i32 %inc2.i.i.i259, ptr %steps.i, align 8 + %cmp.i.i.i260 = icmp sgt i32 %66, 254 + %cmp3.i.i.i261 = icmp sgt i32 %65, 131070 + %or.cond.i.i262 = select i1 %cmp.i.i.i260, i1 true, i1 %cmp3.i.i.i261 + br i1 %or.cond.i.i262, label %_ZN4absl18debugging_internalL17ParseOneCharTokenEPNS0_5StateEc.exit.thread.i, label %if.end.i.i263 + +if.end.i.i263: ; preds = %if.end.i257 + %state.val.i.i264 = load ptr, ptr %state, align 8 + %state.val4.i.i265 = load i32, ptr %parse_state, align 4 + %idxprom.i.i.i266 = sext i32 %state.val4.i.i265 to i64 + %arrayidx.i.i.i267 = getelementptr inbounds i8, ptr %state.val.i.i264, i64 %idxprom.i.i.i266 + %67 = load i8, ptr %arrayidx.i.i.i267, align 1 + %cmp.i16.i = icmp eq i8 %67, 65 + br i1 %cmp.i16.i, label %land.lhs.true.i271, label %_ZN4absl18debugging_internalL17ParseOneCharTokenEPNS0_5StateEc.exit.thread.i + +_ZN4absl18debugging_internalL17ParseOneCharTokenEPNS0_5StateEc.exit.thread.i: ; preds = %if.end.i.i263, %if.end.i257 + store i32 %inc.i.i251, ptr %recursion_depth.i, align 4 br label %if.end11.i -land.lhs.true.i275: ; preds = %if.end.i.i267 - %inc.i17.i = add nsw i32 %state.val4.i.i269, 1 +land.lhs.true.i271: ; preds = %if.end.i.i263 + %inc.i17.i = add nsw i32 %state.val4.i.i265, 1 store i32 %inc.i17.i, ptr %parse_state, align 4 - store i32 %inc.i.i255, ptr %recursion_depth.i, align 4 - %inc2.i.i21.i = add nsw i32 %64, 3 + store i32 %inc.i.i251, ptr %recursion_depth.i, align 4 + %inc2.i.i21.i = add nsw i32 %65, 3 store i32 %inc2.i.i21.i, ptr %steps.i, align 8 - %cmp3.i.i23.i = icmp sgt i32 %64, 131069 + %cmp3.i.i23.i = icmp sgt i32 %65, 131069 br i1 %cmp3.i.i23.i, label %_ZN4absl18debugging_internalL11ParseNumberEPNS0_5StateEPi.exit.thread.i, label %if.end.i25.i -if.end.i25.i: ; preds = %land.lhs.true.i275 - %inc.i.i.i.i = add nsw i32 %65, 3 +if.end.i25.i: ; preds = %land.lhs.true.i271 + %inc.i.i.i.i = add nsw i32 %66, 3 store i32 %inc.i.i.i.i, ptr %recursion_depth.i, align 4 - %inc2.i.i.i.i = add nsw i32 %64, 4 + %inc2.i.i.i.i = add nsw i32 %65, 4 store i32 %inc2.i.i.i.i, ptr %steps.i, align 8 - %cmp.i.i.i.i = icmp sgt i32 %65, 253 - %cmp3.i.i.i.i = icmp eq i32 %64, 131069 + %cmp.i.i.i.i = icmp sgt i32 %66, 253 + %cmp3.i.i.i.i = icmp eq i32 %65, 131069 %or.cond.i.i.i = select i1 %cmp.i.i.i.i, i1 true, i1 %cmp3.i.i.i.i br i1 %or.cond.i.i.i, label %invoke.cont.i.i, label %if.end.i.i.i if.end.i.i.i: ; preds = %if.end.i25.i %idxprom.i.i.i.i = sext i32 %inc.i17.i to i64 - %arrayidx.i.i.i.i = getelementptr inbounds i8, ptr %state.val.i.i268, i64 %idxprom.i.i.i.i - %67 = load i8, ptr %arrayidx.i.i.i.i, align 1 - %cmp.i23.i.i = icmp eq i8 %67, 110 + %arrayidx.i.i.i.i = getelementptr inbounds i8, ptr %state.val.i.i264, i64 %idxprom.i.i.i.i + %68 = load i8, ptr %arrayidx.i.i.i.i, align 1 + %cmp.i23.i.i = icmp eq i8 %68, 110 br i1 %cmp.i23.i.i, label %if.then3.i.i.i, label %invoke.cont.i.i if.then3.i.i.i: ; preds = %if.end.i.i.i - %inc.i24.i.i = add nsw i32 %state.val4.i.i269, 2 + %inc.i24.i.i = add nsw i32 %state.val4.i.i265, 2 store i32 %inc.i24.i.i, ptr %parse_state, align 4 br label %invoke.cont.i.i invoke.cont.i.i: ; preds = %if.then3.i.i.i, %if.end.i.i.i, %if.end.i25.i %state.val20.i.i = phi i32 [ %inc.i24.i.i, %if.then3.i.i.i ], [ %inc.i17.i, %if.end.i.i.i ], [ %inc.i17.i, %if.end.i25.i ] - store i32 %inc.i.i.i262, ptr %recursion_depth.i, align 4 + store i32 %inc.i.i.i258, ptr %recursion_depth.i, align 4 %idxprom.i.i26.i = sext i32 %state.val20.i.i to i64 - %arrayidx.i.i27.i = getelementptr inbounds i8, ptr %state.val.i.i268, i64 %idxprom.i.i26.i - %68 = load i8, ptr %arrayidx.i.i27.i, align 1 - %69 = add i8 %68, -48 - %70 = icmp ult i8 %69, 10 - br i1 %70, label %if.then8.i.i, label %_ZN4absl18debugging_internalL11ParseNumberEPNS0_5StateEPi.exit.thread.i + %arrayidx.i.i27.i = getelementptr inbounds i8, ptr %state.val.i.i264, i64 %idxprom.i.i26.i + %69 = load i8, ptr %arrayidx.i.i27.i, align 1 + %70 = add i8 %69, -48 + %71 = icmp ult i8 %70, 10 + br i1 %71, label %if.then8.i.i, label %_ZN4absl18debugging_internalL11ParseNumberEPNS0_5StateEPi.exit.thread.i if.then8.i.i: ; preds = %invoke.cont.i.i, %if.then8.i.i %p.034.i.i = phi ptr [ %incdec.ptr.i.i, %if.then8.i.i ], [ %arrayidx.i.i27.i, %invoke.cont.i.i ] %incdec.ptr.i.i = getelementptr inbounds i8, ptr %p.034.i.i, i64 1 - %71 = load i8, ptr %incdec.ptr.i.i, align 1 - %72 = add i8 %71, -48 - %73 = icmp ult i8 %72, 10 - br i1 %73, label %if.then8.i.i, label %land.lhs.true4.i, !llvm.loop !12 - -_ZN4absl18debugging_internalL11ParseNumberEPNS0_5StateEPi.exit.thread.i: ; preds = %invoke.cont.i.i, %land.lhs.true.i275 - %74 = phi i32 [ 131073, %land.lhs.true.i275 ], [ %inc2.i.i.i.i, %invoke.cont.i.i ] - store i32 %inc.i.i255, ptr %recursion_depth.i, align 4 + %72 = load i8, ptr %incdec.ptr.i.i, align 1 + %73 = add i8 %72, -48 + %74 = icmp ult i8 %73, 10 + br i1 %74, label %if.then8.i.i, label %land.lhs.true4.i, !llvm.loop !12 + +_ZN4absl18debugging_internalL11ParseNumberEPNS0_5StateEPi.exit.thread.i: ; preds = %invoke.cont.i.i, %land.lhs.true.i271 + %75 = phi i32 [ 131073, %land.lhs.true.i271 ], [ %inc2.i.i.i.i, %invoke.cont.i.i ] + store i32 %inc.i.i251, ptr %recursion_depth.i, align 4 br label %if.end11.i land.lhs.true4.i: ; preds = %if.then8.i.i %sub.ptr.lhs.cast.i.i = ptrtoint ptr %incdec.ptr.i.i to i64 %sub.ptr.rhs.cast.i.i = ptrtoint ptr %arrayidx.i.i27.i to i64 %sub.ptr.sub.i.i = sub i64 %sub.ptr.lhs.cast.i.i, %sub.ptr.rhs.cast.i.i - %75 = trunc i64 %sub.ptr.sub.i.i to i32 - %conv23.i.i = add i32 %state.val20.i.i, %75 + %76 = trunc i64 %sub.ptr.sub.i.i to i32 + %conv23.i.i = add i32 %state.val20.i.i, %76 store i32 %conv23.i.i, ptr %parse_state, align 4 - store i32 %inc.i.i.i262, ptr %recursion_depth.i, align 4 - %inc2.i.i32.i = add nsw i32 %64, 5 + store i32 %inc.i.i.i258, ptr %recursion_depth.i, align 4 + %inc2.i.i32.i = add nsw i32 %65, 5 store i32 %inc2.i.i32.i, ptr %steps.i, align 8 - %cmp3.i.i34.i = icmp sgt i32 %64, 131067 + %cmp3.i.i34.i = icmp sgt i32 %65, 131067 br i1 %cmp3.i.i34.i, label %_ZN4absl18debugging_internalL17ParseOneCharTokenEPNS0_5StateEc.exit45.thread.i, label %if.end.i36.i if.end.i36.i: ; preds = %land.lhs.true4.i %idxprom.i.i39.i = sext i32 %conv23.i.i to i64 - %arrayidx.i.i40.i = getelementptr inbounds i8, ptr %state.val.i.i268, i64 %idxprom.i.i39.i - %76 = load i8, ptr %arrayidx.i.i40.i, align 1 - %cmp.i41.i = icmp eq i8 %76, 95 + %arrayidx.i.i40.i = getelementptr inbounds i8, ptr %state.val.i.i264, i64 %idxprom.i.i39.i + %77 = load i8, ptr %arrayidx.i.i40.i, align 1 + %cmp.i41.i = icmp eq i8 %77, 95 br i1 %cmp.i41.i, label %land.lhs.true7.i, label %_ZN4absl18debugging_internalL17ParseOneCharTokenEPNS0_5StateEc.exit45.thread.i _ZN4absl18debugging_internalL17ParseOneCharTokenEPNS0_5StateEc.exit45.thread.i: ; preds = %if.end.i36.i, %land.lhs.true4.i - store i32 %inc.i.i255, ptr %recursion_depth.i, align 4 + store i32 %inc.i.i251, ptr %recursion_depth.i, align 4 br label %if.end11.i land.lhs.true7.i: ; preds = %if.end.i36.i %inc.i44.i = add nsw i32 %conv23.i.i, 1 store i32 %inc.i44.i, ptr %parse_state, align 4 - store i32 %inc.i.i255, ptr %recursion_depth.i, align 4 + store i32 %inc.i.i251, ptr %recursion_depth.i, align 4 %call9.i = invoke fastcc noundef zeroext i1 @_ZN4absl18debugging_internalL9ParseTypeEPNS0_5StateE(ptr noundef nonnull %state) - to label %invoke.cont8.i unwind label %lpad.i273 + to label %invoke.cont8.i unwind label %lpad.i269 invoke.cont8.i: ; preds = %land.lhs.true7.i br i1 %call9.i, label %invoke.cont51.thread, label %invoke.cont8.if.end11_crit_edge.i @@ -4494,24 +4496,24 @@ invoke.cont8.if.end11_crit_edge.i: ; preds = %invoke.cont8.i %.pre88.i = load i32, ptr %steps.i, align 8 br label %if.end11.i -lpad.i273: ; preds = %land.lhs.true23.i, %land.lhs.true15.i, %land.lhs.true7.i - %77 = landingpad { ptr, i32 } +lpad.i269: ; preds = %land.lhs.true23.i, %land.lhs.true15.i, %land.lhs.true7.i + %78 = landingpad { ptr, i32 } cleanup - %78 = load i32, ptr %recursion_depth.i, align 4 - %dec.i.i274 = add nsw i32 %78, -1 - store i32 %dec.i.i274, ptr %recursion_depth.i, align 4 + %79 = load i32, ptr %recursion_depth.i, align 4 + %dec.i.i270 = add nsw i32 %79, -1 + store i32 %dec.i.i270, ptr %recursion_depth.i, align 4 br label %lpad.body if.end11.i: ; preds = %invoke.cont8.if.end11_crit_edge.i, %_ZN4absl18debugging_internalL17ParseOneCharTokenEPNS0_5StateEc.exit45.thread.i, %_ZN4absl18debugging_internalL11ParseNumberEPNS0_5StateEPi.exit.thread.i, %_ZN4absl18debugging_internalL17ParseOneCharTokenEPNS0_5StateEc.exit.thread.i - %79 = phi i32 [ %.pre88.i, %invoke.cont8.if.end11_crit_edge.i ], [ %inc2.i.i32.i, %_ZN4absl18debugging_internalL17ParseOneCharTokenEPNS0_5StateEc.exit45.thread.i ], [ %74, %_ZN4absl18debugging_internalL11ParseNumberEPNS0_5StateEPi.exit.thread.i ], [ %inc2.i.i.i263, %_ZN4absl18debugging_internalL17ParseOneCharTokenEPNS0_5StateEc.exit.thread.i ] - %80 = phi i32 [ %.pre.i, %invoke.cont8.if.end11_crit_edge.i ], [ %inc.i.i255, %_ZN4absl18debugging_internalL17ParseOneCharTokenEPNS0_5StateEc.exit45.thread.i ], [ %inc.i.i255, %_ZN4absl18debugging_internalL11ParseNumberEPNS0_5StateEPi.exit.thread.i ], [ %inc.i.i255, %_ZN4absl18debugging_internalL17ParseOneCharTokenEPNS0_5StateEc.exit.thread.i ] + %80 = phi i32 [ %.pre88.i, %invoke.cont8.if.end11_crit_edge.i ], [ %inc2.i.i32.i, %_ZN4absl18debugging_internalL17ParseOneCharTokenEPNS0_5StateEc.exit45.thread.i ], [ %75, %_ZN4absl18debugging_internalL11ParseNumberEPNS0_5StateEPi.exit.thread.i ], [ %inc2.i.i.i259, %_ZN4absl18debugging_internalL17ParseOneCharTokenEPNS0_5StateEc.exit.thread.i ] + %81 = phi i32 [ %.pre.i, %invoke.cont8.if.end11_crit_edge.i ], [ %inc.i.i251, %_ZN4absl18debugging_internalL17ParseOneCharTokenEPNS0_5StateEc.exit45.thread.i ], [ %inc.i.i251, %_ZN4absl18debugging_internalL11ParseNumberEPNS0_5StateEPi.exit.thread.i ], [ %inc.i.i251, %_ZN4absl18debugging_internalL17ParseOneCharTokenEPNS0_5StateEc.exit.thread.i ] call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %parse_state, ptr noundef nonnull align 4 dereferenceable(16) %copy.i, i64 16, i1 false) - %inc.i.i48.i = add nsw i32 %80, 1 + %inc.i.i48.i = add nsw i32 %81, 1 store i32 %inc.i.i48.i, ptr %recursion_depth.i, align 4 - %inc2.i.i50.i = add nsw i32 %79, 1 + %inc2.i.i50.i = add nsw i32 %80, 1 store i32 %inc2.i.i50.i, ptr %steps.i, align 8 - %cmp.i.i51.i = icmp sgt i32 %80, 255 - %cmp3.i.i52.i = icmp sgt i32 %79, 131071 + %cmp.i.i51.i = icmp sgt i32 %81, 255 + %cmp3.i.i52.i = icmp sgt i32 %80, 131071 %or.cond.i53.i = select i1 %cmp.i.i51.i, i1 true, i1 %cmp3.i.i52.i br i1 %or.cond.i53.i, label %if.end27.sink.split.i, label %if.end.i54.i @@ -4520,26 +4522,26 @@ if.end.i54.i: ; preds = %if.end11.i %state.val4.i56.i = load i32, ptr %parse_state, align 4 %idxprom.i.i57.i = sext i32 %state.val4.i56.i to i64 %arrayidx.i.i58.i = getelementptr inbounds i8, ptr %state.val.i55.i, i64 %idxprom.i.i57.i - %81 = load i8, ptr %arrayidx.i.i58.i, align 1 - %cmp.i59.i = icmp eq i8 %81, 65 + %82 = load i8, ptr %arrayidx.i.i58.i, align 1 + %cmp.i59.i = icmp eq i8 %82, 65 br i1 %cmp.i59.i, label %land.lhs.true15.i, label %if.end27.sink.split.i land.lhs.true15.i: ; preds = %if.end.i54.i %inc.i62.i = add nsw i32 %state.val4.i56.i, 1 store i32 %inc.i62.i, ptr %parse_state, align 4 - store i32 %80, ptr %recursion_depth.i, align 4 + store i32 %81, ptr %recursion_depth.i, align 4 %call17.i = invoke fastcc noundef zeroext i1 @_ZN4absl18debugging_internalL15ParseExpressionEPNS0_5StateE(ptr noundef nonnull %state) - to label %invoke.cont16.i unwind label %lpad.i273 + to label %invoke.cont16.i unwind label %lpad.i269 invoke.cont16.i: ; preds = %land.lhs.true15.i - %82 = load i32, ptr %recursion_depth.i, align 4 - %inc.i.i65.i = add nsw i32 %82, 1 + %83 = load i32, ptr %recursion_depth.i, align 4 + %inc.i.i65.i = add nsw i32 %83, 1 store i32 %inc.i.i65.i, ptr %recursion_depth.i, align 4 - %83 = load i32, ptr %steps.i, align 8 - %inc2.i.i67.i = add nsw i32 %83, 1 + %84 = load i32, ptr %steps.i, align 8 + %inc2.i.i67.i = add nsw i32 %84, 1 store i32 %inc2.i.i67.i, ptr %steps.i, align 8 - %cmp.i.i68.i = icmp sgt i32 %82, 255 - %cmp3.i.i69.i = icmp sgt i32 %83, 131071 + %cmp.i.i68.i = icmp sgt i32 %83, 255 + %cmp3.i.i69.i = icmp sgt i32 %84, 131071 %or.cond.i70.i = select i1 %cmp.i.i68.i, i1 true, i1 %cmp3.i.i69.i br i1 %or.cond.i70.i, label %if.end27.sink.split.i, label %if.end.i71.i @@ -4548,127 +4550,127 @@ if.end.i71.i: ; preds = %invoke.cont16.i %state.val4.i73.i = load i32, ptr %parse_state, align 4 %idxprom.i.i74.i = sext i32 %state.val4.i73.i to i64 %arrayidx.i.i75.i = getelementptr inbounds i8, ptr %state.val.i72.i, i64 %idxprom.i.i74.i - %84 = load i8, ptr %arrayidx.i.i75.i, align 1 - %cmp.i76.i = icmp eq i8 %84, 95 + %85 = load i8, ptr %arrayidx.i.i75.i, align 1 + %cmp.i76.i = icmp eq i8 %85, 95 br i1 %cmp.i76.i, label %land.lhs.true23.i, label %if.end27.sink.split.i land.lhs.true23.i: ; preds = %if.end.i71.i %inc.i79.i = add nsw i32 %state.val4.i73.i, 1 store i32 %inc.i79.i, ptr %parse_state, align 4 - store i32 %82, ptr %recursion_depth.i, align 4 + store i32 %83, ptr %recursion_depth.i, align 4 %call25.i = invoke fastcc noundef zeroext i1 @_ZN4absl18debugging_internalL9ParseTypeEPNS0_5StateE(ptr noundef nonnull %state) - to label %invoke.cont24.i unwind label %lpad.i273 + to label %invoke.cont24.i unwind label %lpad.i269 invoke.cont24.i: ; preds = %land.lhs.true23.i br i1 %call25.i, label %invoke.cont51.thread, label %invoke.cont24.i.if.end27.i_crit_edge invoke.cont24.i.if.end27.i_crit_edge: ; preds = %invoke.cont24.i - %.pre319.pre = load i32, ptr %recursion_depth.i, align 4 - %.pre320.pre = load i32, ptr %steps.i, align 8 + %.pre315.pre = load i32, ptr %recursion_depth.i, align 4 + %.pre316.pre = load i32, ptr %steps.i, align 8 br label %if.end27.i if.end27.sink.split.i: ; preds = %if.end.i71.i, %invoke.cont16.i, %if.end.i54.i, %if.end11.i - %.pre320325 = phi i32 [ %inc2.i.i50.i, %if.end.i54.i ], [ %inc2.i.i50.i, %if.end11.i ], [ %inc2.i.i67.i, %if.end.i71.i ], [ %inc2.i.i67.i, %invoke.cont16.i ] - %.sink.i = phi i32 [ %80, %if.end.i54.i ], [ %80, %if.end11.i ], [ %82, %if.end.i71.i ], [ %82, %invoke.cont16.i ] + %.pre316321 = phi i32 [ %inc2.i.i50.i, %if.end.i54.i ], [ %inc2.i.i50.i, %if.end11.i ], [ %inc2.i.i67.i, %if.end.i71.i ], [ %inc2.i.i67.i, %invoke.cont16.i ] + %.sink.i = phi i32 [ %81, %if.end.i54.i ], [ %81, %if.end11.i ], [ %83, %if.end.i71.i ], [ %83, %invoke.cont16.i ] store i32 %.sink.i, ptr %recursion_depth.i, align 4 br label %if.end27.i if.end27.i: ; preds = %invoke.cont24.i.if.end27.i_crit_edge, %if.end27.sink.split.i - %.pre320 = phi i32 [ %.pre320.pre, %invoke.cont24.i.if.end27.i_crit_edge ], [ %.pre320325, %if.end27.sink.split.i ] - %.pre319 = phi i32 [ %.pre319.pre, %invoke.cont24.i.if.end27.i_crit_edge ], [ %.sink.i, %if.end27.sink.split.i ] + %.pre316 = phi i32 [ %.pre316.pre, %invoke.cont24.i.if.end27.i_crit_edge ], [ %.pre316321, %if.end27.sink.split.i ] + %.pre315 = phi i32 [ %.pre315.pre, %invoke.cont24.i.if.end27.i_crit_edge ], [ %.sink.i, %if.end27.sink.split.i ] call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %parse_state, ptr noundef nonnull align 4 dereferenceable(16) %copy.i, i64 16, i1 false) br label %lor.lhs.false53 invoke.cont51.thread: ; preds = %invoke.cont8.i, %invoke.cont24.i - %85 = load i32, ptr %recursion_depth.i, align 4 - %dec.i82.i308 = add nsw i32 %85, -1 - store i32 %dec.i82.i308, ptr %recursion_depth.i, align 4 + %86 = load i32, ptr %recursion_depth.i, align 4 + %dec.i82.i304 = add nsw i32 %86, -1 + store i32 %dec.i82.i304, ptr %recursion_depth.i, align 4 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %copy.i) br label %cleanup lor.lhs.false53: ; preds = %lor.lhs.false50, %if.end27.i - %86 = phi i32 [ %inc2.i.i257, %lor.lhs.false50 ], [ %.pre320, %if.end27.i ] - %87 = phi i32 [ %inc.i.i255, %lor.lhs.false50 ], [ %.pre319, %if.end27.i ] + %87 = phi i32 [ %inc2.i.i253, %lor.lhs.false50 ], [ %.pre316, %if.end27.i ] + %88 = phi i32 [ %inc.i.i251, %lor.lhs.false50 ], [ %.pre315, %if.end27.i ] call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %copy.i) - call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %copy.i278) - store i32 %87, ptr %recursion_depth.i, align 4 - %inc2.i.i282 = add nsw i32 %86, 1 - store i32 %inc2.i.i282, ptr %steps.i, align 8 - %cmp.i.i283 = icmp sgt i32 %87, 256 - %cmp3.i.i284 = icmp sgt i32 %86, 131071 - %or.cond.i285 = select i1 %cmp.i.i283, i1 true, i1 %cmp3.i.i284 - br i1 %or.cond.i285, label %lor.lhs.false56, label %if.end.i286 - -if.end.i286: ; preds = %lor.lhs.false53 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %copy.i278, ptr noundef nonnull align 4 dereferenceable(16) %parse_state, i64 16, i1 false) - %inc.i.i.i288 = add nsw i32 %87, 1 - store i32 %inc.i.i.i288, ptr %recursion_depth.i, align 4 - %inc2.i.i.i289 = add nsw i32 %86, 2 - store i32 %inc2.i.i.i289, ptr %steps.i, align 8 - %cmp.i.i.i290 = icmp sgt i32 %87, 255 - %cmp3.i.i.i291 = icmp sgt i32 %86, 131070 - %or.cond.i.i292 = select i1 %cmp.i.i.i290, i1 true, i1 %cmp3.i.i.i291 - br i1 %or.cond.i.i292, label %_ZN4absl18debugging_internalL17ParseOneCharTokenEPNS0_5StateEc.exit.thread.i298, label %if.end.i.i293 - -if.end.i.i293: ; preds = %if.end.i286 - %state.val.i.i294 = load ptr, ptr %state, align 8 - %state.val4.i.i295 = load i32, ptr %parse_state, align 4 - %idxprom.i.i.i296 = sext i32 %state.val4.i.i295 to i64 - %arrayidx.i.i.i297 = getelementptr inbounds i8, ptr %state.val.i.i294, i64 %idxprom.i.i.i296 - %88 = load i8, ptr %arrayidx.i.i.i297, align 1 - %cmp.i10.i = icmp eq i8 %88, 77 - br i1 %cmp.i10.i, label %land.lhs.true.i300, label %_ZN4absl18debugging_internalL17ParseOneCharTokenEPNS0_5StateEc.exit.thread.i298 - -_ZN4absl18debugging_internalL17ParseOneCharTokenEPNS0_5StateEc.exit.thread.i298: ; preds = %if.end.i.i293, %if.end.i286 - store i32 %87, ptr %recursion_depth.i, align 4 + call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %copy.i274) + store i32 %88, ptr %recursion_depth.i, align 4 + %inc2.i.i278 = add nsw i32 %87, 1 + store i32 %inc2.i.i278, ptr %steps.i, align 8 + %cmp.i.i279 = icmp sgt i32 %88, 256 + %cmp3.i.i280 = icmp sgt i32 %87, 131071 + %or.cond.i281 = select i1 %cmp.i.i279, i1 true, i1 %cmp3.i.i280 + br i1 %or.cond.i281, label %lor.lhs.false56, label %if.end.i282 + +if.end.i282: ; preds = %lor.lhs.false53 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %copy.i274, ptr noundef nonnull align 4 dereferenceable(16) %parse_state, i64 16, i1 false) + %inc.i.i.i284 = add nsw i32 %88, 1 + store i32 %inc.i.i.i284, ptr %recursion_depth.i, align 4 + %inc2.i.i.i285 = add nsw i32 %87, 2 + store i32 %inc2.i.i.i285, ptr %steps.i, align 8 + %cmp.i.i.i286 = icmp sgt i32 %88, 255 + %cmp3.i.i.i287 = icmp sgt i32 %87, 131070 + %or.cond.i.i288 = select i1 %cmp.i.i.i286, i1 true, i1 %cmp3.i.i.i287 + br i1 %or.cond.i.i288, label %_ZN4absl18debugging_internalL17ParseOneCharTokenEPNS0_5StateEc.exit.thread.i294, label %if.end.i.i289 + +if.end.i.i289: ; preds = %if.end.i282 + %state.val.i.i290 = load ptr, ptr %state, align 8 + %state.val4.i.i291 = load i32, ptr %parse_state, align 4 + %idxprom.i.i.i292 = sext i32 %state.val4.i.i291 to i64 + %arrayidx.i.i.i293 = getelementptr inbounds i8, ptr %state.val.i.i290, i64 %idxprom.i.i.i292 + %89 = load i8, ptr %arrayidx.i.i.i293, align 1 + %cmp.i10.i = icmp eq i8 %89, 77 + br i1 %cmp.i10.i, label %land.lhs.true.i296, label %_ZN4absl18debugging_internalL17ParseOneCharTokenEPNS0_5StateEc.exit.thread.i294 + +_ZN4absl18debugging_internalL17ParseOneCharTokenEPNS0_5StateEc.exit.thread.i294: ; preds = %if.end.i.i289, %if.end.i282 + store i32 %88, ptr %recursion_depth.i, align 4 br label %if.end8.i -land.lhs.true.i300: ; preds = %if.end.i.i293 - %inc.i11.i = add nsw i32 %state.val4.i.i295, 1 +land.lhs.true.i296: ; preds = %if.end.i.i289 + %inc.i11.i = add nsw i32 %state.val4.i.i291, 1 store i32 %inc.i11.i, ptr %parse_state, align 4 - store i32 %87, ptr %recursion_depth.i, align 4 + store i32 %88, ptr %recursion_depth.i, align 4 %call3.i = invoke fastcc noundef zeroext i1 @_ZN4absl18debugging_internalL9ParseTypeEPNS0_5StateE(ptr noundef nonnull %state) - to label %invoke.cont2.i303 unwind label %lpad.i301 + to label %invoke.cont2.i299 unwind label %lpad.i297 -invoke.cont2.i303: ; preds = %land.lhs.true.i300 - br i1 %call3.i, label %land.lhs.true4.i304, label %invoke.cont2.i303.if.end8.i_crit_edge +invoke.cont2.i299: ; preds = %land.lhs.true.i296 + br i1 %call3.i, label %land.lhs.true4.i300, label %invoke.cont2.i299.if.end8.i_crit_edge -invoke.cont2.i303.if.end8.i_crit_edge: ; preds = %invoke.cont2.i303 - %.pre321.pre = load i32, ptr %recursion_depth.i, align 4 +invoke.cont2.i299.if.end8.i_crit_edge: ; preds = %invoke.cont2.i299 + %.pre317.pre = load i32, ptr %recursion_depth.i, align 4 br label %if.end8.i -land.lhs.true4.i304: ; preds = %invoke.cont2.i303 +land.lhs.true4.i300: ; preds = %invoke.cont2.i299 %call6.i = invoke fastcc noundef zeroext i1 @_ZN4absl18debugging_internalL9ParseTypeEPNS0_5StateE(ptr noundef nonnull %state) - to label %invoke.cont5.i unwind label %lpad.i301 + to label %invoke.cont5.i unwind label %lpad.i297 -invoke.cont5.i: ; preds = %land.lhs.true4.i304 - %.pre321.pre326 = load i32, ptr %recursion_depth.i, align 4 +invoke.cont5.i: ; preds = %land.lhs.true4.i300 + %.pre317.pre322 = load i32, ptr %recursion_depth.i, align 4 br i1 %call6.i, label %invoke.cont54, label %if.end8.i -lpad.i301: ; preds = %land.lhs.true4.i304, %land.lhs.true.i300 - %89 = landingpad { ptr, i32 } +lpad.i297: ; preds = %land.lhs.true4.i300, %land.lhs.true.i296 + %90 = landingpad { ptr, i32 } cleanup - %90 = load i32, ptr %recursion_depth.i, align 4 - %dec.i.i302 = add nsw i32 %90, -1 - store i32 %dec.i.i302, ptr %recursion_depth.i, align 4 + %91 = load i32, ptr %recursion_depth.i, align 4 + %dec.i.i298 = add nsw i32 %91, -1 + store i32 %dec.i.i298, ptr %recursion_depth.i, align 4 br label %lpad.body -if.end8.i: ; preds = %invoke.cont2.i303.if.end8.i_crit_edge, %invoke.cont5.i, %_ZN4absl18debugging_internalL17ParseOneCharTokenEPNS0_5StateEc.exit.thread.i298 - %.pre321 = phi i32 [ %.pre321.pre, %invoke.cont2.i303.if.end8.i_crit_edge ], [ %.pre321.pre326, %invoke.cont5.i ], [ %87, %_ZN4absl18debugging_internalL17ParseOneCharTokenEPNS0_5StateEc.exit.thread.i298 ] - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %parse_state, ptr noundef nonnull align 4 dereferenceable(16) %copy.i278, i64 16, i1 false) +if.end8.i: ; preds = %invoke.cont2.i299.if.end8.i_crit_edge, %invoke.cont5.i, %_ZN4absl18debugging_internalL17ParseOneCharTokenEPNS0_5StateEc.exit.thread.i294 + %.pre317 = phi i32 [ %.pre317.pre, %invoke.cont2.i299.if.end8.i_crit_edge ], [ %.pre317.pre322, %invoke.cont5.i ], [ %88, %_ZN4absl18debugging_internalL17ParseOneCharTokenEPNS0_5StateEc.exit.thread.i294 ] + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %parse_state, ptr noundef nonnull align 4 dereferenceable(16) %copy.i274, i64 16, i1 false) br label %lor.lhs.false56 invoke.cont54: ; preds = %invoke.cont5.i - %dec.i14.i = add nsw i32 %.pre321.pre326, -1 + %dec.i14.i = add nsw i32 %.pre317.pre322, -1 store i32 %dec.i14.i, ptr %recursion_depth.i, align 4 - call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %copy.i278) + call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %copy.i274) br label %cleanup lor.lhs.false56: ; preds = %if.end8.i, %lor.lhs.false53 - %dec.i14.i310.pre-phi.in = phi i32 [ %.pre321, %if.end8.i ], [ %87, %lor.lhs.false53 ] - %dec.i14.i310.pre-phi = add nsw i32 %dec.i14.i310.pre-phi.in, -1 - store i32 %dec.i14.i310.pre-phi, ptr %recursion_depth.i, align 4 - call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %copy.i278) + %dec.i14.i306.pre-phi.in = phi i32 [ %.pre317, %if.end8.i ], [ %88, %lor.lhs.false53 ] + %dec.i14.i306.pre-phi = add nsw i32 %dec.i14.i306.pre-phi.in, -1 + store i32 %dec.i14.i306.pre-phi, ptr %recursion_depth.i, align 4 + call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %copy.i274) %call58 = invoke fastcc noundef zeroext i1 @_ZN4absl18debugging_internalL13ParseDecltypeEPNS0_5StateE(ptr noundef nonnull %state) to label %invoke.cont57 unwind label %lpad @@ -4680,37 +4682,37 @@ lor.lhs.false59: ; preds = %invoke.cont57 br i1 %call61, label %cleanup, label %if.end63 if.end63: ; preds = %lor.lhs.false59 - %91 = load i32, ptr %recursion_depth.i, align 4 - %inc.i.i331 = add nsw i32 %91, 1 - store i32 %inc.i.i331, ptr %recursion_depth.i, align 4 - %92 = load i32, ptr %steps.i, align 8 - %inc2.i.i332 = add nsw i32 %92, 1 - store i32 %inc2.i.i332, ptr %steps.i, align 8 - %cmp.i.i333 = icmp sgt i32 %91, 255 - %cmp3.i.i334 = icmp sgt i32 %92, 131071 - %or.cond.i335 = select i1 %cmp.i.i333, i1 true, i1 %cmp3.i.i334 - br i1 %or.cond.i335, label %_ZN4absl18debugging_internalL26ParseTemplateTemplateParamEPNS0_5StateE.exit.thread340, label %if.end.i336 - -_ZN4absl18debugging_internalL26ParseTemplateTemplateParamEPNS0_5StateE.exit.thread340: ; preds = %if.end63 - store i32 %91, ptr %recursion_depth.i, align 4 + %92 = load i32, ptr %recursion_depth.i, align 4 + %inc.i.i327 = add nsw i32 %92, 1 + store i32 %inc.i.i327, ptr %recursion_depth.i, align 4 + %93 = load i32, ptr %steps.i, align 8 + %inc2.i.i328 = add nsw i32 %93, 1 + store i32 %inc2.i.i328, ptr %steps.i, align 8 + %cmp.i.i329 = icmp sgt i32 %92, 255 + %cmp3.i.i330 = icmp sgt i32 %93, 131071 + %or.cond.i331 = select i1 %cmp.i.i329, i1 true, i1 %cmp3.i.i330 + br i1 %or.cond.i331, label %_ZN4absl18debugging_internalL26ParseTemplateTemplateParamEPNS0_5StateE.exit.thread336, label %if.end.i332 + +_ZN4absl18debugging_internalL26ParseTemplateTemplateParamEPNS0_5StateE.exit.thread336: ; preds = %if.end63 + store i32 %92, ptr %recursion_depth.i, align 4 br label %if.end70 -if.end.i336: ; preds = %if.end63 +if.end.i332: ; preds = %if.end63 %call1.i = tail call fastcc noundef zeroext i1 @_ZN4absl18debugging_internalL18ParseTemplateParamEPNS0_5StateE(ptr noundef nonnull %state) br i1 %call1.i, label %_ZN4absl18debugging_internalL26ParseTemplateTemplateParamEPNS0_5StateE.exit.thread, label %_ZN4absl18debugging_internalL26ParseTemplateTemplateParamEPNS0_5StateE.exit -_ZN4absl18debugging_internalL26ParseTemplateTemplateParamEPNS0_5StateE.exit.thread: ; preds = %if.end.i336 - %93 = load i32, ptr %recursion_depth.i, align 4 - %dec.i9.i339 = add nsw i32 %93, -1 - store i32 %dec.i9.i339, ptr %recursion_depth.i, align 4 +_ZN4absl18debugging_internalL26ParseTemplateTemplateParamEPNS0_5StateE.exit.thread: ; preds = %if.end.i332 + %94 = load i32, ptr %recursion_depth.i, align 4 + %dec.i9.i335 = add nsw i32 %94, -1 + store i32 %dec.i9.i335, ptr %recursion_depth.i, align 4 br label %land.lhs.true66 -_ZN4absl18debugging_internalL26ParseTemplateTemplateParamEPNS0_5StateE.exit: ; preds = %if.end.i336 - %call3.i337 = tail call fastcc noundef zeroext i1 @_ZN4absl18debugging_internalL17ParseSubstitutionEPNS0_5StateEb(ptr noundef nonnull %state, i1 noundef zeroext false) - %94 = load i32, ptr %recursion_depth.i, align 4 - %dec.i9.i = add nsw i32 %94, -1 +_ZN4absl18debugging_internalL26ParseTemplateTemplateParamEPNS0_5StateE.exit: ; preds = %if.end.i332 + %call3.i333 = tail call fastcc noundef zeroext i1 @_ZN4absl18debugging_internalL17ParseSubstitutionEPNS0_5StateEb(ptr noundef nonnull %state, i1 noundef zeroext false) + %95 = load i32, ptr %recursion_depth.i, align 4 + %dec.i9.i = add nsw i32 %95, -1 store i32 %dec.i9.i, ptr %recursion_depth.i, align 4 - br i1 %call3.i337, label %land.lhs.true66, label %if.end70 + br i1 %call3.i333, label %land.lhs.true66, label %if.end70 land.lhs.true66: ; preds = %_ZN4absl18debugging_internalL26ParseTemplateTemplateParamEPNS0_5StateE.exit.thread, %_ZN4absl18debugging_internalL26ParseTemplateTemplateParamEPNS0_5StateE.exit %call68 = invoke fastcc noundef zeroext i1 @_ZN4absl18debugging_internalL17ParseTemplateArgsEPNS0_5StateE(ptr noundef nonnull %state) @@ -4719,7 +4721,7 @@ land.lhs.true66: ; preds = %_ZN4absl18debugging invoke.cont67: ; preds = %land.lhs.true66 br i1 %call68, label %cleanup, label %if.end70 -if.end70: ; preds = %_ZN4absl18debugging_internalL26ParseTemplateTemplateParamEPNS0_5StateE.exit.thread340, %invoke.cont67, %_ZN4absl18debugging_internalL26ParseTemplateTemplateParamEPNS0_5StateE.exit +if.end70: ; preds = %_ZN4absl18debugging_internalL26ParseTemplateTemplateParamEPNS0_5StateE.exit.thread336, %invoke.cont67, %_ZN4absl18debugging_internalL26ParseTemplateTemplateParamEPNS0_5StateE.exit call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %parse_state, ptr noundef nonnull align 4 dereferenceable(16) %copy, i64 16, i1 false) %call73 = tail call fastcc noundef zeroext i1 @_ZN4absl18debugging_internalL18ParseTemplateParamEPNS0_5StateE(ptr noundef nonnull %state) br i1 %call73, label %cleanup, label %if.end75 @@ -4742,8 +4744,8 @@ cleanup.sink.split: ; preds = %if.end75, %land.lhs cleanup: ; preds = %invoke.cont54, %invoke.cont51.thread, %entry, %invoke.cont45, %_ZN4absl18debugging_internalL16ParseBuiltinTypeEPNS0_5StateE.exit.thread, %cleanup.sink.split, %land.lhs.true81, %if.end70, %invoke.cont67, %invoke.cont48, %invoke.cont57, %lor.lhs.false59, %invoke.cont38, %invoke.cont27, %invoke.cont15, %invoke.cont3 %retval.0 = phi i1 [ true, %invoke.cont3 ], [ true, %invoke.cont15 ], [ true, %invoke.cont27 ], [ true, %invoke.cont38 ], [ true, %lor.lhs.false59 ], [ true, %invoke.cont57 ], [ true, %invoke.cont54 ], [ true, %invoke.cont48 ], [ true, %invoke.cont45 ], [ true, %invoke.cont67 ], [ true, %if.end70 ], [ true, %land.lhs.true81 ], [ false, %cleanup.sink.split ], [ true, %_ZN4absl18debugging_internalL16ParseBuiltinTypeEPNS0_5StateE.exit.thread ], [ false, %entry ], [ true, %invoke.cont51.thread ] - %95 = load i32, ptr %recursion_depth.i, align 4 - %dec.i113 = add nsw i32 %95, -1 + %96 = load i32, ptr %recursion_depth.i, align 4 + %dec.i113 = add nsw i32 %96, -1 store i32 %dec.i113, ptr %recursion_depth.i, align 4 ret i1 %retval.0 } diff --git a/bench/diesel-rs/optimized/ejac3nrysber2ti.ll b/bench/diesel-rs/optimized/ejac3nrysber2ti.ll index c9fee00df02..64136e883eb 100644 --- a/bench/diesel-rs/optimized/ejac3nrysber2ti.ll +++ b/bench/diesel-rs/optimized/ejac3nrysber2ti.ll @@ -2698,9 +2698,10 @@ define internal noundef zeroext i1 @_ZN4core4iter6traits10exact_size17ExactSizeI %9 = getelementptr inbounds i8, ptr %0, i64 16 %.val.i = load ptr, ptr %9, align 8, !alias.scope !577, !noundef !7 %10 = icmp ne ptr %.val.i, null - %spec.select.i.i.i.neg = sext i1 %10 to i64 - %11 = icmp eq i64 %8, %spec.select.i.i.i.neg - ret i1 %11 + %spec.select.i.i.i = zext i1 %10 to i64 + %11 = or i64 %8, %spec.select.i.i.i + %12 = icmp eq i64 %11, 0 + ret i1 %12 } ; Function Attrs: inlinehint mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(argmem: read) uwtable @@ -2715,9 +2716,10 @@ define internal noundef zeroext i1 @_ZN4core4iter6traits10exact_size17ExactSizeI %9 = getelementptr inbounds i8, ptr %0, i64 16 %.val.i = load ptr, ptr %9, align 8, !alias.scope !583, !noundef !7 %10 = icmp ne ptr %.val.i, null - %spec.select.i.i.i.neg = sext i1 %10 to i64 - %11 = icmp eq i64 %8, %spec.select.i.i.i.neg - ret i1 %11 + %spec.select.i.i.i = zext i1 %10 to i64 + %11 = or i64 %8, %spec.select.i.i.i + %12 = icmp eq i64 %11, 0 + ret i1 %12 } ; Function Attrs: inlinehint mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(argmem: read) uwtable @@ -2732,9 +2734,10 @@ define internal noundef zeroext i1 @_ZN4core4iter6traits10exact_size17ExactSizeI %9 = getelementptr inbounds i8, ptr %0, i64 16 %.val.i = load ptr, ptr %9, align 8, !alias.scope !589, !noundef !7 %10 = icmp ne ptr %.val.i, null - %spec.select.i.i.i.neg = sext i1 %10 to i64 - %11 = icmp eq i64 %8, %spec.select.i.i.i.neg - ret i1 %11 + %spec.select.i.i.i = zext i1 %10 to i64 + %11 = or i64 %8, %spec.select.i.i.i + %12 = icmp eq i64 %11, 0 + ret i1 %12 } ; Function Attrs: inlinehint mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(argmem: read) uwtable @@ -2749,9 +2752,10 @@ define internal noundef zeroext i1 @_ZN4core4iter6traits10exact_size17ExactSizeI %9 = getelementptr inbounds i8, ptr %0, i64 16 %.val.i = load ptr, ptr %9, align 8, !alias.scope !595, !noundef !7 %10 = icmp ne ptr %.val.i, null - %spec.select.i.i.i.neg = sext i1 %10 to i64 - %11 = icmp eq i64 %8, %spec.select.i.i.i.neg - ret i1 %11 + %spec.select.i.i.i = zext i1 %10 to i64 + %11 = or i64 %8, %spec.select.i.i.i + %12 = icmp eq i64 %11, 0 + ret i1 %12 } ; Function Attrs: inlinehint mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(argmem: read) uwtable @@ -2766,9 +2770,10 @@ define internal noundef zeroext i1 @_ZN4core4iter6traits10exact_size17ExactSizeI %9 = getelementptr inbounds i8, ptr %0, i64 16 %.val.i = load ptr, ptr %9, align 8, !alias.scope !601, !noundef !7 %10 = icmp ne ptr %.val.i, null - %spec.select.i.i.i.neg = sext i1 %10 to i64 - %11 = icmp eq i64 %8, %spec.select.i.i.i.neg - ret i1 %11 + %spec.select.i.i.i = zext i1 %10 to i64 + %11 = or i64 %8, %spec.select.i.i.i + %12 = icmp eq i64 %11, 0 + ret i1 %12 } ; Function Attrs: inlinehint mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(argmem: read) uwtable @@ -2783,9 +2788,10 @@ define internal noundef zeroext i1 @_ZN4core4iter6traits10exact_size17ExactSizeI %9 = getelementptr inbounds i8, ptr %0, i64 16 %.val.i = load ptr, ptr %9, align 8, !alias.scope !607, !noundef !7 %10 = icmp ne ptr %.val.i, null - %spec.select.i.i.i.neg = sext i1 %10 to i64 - %11 = icmp eq i64 %8, %spec.select.i.i.i.neg - ret i1 %11 + %spec.select.i.i.i = zext i1 %10 to i64 + %11 = or i64 %8, %spec.select.i.i.i + %12 = icmp eq i64 %11, 0 + ret i1 %12 } ; Function Attrs: inlinehint mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(argmem: read) uwtable @@ -2800,9 +2806,10 @@ define internal noundef zeroext i1 @_ZN4core4iter6traits10exact_size17ExactSizeI %9 = getelementptr inbounds i8, ptr %0, i64 16 %.val.i = load ptr, ptr %9, align 8, !alias.scope !613, !noundef !7 %10 = icmp ne ptr %.val.i, null - %spec.select.i.i.i.neg = sext i1 %10 to i64 - %11 = icmp eq i64 %8, %spec.select.i.i.i.neg - ret i1 %11 + %spec.select.i.i.i = zext i1 %10 to i64 + %11 = or i64 %8, %spec.select.i.i.i + %12 = icmp eq i64 %11, 0 + ret i1 %12 } ; Function Attrs: inlinehint nofree norecurse nosync nounwind nonlazybind memory(argmem: readwrite) uwtable diff --git a/bench/eastl/optimized/TestBitset.cpp.ll b/bench/eastl/optimized/TestBitset.cpp.ll index 6b402fc3acf..f4ea2d374f8 100644 --- a/bench/eastl/optimized/TestBitset.cpp.ll +++ b/bench/eastl/optimized/TestBitset.cpp.ll @@ -9602,16 +9602,16 @@ _ZNK5eastl10BitsetBaseILm1EjE10DoFindLastEv.exit: ; preds = %entry %x.addr.3.i.i = select i1 %tobool16.not.i.i, i32 %x.addr.2.i.i, i32 %shr19.i.i %n.3.i.i = select i1 %tobool16.not.i.i, i32 %n.2.i.i, i32 %add18.i.i %tobool22.not.i.i = icmp ugt i32 %x.addr.3.i.i, 1 - %add24.i.i.neg = sext i1 %tobool22.not.i.i to i32 - %cmp = icmp eq i32 %n.3.i.i, %add24.i.i.neg - %cond.fr = freeze i1 %cmp - %not.cond.fr = xor i1 %cond.fr, true - %spec.select = zext i1 %not.cond.fr to i64 + %add24.i.i = zext i1 %tobool22.not.i.i to i32 + %1 = or i32 %n.3.i.i, %add24.i.i + %.fr = freeze i32 %1 + %cmp = icmp ne i32 %.fr, 0 + %spec.select = zext i1 %cmp to i64 br label %_ZNK5eastl10BitsetBaseILm1EjE10DoFindLastEv.exit.thread _ZNK5eastl10BitsetBaseILm1EjE10DoFindLastEv.exit.thread: ; preds = %_ZNK5eastl10BitsetBaseILm1EjE10DoFindLastEv.exit, %entry - %1 = phi i64 [ 1, %entry ], [ %spec.select, %_ZNK5eastl10BitsetBaseILm1EjE10DoFindLastEv.exit ] - ret i64 %1 + %2 = phi i64 [ 1, %entry ], [ %spec.select, %_ZNK5eastl10BitsetBaseILm1EjE10DoFindLastEv.exit ] + ret i64 %2 } ; Function Attrs: mustprogress uwtable @@ -9650,16 +9650,16 @@ _ZNK5eastl10BitsetBaseILm1EjE10DoFindPrevEm.exit: ; preds = %if.then.i %x.addr.3.i.i = select i1 %tobool16.not.i.i, i32 %x.addr.2.i.i, i32 %shr19.i.i %n.3.i.i = select i1 %tobool16.not.i.i, i32 %n.2.i.i, i32 %add18.i.i %tobool22.not.i.i = icmp ugt i32 %x.addr.3.i.i, 1 - %add24.i.i.neg = sext i1 %tobool22.not.i.i to i32 - %cmp = icmp eq i32 %n.3.i.i, %add24.i.i.neg - %cond.fr = freeze i1 %cmp - %not.cond.fr = xor i1 %cond.fr, true - %spec.select = zext i1 %not.cond.fr to i64 + %add24.i.i = zext i1 %tobool22.not.i.i to i32 + %2 = or i32 %n.3.i.i, %add24.i.i + %.fr = freeze i32 %2 + %cmp = icmp ne i32 %.fr, 0 + %spec.select = zext i1 %cmp to i64 br label %_ZNK5eastl10BitsetBaseILm1EjE10DoFindPrevEm.exit.thread _ZNK5eastl10BitsetBaseILm1EjE10DoFindPrevEm.exit.thread: ; preds = %_ZNK5eastl10BitsetBaseILm1EjE10DoFindPrevEm.exit, %if.then.i, %entry - %2 = phi i64 [ 1, %entry ], [ 1, %if.then.i ], [ %spec.select, %_ZNK5eastl10BitsetBaseILm1EjE10DoFindPrevEm.exit ] - ret i64 %2 + %3 = phi i64 [ 1, %entry ], [ 1, %if.then.i ], [ %spec.select, %_ZNK5eastl10BitsetBaseILm1EjE10DoFindPrevEm.exit ] + ret i64 %3 } ; Function Attrs: mustprogress nounwind uwtable @@ -13504,16 +13504,16 @@ _ZNK5eastl10BitsetBaseILm1EoE10DoFindLastEv.exit: ; preds = %entry %n.5.i.i = select i1 %tobool29.not.i.i, i32 %n.4.i.i, i32 %add31.i.i %and34.i.i = and i128 %x.addr.5.i.i, 4294967294 %tobool35.not.i.i = icmp ne i128 %and34.i.i, 0 - %add37.i.i.neg = sext i1 %tobool35.not.i.i to i32 - %cmp = icmp eq i32 %n.5.i.i, %add37.i.i.neg - %cond.fr = freeze i1 %cmp - %not.cond.fr = xor i1 %cond.fr, true - %spec.select = zext i1 %not.cond.fr to i64 + %add37.i.i = zext i1 %tobool35.not.i.i to i32 + %1 = or i32 %n.5.i.i, %add37.i.i + %.fr = freeze i32 %1 + %cmp = icmp ne i32 %.fr, 0 + %spec.select = zext i1 %cmp to i64 br label %_ZNK5eastl10BitsetBaseILm1EoE10DoFindLastEv.exit.thread _ZNK5eastl10BitsetBaseILm1EoE10DoFindLastEv.exit.thread: ; preds = %_ZNK5eastl10BitsetBaseILm1EoE10DoFindLastEv.exit, %entry - %1 = phi i64 [ 1, %entry ], [ %spec.select, %_ZNK5eastl10BitsetBaseILm1EoE10DoFindLastEv.exit ] - ret i64 %1 + %2 = phi i64 [ 1, %entry ], [ %spec.select, %_ZNK5eastl10BitsetBaseILm1EoE10DoFindLastEv.exit ] + ret i64 %2 } ; Function Attrs: mustprogress uwtable @@ -13568,16 +13568,16 @@ _ZNK5eastl10BitsetBaseILm1EoE10DoFindPrevEm.exit: ; preds = %if.then.i %n.5.i.i = select i1 %tobool29.not.i.i, i32 %n.4.i.i, i32 %add31.i.i %and34.i.i = and i128 %x.addr.5.i.i, 4294967294 %tobool35.not.i.i = icmp ne i128 %and34.i.i, 0 - %add37.i.i.neg = sext i1 %tobool35.not.i.i to i32 - %cmp = icmp eq i32 %n.5.i.i, %add37.i.i.neg - %cond.fr = freeze i1 %cmp - %not.cond.fr = xor i1 %cond.fr, true - %spec.select = zext i1 %not.cond.fr to i64 + %add37.i.i = zext i1 %tobool35.not.i.i to i32 + %1 = or i32 %n.5.i.i, %add37.i.i + %.fr = freeze i32 %1 + %cmp = icmp ne i32 %.fr, 0 + %spec.select = zext i1 %cmp to i64 br label %_ZNK5eastl10BitsetBaseILm1EoE10DoFindPrevEm.exit.thread _ZNK5eastl10BitsetBaseILm1EoE10DoFindPrevEm.exit.thread: ; preds = %_ZNK5eastl10BitsetBaseILm1EoE10DoFindPrevEm.exit, %if.then.i, %entry - %1 = phi i64 [ 1, %entry ], [ 1, %if.then.i ], [ %spec.select, %_ZNK5eastl10BitsetBaseILm1EoE10DoFindPrevEm.exit ] - ret i64 %1 + %2 = phi i64 [ 1, %entry ], [ 1, %if.then.i ], [ %spec.select, %_ZNK5eastl10BitsetBaseILm1EoE10DoFindPrevEm.exit ] + ret i64 %2 } ; Function Attrs: mustprogress nounwind uwtable @@ -16336,13 +16336,13 @@ entry: %call422 = call noundef i32 @_ZN2EA8UnitTest12TestInternal17EATEST_VERIFY_IMPEbRiPKciS4_(i1 noundef zeroext true, ptr noundef nonnull align 4 dereferenceable(4) %nErrorCount, ptr noundef nonnull @.str, i32 noundef 348, ptr noundef nonnull @.str.96) %i7.016.i.i.sroa.gep = getelementptr inbounds i8, ptr %b129, i64 8 %1 = load i64, ptr %b129, align 16 - %tobool.not.i6167 = icmp eq i64 %1, 0 - %i7.016.i.i.sroa.gep6246 = getelementptr inbounds i8, ptr %b129, i64 16 - br i1 %tobool.not.i6167, label %for.cond.i, label %_ZNK5eastl10BitsetBaseILm3EmE3anyEv.exit + %tobool.not.i6162 = icmp eq i64 %1, 0 + %i7.016.i.i.sroa.gep6241 = getelementptr inbounds i8, ptr %b129, i64 16 + br i1 %tobool.not.i6162, label %for.cond.i, label %_ZNK5eastl10BitsetBaseILm3EmE3anyEv.exit for.cond.i: ; preds = %entry, %for.body.i - %i.03.i6168 = phi i64 [ %inc.i, %for.body.i ], [ 0, %entry ] - %inc.i = add nuw nsw i64 %i.03.i6168, 1 + %i.03.i6163 = phi i64 [ %inc.i, %for.body.i ], [ 0, %entry ] + %inc.i = add nuw nsw i64 %i.03.i6163, 1 %exitcond.not.i = icmp eq i64 %inc.i, 3 br i1 %exitcond.not.i, label %_ZNK5eastl10BitsetBaseILm3EmE3anyEv.exit.loopexit, label %for.body.i, !llvm.loop !130 @@ -16353,7 +16353,7 @@ for.body.i: ; preds = %for.cond.i br i1 %tobool.not.i, label %for.cond.i, label %_ZNK5eastl10BitsetBaseILm3EmE3anyEv.exit.loopexit, !llvm.loop !130 _ZNK5eastl10BitsetBaseILm3EmE3anyEv.exit.loopexit: ; preds = %for.cond.i, %for.body.i - %cmp.i265.le = icmp ult i64 %i.03.i6168, 2 + %cmp.i265.le = icmp ult i64 %i.03.i6163, 2 br label %_ZNK5eastl10BitsetBaseILm3EmE3anyEv.exit _ZNK5eastl10BitsetBaseILm3EmE3anyEv.exit: ; preds = %_ZNK5eastl10BitsetBaseILm3EmE3anyEv.exit.loopexit, %entry @@ -16436,9 +16436,9 @@ _ZNK5eastl6bitsetILm129EmE4noneEv.exit303: ; preds = %for.body.i.i283 %10 = load <2 x i64>, ptr %b129, align 16 %11 = or <2 x i64> %10, store <2 x i64> %11, ptr %b129, align 16 - %12 = load i64, ptr %i7.016.i.i.sroa.gep6246, align 16 + %12 = load i64, ptr %i7.016.i.i.sroa.gep6241, align 16 %or.i380 = or i64 %12, 1 - store i64 %or.i380, ptr %i7.016.i.i.sroa.gep6246, align 16 + store i64 %or.i380, ptr %i7.016.i.i.sroa.gep6241, align 16 %call530 = call noundef i32 @_ZN2EA8UnitTest12TestInternal17EATEST_VERIFY_IMPEbRiPKciS4_(i1 noundef zeroext true, ptr noundef nonnull align 4 dereferenceable(4) %nErrorCount, ptr noundef nonnull @.str, i32 noundef 385, ptr noundef nonnull @.str.117) %13 = load i64, ptr %b129, align 16 %and3.i383 = and i64 %13, 32768 @@ -16460,7 +16460,7 @@ _ZNK5eastl6bitsetILm129EmE4noneEv.exit303: ; preds = %for.body.i.i283 %and3.i393 = and i64 %17, 134217728 %cmp4.i394.not = icmp eq i64 %and3.i393, 0 %call550 = call noundef i32 @_ZN2EA8UnitTest12TestInternal17EATEST_VERIFY_IMPEbRiPKciS4_(i1 noundef zeroext %cmp4.i394.not, ptr noundef nonnull align 4 dereferenceable(4) %nErrorCount, ptr noundef nonnull @.str, i32 noundef 390, ptr noundef nonnull @.str.122) - %18 = load i64, ptr %i7.016.i.i.sroa.gep6246, align 16 + %18 = load i64, ptr %i7.016.i.i.sroa.gep6241, align 16 %and3.i396 = and i64 %18, 1 %cmp4.i397 = icmp ne i64 %and3.i396, 0 %call554 = call noundef i32 @_ZN2EA8UnitTest12TestInternal17EATEST_VERIFY_IMPEbRiPKciS4_(i1 noundef zeroext %cmp4.i397, ptr noundef nonnull align 4 dereferenceable(4) %nErrorCount, ptr noundef nonnull @.str, i32 noundef 391, ptr noundef nonnull @.str.123) @@ -16555,7 +16555,7 @@ _ZNK5eastl10BitsetBaseILm3EmE5countEv.exit709: ; preds = %for.body.i702 %cmp861 = icmp eq i64 %add.i706, 0 %call862 = call noundef i32 @_ZN2EA8UnitTest12TestInternal17EATEST_VERIFY_IMPEbRiPKciS4_(i1 noundef zeroext %cmp861, ptr noundef nonnull align 4 dereferenceable(4) %nErrorCount, ptr noundef nonnull @.str, i32 noundef 520, ptr noundef nonnull @.str.162) call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(24) %b129, i8 -1, i64 16, i1 false) - store i64 1, ptr %i7.016.i.i.sroa.gep6246, align 16 + store i64 1, ptr %i7.016.i.i.sroa.gep6241, align 16 br label %for.body.i711 for.body.i711: ; preds = %for.body.i711, %_ZNK5eastl10BitsetBaseILm3EmE5countEv.exit709 @@ -16601,9 +16601,9 @@ for.body.i.i728: ; preds = %for.body.i.i728, %_ br i1 %exitcond.not.i.i732, label %_ZN5eastl6bitsetILm129EmE4flipEv.exit, label %for.body.i.i728, !llvm.loop !132 _ZN5eastl6bitsetILm129EmE4flipEv.exit: ; preds = %for.body.i.i728 - %28 = load i64, ptr %i7.016.i.i.sroa.gep6246, align 16 + %28 = load i64, ptr %i7.016.i.i.sroa.gep6241, align 16 %and.i734 = and i64 %28, 1 - store i64 %and.i734, ptr %i7.016.i.i.sroa.gep6246, align 16 + store i64 %and.i734, ptr %i7.016.i.i.sroa.gep6241, align 16 br label %for.body.i735 for.body.i735: ; preds = %for.body.i735, %_ZN5eastl6bitsetILm129EmE4flipEv.exit @@ -16662,9 +16662,9 @@ _ZNK5eastl6bitsetILm129EmE4noneEv.exit763: ; preds = %_ZNK5eastl6bitsetIL %35 = load <2 x i64>, ptr %b129, align 16 %36 = or <2 x i64> %35, store <2 x i64> %36, ptr %b129, align 16 - %37 = load i64, ptr %i7.016.i.i.sroa.gep6246, align 16 + %37 = load i64, ptr %i7.016.i.i.sroa.gep6241, align 16 %or.i.i769 = or i64 %37, 1 - store i64 %or.i.i769, ptr %i7.016.i.i.sroa.gep6246, align 16 + store i64 %or.i.i769, ptr %i7.016.i.i.sroa.gep6241, align 16 %call888 = call noundef i32 @_ZN2EA8UnitTest12TestInternal17EATEST_VERIFY_IMPEbRiPKciS4_(i1 noundef zeroext true, ptr noundef nonnull align 4 dereferenceable(4) %nErrorCount, ptr noundef nonnull @.str, i32 noundef 535, ptr noundef nonnull @.str.167) %38 = load i64, ptr %b129, align 16 %and2.i782 = and i64 %38, 32768 @@ -16686,16 +16686,16 @@ _ZNK5eastl6bitsetILm129EmE4noneEv.exit763: ; preds = %_ZNK5eastl6bitsetIL %and2.i812 = and i64 %42, 67108864 %cmp.i813.not = icmp eq i64 %and2.i812, 0 %call918 = call noundef i32 @_ZN2EA8UnitTest12TestInternal17EATEST_VERIFY_IMPEbRiPKciS4_(i1 noundef zeroext %cmp.i813.not, ptr noundef nonnull align 4 dereferenceable(4) %nErrorCount, ptr noundef nonnull @.str, i32 noundef 540, ptr noundef nonnull @.str.172) - %43 = load i64, ptr %i7.016.i.i.sroa.gep6246, align 16 + %43 = load i64, ptr %i7.016.i.i.sroa.gep6241, align 16 %and2.i820 = and i64 %43, 1 %cmp.i821 = icmp ne i64 %and2.i820, 0 %call924 = call noundef i32 @_ZN2EA8UnitTest12TestInternal17EATEST_VERIFY_IMPEbRiPKciS4_(i1 noundef zeroext %cmp.i821, ptr noundef nonnull align 4 dereferenceable(4) %nErrorCount, ptr noundef nonnull @.str, i32 noundef 541, ptr noundef nonnull @.str.173) %44 = load <2 x i64>, ptr %b129, align 16 %45 = and <2 x i64> %44, store <2 x i64> %45, ptr %b129, align 16 - %46 = load i64, ptr %i7.016.i.i.sroa.gep6246, align 16 + %46 = load i64, ptr %i7.016.i.i.sroa.gep6241, align 16 %and3.i827 = and i64 %46, -2 - store i64 %and3.i827, ptr %i7.016.i.i.sroa.gep6246, align 16 + store i64 %and3.i827, ptr %i7.016.i.i.sroa.gep6241, align 16 %call934 = call noundef i32 @_ZN2EA8UnitTest12TestInternal17EATEST_VERIFY_IMPEbRiPKciS4_(i1 noundef zeroext true, ptr noundef nonnull align 4 dereferenceable(4) %nErrorCount, ptr noundef nonnull @.str, i32 noundef 547, ptr noundef nonnull @.str.174) %47 = load i64, ptr %b129, align 16 %and2.i840 = and i64 %47, 4294967296 @@ -16705,16 +16705,16 @@ _ZNK5eastl6bitsetILm129EmE4noneEv.exit763: ; preds = %_ZNK5eastl6bitsetIL %and2.i848 = and i64 %48, 1 %cmp.i849.not = icmp eq i64 %and2.i848, 0 %call946 = call noundef i32 @_ZN2EA8UnitTest12TestInternal17EATEST_VERIFY_IMPEbRiPKciS4_(i1 noundef zeroext %cmp.i849.not, ptr noundef nonnull align 4 dereferenceable(4) %nErrorCount, ptr noundef nonnull @.str, i32 noundef 549, ptr noundef nonnull @.str.176) - %49 = load i64, ptr %i7.016.i.i.sroa.gep6246, align 16 + %49 = load i64, ptr %i7.016.i.i.sroa.gep6241, align 16 %and2.i856 = and i64 %49, 1 %cmp.i857.not = icmp eq i64 %and2.i856, 0 %call952 = call noundef i32 @_ZN2EA8UnitTest12TestInternal17EATEST_VERIFY_IMPEbRiPKciS4_(i1 noundef zeroext %cmp.i857.not, ptr noundef nonnull align 4 dereferenceable(4) %nErrorCount, ptr noundef nonnull @.str, i32 noundef 550, ptr noundef nonnull @.str.177) %50 = load <2 x i64>, ptr %b129, align 16 %51 = xor <2 x i64> %50, store <2 x i64> %51, ptr %b129, align 16 - %52 = load i64, ptr %i7.016.i.i.sroa.gep6246, align 16 + %52 = load i64, ptr %i7.016.i.i.sroa.gep6241, align 16 %xor.i863 = xor i64 %52, 1 - store i64 %xor.i863, ptr %i7.016.i.i.sroa.gep6246, align 16 + store i64 %xor.i863, ptr %i7.016.i.i.sroa.gep6241, align 16 %53 = extractelement <2 x i64> %51, i64 0 %and2.i869 = and i64 %53, 1 %cmp.i870 = icmp ne i64 %and2.i869, 0 @@ -16727,7 +16727,7 @@ _ZNK5eastl6bitsetILm129EmE4noneEv.exit763: ; preds = %_ZNK5eastl6bitsetIL %and2.i884 = and i64 %55, 1 %cmp.i885 = icmp ne i64 %and2.i884, 0 %call974 = call noundef i32 @_ZN2EA8UnitTest12TestInternal17EATEST_VERIFY_IMPEbRiPKciS4_(i1 noundef zeroext %cmp.i885, ptr noundef nonnull align 4 dereferenceable(4) %nErrorCount, ptr noundef nonnull @.str, i32 noundef 558, ptr noundef nonnull @.str.171) - %56 = load i64, ptr %i7.016.i.i.sroa.gep6246, align 16 + %56 = load i64, ptr %i7.016.i.i.sroa.gep6241, align 16 %and2.i892 = and i64 %56, 1 %cmp.i893 = icmp ne i64 %and2.i892, 0 %call980 = call noundef i32 @_ZN2EA8UnitTest12TestInternal17EATEST_VERIFY_IMPEbRiPKciS4_(i1 noundef zeroext %cmp.i893, ptr noundef nonnull align 4 dereferenceable(4) %nErrorCount, ptr noundef nonnull @.str, i32 noundef 559, ptr noundef nonnull @.str.173) @@ -16764,7 +16764,7 @@ _ZNK5eastl6bitsetILm129EmEcoEv.exit: ; preds = %for.body.i.i.i %and2.i918 = and i64 %61, 1 %cmp.i919 = icmp ne i64 %and2.i918, 0 %call998 = call noundef i32 @_ZN2EA8UnitTest12TestInternal17EATEST_VERIFY_IMPEbRiPKciS4_(i1 noundef zeroext %cmp.i919, ptr noundef nonnull align 4 dereferenceable(4) %nErrorCount, ptr noundef nonnull @.str, i32 noundef 564, ptr noundef nonnull @.str.171) - %62 = load i64, ptr %i7.016.i.i.sroa.gep6246, align 16 + %62 = load i64, ptr %i7.016.i.i.sroa.gep6241, align 16 %and2.i926 = and i64 %62, 1 %cmp.i927 = icmp ne i64 %and2.i926, 0 %call1004 = call noundef i32 @_ZN2EA8UnitTest12TestInternal17EATEST_VERIFY_IMPEbRiPKciS4_(i1 noundef zeroext %cmp.i927, ptr noundef nonnull align 4 dereferenceable(4) %nErrorCount, ptr noundef nonnull @.str, i32 noundef 565, ptr noundef nonnull @.str.173) @@ -16904,7 +16904,7 @@ _ZNK5eastl6bitsetILm129EmEneERKS1_.exit: ; preds = %_ZNK5eastl6bitsetIL %call1469 = call noundef i32 @_ZN2EA8UnitTest12TestInternal17EATEST_VERIFY_IMPEbRiPKciS4_(i1 noundef zeroext true, ptr noundef nonnull align 4 dereferenceable(4) %nErrorCount, ptr noundef nonnull @.str, i32 noundef 771, ptr noundef nonnull @.str.145) store i64 4294967297, ptr %b129, align 16 store i64 1, ptr %i7.016.i.i.sroa.gep, align 8 - store i64 1, ptr %i7.016.i.i.sroa.gep6246, align 16 + store i64 1, ptr %i7.016.i.i.sroa.gep6241, align 16 %call1489 = call noundef i32 @_ZN2EA8UnitTest12TestInternal17EATEST_VERIFY_IMPEbRiPKciS4_(i1 noundef zeroext true, ptr noundef nonnull align 4 dereferenceable(4) %nErrorCount, ptr noundef nonnull @.str, i32 noundef 782, ptr noundef nonnull @.str.167) %72 = load i64, ptr %b129, align 16 %and2.i1500 = and i64 %72, 4294967296 @@ -16914,7 +16914,7 @@ _ZNK5eastl6bitsetILm129EmEneERKS1_.exit: ; preds = %_ZNK5eastl6bitsetIL %and2.i1508 = and i64 %73, 1 %cmp.i1509 = icmp ne i64 %and2.i1508, 0 %call1501 = call noundef i32 @_ZN2EA8UnitTest12TestInternal17EATEST_VERIFY_IMPEbRiPKciS4_(i1 noundef zeroext %cmp.i1509, ptr noundef nonnull align 4 dereferenceable(4) %nErrorCount, ptr noundef nonnull @.str, i32 noundef 784, ptr noundef nonnull @.str.171) - %74 = load i64, ptr %i7.016.i.i.sroa.gep6246, align 16 + %74 = load i64, ptr %i7.016.i.i.sroa.gep6241, align 16 %and2.i1516 = and i64 %74, 1 %cmp.i1517 = icmp ne i64 %and2.i1516, 0 %call1507 = call noundef i32 @_ZN2EA8UnitTest12TestInternal17EATEST_VERIFY_IMPEbRiPKciS4_(i1 noundef zeroext %cmp.i1517, ptr noundef nonnull align 4 dereferenceable(4) %nErrorCount, ptr noundef nonnull @.str, i32 noundef 785, ptr noundef nonnull @.str.173) @@ -16925,16 +16925,16 @@ for.body10.i.i: ; preds = %for.body10.i.i, %_Z %75 = phi i64 [ %76, %for.body10.i.i ], [ %.pre.i.i1518, %_ZNK5eastl6bitsetILm129EmEneERKS1_.exit ] %cmp9.i.i = phi i1 [ false, %for.body10.i.i ], [ true, %_ZNK5eastl6bitsetILm129EmEneERKS1_.exit ] %i7.016.i.i.sroa.phi = phi ptr [ %i7.016.i.i.sroa.gep, %for.body10.i.i ], [ %b129, %_ZNK5eastl6bitsetILm129EmEneERKS1_.exit ] - %i7.016.i.i.sroa.phi6245 = phi ptr [ %i7.016.i.i.sroa.gep6246, %for.body10.i.i ], [ %i7.016.i.i.sroa.gep, %_ZNK5eastl6bitsetILm129EmEneERKS1_.exit ] - %76 = load i64, ptr %i7.016.i.i.sroa.phi6245, align 8 + %i7.016.i.i.sroa.phi6240 = phi ptr [ %i7.016.i.i.sroa.gep6241, %for.body10.i.i ], [ %i7.016.i.i.sroa.gep, %_ZNK5eastl6bitsetILm129EmEneERKS1_.exit ] + %76 = load i64, ptr %i7.016.i.i.sroa.phi6240, align 8 %or.i.i1519 = call i64 @llvm.fshl.i64(i64 %76, i64 %75, i64 54) store i64 %or.i.i1519, ptr %i7.016.i.i.sroa.phi, align 8 br i1 %cmp9.i.i, label %for.body10.i.i, label %_ZN5eastl6bitsetILm129EmErSEm.exit, !llvm.loop !137 _ZN5eastl6bitsetILm129EmErSEm.exit: ; preds = %for.body10.i.i - %77 = load i64, ptr %i7.016.i.i.sroa.gep6246, align 16 + %77 = load i64, ptr %i7.016.i.i.sroa.gep6241, align 16 %shr25.i.i = lshr i64 %77, 10 - store i64 %shr25.i.i, ptr %i7.016.i.i.sroa.gep6246, align 16 + store i64 %shr25.i.i, ptr %i7.016.i.i.sroa.gep6241, align 16 %78 = load i64, ptr %b129, align 16 %and2.i1525 = and i64 %78, 4194304 %cmp.i1526 = icmp ne i64 %and2.i1525, 0 @@ -16949,7 +16949,7 @@ _ZN5eastl6bitsetILm129EmErSEm.exit: ; preds = %for.body10.i.i %call1526 = call noundef i32 @_ZN2EA8UnitTest12TestInternal17EATEST_VERIFY_IMPEbRiPKciS4_(i1 noundef zeroext %cmp.i1541, ptr noundef nonnull align 4 dereferenceable(4) %nErrorCount, ptr noundef nonnull @.str, i32 noundef 789, ptr noundef nonnull @.str.208) store i64 4294967297, ptr %b129, align 16 store i64 1, ptr %i7.016.i.i.sroa.gep, align 8 - store i64 1, ptr %i7.016.i.i.sroa.gep6246, align 16 + store i64 1, ptr %i7.016.i.i.sroa.gep6241, align 16 %call1546 = call noundef i32 @_ZN2EA8UnitTest12TestInternal17EATEST_VERIFY_IMPEbRiPKciS4_(i1 noundef zeroext true, ptr noundef nonnull align 4 dereferenceable(4) %nErrorCount, ptr noundef nonnull @.str, i32 noundef 797, ptr noundef nonnull @.str.167) %81 = load i64, ptr %b129, align 16 %and2.i1582 = and i64 %81, 4294967296 @@ -16959,11 +16959,11 @@ _ZN5eastl6bitsetILm129EmErSEm.exit: ; preds = %for.body10.i.i %and2.i1590 = and i64 %82, 1 %cmp.i1591 = icmp ne i64 %and2.i1590, 0 %call1558 = call noundef i32 @_ZN2EA8UnitTest12TestInternal17EATEST_VERIFY_IMPEbRiPKciS4_(i1 noundef zeroext %cmp.i1591, ptr noundef nonnull align 4 dereferenceable(4) %nErrorCount, ptr noundef nonnull @.str, i32 noundef 799, ptr noundef nonnull @.str.171) - %83 = load i64, ptr %i7.016.i.i.sroa.gep6246, align 16 + %83 = load i64, ptr %i7.016.i.i.sroa.gep6241, align 16 %and2.i1598 = and i64 %83, 1 %cmp.i1599 = icmp ne i64 %and2.i1598, 0 %call1564 = call noundef i32 @_ZN2EA8UnitTest12TestInternal17EATEST_VERIFY_IMPEbRiPKciS4_(i1 noundef zeroext %cmp.i1599, ptr noundef nonnull align 4 dereferenceable(4) %nErrorCount, ptr noundef nonnull @.str, i32 noundef 800, ptr noundef nonnull @.str.173) - %.pre.i.i1600 = load i64, ptr %i7.016.i.i.sroa.gep6246, align 16 + %.pre.i.i1600 = load i64, ptr %i7.016.i.i.sroa.gep6241, align 16 br label %for.body11.i.i for.body11.i.i: ; preds = %for.body11.i.i, %_ZN5eastl6bitsetILm129EmErSEm.exit @@ -16982,9 +16982,9 @@ _ZN5eastl6bitsetILm129EmElSEm.exit: ; preds = %for.body11.i.i %86 = load i64, ptr %b129, align 16 %shl26.i.i = shl i64 %86, 10 store i64 %shl26.i.i, ptr %b129, align 16 - %87 = load i64, ptr %i7.016.i.i.sroa.gep6246, align 16 + %87 = load i64, ptr %i7.016.i.i.sroa.gep6241, align 16 %and.i1604 = and i64 %87, 1 - store i64 %and.i1604, ptr %i7.016.i.i.sroa.gep6246, align 16 + store i64 %and.i1604, ptr %i7.016.i.i.sroa.gep6241, align 16 %88 = and i64 %86, 1 %cmp.i1611 = icmp ne i64 %88, 0 %call1571 = call noundef i32 @_ZN2EA8UnitTest12TestInternal17EATEST_VERIFY_IMPEbRiPKciS4_(i1 noundef zeroext %cmp.i1611, ptr noundef nonnull align 4 dereferenceable(4) %nErrorCount, ptr noundef nonnull @.str, i32 noundef 802, ptr noundef nonnull @.str.209) @@ -16998,7 +16998,7 @@ _ZN5eastl6bitsetILm129EmElSEm.exit: ; preds = %for.body11.i.i %call1583 = call noundef i32 @_ZN2EA8UnitTest12TestInternal17EATEST_VERIFY_IMPEbRiPKciS4_(i1 noundef zeroext %cmp.i1626, ptr noundef nonnull align 4 dereferenceable(4) %nErrorCount, ptr noundef nonnull @.str, i32 noundef 804, ptr noundef nonnull @.str.211) store i64 4294967297, ptr %b129, align 16 store i64 1, ptr %i7.016.i.i.sroa.gep, align 8 - store i64 1, ptr %i7.016.i.i.sroa.gep6246, align 16 + store i64 1, ptr %i7.016.i.i.sroa.gep6241, align 16 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %b129Equal, ptr noundef nonnull align 16 dereferenceable(24) %b129, i64 24, i1 false) %91 = load i64, ptr %b129Equal, align 8 %cmp4.not.i1.i1654 = icmp eq i64 %91, 4294967297 @@ -17031,7 +17031,7 @@ _ZNK5eastl6bitsetILm129EmEeqERKS1_.exit1666: ; preds = %_ZN5eastl6bitsetILm store i64 %ref.tmp.i1667.sroa.0.0.copyload, ptr %ref.tmp.i1667.sroa.0, align 8, !noalias !139 %ref.tmp.i1667.sroa.6.0.copyload = load i64, ptr %i7.016.i.i.sroa.gep, align 8, !noalias !139 store i64 %ref.tmp.i1667.sroa.6.0.copyload, ptr %ref.tmp.i1667.sroa.6, align 8, !noalias !139 - %ref.tmp.i1667.sroa.8.0.copyload = load i64, ptr %i7.016.i.i.sroa.gep6246, align 16, !noalias !139 + %ref.tmp.i1667.sroa.8.0.copyload = load i64, ptr %i7.016.i.i.sroa.gep6241, align 16, !noalias !139 br label %for.body10.i.i.i for.body10.i.i.i: ; preds = %for.body10.i.i.i, %_ZNK5eastl6bitsetILm129EmEeqERKS1_.exit1666 @@ -17044,23 +17044,23 @@ for.body10.i.i.i: ; preds = %for.body10.i.i.i, % br i1 %cmp9.i.i.i, label %for.body10.i.i.i, label %_ZNK5eastl6bitsetILm129EmErsEm.exit, !llvm.loop !137 _ZNK5eastl6bitsetILm129EmErsEm.exit: ; preds = %for.body10.i.i.i - %ref.tmp.i1667.sroa.0.0.ref.tmp.i1667.sroa.0.0.ref.tmp.i1667.sroa.0.0.ref.tmp.i1667.sroa.0.0.copyload6111 = load i64, ptr %ref.tmp.i1667.sroa.0, align 8 - %ref.tmp.i1667.sroa.6.0.ref.tmp.i1667.sroa.6.0.ref.tmp.i1667.sroa.6.0.ref.tmp.i1667.sroa.6.0.copyload6112 = load i64, ptr %ref.tmp.i1667.sroa.6, align 8 + %ref.tmp.i1667.sroa.0.0.ref.tmp.i1667.sroa.0.0.ref.tmp.i1667.sroa.0.0.ref.tmp.i1667.sroa.0.0.copyload6106 = load i64, ptr %ref.tmp.i1667.sroa.0, align 8 + %ref.tmp.i1667.sroa.6.0.ref.tmp.i1667.sroa.6.0.ref.tmp.i1667.sroa.6.0.ref.tmp.i1667.sroa.6.0.copyload6107 = load i64, ptr %ref.tmp.i1667.sroa.6, align 8 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %ref.tmp.i1667.sroa.0) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %ref.tmp.i1667.sroa.6) %ref.tmp1600.sroa.0.sroa.2.0.b129Equal.sroa_idx = getelementptr inbounds i8, ptr %b129Equal, i64 8 - %and2.i1676 = and i64 %ref.tmp.i1667.sroa.0.0.ref.tmp.i1667.sroa.0.0.ref.tmp.i1667.sroa.0.0.ref.tmp.i1667.sroa.0.0.copyload6111, 4194304 + %and2.i1676 = and i64 %ref.tmp.i1667.sroa.0.0.ref.tmp.i1667.sroa.0.0.ref.tmp.i1667.sroa.0.0.ref.tmp.i1667.sroa.0.0.copyload6106, 4194304 %cmp.i1677 = icmp ne i64 %and2.i1676, 0 %call1606 = call noundef i32 @_ZN2EA8UnitTest12TestInternal17EATEST_VERIFY_IMPEbRiPKciS4_(i1 noundef zeroext %cmp.i1677, ptr noundef nonnull align 4 dereferenceable(4) %nErrorCount, ptr noundef nonnull @.str, i32 noundef 814, ptr noundef nonnull @.str.212) - %and2.i1683 = and i64 %ref.tmp.i1667.sroa.0.0.ref.tmp.i1667.sroa.0.0.ref.tmp.i1667.sroa.0.0.ref.tmp.i1667.sroa.0.0.copyload6111, 18014398509481984 + %and2.i1683 = and i64 %ref.tmp.i1667.sroa.0.0.ref.tmp.i1667.sroa.0.0.ref.tmp.i1667.sroa.0.0.ref.tmp.i1667.sroa.0.0.copyload6106, 18014398509481984 %cmp.i1684 = icmp ne i64 %and2.i1683, 0 %call1612 = call noundef i32 @_ZN2EA8UnitTest12TestInternal17EATEST_VERIFY_IMPEbRiPKciS4_(i1 noundef zeroext %cmp.i1684, ptr noundef nonnull align 4 dereferenceable(4) %nErrorCount, ptr noundef nonnull @.str, i32 noundef 815, ptr noundef nonnull @.str.213) - %and2.i1691 = and i64 %ref.tmp.i1667.sroa.6.0.ref.tmp.i1667.sroa.6.0.ref.tmp.i1667.sroa.6.0.ref.tmp.i1667.sroa.6.0.copyload6112, 18014398509481984 + %and2.i1691 = and i64 %ref.tmp.i1667.sroa.6.0.ref.tmp.i1667.sroa.6.0.ref.tmp.i1667.sroa.6.0.ref.tmp.i1667.sroa.6.0.copyload6107, 18014398509481984 %cmp.i1692 = icmp ne i64 %and2.i1691, 0 %call1618 = call noundef i32 @_ZN2EA8UnitTest12TestInternal17EATEST_VERIFY_IMPEbRiPKciS4_(i1 noundef zeroext %cmp.i1692, ptr noundef nonnull align 4 dereferenceable(4) %nErrorCount, ptr noundef nonnull @.str, i32 noundef 816, ptr noundef nonnull @.str.214) store i64 4294967297, ptr %b129, align 16 store i64 1, ptr %i7.016.i.i.sroa.gep, align 8 - store i64 1, ptr %i7.016.i.i.sroa.gep6246, align 16 + store i64 1, ptr %i7.016.i.i.sroa.gep6241, align 16 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %ref.tmp.i1719) call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %ref.tmp.i1719, ptr noundef nonnull align 16 dereferenceable(24) %b129, i64 24, i1 false), !noalias !142 %arrayidx13.phi.trans.insert.i.i.i = getelementptr inbounds i8, ptr %ref.tmp.i1719, i64 16 @@ -17113,9 +17113,9 @@ for.body.i.i1746: ; preds = %for.body.i.i1746, % br i1 %exitcond.not.i.i1751, label %_ZN5eastl6bitsetILm129EmE4flipEv.exit1754, label %for.body.i.i1746, !llvm.loop !132 _ZN5eastl6bitsetILm129EmE4flipEv.exit1754: ; preds = %for.body.i.i1746 - %102 = load i64, ptr %i7.016.i.i.sroa.gep6246, align 16 + %102 = load i64, ptr %i7.016.i.i.sroa.gep6241, align 16 %and.i1753 = and i64 %102, 1 - store i64 %and.i1753, ptr %i7.016.i.i.sroa.gep6246, align 16 + store i64 %and.i1753, ptr %i7.016.i.i.sroa.gep6241, align 16 %.pre.i.i1755 = load i64, ptr %b129, align 16 br label %for.body10.i.i1756 @@ -17123,14 +17123,14 @@ for.body10.i.i1756: ; preds = %for.body10.i.i1756, %103 = phi i64 [ %104, %for.body10.i.i1756 ], [ %.pre.i.i1755, %_ZN5eastl6bitsetILm129EmE4flipEv.exit1754 ] %cmp9.i.i1757 = phi i1 [ false, %for.body10.i.i1756 ], [ true, %_ZN5eastl6bitsetILm129EmE4flipEv.exit1754 ] %i7.016.i.i1758.sroa.phi = phi ptr [ %i7.016.i.i.sroa.gep, %for.body10.i.i1756 ], [ %b129, %_ZN5eastl6bitsetILm129EmE4flipEv.exit1754 ] - %i7.016.i.i1758.sroa.phi6248 = phi ptr [ %i7.016.i.i.sroa.gep6246, %for.body10.i.i1756 ], [ %i7.016.i.i.sroa.gep, %_ZN5eastl6bitsetILm129EmE4flipEv.exit1754 ] - %104 = load i64, ptr %i7.016.i.i1758.sroa.phi6248, align 8 + %i7.016.i.i1758.sroa.phi6243 = phi ptr [ %i7.016.i.i.sroa.gep6241, %for.body10.i.i1756 ], [ %i7.016.i.i.sroa.gep, %_ZN5eastl6bitsetILm129EmE4flipEv.exit1754 ] + %104 = load i64, ptr %i7.016.i.i1758.sroa.phi6243, align 8 %or.i.i1762 = call i64 @llvm.fshl.i64(i64 %104, i64 %103, i64 31) store i64 %or.i.i1762, ptr %i7.016.i.i1758.sroa.phi, align 8 br i1 %cmp9.i.i1757, label %for.body10.i.i1756, label %_ZN5eastl6bitsetILm129EmErSEm.exit1765, !llvm.loop !137 _ZN5eastl6bitsetILm129EmErSEm.exit1765: ; preds = %for.body10.i.i1756 - store i64 0, ptr %i7.016.i.i.sroa.gep6246, align 16 + store i64 0, ptr %i7.016.i.i.sroa.gep6241, align 16 br label %for.body.i1766 for.body.i1766: ; preds = %for.body.i1766, %_ZN5eastl6bitsetILm129EmErSEm.exit1765 @@ -17161,9 +17161,9 @@ for.body.i.i1774: ; preds = %for.body.i.i1774, % br i1 %exitcond.not.i.i1779, label %_ZN5eastl6bitsetILm129EmE4flipEv.exit1782, label %for.body.i.i1774, !llvm.loop !132 _ZN5eastl6bitsetILm129EmE4flipEv.exit1782: ; preds = %for.body.i.i1774 - %108 = load i64, ptr %i7.016.i.i.sroa.gep6246, align 16 + %108 = load i64, ptr %i7.016.i.i.sroa.gep6241, align 16 %and.i1781 = and i64 %108, 1 - store i64 %and.i1781, ptr %i7.016.i.i.sroa.gep6246, align 16 + store i64 %and.i1781, ptr %i7.016.i.i.sroa.gep6241, align 16 br label %for.body11.i.i1785 for.body11.i.i1785: ; preds = %for.body11.i.i1785, %_ZN5eastl6bitsetILm129EmE4flipEv.exit1782 @@ -17182,9 +17182,9 @@ _ZN5eastl6bitsetILm129EmElSEm.exit1795: ; preds = %for.body11.i.i1785 %111 = load i64, ptr %b129, align 16 %shl26.i.i1792 = shl i64 %111, 33 store i64 %shl26.i.i1792, ptr %b129, align 16 - %112 = load i64, ptr %i7.016.i.i.sroa.gep6246, align 16 + %112 = load i64, ptr %i7.016.i.i.sroa.gep6241, align 16 %and.i1794 = and i64 %112, 1 - store i64 %and.i1794, ptr %i7.016.i.i.sroa.gep6246, align 16 + store i64 %and.i1794, ptr %i7.016.i.i.sroa.gep6241, align 16 br label %for.body.i1796 for.body.i1796: ; preds = %for.body.i1796, %_ZN5eastl6bitsetILm129EmElSEm.exit1795 @@ -17215,9 +17215,9 @@ for.body.i.i1804: ; preds = %for.body.i.i1804, % br i1 %exitcond.not.i.i1809, label %_ZN5eastl6bitsetILm129EmE4flipEv.exit1812, label %for.body.i.i1804, !llvm.loop !132 _ZN5eastl6bitsetILm129EmE4flipEv.exit1812: ; preds = %for.body.i.i1804 - %116 = load i64, ptr %i7.016.i.i.sroa.gep6246, align 16 + %116 = load i64, ptr %i7.016.i.i.sroa.gep6241, align 16 %and.i1811 = and i64 %116, 1 - store i64 %and.i1811, ptr %i7.016.i.i.sroa.gep6246, align 16 + store i64 %and.i1811, ptr %i7.016.i.i.sroa.gep6241, align 16 br label %for.body.i.i1813 for.body.i.i1813: ; preds = %cond.end.i.i, %_ZN5eastl6bitsetILm129EmE4flipEv.exit1812 @@ -17247,16 +17247,16 @@ for.body10.i.i1817: ; preds = %for.body10.i.i1817, %118 = phi i64 [ %119, %for.body10.i.i1817 ], [ %.pre.i.i1816, %if.end.i.i ] %cmp9.i.i1818 = phi i1 [ false, %for.body10.i.i1817 ], [ true, %if.end.i.i ] %i7.016.i.i1819.sroa.phi = phi ptr [ %i7.016.i.i.sroa.gep, %for.body10.i.i1817 ], [ %b129, %if.end.i.i ] - %i7.016.i.i1819.sroa.phi6250 = phi ptr [ %i7.016.i.i.sroa.gep6246, %for.body10.i.i1817 ], [ %i7.016.i.i.sroa.gep, %if.end.i.i ] - %119 = load i64, ptr %i7.016.i.i1819.sroa.phi6250, align 8 + %i7.016.i.i1819.sroa.phi6245 = phi ptr [ %i7.016.i.i.sroa.gep6241, %for.body10.i.i1817 ], [ %i7.016.i.i.sroa.gep, %if.end.i.i ] + %119 = load i64, ptr %i7.016.i.i1819.sroa.phi6245, align 8 %or.i.i1823 = call i64 @llvm.fshl.i64(i64 %119, i64 %118, i64 63) store i64 %or.i.i1823, ptr %i7.016.i.i1819.sroa.phi, align 8 br i1 %cmp9.i.i1818, label %for.body10.i.i1817, label %_ZN5eastl6bitsetILm129EmErSEm.exit1828, !llvm.loop !137 _ZN5eastl6bitsetILm129EmErSEm.exit1828: ; preds = %for.body10.i.i1817 - %120 = load i64, ptr %i7.016.i.i.sroa.gep6246, align 16 + %120 = load i64, ptr %i7.016.i.i.sroa.gep6241, align 16 %shr25.i.i1825 = lshr i64 %120, 1 - store i64 %shr25.i.i1825, ptr %i7.016.i.i.sroa.gep6246, align 16 + store i64 %shr25.i.i1825, ptr %i7.016.i.i.sroa.gep6241, align 16 br label %for.body.i1829 for.body.i1829: ; preds = %for.body.i1829, %_ZN5eastl6bitsetILm129EmErSEm.exit1828 @@ -17289,7 +17289,7 @@ for.body.i.i1837: ; preds = %for.body.i.i1837, % _ZN5eastl6bitsetILm129EmE4flipEv.exit1845: ; preds = %for.body.i.i1837 call void @llvm.memmove.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %i7.016.i.i.sroa.gep, ptr noundef nonnull align 16 dereferenceable(16) %b129, i64 16, i1 false) store i64 0, ptr %b129, align 16 - %.pre.i.i1855 = load i64, ptr %i7.016.i.i.sroa.gep6246, align 16 + %.pre.i.i1855 = load i64, ptr %i7.016.i.i.sroa.gep6241, align 16 br label %for.body11.i.i1856 for.body11.i.i1856: ; preds = %for.body11.i.i1856, %_ZN5eastl6bitsetILm129EmE4flipEv.exit1845 @@ -17306,9 +17306,9 @@ for.body11.i.i1856: ; preds = %for.body11.i.i1856, _ZN5eastl6bitsetILm129EmElSEm.exit1866: ; preds = %for.body11.i.i1856 store i64 0, ptr %b129, align 16 - %126 = load i64, ptr %i7.016.i.i.sroa.gep6246, align 16 + %126 = load i64, ptr %i7.016.i.i.sroa.gep6241, align 16 %and.i1865 = and i64 %126, 1 - store i64 %and.i1865, ptr %i7.016.i.i.sroa.gep6246, align 16 + store i64 %and.i1865, ptr %i7.016.i.i.sroa.gep6241, align 16 br label %for.body.i1867 for.body.i1867: ; preds = %for.body.i1867, %_ZN5eastl6bitsetILm129EmElSEm.exit1866 @@ -17339,7 +17339,7 @@ land.end: ; preds = %for.body.i1867 %call1874 = call noundef i32 @_ZN2EA8UnitTest12TestInternal17EATEST_VERIFY_IMPEbRiPKciS4_(i1 noundef zeroext true, ptr noundef nonnull align 4 dereferenceable(4) %nErrorCount, ptr noundef nonnull @.str, i32 noundef 890, ptr noundef nonnull @.str.223) store i64 -4294967298, ptr %b129, align 16 store i64 -2, ptr %i7.016.i.i.sroa.gep, align 8 - store i64 0, ptr %i7.016.i.i.sroa.gep6246, align 16 + store i64 0, ptr %i7.016.i.i.sroa.gep6241, align 16 store i64 4294967297, ptr %b129A, align 8 store i64 1, ptr %0, align 8 store i64 1, ptr %arrayidx.i, align 8 @@ -17360,8 +17360,8 @@ for.body.i.i2203: ; preds = %for.body.i.i2203, % _ZN5eastl6bitsetILm129EmEaNERKS1_.exit: ; preds = %for.body.i.i2203 %131 = load i64, ptr %b129, align 16 %132 = and i64 %131, 4294967297 - %or.cond6143.not = icmp eq i64 %132, 0 - br i1 %or.cond6143.not, label %land.lhs.true1912, label %land.end1924 + %or.cond6138.not = icmp eq i64 %132, 0 + br i1 %or.cond6138.not, label %land.lhs.true1912, label %land.end1924 land.lhs.true1912: ; preds = %_ZN5eastl6bitsetILm129EmEaNERKS1_.exit %133 = load i64, ptr %i7.016.i.i.sroa.gep, align 8 @@ -17370,7 +17370,7 @@ land.lhs.true1912: ; preds = %_ZN5eastl6bitsetILm br i1 %cmp.i2231.not, label %land.rhs1918, label %land.end1924 land.rhs1918: ; preds = %land.lhs.true1912 - %134 = load i64, ptr %i7.016.i.i.sroa.gep6246, align 16 + %134 = load i64, ptr %i7.016.i.i.sroa.gep6241, align 16 %and2.i2238 = and i64 %134, 1 %cmp.i2239.not = icmp eq i64 %and2.i2238, 0 br label %land.end1924 @@ -17395,8 +17395,8 @@ for.body.i.i2240: ; preds = %for.body.i.i2240, % _ZN5eastl6bitsetILm129EmEoRERKS1_.exit: ; preds = %for.body.i.i2240 %138 = load i64, ptr %b129, align 16 %139 = and i64 %138, 4294967297 - %or.cond6144 = icmp eq i64 %139, 4294967297 - br i1 %or.cond6144, label %land.lhs.true1938, label %land.end1950 + %or.cond6139 = icmp eq i64 %139, 4294967297 + br i1 %or.cond6139, label %land.lhs.true1938, label %land.end1950 land.lhs.true1938: ; preds = %_ZN5eastl6bitsetILm129EmEoRERKS1_.exit %140 = load i64, ptr %i7.016.i.i.sroa.gep, align 8 @@ -17405,7 +17405,7 @@ land.lhs.true1938: ; preds = %_ZN5eastl6bitsetILm br i1 %cmp.i2268.not, label %land.end1950, label %land.rhs1944 land.rhs1944: ; preds = %land.lhs.true1938 - %141 = load i64, ptr %i7.016.i.i.sroa.gep6246, align 16 + %141 = load i64, ptr %i7.016.i.i.sroa.gep6241, align 16 %and2.i2275 = and i64 %141, 1 %cmp.i2276 = icmp ne i64 %and2.i2275, 0 br label %land.end1950 @@ -17430,8 +17430,8 @@ for.body.i.i2277: ; preds = %for.body.i.i2277, % _ZN5eastl6bitsetILm129EmEeOERKS1_.exit: ; preds = %for.body.i.i2277 %145 = load i64, ptr %b129, align 16 %146 = and i64 %145, 4294967297 - %or.cond6145.not = icmp eq i64 %146, 0 - br i1 %or.cond6145.not, label %land.lhs.true1964, label %land.end1976 + %or.cond6140.not = icmp eq i64 %146, 0 + br i1 %or.cond6140.not, label %land.lhs.true1964, label %land.end1976 land.lhs.true1964: ; preds = %_ZN5eastl6bitsetILm129EmEeOERKS1_.exit %147 = load i64, ptr %i7.016.i.i.sroa.gep, align 8 @@ -17440,7 +17440,7 @@ land.lhs.true1964: ; preds = %_ZN5eastl6bitsetILm br i1 %cmp.i2305.not, label %land.rhs1970, label %land.end1976 land.rhs1970: ; preds = %land.lhs.true1964 - %148 = load i64, ptr %i7.016.i.i.sroa.gep6246, align 16 + %148 = load i64, ptr %i7.016.i.i.sroa.gep6241, align 16 %and2.i2312 = and i64 %148, 1 %cmp.i2313.not = icmp eq i64 %and2.i2312, 0 br label %land.end1976 @@ -17465,8 +17465,8 @@ for.body.i.i2314: ; preds = %for.body.i.i2314, % _ZN5eastl6bitsetILm129EmEoRERKS1_.exit2321: ; preds = %for.body.i.i2314 %152 = load i64, ptr %b129, align 16 %153 = and i64 %152, 4294967297 - %or.cond6146 = icmp eq i64 %153, 4294967297 - br i1 %or.cond6146, label %land.lhs.true1990, label %if.then.i.i + %or.cond6141 = icmp eq i64 %153, 4294967297 + br i1 %or.cond6141, label %land.lhs.true1990, label %if.then.i.i land.lhs.true1990: ; preds = %_ZN5eastl6bitsetILm129EmEoRERKS1_.exit2321 %154 = load i64, ptr %i7.016.i.i.sroa.gep, align 8 @@ -17475,7 +17475,7 @@ land.lhs.true1990: ; preds = %_ZN5eastl6bitsetILm br i1 %cmp.i2343.not, label %if.then.i.i, label %land.rhs1996 land.rhs1996: ; preds = %land.lhs.true1990 - %155 = load i64, ptr %i7.016.i.i.sroa.gep6246, align 16 + %155 = load i64, ptr %i7.016.i.i.sroa.gep6241, align 16 %and2.i2350 = and i64 %155, 1 %cmp.i2351 = icmp ne i64 %and2.i2350, 0 br label %if.then.i.i @@ -17495,10 +17495,10 @@ if.then.i.i: ; preds = %land.rhs1996, %land br label %if.then.i.i2730 if.then.i.i2730: ; preds = %if.then.i.i, %_ZNK5eastl6bitsetILm7EmE9find_nextEm.exit2770 - %j.16176 = phi i64 [ 0, %if.then.i.i ], [ %spec.select.i2769, %_ZNK5eastl6bitsetILm7EmE9find_nextEm.exit2770 ] - %i.16175 = phi i64 [ 0, %if.then.i.i ], [ %inc2047, %_ZNK5eastl6bitsetILm7EmE9find_nextEm.exit2770 ] - %inc2047 = add i64 %i.16175, 1 - %shl.i.i2731 = shl nsw i64 -2, %j.16176 + %j.16171 = phi i64 [ 0, %if.then.i.i ], [ %spec.select.i2769, %_ZNK5eastl6bitsetILm7EmE9find_nextEm.exit2770 ] + %i.16170 = phi i64 [ 0, %if.then.i.i ], [ %inc2047, %_ZNK5eastl6bitsetILm7EmE9find_nextEm.exit2770 ] + %inc2047 = add i64 %i.16170, 1 + %shl.i.i2731 = shl nsw i64 -2, %j.16171 %and.i.i2732 = and i64 %shl.i.i2731, 126 %tobool.not.i.i.i2733 = icmp eq i64 %and.i.i2732, 0 br i1 %tobool.not.i.i.i2733, label %if.then.i.i2854, label %_ZNK5eastl6bitsetILm7EmE9find_nextEm.exit2770 @@ -17534,10 +17534,10 @@ if.then.i.i2854: ; preds = %if.then.i.i2730, %_ br label %if.then.i.i2977 if.then.i.i2977: ; preds = %if.then.i.i2854, %_ZNK5eastl6bitsetILm32EmE9find_nextEm.exit3017 - %j.26178 = phi i64 [ 0, %if.then.i.i2854 ], [ %spec.select.i3016, %_ZNK5eastl6bitsetILm32EmE9find_nextEm.exit3017 ] - %i.26177 = phi i64 [ 0, %if.then.i.i2854 ], [ %inc2073, %_ZNK5eastl6bitsetILm32EmE9find_nextEm.exit3017 ] - %inc2073 = add i64 %i.26177, 1 - %shl.i.i2978 = shl nsw i64 -2, %j.26178 + %j.26173 = phi i64 [ 0, %if.then.i.i2854 ], [ %spec.select.i3016, %_ZNK5eastl6bitsetILm32EmE9find_nextEm.exit3017 ] + %i.26172 = phi i64 [ 0, %if.then.i.i2854 ], [ %inc2073, %_ZNK5eastl6bitsetILm32EmE9find_nextEm.exit3017 ] + %inc2073 = add i64 %i.26172, 1 + %shl.i.i2978 = shl nsw i64 -2, %j.26173 %and.i.i2979 = and i64 %shl.i.i2978, 4294967294 %tobool.not.i.i.i2980 = icmp eq i64 %and.i.i2979, 0 br i1 %tobool.not.i.i.i2980, label %if.then.i.i3104, label %_ZNK5eastl6bitsetILm32EmE9find_nextEm.exit3017 @@ -17586,10 +17586,10 @@ if.then.i.i3104: ; preds = %if.then.i.i2977, %_ br label %if.then.i.i3270 if.then.i.i3270: ; preds = %if.then.i.i3104, %_ZNK5eastl6bitsetILm41EmE9find_nextEm.exit3310 - %j.36180 = phi i64 [ 0, %if.then.i.i3104 ], [ %spec.select.i3309, %_ZNK5eastl6bitsetILm41EmE9find_nextEm.exit3310 ] - %i.36179 = phi i64 [ 0, %if.then.i.i3104 ], [ %inc2102, %_ZNK5eastl6bitsetILm41EmE9find_nextEm.exit3310 ] - %inc2102 = add i64 %i.36179, 1 - %shl.i.i3271 = shl nsw i64 -2, %j.36180 + %j.36175 = phi i64 [ 0, %if.then.i.i3104 ], [ %spec.select.i3309, %_ZNK5eastl6bitsetILm41EmE9find_nextEm.exit3310 ] + %i.36174 = phi i64 [ 0, %if.then.i.i3104 ], [ %inc2102, %_ZNK5eastl6bitsetILm41EmE9find_nextEm.exit3310 ] + %inc2102 = add i64 %i.36174, 1 + %shl.i.i3271 = shl nsw i64 -2, %j.36175 %and.i.i3272 = and i64 %shl.i.i3271, 2199023255550 %tobool.not.i.i.i3273 = icmp eq i64 %and.i.i3272, 0 br i1 %tobool.not.i.i.i3273, label %if.then.i.i3397, label %_ZNK5eastl6bitsetILm41EmE9find_nextEm.exit3310 @@ -17644,14 +17644,14 @@ if.then.i.i3397: ; preds = %if.then.i.i3270, %_ br label %for.body2131 for.body2131: ; preds = %if.then.i.i3397, %_ZNK5eastl6bitsetILm64EmE9find_nextEm.exit3603 - %j.46182 = phi i64 [ 0, %if.then.i.i3397 ], [ %spec.select.i3602, %_ZNK5eastl6bitsetILm64EmE9find_nextEm.exit3603 ] - %i.46181 = phi i64 [ 0, %if.then.i.i3397 ], [ %inc2132, %_ZNK5eastl6bitsetILm64EmE9find_nextEm.exit3603 ] - %inc2132 = add i64 %i.46181, 1 - %cmp.i.i3562 = icmp ult i64 %j.46182, 63 + %j.46177 = phi i64 [ 0, %if.then.i.i3397 ], [ %spec.select.i3602, %_ZNK5eastl6bitsetILm64EmE9find_nextEm.exit3603 ] + %i.46176 = phi i64 [ 0, %if.then.i.i3397 ], [ %inc2132, %_ZNK5eastl6bitsetILm64EmE9find_nextEm.exit3603 ] + %inc2132 = add i64 %i.46176, 1 + %cmp.i.i3562 = icmp ult i64 %j.46177, 63 br i1 %cmp.i.i3562, label %_ZNK5eastl6bitsetILm64EmE9find_nextEm.exit3603, label %for.end2135 _ZNK5eastl6bitsetILm64EmE9find_nextEm.exit3603: ; preds = %for.body2131 - %shl.i.i3564 = shl nsw i64 -2, %j.46182 + %shl.i.i3564 = shl nsw i64 -2, %j.46177 %and.i.i.i3568 = and i64 %shl.i.i3564, 4294967294 %cmp.i.i.i3569 = icmp eq i64 %and.i.i.i3568, 0 %shr.i.i.i3570 = lshr exact i64 %shl.i.i3564, 32 @@ -17719,14 +17719,14 @@ for.end2135: ; preds = %for.body2131, %_ZNK %arrayidx.i3618 = getelementptr inbounds i8, ptr %b79, i64 8 store i64 32767, ptr %arrayidx.i3618, align 8 %call.i3619 = call noundef i64 @_ZNK5eastl10BitsetBaseILm2EmE11DoFindFirstEv(ptr noundef nonnull align 8 dereferenceable(16) %b79) - %cmp2159.not6183 = icmp ugt i64 %call.i3619, 78 - br i1 %cmp2159.not6183, label %for.end2164, label %for.body2160 + %cmp2159.not6178 = icmp ugt i64 %call.i3619, 78 + br i1 %cmp2159.not6178, label %for.end2164, label %for.body2160 for.body2160: ; preds = %for.end2135, %for.body2160 - %j.56185 = phi i64 [ %call.i3621, %for.body2160 ], [ %call.i3619, %for.end2135 ] - %i.56184 = phi i64 [ %inc2161, %for.body2160 ], [ 0, %for.end2135 ] - %inc2161 = add i64 %i.56184, 1 - %call.i3621 = call noundef i64 @_ZNK5eastl10BitsetBaseILm2EmE10DoFindNextEm(ptr noundef nonnull align 8 dereferenceable(16) %b79, i64 noundef %j.56185) + %j.56180 = phi i64 [ %call.i3621, %for.body2160 ], [ %call.i3619, %for.end2135 ] + %i.56179 = phi i64 [ %inc2161, %for.body2160 ], [ 0, %for.end2135 ] + %inc2161 = add i64 %i.56179, 1 + %call.i3621 = call noundef i64 @_ZNK5eastl10BitsetBaseILm2EmE10DoFindNextEm(ptr noundef nonnull align 8 dereferenceable(16) %b79, i64 noundef %j.56180) %cmp2159.not = icmp ugt i64 %call.i3621, 78 br i1 %cmp2159.not, label %for.end2164, label %for.body2160, !llvm.loop !153 @@ -17762,14 +17762,14 @@ for.end2164: ; preds = %for.body2160, %for. %call2188 = call noundef i32 @_ZN2EA8UnitTest12TestInternal17EATEST_VERIFY_IMPEbRiPKciS4_(i1 noundef zeroext %cmp2187, ptr noundef nonnull align 4 dereferenceable(4) %nErrorCount, ptr noundef nonnull @.str, i32 noundef 1060, ptr noundef nonnull @.str.243) call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(16) %b128, i8 -1, i64 16, i1 false) %call.i3644 = call noundef i64 @_ZNK5eastl10BitsetBaseILm2EmE11DoFindFirstEv(ptr noundef nonnull align 8 dereferenceable(16) %b128) - %cmp2192.not6187 = icmp ugt i64 %call.i3644, 127 - br i1 %cmp2192.not6187, label %for.end2197, label %for.body2193 + %cmp2192.not6182 = icmp ugt i64 %call.i3644, 127 + br i1 %cmp2192.not6182, label %for.end2197, label %for.body2193 for.body2193: ; preds = %for.end2164, %for.body2193 - %j.66189 = phi i64 [ %call.i3646, %for.body2193 ], [ %call.i3644, %for.end2164 ] - %i.66188 = phi i64 [ %inc2194, %for.body2193 ], [ 0, %for.end2164 ] - %inc2194 = add i64 %i.66188, 1 - %call.i3646 = call noundef i64 @_ZNK5eastl10BitsetBaseILm2EmE10DoFindNextEm(ptr noundef nonnull align 8 dereferenceable(16) %b128, i64 noundef %j.66189) + %j.66184 = phi i64 [ %call.i3646, %for.body2193 ], [ %call.i3644, %for.end2164 ] + %i.66183 = phi i64 [ %inc2194, %for.body2193 ], [ 0, %for.end2164 ] + %inc2194 = add i64 %i.66183, 1 + %call.i3646 = call noundef i64 @_ZNK5eastl10BitsetBaseILm2EmE10DoFindNextEm(ptr noundef nonnull align 8 dereferenceable(16) %b128, i64 noundef %j.66184) %cmp2192.not = icmp ugt i64 %call.i3646, 127 br i1 %cmp2192.not, label %for.end2197, label %for.body2193, !llvm.loop !154 @@ -18032,8 +18032,8 @@ _ZN5eastl11GetFirstBitEm.exit.i.i3811: ; preds = %for.cond.i.i3807 br i1 %cmp3.not.i.i3844, label %if.end.i.i3851, label %_ZNK5eastl10BitsetBaseILm3EmE10DoFindNextEm.exit.i3845 if.end.i.i3851: ; preds = %_ZN5eastl11GetFirstBitEm.exit.i.i3811, %for.cond.i.i3807 - %exitcond6235.not = icmp eq i64 %word_index.0.i.i3808, 2 - br i1 %exitcond6235.not, label %_ZNK5eastl6bitsetILm137EmE9find_nextEm.exit3856, label %if.then7.i.i3853 + %exitcond6230.not = icmp eq i64 %word_index.0.i.i3808, 2 + br i1 %exitcond6230.not, label %_ZNK5eastl6bitsetILm137EmE9find_nextEm.exit3856, label %if.then7.i.i3853 if.then7.i.i3853: ; preds = %if.end.i.i3851 %inc5.i.i3854 = add nuw nsw i64 %word_index.0.i.i3808, 1 @@ -18105,8 +18105,8 @@ _ZN5eastl11GetFirstBitEm.exit.i.i3869: ; preds = %for.cond.i.i3865 br i1 %cmp3.not.i.i3902, label %if.end.i.i3909, label %_ZNK5eastl10BitsetBaseILm3EmE10DoFindNextEm.exit.i3903 if.end.i.i3909: ; preds = %_ZN5eastl11GetFirstBitEm.exit.i.i3869, %for.cond.i.i3865 - %exitcond6236.not = icmp eq i64 %word_index.0.i.i3866, 2 - br i1 %exitcond6236.not, label %_ZNK5eastl6bitsetILm137EmE9find_nextEm.exit3914, label %if.then7.i.i3911 + %exitcond6231.not = icmp eq i64 %word_index.0.i.i3866, 2 + br i1 %exitcond6231.not, label %_ZNK5eastl6bitsetILm137EmE9find_nextEm.exit3914, label %if.then7.i.i3911 if.then7.i.i3911: ; preds = %if.end.i.i3909 %inc5.i.i3912 = add nuw nsw i64 %word_index.0.i.i3866, 1 @@ -18178,8 +18178,8 @@ _ZN5eastl11GetFirstBitEm.exit.i.i3927: ; preds = %for.cond.i.i3923 br i1 %cmp3.not.i.i3960, label %if.end.i.i3967, label %_ZNK5eastl10BitsetBaseILm3EmE10DoFindNextEm.exit.i3961 if.end.i.i3967: ; preds = %_ZN5eastl11GetFirstBitEm.exit.i.i3927, %for.cond.i.i3923 - %exitcond6237.not = icmp eq i64 %word_index.0.i.i3924, 2 - br i1 %exitcond6237.not, label %_ZNK5eastl6bitsetILm137EmE9find_nextEm.exit3972, label %if.then7.i.i3969 + %exitcond6232.not = icmp eq i64 %word_index.0.i.i3924, 2 + br i1 %exitcond6232.not, label %_ZNK5eastl6bitsetILm137EmE9find_nextEm.exit3972, label %if.then7.i.i3969 if.then7.i.i3969: ; preds = %if.end.i.i3967 %inc5.i.i3970 = add nuw nsw i64 %word_index.0.i.i3924, 1 @@ -18251,8 +18251,8 @@ _ZN5eastl11GetFirstBitEm.exit.i.i3985: ; preds = %for.cond.i.i3981 br i1 %cmp3.not.i.i4018, label %if.end.i.i4025, label %_ZNK5eastl10BitsetBaseILm3EmE10DoFindNextEm.exit.i4019 if.end.i.i4025: ; preds = %_ZN5eastl11GetFirstBitEm.exit.i.i3985, %for.cond.i.i3981 - %exitcond6238.not = icmp eq i64 %word_index.0.i.i3982, 2 - br i1 %exitcond6238.not, label %_ZNK5eastl6bitsetILm137EmE9find_nextEm.exit4030, label %if.then7.i.i4027 + %exitcond6233.not = icmp eq i64 %word_index.0.i.i3982, 2 + br i1 %exitcond6233.not, label %_ZNK5eastl6bitsetILm137EmE9find_nextEm.exit4030, label %if.then7.i.i4027 if.then7.i.i4027: ; preds = %if.end.i.i4025 %inc5.i.i4028 = add nuw nsw i64 %word_index.0.i.i3982, 1 @@ -18324,8 +18324,8 @@ _ZN5eastl11GetFirstBitEm.exit.i.i4043: ; preds = %for.cond.i.i4039 br i1 %cmp3.not.i.i4076, label %if.end.i.i4083, label %_ZNK5eastl10BitsetBaseILm3EmE10DoFindNextEm.exit.i4077 if.end.i.i4083: ; preds = %_ZN5eastl11GetFirstBitEm.exit.i.i4043, %for.cond.i.i4039 - %exitcond6239.not = icmp eq i64 %word_index.0.i.i4040, 2 - br i1 %exitcond6239.not, label %_ZNK5eastl6bitsetILm137EmE9find_nextEm.exit4088, label %if.then7.i.i4085 + %exitcond6234.not = icmp eq i64 %word_index.0.i.i4040, 2 + br i1 %exitcond6234.not, label %_ZNK5eastl6bitsetILm137EmE9find_nextEm.exit4088, label %if.then7.i.i4085 if.then7.i.i4085: ; preds = %if.end.i.i4083 %inc5.i.i4086 = add nuw nsw i64 %word_index.0.i.i4040, 1 @@ -18395,21 +18395,21 @@ _ZN5eastl11GetFirstBitEm.exit.i.i4094: ; preds = %for.body.i.i4090 for.inc.i.i4134: ; preds = %_ZN5eastl11GetFirstBitEm.exit.i.i4094, %for.body.i.i4090 %inc.i.i4135 = add nuw nsw i64 %word_index.08.i.i4091, 1 %exitcond.not.i.i4136 = icmp eq i64 %inc.i.i4135, 3 - br i1 %exitcond.not.i.i4136, label %_ZNK5eastl6bitsetILm1EmE9find_lastEv.exit4321, label %for.body.i.i4090, !llvm.loop !155 + br i1 %exitcond.not.i.i4136, label %_ZNK5eastl6bitsetILm1EmE9find_lastEv.exit4316, label %for.body.i.i4090, !llvm.loop !155 _ZNK5eastl6bitsetILm137EmE10find_firstEv.exit4137: ; preds = %_ZN5eastl11GetFirstBitEm.exit.i.i4094 %conv.i.i4129 = zext nneg i32 %sub.i.i.i4126 to i64 %mul.i.i4130 = shl nuw nsw i64 %word_index.08.i.i4091, 6 %add.i.i4131 = add nuw nsw i64 %mul.i.i4130, %conv.i.i4129 %add.i.fr.i4132 = freeze i64 %add.i.i4131 - %cmp2233.not6191 = icmp ugt i64 %add.i.fr.i4132, 136 - br i1 %cmp2233.not6191, label %_ZNK5eastl6bitsetILm1EmE9find_lastEv.exit4321, label %if.then.i.i4140 + %cmp2233.not6186 = icmp ugt i64 %add.i.fr.i4132, 136 + br i1 %cmp2233.not6186, label %_ZNK5eastl6bitsetILm1EmE9find_lastEv.exit4316, label %if.then.i.i4140 if.then.i.i4140: ; preds = %_ZNK5eastl6bitsetILm137EmE10find_firstEv.exit4137, %_ZNK5eastl6bitsetILm137EmE9find_nextEm.exit4195 - %j.76193 = phi i64 [ %spec.select.i4189, %_ZNK5eastl6bitsetILm137EmE9find_nextEm.exit4195 ], [ %add.i.fr.i4132, %_ZNK5eastl6bitsetILm137EmE10find_firstEv.exit4137 ] - %i.76192 = phi i64 [ %inc2235, %_ZNK5eastl6bitsetILm137EmE9find_nextEm.exit4195 ], [ 0, %_ZNK5eastl6bitsetILm137EmE10find_firstEv.exit4137 ] - %inc2235 = add i64 %i.76192, 1 - %inc.i.i4138 = add nuw nsw i64 %j.76193, 1 + %j.76188 = phi i64 [ %spec.select.i4189, %_ZNK5eastl6bitsetILm137EmE9find_nextEm.exit4195 ], [ %add.i.fr.i4132, %_ZNK5eastl6bitsetILm137EmE10find_firstEv.exit4137 ] + %i.76187 = phi i64 [ %inc2235, %_ZNK5eastl6bitsetILm137EmE9find_nextEm.exit4195 ], [ 0, %_ZNK5eastl6bitsetILm137EmE10find_firstEv.exit4137 ] + %inc2235 = add i64 %i.76187, 1 + %inc.i.i4138 = add nuw nsw i64 %j.76188, 1 %shr.i.i4141 = lshr i64 %inc.i.i4138, 6 %and.i.i4142 = and i64 %inc.i.i4138, 63 %arrayidx.i.i4143 = getelementptr inbounds [3 x i64], ptr %b137, i64 0, i64 %shr.i.i4141 @@ -18461,8 +18461,8 @@ _ZN5eastl11GetFirstBitEm.exit.i.i4150: ; preds = %for.cond.i.i4146 br i1 %cmp3.not.i.i4183, label %if.end.i.i4190, label %_ZNK5eastl6bitsetILm137EmE9find_nextEm.exit4195 if.end.i.i4190: ; preds = %_ZN5eastl11GetFirstBitEm.exit.i.i4150, %for.cond.i.i4146 - %exitcond6240.not = icmp eq i64 %word_index.0.i.i4147, 2 - br i1 %exitcond6240.not, label %_ZNK5eastl6bitsetILm1EmE9find_lastEv.exit4321, label %if.then7.i.i4192 + %exitcond6235.not = icmp eq i64 %word_index.0.i.i4147, 2 + br i1 %exitcond6235.not, label %_ZNK5eastl6bitsetILm1EmE9find_lastEv.exit4316, label %if.then7.i.i4192 if.then7.i.i4192: ; preds = %if.end.i.i4190 %inc5.i.i4193 = add nuw nsw i64 %word_index.0.i.i4147, 1 @@ -18477,9 +18477,9 @@ _ZNK5eastl6bitsetILm137EmE9find_nextEm.exit4195: ; preds = %_ZN5eastl11GetFirst %add.i.fr.i4188 = freeze i64 %add.i.i4187 %spec.select.i4189 = call i64 @llvm.umin.i64(i64 %add.i.fr.i4188, i64 137) %cmp2233.not = icmp ugt i64 %add.i.fr.i4188, 136 - br i1 %cmp2233.not, label %_ZNK5eastl6bitsetILm1EmE9find_lastEv.exit4321, label %if.then.i.i4140, !llvm.loop !157 + br i1 %cmp2233.not, label %_ZNK5eastl6bitsetILm1EmE9find_lastEv.exit4316, label %if.then.i.i4140, !llvm.loop !157 -_ZNK5eastl6bitsetILm1EmE9find_lastEv.exit4321: ; preds = %for.inc.i.i4134, %_ZNK5eastl6bitsetILm137EmE9find_nextEm.exit4195, %if.end.i.i4190, %_ZNK5eastl6bitsetILm137EmE10find_firstEv.exit4137 +_ZNK5eastl6bitsetILm1EmE9find_lastEv.exit4316: ; preds = %for.inc.i.i4134, %_ZNK5eastl6bitsetILm137EmE9find_nextEm.exit4195, %if.end.i.i4190, %_ZNK5eastl6bitsetILm137EmE10find_firstEv.exit4137 %i.7.lcssa = phi i64 [ 0, %_ZNK5eastl6bitsetILm137EmE10find_firstEv.exit4137 ], [ %inc2235, %if.end.i.i4190 ], [ %inc2235, %_ZNK5eastl6bitsetILm137EmE9find_nextEm.exit4195 ], [ 0, %for.inc.i.i4134 ] %cmp2239 = icmp eq i64 %i.7.lcssa, 137 %call2240 = call noundef i32 @_ZN2EA8UnitTest12TestInternal17EATEST_VERIFY_IMPEbRiPKciS4_(i1 noundef zeroext %cmp2239, ptr noundef nonnull align 4 dereferenceable(4) %nErrorCount, ptr noundef nonnull @.str, i32 noundef 1096, ptr noundef nonnull @.str.249) @@ -18493,35 +18493,35 @@ _ZNK5eastl6bitsetILm1EmE9find_lastEv.exit4321: ; preds = %for.inc.i.i4134, %_ %call2279 = call noundef i32 @_ZN2EA8UnitTest12TestInternal17EATEST_VERIFY_IMPEbRiPKciS4_(i1 noundef zeroext true, ptr noundef nonnull align 4 dereferenceable(4) %nErrorCount, ptr noundef nonnull @.str, i32 noundef 1130, ptr noundef nonnull @.str.230) br label %for.body2284 -for.body2284: ; preds = %_ZNK5eastl6bitsetILm1EmE9find_lastEv.exit4321, %_ZNK5eastl6bitsetILm7EmE9find_prevEm.exit4587 - %j2242.16196 = phi i64 [ 6, %_ZNK5eastl6bitsetILm1EmE9find_lastEv.exit4321 ], [ %spec.select.i4586, %_ZNK5eastl6bitsetILm7EmE9find_prevEm.exit4587 ] - %i2241.16195 = phi i64 [ 0, %_ZNK5eastl6bitsetILm1EmE9find_lastEv.exit4321 ], [ %inc2285, %_ZNK5eastl6bitsetILm7EmE9find_prevEm.exit4587 ] - %inc2285 = add i64 %i2241.16195, 1 - %cmp.not.i.i4548 = icmp eq i64 %j2242.16196, 0 - br i1 %cmp.not.i.i4548, label %_ZNK5eastl6bitsetILm32EmE9find_prevEm.exit, label %_ZNK5eastl6bitsetILm7EmE9find_prevEm.exit4587 - -_ZNK5eastl6bitsetILm7EmE9find_prevEm.exit4587: ; preds = %for.body2284 - %sub.i.i4550 = sub nuw nsw i64 64, %j2242.16196 - %shr.i.i4551 = lshr i64 -1, %sub.i.i4550 - %tobool16.not.i.i.i4569 = icmp ult i64 %shr.i.i4551, 16 - %shr19.i.i.i4571 = lshr i64 1152921504606846975, %sub.i.i4550 - %x.addr.3.i.i.i4572 = select i1 %tobool16.not.i.i.i4569, i64 %shr.i.i4551, i64 %shr19.i.i.i4571 - %n.3.i.i.i4573 = select i1 %tobool16.not.i.i.i4569, i32 0, i32 4 - %tobool22.not.i.i.i4575 = icmp ult i64 %x.addr.3.i.i.i4572, 4 - %add24.i.i.i4576 = or disjoint i32 %n.3.i.i.i4573, 2 - %shr25.i.i.i4577 = lshr i64 %x.addr.3.i.i.i4572, 2 - %x.addr.4.i.i.i4578 = select i1 %tobool22.not.i.i.i4575, i64 %x.addr.3.i.i.i4572, i64 %shr25.i.i.i4577 - %n.4.i.i.i4579 = select i1 %tobool22.not.i.i.i4575, i32 %n.3.i.i.i4573, i32 %add24.i.i.i4576 - %tobool28.not.i.i.i4581 = icmp ugt i64 %x.addr.4.i.i.i4578, 1 - %add30.i.i.i4582 = zext i1 %tobool28.not.i.i.i4581 to i32 - %n.5.i.i.i4583 = or disjoint i32 %n.4.i.i.i4579, %add30.i.i.i4582 - %n.5.i.i.fr.i4584 = freeze i32 %n.5.i.i.i4583 - %narrow.i4585 = call i32 @llvm.umin.i32(i32 %n.5.i.i.fr.i4584, i32 7) - %spec.select.i4586 = zext nneg i32 %narrow.i4585 to i64 - %cmp2283.not = icmp ugt i32 %n.5.i.i.fr.i4584, 6 +for.body2284: ; preds = %_ZNK5eastl6bitsetILm1EmE9find_lastEv.exit4316, %_ZNK5eastl6bitsetILm7EmE9find_prevEm.exit4582 + %j2242.16191 = phi i64 [ 6, %_ZNK5eastl6bitsetILm1EmE9find_lastEv.exit4316 ], [ %spec.select.i4581, %_ZNK5eastl6bitsetILm7EmE9find_prevEm.exit4582 ] + %i2241.16190 = phi i64 [ 0, %_ZNK5eastl6bitsetILm1EmE9find_lastEv.exit4316 ], [ %inc2285, %_ZNK5eastl6bitsetILm7EmE9find_prevEm.exit4582 ] + %inc2285 = add i64 %i2241.16190, 1 + %cmp.not.i.i4543 = icmp eq i64 %j2242.16191, 0 + br i1 %cmp.not.i.i4543, label %_ZNK5eastl6bitsetILm32EmE9find_prevEm.exit, label %_ZNK5eastl6bitsetILm7EmE9find_prevEm.exit4582 + +_ZNK5eastl6bitsetILm7EmE9find_prevEm.exit4582: ; preds = %for.body2284 + %sub.i.i4545 = sub nuw nsw i64 64, %j2242.16191 + %shr.i.i4546 = lshr i64 -1, %sub.i.i4545 + %tobool16.not.i.i.i4564 = icmp ult i64 %shr.i.i4546, 16 + %shr19.i.i.i4566 = lshr i64 1152921504606846975, %sub.i.i4545 + %x.addr.3.i.i.i4567 = select i1 %tobool16.not.i.i.i4564, i64 %shr.i.i4546, i64 %shr19.i.i.i4566 + %n.3.i.i.i4568 = select i1 %tobool16.not.i.i.i4564, i32 0, i32 4 + %tobool22.not.i.i.i4570 = icmp ult i64 %x.addr.3.i.i.i4567, 4 + %add24.i.i.i4571 = or disjoint i32 %n.3.i.i.i4568, 2 + %shr25.i.i.i4572 = lshr i64 %x.addr.3.i.i.i4567, 2 + %x.addr.4.i.i.i4573 = select i1 %tobool22.not.i.i.i4570, i64 %x.addr.3.i.i.i4567, i64 %shr25.i.i.i4572 + %n.4.i.i.i4574 = select i1 %tobool22.not.i.i.i4570, i32 %n.3.i.i.i4568, i32 %add24.i.i.i4571 + %tobool28.not.i.i.i4576 = icmp ugt i64 %x.addr.4.i.i.i4573, 1 + %add30.i.i.i4577 = zext i1 %tobool28.not.i.i.i4576 to i32 + %n.5.i.i.i4578 = or disjoint i32 %n.4.i.i.i4574, %add30.i.i.i4577 + %n.5.i.i.fr.i4579 = freeze i32 %n.5.i.i.i4578 + %narrow.i4580 = call i32 @llvm.umin.i32(i32 %n.5.i.i.fr.i4579, i32 7) + %spec.select.i4581 = zext nneg i32 %narrow.i4580 to i64 + %cmp2283.not = icmp ugt i32 %n.5.i.i.fr.i4579, 6 br i1 %cmp2283.not, label %_ZNK5eastl6bitsetILm32EmE9find_prevEm.exit, label %for.body2284, !llvm.loop !158 -_ZNK5eastl6bitsetILm32EmE9find_prevEm.exit: ; preds = %for.body2284, %_ZNK5eastl6bitsetILm7EmE9find_prevEm.exit4587 +_ZNK5eastl6bitsetILm32EmE9find_prevEm.exit: ; preds = %for.body2284, %_ZNK5eastl6bitsetILm7EmE9find_prevEm.exit4582 %cmp2289 = icmp eq i64 %inc2285, 7 %call2290 = call noundef i32 @_ZN2EA8UnitTest12TestInternal17EATEST_VERIFY_IMPEbRiPKciS4_(i1 noundef zeroext %cmp2289, ptr noundef nonnull align 4 dereferenceable(4) %nErrorCount, ptr noundef nonnull @.str, i32 noundef 1135, ptr noundef nonnull @.str.232) %call2294 = call noundef i32 @_ZN2EA8UnitTest12TestInternal17EATEST_VERIFY_IMPEbRiPKciS4_(i1 noundef zeroext true, ptr noundef nonnull align 4 dereferenceable(4) %nErrorCount, ptr noundef nonnull @.str, i32 noundef 1141, ptr noundef nonnull @.str.233) @@ -18530,47 +18530,47 @@ _ZNK5eastl6bitsetILm32EmE9find_prevEm.exit: ; preds = %for.body2284, %_ZNK %call2305 = call noundef i32 @_ZN2EA8UnitTest12TestInternal17EATEST_VERIFY_IMPEbRiPKciS4_(i1 noundef zeroext true, ptr noundef nonnull align 4 dereferenceable(4) %nErrorCount, ptr noundef nonnull @.str, i32 noundef 1149, ptr noundef nonnull @.str.233) br label %for.body2310 -for.body2310: ; preds = %_ZNK5eastl6bitsetILm32EmE9find_prevEm.exit, %_ZNK5eastl6bitsetILm32EmE9find_prevEm.exit4816 - %j2242.26198 = phi i64 [ 31, %_ZNK5eastl6bitsetILm32EmE9find_prevEm.exit ], [ %spec.select.i4815, %_ZNK5eastl6bitsetILm32EmE9find_prevEm.exit4816 ] - %i2241.26197 = phi i64 [ 0, %_ZNK5eastl6bitsetILm32EmE9find_prevEm.exit ], [ %inc2311, %_ZNK5eastl6bitsetILm32EmE9find_prevEm.exit4816 ] - %inc2311 = add i64 %i2241.26197, 1 - %cmp.not.i.i4777 = icmp eq i64 %j2242.26198, 0 - br i1 %cmp.not.i.i4777, label %_ZNK5eastl6bitsetILm41EmE9find_prevEm.exit, label %_ZNK5eastl6bitsetILm32EmE9find_prevEm.exit4816 - -_ZNK5eastl6bitsetILm32EmE9find_prevEm.exit4816: ; preds = %for.body2310 - %sub.i.i4779 = sub nuw nsw i64 64, %j2242.26198 - %shr.i.i4780 = lshr i64 -1, %sub.i.i4779 - %tobool4.not.i.i.i4788 = icmp ult i64 %shr.i.i4780, 65536 - %shr7.i.i.i4790 = lshr i64 281474976710655, %sub.i.i4779 - %x.addr.1.i.i.i4791 = select i1 %tobool4.not.i.i.i4788, i64 %shr.i.i4780, i64 %shr7.i.i.i4790 - %n.1.i.i.i4792 = select i1 %tobool4.not.i.i.i4788, i32 0, i32 16 - %tobool10.not.i.i.i4793 = icmp ult i64 %x.addr.1.i.i.i4791, 256 - %add12.i.i.i4794 = or disjoint i32 %n.1.i.i.i4792, 8 - %shr13.i.i.i4795 = lshr i64 %x.addr.1.i.i.i4791, 8 - %x.addr.2.i.i.i4796 = select i1 %tobool10.not.i.i.i4793, i64 %x.addr.1.i.i.i4791, i64 %shr13.i.i.i4795 - %n.2.i.i.i4797 = select i1 %tobool10.not.i.i.i4793, i32 %n.1.i.i.i4792, i32 %add12.i.i.i4794 - %tobool16.not.i.i.i4798 = icmp ult i64 %x.addr.2.i.i.i4796, 16 - %add18.i.i.i4799 = or disjoint i32 %n.2.i.i.i4797, 4 - %shr19.i.i.i4800 = lshr i64 %x.addr.2.i.i.i4796, 4 - %x.addr.3.i.i.i4801 = select i1 %tobool16.not.i.i.i4798, i64 %x.addr.2.i.i.i4796, i64 %shr19.i.i.i4800 - %n.3.i.i.i4802 = select i1 %tobool16.not.i.i.i4798, i32 %n.2.i.i.i4797, i32 %add18.i.i.i4799 - %and21.i.i.i4803 = and i64 %x.addr.3.i.i.i4801, 4294967292 - %tobool22.not.i.i.i4804 = icmp eq i64 %and21.i.i.i4803, 0 - %add24.i.i.i4805 = or disjoint i32 %n.3.i.i.i4802, 2 - %shr25.i.i.i4806 = lshr i64 %x.addr.3.i.i.i4801, 2 - %x.addr.4.i.i.i4807 = select i1 %tobool22.not.i.i.i4804, i64 %x.addr.3.i.i.i4801, i64 %shr25.i.i.i4806 - %n.4.i.i.i4808 = select i1 %tobool22.not.i.i.i4804, i32 %n.3.i.i.i4802, i32 %add24.i.i.i4805 - %and27.i.i.i4809 = and i64 %x.addr.4.i.i.i4807, 4294967294 - %tobool28.not.i.i.i4810 = icmp ne i64 %and27.i.i.i4809, 0 - %add30.i.i.i4811 = zext i1 %tobool28.not.i.i.i4810 to i32 - %n.5.i.i.i4812 = add nuw nsw i32 %n.4.i.i.i4808, %add30.i.i.i4811 - %n.5.i.i.fr.i4813 = freeze i32 %n.5.i.i.i4812 - %narrow.i4814 = call i32 @llvm.umin.i32(i32 %n.5.i.i.fr.i4813, i32 32) - %spec.select.i4815 = zext nneg i32 %narrow.i4814 to i64 - %cmp2309.not = icmp ugt i32 %n.5.i.i.fr.i4813, 31 +for.body2310: ; preds = %_ZNK5eastl6bitsetILm32EmE9find_prevEm.exit, %_ZNK5eastl6bitsetILm32EmE9find_prevEm.exit4811 + %j2242.26193 = phi i64 [ 31, %_ZNK5eastl6bitsetILm32EmE9find_prevEm.exit ], [ %spec.select.i4810, %_ZNK5eastl6bitsetILm32EmE9find_prevEm.exit4811 ] + %i2241.26192 = phi i64 [ 0, %_ZNK5eastl6bitsetILm32EmE9find_prevEm.exit ], [ %inc2311, %_ZNK5eastl6bitsetILm32EmE9find_prevEm.exit4811 ] + %inc2311 = add i64 %i2241.26192, 1 + %cmp.not.i.i4772 = icmp eq i64 %j2242.26193, 0 + br i1 %cmp.not.i.i4772, label %_ZNK5eastl6bitsetILm41EmE9find_prevEm.exit, label %_ZNK5eastl6bitsetILm32EmE9find_prevEm.exit4811 + +_ZNK5eastl6bitsetILm32EmE9find_prevEm.exit4811: ; preds = %for.body2310 + %sub.i.i4774 = sub nuw nsw i64 64, %j2242.26193 + %shr.i.i4775 = lshr i64 -1, %sub.i.i4774 + %tobool4.not.i.i.i4783 = icmp ult i64 %shr.i.i4775, 65536 + %shr7.i.i.i4785 = lshr i64 281474976710655, %sub.i.i4774 + %x.addr.1.i.i.i4786 = select i1 %tobool4.not.i.i.i4783, i64 %shr.i.i4775, i64 %shr7.i.i.i4785 + %n.1.i.i.i4787 = select i1 %tobool4.not.i.i.i4783, i32 0, i32 16 + %tobool10.not.i.i.i4788 = icmp ult i64 %x.addr.1.i.i.i4786, 256 + %add12.i.i.i4789 = or disjoint i32 %n.1.i.i.i4787, 8 + %shr13.i.i.i4790 = lshr i64 %x.addr.1.i.i.i4786, 8 + %x.addr.2.i.i.i4791 = select i1 %tobool10.not.i.i.i4788, i64 %x.addr.1.i.i.i4786, i64 %shr13.i.i.i4790 + %n.2.i.i.i4792 = select i1 %tobool10.not.i.i.i4788, i32 %n.1.i.i.i4787, i32 %add12.i.i.i4789 + %tobool16.not.i.i.i4793 = icmp ult i64 %x.addr.2.i.i.i4791, 16 + %add18.i.i.i4794 = or disjoint i32 %n.2.i.i.i4792, 4 + %shr19.i.i.i4795 = lshr i64 %x.addr.2.i.i.i4791, 4 + %x.addr.3.i.i.i4796 = select i1 %tobool16.not.i.i.i4793, i64 %x.addr.2.i.i.i4791, i64 %shr19.i.i.i4795 + %n.3.i.i.i4797 = select i1 %tobool16.not.i.i.i4793, i32 %n.2.i.i.i4792, i32 %add18.i.i.i4794 + %and21.i.i.i4798 = and i64 %x.addr.3.i.i.i4796, 4294967292 + %tobool22.not.i.i.i4799 = icmp eq i64 %and21.i.i.i4798, 0 + %add24.i.i.i4800 = or disjoint i32 %n.3.i.i.i4797, 2 + %shr25.i.i.i4801 = lshr i64 %x.addr.3.i.i.i4796, 2 + %x.addr.4.i.i.i4802 = select i1 %tobool22.not.i.i.i4799, i64 %x.addr.3.i.i.i4796, i64 %shr25.i.i.i4801 + %n.4.i.i.i4803 = select i1 %tobool22.not.i.i.i4799, i32 %n.3.i.i.i4797, i32 %add24.i.i.i4800 + %and27.i.i.i4804 = and i64 %x.addr.4.i.i.i4802, 4294967294 + %tobool28.not.i.i.i4805 = icmp ne i64 %and27.i.i.i4804, 0 + %add30.i.i.i4806 = zext i1 %tobool28.not.i.i.i4805 to i32 + %n.5.i.i.i4807 = add nuw nsw i32 %n.4.i.i.i4803, %add30.i.i.i4806 + %n.5.i.i.fr.i4808 = freeze i32 %n.5.i.i.i4807 + %narrow.i4809 = call i32 @llvm.umin.i32(i32 %n.5.i.i.fr.i4808, i32 32) + %spec.select.i4810 = zext nneg i32 %narrow.i4809 to i64 + %cmp2309.not = icmp ugt i32 %n.5.i.i.fr.i4808, 31 br i1 %cmp2309.not, label %_ZNK5eastl6bitsetILm41EmE9find_prevEm.exit, label %for.body2310, !llvm.loop !159 -_ZNK5eastl6bitsetILm41EmE9find_prevEm.exit: ; preds = %for.body2310, %_ZNK5eastl6bitsetILm32EmE9find_prevEm.exit4816 +_ZNK5eastl6bitsetILm41EmE9find_prevEm.exit: ; preds = %for.body2310, %_ZNK5eastl6bitsetILm32EmE9find_prevEm.exit4811 %cmp2315 = icmp eq i64 %inc2311, 32 %call2316 = call noundef i32 @_ZN2EA8UnitTest12TestInternal17EATEST_VERIFY_IMPEbRiPKciS4_(i1 noundef zeroext %cmp2315, ptr noundef nonnull align 4 dereferenceable(4) %nErrorCount, ptr noundef nonnull @.str, i32 noundef 1154, ptr noundef nonnull @.str.235) %call2320 = call noundef i32 @_ZN2EA8UnitTest12TestInternal17EATEST_VERIFY_IMPEbRiPKciS4_(i1 noundef zeroext true, ptr noundef nonnull align 4 dereferenceable(4) %nErrorCount, ptr noundef nonnull @.str, i32 noundef 1160, ptr noundef nonnull @.str.236) @@ -18580,52 +18580,52 @@ _ZNK5eastl6bitsetILm41EmE9find_prevEm.exit: ; preds = %for.body2310, %_ZNK %call2335 = call noundef i32 @_ZN2EA8UnitTest12TestInternal17EATEST_VERIFY_IMPEbRiPKciS4_(i1 noundef zeroext true, ptr noundef nonnull align 4 dereferenceable(4) %nErrorCount, ptr noundef nonnull @.str, i32 noundef 1171, ptr noundef nonnull @.str.236) br label %for.body2340 -for.body2340: ; preds = %_ZNK5eastl6bitsetILm41EmE9find_prevEm.exit, %_ZNK5eastl6bitsetILm41EmE9find_prevEm.exit5088 - %j2242.36200 = phi i64 [ 40, %_ZNK5eastl6bitsetILm41EmE9find_prevEm.exit ], [ %spec.select.i5087, %_ZNK5eastl6bitsetILm41EmE9find_prevEm.exit5088 ] - %i2241.36199 = phi i64 [ 0, %_ZNK5eastl6bitsetILm41EmE9find_prevEm.exit ], [ %inc2341, %_ZNK5eastl6bitsetILm41EmE9find_prevEm.exit5088 ] - %inc2341 = add i64 %i2241.36199, 1 - %cmp.not.i.i5049 = icmp eq i64 %j2242.36200, 0 - br i1 %cmp.not.i.i5049, label %_ZNK5eastl6bitsetILm64EmE9find_prevEm.exit, label %_ZNK5eastl6bitsetILm41EmE9find_prevEm.exit5088 - -_ZNK5eastl6bitsetILm41EmE9find_prevEm.exit5088: ; preds = %for.body2340 - %sub.i.i5051 = sub nuw nsw i64 64, %j2242.36200 - %shr.i.i5052 = lshr i64 -1, %sub.i.i5051 - %tobool1.not.i.i.i5056 = icmp ult i64 %shr.i.i5052, 4294967296 - %shr.i.i.i5057 = lshr i64 4294967295, %sub.i.i5051 - %spec.select.i.i.i5058 = select i1 %tobool1.not.i.i.i5056, i64 %shr.i.i5052, i64 %shr.i.i.i5057 - %spec.select18.i.i.i5059 = select i1 %tobool1.not.i.i.i5056, i32 0, i32 32 - %tobool4.not.i.i.i5060 = icmp ult i64 %spec.select.i.i.i5058, 65536 - %add6.i.i.i5061 = or disjoint i32 %spec.select18.i.i.i5059, 16 - %shr7.i.i.i5062 = lshr i64 %spec.select.i.i.i5058, 16 - %x.addr.1.i.i.i5063 = select i1 %tobool4.not.i.i.i5060, i64 %spec.select.i.i.i5058, i64 %shr7.i.i.i5062 - %n.1.i.i.i5064 = select i1 %tobool4.not.i.i.i5060, i32 %spec.select18.i.i.i5059, i32 %add6.i.i.i5061 - %tobool10.not.i.i.i5065 = icmp ult i64 %x.addr.1.i.i.i5063, 256 - %add12.i.i.i5066 = or disjoint i32 %n.1.i.i.i5064, 8 - %shr13.i.i.i5067 = lshr i64 %x.addr.1.i.i.i5063, 8 - %x.addr.2.i.i.i5068 = select i1 %tobool10.not.i.i.i5065, i64 %x.addr.1.i.i.i5063, i64 %shr13.i.i.i5067 - %n.2.i.i.i5069 = select i1 %tobool10.not.i.i.i5065, i32 %n.1.i.i.i5064, i32 %add12.i.i.i5066 - %tobool16.not.i.i.i5070 = icmp ult i64 %x.addr.2.i.i.i5068, 16 - %add18.i.i.i5071 = or disjoint i32 %n.2.i.i.i5069, 4 - %shr19.i.i.i5072 = lshr i64 %x.addr.2.i.i.i5068, 4 - %x.addr.3.i.i.i5073 = select i1 %tobool16.not.i.i.i5070, i64 %x.addr.2.i.i.i5068, i64 %shr19.i.i.i5072 - %n.3.i.i.i5074 = select i1 %tobool16.not.i.i.i5070, i32 %n.2.i.i.i5069, i32 %add18.i.i.i5071 - %and21.i.i.i5075 = and i64 %x.addr.3.i.i.i5073, 4294967292 - %tobool22.not.i.i.i5076 = icmp eq i64 %and21.i.i.i5075, 0 - %add24.i.i.i5077 = add nuw nsw i32 %n.3.i.i.i5074, 2 - %shr25.i.i.i5078 = lshr i64 %x.addr.3.i.i.i5073, 2 - %x.addr.4.i.i.i5079 = select i1 %tobool22.not.i.i.i5076, i64 %x.addr.3.i.i.i5073, i64 %shr25.i.i.i5078 - %n.4.i.i.i5080 = select i1 %tobool22.not.i.i.i5076, i32 %n.3.i.i.i5074, i32 %add24.i.i.i5077 - %and27.i.i.i5081 = and i64 %x.addr.4.i.i.i5079, 4294967294 - %tobool28.not.i.i.i5082 = icmp ne i64 %and27.i.i.i5081, 0 - %add30.i.i.i5083 = zext i1 %tobool28.not.i.i.i5082 to i32 - %n.5.i.i.i5084 = add nuw nsw i32 %n.4.i.i.i5080, %add30.i.i.i5083 - %n.5.i.i.fr.i5085 = freeze i32 %n.5.i.i.i5084 - %narrow.i5086 = call i32 @llvm.umin.i32(i32 %n.5.i.i.fr.i5085, i32 41) - %spec.select.i5087 = zext nneg i32 %narrow.i5086 to i64 - %cmp2339.not = icmp ugt i32 %n.5.i.i.fr.i5085, 40 +for.body2340: ; preds = %_ZNK5eastl6bitsetILm41EmE9find_prevEm.exit, %_ZNK5eastl6bitsetILm41EmE9find_prevEm.exit5083 + %j2242.36195 = phi i64 [ 40, %_ZNK5eastl6bitsetILm41EmE9find_prevEm.exit ], [ %spec.select.i5082, %_ZNK5eastl6bitsetILm41EmE9find_prevEm.exit5083 ] + %i2241.36194 = phi i64 [ 0, %_ZNK5eastl6bitsetILm41EmE9find_prevEm.exit ], [ %inc2341, %_ZNK5eastl6bitsetILm41EmE9find_prevEm.exit5083 ] + %inc2341 = add i64 %i2241.36194, 1 + %cmp.not.i.i5044 = icmp eq i64 %j2242.36195, 0 + br i1 %cmp.not.i.i5044, label %_ZNK5eastl6bitsetILm64EmE9find_prevEm.exit, label %_ZNK5eastl6bitsetILm41EmE9find_prevEm.exit5083 + +_ZNK5eastl6bitsetILm41EmE9find_prevEm.exit5083: ; preds = %for.body2340 + %sub.i.i5046 = sub nuw nsw i64 64, %j2242.36195 + %shr.i.i5047 = lshr i64 -1, %sub.i.i5046 + %tobool1.not.i.i.i5051 = icmp ult i64 %shr.i.i5047, 4294967296 + %shr.i.i.i5052 = lshr i64 4294967295, %sub.i.i5046 + %spec.select.i.i.i5053 = select i1 %tobool1.not.i.i.i5051, i64 %shr.i.i5047, i64 %shr.i.i.i5052 + %spec.select18.i.i.i5054 = select i1 %tobool1.not.i.i.i5051, i32 0, i32 32 + %tobool4.not.i.i.i5055 = icmp ult i64 %spec.select.i.i.i5053, 65536 + %add6.i.i.i5056 = or disjoint i32 %spec.select18.i.i.i5054, 16 + %shr7.i.i.i5057 = lshr i64 %spec.select.i.i.i5053, 16 + %x.addr.1.i.i.i5058 = select i1 %tobool4.not.i.i.i5055, i64 %spec.select.i.i.i5053, i64 %shr7.i.i.i5057 + %n.1.i.i.i5059 = select i1 %tobool4.not.i.i.i5055, i32 %spec.select18.i.i.i5054, i32 %add6.i.i.i5056 + %tobool10.not.i.i.i5060 = icmp ult i64 %x.addr.1.i.i.i5058, 256 + %add12.i.i.i5061 = or disjoint i32 %n.1.i.i.i5059, 8 + %shr13.i.i.i5062 = lshr i64 %x.addr.1.i.i.i5058, 8 + %x.addr.2.i.i.i5063 = select i1 %tobool10.not.i.i.i5060, i64 %x.addr.1.i.i.i5058, i64 %shr13.i.i.i5062 + %n.2.i.i.i5064 = select i1 %tobool10.not.i.i.i5060, i32 %n.1.i.i.i5059, i32 %add12.i.i.i5061 + %tobool16.not.i.i.i5065 = icmp ult i64 %x.addr.2.i.i.i5063, 16 + %add18.i.i.i5066 = or disjoint i32 %n.2.i.i.i5064, 4 + %shr19.i.i.i5067 = lshr i64 %x.addr.2.i.i.i5063, 4 + %x.addr.3.i.i.i5068 = select i1 %tobool16.not.i.i.i5065, i64 %x.addr.2.i.i.i5063, i64 %shr19.i.i.i5067 + %n.3.i.i.i5069 = select i1 %tobool16.not.i.i.i5065, i32 %n.2.i.i.i5064, i32 %add18.i.i.i5066 + %and21.i.i.i5070 = and i64 %x.addr.3.i.i.i5068, 4294967292 + %tobool22.not.i.i.i5071 = icmp eq i64 %and21.i.i.i5070, 0 + %add24.i.i.i5072 = add nuw nsw i32 %n.3.i.i.i5069, 2 + %shr25.i.i.i5073 = lshr i64 %x.addr.3.i.i.i5068, 2 + %x.addr.4.i.i.i5074 = select i1 %tobool22.not.i.i.i5071, i64 %x.addr.3.i.i.i5068, i64 %shr25.i.i.i5073 + %n.4.i.i.i5075 = select i1 %tobool22.not.i.i.i5071, i32 %n.3.i.i.i5069, i32 %add24.i.i.i5072 + %and27.i.i.i5076 = and i64 %x.addr.4.i.i.i5074, 4294967294 + %tobool28.not.i.i.i5077 = icmp ne i64 %and27.i.i.i5076, 0 + %add30.i.i.i5078 = zext i1 %tobool28.not.i.i.i5077 to i32 + %n.5.i.i.i5079 = add nuw nsw i32 %n.4.i.i.i5075, %add30.i.i.i5078 + %n.5.i.i.fr.i5080 = freeze i32 %n.5.i.i.i5079 + %narrow.i5081 = call i32 @llvm.umin.i32(i32 %n.5.i.i.fr.i5080, i32 41) + %spec.select.i5082 = zext nneg i32 %narrow.i5081 to i64 + %cmp2339.not = icmp ugt i32 %n.5.i.i.fr.i5080, 40 br i1 %cmp2339.not, label %_ZNK5eastl6bitsetILm64EmE9find_prevEm.exit, label %for.body2340, !llvm.loop !160 -_ZNK5eastl6bitsetILm64EmE9find_prevEm.exit: ; preds = %for.body2340, %_ZNK5eastl6bitsetILm41EmE9find_prevEm.exit5088 +_ZNK5eastl6bitsetILm64EmE9find_prevEm.exit: ; preds = %for.body2340, %_ZNK5eastl6bitsetILm41EmE9find_prevEm.exit5083 %cmp2345 = icmp eq i64 %inc2341, 41 %call2346 = call noundef i32 @_ZN2EA8UnitTest12TestInternal17EATEST_VERIFY_IMPEbRiPKciS4_(i1 noundef zeroext %cmp2345, ptr noundef nonnull align 4 dereferenceable(4) %nErrorCount, ptr noundef nonnull @.str, i32 noundef 1176, ptr noundef nonnull @.str.238) %call2350 = call noundef i32 @_ZN2EA8UnitTest12TestInternal17EATEST_VERIFY_IMPEbRiPKciS4_(i1 noundef zeroext true, ptr noundef nonnull align 4 dereferenceable(4) %nErrorCount, ptr noundef nonnull @.str, i32 noundef 1182, ptr noundef nonnull @.str.239) @@ -18635,89 +18635,89 @@ _ZNK5eastl6bitsetILm64EmE9find_prevEm.exit: ; preds = %for.body2340, %_ZNK %call2365 = call noundef i32 @_ZN2EA8UnitTest12TestInternal17EATEST_VERIFY_IMPEbRiPKciS4_(i1 noundef zeroext true, ptr noundef nonnull align 4 dereferenceable(4) %nErrorCount, ptr noundef nonnull @.str, i32 noundef 1193, ptr noundef nonnull @.str.239) br label %for.body2370 -for.body2370: ; preds = %_ZNK5eastl6bitsetILm64EmE9find_prevEm.exit, %_ZNK5eastl6bitsetILm64EmE9find_prevEm.exit5360 - %j2242.46202 = phi i64 [ 63, %_ZNK5eastl6bitsetILm64EmE9find_prevEm.exit ], [ %spec.select.i5359, %_ZNK5eastl6bitsetILm64EmE9find_prevEm.exit5360 ] - %i2241.46201 = phi i64 [ 0, %_ZNK5eastl6bitsetILm64EmE9find_prevEm.exit ], [ %inc2371, %_ZNK5eastl6bitsetILm64EmE9find_prevEm.exit5360 ] - %inc2371 = add i64 %i2241.46201, 1 - %cmp.not.i.i5321 = icmp eq i64 %j2242.46202, 0 - br i1 %cmp.not.i.i5321, label %for.end2374, label %_ZNK5eastl6bitsetILm64EmE9find_prevEm.exit5360 - -_ZNK5eastl6bitsetILm64EmE9find_prevEm.exit5360: ; preds = %for.body2370 - %sub.i.i5323 = sub nuw nsw i64 64, %j2242.46202 - %shr.i.i5324 = lshr i64 -1, %sub.i.i5323 - %tobool1.not.i.i.i5328 = icmp ult i64 %shr.i.i5324, 4294967296 - %shr.i.i.i5329 = lshr i64 4294967295, %sub.i.i5323 - %spec.select.i.i.i5330 = select i1 %tobool1.not.i.i.i5328, i64 %shr.i.i5324, i64 %shr.i.i.i5329 - %spec.select18.i.i.i5331 = select i1 %tobool1.not.i.i.i5328, i32 0, i32 32 - %tobool4.not.i.i.i5332 = icmp ult i64 %spec.select.i.i.i5330, 65536 - %add6.i.i.i5333 = or disjoint i32 %spec.select18.i.i.i5331, 16 - %shr7.i.i.i5334 = lshr i64 %spec.select.i.i.i5330, 16 - %x.addr.1.i.i.i5335 = select i1 %tobool4.not.i.i.i5332, i64 %spec.select.i.i.i5330, i64 %shr7.i.i.i5334 - %n.1.i.i.i5336 = select i1 %tobool4.not.i.i.i5332, i32 %spec.select18.i.i.i5331, i32 %add6.i.i.i5333 - %tobool10.not.i.i.i5337 = icmp ult i64 %x.addr.1.i.i.i5335, 256 - %add12.i.i.i5338 = or disjoint i32 %n.1.i.i.i5336, 8 - %shr13.i.i.i5339 = lshr i64 %x.addr.1.i.i.i5335, 8 - %x.addr.2.i.i.i5340 = select i1 %tobool10.not.i.i.i5337, i64 %x.addr.1.i.i.i5335, i64 %shr13.i.i.i5339 - %n.2.i.i.i5341 = select i1 %tobool10.not.i.i.i5337, i32 %n.1.i.i.i5336, i32 %add12.i.i.i5338 - %tobool16.not.i.i.i5342 = icmp ult i64 %x.addr.2.i.i.i5340, 16 - %add18.i.i.i5343 = or disjoint i32 %n.2.i.i.i5341, 4 - %shr19.i.i.i5344 = lshr i64 %x.addr.2.i.i.i5340, 4 - %x.addr.3.i.i.i5345 = select i1 %tobool16.not.i.i.i5342, i64 %x.addr.2.i.i.i5340, i64 %shr19.i.i.i5344 - %n.3.i.i.i5346 = select i1 %tobool16.not.i.i.i5342, i32 %n.2.i.i.i5341, i32 %add18.i.i.i5343 - %and21.i.i.i5347 = and i64 %x.addr.3.i.i.i5345, 4294967292 - %tobool22.not.i.i.i5348 = icmp eq i64 %and21.i.i.i5347, 0 - %add24.i.i.i5349 = add nuw nsw i32 %n.3.i.i.i5346, 2 - %shr25.i.i.i5350 = lshr i64 %x.addr.3.i.i.i5345, 2 - %x.addr.4.i.i.i5351 = select i1 %tobool22.not.i.i.i5348, i64 %x.addr.3.i.i.i5345, i64 %shr25.i.i.i5350 - %n.4.i.i.i5352 = select i1 %tobool22.not.i.i.i5348, i32 %n.3.i.i.i5346, i32 %add24.i.i.i5349 - %and27.i.i.i5353 = and i64 %x.addr.4.i.i.i5351, 4294967294 - %tobool28.not.i.i.i5354 = icmp ne i64 %and27.i.i.i5353, 0 - %add30.i.i.i5355 = zext i1 %tobool28.not.i.i.i5354 to i32 - %n.5.i.i.i5356 = add nuw nsw i32 %n.4.i.i.i5352, %add30.i.i.i5355 - %n.5.i.i.fr.i5357 = freeze i32 %n.5.i.i.i5356 - %narrow.i5358 = call i32 @llvm.umin.i32(i32 %n.5.i.i.fr.i5357, i32 64) - %spec.select.i5359 = zext nneg i32 %narrow.i5358 to i64 - %cmp2369.not = icmp ugt i32 %n.5.i.i.fr.i5357, 63 +for.body2370: ; preds = %_ZNK5eastl6bitsetILm64EmE9find_prevEm.exit, %_ZNK5eastl6bitsetILm64EmE9find_prevEm.exit5355 + %j2242.46197 = phi i64 [ 63, %_ZNK5eastl6bitsetILm64EmE9find_prevEm.exit ], [ %spec.select.i5354, %_ZNK5eastl6bitsetILm64EmE9find_prevEm.exit5355 ] + %i2241.46196 = phi i64 [ 0, %_ZNK5eastl6bitsetILm64EmE9find_prevEm.exit ], [ %inc2371, %_ZNK5eastl6bitsetILm64EmE9find_prevEm.exit5355 ] + %inc2371 = add i64 %i2241.46196, 1 + %cmp.not.i.i5316 = icmp eq i64 %j2242.46197, 0 + br i1 %cmp.not.i.i5316, label %for.end2374, label %_ZNK5eastl6bitsetILm64EmE9find_prevEm.exit5355 + +_ZNK5eastl6bitsetILm64EmE9find_prevEm.exit5355: ; preds = %for.body2370 + %sub.i.i5318 = sub nuw nsw i64 64, %j2242.46197 + %shr.i.i5319 = lshr i64 -1, %sub.i.i5318 + %tobool1.not.i.i.i5323 = icmp ult i64 %shr.i.i5319, 4294967296 + %shr.i.i.i5324 = lshr i64 4294967295, %sub.i.i5318 + %spec.select.i.i.i5325 = select i1 %tobool1.not.i.i.i5323, i64 %shr.i.i5319, i64 %shr.i.i.i5324 + %spec.select18.i.i.i5326 = select i1 %tobool1.not.i.i.i5323, i32 0, i32 32 + %tobool4.not.i.i.i5327 = icmp ult i64 %spec.select.i.i.i5325, 65536 + %add6.i.i.i5328 = or disjoint i32 %spec.select18.i.i.i5326, 16 + %shr7.i.i.i5329 = lshr i64 %spec.select.i.i.i5325, 16 + %x.addr.1.i.i.i5330 = select i1 %tobool4.not.i.i.i5327, i64 %spec.select.i.i.i5325, i64 %shr7.i.i.i5329 + %n.1.i.i.i5331 = select i1 %tobool4.not.i.i.i5327, i32 %spec.select18.i.i.i5326, i32 %add6.i.i.i5328 + %tobool10.not.i.i.i5332 = icmp ult i64 %x.addr.1.i.i.i5330, 256 + %add12.i.i.i5333 = or disjoint i32 %n.1.i.i.i5331, 8 + %shr13.i.i.i5334 = lshr i64 %x.addr.1.i.i.i5330, 8 + %x.addr.2.i.i.i5335 = select i1 %tobool10.not.i.i.i5332, i64 %x.addr.1.i.i.i5330, i64 %shr13.i.i.i5334 + %n.2.i.i.i5336 = select i1 %tobool10.not.i.i.i5332, i32 %n.1.i.i.i5331, i32 %add12.i.i.i5333 + %tobool16.not.i.i.i5337 = icmp ult i64 %x.addr.2.i.i.i5335, 16 + %add18.i.i.i5338 = or disjoint i32 %n.2.i.i.i5336, 4 + %shr19.i.i.i5339 = lshr i64 %x.addr.2.i.i.i5335, 4 + %x.addr.3.i.i.i5340 = select i1 %tobool16.not.i.i.i5337, i64 %x.addr.2.i.i.i5335, i64 %shr19.i.i.i5339 + %n.3.i.i.i5341 = select i1 %tobool16.not.i.i.i5337, i32 %n.2.i.i.i5336, i32 %add18.i.i.i5338 + %and21.i.i.i5342 = and i64 %x.addr.3.i.i.i5340, 4294967292 + %tobool22.not.i.i.i5343 = icmp eq i64 %and21.i.i.i5342, 0 + %add24.i.i.i5344 = add nuw nsw i32 %n.3.i.i.i5341, 2 + %shr25.i.i.i5345 = lshr i64 %x.addr.3.i.i.i5340, 2 + %x.addr.4.i.i.i5346 = select i1 %tobool22.not.i.i.i5343, i64 %x.addr.3.i.i.i5340, i64 %shr25.i.i.i5345 + %n.4.i.i.i5347 = select i1 %tobool22.not.i.i.i5343, i32 %n.3.i.i.i5341, i32 %add24.i.i.i5344 + %and27.i.i.i5348 = and i64 %x.addr.4.i.i.i5346, 4294967294 + %tobool28.not.i.i.i5349 = icmp ne i64 %and27.i.i.i5348, 0 + %add30.i.i.i5350 = zext i1 %tobool28.not.i.i.i5349 to i32 + %n.5.i.i.i5351 = add nuw nsw i32 %n.4.i.i.i5347, %add30.i.i.i5350 + %n.5.i.i.fr.i5352 = freeze i32 %n.5.i.i.i5351 + %narrow.i5353 = call i32 @llvm.umin.i32(i32 %n.5.i.i.fr.i5352, i32 64) + %spec.select.i5354 = zext nneg i32 %narrow.i5353 to i64 + %cmp2369.not = icmp ugt i32 %n.5.i.i.fr.i5352, 63 br i1 %cmp2369.not, label %for.end2374, label %for.body2370, !llvm.loop !161 -for.end2374: ; preds = %for.body2370, %_ZNK5eastl6bitsetILm64EmE9find_prevEm.exit5360 +for.end2374: ; preds = %for.body2370, %_ZNK5eastl6bitsetILm64EmE9find_prevEm.exit5355 %cmp2375 = icmp eq i64 %inc2371, 64 %call2376 = call noundef i32 @_ZN2EA8UnitTest12TestInternal17EATEST_VERIFY_IMPEbRiPKciS4_(i1 noundef zeroext %cmp2375, ptr noundef nonnull align 4 dereferenceable(4) %nErrorCount, ptr noundef nonnull @.str, i32 noundef 1198, ptr noundef nonnull @.str.240) call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %b792377, i8 0, i64 16, i1 false) - %call.i5361 = call noundef i64 @_ZNK5eastl10BitsetBaseILm2EmE10DoFindLastEv(ptr noundef nonnull align 8 dereferenceable(16) %b792377) - %cmp2379 = icmp ugt i64 %call.i5361, 78 + %call.i5356 = call noundef i64 @_ZNK5eastl10BitsetBaseILm2EmE10DoFindLastEv(ptr noundef nonnull align 8 dereferenceable(16) %b792377) + %cmp2379 = icmp ugt i64 %call.i5356, 78 %call2380 = call noundef i32 @_ZN2EA8UnitTest12TestInternal17EATEST_VERIFY_IMPEbRiPKciS4_(i1 noundef zeroext %cmp2379, ptr noundef nonnull align 4 dereferenceable(4) %nErrorCount, ptr noundef nonnull @.str, i32 noundef 1204, ptr noundef nonnull @.str.241) %185 = load i64, ptr %b792377, align 8 - %or.i.i5368 = or i64 %185, 137573171201 - store i64 %or.i.i5368, ptr %b792377, align 8 - %call.i5369 = call noundef i64 @_ZNK5eastl10BitsetBaseILm2EmE10DoFindLastEv(ptr noundef nonnull align 8 dereferenceable(16) %b792377) - %call..i5370 = call noundef i64 @llvm.umin.i64(i64 %call.i5369, i64 79) - %cmp2385 = icmp eq i64 %call.i5369, 37 + %or.i.i5363 = or i64 %185, 137573171201 + store i64 %or.i.i5363, ptr %b792377, align 8 + %call.i5364 = call noundef i64 @_ZNK5eastl10BitsetBaseILm2EmE10DoFindLastEv(ptr noundef nonnull align 8 dereferenceable(16) %b792377) + %call..i5365 = call noundef i64 @llvm.umin.i64(i64 %call.i5364, i64 79) + %cmp2385 = icmp eq i64 %call.i5364, 37 %call2386 = call noundef i32 @_ZN2EA8UnitTest12TestInternal17EATEST_VERIFY_IMPEbRiPKciS4_(i1 noundef zeroext %cmp2385, ptr noundef nonnull align 4 dereferenceable(4) %nErrorCount, ptr noundef nonnull @.str, i32 noundef 1209, ptr noundef nonnull @.str.237) - %call.i5371 = call noundef i64 @_ZNK5eastl10BitsetBaseILm2EmE10DoFindPrevEm(ptr noundef nonnull align 8 dereferenceable(16) %b792377, i64 noundef %call..i5370) - %call..i5372 = call noundef i64 @llvm.umin.i64(i64 %call.i5371, i64 79) - %cmp2388 = icmp eq i64 %call.i5371, 27 + %call.i5366 = call noundef i64 @_ZNK5eastl10BitsetBaseILm2EmE10DoFindPrevEm(ptr noundef nonnull align 8 dereferenceable(16) %b792377, i64 noundef %call..i5365) + %call..i5367 = call noundef i64 @llvm.umin.i64(i64 %call.i5366, i64 79) + %cmp2388 = icmp eq i64 %call.i5366, 27 %call2389 = call noundef i32 @_ZN2EA8UnitTest12TestInternal17EATEST_VERIFY_IMPEbRiPKciS4_(i1 noundef zeroext %cmp2388, ptr noundef nonnull align 4 dereferenceable(4) %nErrorCount, ptr noundef nonnull @.str, i32 noundef 1211, ptr noundef nonnull @.str.234) - %call.i5373 = call noundef i64 @_ZNK5eastl10BitsetBaseILm2EmE10DoFindPrevEm(ptr noundef nonnull align 8 dereferenceable(16) %b792377, i64 noundef %call..i5372) - %call..i5374 = call noundef i64 @llvm.umin.i64(i64 %call.i5373, i64 79) - %cmp2391 = icmp eq i64 %call.i5373, 0 + %call.i5368 = call noundef i64 @_ZNK5eastl10BitsetBaseILm2EmE10DoFindPrevEm(ptr noundef nonnull align 8 dereferenceable(16) %b792377, i64 noundef %call..i5367) + %call..i5369 = call noundef i64 @llvm.umin.i64(i64 %call.i5368, i64 79) + %cmp2391 = icmp eq i64 %call.i5368, 0 %call2392 = call noundef i32 @_ZN2EA8UnitTest12TestInternal17EATEST_VERIFY_IMPEbRiPKciS4_(i1 noundef zeroext %cmp2391, ptr noundef nonnull align 4 dereferenceable(4) %nErrorCount, ptr noundef nonnull @.str, i32 noundef 1213, ptr noundef nonnull @.str.228) - %call.i5375 = call noundef i64 @_ZNK5eastl10BitsetBaseILm2EmE10DoFindPrevEm(ptr noundef nonnull align 8 dereferenceable(16) %b792377, i64 noundef %call..i5374) - %cmp2394 = icmp ugt i64 %call.i5375, 78 + %call.i5370 = call noundef i64 @_ZNK5eastl10BitsetBaseILm2EmE10DoFindPrevEm(ptr noundef nonnull align 8 dereferenceable(16) %b792377, i64 noundef %call..i5369) + %cmp2394 = icmp ugt i64 %call.i5370, 78 %call2395 = call noundef i32 @_ZN2EA8UnitTest12TestInternal17EATEST_VERIFY_IMPEbRiPKciS4_(i1 noundef zeroext %cmp2394, ptr noundef nonnull align 4 dereferenceable(4) %nErrorCount, ptr noundef nonnull @.str, i32 noundef 1215, ptr noundef nonnull @.str.241) store i64 -1, ptr %b792377, align 8 - %arrayidx.i5377 = getelementptr inbounds i8, ptr %b792377, i64 8 - store i64 32767, ptr %arrayidx.i5377, align 8 - %call.i5378 = call noundef i64 @_ZNK5eastl10BitsetBaseILm2EmE10DoFindLastEv(ptr noundef nonnull align 8 dereferenceable(16) %b792377) - %cmp2399.not6203 = icmp ugt i64 %call.i5378, 78 - br i1 %cmp2399.not6203, label %for.end2404, label %for.body2400 + %arrayidx.i5372 = getelementptr inbounds i8, ptr %b792377, i64 8 + store i64 32767, ptr %arrayidx.i5372, align 8 + %call.i5373 = call noundef i64 @_ZNK5eastl10BitsetBaseILm2EmE10DoFindLastEv(ptr noundef nonnull align 8 dereferenceable(16) %b792377) + %cmp2399.not6198 = icmp ugt i64 %call.i5373, 78 + br i1 %cmp2399.not6198, label %for.end2404, label %for.body2400 for.body2400: ; preds = %for.end2374, %for.body2400 - %j2242.56205 = phi i64 [ %call.i5380, %for.body2400 ], [ %call.i5378, %for.end2374 ] - %i2241.56204 = phi i64 [ %inc2401, %for.body2400 ], [ 0, %for.end2374 ] - %inc2401 = add i64 %i2241.56204, 1 - %call.i5380 = call noundef i64 @_ZNK5eastl10BitsetBaseILm2EmE10DoFindPrevEm(ptr noundef nonnull align 8 dereferenceable(16) %b792377, i64 noundef %j2242.56205) - %cmp2399.not = icmp ugt i64 %call.i5380, 78 + %j2242.56200 = phi i64 [ %call.i5375, %for.body2400 ], [ %call.i5373, %for.end2374 ] + %i2241.56199 = phi i64 [ %inc2401, %for.body2400 ], [ 0, %for.end2374 ] + %inc2401 = add i64 %i2241.56199, 1 + %call.i5375 = call noundef i64 @_ZNK5eastl10BitsetBaseILm2EmE10DoFindPrevEm(ptr noundef nonnull align 8 dereferenceable(16) %b792377, i64 noundef %j2242.56200) + %cmp2399.not = icmp ugt i64 %call.i5375, 78 br i1 %cmp2399.not, label %for.end2404, label %for.body2400, !llvm.loop !162 for.end2404: ; preds = %for.body2400, %for.end2374 @@ -18725,42 +18725,42 @@ for.end2404: ; preds = %for.body2400, %for. %cmp2405 = icmp eq i64 %i2241.5.lcssa, 79 %call2406 = call noundef i32 @_ZN2EA8UnitTest12TestInternal17EATEST_VERIFY_IMPEbRiPKciS4_(i1 noundef zeroext %cmp2405, ptr noundef nonnull align 4 dereferenceable(4) %nErrorCount, ptr noundef nonnull @.str, i32 noundef 1220, ptr noundef nonnull @.str.242) call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(16) %b1282407, i8 0, i64 16, i1 false) - %call.i5382 = call noundef i64 @_ZNK5eastl10BitsetBaseILm2EmE10DoFindLastEv(ptr noundef nonnull align 8 dereferenceable(16) %b1282407) - %cmp2409 = icmp ugt i64 %call.i5382, 127 + %call.i5377 = call noundef i64 @_ZNK5eastl10BitsetBaseILm2EmE10DoFindLastEv(ptr noundef nonnull align 8 dereferenceable(16) %b1282407) + %cmp2409 = icmp ugt i64 %call.i5377, 127 %call2410 = call noundef i32 @_ZN2EA8UnitTest12TestInternal17EATEST_VERIFY_IMPEbRiPKciS4_(i1 noundef zeroext %cmp2409, ptr noundef nonnull align 4 dereferenceable(4) %nErrorCount, ptr noundef nonnull @.str, i32 noundef 1226, ptr noundef nonnull @.str.243) %186 = load <2 x i64>, ptr %b1282407, align 16 %187 = or <2 x i64> %186, store <2 x i64> %187, ptr %b1282407, align 16 - %call.i5393 = call noundef i64 @_ZNK5eastl10BitsetBaseILm2EmE10DoFindLastEv(ptr noundef nonnull align 8 dereferenceable(16) %b1282407) - %call..i5394 = call noundef i64 @llvm.umin.i64(i64 %call.i5393, i64 128) - %cmp2416 = icmp eq i64 %call.i5393, 77 + %call.i5388 = call noundef i64 @_ZNK5eastl10BitsetBaseILm2EmE10DoFindLastEv(ptr noundef nonnull align 8 dereferenceable(16) %b1282407) + %call..i5389 = call noundef i64 @llvm.umin.i64(i64 %call.i5388, i64 128) + %cmp2416 = icmp eq i64 %call.i5388, 77 %call2417 = call noundef i32 @_ZN2EA8UnitTest12TestInternal17EATEST_VERIFY_IMPEbRiPKciS4_(i1 noundef zeroext %cmp2416, ptr noundef nonnull align 4 dereferenceable(4) %nErrorCount, ptr noundef nonnull @.str, i32 noundef 1232, ptr noundef nonnull @.str.244) - %call.i5395 = call noundef i64 @_ZNK5eastl10BitsetBaseILm2EmE10DoFindPrevEm(ptr noundef nonnull align 8 dereferenceable(16) %b1282407, i64 noundef %call..i5394) - %call..i5396 = call noundef i64 @llvm.umin.i64(i64 %call.i5395, i64 128) - %cmp2419 = icmp eq i64 %call.i5395, 37 + %call.i5390 = call noundef i64 @_ZNK5eastl10BitsetBaseILm2EmE10DoFindPrevEm(ptr noundef nonnull align 8 dereferenceable(16) %b1282407, i64 noundef %call..i5389) + %call..i5391 = call noundef i64 @llvm.umin.i64(i64 %call.i5390, i64 128) + %cmp2419 = icmp eq i64 %call.i5390, 37 %call2420 = call noundef i32 @_ZN2EA8UnitTest12TestInternal17EATEST_VERIFY_IMPEbRiPKciS4_(i1 noundef zeroext %cmp2419, ptr noundef nonnull align 4 dereferenceable(4) %nErrorCount, ptr noundef nonnull @.str, i32 noundef 1234, ptr noundef nonnull @.str.237) - %call.i5397 = call noundef i64 @_ZNK5eastl10BitsetBaseILm2EmE10DoFindPrevEm(ptr noundef nonnull align 8 dereferenceable(16) %b1282407, i64 noundef %call..i5396) - %call..i5398 = call noundef i64 @llvm.umin.i64(i64 %call.i5397, i64 128) - %cmp2422 = icmp eq i64 %call.i5397, 27 + %call.i5392 = call noundef i64 @_ZNK5eastl10BitsetBaseILm2EmE10DoFindPrevEm(ptr noundef nonnull align 8 dereferenceable(16) %b1282407, i64 noundef %call..i5391) + %call..i5393 = call noundef i64 @llvm.umin.i64(i64 %call.i5392, i64 128) + %cmp2422 = icmp eq i64 %call.i5392, 27 %call2423 = call noundef i32 @_ZN2EA8UnitTest12TestInternal17EATEST_VERIFY_IMPEbRiPKciS4_(i1 noundef zeroext %cmp2422, ptr noundef nonnull align 4 dereferenceable(4) %nErrorCount, ptr noundef nonnull @.str, i32 noundef 1236, ptr noundef nonnull @.str.234) - %call.i5399 = call noundef i64 @_ZNK5eastl10BitsetBaseILm2EmE10DoFindPrevEm(ptr noundef nonnull align 8 dereferenceable(16) %b1282407, i64 noundef %call..i5398) - %call..i5400 = call noundef i64 @llvm.umin.i64(i64 %call.i5399, i64 128) - %cmp2425 = icmp eq i64 %call.i5399, 0 + %call.i5394 = call noundef i64 @_ZNK5eastl10BitsetBaseILm2EmE10DoFindPrevEm(ptr noundef nonnull align 8 dereferenceable(16) %b1282407, i64 noundef %call..i5393) + %call..i5395 = call noundef i64 @llvm.umin.i64(i64 %call.i5394, i64 128) + %cmp2425 = icmp eq i64 %call.i5394, 0 %call2426 = call noundef i32 @_ZN2EA8UnitTest12TestInternal17EATEST_VERIFY_IMPEbRiPKciS4_(i1 noundef zeroext %cmp2425, ptr noundef nonnull align 4 dereferenceable(4) %nErrorCount, ptr noundef nonnull @.str, i32 noundef 1238, ptr noundef nonnull @.str.228) - %call.i5401 = call noundef i64 @_ZNK5eastl10BitsetBaseILm2EmE10DoFindPrevEm(ptr noundef nonnull align 8 dereferenceable(16) %b1282407, i64 noundef %call..i5400) - %cmp2428 = icmp ugt i64 %call.i5401, 127 + %call.i5396 = call noundef i64 @_ZNK5eastl10BitsetBaseILm2EmE10DoFindPrevEm(ptr noundef nonnull align 8 dereferenceable(16) %b1282407, i64 noundef %call..i5395) + %cmp2428 = icmp ugt i64 %call.i5396, 127 %call2429 = call noundef i32 @_ZN2EA8UnitTest12TestInternal17EATEST_VERIFY_IMPEbRiPKciS4_(i1 noundef zeroext %cmp2428, ptr noundef nonnull align 4 dereferenceable(4) %nErrorCount, ptr noundef nonnull @.str, i32 noundef 1240, ptr noundef nonnull @.str.243) call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(16) %b1282407, i8 -1, i64 16, i1 false) - %call.i5403 = call noundef i64 @_ZNK5eastl10BitsetBaseILm2EmE10DoFindLastEv(ptr noundef nonnull align 8 dereferenceable(16) %b1282407) - %cmp2433.not6207 = icmp ugt i64 %call.i5403, 127 - br i1 %cmp2433.not6207, label %for.end2438, label %for.body2434 + %call.i5398 = call noundef i64 @_ZNK5eastl10BitsetBaseILm2EmE10DoFindLastEv(ptr noundef nonnull align 8 dereferenceable(16) %b1282407) + %cmp2433.not6202 = icmp ugt i64 %call.i5398, 127 + br i1 %cmp2433.not6202, label %for.end2438, label %for.body2434 for.body2434: ; preds = %for.end2404, %for.body2434 - %j2242.66209 = phi i64 [ %call.i5405, %for.body2434 ], [ %call.i5403, %for.end2404 ] - %i2241.66208 = phi i64 [ %inc2435, %for.body2434 ], [ 0, %for.end2404 ] - %inc2435 = add i64 %i2241.66208, 1 - %call.i5405 = call noundef i64 @_ZNK5eastl10BitsetBaseILm2EmE10DoFindPrevEm(ptr noundef nonnull align 8 dereferenceable(16) %b1282407, i64 noundef %j2242.66209) - %cmp2433.not = icmp ugt i64 %call.i5405, 127 + %j2242.66204 = phi i64 [ %call.i5400, %for.body2434 ], [ %call.i5398, %for.end2404 ] + %i2241.66203 = phi i64 [ %inc2435, %for.body2434 ], [ 0, %for.end2404 ] + %inc2435 = add i64 %i2241.66203, 1 + %call.i5400 = call noundef i64 @_ZNK5eastl10BitsetBaseILm2EmE10DoFindPrevEm(ptr noundef nonnull align 8 dereferenceable(16) %b1282407, i64 noundef %j2242.66204) + %cmp2433.not = icmp ugt i64 %call.i5400, 127 br i1 %cmp2433.not, label %for.end2438, label %for.body2434, !llvm.loop !163 for.end2438: ; preds = %for.body2434, %for.end2404 @@ -18768,715 +18768,715 @@ for.end2438: ; preds = %for.body2434, %for. %cmp2439 = icmp eq i64 %i2241.6.lcssa, 128 %call2440 = call noundef i32 @_ZN2EA8UnitTest12TestInternal17EATEST_VERIFY_IMPEbRiPKciS4_(i1 noundef zeroext %cmp2439, ptr noundef nonnull align 4 dereferenceable(4) %nErrorCount, ptr noundef nonnull @.str, i32 noundef 1245, ptr noundef nonnull @.str.245) call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %b1372441, i8 0, i64 24, i1 false) - br label %for.body.i.i5407 - -for.body.i.i5407: ; preds = %for.inc.i.i5446, %for.end2438 - %word_index.07.i.i = phi i64 [ 3, %for.end2438 ], [ %sub.i.i5408, %for.inc.i.i5446 ] - %sub.i.i5408 = add nsw i64 %word_index.07.i.i, -1 - %arrayidx.i.i5409 = getelementptr inbounds [3 x i64], ptr %b1372441, i64 0, i64 %sub.i.i5408 - %188 = load i64, ptr %arrayidx.i.i5409, align 8 - %tobool.not.i.i.i5410 = icmp eq i64 %188, 0 - br i1 %tobool.not.i.i.i5410, label %for.inc.i.i5446, label %_ZN5eastl10GetLastBitEm.exit.i.i - -_ZN5eastl10GetLastBitEm.exit.i.i: ; preds = %for.body.i.i5407 - %tobool1.not.i.i.i5411 = icmp ult i64 %188, 4294967296 - %shr.i.i.i5412 = lshr i64 %188, 32 - %spec.select.i.i.i5413 = select i1 %tobool1.not.i.i.i5411, i64 %188, i64 %shr.i.i.i5412 - %spec.select18.i.i.i5414 = select i1 %tobool1.not.i.i.i5411, i32 0, i32 32 - %tobool4.not.i.i.i5415 = icmp ult i64 %spec.select.i.i.i5413, 65536 - %add6.i.i.i5416 = or disjoint i32 %spec.select18.i.i.i5414, 16 - %shr7.i.i.i5417 = lshr i64 %spec.select.i.i.i5413, 16 - %x.addr.1.i.i.i5418 = select i1 %tobool4.not.i.i.i5415, i64 %spec.select.i.i.i5413, i64 %shr7.i.i.i5417 - %n.1.i.i.i5419 = select i1 %tobool4.not.i.i.i5415, i32 %spec.select18.i.i.i5414, i32 %add6.i.i.i5416 - %tobool10.not.i.i.i5420 = icmp ult i64 %x.addr.1.i.i.i5418, 256 - %add12.i.i.i5421 = or disjoint i32 %n.1.i.i.i5419, 8 - %shr13.i.i.i5422 = lshr i64 %x.addr.1.i.i.i5418, 8 - %x.addr.2.i.i.i5423 = select i1 %tobool10.not.i.i.i5420, i64 %x.addr.1.i.i.i5418, i64 %shr13.i.i.i5422 - %n.2.i.i.i5424 = select i1 %tobool10.not.i.i.i5420, i32 %n.1.i.i.i5419, i32 %add12.i.i.i5421 - %tobool16.not.i.i.i5425 = icmp ult i64 %x.addr.2.i.i.i5423, 16 - %add18.i.i.i5426 = or disjoint i32 %n.2.i.i.i5424, 4 - %shr19.i.i.i5427 = lshr i64 %x.addr.2.i.i.i5423, 4 - %x.addr.3.i.i.i5428 = select i1 %tobool16.not.i.i.i5425, i64 %x.addr.2.i.i.i5423, i64 %shr19.i.i.i5427 - %n.3.i.i.i5429 = select i1 %tobool16.not.i.i.i5425, i32 %n.2.i.i.i5424, i32 %add18.i.i.i5426 - %and21.i.i.i5430 = and i64 %x.addr.3.i.i.i5428, 4294967292 - %tobool22.not.i.i.i5431 = icmp eq i64 %and21.i.i.i5430, 0 - %add24.i.i.i5432 = add nuw nsw i32 %n.3.i.i.i5429, 2 - %shr25.i.i.i5433 = lshr i64 %x.addr.3.i.i.i5428, 2 - %x.addr.4.i.i.i5434 = select i1 %tobool22.not.i.i.i5431, i64 %x.addr.3.i.i.i5428, i64 %shr25.i.i.i5433 - %n.4.i.i.i5435 = select i1 %tobool22.not.i.i.i5431, i32 %n.3.i.i.i5429, i32 %add24.i.i.i5432 - %and27.i.i.i5436 = and i64 %x.addr.4.i.i.i5434, 4294967294 - %tobool28.not.i.i.i5437 = icmp ne i64 %and27.i.i.i5436, 0 - %add30.i.i.i5438 = zext i1 %tobool28.not.i.i.i5437 to i32 - %n.5.i.i.i5439 = add nuw nsw i32 %n.4.i.i.i5435, %add30.i.i.i5438 - %cmp2.not.i.i5440 = icmp eq i32 %n.5.i.i.i5439, 64 - br i1 %cmp2.not.i.i5440, label %for.inc.i.i5446, label %_ZNK5eastl10BitsetBaseILm3EmE10DoFindLastEv.exit.i - -for.inc.i.i5446: ; preds = %_ZN5eastl10GetLastBitEm.exit.i.i, %for.body.i.i5407 - %cmp.not.i.i5447 = icmp eq i64 %sub.i.i5408, 0 - br i1 %cmp.not.i.i5447, label %_ZNK5eastl6bitsetILm137EmE9find_lastEv.exit, label %for.body.i.i5407, !llvm.loop !164 + br label %for.body.i.i5402 + +for.body.i.i5402: ; preds = %for.inc.i.i5441, %for.end2438 + %word_index.07.i.i = phi i64 [ 3, %for.end2438 ], [ %sub.i.i5403, %for.inc.i.i5441 ] + %sub.i.i5403 = add nsw i64 %word_index.07.i.i, -1 + %arrayidx.i.i5404 = getelementptr inbounds [3 x i64], ptr %b1372441, i64 0, i64 %sub.i.i5403 + %188 = load i64, ptr %arrayidx.i.i5404, align 8 + %tobool.not.i.i.i5405 = icmp eq i64 %188, 0 + br i1 %tobool.not.i.i.i5405, label %for.inc.i.i5441, label %_ZN5eastl10GetLastBitEm.exit.i.i + +_ZN5eastl10GetLastBitEm.exit.i.i: ; preds = %for.body.i.i5402 + %tobool1.not.i.i.i5406 = icmp ult i64 %188, 4294967296 + %shr.i.i.i5407 = lshr i64 %188, 32 + %spec.select.i.i.i5408 = select i1 %tobool1.not.i.i.i5406, i64 %188, i64 %shr.i.i.i5407 + %spec.select18.i.i.i5409 = select i1 %tobool1.not.i.i.i5406, i32 0, i32 32 + %tobool4.not.i.i.i5410 = icmp ult i64 %spec.select.i.i.i5408, 65536 + %add6.i.i.i5411 = or disjoint i32 %spec.select18.i.i.i5409, 16 + %shr7.i.i.i5412 = lshr i64 %spec.select.i.i.i5408, 16 + %x.addr.1.i.i.i5413 = select i1 %tobool4.not.i.i.i5410, i64 %spec.select.i.i.i5408, i64 %shr7.i.i.i5412 + %n.1.i.i.i5414 = select i1 %tobool4.not.i.i.i5410, i32 %spec.select18.i.i.i5409, i32 %add6.i.i.i5411 + %tobool10.not.i.i.i5415 = icmp ult i64 %x.addr.1.i.i.i5413, 256 + %add12.i.i.i5416 = or disjoint i32 %n.1.i.i.i5414, 8 + %shr13.i.i.i5417 = lshr i64 %x.addr.1.i.i.i5413, 8 + %x.addr.2.i.i.i5418 = select i1 %tobool10.not.i.i.i5415, i64 %x.addr.1.i.i.i5413, i64 %shr13.i.i.i5417 + %n.2.i.i.i5419 = select i1 %tobool10.not.i.i.i5415, i32 %n.1.i.i.i5414, i32 %add12.i.i.i5416 + %tobool16.not.i.i.i5420 = icmp ult i64 %x.addr.2.i.i.i5418, 16 + %add18.i.i.i5421 = or disjoint i32 %n.2.i.i.i5419, 4 + %shr19.i.i.i5422 = lshr i64 %x.addr.2.i.i.i5418, 4 + %x.addr.3.i.i.i5423 = select i1 %tobool16.not.i.i.i5420, i64 %x.addr.2.i.i.i5418, i64 %shr19.i.i.i5422 + %n.3.i.i.i5424 = select i1 %tobool16.not.i.i.i5420, i32 %n.2.i.i.i5419, i32 %add18.i.i.i5421 + %and21.i.i.i5425 = and i64 %x.addr.3.i.i.i5423, 4294967292 + %tobool22.not.i.i.i5426 = icmp eq i64 %and21.i.i.i5425, 0 + %add24.i.i.i5427 = add nuw nsw i32 %n.3.i.i.i5424, 2 + %shr25.i.i.i5428 = lshr i64 %x.addr.3.i.i.i5423, 2 + %x.addr.4.i.i.i5429 = select i1 %tobool22.not.i.i.i5426, i64 %x.addr.3.i.i.i5423, i64 %shr25.i.i.i5428 + %n.4.i.i.i5430 = select i1 %tobool22.not.i.i.i5426, i32 %n.3.i.i.i5424, i32 %add24.i.i.i5427 + %and27.i.i.i5431 = and i64 %x.addr.4.i.i.i5429, 4294967294 + %tobool28.not.i.i.i5432 = icmp ne i64 %and27.i.i.i5431, 0 + %add30.i.i.i5433 = zext i1 %tobool28.not.i.i.i5432 to i32 + %n.5.i.i.i5434 = add nuw nsw i32 %n.4.i.i.i5430, %add30.i.i.i5433 + %cmp2.not.i.i5435 = icmp eq i32 %n.5.i.i.i5434, 64 + br i1 %cmp2.not.i.i5435, label %for.inc.i.i5441, label %_ZNK5eastl10BitsetBaseILm3EmE10DoFindLastEv.exit.i + +for.inc.i.i5441: ; preds = %_ZN5eastl10GetLastBitEm.exit.i.i, %for.body.i.i5402 + %cmp.not.i.i5442 = icmp eq i64 %sub.i.i5403, 0 + br i1 %cmp.not.i.i5442, label %_ZNK5eastl6bitsetILm137EmE9find_lastEv.exit, label %for.body.i.i5402, !llvm.loop !164 _ZNK5eastl10BitsetBaseILm3EmE10DoFindLastEv.exit.i: ; preds = %_ZN5eastl10GetLastBitEm.exit.i.i - %conv.i.i5441 = zext nneg i32 %n.5.i.i.i5439 to i64 - %mul.i.i5442 = shl i64 %sub.i.i5408, 6 - %add.i.i5443 = add i64 %mul.i.i5442, %conv.i.i5441 - %add.i.fr.i5444 = freeze i64 %add.i.i5443 - %spec.select.i5445 = call i64 @llvm.umin.i64(i64 %add.i.fr.i5444, i64 137) + %conv.i.i5436 = zext nneg i32 %n.5.i.i.i5434 to i64 + %mul.i.i5437 = shl i64 %sub.i.i5403, 6 + %add.i.i5438 = add i64 %mul.i.i5437, %conv.i.i5436 + %add.i.fr.i5439 = freeze i64 %add.i.i5438 + %spec.select.i5440 = call i64 @llvm.umin.i64(i64 %add.i.fr.i5439, i64 137) br label %_ZNK5eastl6bitsetILm137EmE9find_lastEv.exit -_ZNK5eastl6bitsetILm137EmE9find_lastEv.exit: ; preds = %for.inc.i.i5446, %_ZNK5eastl10BitsetBaseILm3EmE10DoFindLastEv.exit.i - %189 = phi i64 [ %spec.select.i5445, %_ZNK5eastl10BitsetBaseILm3EmE10DoFindLastEv.exit.i ], [ 137, %for.inc.i.i5446 ] +_ZNK5eastl6bitsetILm137EmE9find_lastEv.exit: ; preds = %for.inc.i.i5441, %_ZNK5eastl10BitsetBaseILm3EmE10DoFindLastEv.exit.i + %189 = phi i64 [ %spec.select.i5440, %_ZNK5eastl10BitsetBaseILm3EmE10DoFindLastEv.exit.i ], [ 137, %for.inc.i.i5441 ] %cmp2443 = icmp eq i64 %189, 137 %call2444 = call noundef i32 @_ZN2EA8UnitTest12TestInternal17EATEST_VERIFY_IMPEbRiPKciS4_(i1 noundef zeroext %cmp2443, ptr noundef nonnull align 4 dereferenceable(4) %nErrorCount, ptr noundef nonnull @.str, i32 noundef 1251, ptr noundef nonnull @.str.246) store i64 137573171201, ptr %b1372441, align 8 - %arrayidx.i.i5455 = getelementptr inbounds i8, ptr %b1372441, i64 8 - store i64 34359746560, ptr %arrayidx.i.i5455, align 8 - %arrayidx.i.i5461 = getelementptr inbounds i8, ptr %b1372441, i64 16 - store i64 256, ptr %arrayidx.i.i5461, align 8 - br label %for.body.i.i5463 - -for.body.i.i5463: ; preds = %for.inc.i.i5505, %_ZNK5eastl6bitsetILm137EmE9find_lastEv.exit - %word_index.07.i.i5464 = phi i64 [ 3, %_ZNK5eastl6bitsetILm137EmE9find_lastEv.exit ], [ %sub.i.i5465, %for.inc.i.i5505 ] - %sub.i.i5465 = add nsw i64 %word_index.07.i.i5464, -1 - %arrayidx.i.i5466 = getelementptr inbounds [3 x i64], ptr %b1372441, i64 0, i64 %sub.i.i5465 - %190 = load i64, ptr %arrayidx.i.i5466, align 8 - %tobool.not.i.i.i5467 = icmp eq i64 %190, 0 - br i1 %tobool.not.i.i.i5467, label %for.inc.i.i5505, label %_ZN5eastl10GetLastBitEm.exit.i.i5468 - -_ZN5eastl10GetLastBitEm.exit.i.i5468: ; preds = %for.body.i.i5463 - %tobool1.not.i.i.i5469 = icmp ult i64 %190, 4294967296 - %shr.i.i.i5470 = lshr i64 %190, 32 - %spec.select.i.i.i5471 = select i1 %tobool1.not.i.i.i5469, i64 %190, i64 %shr.i.i.i5470 - %spec.select18.i.i.i5472 = select i1 %tobool1.not.i.i.i5469, i32 0, i32 32 - %tobool4.not.i.i.i5473 = icmp ult i64 %spec.select.i.i.i5471, 65536 - %add6.i.i.i5474 = or disjoint i32 %spec.select18.i.i.i5472, 16 - %shr7.i.i.i5475 = lshr i64 %spec.select.i.i.i5471, 16 - %x.addr.1.i.i.i5476 = select i1 %tobool4.not.i.i.i5473, i64 %spec.select.i.i.i5471, i64 %shr7.i.i.i5475 - %n.1.i.i.i5477 = select i1 %tobool4.not.i.i.i5473, i32 %spec.select18.i.i.i5472, i32 %add6.i.i.i5474 - %tobool10.not.i.i.i5478 = icmp ult i64 %x.addr.1.i.i.i5476, 256 - %add12.i.i.i5479 = or disjoint i32 %n.1.i.i.i5477, 8 - %shr13.i.i.i5480 = lshr i64 %x.addr.1.i.i.i5476, 8 - %x.addr.2.i.i.i5481 = select i1 %tobool10.not.i.i.i5478, i64 %x.addr.1.i.i.i5476, i64 %shr13.i.i.i5480 - %n.2.i.i.i5482 = select i1 %tobool10.not.i.i.i5478, i32 %n.1.i.i.i5477, i32 %add12.i.i.i5479 - %tobool16.not.i.i.i5483 = icmp ult i64 %x.addr.2.i.i.i5481, 16 - %add18.i.i.i5484 = or disjoint i32 %n.2.i.i.i5482, 4 - %shr19.i.i.i5485 = lshr i64 %x.addr.2.i.i.i5481, 4 - %x.addr.3.i.i.i5486 = select i1 %tobool16.not.i.i.i5483, i64 %x.addr.2.i.i.i5481, i64 %shr19.i.i.i5485 - %n.3.i.i.i5487 = select i1 %tobool16.not.i.i.i5483, i32 %n.2.i.i.i5482, i32 %add18.i.i.i5484 - %and21.i.i.i5488 = and i64 %x.addr.3.i.i.i5486, 4294967292 - %tobool22.not.i.i.i5489 = icmp eq i64 %and21.i.i.i5488, 0 - %add24.i.i.i5490 = add nuw nsw i32 %n.3.i.i.i5487, 2 - %shr25.i.i.i5491 = lshr i64 %x.addr.3.i.i.i5486, 2 - %x.addr.4.i.i.i5492 = select i1 %tobool22.not.i.i.i5489, i64 %x.addr.3.i.i.i5486, i64 %shr25.i.i.i5491 - %n.4.i.i.i5493 = select i1 %tobool22.not.i.i.i5489, i32 %n.3.i.i.i5487, i32 %add24.i.i.i5490 - %and27.i.i.i5494 = and i64 %x.addr.4.i.i.i5492, 4294967294 - %tobool28.not.i.i.i5495 = icmp ne i64 %and27.i.i.i5494, 0 - %add30.i.i.i5496 = zext i1 %tobool28.not.i.i.i5495 to i32 - %n.5.i.i.i5497 = add nuw nsw i32 %n.4.i.i.i5493, %add30.i.i.i5496 - %cmp2.not.i.i5498 = icmp eq i32 %n.5.i.i.i5497, 64 - br i1 %cmp2.not.i.i5498, label %for.inc.i.i5505, label %_ZNK5eastl6bitsetILm137EmE9find_lastEv.exit5507 - -for.inc.i.i5505: ; preds = %_ZN5eastl10GetLastBitEm.exit.i.i5468, %for.body.i.i5463 - %cmp.not.i.i5506 = icmp eq i64 %sub.i.i5465, 0 - br i1 %cmp.not.i.i5506, label %_ZNK5eastl6bitsetILm137EmE9find_lastEv.exit5507.thread, label %for.body.i.i5463, !llvm.loop !164 - -_ZNK5eastl6bitsetILm137EmE9find_lastEv.exit5507.thread: ; preds = %for.inc.i.i5505 - %call24536125 = call noundef i32 @_ZN2EA8UnitTest12TestInternal17EATEST_VERIFY_IMPEbRiPKciS4_(i1 noundef zeroext false, ptr noundef nonnull align 4 dereferenceable(4) %nErrorCount, ptr noundef nonnull @.str, i32 noundef 1259, ptr noundef nonnull @.str.248) - br label %if.then.i.i5509 - -_ZNK5eastl6bitsetILm137EmE9find_lastEv.exit5507: ; preds = %_ZN5eastl10GetLastBitEm.exit.i.i5468 - %conv.i.i5500 = zext nneg i32 %n.5.i.i.i5497 to i64 - %mul.i.i5501 = shl i64 %sub.i.i5465, 6 - %add.i.i5502 = add i64 %mul.i.i5501, %conv.i.i5500 - %add.i.fr.i5503 = freeze i64 %add.i.i5502 - %spec.select.i5504 = call i64 @llvm.umin.i64(i64 %add.i.fr.i5503, i64 137) - %cmp2452 = icmp eq i64 %add.i.fr.i5503, 136 + %arrayidx.i.i5450 = getelementptr inbounds i8, ptr %b1372441, i64 8 + store i64 34359746560, ptr %arrayidx.i.i5450, align 8 + %arrayidx.i.i5456 = getelementptr inbounds i8, ptr %b1372441, i64 16 + store i64 256, ptr %arrayidx.i.i5456, align 8 + br label %for.body.i.i5458 + +for.body.i.i5458: ; preds = %for.inc.i.i5500, %_ZNK5eastl6bitsetILm137EmE9find_lastEv.exit + %word_index.07.i.i5459 = phi i64 [ 3, %_ZNK5eastl6bitsetILm137EmE9find_lastEv.exit ], [ %sub.i.i5460, %for.inc.i.i5500 ] + %sub.i.i5460 = add nsw i64 %word_index.07.i.i5459, -1 + %arrayidx.i.i5461 = getelementptr inbounds [3 x i64], ptr %b1372441, i64 0, i64 %sub.i.i5460 + %190 = load i64, ptr %arrayidx.i.i5461, align 8 + %tobool.not.i.i.i5462 = icmp eq i64 %190, 0 + br i1 %tobool.not.i.i.i5462, label %for.inc.i.i5500, label %_ZN5eastl10GetLastBitEm.exit.i.i5463 + +_ZN5eastl10GetLastBitEm.exit.i.i5463: ; preds = %for.body.i.i5458 + %tobool1.not.i.i.i5464 = icmp ult i64 %190, 4294967296 + %shr.i.i.i5465 = lshr i64 %190, 32 + %spec.select.i.i.i5466 = select i1 %tobool1.not.i.i.i5464, i64 %190, i64 %shr.i.i.i5465 + %spec.select18.i.i.i5467 = select i1 %tobool1.not.i.i.i5464, i32 0, i32 32 + %tobool4.not.i.i.i5468 = icmp ult i64 %spec.select.i.i.i5466, 65536 + %add6.i.i.i5469 = or disjoint i32 %spec.select18.i.i.i5467, 16 + %shr7.i.i.i5470 = lshr i64 %spec.select.i.i.i5466, 16 + %x.addr.1.i.i.i5471 = select i1 %tobool4.not.i.i.i5468, i64 %spec.select.i.i.i5466, i64 %shr7.i.i.i5470 + %n.1.i.i.i5472 = select i1 %tobool4.not.i.i.i5468, i32 %spec.select18.i.i.i5467, i32 %add6.i.i.i5469 + %tobool10.not.i.i.i5473 = icmp ult i64 %x.addr.1.i.i.i5471, 256 + %add12.i.i.i5474 = or disjoint i32 %n.1.i.i.i5472, 8 + %shr13.i.i.i5475 = lshr i64 %x.addr.1.i.i.i5471, 8 + %x.addr.2.i.i.i5476 = select i1 %tobool10.not.i.i.i5473, i64 %x.addr.1.i.i.i5471, i64 %shr13.i.i.i5475 + %n.2.i.i.i5477 = select i1 %tobool10.not.i.i.i5473, i32 %n.1.i.i.i5472, i32 %add12.i.i.i5474 + %tobool16.not.i.i.i5478 = icmp ult i64 %x.addr.2.i.i.i5476, 16 + %add18.i.i.i5479 = or disjoint i32 %n.2.i.i.i5477, 4 + %shr19.i.i.i5480 = lshr i64 %x.addr.2.i.i.i5476, 4 + %x.addr.3.i.i.i5481 = select i1 %tobool16.not.i.i.i5478, i64 %x.addr.2.i.i.i5476, i64 %shr19.i.i.i5480 + %n.3.i.i.i5482 = select i1 %tobool16.not.i.i.i5478, i32 %n.2.i.i.i5477, i32 %add18.i.i.i5479 + %and21.i.i.i5483 = and i64 %x.addr.3.i.i.i5481, 4294967292 + %tobool22.not.i.i.i5484 = icmp eq i64 %and21.i.i.i5483, 0 + %add24.i.i.i5485 = add nuw nsw i32 %n.3.i.i.i5482, 2 + %shr25.i.i.i5486 = lshr i64 %x.addr.3.i.i.i5481, 2 + %x.addr.4.i.i.i5487 = select i1 %tobool22.not.i.i.i5484, i64 %x.addr.3.i.i.i5481, i64 %shr25.i.i.i5486 + %n.4.i.i.i5488 = select i1 %tobool22.not.i.i.i5484, i32 %n.3.i.i.i5482, i32 %add24.i.i.i5485 + %and27.i.i.i5489 = and i64 %x.addr.4.i.i.i5487, 4294967294 + %tobool28.not.i.i.i5490 = icmp ne i64 %and27.i.i.i5489, 0 + %add30.i.i.i5491 = zext i1 %tobool28.not.i.i.i5490 to i32 + %n.5.i.i.i5492 = add nuw nsw i32 %n.4.i.i.i5488, %add30.i.i.i5491 + %cmp2.not.i.i5493 = icmp eq i32 %n.5.i.i.i5492, 64 + br i1 %cmp2.not.i.i5493, label %for.inc.i.i5500, label %_ZNK5eastl6bitsetILm137EmE9find_lastEv.exit5502 + +for.inc.i.i5500: ; preds = %_ZN5eastl10GetLastBitEm.exit.i.i5463, %for.body.i.i5458 + %cmp.not.i.i5501 = icmp eq i64 %sub.i.i5460, 0 + br i1 %cmp.not.i.i5501, label %_ZNK5eastl6bitsetILm137EmE9find_lastEv.exit5502.thread, label %for.body.i.i5458, !llvm.loop !164 + +_ZNK5eastl6bitsetILm137EmE9find_lastEv.exit5502.thread: ; preds = %for.inc.i.i5500 + %call24536120 = call noundef i32 @_ZN2EA8UnitTest12TestInternal17EATEST_VERIFY_IMPEbRiPKciS4_(i1 noundef zeroext false, ptr noundef nonnull align 4 dereferenceable(4) %nErrorCount, ptr noundef nonnull @.str, i32 noundef 1259, ptr noundef nonnull @.str.248) + br label %if.then.i.i5504 + +_ZNK5eastl6bitsetILm137EmE9find_lastEv.exit5502: ; preds = %_ZN5eastl10GetLastBitEm.exit.i.i5463 + %conv.i.i5495 = zext nneg i32 %n.5.i.i.i5492 to i64 + %mul.i.i5496 = shl i64 %sub.i.i5460, 6 + %add.i.i5497 = add i64 %mul.i.i5496, %conv.i.i5495 + %add.i.fr.i5498 = freeze i64 %add.i.i5497 + %spec.select.i5499 = call i64 @llvm.umin.i64(i64 %add.i.fr.i5498, i64 137) + %cmp2452 = icmp eq i64 %add.i.fr.i5498, 136 %call2453 = call noundef i32 @_ZN2EA8UnitTest12TestInternal17EATEST_VERIFY_IMPEbRiPKciS4_(i1 noundef zeroext %cmp2452, ptr noundef nonnull align 4 dereferenceable(4) %nErrorCount, ptr noundef nonnull @.str, i32 noundef 1259, ptr noundef nonnull @.str.248) - %cmp.not.i.i5508 = icmp eq i64 %add.i.fr.i5503, 0 - br i1 %cmp.not.i.i5508, label %_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit.thread, label %if.then.i.i5509 - -if.then.i.i5509: ; preds = %_ZNK5eastl6bitsetILm137EmE9find_lastEv.exit5507.thread, %_ZNK5eastl6bitsetILm137EmE9find_lastEv.exit5507 - %191 = phi i64 [ 137, %_ZNK5eastl6bitsetILm137EmE9find_lastEv.exit5507.thread ], [ %spec.select.i5504, %_ZNK5eastl6bitsetILm137EmE9find_lastEv.exit5507 ] - %shr.i.i5510 = lshr i64 %191, 6 - %and.i.i5511 = and i64 %191, 63 - %sub.i.i5512 = xor i64 %and.i.i5511, 63 - %shr3.i.i = lshr i64 9223372036854775807, %sub.i.i5512 - %arrayidx.i.i5513 = getelementptr inbounds [3 x i64], ptr %b1372441, i64 0, i64 %shr.i.i5510 - %192 = load i64, ptr %arrayidx.i.i5513, align 8 + %cmp.not.i.i5503 = icmp eq i64 %add.i.fr.i5498, 0 + br i1 %cmp.not.i.i5503, label %_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit.thread, label %if.then.i.i5504 + +if.then.i.i5504: ; preds = %_ZNK5eastl6bitsetILm137EmE9find_lastEv.exit5502.thread, %_ZNK5eastl6bitsetILm137EmE9find_lastEv.exit5502 + %191 = phi i64 [ 137, %_ZNK5eastl6bitsetILm137EmE9find_lastEv.exit5502.thread ], [ %spec.select.i5499, %_ZNK5eastl6bitsetILm137EmE9find_lastEv.exit5502 ] + %shr.i.i5505 = lshr i64 %191, 6 + %and.i.i5506 = and i64 %191, 63 + %sub.i.i5507 = xor i64 %and.i.i5506, 63 + %shr3.i.i = lshr i64 9223372036854775807, %sub.i.i5507 + %arrayidx.i.i5508 = getelementptr inbounds [3 x i64], ptr %b1372441, i64 0, i64 %shr.i.i5505 + %192 = load i64, ptr %arrayidx.i.i5508, align 8 %and4.i.i = and i64 %shr3.i.i, %192 - br label %for.cond.i.i5514 - -for.cond.i.i5514: ; preds = %if.then8.i.i, %if.then.i.i5509 - %word_index.0.i.i5515 = phi i64 [ %shr.i.i5510, %if.then.i.i5509 ], [ %dec.i.i, %if.then8.i.i ] - %this_word.0.i.i5516 = phi i64 [ %and4.i.i, %if.then.i.i5509 ], [ %193, %if.then8.i.i ] - %tobool.not.i.i.i5517 = icmp eq i64 %this_word.0.i.i5516, 0 - br i1 %tobool.not.i.i.i5517, label %if.end.i.i5553, label %_ZN5eastl10GetLastBitEm.exit.i.i5518 - -_ZN5eastl10GetLastBitEm.exit.i.i5518: ; preds = %for.cond.i.i5514 - %tobool1.not.i.i.i5519 = icmp ult i64 %this_word.0.i.i5516, 4294967296 - %shr.i.i.i5520 = lshr i64 %this_word.0.i.i5516, 32 - %spec.select.i.i.i5521 = select i1 %tobool1.not.i.i.i5519, i64 %this_word.0.i.i5516, i64 %shr.i.i.i5520 - %spec.select18.i.i.i5522 = select i1 %tobool1.not.i.i.i5519, i32 0, i32 32 - %tobool4.not.i.i.i5523 = icmp ult i64 %spec.select.i.i.i5521, 65536 - %add6.i.i.i5524 = or disjoint i32 %spec.select18.i.i.i5522, 16 - %shr7.i.i.i5525 = lshr i64 %spec.select.i.i.i5521, 16 - %x.addr.1.i.i.i5526 = select i1 %tobool4.not.i.i.i5523, i64 %spec.select.i.i.i5521, i64 %shr7.i.i.i5525 - %n.1.i.i.i5527 = select i1 %tobool4.not.i.i.i5523, i32 %spec.select18.i.i.i5522, i32 %add6.i.i.i5524 - %tobool10.not.i.i.i5528 = icmp ult i64 %x.addr.1.i.i.i5526, 256 - %add12.i.i.i5529 = or disjoint i32 %n.1.i.i.i5527, 8 - %shr13.i.i.i5530 = lshr i64 %x.addr.1.i.i.i5526, 8 - %x.addr.2.i.i.i5531 = select i1 %tobool10.not.i.i.i5528, i64 %x.addr.1.i.i.i5526, i64 %shr13.i.i.i5530 - %n.2.i.i.i5532 = select i1 %tobool10.not.i.i.i5528, i32 %n.1.i.i.i5527, i32 %add12.i.i.i5529 - %tobool16.not.i.i.i5533 = icmp ult i64 %x.addr.2.i.i.i5531, 16 - %add18.i.i.i5534 = or disjoint i32 %n.2.i.i.i5532, 4 - %shr19.i.i.i5535 = lshr i64 %x.addr.2.i.i.i5531, 4 - %x.addr.3.i.i.i5536 = select i1 %tobool16.not.i.i.i5533, i64 %x.addr.2.i.i.i5531, i64 %shr19.i.i.i5535 - %n.3.i.i.i5537 = select i1 %tobool16.not.i.i.i5533, i32 %n.2.i.i.i5532, i32 %add18.i.i.i5534 - %and21.i.i.i5538 = and i64 %x.addr.3.i.i.i5536, 4294967292 - %tobool22.not.i.i.i5539 = icmp eq i64 %and21.i.i.i5538, 0 - %add24.i.i.i5540 = add nuw nsw i32 %n.3.i.i.i5537, 2 - %shr25.i.i.i5541 = lshr i64 %x.addr.3.i.i.i5536, 2 - %x.addr.4.i.i.i5542 = select i1 %tobool22.not.i.i.i5539, i64 %x.addr.3.i.i.i5536, i64 %shr25.i.i.i5541 - %n.4.i.i.i5543 = select i1 %tobool22.not.i.i.i5539, i32 %n.3.i.i.i5537, i32 %add24.i.i.i5540 - %and27.i.i.i5544 = and i64 %x.addr.4.i.i.i5542, 4294967294 - %tobool28.not.i.i.i5545 = icmp ne i64 %and27.i.i.i5544, 0 - %add30.i.i.i5546 = zext i1 %tobool28.not.i.i.i5545 to i32 - %n.5.i.i.i5547 = add nuw nsw i32 %n.4.i.i.i5543, %add30.i.i.i5546 - %cmp5.not.i.i = icmp eq i32 %n.5.i.i.i5547, 64 - br i1 %cmp5.not.i.i, label %if.end.i.i5553, label %_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit - -if.end.i.i5553: ; preds = %_ZN5eastl10GetLastBitEm.exit.i.i5518, %for.cond.i.i5514 - %cmp7.not.i.i = icmp eq i64 %word_index.0.i.i5515, 0 + br label %for.cond.i.i5509 + +for.cond.i.i5509: ; preds = %if.then8.i.i, %if.then.i.i5504 + %word_index.0.i.i5510 = phi i64 [ %shr.i.i5505, %if.then.i.i5504 ], [ %dec.i.i, %if.then8.i.i ] + %this_word.0.i.i5511 = phi i64 [ %and4.i.i, %if.then.i.i5504 ], [ %193, %if.then8.i.i ] + %tobool.not.i.i.i5512 = icmp eq i64 %this_word.0.i.i5511, 0 + br i1 %tobool.not.i.i.i5512, label %if.end.i.i5548, label %_ZN5eastl10GetLastBitEm.exit.i.i5513 + +_ZN5eastl10GetLastBitEm.exit.i.i5513: ; preds = %for.cond.i.i5509 + %tobool1.not.i.i.i5514 = icmp ult i64 %this_word.0.i.i5511, 4294967296 + %shr.i.i.i5515 = lshr i64 %this_word.0.i.i5511, 32 + %spec.select.i.i.i5516 = select i1 %tobool1.not.i.i.i5514, i64 %this_word.0.i.i5511, i64 %shr.i.i.i5515 + %spec.select18.i.i.i5517 = select i1 %tobool1.not.i.i.i5514, i32 0, i32 32 + %tobool4.not.i.i.i5518 = icmp ult i64 %spec.select.i.i.i5516, 65536 + %add6.i.i.i5519 = or disjoint i32 %spec.select18.i.i.i5517, 16 + %shr7.i.i.i5520 = lshr i64 %spec.select.i.i.i5516, 16 + %x.addr.1.i.i.i5521 = select i1 %tobool4.not.i.i.i5518, i64 %spec.select.i.i.i5516, i64 %shr7.i.i.i5520 + %n.1.i.i.i5522 = select i1 %tobool4.not.i.i.i5518, i32 %spec.select18.i.i.i5517, i32 %add6.i.i.i5519 + %tobool10.not.i.i.i5523 = icmp ult i64 %x.addr.1.i.i.i5521, 256 + %add12.i.i.i5524 = or disjoint i32 %n.1.i.i.i5522, 8 + %shr13.i.i.i5525 = lshr i64 %x.addr.1.i.i.i5521, 8 + %x.addr.2.i.i.i5526 = select i1 %tobool10.not.i.i.i5523, i64 %x.addr.1.i.i.i5521, i64 %shr13.i.i.i5525 + %n.2.i.i.i5527 = select i1 %tobool10.not.i.i.i5523, i32 %n.1.i.i.i5522, i32 %add12.i.i.i5524 + %tobool16.not.i.i.i5528 = icmp ult i64 %x.addr.2.i.i.i5526, 16 + %add18.i.i.i5529 = or disjoint i32 %n.2.i.i.i5527, 4 + %shr19.i.i.i5530 = lshr i64 %x.addr.2.i.i.i5526, 4 + %x.addr.3.i.i.i5531 = select i1 %tobool16.not.i.i.i5528, i64 %x.addr.2.i.i.i5526, i64 %shr19.i.i.i5530 + %n.3.i.i.i5532 = select i1 %tobool16.not.i.i.i5528, i32 %n.2.i.i.i5527, i32 %add18.i.i.i5529 + %and21.i.i.i5533 = and i64 %x.addr.3.i.i.i5531, 4294967292 + %tobool22.not.i.i.i5534 = icmp eq i64 %and21.i.i.i5533, 0 + %add24.i.i.i5535 = add nuw nsw i32 %n.3.i.i.i5532, 2 + %shr25.i.i.i5536 = lshr i64 %x.addr.3.i.i.i5531, 2 + %x.addr.4.i.i.i5537 = select i1 %tobool22.not.i.i.i5534, i64 %x.addr.3.i.i.i5531, i64 %shr25.i.i.i5536 + %n.4.i.i.i5538 = select i1 %tobool22.not.i.i.i5534, i32 %n.3.i.i.i5532, i32 %add24.i.i.i5535 + %and27.i.i.i5539 = and i64 %x.addr.4.i.i.i5537, 4294967294 + %tobool28.not.i.i.i5540 = icmp ne i64 %and27.i.i.i5539, 0 + %add30.i.i.i5541 = zext i1 %tobool28.not.i.i.i5540 to i32 + %n.5.i.i.i5542 = add nuw nsw i32 %n.4.i.i.i5538, %add30.i.i.i5541 + %cmp5.not.i.i = icmp eq i32 %n.5.i.i.i5542, 64 + br i1 %cmp5.not.i.i, label %if.end.i.i5548, label %_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit + +if.end.i.i5548: ; preds = %_ZN5eastl10GetLastBitEm.exit.i.i5513, %for.cond.i.i5509 + %cmp7.not.i.i = icmp eq i64 %word_index.0.i.i5510, 0 br i1 %cmp7.not.i.i, label %_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit.thread, label %if.then8.i.i -if.then8.i.i: ; preds = %if.end.i.i5553 - %dec.i.i = add nsw i64 %word_index.0.i.i5515, -1 +if.then8.i.i: ; preds = %if.end.i.i5548 + %dec.i.i = add nsw i64 %word_index.0.i.i5510, -1 %arrayidx10.i.i = getelementptr inbounds [3 x i64], ptr %b1372441, i64 0, i64 %dec.i.i %193 = load i64, ptr %arrayidx10.i.i, align 8 - br label %for.cond.i.i5514, !llvm.loop !165 - -_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit.thread: ; preds = %if.end.i.i5553, %_ZNK5eastl6bitsetILm137EmE9find_lastEv.exit5507 - %call24566128 = call noundef i32 @_ZN2EA8UnitTest12TestInternal17EATEST_VERIFY_IMPEbRiPKciS4_(i1 noundef zeroext false, ptr noundef nonnull align 4 dereferenceable(4) %nErrorCount, ptr noundef nonnull @.str, i32 noundef 1261, ptr noundef nonnull @.str.247) - br label %if.then.i.i5555 - -_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit: ; preds = %_ZN5eastl10GetLastBitEm.exit.i.i5518 - %conv.i.i5548 = zext nneg i32 %n.5.i.i.i5547 to i64 - %mul.i.i5549 = shl nuw i64 %word_index.0.i.i5515, 6 - %add.i.i5550 = add i64 %mul.i.i5549, %conv.i.i5548 - %add.i.fr.i5551 = freeze i64 %add.i.i5550 - %spec.select.i5552 = call i64 @llvm.umin.i64(i64 %add.i.fr.i5551, i64 137) - %cmp2455 = icmp eq i64 %add.i.fr.i5551, 99 + br label %for.cond.i.i5509, !llvm.loop !165 + +_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit.thread: ; preds = %if.end.i.i5548, %_ZNK5eastl6bitsetILm137EmE9find_lastEv.exit5502 + %call24566123 = call noundef i32 @_ZN2EA8UnitTest12TestInternal17EATEST_VERIFY_IMPEbRiPKciS4_(i1 noundef zeroext false, ptr noundef nonnull align 4 dereferenceable(4) %nErrorCount, ptr noundef nonnull @.str, i32 noundef 1261, ptr noundef nonnull @.str.247) + br label %if.then.i.i5550 + +_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit: ; preds = %_ZN5eastl10GetLastBitEm.exit.i.i5513 + %conv.i.i5543 = zext nneg i32 %n.5.i.i.i5542 to i64 + %mul.i.i5544 = shl nuw i64 %word_index.0.i.i5510, 6 + %add.i.i5545 = add i64 %mul.i.i5544, %conv.i.i5543 + %add.i.fr.i5546 = freeze i64 %add.i.i5545 + %spec.select.i5547 = call i64 @llvm.umin.i64(i64 %add.i.fr.i5546, i64 137) + %cmp2455 = icmp eq i64 %add.i.fr.i5546, 99 %call2456 = call noundef i32 @_ZN2EA8UnitTest12TestInternal17EATEST_VERIFY_IMPEbRiPKciS4_(i1 noundef zeroext %cmp2455, ptr noundef nonnull align 4 dereferenceable(4) %nErrorCount, ptr noundef nonnull @.str, i32 noundef 1261, ptr noundef nonnull @.str.247) - %cmp.not.i.i5554 = icmp eq i64 %add.i.fr.i5551, 0 - br i1 %cmp.not.i.i5554, label %_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit5608.thread, label %if.then.i.i5555 - -if.then.i.i5555: ; preds = %_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit.thread, %_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit - %194 = phi i64 [ 137, %_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit.thread ], [ %spec.select.i5552, %_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit ] - %shr.i.i5556 = lshr i64 %194, 6 - %and.i.i5557 = and i64 %194, 63 - %sub.i.i5558 = xor i64 %and.i.i5557, 63 - %shr3.i.i5559 = lshr i64 9223372036854775807, %sub.i.i5558 - %arrayidx.i.i5560 = getelementptr inbounds [3 x i64], ptr %b1372441, i64 0, i64 %shr.i.i5556 - %195 = load i64, ptr %arrayidx.i.i5560, align 8 - %and4.i.i5561 = and i64 %shr3.i.i5559, %195 - br label %for.cond.i.i5562 - -for.cond.i.i5562: ; preds = %if.then8.i.i5605, %if.then.i.i5555 - %word_index.0.i.i5563 = phi i64 [ %shr.i.i5556, %if.then.i.i5555 ], [ %dec.i.i5606, %if.then8.i.i5605 ] - %this_word.0.i.i5564 = phi i64 [ %and4.i.i5561, %if.then.i.i5555 ], [ %196, %if.then8.i.i5605 ] - %tobool.not.i.i.i5565 = icmp eq i64 %this_word.0.i.i5564, 0 - br i1 %tobool.not.i.i.i5565, label %if.end.i.i5603, label %_ZN5eastl10GetLastBitEm.exit.i.i5566 - -_ZN5eastl10GetLastBitEm.exit.i.i5566: ; preds = %for.cond.i.i5562 - %tobool1.not.i.i.i5567 = icmp ult i64 %this_word.0.i.i5564, 4294967296 - %shr.i.i.i5568 = lshr i64 %this_word.0.i.i5564, 32 - %spec.select.i.i.i5569 = select i1 %tobool1.not.i.i.i5567, i64 %this_word.0.i.i5564, i64 %shr.i.i.i5568 - %spec.select18.i.i.i5570 = select i1 %tobool1.not.i.i.i5567, i32 0, i32 32 - %tobool4.not.i.i.i5571 = icmp ult i64 %spec.select.i.i.i5569, 65536 - %add6.i.i.i5572 = or disjoint i32 %spec.select18.i.i.i5570, 16 - %shr7.i.i.i5573 = lshr i64 %spec.select.i.i.i5569, 16 - %x.addr.1.i.i.i5574 = select i1 %tobool4.not.i.i.i5571, i64 %spec.select.i.i.i5569, i64 %shr7.i.i.i5573 - %n.1.i.i.i5575 = select i1 %tobool4.not.i.i.i5571, i32 %spec.select18.i.i.i5570, i32 %add6.i.i.i5572 - %tobool10.not.i.i.i5576 = icmp ult i64 %x.addr.1.i.i.i5574, 256 - %add12.i.i.i5577 = or disjoint i32 %n.1.i.i.i5575, 8 - %shr13.i.i.i5578 = lshr i64 %x.addr.1.i.i.i5574, 8 - %x.addr.2.i.i.i5579 = select i1 %tobool10.not.i.i.i5576, i64 %x.addr.1.i.i.i5574, i64 %shr13.i.i.i5578 - %n.2.i.i.i5580 = select i1 %tobool10.not.i.i.i5576, i32 %n.1.i.i.i5575, i32 %add12.i.i.i5577 - %tobool16.not.i.i.i5581 = icmp ult i64 %x.addr.2.i.i.i5579, 16 - %add18.i.i.i5582 = or disjoint i32 %n.2.i.i.i5580, 4 - %shr19.i.i.i5583 = lshr i64 %x.addr.2.i.i.i5579, 4 - %x.addr.3.i.i.i5584 = select i1 %tobool16.not.i.i.i5581, i64 %x.addr.2.i.i.i5579, i64 %shr19.i.i.i5583 - %n.3.i.i.i5585 = select i1 %tobool16.not.i.i.i5581, i32 %n.2.i.i.i5580, i32 %add18.i.i.i5582 - %and21.i.i.i5586 = and i64 %x.addr.3.i.i.i5584, 4294967292 - %tobool22.not.i.i.i5587 = icmp eq i64 %and21.i.i.i5586, 0 - %add24.i.i.i5588 = add nuw nsw i32 %n.3.i.i.i5585, 2 - %shr25.i.i.i5589 = lshr i64 %x.addr.3.i.i.i5584, 2 - %x.addr.4.i.i.i5590 = select i1 %tobool22.not.i.i.i5587, i64 %x.addr.3.i.i.i5584, i64 %shr25.i.i.i5589 - %n.4.i.i.i5591 = select i1 %tobool22.not.i.i.i5587, i32 %n.3.i.i.i5585, i32 %add24.i.i.i5588 - %and27.i.i.i5592 = and i64 %x.addr.4.i.i.i5590, 4294967294 - %tobool28.not.i.i.i5593 = icmp ne i64 %and27.i.i.i5592, 0 - %add30.i.i.i5594 = zext i1 %tobool28.not.i.i.i5593 to i32 - %n.5.i.i.i5595 = add nuw nsw i32 %n.4.i.i.i5591, %add30.i.i.i5594 - %cmp5.not.i.i5596 = icmp eq i32 %n.5.i.i.i5595, 64 - br i1 %cmp5.not.i.i5596, label %if.end.i.i5603, label %_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit5608 - -if.end.i.i5603: ; preds = %_ZN5eastl10GetLastBitEm.exit.i.i5566, %for.cond.i.i5562 - %cmp7.not.i.i5604 = icmp eq i64 %word_index.0.i.i5563, 0 - br i1 %cmp7.not.i.i5604, label %_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit5608.thread, label %if.then8.i.i5605 - -if.then8.i.i5605: ; preds = %if.end.i.i5603 - %dec.i.i5606 = add nsw i64 %word_index.0.i.i5563, -1 - %arrayidx10.i.i5607 = getelementptr inbounds [3 x i64], ptr %b1372441, i64 0, i64 %dec.i.i5606 - %196 = load i64, ptr %arrayidx10.i.i5607, align 8 - br label %for.cond.i.i5562, !llvm.loop !165 - -_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit5608.thread: ; preds = %if.end.i.i5603, %_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit - %call24596131 = call noundef i32 @_ZN2EA8UnitTest12TestInternal17EATEST_VERIFY_IMPEbRiPKciS4_(i1 noundef zeroext false, ptr noundef nonnull align 4 dereferenceable(4) %nErrorCount, ptr noundef nonnull @.str, i32 noundef 1263, ptr noundef nonnull @.str.244) - br label %if.then.i.i5610 - -_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit5608: ; preds = %_ZN5eastl10GetLastBitEm.exit.i.i5566 - %conv.i.i5598 = zext nneg i32 %n.5.i.i.i5595 to i64 - %mul.i.i5599 = shl nuw i64 %word_index.0.i.i5563, 6 - %add.i.i5600 = add i64 %mul.i.i5599, %conv.i.i5598 - %add.i.fr.i5601 = freeze i64 %add.i.i5600 - %spec.select.i5602 = call i64 @llvm.umin.i64(i64 %add.i.fr.i5601, i64 137) - %cmp2458 = icmp eq i64 %add.i.fr.i5601, 77 + %cmp.not.i.i5549 = icmp eq i64 %add.i.fr.i5546, 0 + br i1 %cmp.not.i.i5549, label %_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit5603.thread, label %if.then.i.i5550 + +if.then.i.i5550: ; preds = %_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit.thread, %_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit + %194 = phi i64 [ 137, %_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit.thread ], [ %spec.select.i5547, %_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit ] + %shr.i.i5551 = lshr i64 %194, 6 + %and.i.i5552 = and i64 %194, 63 + %sub.i.i5553 = xor i64 %and.i.i5552, 63 + %shr3.i.i5554 = lshr i64 9223372036854775807, %sub.i.i5553 + %arrayidx.i.i5555 = getelementptr inbounds [3 x i64], ptr %b1372441, i64 0, i64 %shr.i.i5551 + %195 = load i64, ptr %arrayidx.i.i5555, align 8 + %and4.i.i5556 = and i64 %shr3.i.i5554, %195 + br label %for.cond.i.i5557 + +for.cond.i.i5557: ; preds = %if.then8.i.i5600, %if.then.i.i5550 + %word_index.0.i.i5558 = phi i64 [ %shr.i.i5551, %if.then.i.i5550 ], [ %dec.i.i5601, %if.then8.i.i5600 ] + %this_word.0.i.i5559 = phi i64 [ %and4.i.i5556, %if.then.i.i5550 ], [ %196, %if.then8.i.i5600 ] + %tobool.not.i.i.i5560 = icmp eq i64 %this_word.0.i.i5559, 0 + br i1 %tobool.not.i.i.i5560, label %if.end.i.i5598, label %_ZN5eastl10GetLastBitEm.exit.i.i5561 + +_ZN5eastl10GetLastBitEm.exit.i.i5561: ; preds = %for.cond.i.i5557 + %tobool1.not.i.i.i5562 = icmp ult i64 %this_word.0.i.i5559, 4294967296 + %shr.i.i.i5563 = lshr i64 %this_word.0.i.i5559, 32 + %spec.select.i.i.i5564 = select i1 %tobool1.not.i.i.i5562, i64 %this_word.0.i.i5559, i64 %shr.i.i.i5563 + %spec.select18.i.i.i5565 = select i1 %tobool1.not.i.i.i5562, i32 0, i32 32 + %tobool4.not.i.i.i5566 = icmp ult i64 %spec.select.i.i.i5564, 65536 + %add6.i.i.i5567 = or disjoint i32 %spec.select18.i.i.i5565, 16 + %shr7.i.i.i5568 = lshr i64 %spec.select.i.i.i5564, 16 + %x.addr.1.i.i.i5569 = select i1 %tobool4.not.i.i.i5566, i64 %spec.select.i.i.i5564, i64 %shr7.i.i.i5568 + %n.1.i.i.i5570 = select i1 %tobool4.not.i.i.i5566, i32 %spec.select18.i.i.i5565, i32 %add6.i.i.i5567 + %tobool10.not.i.i.i5571 = icmp ult i64 %x.addr.1.i.i.i5569, 256 + %add12.i.i.i5572 = or disjoint i32 %n.1.i.i.i5570, 8 + %shr13.i.i.i5573 = lshr i64 %x.addr.1.i.i.i5569, 8 + %x.addr.2.i.i.i5574 = select i1 %tobool10.not.i.i.i5571, i64 %x.addr.1.i.i.i5569, i64 %shr13.i.i.i5573 + %n.2.i.i.i5575 = select i1 %tobool10.not.i.i.i5571, i32 %n.1.i.i.i5570, i32 %add12.i.i.i5572 + %tobool16.not.i.i.i5576 = icmp ult i64 %x.addr.2.i.i.i5574, 16 + %add18.i.i.i5577 = or disjoint i32 %n.2.i.i.i5575, 4 + %shr19.i.i.i5578 = lshr i64 %x.addr.2.i.i.i5574, 4 + %x.addr.3.i.i.i5579 = select i1 %tobool16.not.i.i.i5576, i64 %x.addr.2.i.i.i5574, i64 %shr19.i.i.i5578 + %n.3.i.i.i5580 = select i1 %tobool16.not.i.i.i5576, i32 %n.2.i.i.i5575, i32 %add18.i.i.i5577 + %and21.i.i.i5581 = and i64 %x.addr.3.i.i.i5579, 4294967292 + %tobool22.not.i.i.i5582 = icmp eq i64 %and21.i.i.i5581, 0 + %add24.i.i.i5583 = add nuw nsw i32 %n.3.i.i.i5580, 2 + %shr25.i.i.i5584 = lshr i64 %x.addr.3.i.i.i5579, 2 + %x.addr.4.i.i.i5585 = select i1 %tobool22.not.i.i.i5582, i64 %x.addr.3.i.i.i5579, i64 %shr25.i.i.i5584 + %n.4.i.i.i5586 = select i1 %tobool22.not.i.i.i5582, i32 %n.3.i.i.i5580, i32 %add24.i.i.i5583 + %and27.i.i.i5587 = and i64 %x.addr.4.i.i.i5585, 4294967294 + %tobool28.not.i.i.i5588 = icmp ne i64 %and27.i.i.i5587, 0 + %add30.i.i.i5589 = zext i1 %tobool28.not.i.i.i5588 to i32 + %n.5.i.i.i5590 = add nuw nsw i32 %n.4.i.i.i5586, %add30.i.i.i5589 + %cmp5.not.i.i5591 = icmp eq i32 %n.5.i.i.i5590, 64 + br i1 %cmp5.not.i.i5591, label %if.end.i.i5598, label %_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit5603 + +if.end.i.i5598: ; preds = %_ZN5eastl10GetLastBitEm.exit.i.i5561, %for.cond.i.i5557 + %cmp7.not.i.i5599 = icmp eq i64 %word_index.0.i.i5558, 0 + br i1 %cmp7.not.i.i5599, label %_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit5603.thread, label %if.then8.i.i5600 + +if.then8.i.i5600: ; preds = %if.end.i.i5598 + %dec.i.i5601 = add nsw i64 %word_index.0.i.i5558, -1 + %arrayidx10.i.i5602 = getelementptr inbounds [3 x i64], ptr %b1372441, i64 0, i64 %dec.i.i5601 + %196 = load i64, ptr %arrayidx10.i.i5602, align 8 + br label %for.cond.i.i5557, !llvm.loop !165 + +_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit5603.thread: ; preds = %if.end.i.i5598, %_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit + %call24596126 = call noundef i32 @_ZN2EA8UnitTest12TestInternal17EATEST_VERIFY_IMPEbRiPKciS4_(i1 noundef zeroext false, ptr noundef nonnull align 4 dereferenceable(4) %nErrorCount, ptr noundef nonnull @.str, i32 noundef 1263, ptr noundef nonnull @.str.244) + br label %if.then.i.i5605 + +_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit5603: ; preds = %_ZN5eastl10GetLastBitEm.exit.i.i5561 + %conv.i.i5593 = zext nneg i32 %n.5.i.i.i5590 to i64 + %mul.i.i5594 = shl nuw i64 %word_index.0.i.i5558, 6 + %add.i.i5595 = add i64 %mul.i.i5594, %conv.i.i5593 + %add.i.fr.i5596 = freeze i64 %add.i.i5595 + %spec.select.i5597 = call i64 @llvm.umin.i64(i64 %add.i.fr.i5596, i64 137) + %cmp2458 = icmp eq i64 %add.i.fr.i5596, 77 %call2459 = call noundef i32 @_ZN2EA8UnitTest12TestInternal17EATEST_VERIFY_IMPEbRiPKciS4_(i1 noundef zeroext %cmp2458, ptr noundef nonnull align 4 dereferenceable(4) %nErrorCount, ptr noundef nonnull @.str, i32 noundef 1263, ptr noundef nonnull @.str.244) - %cmp.not.i.i5609 = icmp eq i64 %add.i.fr.i5601, 0 - br i1 %cmp.not.i.i5609, label %_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit5663.thread, label %if.then.i.i5610 - -if.then.i.i5610: ; preds = %_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit5608.thread, %_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit5608 - %197 = phi i64 [ 137, %_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit5608.thread ], [ %spec.select.i5602, %_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit5608 ] - %shr.i.i5611 = lshr i64 %197, 6 - %and.i.i5612 = and i64 %197, 63 - %sub.i.i5613 = xor i64 %and.i.i5612, 63 - %shr3.i.i5614 = lshr i64 9223372036854775807, %sub.i.i5613 - %arrayidx.i.i5615 = getelementptr inbounds [3 x i64], ptr %b1372441, i64 0, i64 %shr.i.i5611 - %198 = load i64, ptr %arrayidx.i.i5615, align 8 - %and4.i.i5616 = and i64 %shr3.i.i5614, %198 - br label %for.cond.i.i5617 - -for.cond.i.i5617: ; preds = %if.then8.i.i5660, %if.then.i.i5610 - %word_index.0.i.i5618 = phi i64 [ %shr.i.i5611, %if.then.i.i5610 ], [ %dec.i.i5661, %if.then8.i.i5660 ] - %this_word.0.i.i5619 = phi i64 [ %and4.i.i5616, %if.then.i.i5610 ], [ %199, %if.then8.i.i5660 ] - %tobool.not.i.i.i5620 = icmp eq i64 %this_word.0.i.i5619, 0 - br i1 %tobool.not.i.i.i5620, label %if.end.i.i5658, label %_ZN5eastl10GetLastBitEm.exit.i.i5621 - -_ZN5eastl10GetLastBitEm.exit.i.i5621: ; preds = %for.cond.i.i5617 - %tobool1.not.i.i.i5622 = icmp ult i64 %this_word.0.i.i5619, 4294967296 - %shr.i.i.i5623 = lshr i64 %this_word.0.i.i5619, 32 - %spec.select.i.i.i5624 = select i1 %tobool1.not.i.i.i5622, i64 %this_word.0.i.i5619, i64 %shr.i.i.i5623 - %spec.select18.i.i.i5625 = select i1 %tobool1.not.i.i.i5622, i32 0, i32 32 - %tobool4.not.i.i.i5626 = icmp ult i64 %spec.select.i.i.i5624, 65536 - %add6.i.i.i5627 = or disjoint i32 %spec.select18.i.i.i5625, 16 - %shr7.i.i.i5628 = lshr i64 %spec.select.i.i.i5624, 16 - %x.addr.1.i.i.i5629 = select i1 %tobool4.not.i.i.i5626, i64 %spec.select.i.i.i5624, i64 %shr7.i.i.i5628 - %n.1.i.i.i5630 = select i1 %tobool4.not.i.i.i5626, i32 %spec.select18.i.i.i5625, i32 %add6.i.i.i5627 - %tobool10.not.i.i.i5631 = icmp ult i64 %x.addr.1.i.i.i5629, 256 - %add12.i.i.i5632 = or disjoint i32 %n.1.i.i.i5630, 8 - %shr13.i.i.i5633 = lshr i64 %x.addr.1.i.i.i5629, 8 - %x.addr.2.i.i.i5634 = select i1 %tobool10.not.i.i.i5631, i64 %x.addr.1.i.i.i5629, i64 %shr13.i.i.i5633 - %n.2.i.i.i5635 = select i1 %tobool10.not.i.i.i5631, i32 %n.1.i.i.i5630, i32 %add12.i.i.i5632 - %tobool16.not.i.i.i5636 = icmp ult i64 %x.addr.2.i.i.i5634, 16 - %add18.i.i.i5637 = or disjoint i32 %n.2.i.i.i5635, 4 - %shr19.i.i.i5638 = lshr i64 %x.addr.2.i.i.i5634, 4 - %x.addr.3.i.i.i5639 = select i1 %tobool16.not.i.i.i5636, i64 %x.addr.2.i.i.i5634, i64 %shr19.i.i.i5638 - %n.3.i.i.i5640 = select i1 %tobool16.not.i.i.i5636, i32 %n.2.i.i.i5635, i32 %add18.i.i.i5637 - %and21.i.i.i5641 = and i64 %x.addr.3.i.i.i5639, 4294967292 - %tobool22.not.i.i.i5642 = icmp eq i64 %and21.i.i.i5641, 0 - %add24.i.i.i5643 = add nuw nsw i32 %n.3.i.i.i5640, 2 - %shr25.i.i.i5644 = lshr i64 %x.addr.3.i.i.i5639, 2 - %x.addr.4.i.i.i5645 = select i1 %tobool22.not.i.i.i5642, i64 %x.addr.3.i.i.i5639, i64 %shr25.i.i.i5644 - %n.4.i.i.i5646 = select i1 %tobool22.not.i.i.i5642, i32 %n.3.i.i.i5640, i32 %add24.i.i.i5643 - %and27.i.i.i5647 = and i64 %x.addr.4.i.i.i5645, 4294967294 - %tobool28.not.i.i.i5648 = icmp ne i64 %and27.i.i.i5647, 0 - %add30.i.i.i5649 = zext i1 %tobool28.not.i.i.i5648 to i32 - %n.5.i.i.i5650 = add nuw nsw i32 %n.4.i.i.i5646, %add30.i.i.i5649 - %cmp5.not.i.i5651 = icmp eq i32 %n.5.i.i.i5650, 64 - br i1 %cmp5.not.i.i5651, label %if.end.i.i5658, label %_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit5663 - -if.end.i.i5658: ; preds = %_ZN5eastl10GetLastBitEm.exit.i.i5621, %for.cond.i.i5617 - %cmp7.not.i.i5659 = icmp eq i64 %word_index.0.i.i5618, 0 - br i1 %cmp7.not.i.i5659, label %_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit5663.thread, label %if.then8.i.i5660 - -if.then8.i.i5660: ; preds = %if.end.i.i5658 - %dec.i.i5661 = add nsw i64 %word_index.0.i.i5618, -1 - %arrayidx10.i.i5662 = getelementptr inbounds [3 x i64], ptr %b1372441, i64 0, i64 %dec.i.i5661 - %199 = load i64, ptr %arrayidx10.i.i5662, align 8 - br label %for.cond.i.i5617, !llvm.loop !165 - -_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit5663.thread: ; preds = %if.end.i.i5658, %_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit5608 - %call24626134 = call noundef i32 @_ZN2EA8UnitTest12TestInternal17EATEST_VERIFY_IMPEbRiPKciS4_(i1 noundef zeroext false, ptr noundef nonnull align 4 dereferenceable(4) %nErrorCount, ptr noundef nonnull @.str, i32 noundef 1265, ptr noundef nonnull @.str.237) - br label %if.then.i.i5665 - -_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit5663: ; preds = %_ZN5eastl10GetLastBitEm.exit.i.i5621 - %conv.i.i5653 = zext nneg i32 %n.5.i.i.i5650 to i64 - %mul.i.i5654 = shl nuw i64 %word_index.0.i.i5618, 6 - %add.i.i5655 = add i64 %mul.i.i5654, %conv.i.i5653 - %add.i.fr.i5656 = freeze i64 %add.i.i5655 - %spec.select.i5657 = call i64 @llvm.umin.i64(i64 %add.i.fr.i5656, i64 137) - %cmp2461 = icmp eq i64 %add.i.fr.i5656, 37 + %cmp.not.i.i5604 = icmp eq i64 %add.i.fr.i5596, 0 + br i1 %cmp.not.i.i5604, label %_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit5658.thread, label %if.then.i.i5605 + +if.then.i.i5605: ; preds = %_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit5603.thread, %_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit5603 + %197 = phi i64 [ 137, %_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit5603.thread ], [ %spec.select.i5597, %_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit5603 ] + %shr.i.i5606 = lshr i64 %197, 6 + %and.i.i5607 = and i64 %197, 63 + %sub.i.i5608 = xor i64 %and.i.i5607, 63 + %shr3.i.i5609 = lshr i64 9223372036854775807, %sub.i.i5608 + %arrayidx.i.i5610 = getelementptr inbounds [3 x i64], ptr %b1372441, i64 0, i64 %shr.i.i5606 + %198 = load i64, ptr %arrayidx.i.i5610, align 8 + %and4.i.i5611 = and i64 %shr3.i.i5609, %198 + br label %for.cond.i.i5612 + +for.cond.i.i5612: ; preds = %if.then8.i.i5655, %if.then.i.i5605 + %word_index.0.i.i5613 = phi i64 [ %shr.i.i5606, %if.then.i.i5605 ], [ %dec.i.i5656, %if.then8.i.i5655 ] + %this_word.0.i.i5614 = phi i64 [ %and4.i.i5611, %if.then.i.i5605 ], [ %199, %if.then8.i.i5655 ] + %tobool.not.i.i.i5615 = icmp eq i64 %this_word.0.i.i5614, 0 + br i1 %tobool.not.i.i.i5615, label %if.end.i.i5653, label %_ZN5eastl10GetLastBitEm.exit.i.i5616 + +_ZN5eastl10GetLastBitEm.exit.i.i5616: ; preds = %for.cond.i.i5612 + %tobool1.not.i.i.i5617 = icmp ult i64 %this_word.0.i.i5614, 4294967296 + %shr.i.i.i5618 = lshr i64 %this_word.0.i.i5614, 32 + %spec.select.i.i.i5619 = select i1 %tobool1.not.i.i.i5617, i64 %this_word.0.i.i5614, i64 %shr.i.i.i5618 + %spec.select18.i.i.i5620 = select i1 %tobool1.not.i.i.i5617, i32 0, i32 32 + %tobool4.not.i.i.i5621 = icmp ult i64 %spec.select.i.i.i5619, 65536 + %add6.i.i.i5622 = or disjoint i32 %spec.select18.i.i.i5620, 16 + %shr7.i.i.i5623 = lshr i64 %spec.select.i.i.i5619, 16 + %x.addr.1.i.i.i5624 = select i1 %tobool4.not.i.i.i5621, i64 %spec.select.i.i.i5619, i64 %shr7.i.i.i5623 + %n.1.i.i.i5625 = select i1 %tobool4.not.i.i.i5621, i32 %spec.select18.i.i.i5620, i32 %add6.i.i.i5622 + %tobool10.not.i.i.i5626 = icmp ult i64 %x.addr.1.i.i.i5624, 256 + %add12.i.i.i5627 = or disjoint i32 %n.1.i.i.i5625, 8 + %shr13.i.i.i5628 = lshr i64 %x.addr.1.i.i.i5624, 8 + %x.addr.2.i.i.i5629 = select i1 %tobool10.not.i.i.i5626, i64 %x.addr.1.i.i.i5624, i64 %shr13.i.i.i5628 + %n.2.i.i.i5630 = select i1 %tobool10.not.i.i.i5626, i32 %n.1.i.i.i5625, i32 %add12.i.i.i5627 + %tobool16.not.i.i.i5631 = icmp ult i64 %x.addr.2.i.i.i5629, 16 + %add18.i.i.i5632 = or disjoint i32 %n.2.i.i.i5630, 4 + %shr19.i.i.i5633 = lshr i64 %x.addr.2.i.i.i5629, 4 + %x.addr.3.i.i.i5634 = select i1 %tobool16.not.i.i.i5631, i64 %x.addr.2.i.i.i5629, i64 %shr19.i.i.i5633 + %n.3.i.i.i5635 = select i1 %tobool16.not.i.i.i5631, i32 %n.2.i.i.i5630, i32 %add18.i.i.i5632 + %and21.i.i.i5636 = and i64 %x.addr.3.i.i.i5634, 4294967292 + %tobool22.not.i.i.i5637 = icmp eq i64 %and21.i.i.i5636, 0 + %add24.i.i.i5638 = add nuw nsw i32 %n.3.i.i.i5635, 2 + %shr25.i.i.i5639 = lshr i64 %x.addr.3.i.i.i5634, 2 + %x.addr.4.i.i.i5640 = select i1 %tobool22.not.i.i.i5637, i64 %x.addr.3.i.i.i5634, i64 %shr25.i.i.i5639 + %n.4.i.i.i5641 = select i1 %tobool22.not.i.i.i5637, i32 %n.3.i.i.i5635, i32 %add24.i.i.i5638 + %and27.i.i.i5642 = and i64 %x.addr.4.i.i.i5640, 4294967294 + %tobool28.not.i.i.i5643 = icmp ne i64 %and27.i.i.i5642, 0 + %add30.i.i.i5644 = zext i1 %tobool28.not.i.i.i5643 to i32 + %n.5.i.i.i5645 = add nuw nsw i32 %n.4.i.i.i5641, %add30.i.i.i5644 + %cmp5.not.i.i5646 = icmp eq i32 %n.5.i.i.i5645, 64 + br i1 %cmp5.not.i.i5646, label %if.end.i.i5653, label %_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit5658 + +if.end.i.i5653: ; preds = %_ZN5eastl10GetLastBitEm.exit.i.i5616, %for.cond.i.i5612 + %cmp7.not.i.i5654 = icmp eq i64 %word_index.0.i.i5613, 0 + br i1 %cmp7.not.i.i5654, label %_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit5658.thread, label %if.then8.i.i5655 + +if.then8.i.i5655: ; preds = %if.end.i.i5653 + %dec.i.i5656 = add nsw i64 %word_index.0.i.i5613, -1 + %arrayidx10.i.i5657 = getelementptr inbounds [3 x i64], ptr %b1372441, i64 0, i64 %dec.i.i5656 + %199 = load i64, ptr %arrayidx10.i.i5657, align 8 + br label %for.cond.i.i5612, !llvm.loop !165 + +_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit5658.thread: ; preds = %if.end.i.i5653, %_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit5603 + %call24626129 = call noundef i32 @_ZN2EA8UnitTest12TestInternal17EATEST_VERIFY_IMPEbRiPKciS4_(i1 noundef zeroext false, ptr noundef nonnull align 4 dereferenceable(4) %nErrorCount, ptr noundef nonnull @.str, i32 noundef 1265, ptr noundef nonnull @.str.237) + br label %if.then.i.i5660 + +_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit5658: ; preds = %_ZN5eastl10GetLastBitEm.exit.i.i5616 + %conv.i.i5648 = zext nneg i32 %n.5.i.i.i5645 to i64 + %mul.i.i5649 = shl nuw i64 %word_index.0.i.i5613, 6 + %add.i.i5650 = add i64 %mul.i.i5649, %conv.i.i5648 + %add.i.fr.i5651 = freeze i64 %add.i.i5650 + %spec.select.i5652 = call i64 @llvm.umin.i64(i64 %add.i.fr.i5651, i64 137) + %cmp2461 = icmp eq i64 %add.i.fr.i5651, 37 %call2462 = call noundef i32 @_ZN2EA8UnitTest12TestInternal17EATEST_VERIFY_IMPEbRiPKciS4_(i1 noundef zeroext %cmp2461, ptr noundef nonnull align 4 dereferenceable(4) %nErrorCount, ptr noundef nonnull @.str, i32 noundef 1265, ptr noundef nonnull @.str.237) - %cmp.not.i.i5664 = icmp eq i64 %add.i.fr.i5656, 0 - br i1 %cmp.not.i.i5664, label %_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit5718.thread, label %if.then.i.i5665 - -if.then.i.i5665: ; preds = %_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit5663.thread, %_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit5663 - %200 = phi i64 [ 137, %_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit5663.thread ], [ %spec.select.i5657, %_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit5663 ] - %shr.i.i5666 = lshr i64 %200, 6 - %and.i.i5667 = and i64 %200, 63 - %sub.i.i5668 = xor i64 %and.i.i5667, 63 - %shr3.i.i5669 = lshr i64 9223372036854775807, %sub.i.i5668 - %arrayidx.i.i5670 = getelementptr inbounds [3 x i64], ptr %b1372441, i64 0, i64 %shr.i.i5666 - %201 = load i64, ptr %arrayidx.i.i5670, align 8 - %and4.i.i5671 = and i64 %shr3.i.i5669, %201 - br label %for.cond.i.i5672 - -for.cond.i.i5672: ; preds = %if.then8.i.i5715, %if.then.i.i5665 - %word_index.0.i.i5673 = phi i64 [ %shr.i.i5666, %if.then.i.i5665 ], [ %dec.i.i5716, %if.then8.i.i5715 ] - %this_word.0.i.i5674 = phi i64 [ %and4.i.i5671, %if.then.i.i5665 ], [ %202, %if.then8.i.i5715 ] - %tobool.not.i.i.i5675 = icmp eq i64 %this_word.0.i.i5674, 0 - br i1 %tobool.not.i.i.i5675, label %if.end.i.i5713, label %_ZN5eastl10GetLastBitEm.exit.i.i5676 - -_ZN5eastl10GetLastBitEm.exit.i.i5676: ; preds = %for.cond.i.i5672 - %tobool1.not.i.i.i5677 = icmp ult i64 %this_word.0.i.i5674, 4294967296 - %shr.i.i.i5678 = lshr i64 %this_word.0.i.i5674, 32 - %spec.select.i.i.i5679 = select i1 %tobool1.not.i.i.i5677, i64 %this_word.0.i.i5674, i64 %shr.i.i.i5678 - %spec.select18.i.i.i5680 = select i1 %tobool1.not.i.i.i5677, i32 0, i32 32 - %tobool4.not.i.i.i5681 = icmp ult i64 %spec.select.i.i.i5679, 65536 - %add6.i.i.i5682 = or disjoint i32 %spec.select18.i.i.i5680, 16 - %shr7.i.i.i5683 = lshr i64 %spec.select.i.i.i5679, 16 - %x.addr.1.i.i.i5684 = select i1 %tobool4.not.i.i.i5681, i64 %spec.select.i.i.i5679, i64 %shr7.i.i.i5683 - %n.1.i.i.i5685 = select i1 %tobool4.not.i.i.i5681, i32 %spec.select18.i.i.i5680, i32 %add6.i.i.i5682 - %tobool10.not.i.i.i5686 = icmp ult i64 %x.addr.1.i.i.i5684, 256 - %add12.i.i.i5687 = or disjoint i32 %n.1.i.i.i5685, 8 - %shr13.i.i.i5688 = lshr i64 %x.addr.1.i.i.i5684, 8 - %x.addr.2.i.i.i5689 = select i1 %tobool10.not.i.i.i5686, i64 %x.addr.1.i.i.i5684, i64 %shr13.i.i.i5688 - %n.2.i.i.i5690 = select i1 %tobool10.not.i.i.i5686, i32 %n.1.i.i.i5685, i32 %add12.i.i.i5687 - %tobool16.not.i.i.i5691 = icmp ult i64 %x.addr.2.i.i.i5689, 16 - %add18.i.i.i5692 = or disjoint i32 %n.2.i.i.i5690, 4 - %shr19.i.i.i5693 = lshr i64 %x.addr.2.i.i.i5689, 4 - %x.addr.3.i.i.i5694 = select i1 %tobool16.not.i.i.i5691, i64 %x.addr.2.i.i.i5689, i64 %shr19.i.i.i5693 - %n.3.i.i.i5695 = select i1 %tobool16.not.i.i.i5691, i32 %n.2.i.i.i5690, i32 %add18.i.i.i5692 - %and21.i.i.i5696 = and i64 %x.addr.3.i.i.i5694, 4294967292 - %tobool22.not.i.i.i5697 = icmp eq i64 %and21.i.i.i5696, 0 - %add24.i.i.i5698 = add nuw nsw i32 %n.3.i.i.i5695, 2 - %shr25.i.i.i5699 = lshr i64 %x.addr.3.i.i.i5694, 2 - %x.addr.4.i.i.i5700 = select i1 %tobool22.not.i.i.i5697, i64 %x.addr.3.i.i.i5694, i64 %shr25.i.i.i5699 - %n.4.i.i.i5701 = select i1 %tobool22.not.i.i.i5697, i32 %n.3.i.i.i5695, i32 %add24.i.i.i5698 - %and27.i.i.i5702 = and i64 %x.addr.4.i.i.i5700, 4294967294 - %tobool28.not.i.i.i5703 = icmp ne i64 %and27.i.i.i5702, 0 - %add30.i.i.i5704 = zext i1 %tobool28.not.i.i.i5703 to i32 - %n.5.i.i.i5705 = add nuw nsw i32 %n.4.i.i.i5701, %add30.i.i.i5704 - %cmp5.not.i.i5706 = icmp eq i32 %n.5.i.i.i5705, 64 - br i1 %cmp5.not.i.i5706, label %if.end.i.i5713, label %_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit5718 - -if.end.i.i5713: ; preds = %_ZN5eastl10GetLastBitEm.exit.i.i5676, %for.cond.i.i5672 - %cmp7.not.i.i5714 = icmp eq i64 %word_index.0.i.i5673, 0 - br i1 %cmp7.not.i.i5714, label %_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit5718.thread, label %if.then8.i.i5715 - -if.then8.i.i5715: ; preds = %if.end.i.i5713 - %dec.i.i5716 = add nsw i64 %word_index.0.i.i5673, -1 - %arrayidx10.i.i5717 = getelementptr inbounds [3 x i64], ptr %b1372441, i64 0, i64 %dec.i.i5716 - %202 = load i64, ptr %arrayidx10.i.i5717, align 8 - br label %for.cond.i.i5672, !llvm.loop !165 - -_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit5718.thread: ; preds = %if.end.i.i5713, %_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit5663 - %call24656137 = call noundef i32 @_ZN2EA8UnitTest12TestInternal17EATEST_VERIFY_IMPEbRiPKciS4_(i1 noundef zeroext false, ptr noundef nonnull align 4 dereferenceable(4) %nErrorCount, ptr noundef nonnull @.str, i32 noundef 1267, ptr noundef nonnull @.str.234) - br label %if.then.i.i5720 - -_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit5718: ; preds = %_ZN5eastl10GetLastBitEm.exit.i.i5676 - %conv.i.i5708 = zext nneg i32 %n.5.i.i.i5705 to i64 - %mul.i.i5709 = shl nuw i64 %word_index.0.i.i5673, 6 - %add.i.i5710 = add i64 %mul.i.i5709, %conv.i.i5708 - %add.i.fr.i5711 = freeze i64 %add.i.i5710 - %spec.select.i5712 = call i64 @llvm.umin.i64(i64 %add.i.fr.i5711, i64 137) - %cmp2464 = icmp eq i64 %add.i.fr.i5711, 27 + %cmp.not.i.i5659 = icmp eq i64 %add.i.fr.i5651, 0 + br i1 %cmp.not.i.i5659, label %_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit5713.thread, label %if.then.i.i5660 + +if.then.i.i5660: ; preds = %_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit5658.thread, %_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit5658 + %200 = phi i64 [ 137, %_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit5658.thread ], [ %spec.select.i5652, %_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit5658 ] + %shr.i.i5661 = lshr i64 %200, 6 + %and.i.i5662 = and i64 %200, 63 + %sub.i.i5663 = xor i64 %and.i.i5662, 63 + %shr3.i.i5664 = lshr i64 9223372036854775807, %sub.i.i5663 + %arrayidx.i.i5665 = getelementptr inbounds [3 x i64], ptr %b1372441, i64 0, i64 %shr.i.i5661 + %201 = load i64, ptr %arrayidx.i.i5665, align 8 + %and4.i.i5666 = and i64 %shr3.i.i5664, %201 + br label %for.cond.i.i5667 + +for.cond.i.i5667: ; preds = %if.then8.i.i5710, %if.then.i.i5660 + %word_index.0.i.i5668 = phi i64 [ %shr.i.i5661, %if.then.i.i5660 ], [ %dec.i.i5711, %if.then8.i.i5710 ] + %this_word.0.i.i5669 = phi i64 [ %and4.i.i5666, %if.then.i.i5660 ], [ %202, %if.then8.i.i5710 ] + %tobool.not.i.i.i5670 = icmp eq i64 %this_word.0.i.i5669, 0 + br i1 %tobool.not.i.i.i5670, label %if.end.i.i5708, label %_ZN5eastl10GetLastBitEm.exit.i.i5671 + +_ZN5eastl10GetLastBitEm.exit.i.i5671: ; preds = %for.cond.i.i5667 + %tobool1.not.i.i.i5672 = icmp ult i64 %this_word.0.i.i5669, 4294967296 + %shr.i.i.i5673 = lshr i64 %this_word.0.i.i5669, 32 + %spec.select.i.i.i5674 = select i1 %tobool1.not.i.i.i5672, i64 %this_word.0.i.i5669, i64 %shr.i.i.i5673 + %spec.select18.i.i.i5675 = select i1 %tobool1.not.i.i.i5672, i32 0, i32 32 + %tobool4.not.i.i.i5676 = icmp ult i64 %spec.select.i.i.i5674, 65536 + %add6.i.i.i5677 = or disjoint i32 %spec.select18.i.i.i5675, 16 + %shr7.i.i.i5678 = lshr i64 %spec.select.i.i.i5674, 16 + %x.addr.1.i.i.i5679 = select i1 %tobool4.not.i.i.i5676, i64 %spec.select.i.i.i5674, i64 %shr7.i.i.i5678 + %n.1.i.i.i5680 = select i1 %tobool4.not.i.i.i5676, i32 %spec.select18.i.i.i5675, i32 %add6.i.i.i5677 + %tobool10.not.i.i.i5681 = icmp ult i64 %x.addr.1.i.i.i5679, 256 + %add12.i.i.i5682 = or disjoint i32 %n.1.i.i.i5680, 8 + %shr13.i.i.i5683 = lshr i64 %x.addr.1.i.i.i5679, 8 + %x.addr.2.i.i.i5684 = select i1 %tobool10.not.i.i.i5681, i64 %x.addr.1.i.i.i5679, i64 %shr13.i.i.i5683 + %n.2.i.i.i5685 = select i1 %tobool10.not.i.i.i5681, i32 %n.1.i.i.i5680, i32 %add12.i.i.i5682 + %tobool16.not.i.i.i5686 = icmp ult i64 %x.addr.2.i.i.i5684, 16 + %add18.i.i.i5687 = or disjoint i32 %n.2.i.i.i5685, 4 + %shr19.i.i.i5688 = lshr i64 %x.addr.2.i.i.i5684, 4 + %x.addr.3.i.i.i5689 = select i1 %tobool16.not.i.i.i5686, i64 %x.addr.2.i.i.i5684, i64 %shr19.i.i.i5688 + %n.3.i.i.i5690 = select i1 %tobool16.not.i.i.i5686, i32 %n.2.i.i.i5685, i32 %add18.i.i.i5687 + %and21.i.i.i5691 = and i64 %x.addr.3.i.i.i5689, 4294967292 + %tobool22.not.i.i.i5692 = icmp eq i64 %and21.i.i.i5691, 0 + %add24.i.i.i5693 = add nuw nsw i32 %n.3.i.i.i5690, 2 + %shr25.i.i.i5694 = lshr i64 %x.addr.3.i.i.i5689, 2 + %x.addr.4.i.i.i5695 = select i1 %tobool22.not.i.i.i5692, i64 %x.addr.3.i.i.i5689, i64 %shr25.i.i.i5694 + %n.4.i.i.i5696 = select i1 %tobool22.not.i.i.i5692, i32 %n.3.i.i.i5690, i32 %add24.i.i.i5693 + %and27.i.i.i5697 = and i64 %x.addr.4.i.i.i5695, 4294967294 + %tobool28.not.i.i.i5698 = icmp ne i64 %and27.i.i.i5697, 0 + %add30.i.i.i5699 = zext i1 %tobool28.not.i.i.i5698 to i32 + %n.5.i.i.i5700 = add nuw nsw i32 %n.4.i.i.i5696, %add30.i.i.i5699 + %cmp5.not.i.i5701 = icmp eq i32 %n.5.i.i.i5700, 64 + br i1 %cmp5.not.i.i5701, label %if.end.i.i5708, label %_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit5713 + +if.end.i.i5708: ; preds = %_ZN5eastl10GetLastBitEm.exit.i.i5671, %for.cond.i.i5667 + %cmp7.not.i.i5709 = icmp eq i64 %word_index.0.i.i5668, 0 + br i1 %cmp7.not.i.i5709, label %_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit5713.thread, label %if.then8.i.i5710 + +if.then8.i.i5710: ; preds = %if.end.i.i5708 + %dec.i.i5711 = add nsw i64 %word_index.0.i.i5668, -1 + %arrayidx10.i.i5712 = getelementptr inbounds [3 x i64], ptr %b1372441, i64 0, i64 %dec.i.i5711 + %202 = load i64, ptr %arrayidx10.i.i5712, align 8 + br label %for.cond.i.i5667, !llvm.loop !165 + +_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit5713.thread: ; preds = %if.end.i.i5708, %_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit5658 + %call24656132 = call noundef i32 @_ZN2EA8UnitTest12TestInternal17EATEST_VERIFY_IMPEbRiPKciS4_(i1 noundef zeroext false, ptr noundef nonnull align 4 dereferenceable(4) %nErrorCount, ptr noundef nonnull @.str, i32 noundef 1267, ptr noundef nonnull @.str.234) + br label %if.then.i.i5715 + +_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit5713: ; preds = %_ZN5eastl10GetLastBitEm.exit.i.i5671 + %conv.i.i5703 = zext nneg i32 %n.5.i.i.i5700 to i64 + %mul.i.i5704 = shl nuw i64 %word_index.0.i.i5668, 6 + %add.i.i5705 = add i64 %mul.i.i5704, %conv.i.i5703 + %add.i.fr.i5706 = freeze i64 %add.i.i5705 + %spec.select.i5707 = call i64 @llvm.umin.i64(i64 %add.i.fr.i5706, i64 137) + %cmp2464 = icmp eq i64 %add.i.fr.i5706, 27 %call2465 = call noundef i32 @_ZN2EA8UnitTest12TestInternal17EATEST_VERIFY_IMPEbRiPKciS4_(i1 noundef zeroext %cmp2464, ptr noundef nonnull align 4 dereferenceable(4) %nErrorCount, ptr noundef nonnull @.str, i32 noundef 1267, ptr noundef nonnull @.str.234) - %cmp.not.i.i5719 = icmp eq i64 %add.i.fr.i5711, 0 - br i1 %cmp.not.i.i5719, label %_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit5773.thread, label %if.then.i.i5720 - -if.then.i.i5720: ; preds = %_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit5718.thread, %_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit5718 - %203 = phi i64 [ 137, %_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit5718.thread ], [ %spec.select.i5712, %_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit5718 ] - %shr.i.i5721 = lshr i64 %203, 6 - %and.i.i5722 = and i64 %203, 63 - %sub.i.i5723 = xor i64 %and.i.i5722, 63 - %shr3.i.i5724 = lshr i64 9223372036854775807, %sub.i.i5723 - %arrayidx.i.i5725 = getelementptr inbounds [3 x i64], ptr %b1372441, i64 0, i64 %shr.i.i5721 - %204 = load i64, ptr %arrayidx.i.i5725, align 8 - %and4.i.i5726 = and i64 %shr3.i.i5724, %204 - br label %for.cond.i.i5727 - -for.cond.i.i5727: ; preds = %if.then8.i.i5770, %if.then.i.i5720 - %word_index.0.i.i5728 = phi i64 [ %shr.i.i5721, %if.then.i.i5720 ], [ %dec.i.i5771, %if.then8.i.i5770 ] - %this_word.0.i.i5729 = phi i64 [ %and4.i.i5726, %if.then.i.i5720 ], [ %205, %if.then8.i.i5770 ] - %tobool.not.i.i.i5730 = icmp eq i64 %this_word.0.i.i5729, 0 - br i1 %tobool.not.i.i.i5730, label %if.end.i.i5768, label %_ZN5eastl10GetLastBitEm.exit.i.i5731 - -_ZN5eastl10GetLastBitEm.exit.i.i5731: ; preds = %for.cond.i.i5727 - %tobool1.not.i.i.i5732 = icmp ult i64 %this_word.0.i.i5729, 4294967296 - %shr.i.i.i5733 = lshr i64 %this_word.0.i.i5729, 32 - %spec.select.i.i.i5734 = select i1 %tobool1.not.i.i.i5732, i64 %this_word.0.i.i5729, i64 %shr.i.i.i5733 - %spec.select18.i.i.i5735 = select i1 %tobool1.not.i.i.i5732, i32 0, i32 32 - %tobool4.not.i.i.i5736 = icmp ult i64 %spec.select.i.i.i5734, 65536 - %add6.i.i.i5737 = or disjoint i32 %spec.select18.i.i.i5735, 16 - %shr7.i.i.i5738 = lshr i64 %spec.select.i.i.i5734, 16 - %x.addr.1.i.i.i5739 = select i1 %tobool4.not.i.i.i5736, i64 %spec.select.i.i.i5734, i64 %shr7.i.i.i5738 - %n.1.i.i.i5740 = select i1 %tobool4.not.i.i.i5736, i32 %spec.select18.i.i.i5735, i32 %add6.i.i.i5737 - %tobool10.not.i.i.i5741 = icmp ult i64 %x.addr.1.i.i.i5739, 256 - %add12.i.i.i5742 = or disjoint i32 %n.1.i.i.i5740, 8 - %shr13.i.i.i5743 = lshr i64 %x.addr.1.i.i.i5739, 8 - %x.addr.2.i.i.i5744 = select i1 %tobool10.not.i.i.i5741, i64 %x.addr.1.i.i.i5739, i64 %shr13.i.i.i5743 - %n.2.i.i.i5745 = select i1 %tobool10.not.i.i.i5741, i32 %n.1.i.i.i5740, i32 %add12.i.i.i5742 - %tobool16.not.i.i.i5746 = icmp ult i64 %x.addr.2.i.i.i5744, 16 - %add18.i.i.i5747 = or disjoint i32 %n.2.i.i.i5745, 4 - %shr19.i.i.i5748 = lshr i64 %x.addr.2.i.i.i5744, 4 - %x.addr.3.i.i.i5749 = select i1 %tobool16.not.i.i.i5746, i64 %x.addr.2.i.i.i5744, i64 %shr19.i.i.i5748 - %n.3.i.i.i5750 = select i1 %tobool16.not.i.i.i5746, i32 %n.2.i.i.i5745, i32 %add18.i.i.i5747 - %and21.i.i.i5751 = and i64 %x.addr.3.i.i.i5749, 4294967292 - %tobool22.not.i.i.i5752 = icmp eq i64 %and21.i.i.i5751, 0 - %add24.i.i.i5753 = add nuw nsw i32 %n.3.i.i.i5750, 2 - %shr25.i.i.i5754 = lshr i64 %x.addr.3.i.i.i5749, 2 - %x.addr.4.i.i.i5755 = select i1 %tobool22.not.i.i.i5752, i64 %x.addr.3.i.i.i5749, i64 %shr25.i.i.i5754 - %n.4.i.i.i5756 = select i1 %tobool22.not.i.i.i5752, i32 %n.3.i.i.i5750, i32 %add24.i.i.i5753 - %and27.i.i.i5757 = and i64 %x.addr.4.i.i.i5755, 4294967294 - %tobool28.not.i.i.i5758 = icmp ne i64 %and27.i.i.i5757, 0 - %add30.i.i.i5759 = zext i1 %tobool28.not.i.i.i5758 to i32 - %n.5.i.i.i5760 = add nuw nsw i32 %n.4.i.i.i5756, %add30.i.i.i5759 - %cmp5.not.i.i5761 = icmp eq i32 %n.5.i.i.i5760, 64 - br i1 %cmp5.not.i.i5761, label %if.end.i.i5768, label %_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit5773 - -if.end.i.i5768: ; preds = %_ZN5eastl10GetLastBitEm.exit.i.i5731, %for.cond.i.i5727 - %cmp7.not.i.i5769 = icmp eq i64 %word_index.0.i.i5728, 0 - br i1 %cmp7.not.i.i5769, label %_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit5773.thread, label %if.then8.i.i5770 - -if.then8.i.i5770: ; preds = %if.end.i.i5768 - %dec.i.i5771 = add nsw i64 %word_index.0.i.i5728, -1 - %arrayidx10.i.i5772 = getelementptr inbounds [3 x i64], ptr %b1372441, i64 0, i64 %dec.i.i5771 - %205 = load i64, ptr %arrayidx10.i.i5772, align 8 - br label %for.cond.i.i5727, !llvm.loop !165 - -_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit5773.thread: ; preds = %if.end.i.i5768, %_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit5718 - %call24686140 = call noundef i32 @_ZN2EA8UnitTest12TestInternal17EATEST_VERIFY_IMPEbRiPKciS4_(i1 noundef zeroext false, ptr noundef nonnull align 4 dereferenceable(4) %nErrorCount, ptr noundef nonnull @.str, i32 noundef 1269, ptr noundef nonnull @.str.228) - br label %if.then.i.i5775 - -_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit5773: ; preds = %_ZN5eastl10GetLastBitEm.exit.i.i5731 - %conv.i.i5763 = zext nneg i32 %n.5.i.i.i5760 to i64 - %mul.i.i5764 = shl nuw i64 %word_index.0.i.i5728, 6 - %add.i.i5765 = add i64 %mul.i.i5764, %conv.i.i5763 - %add.i.fr.i5766 = freeze i64 %add.i.i5765 - %spec.select.i5767 = call i64 @llvm.umin.i64(i64 %add.i.fr.i5766, i64 137) - %cmp2467 = icmp eq i64 %add.i.fr.i5766, 0 + %cmp.not.i.i5714 = icmp eq i64 %add.i.fr.i5706, 0 + br i1 %cmp.not.i.i5714, label %_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit5768.thread, label %if.then.i.i5715 + +if.then.i.i5715: ; preds = %_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit5713.thread, %_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit5713 + %203 = phi i64 [ 137, %_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit5713.thread ], [ %spec.select.i5707, %_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit5713 ] + %shr.i.i5716 = lshr i64 %203, 6 + %and.i.i5717 = and i64 %203, 63 + %sub.i.i5718 = xor i64 %and.i.i5717, 63 + %shr3.i.i5719 = lshr i64 9223372036854775807, %sub.i.i5718 + %arrayidx.i.i5720 = getelementptr inbounds [3 x i64], ptr %b1372441, i64 0, i64 %shr.i.i5716 + %204 = load i64, ptr %arrayidx.i.i5720, align 8 + %and4.i.i5721 = and i64 %shr3.i.i5719, %204 + br label %for.cond.i.i5722 + +for.cond.i.i5722: ; preds = %if.then8.i.i5765, %if.then.i.i5715 + %word_index.0.i.i5723 = phi i64 [ %shr.i.i5716, %if.then.i.i5715 ], [ %dec.i.i5766, %if.then8.i.i5765 ] + %this_word.0.i.i5724 = phi i64 [ %and4.i.i5721, %if.then.i.i5715 ], [ %205, %if.then8.i.i5765 ] + %tobool.not.i.i.i5725 = icmp eq i64 %this_word.0.i.i5724, 0 + br i1 %tobool.not.i.i.i5725, label %if.end.i.i5763, label %_ZN5eastl10GetLastBitEm.exit.i.i5726 + +_ZN5eastl10GetLastBitEm.exit.i.i5726: ; preds = %for.cond.i.i5722 + %tobool1.not.i.i.i5727 = icmp ult i64 %this_word.0.i.i5724, 4294967296 + %shr.i.i.i5728 = lshr i64 %this_word.0.i.i5724, 32 + %spec.select.i.i.i5729 = select i1 %tobool1.not.i.i.i5727, i64 %this_word.0.i.i5724, i64 %shr.i.i.i5728 + %spec.select18.i.i.i5730 = select i1 %tobool1.not.i.i.i5727, i32 0, i32 32 + %tobool4.not.i.i.i5731 = icmp ult i64 %spec.select.i.i.i5729, 65536 + %add6.i.i.i5732 = or disjoint i32 %spec.select18.i.i.i5730, 16 + %shr7.i.i.i5733 = lshr i64 %spec.select.i.i.i5729, 16 + %x.addr.1.i.i.i5734 = select i1 %tobool4.not.i.i.i5731, i64 %spec.select.i.i.i5729, i64 %shr7.i.i.i5733 + %n.1.i.i.i5735 = select i1 %tobool4.not.i.i.i5731, i32 %spec.select18.i.i.i5730, i32 %add6.i.i.i5732 + %tobool10.not.i.i.i5736 = icmp ult i64 %x.addr.1.i.i.i5734, 256 + %add12.i.i.i5737 = or disjoint i32 %n.1.i.i.i5735, 8 + %shr13.i.i.i5738 = lshr i64 %x.addr.1.i.i.i5734, 8 + %x.addr.2.i.i.i5739 = select i1 %tobool10.not.i.i.i5736, i64 %x.addr.1.i.i.i5734, i64 %shr13.i.i.i5738 + %n.2.i.i.i5740 = select i1 %tobool10.not.i.i.i5736, i32 %n.1.i.i.i5735, i32 %add12.i.i.i5737 + %tobool16.not.i.i.i5741 = icmp ult i64 %x.addr.2.i.i.i5739, 16 + %add18.i.i.i5742 = or disjoint i32 %n.2.i.i.i5740, 4 + %shr19.i.i.i5743 = lshr i64 %x.addr.2.i.i.i5739, 4 + %x.addr.3.i.i.i5744 = select i1 %tobool16.not.i.i.i5741, i64 %x.addr.2.i.i.i5739, i64 %shr19.i.i.i5743 + %n.3.i.i.i5745 = select i1 %tobool16.not.i.i.i5741, i32 %n.2.i.i.i5740, i32 %add18.i.i.i5742 + %and21.i.i.i5746 = and i64 %x.addr.3.i.i.i5744, 4294967292 + %tobool22.not.i.i.i5747 = icmp eq i64 %and21.i.i.i5746, 0 + %add24.i.i.i5748 = add nuw nsw i32 %n.3.i.i.i5745, 2 + %shr25.i.i.i5749 = lshr i64 %x.addr.3.i.i.i5744, 2 + %x.addr.4.i.i.i5750 = select i1 %tobool22.not.i.i.i5747, i64 %x.addr.3.i.i.i5744, i64 %shr25.i.i.i5749 + %n.4.i.i.i5751 = select i1 %tobool22.not.i.i.i5747, i32 %n.3.i.i.i5745, i32 %add24.i.i.i5748 + %and27.i.i.i5752 = and i64 %x.addr.4.i.i.i5750, 4294967294 + %tobool28.not.i.i.i5753 = icmp ne i64 %and27.i.i.i5752, 0 + %add30.i.i.i5754 = zext i1 %tobool28.not.i.i.i5753 to i32 + %n.5.i.i.i5755 = add nuw nsw i32 %n.4.i.i.i5751, %add30.i.i.i5754 + %cmp5.not.i.i5756 = icmp eq i32 %n.5.i.i.i5755, 64 + br i1 %cmp5.not.i.i5756, label %if.end.i.i5763, label %_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit5768 + +if.end.i.i5763: ; preds = %_ZN5eastl10GetLastBitEm.exit.i.i5726, %for.cond.i.i5722 + %cmp7.not.i.i5764 = icmp eq i64 %word_index.0.i.i5723, 0 + br i1 %cmp7.not.i.i5764, label %_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit5768.thread, label %if.then8.i.i5765 + +if.then8.i.i5765: ; preds = %if.end.i.i5763 + %dec.i.i5766 = add nsw i64 %word_index.0.i.i5723, -1 + %arrayidx10.i.i5767 = getelementptr inbounds [3 x i64], ptr %b1372441, i64 0, i64 %dec.i.i5766 + %205 = load i64, ptr %arrayidx10.i.i5767, align 8 + br label %for.cond.i.i5722, !llvm.loop !165 + +_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit5768.thread: ; preds = %if.end.i.i5763, %_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit5713 + %call24686135 = call noundef i32 @_ZN2EA8UnitTest12TestInternal17EATEST_VERIFY_IMPEbRiPKciS4_(i1 noundef zeroext false, ptr noundef nonnull align 4 dereferenceable(4) %nErrorCount, ptr noundef nonnull @.str, i32 noundef 1269, ptr noundef nonnull @.str.228) + br label %if.then.i.i5770 + +_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit5768: ; preds = %_ZN5eastl10GetLastBitEm.exit.i.i5726 + %conv.i.i5758 = zext nneg i32 %n.5.i.i.i5755 to i64 + %mul.i.i5759 = shl nuw i64 %word_index.0.i.i5723, 6 + %add.i.i5760 = add i64 %mul.i.i5759, %conv.i.i5758 + %add.i.fr.i5761 = freeze i64 %add.i.i5760 + %spec.select.i5762 = call i64 @llvm.umin.i64(i64 %add.i.fr.i5761, i64 137) + %cmp2467 = icmp eq i64 %add.i.fr.i5761, 0 %call2468 = call noundef i32 @_ZN2EA8UnitTest12TestInternal17EATEST_VERIFY_IMPEbRiPKciS4_(i1 noundef zeroext %cmp2467, ptr noundef nonnull align 4 dereferenceable(4) %nErrorCount, ptr noundef nonnull @.str, i32 noundef 1269, ptr noundef nonnull @.str.228) - br i1 %cmp2467, label %_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit5828, label %if.then.i.i5775 - -if.then.i.i5775: ; preds = %_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit5773.thread, %_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit5773 - %206 = phi i64 [ 137, %_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit5773.thread ], [ %spec.select.i5767, %_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit5773 ] - %shr.i.i5776 = lshr i64 %206, 6 - %and.i.i5777 = and i64 %206, 63 - %sub.i.i5778 = xor i64 %and.i.i5777, 63 - %shr3.i.i5779 = lshr i64 9223372036854775807, %sub.i.i5778 - %arrayidx.i.i5780 = getelementptr inbounds [3 x i64], ptr %b1372441, i64 0, i64 %shr.i.i5776 - %207 = load i64, ptr %arrayidx.i.i5780, align 8 - %and4.i.i5781 = and i64 %shr3.i.i5779, %207 - br label %for.cond.i.i5782 - -for.cond.i.i5782: ; preds = %if.then8.i.i5825, %if.then.i.i5775 - %word_index.0.i.i5783 = phi i64 [ %shr.i.i5776, %if.then.i.i5775 ], [ %dec.i.i5826, %if.then8.i.i5825 ] - %this_word.0.i.i5784 = phi i64 [ %and4.i.i5781, %if.then.i.i5775 ], [ %208, %if.then8.i.i5825 ] - %tobool.not.i.i.i5785 = icmp eq i64 %this_word.0.i.i5784, 0 - br i1 %tobool.not.i.i.i5785, label %if.end.i.i5823, label %_ZN5eastl10GetLastBitEm.exit.i.i5786 - -_ZN5eastl10GetLastBitEm.exit.i.i5786: ; preds = %for.cond.i.i5782 - %tobool1.not.i.i.i5787 = icmp ult i64 %this_word.0.i.i5784, 4294967296 - %shr.i.i.i5788 = lshr i64 %this_word.0.i.i5784, 32 - %spec.select.i.i.i5789 = select i1 %tobool1.not.i.i.i5787, i64 %this_word.0.i.i5784, i64 %shr.i.i.i5788 - %spec.select18.i.i.i5790 = select i1 %tobool1.not.i.i.i5787, i32 0, i32 32 - %tobool4.not.i.i.i5791 = icmp ult i64 %spec.select.i.i.i5789, 65536 - %add6.i.i.i5792 = or disjoint i32 %spec.select18.i.i.i5790, 16 - %shr7.i.i.i5793 = lshr i64 %spec.select.i.i.i5789, 16 - %x.addr.1.i.i.i5794 = select i1 %tobool4.not.i.i.i5791, i64 %spec.select.i.i.i5789, i64 %shr7.i.i.i5793 - %n.1.i.i.i5795 = select i1 %tobool4.not.i.i.i5791, i32 %spec.select18.i.i.i5790, i32 %add6.i.i.i5792 - %tobool10.not.i.i.i5796 = icmp ult i64 %x.addr.1.i.i.i5794, 256 - %add12.i.i.i5797 = or disjoint i32 %n.1.i.i.i5795, 8 - %shr13.i.i.i5798 = lshr i64 %x.addr.1.i.i.i5794, 8 - %x.addr.2.i.i.i5799 = select i1 %tobool10.not.i.i.i5796, i64 %x.addr.1.i.i.i5794, i64 %shr13.i.i.i5798 - %n.2.i.i.i5800 = select i1 %tobool10.not.i.i.i5796, i32 %n.1.i.i.i5795, i32 %add12.i.i.i5797 - %tobool16.not.i.i.i5801 = icmp ult i64 %x.addr.2.i.i.i5799, 16 - %add18.i.i.i5802 = or disjoint i32 %n.2.i.i.i5800, 4 - %shr19.i.i.i5803 = lshr i64 %x.addr.2.i.i.i5799, 4 - %x.addr.3.i.i.i5804 = select i1 %tobool16.not.i.i.i5801, i64 %x.addr.2.i.i.i5799, i64 %shr19.i.i.i5803 - %n.3.i.i.i5805 = select i1 %tobool16.not.i.i.i5801, i32 %n.2.i.i.i5800, i32 %add18.i.i.i5802 - %and21.i.i.i5806 = and i64 %x.addr.3.i.i.i5804, 4294967292 - %tobool22.not.i.i.i5807 = icmp eq i64 %and21.i.i.i5806, 0 - %add24.i.i.i5808 = add nuw nsw i32 %n.3.i.i.i5805, 2 - %shr25.i.i.i5809 = lshr i64 %x.addr.3.i.i.i5804, 2 - %x.addr.4.i.i.i5810 = select i1 %tobool22.not.i.i.i5807, i64 %x.addr.3.i.i.i5804, i64 %shr25.i.i.i5809 - %n.4.i.i.i5811 = select i1 %tobool22.not.i.i.i5807, i32 %n.3.i.i.i5805, i32 %add24.i.i.i5808 - %and27.i.i.i5812 = and i64 %x.addr.4.i.i.i5810, 4294967294 - %tobool28.not.i.i.i5813 = icmp ne i64 %and27.i.i.i5812, 0 - %add30.i.i.i5814 = zext i1 %tobool28.not.i.i.i5813 to i32 - %n.5.i.i.i5815 = add nuw nsw i32 %n.4.i.i.i5811, %add30.i.i.i5814 - %cmp5.not.i.i5816 = icmp eq i32 %n.5.i.i.i5815, 64 - br i1 %cmp5.not.i.i5816, label %if.end.i.i5823, label %_ZNK5eastl10BitsetBaseILm3EmE10DoFindPrevEm.exit.i5817 - -if.end.i.i5823: ; preds = %_ZN5eastl10GetLastBitEm.exit.i.i5786, %for.cond.i.i5782 - %cmp7.not.i.i5824 = icmp eq i64 %word_index.0.i.i5783, 0 - br i1 %cmp7.not.i.i5824, label %_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit5828, label %if.then8.i.i5825 - -if.then8.i.i5825: ; preds = %if.end.i.i5823 - %dec.i.i5826 = add nsw i64 %word_index.0.i.i5783, -1 - %arrayidx10.i.i5827 = getelementptr inbounds [3 x i64], ptr %b1372441, i64 0, i64 %dec.i.i5826 - %208 = load i64, ptr %arrayidx10.i.i5827, align 8 - br label %for.cond.i.i5782, !llvm.loop !165 - -_ZNK5eastl10BitsetBaseILm3EmE10DoFindPrevEm.exit.i5817: ; preds = %_ZN5eastl10GetLastBitEm.exit.i.i5786 - %conv.i.i5818 = zext nneg i32 %n.5.i.i.i5815 to i64 - %mul.i.i5819 = shl nuw i64 %word_index.0.i.i5783, 6 - %add.i.i5820 = add i64 %mul.i.i5819, %conv.i.i5818 - %add.i.fr.i5821 = freeze i64 %add.i.i5820 - %209 = icmp ugt i64 %add.i.fr.i5821, 136 - br label %_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit5828 - -_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit5828: ; preds = %if.end.i.i5823, %_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit5773, %_ZNK5eastl10BitsetBaseILm3EmE10DoFindPrevEm.exit.i5817 - %cmp2470 = phi i1 [ true, %_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit5773 ], [ %209, %_ZNK5eastl10BitsetBaseILm3EmE10DoFindPrevEm.exit.i5817 ], [ true, %if.end.i.i5823 ] + br i1 %cmp2467, label %_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit5823, label %if.then.i.i5770 + +if.then.i.i5770: ; preds = %_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit5768.thread, %_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit5768 + %206 = phi i64 [ 137, %_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit5768.thread ], [ %spec.select.i5762, %_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit5768 ] + %shr.i.i5771 = lshr i64 %206, 6 + %and.i.i5772 = and i64 %206, 63 + %sub.i.i5773 = xor i64 %and.i.i5772, 63 + %shr3.i.i5774 = lshr i64 9223372036854775807, %sub.i.i5773 + %arrayidx.i.i5775 = getelementptr inbounds [3 x i64], ptr %b1372441, i64 0, i64 %shr.i.i5771 + %207 = load i64, ptr %arrayidx.i.i5775, align 8 + %and4.i.i5776 = and i64 %shr3.i.i5774, %207 + br label %for.cond.i.i5777 + +for.cond.i.i5777: ; preds = %if.then8.i.i5820, %if.then.i.i5770 + %word_index.0.i.i5778 = phi i64 [ %shr.i.i5771, %if.then.i.i5770 ], [ %dec.i.i5821, %if.then8.i.i5820 ] + %this_word.0.i.i5779 = phi i64 [ %and4.i.i5776, %if.then.i.i5770 ], [ %208, %if.then8.i.i5820 ] + %tobool.not.i.i.i5780 = icmp eq i64 %this_word.0.i.i5779, 0 + br i1 %tobool.not.i.i.i5780, label %if.end.i.i5818, label %_ZN5eastl10GetLastBitEm.exit.i.i5781 + +_ZN5eastl10GetLastBitEm.exit.i.i5781: ; preds = %for.cond.i.i5777 + %tobool1.not.i.i.i5782 = icmp ult i64 %this_word.0.i.i5779, 4294967296 + %shr.i.i.i5783 = lshr i64 %this_word.0.i.i5779, 32 + %spec.select.i.i.i5784 = select i1 %tobool1.not.i.i.i5782, i64 %this_word.0.i.i5779, i64 %shr.i.i.i5783 + %spec.select18.i.i.i5785 = select i1 %tobool1.not.i.i.i5782, i32 0, i32 32 + %tobool4.not.i.i.i5786 = icmp ult i64 %spec.select.i.i.i5784, 65536 + %add6.i.i.i5787 = or disjoint i32 %spec.select18.i.i.i5785, 16 + %shr7.i.i.i5788 = lshr i64 %spec.select.i.i.i5784, 16 + %x.addr.1.i.i.i5789 = select i1 %tobool4.not.i.i.i5786, i64 %spec.select.i.i.i5784, i64 %shr7.i.i.i5788 + %n.1.i.i.i5790 = select i1 %tobool4.not.i.i.i5786, i32 %spec.select18.i.i.i5785, i32 %add6.i.i.i5787 + %tobool10.not.i.i.i5791 = icmp ult i64 %x.addr.1.i.i.i5789, 256 + %add12.i.i.i5792 = or disjoint i32 %n.1.i.i.i5790, 8 + %shr13.i.i.i5793 = lshr i64 %x.addr.1.i.i.i5789, 8 + %x.addr.2.i.i.i5794 = select i1 %tobool10.not.i.i.i5791, i64 %x.addr.1.i.i.i5789, i64 %shr13.i.i.i5793 + %n.2.i.i.i5795 = select i1 %tobool10.not.i.i.i5791, i32 %n.1.i.i.i5790, i32 %add12.i.i.i5792 + %tobool16.not.i.i.i5796 = icmp ult i64 %x.addr.2.i.i.i5794, 16 + %add18.i.i.i5797 = or disjoint i32 %n.2.i.i.i5795, 4 + %shr19.i.i.i5798 = lshr i64 %x.addr.2.i.i.i5794, 4 + %x.addr.3.i.i.i5799 = select i1 %tobool16.not.i.i.i5796, i64 %x.addr.2.i.i.i5794, i64 %shr19.i.i.i5798 + %n.3.i.i.i5800 = select i1 %tobool16.not.i.i.i5796, i32 %n.2.i.i.i5795, i32 %add18.i.i.i5797 + %and21.i.i.i5801 = and i64 %x.addr.3.i.i.i5799, 4294967292 + %tobool22.not.i.i.i5802 = icmp eq i64 %and21.i.i.i5801, 0 + %add24.i.i.i5803 = add nuw nsw i32 %n.3.i.i.i5800, 2 + %shr25.i.i.i5804 = lshr i64 %x.addr.3.i.i.i5799, 2 + %x.addr.4.i.i.i5805 = select i1 %tobool22.not.i.i.i5802, i64 %x.addr.3.i.i.i5799, i64 %shr25.i.i.i5804 + %n.4.i.i.i5806 = select i1 %tobool22.not.i.i.i5802, i32 %n.3.i.i.i5800, i32 %add24.i.i.i5803 + %and27.i.i.i5807 = and i64 %x.addr.4.i.i.i5805, 4294967294 + %tobool28.not.i.i.i5808 = icmp ne i64 %and27.i.i.i5807, 0 + %add30.i.i.i5809 = zext i1 %tobool28.not.i.i.i5808 to i32 + %n.5.i.i.i5810 = add nuw nsw i32 %n.4.i.i.i5806, %add30.i.i.i5809 + %cmp5.not.i.i5811 = icmp eq i32 %n.5.i.i.i5810, 64 + br i1 %cmp5.not.i.i5811, label %if.end.i.i5818, label %_ZNK5eastl10BitsetBaseILm3EmE10DoFindPrevEm.exit.i5812 + +if.end.i.i5818: ; preds = %_ZN5eastl10GetLastBitEm.exit.i.i5781, %for.cond.i.i5777 + %cmp7.not.i.i5819 = icmp eq i64 %word_index.0.i.i5778, 0 + br i1 %cmp7.not.i.i5819, label %_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit5823, label %if.then8.i.i5820 + +if.then8.i.i5820: ; preds = %if.end.i.i5818 + %dec.i.i5821 = add nsw i64 %word_index.0.i.i5778, -1 + %arrayidx10.i.i5822 = getelementptr inbounds [3 x i64], ptr %b1372441, i64 0, i64 %dec.i.i5821 + %208 = load i64, ptr %arrayidx10.i.i5822, align 8 + br label %for.cond.i.i5777, !llvm.loop !165 + +_ZNK5eastl10BitsetBaseILm3EmE10DoFindPrevEm.exit.i5812: ; preds = %_ZN5eastl10GetLastBitEm.exit.i.i5781 + %conv.i.i5813 = zext nneg i32 %n.5.i.i.i5810 to i64 + %mul.i.i5814 = shl nuw i64 %word_index.0.i.i5778, 6 + %add.i.i5815 = add i64 %mul.i.i5814, %conv.i.i5813 + %add.i.fr.i5816 = freeze i64 %add.i.i5815 + %209 = icmp ugt i64 %add.i.fr.i5816, 136 + br label %_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit5823 + +_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit5823: ; preds = %if.end.i.i5818, %_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit5768, %_ZNK5eastl10BitsetBaseILm3EmE10DoFindPrevEm.exit.i5812 + %cmp2470 = phi i1 [ true, %_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit5768 ], [ %209, %_ZNK5eastl10BitsetBaseILm3EmE10DoFindPrevEm.exit.i5812 ], [ true, %if.end.i.i5818 ] %call2471 = call noundef i32 @_ZN2EA8UnitTest12TestInternal17EATEST_VERIFY_IMPEbRiPKciS4_(i1 noundef zeroext %cmp2470, ptr noundef nonnull align 4 dereferenceable(4) %nErrorCount, ptr noundef nonnull @.str, i32 noundef 1271, ptr noundef nonnull @.str.246) call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %b1372441, i8 -1, i64 16, i1 false) - store i64 511, ptr %arrayidx.i.i5461, align 8 - br label %for.body.i.i5830 - -for.body.i.i5830: ; preds = %for.inc.i.i5872, %_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit5828 - %word_index.07.i.i5831 = phi i64 [ 3, %_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit5828 ], [ %sub.i.i5832, %for.inc.i.i5872 ] - %sub.i.i5832 = add nsw i64 %word_index.07.i.i5831, -1 - %arrayidx.i.i5833 = getelementptr inbounds [3 x i64], ptr %b1372441, i64 0, i64 %sub.i.i5832 - %210 = load i64, ptr %arrayidx.i.i5833, align 8 - %tobool.not.i.i.i5834 = icmp eq i64 %210, 0 - br i1 %tobool.not.i.i.i5834, label %for.inc.i.i5872, label %_ZN5eastl10GetLastBitEm.exit.i.i5835 - -_ZN5eastl10GetLastBitEm.exit.i.i5835: ; preds = %for.body.i.i5830 - %tobool1.not.i.i.i5836 = icmp ult i64 %210, 4294967296 - %shr.i.i.i5837 = lshr i64 %210, 32 - %spec.select.i.i.i5838 = select i1 %tobool1.not.i.i.i5836, i64 %210, i64 %shr.i.i.i5837 - %spec.select18.i.i.i5839 = select i1 %tobool1.not.i.i.i5836, i32 0, i32 32 - %tobool4.not.i.i.i5840 = icmp ult i64 %spec.select.i.i.i5838, 65536 - %add6.i.i.i5841 = or disjoint i32 %spec.select18.i.i.i5839, 16 - %shr7.i.i.i5842 = lshr i64 %spec.select.i.i.i5838, 16 - %x.addr.1.i.i.i5843 = select i1 %tobool4.not.i.i.i5840, i64 %spec.select.i.i.i5838, i64 %shr7.i.i.i5842 - %n.1.i.i.i5844 = select i1 %tobool4.not.i.i.i5840, i32 %spec.select18.i.i.i5839, i32 %add6.i.i.i5841 - %tobool10.not.i.i.i5845 = icmp ult i64 %x.addr.1.i.i.i5843, 256 - %add12.i.i.i5846 = or disjoint i32 %n.1.i.i.i5844, 8 - %shr13.i.i.i5847 = lshr i64 %x.addr.1.i.i.i5843, 8 - %x.addr.2.i.i.i5848 = select i1 %tobool10.not.i.i.i5845, i64 %x.addr.1.i.i.i5843, i64 %shr13.i.i.i5847 - %n.2.i.i.i5849 = select i1 %tobool10.not.i.i.i5845, i32 %n.1.i.i.i5844, i32 %add12.i.i.i5846 - %tobool16.not.i.i.i5850 = icmp ult i64 %x.addr.2.i.i.i5848, 16 - %add18.i.i.i5851 = or disjoint i32 %n.2.i.i.i5849, 4 - %shr19.i.i.i5852 = lshr i64 %x.addr.2.i.i.i5848, 4 - %x.addr.3.i.i.i5853 = select i1 %tobool16.not.i.i.i5850, i64 %x.addr.2.i.i.i5848, i64 %shr19.i.i.i5852 - %n.3.i.i.i5854 = select i1 %tobool16.not.i.i.i5850, i32 %n.2.i.i.i5849, i32 %add18.i.i.i5851 - %and21.i.i.i5855 = and i64 %x.addr.3.i.i.i5853, 4294967292 - %tobool22.not.i.i.i5856 = icmp eq i64 %and21.i.i.i5855, 0 - %add24.i.i.i5857 = add nuw nsw i32 %n.3.i.i.i5854, 2 - %shr25.i.i.i5858 = lshr i64 %x.addr.3.i.i.i5853, 2 - %x.addr.4.i.i.i5859 = select i1 %tobool22.not.i.i.i5856, i64 %x.addr.3.i.i.i5853, i64 %shr25.i.i.i5858 - %n.4.i.i.i5860 = select i1 %tobool22.not.i.i.i5856, i32 %n.3.i.i.i5854, i32 %add24.i.i.i5857 - %and27.i.i.i5861 = and i64 %x.addr.4.i.i.i5859, 4294967294 - %tobool28.not.i.i.i5862 = icmp ne i64 %and27.i.i.i5861, 0 - %add30.i.i.i5863 = zext i1 %tobool28.not.i.i.i5862 to i32 - %n.5.i.i.i5864 = add nuw nsw i32 %n.4.i.i.i5860, %add30.i.i.i5863 - %cmp2.not.i.i5865 = icmp eq i32 %n.5.i.i.i5864, 64 - br i1 %cmp2.not.i.i5865, label %for.inc.i.i5872, label %_ZNK5eastl6bitsetILm137EmE9find_lastEv.exit5874 - -for.inc.i.i5872: ; preds = %_ZN5eastl10GetLastBitEm.exit.i.i5835, %for.body.i.i5830 - %cmp.not.i.i5873 = icmp eq i64 %sub.i.i5832, 0 - br i1 %cmp.not.i.i5873, label %for.end2480, label %for.body.i.i5830, !llvm.loop !164 - -_ZNK5eastl6bitsetILm137EmE9find_lastEv.exit5874: ; preds = %_ZN5eastl10GetLastBitEm.exit.i.i5835 - %conv.i.i5867 = zext nneg i32 %n.5.i.i.i5864 to i64 - %mul.i.i5868 = shl i64 %sub.i.i5832, 6 - %add.i.i5869 = add i64 %mul.i.i5868, %conv.i.i5867 - %add.i.fr.i5870 = freeze i64 %add.i.i5869 - %cmp2475.not6211 = icmp ugt i64 %add.i.fr.i5870, 136 - br i1 %cmp2475.not6211, label %for.end2480, label %for.body2476 - -for.body2476: ; preds = %_ZNK5eastl6bitsetILm137EmE9find_lastEv.exit5874, %_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit5929 - %j2242.76213 = phi i64 [ %spec.select.i5923, %_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit5929 ], [ %add.i.fr.i5870, %_ZNK5eastl6bitsetILm137EmE9find_lastEv.exit5874 ] - %i2241.76212 = phi i64 [ %inc2477, %_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit5929 ], [ 0, %_ZNK5eastl6bitsetILm137EmE9find_lastEv.exit5874 ] - %inc2477 = add i64 %i2241.76212, 1 - %cmp.not.i.i5875 = icmp eq i64 %j2242.76213, 0 - br i1 %cmp.not.i.i5875, label %for.end2480.loopexit, label %if.then.i.i5876 - -if.then.i.i5876: ; preds = %for.body2476 - %shr.i.i5877 = lshr i64 %j2242.76213, 6 - %and.i.i5878 = and i64 %j2242.76213, 63 - %sub.i.i5879 = xor i64 %and.i.i5878, 63 - %shr3.i.i5880 = lshr i64 9223372036854775807, %sub.i.i5879 - %arrayidx.i.i5881 = getelementptr inbounds [3 x i64], ptr %b1372441, i64 0, i64 %shr.i.i5877 - %211 = load i64, ptr %arrayidx.i.i5881, align 8 - %and4.i.i5882 = and i64 %211, %shr3.i.i5880 - br label %for.cond.i.i5883 - -for.cond.i.i5883: ; preds = %if.then8.i.i5926, %if.then.i.i5876 - %word_index.0.i.i5884 = phi i64 [ %shr.i.i5877, %if.then.i.i5876 ], [ %dec.i.i5927, %if.then8.i.i5926 ] - %this_word.0.i.i5885 = phi i64 [ %and4.i.i5882, %if.then.i.i5876 ], [ %212, %if.then8.i.i5926 ] - %tobool.not.i.i.i5886 = icmp eq i64 %this_word.0.i.i5885, 0 - br i1 %tobool.not.i.i.i5886, label %if.end.i.i5924, label %_ZN5eastl10GetLastBitEm.exit.i.i5887 - -_ZN5eastl10GetLastBitEm.exit.i.i5887: ; preds = %for.cond.i.i5883 - %tobool1.not.i.i.i5888 = icmp ult i64 %this_word.0.i.i5885, 4294967296 - %shr.i.i.i5889 = lshr i64 %this_word.0.i.i5885, 32 - %spec.select.i.i.i5890 = select i1 %tobool1.not.i.i.i5888, i64 %this_word.0.i.i5885, i64 %shr.i.i.i5889 - %spec.select18.i.i.i5891 = select i1 %tobool1.not.i.i.i5888, i32 0, i32 32 - %tobool4.not.i.i.i5892 = icmp ult i64 %spec.select.i.i.i5890, 65536 - %add6.i.i.i5893 = or disjoint i32 %spec.select18.i.i.i5891, 16 - %shr7.i.i.i5894 = lshr i64 %spec.select.i.i.i5890, 16 - %x.addr.1.i.i.i5895 = select i1 %tobool4.not.i.i.i5892, i64 %spec.select.i.i.i5890, i64 %shr7.i.i.i5894 - %n.1.i.i.i5896 = select i1 %tobool4.not.i.i.i5892, i32 %spec.select18.i.i.i5891, i32 %add6.i.i.i5893 - %tobool10.not.i.i.i5897 = icmp ult i64 %x.addr.1.i.i.i5895, 256 - %add12.i.i.i5898 = or disjoint i32 %n.1.i.i.i5896, 8 - %shr13.i.i.i5899 = lshr i64 %x.addr.1.i.i.i5895, 8 - %x.addr.2.i.i.i5900 = select i1 %tobool10.not.i.i.i5897, i64 %x.addr.1.i.i.i5895, i64 %shr13.i.i.i5899 - %n.2.i.i.i5901 = select i1 %tobool10.not.i.i.i5897, i32 %n.1.i.i.i5896, i32 %add12.i.i.i5898 - %tobool16.not.i.i.i5902 = icmp ult i64 %x.addr.2.i.i.i5900, 16 - %add18.i.i.i5903 = or disjoint i32 %n.2.i.i.i5901, 4 - %shr19.i.i.i5904 = lshr i64 %x.addr.2.i.i.i5900, 4 - %x.addr.3.i.i.i5905 = select i1 %tobool16.not.i.i.i5902, i64 %x.addr.2.i.i.i5900, i64 %shr19.i.i.i5904 - %n.3.i.i.i5906 = select i1 %tobool16.not.i.i.i5902, i32 %n.2.i.i.i5901, i32 %add18.i.i.i5903 - %and21.i.i.i5907 = and i64 %x.addr.3.i.i.i5905, 4294967292 - %tobool22.not.i.i.i5908 = icmp eq i64 %and21.i.i.i5907, 0 - %add24.i.i.i5909 = add nuw nsw i32 %n.3.i.i.i5906, 2 - %shr25.i.i.i5910 = lshr i64 %x.addr.3.i.i.i5905, 2 - %x.addr.4.i.i.i5911 = select i1 %tobool22.not.i.i.i5908, i64 %x.addr.3.i.i.i5905, i64 %shr25.i.i.i5910 - %n.4.i.i.i5912 = select i1 %tobool22.not.i.i.i5908, i32 %n.3.i.i.i5906, i32 %add24.i.i.i5909 - %and27.i.i.i5913 = and i64 %x.addr.4.i.i.i5911, 4294967294 - %tobool28.not.i.i.i5914 = icmp ne i64 %and27.i.i.i5913, 0 - %add30.i.i.i5915 = zext i1 %tobool28.not.i.i.i5914 to i32 - %n.5.i.i.i5916 = add nuw nsw i32 %n.4.i.i.i5912, %add30.i.i.i5915 - %cmp5.not.i.i5917 = icmp eq i32 %n.5.i.i.i5916, 64 - br i1 %cmp5.not.i.i5917, label %if.end.i.i5924, label %_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit5929 - -if.end.i.i5924: ; preds = %_ZN5eastl10GetLastBitEm.exit.i.i5887, %for.cond.i.i5883 - %cmp7.not.i.i5925 = icmp eq i64 %word_index.0.i.i5884, 0 - br i1 %cmp7.not.i.i5925, label %for.end2480.loopexit, label %if.then8.i.i5926 - -if.then8.i.i5926: ; preds = %if.end.i.i5924 - %dec.i.i5927 = add nsw i64 %word_index.0.i.i5884, -1 - %arrayidx10.i.i5928 = getelementptr inbounds [3 x i64], ptr %b1372441, i64 0, i64 %dec.i.i5927 - %212 = load i64, ptr %arrayidx10.i.i5928, align 8 - br label %for.cond.i.i5883, !llvm.loop !165 - -_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit5929: ; preds = %_ZN5eastl10GetLastBitEm.exit.i.i5887 - %conv.i.i5919 = zext nneg i32 %n.5.i.i.i5916 to i64 - %mul.i.i5920 = shl nuw i64 %word_index.0.i.i5884, 6 - %add.i.i5921 = add i64 %mul.i.i5920, %conv.i.i5919 - %add.i.fr.i5922 = freeze i64 %add.i.i5921 - %spec.select.i5923 = call i64 @llvm.umin.i64(i64 %add.i.fr.i5922, i64 137) - %cmp2475.not = icmp ugt i64 %add.i.fr.i5922, 136 + store i64 511, ptr %arrayidx.i.i5456, align 8 + br label %for.body.i.i5825 + +for.body.i.i5825: ; preds = %for.inc.i.i5867, %_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit5823 + %word_index.07.i.i5826 = phi i64 [ 3, %_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit5823 ], [ %sub.i.i5827, %for.inc.i.i5867 ] + %sub.i.i5827 = add nsw i64 %word_index.07.i.i5826, -1 + %arrayidx.i.i5828 = getelementptr inbounds [3 x i64], ptr %b1372441, i64 0, i64 %sub.i.i5827 + %210 = load i64, ptr %arrayidx.i.i5828, align 8 + %tobool.not.i.i.i5829 = icmp eq i64 %210, 0 + br i1 %tobool.not.i.i.i5829, label %for.inc.i.i5867, label %_ZN5eastl10GetLastBitEm.exit.i.i5830 + +_ZN5eastl10GetLastBitEm.exit.i.i5830: ; preds = %for.body.i.i5825 + %tobool1.not.i.i.i5831 = icmp ult i64 %210, 4294967296 + %shr.i.i.i5832 = lshr i64 %210, 32 + %spec.select.i.i.i5833 = select i1 %tobool1.not.i.i.i5831, i64 %210, i64 %shr.i.i.i5832 + %spec.select18.i.i.i5834 = select i1 %tobool1.not.i.i.i5831, i32 0, i32 32 + %tobool4.not.i.i.i5835 = icmp ult i64 %spec.select.i.i.i5833, 65536 + %add6.i.i.i5836 = or disjoint i32 %spec.select18.i.i.i5834, 16 + %shr7.i.i.i5837 = lshr i64 %spec.select.i.i.i5833, 16 + %x.addr.1.i.i.i5838 = select i1 %tobool4.not.i.i.i5835, i64 %spec.select.i.i.i5833, i64 %shr7.i.i.i5837 + %n.1.i.i.i5839 = select i1 %tobool4.not.i.i.i5835, i32 %spec.select18.i.i.i5834, i32 %add6.i.i.i5836 + %tobool10.not.i.i.i5840 = icmp ult i64 %x.addr.1.i.i.i5838, 256 + %add12.i.i.i5841 = or disjoint i32 %n.1.i.i.i5839, 8 + %shr13.i.i.i5842 = lshr i64 %x.addr.1.i.i.i5838, 8 + %x.addr.2.i.i.i5843 = select i1 %tobool10.not.i.i.i5840, i64 %x.addr.1.i.i.i5838, i64 %shr13.i.i.i5842 + %n.2.i.i.i5844 = select i1 %tobool10.not.i.i.i5840, i32 %n.1.i.i.i5839, i32 %add12.i.i.i5841 + %tobool16.not.i.i.i5845 = icmp ult i64 %x.addr.2.i.i.i5843, 16 + %add18.i.i.i5846 = or disjoint i32 %n.2.i.i.i5844, 4 + %shr19.i.i.i5847 = lshr i64 %x.addr.2.i.i.i5843, 4 + %x.addr.3.i.i.i5848 = select i1 %tobool16.not.i.i.i5845, i64 %x.addr.2.i.i.i5843, i64 %shr19.i.i.i5847 + %n.3.i.i.i5849 = select i1 %tobool16.not.i.i.i5845, i32 %n.2.i.i.i5844, i32 %add18.i.i.i5846 + %and21.i.i.i5850 = and i64 %x.addr.3.i.i.i5848, 4294967292 + %tobool22.not.i.i.i5851 = icmp eq i64 %and21.i.i.i5850, 0 + %add24.i.i.i5852 = add nuw nsw i32 %n.3.i.i.i5849, 2 + %shr25.i.i.i5853 = lshr i64 %x.addr.3.i.i.i5848, 2 + %x.addr.4.i.i.i5854 = select i1 %tobool22.not.i.i.i5851, i64 %x.addr.3.i.i.i5848, i64 %shr25.i.i.i5853 + %n.4.i.i.i5855 = select i1 %tobool22.not.i.i.i5851, i32 %n.3.i.i.i5849, i32 %add24.i.i.i5852 + %and27.i.i.i5856 = and i64 %x.addr.4.i.i.i5854, 4294967294 + %tobool28.not.i.i.i5857 = icmp ne i64 %and27.i.i.i5856, 0 + %add30.i.i.i5858 = zext i1 %tobool28.not.i.i.i5857 to i32 + %n.5.i.i.i5859 = add nuw nsw i32 %n.4.i.i.i5855, %add30.i.i.i5858 + %cmp2.not.i.i5860 = icmp eq i32 %n.5.i.i.i5859, 64 + br i1 %cmp2.not.i.i5860, label %for.inc.i.i5867, label %_ZNK5eastl6bitsetILm137EmE9find_lastEv.exit5869 + +for.inc.i.i5867: ; preds = %_ZN5eastl10GetLastBitEm.exit.i.i5830, %for.body.i.i5825 + %cmp.not.i.i5868 = icmp eq i64 %sub.i.i5827, 0 + br i1 %cmp.not.i.i5868, label %for.end2480, label %for.body.i.i5825, !llvm.loop !164 + +_ZNK5eastl6bitsetILm137EmE9find_lastEv.exit5869: ; preds = %_ZN5eastl10GetLastBitEm.exit.i.i5830 + %conv.i.i5862 = zext nneg i32 %n.5.i.i.i5859 to i64 + %mul.i.i5863 = shl i64 %sub.i.i5827, 6 + %add.i.i5864 = add i64 %mul.i.i5863, %conv.i.i5862 + %add.i.fr.i5865 = freeze i64 %add.i.i5864 + %cmp2475.not6206 = icmp ugt i64 %add.i.fr.i5865, 136 + br i1 %cmp2475.not6206, label %for.end2480, label %for.body2476 + +for.body2476: ; preds = %_ZNK5eastl6bitsetILm137EmE9find_lastEv.exit5869, %_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit5924 + %j2242.76208 = phi i64 [ %spec.select.i5918, %_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit5924 ], [ %add.i.fr.i5865, %_ZNK5eastl6bitsetILm137EmE9find_lastEv.exit5869 ] + %i2241.76207 = phi i64 [ %inc2477, %_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit5924 ], [ 0, %_ZNK5eastl6bitsetILm137EmE9find_lastEv.exit5869 ] + %inc2477 = add i64 %i2241.76207, 1 + %cmp.not.i.i5870 = icmp eq i64 %j2242.76208, 0 + br i1 %cmp.not.i.i5870, label %for.end2480.loopexit, label %if.then.i.i5871 + +if.then.i.i5871: ; preds = %for.body2476 + %shr.i.i5872 = lshr i64 %j2242.76208, 6 + %and.i.i5873 = and i64 %j2242.76208, 63 + %sub.i.i5874 = xor i64 %and.i.i5873, 63 + %shr3.i.i5875 = lshr i64 9223372036854775807, %sub.i.i5874 + %arrayidx.i.i5876 = getelementptr inbounds [3 x i64], ptr %b1372441, i64 0, i64 %shr.i.i5872 + %211 = load i64, ptr %arrayidx.i.i5876, align 8 + %and4.i.i5877 = and i64 %211, %shr3.i.i5875 + br label %for.cond.i.i5878 + +for.cond.i.i5878: ; preds = %if.then8.i.i5921, %if.then.i.i5871 + %word_index.0.i.i5879 = phi i64 [ %shr.i.i5872, %if.then.i.i5871 ], [ %dec.i.i5922, %if.then8.i.i5921 ] + %this_word.0.i.i5880 = phi i64 [ %and4.i.i5877, %if.then.i.i5871 ], [ %212, %if.then8.i.i5921 ] + %tobool.not.i.i.i5881 = icmp eq i64 %this_word.0.i.i5880, 0 + br i1 %tobool.not.i.i.i5881, label %if.end.i.i5919, label %_ZN5eastl10GetLastBitEm.exit.i.i5882 + +_ZN5eastl10GetLastBitEm.exit.i.i5882: ; preds = %for.cond.i.i5878 + %tobool1.not.i.i.i5883 = icmp ult i64 %this_word.0.i.i5880, 4294967296 + %shr.i.i.i5884 = lshr i64 %this_word.0.i.i5880, 32 + %spec.select.i.i.i5885 = select i1 %tobool1.not.i.i.i5883, i64 %this_word.0.i.i5880, i64 %shr.i.i.i5884 + %spec.select18.i.i.i5886 = select i1 %tobool1.not.i.i.i5883, i32 0, i32 32 + %tobool4.not.i.i.i5887 = icmp ult i64 %spec.select.i.i.i5885, 65536 + %add6.i.i.i5888 = or disjoint i32 %spec.select18.i.i.i5886, 16 + %shr7.i.i.i5889 = lshr i64 %spec.select.i.i.i5885, 16 + %x.addr.1.i.i.i5890 = select i1 %tobool4.not.i.i.i5887, i64 %spec.select.i.i.i5885, i64 %shr7.i.i.i5889 + %n.1.i.i.i5891 = select i1 %tobool4.not.i.i.i5887, i32 %spec.select18.i.i.i5886, i32 %add6.i.i.i5888 + %tobool10.not.i.i.i5892 = icmp ult i64 %x.addr.1.i.i.i5890, 256 + %add12.i.i.i5893 = or disjoint i32 %n.1.i.i.i5891, 8 + %shr13.i.i.i5894 = lshr i64 %x.addr.1.i.i.i5890, 8 + %x.addr.2.i.i.i5895 = select i1 %tobool10.not.i.i.i5892, i64 %x.addr.1.i.i.i5890, i64 %shr13.i.i.i5894 + %n.2.i.i.i5896 = select i1 %tobool10.not.i.i.i5892, i32 %n.1.i.i.i5891, i32 %add12.i.i.i5893 + %tobool16.not.i.i.i5897 = icmp ult i64 %x.addr.2.i.i.i5895, 16 + %add18.i.i.i5898 = or disjoint i32 %n.2.i.i.i5896, 4 + %shr19.i.i.i5899 = lshr i64 %x.addr.2.i.i.i5895, 4 + %x.addr.3.i.i.i5900 = select i1 %tobool16.not.i.i.i5897, i64 %x.addr.2.i.i.i5895, i64 %shr19.i.i.i5899 + %n.3.i.i.i5901 = select i1 %tobool16.not.i.i.i5897, i32 %n.2.i.i.i5896, i32 %add18.i.i.i5898 + %and21.i.i.i5902 = and i64 %x.addr.3.i.i.i5900, 4294967292 + %tobool22.not.i.i.i5903 = icmp eq i64 %and21.i.i.i5902, 0 + %add24.i.i.i5904 = add nuw nsw i32 %n.3.i.i.i5901, 2 + %shr25.i.i.i5905 = lshr i64 %x.addr.3.i.i.i5900, 2 + %x.addr.4.i.i.i5906 = select i1 %tobool22.not.i.i.i5903, i64 %x.addr.3.i.i.i5900, i64 %shr25.i.i.i5905 + %n.4.i.i.i5907 = select i1 %tobool22.not.i.i.i5903, i32 %n.3.i.i.i5901, i32 %add24.i.i.i5904 + %and27.i.i.i5908 = and i64 %x.addr.4.i.i.i5906, 4294967294 + %tobool28.not.i.i.i5909 = icmp ne i64 %and27.i.i.i5908, 0 + %add30.i.i.i5910 = zext i1 %tobool28.not.i.i.i5909 to i32 + %n.5.i.i.i5911 = add nuw nsw i32 %n.4.i.i.i5907, %add30.i.i.i5910 + %cmp5.not.i.i5912 = icmp eq i32 %n.5.i.i.i5911, 64 + br i1 %cmp5.not.i.i5912, label %if.end.i.i5919, label %_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit5924 + +if.end.i.i5919: ; preds = %_ZN5eastl10GetLastBitEm.exit.i.i5882, %for.cond.i.i5878 + %cmp7.not.i.i5920 = icmp eq i64 %word_index.0.i.i5879, 0 + br i1 %cmp7.not.i.i5920, label %for.end2480.loopexit, label %if.then8.i.i5921 + +if.then8.i.i5921: ; preds = %if.end.i.i5919 + %dec.i.i5922 = add nsw i64 %word_index.0.i.i5879, -1 + %arrayidx10.i.i5923 = getelementptr inbounds [3 x i64], ptr %b1372441, i64 0, i64 %dec.i.i5922 + %212 = load i64, ptr %arrayidx10.i.i5923, align 8 + br label %for.cond.i.i5878, !llvm.loop !165 + +_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit5924: ; preds = %_ZN5eastl10GetLastBitEm.exit.i.i5882 + %conv.i.i5914 = zext nneg i32 %n.5.i.i.i5911 to i64 + %mul.i.i5915 = shl nuw i64 %word_index.0.i.i5879, 6 + %add.i.i5916 = add i64 %mul.i.i5915, %conv.i.i5914 + %add.i.fr.i5917 = freeze i64 %add.i.i5916 + %spec.select.i5918 = call i64 @llvm.umin.i64(i64 %add.i.fr.i5917, i64 137) + %cmp2475.not = icmp ugt i64 %add.i.fr.i5917, 136 br i1 %cmp2475.not, label %for.end2480.loopexit, label %for.body2476, !llvm.loop !166 -for.end2480.loopexit: ; preds = %for.body2476, %_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit5929, %if.end.i.i5924 +for.end2480.loopexit: ; preds = %for.body2476, %_ZNK5eastl6bitsetILm137EmE9find_prevEm.exit5924, %if.end.i.i5919 %213 = icmp eq i64 %inc2477, 137 br label %for.end2480 -for.end2480: ; preds = %for.inc.i.i5872, %for.end2480.loopexit, %_ZNK5eastl6bitsetILm137EmE9find_lastEv.exit5874 - %i2241.7.lcssa = phi i1 [ false, %_ZNK5eastl6bitsetILm137EmE9find_lastEv.exit5874 ], [ %213, %for.end2480.loopexit ], [ false, %for.inc.i.i5872 ] +for.end2480: ; preds = %for.inc.i.i5867, %for.end2480.loopexit, %_ZNK5eastl6bitsetILm137EmE9find_lastEv.exit5869 + %i2241.7.lcssa = phi i1 [ false, %_ZNK5eastl6bitsetILm137EmE9find_lastEv.exit5869 ], [ %213, %for.end2480.loopexit ], [ false, %for.inc.i.i5867 ] %call2482 = call noundef i32 @_ZN2EA8UnitTest12TestInternal17EATEST_VERIFY_IMPEbRiPKciS4_(i1 noundef zeroext %i2241.7.lcssa, ptr noundef nonnull align 4 dereferenceable(4) %nErrorCount, ptr noundef nonnull @.str, i32 noundef 1276, ptr noundef nonnull @.str.249) %214 = load i32, ptr %nErrorCount, align 4 ret i32 %214 diff --git a/bench/git/optimized/ewah_bitmap.ll b/bench/git/optimized/ewah_bitmap.ll index 4f3d17d82e9..c2a62398b10 100644 --- a/bench/git/optimized/ewah_bitmap.ll +++ b/bench/git/optimized/ewah_bitmap.ll @@ -45,8 +45,8 @@ land.lhs.true: ; preds = %entry %shr.i.i = lshr i64 %.val, 1 %and.i.i = and i64 %shr.i.i, 4294967295 %shr.i3.i = lshr i64 %.val, 33 - %add.i = sub nsw i64 0, %shr.i3.i - %cmp3 = icmp eq i64 %and.i.i, %add.i + %2 = or i64 %and.i.i, %shr.i3.i + %cmp3 = icmp eq i64 %2, 0 br i1 %cmp3, label %if.then, label %if.then11 if.then: ; preds = %land.lhs.true @@ -63,17 +63,17 @@ if.else: ; preds = %entry if.then11: ; preds = %land.lhs.true, %if.else %buffer_size.i.i = getelementptr inbounds i8, ptr %self, i64 8 - %2 = load i64, ptr %buffer_size.i.i, align 8 - %add.i.i = add i64 %2, 1 - %3 = load ptr, ptr %self, align 8 + %3 = load i64, ptr %buffer_size.i.i, align 8 + %add.i.i = add i64 %3, 1 + %4 = load ptr, ptr %self, align 8 %alloc_size.i.i.i = getelementptr inbounds i8, ptr %self, i64 16 - %4 = load i64, ptr %alloc_size.i.i.i, align 8 - %cmp.i.i.i = icmp ult i64 %4, %add.i.i + %5 = load i64, ptr %alloc_size.i.i.i, align 8 + %cmp.i.i.i = icmp ult i64 %5, %add.i.i br i1 %cmp.i.i.i, label %if.then.i.i.i, label %buffer_push_rlw.exit if.then.i.i.i: ; preds = %if.then11 - %5 = mul i64 %4, 3 - %mul.i.i.i = add i64 %5, 48 + %6 = mul i64 %5, 3 + %mul.i.i.i = add i64 %6, 48 %div14.i.i.i = lshr i64 %mul.i.i.i, 1 %new_size.div14.i.i.i = tail call i64 @llvm.umax.i64(i64 %div14.i.i.i, i64 %add.i.i) store i64 %new_size.div14.i.i.i, ptr %alloc_size.i.i.i, align 8 @@ -86,7 +86,7 @@ if.then.i.i.i.i: ; preds = %if.then.i.i.i st_mult.exit.i.i.i: ; preds = %if.then.i.i.i %mul.i.i.i.i = shl nuw i64 %new_size.div14.i.i.i, 3 - %call12.i.i.i = tail call ptr @xrealloc(ptr noundef %3, i64 noundef %mul.i.i.i.i) #11 + %call12.i.i.i = tail call ptr @xrealloc(ptr noundef %4, i64 noundef %mul.i.i.i.i) #11 store ptr %call12.i.i.i, ptr %self, align 8 %.pre.i.i = load i64, ptr %buffer_size.i.i, align 8 %.pre4.i.i = add i64 %.pre.i.i, 1 @@ -94,29 +94,29 @@ st_mult.exit.i.i.i: ; preds = %if.then.i.i.i buffer_push_rlw.exit: ; preds = %if.then11, %st_mult.exit.i.i.i %inc.pre-phi.i.i = phi i64 [ %add.i.i, %if.then11 ], [ %.pre4.i.i, %st_mult.exit.i.i.i ] - %6 = phi i64 [ %2, %if.then11 ], [ %.pre.i.i, %st_mult.exit.i.i.i ] - %7 = phi ptr [ %3, %if.then11 ], [ %call12.i.i.i, %st_mult.exit.i.i.i ] + %7 = phi i64 [ %3, %if.then11 ], [ %.pre.i.i, %st_mult.exit.i.i.i ] + %8 = phi ptr [ %4, %if.then11 ], [ %call12.i.i.i, %st_mult.exit.i.i.i ] store i64 %inc.pre-phi.i.i, ptr %buffer_size.i.i, align 8 - %arrayidx.i.i = getelementptr inbounds i64, ptr %7, i64 %6 + %arrayidx.i.i = getelementptr inbounds i64, ptr %8, i64 %7 store i64 0, ptr %arrayidx.i.i, align 8 - %8 = load ptr, ptr %self, align 8 - %9 = load i64, ptr %buffer_size.i.i, align 8 - %add.ptr.i = getelementptr inbounds i64, ptr %8, i64 %9 + %9 = load ptr, ptr %self, align 8 + %10 = load i64, ptr %buffer_size.i.i, align 8 + %add.ptr.i = getelementptr inbounds i64, ptr %9, i64 %10 %add.ptr1.i = getelementptr inbounds i8, ptr %add.ptr.i, i64 -8 store ptr %add.ptr1.i, ptr %rlw, align 8 %tobool.not = icmp eq i32 %v, 0 br i1 %tobool.not, label %if.end15, label %if.then12 if.then12: ; preds = %buffer_push_rlw.exit - %10 = load i64, ptr %add.ptr1.i, align 8 - %storemerge.i41 = or i64 %10, 1 + %11 = load i64, ptr %add.ptr1.i, align 8 + %storemerge.i41 = or i64 %11, 1 store i64 %storemerge.i41, ptr %add.ptr1.i, align 8 br label %if.end15 if.end15: ; preds = %if.else, %buffer_push_rlw.exit, %if.then12, %if.then %added.0 = phi i64 [ 0, %if.then ], [ 1, %if.then12 ], [ 1, %buffer_push_rlw.exit ], [ 0, %if.else ] - %11 = load ptr, ptr %rlw, align 8 - %.val34 = load i64, ptr %11, align 8 + %12 = load ptr, ptr %rlw, align 8 + %.val34 = load i64, ptr %12, align 8 %shr.i42 = lshr i64 %.val34, 1 %and.i43 = and i64 %shr.i42, 4294967295 %sub = xor i64 %and.i43, 4294967295 @@ -126,7 +126,7 @@ if.end15: ; preds = %if.else, %buffer_pu %shl.i = shl nuw nsw i64 %add, 1 %or1.i = or i64 %shl.i, -8589934591 %and.i44 = and i64 %or1.i, %or.i - store i64 %and.i44, ptr %11, align 8 + store i64 %and.i44, ptr %12, align 8 %sub20 = sub i64 %number, %cond.i %cmp21104 = icmp ugt i64 %sub20, 4294967294 br i1 %cmp21104, label %while.body.lr.ph, label %while.end @@ -140,16 +140,16 @@ while.body.lr.ph: ; preds = %if.end15 while.body.us: ; preds = %while.body.lr.ph, %buffer_push_rlw.exit65.us %number.addr.0106.us = phi i64 [ %sub28.us, %buffer_push_rlw.exit65.us ], [ %sub20, %while.body.lr.ph ] %added.1105.us = phi i64 [ %inc22.us, %buffer_push_rlw.exit65.us ], [ %added.0, %while.body.lr.ph ] - %12 = load i64, ptr %buffer_size.i.i45, align 8 - %add.i.i46.us = add i64 %12, 1 - %13 = load ptr, ptr %self, align 8 - %14 = load i64, ptr %alloc_size.i.i.i47, align 8 - %cmp.i.i.i48.us = icmp ult i64 %14, %add.i.i46.us + %13 = load i64, ptr %buffer_size.i.i45, align 8 + %add.i.i46.us = add i64 %13, 1 + %14 = load ptr, ptr %self, align 8 + %15 = load i64, ptr %alloc_size.i.i.i47, align 8 + %cmp.i.i.i48.us = icmp ult i64 %15, %add.i.i46.us br i1 %cmp.i.i.i48.us, label %if.then.i.i.i54.us, label %buffer_push_rlw.exit65.us if.then.i.i.i54.us: ; preds = %while.body.us - %15 = mul i64 %14, 3 - %mul.i.i.i55.us = add i64 %15, 48 + %16 = mul i64 %15, 3 + %mul.i.i.i55.us = add i64 %16, 48 %div14.i.i.i56.us = lshr i64 %mul.i.i.i55.us, 1 %new_size.div14.i.i.i57.us = tail call i64 @llvm.umax.i64(i64 %div14.i.i.i56.us, i64 %add.i.i46.us) store i64 %new_size.div14.i.i.i57.us, ptr %alloc_size.i.i.i47, align 8 @@ -158,7 +158,7 @@ if.then.i.i.i54.us: ; preds = %while.body.us st_mult.exit.i.i.i59.us: ; preds = %if.then.i.i.i54.us %mul.i.i.i.i60.us = shl nuw i64 %new_size.div14.i.i.i57.us, 3 - %call12.i.i.i61.us = tail call ptr @xrealloc(ptr noundef %13, i64 noundef %mul.i.i.i.i60.us) #11 + %call12.i.i.i61.us = tail call ptr @xrealloc(ptr noundef %14, i64 noundef %mul.i.i.i.i60.us) #11 store ptr %call12.i.i.i61.us, ptr %self, align 8 %.pre.i.i62.us = load i64, ptr %buffer_size.i.i45, align 8 %.pre4.i.i63.us = add i64 %.pre.i.i62.us, 1 @@ -166,19 +166,19 @@ st_mult.exit.i.i.i59.us: ; preds = %if.then.i.i.i54.us buffer_push_rlw.exit65.us: ; preds = %st_mult.exit.i.i.i59.us, %while.body.us %inc.pre-phi.i.i49.us = phi i64 [ %add.i.i46.us, %while.body.us ], [ %.pre4.i.i63.us, %st_mult.exit.i.i.i59.us ] - %16 = phi i64 [ %12, %while.body.us ], [ %.pre.i.i62.us, %st_mult.exit.i.i.i59.us ] - %17 = phi ptr [ %13, %while.body.us ], [ %call12.i.i.i61.us, %st_mult.exit.i.i.i59.us ] + %17 = phi i64 [ %13, %while.body.us ], [ %.pre.i.i62.us, %st_mult.exit.i.i.i59.us ] + %18 = phi ptr [ %14, %while.body.us ], [ %call12.i.i.i61.us, %st_mult.exit.i.i.i59.us ] store i64 %inc.pre-phi.i.i49.us, ptr %buffer_size.i.i45, align 8 - %arrayidx.i.i51.us = getelementptr inbounds i64, ptr %17, i64 %16 + %arrayidx.i.i51.us = getelementptr inbounds i64, ptr %18, i64 %17 store i64 0, ptr %arrayidx.i.i51.us, align 8 - %18 = load ptr, ptr %self, align 8 - %19 = load i64, ptr %buffer_size.i.i45, align 8 - %add.ptr.i52.us = getelementptr inbounds i64, ptr %18, i64 %19 + %19 = load ptr, ptr %self, align 8 + %20 = load i64, ptr %buffer_size.i.i45, align 8 + %add.ptr.i52.us = getelementptr inbounds i64, ptr %19, i64 %20 %add.ptr1.i53.us = getelementptr inbounds i8, ptr %add.ptr.i52.us, i64 -8 store ptr %add.ptr1.i53.us, ptr %rlw, align 8 %inc22.us = add nuw nsw i64 %added.1105.us, 1 - %20 = load i64, ptr %add.ptr1.i53.us, align 8 - %or.i70.us = or i64 %20, 8589934590 + %21 = load i64, ptr %add.ptr1.i53.us, align 8 + %or.i70.us = or i64 %21, 8589934590 store i64 %or.i70.us, ptr %add.ptr1.i53.us, align 8 %sub28.us = add i64 %number.addr.0106.us, -4294967295 %cmp21.us = icmp ugt i64 %sub28.us, 4294967294 @@ -187,16 +187,16 @@ buffer_push_rlw.exit65.us: ; preds = %st_mult.exit.i.i.i5 while.body: ; preds = %while.body.lr.ph, %buffer_push_rlw.exit65 %number.addr.0106 = phi i64 [ %sub28, %buffer_push_rlw.exit65 ], [ %sub20, %while.body.lr.ph ] %added.1105 = phi i64 [ %inc22, %buffer_push_rlw.exit65 ], [ %added.0, %while.body.lr.ph ] - %21 = load i64, ptr %buffer_size.i.i45, align 8 - %add.i.i46 = add i64 %21, 1 - %22 = load ptr, ptr %self, align 8 - %23 = load i64, ptr %alloc_size.i.i.i47, align 8 - %cmp.i.i.i48 = icmp ult i64 %23, %add.i.i46 + %22 = load i64, ptr %buffer_size.i.i45, align 8 + %add.i.i46 = add i64 %22, 1 + %23 = load ptr, ptr %self, align 8 + %24 = load i64, ptr %alloc_size.i.i.i47, align 8 + %cmp.i.i.i48 = icmp ult i64 %24, %add.i.i46 br i1 %cmp.i.i.i48, label %if.then.i.i.i54, label %buffer_push_rlw.exit65 if.then.i.i.i54: ; preds = %while.body - %24 = mul i64 %23, 3 - %mul.i.i.i55 = add i64 %24, 48 + %25 = mul i64 %24, 3 + %mul.i.i.i55 = add i64 %25, 48 %div14.i.i.i56 = lshr i64 %mul.i.i.i55, 1 %new_size.div14.i.i.i57 = tail call i64 @llvm.umax.i64(i64 %div14.i.i.i56, i64 %add.i.i46) store i64 %new_size.div14.i.i.i57, ptr %alloc_size.i.i.i47, align 8 @@ -210,7 +210,7 @@ if.then.i.i.i.i64: ; preds = %if.then.i.i.i54, %i st_mult.exit.i.i.i59: ; preds = %if.then.i.i.i54 %mul.i.i.i.i60 = shl nuw i64 %new_size.div14.i.i.i57, 3 - %call12.i.i.i61 = tail call ptr @xrealloc(ptr noundef %22, i64 noundef %mul.i.i.i.i60) #11 + %call12.i.i.i61 = tail call ptr @xrealloc(ptr noundef %23, i64 noundef %mul.i.i.i.i60) #11 store ptr %call12.i.i.i61, ptr %self, align 8 %.pre.i.i62 = load i64, ptr %buffer_size.i.i45, align 8 %.pre4.i.i63 = add i64 %.pre.i.i62, 1 @@ -218,24 +218,24 @@ st_mult.exit.i.i.i59: ; preds = %if.then.i.i.i54 buffer_push_rlw.exit65: ; preds = %while.body, %st_mult.exit.i.i.i59 %inc.pre-phi.i.i49 = phi i64 [ %add.i.i46, %while.body ], [ %.pre4.i.i63, %st_mult.exit.i.i.i59 ] - %25 = phi i64 [ %21, %while.body ], [ %.pre.i.i62, %st_mult.exit.i.i.i59 ] - %26 = phi ptr [ %22, %while.body ], [ %call12.i.i.i61, %st_mult.exit.i.i.i59 ] + %26 = phi i64 [ %22, %while.body ], [ %.pre.i.i62, %st_mult.exit.i.i.i59 ] + %27 = phi ptr [ %23, %while.body ], [ %call12.i.i.i61, %st_mult.exit.i.i.i59 ] store i64 %inc.pre-phi.i.i49, ptr %buffer_size.i.i45, align 8 - %arrayidx.i.i51 = getelementptr inbounds i64, ptr %26, i64 %25 + %arrayidx.i.i51 = getelementptr inbounds i64, ptr %27, i64 %26 store i64 0, ptr %arrayidx.i.i51, align 8 - %27 = load ptr, ptr %self, align 8 - %28 = load i64, ptr %buffer_size.i.i45, align 8 - %add.ptr.i52 = getelementptr inbounds i64, ptr %27, i64 %28 + %28 = load ptr, ptr %self, align 8 + %29 = load i64, ptr %buffer_size.i.i45, align 8 + %add.ptr.i52 = getelementptr inbounds i64, ptr %28, i64 %29 %add.ptr1.i53 = getelementptr inbounds i8, ptr %add.ptr.i52, i64 -8 store ptr %add.ptr1.i53, ptr %rlw, align 8 %inc22 = add nuw nsw i64 %added.1105, 1 - %29 = load i64, ptr %add.ptr1.i53, align 8 - %storemerge.i69 = or i64 %29, 1 + %30 = load i64, ptr %add.ptr1.i53, align 8 + %storemerge.i69 = or i64 %30, 1 store i64 %storemerge.i69, ptr %add.ptr1.i53, align 8 - %30 = load ptr, ptr %rlw, align 8 - %31 = load i64, ptr %30, align 8 - %or.i70 = or i64 %31, 8589934590 - store i64 %or.i70, ptr %30, align 8 + %31 = load ptr, ptr %rlw, align 8 + %32 = load i64, ptr %31, align 8 + %or.i70 = or i64 %32, 8589934590 + store i64 %or.i70, ptr %31, align 8 %sub28 = add i64 %number.addr.0106, -4294967295 %cmp21 = icmp ugt i64 %sub28, 4294967294 br i1 %cmp21, label %while.body, label %while.end, !llvm.loop !5 @@ -248,17 +248,17 @@ while.end: ; preds = %buffer_push_rlw.exi if.then30: ; preds = %while.end %buffer_size.i.i71 = getelementptr inbounds i8, ptr %self, i64 8 - %32 = load i64, ptr %buffer_size.i.i71, align 8 - %add.i.i72 = add i64 %32, 1 - %33 = load ptr, ptr %self, align 8 + %33 = load i64, ptr %buffer_size.i.i71, align 8 + %add.i.i72 = add i64 %33, 1 + %34 = load ptr, ptr %self, align 8 %alloc_size.i.i.i73 = getelementptr inbounds i8, ptr %self, i64 16 - %34 = load i64, ptr %alloc_size.i.i.i73, align 8 - %cmp.i.i.i74 = icmp ult i64 %34, %add.i.i72 + %35 = load i64, ptr %alloc_size.i.i.i73, align 8 + %cmp.i.i.i74 = icmp ult i64 %35, %add.i.i72 br i1 %cmp.i.i.i74, label %if.then.i.i.i80, label %buffer_push_rlw.exit91 if.then.i.i.i80: ; preds = %if.then30 - %35 = mul i64 %34, 3 - %mul.i.i.i81 = add i64 %35, 48 + %36 = mul i64 %35, 3 + %mul.i.i.i81 = add i64 %36, 48 %div14.i.i.i82 = lshr i64 %mul.i.i.i81, 1 %new_size.div14.i.i.i83 = tail call i64 @llvm.umax.i64(i64 %div14.i.i.i82, i64 %add.i.i72) store i64 %new_size.div14.i.i.i83, ptr %alloc_size.i.i.i73, align 8 @@ -271,7 +271,7 @@ if.then.i.i.i.i90: ; preds = %if.then.i.i.i80 st_mult.exit.i.i.i85: ; preds = %if.then.i.i.i80 %mul.i.i.i.i86 = shl nuw i64 %new_size.div14.i.i.i83, 3 - %call12.i.i.i87 = tail call ptr @xrealloc(ptr noundef %33, i64 noundef %mul.i.i.i.i86) #11 + %call12.i.i.i87 = tail call ptr @xrealloc(ptr noundef %34, i64 noundef %mul.i.i.i.i86) #11 store ptr %call12.i.i.i87, ptr %self, align 8 %.pre.i.i88 = load i64, ptr %buffer_size.i.i71, align 8 %.pre4.i.i89 = add i64 %.pre.i.i88, 1 @@ -279,14 +279,14 @@ st_mult.exit.i.i.i85: ; preds = %if.then.i.i.i80 buffer_push_rlw.exit91: ; preds = %if.then30, %st_mult.exit.i.i.i85 %inc.pre-phi.i.i75 = phi i64 [ %add.i.i72, %if.then30 ], [ %.pre4.i.i89, %st_mult.exit.i.i.i85 ] - %36 = phi i64 [ %32, %if.then30 ], [ %.pre.i.i88, %st_mult.exit.i.i.i85 ] - %37 = phi ptr [ %33, %if.then30 ], [ %call12.i.i.i87, %st_mult.exit.i.i.i85 ] + %37 = phi i64 [ %33, %if.then30 ], [ %.pre.i.i88, %st_mult.exit.i.i.i85 ] + %38 = phi ptr [ %34, %if.then30 ], [ %call12.i.i.i87, %st_mult.exit.i.i.i85 ] store i64 %inc.pre-phi.i.i75, ptr %buffer_size.i.i71, align 8 - %arrayidx.i.i77 = getelementptr inbounds i64, ptr %37, i64 %36 + %arrayidx.i.i77 = getelementptr inbounds i64, ptr %38, i64 %37 store i64 0, ptr %arrayidx.i.i77, align 8 - %38 = load ptr, ptr %self, align 8 - %39 = load i64, ptr %buffer_size.i.i71, align 8 - %add.ptr.i78 = getelementptr inbounds i64, ptr %38, i64 %39 + %39 = load ptr, ptr %self, align 8 + %40 = load i64, ptr %buffer_size.i.i71, align 8 + %add.ptr.i78 = getelementptr inbounds i64, ptr %39, i64 %40 %add.ptr1.i79 = getelementptr inbounds i8, ptr %add.ptr.i78, i64 -8 store ptr %add.ptr1.i79, ptr %rlw, align 8 %inc31 = add i64 %added.1.lcssa, 1 @@ -294,20 +294,20 @@ buffer_push_rlw.exit91: ; preds = %if.then30, %st_mult br i1 %tobool32.not, label %if.end35, label %if.then33 if.then33: ; preds = %buffer_push_rlw.exit91 - %40 = load i64, ptr %add.ptr1.i79, align 8 - %storemerge.i95 = or i64 %40, 1 + %41 = load i64, ptr %add.ptr1.i79, align 8 + %storemerge.i95 = or i64 %41, 1 store i64 %storemerge.i95, ptr %add.ptr1.i79, align 8 %.pre = load ptr, ptr %rlw, align 8 br label %if.end35 if.end35: ; preds = %if.then33, %buffer_push_rlw.exit91 - %41 = phi ptr [ %.pre, %if.then33 ], [ %add.ptr1.i79, %buffer_push_rlw.exit91 ] - %42 = load i64, ptr %41, align 8 - %or.i96 = or i64 %42, 8589934590 + %42 = phi ptr [ %.pre, %if.then33 ], [ %add.ptr1.i79, %buffer_push_rlw.exit91 ] + %43 = load i64, ptr %42, align 8 + %or.i96 = or i64 %43, 8589934590 %shl.i97 = shl nuw nsw i64 %number.addr.0.lcssa, 1 %or1.i98 = or disjoint i64 %shl.i97, -8589934591 %and.i99 = and i64 %or.i96, %or1.i98 - store i64 %and.i99, ptr %41, align 8 + store i64 %and.i99, ptr %42, align 8 br label %if.end37 if.end37: ; preds = %if.end35, %while.end @@ -1191,11 +1191,11 @@ entry: call void @rlwit_init(ptr noundef nonnull %rlw_j, ptr noundef %ewah_j) #11 %0 = getelementptr inbounds i8, ptr %rlw_i, i64 40 %1 = getelementptr inbounds i8, ptr %rlw_i, i64 44 - %rlw_i.val110 = load i32, ptr %0, align 8 - %rlw_i.val28111 = load i32, ptr %1, align 4 - %add.i112 = sub i32 0, %rlw_i.val110 - %cmp.not113 = icmp eq i32 %rlw_i.val28111, %add.i112 - br i1 %cmp.not113, label %if.end50, label %land.rhs.lr.ph + %rlw_i.val111 = load i32, ptr %0, align 8 + %rlw_i.val29112 = load i32, ptr %1, align 4 + %add.i113 = sub i32 0, %rlw_i.val111 + %cmp.not114 = icmp eq i32 %rlw_i.val29112, %add.i113 + br i1 %cmp.not114, label %if.end50, label %land.rhs.lr.ph land.rhs.lr.ph: ; preds = %entry %2 = getelementptr inbounds i8, ptr %rlw_j, i64 40 @@ -1209,36 +1209,36 @@ land.rhs.lr.ph: ; preds = %entry br label %land.rhs land.rhs: ; preds = %land.rhs.lr.ph, %if.end41 - %rlw_i.val28122 = phi i32 [ %rlw_i.val28111, %land.rhs.lr.ph ], [ %rlw_i.val28, %if.end41 ] - %rlw_i.val119 = phi i32 [ %rlw_i.val110, %land.rhs.lr.ph ], [ %rlw_i.val, %if.end41 ] + %rlw_i.val29123 = phi i32 [ %rlw_i.val29112, %land.rhs.lr.ph ], [ %rlw_i.val29, %if.end41 ] + %rlw_i.val120 = phi i32 [ %rlw_i.val111, %land.rhs.lr.ph ], [ %rlw_i.val, %if.end41 ] %rlw_j.val = load i32, ptr %2, align 8 - %rlw_j.val29 = load i32, ptr %3, align 4 - %add.i32 = sub i32 0, %rlw_j.val - %cmp2.not = icmp eq i32 %rlw_j.val29, %add.i32 + %rlw_j.val30 = load i32, ptr %3, align 4 + %add.i33 = sub i32 0, %rlw_j.val + %cmp2.not = icmp eq i32 %rlw_j.val30, %add.i33 br i1 %cmp2.not, label %if.end50, label %while.cond3.preheader while.cond3.preheader: ; preds = %land.rhs - %cmp4107 = icmp sgt i32 %rlw_i.val28122, 0 - %cmp7108 = icmp sgt i32 %rlw_j.val29, 0 - %4 = or i1 %cmp4107, %cmp7108 + %cmp4108 = icmp sgt i32 %rlw_i.val29123, 0 + %cmp7109 = icmp sgt i32 %rlw_j.val30, 0 + %4 = or i1 %cmp4108, %cmp7109 br i1 %4, label %while.body8, label %while.end while.body8: ; preds = %while.cond3.preheader, %ewah_add_empty_words.exit - %5 = phi i32 [ %12, %ewah_add_empty_words.exit ], [ %rlw_j.val29, %while.cond3.preheader ] - %6 = phi i32 [ %11, %ewah_add_empty_words.exit ], [ %rlw_i.val28122, %while.cond3.preheader ] + %5 = phi i32 [ %12, %ewah_add_empty_words.exit ], [ %rlw_j.val30, %while.cond3.preheader ] + %6 = phi i32 [ %11, %ewah_add_empty_words.exit ], [ %rlw_i.val29123, %while.cond3.preheader ] %cmp13 = icmp slt i32 %6, %5 %rlw_j.rlw_i = select i1 %cmp13, ptr %rlw_j, ptr %rlw_i %rlw_i.rlw_j = select i1 %cmp13, ptr %rlw_i, ptr %rlw_j - %rlw_j.sroa.gep26.rlw_i.sroa.gep27.sroa.sel104.v.sroa.sel.v.sroa.sel.v = select i1 %cmp13, ptr %rlw_j, ptr %rlw_i - %rlw_j.sroa.gep26.rlw_i.sroa.gep27.sroa.sel104.v.sroa.sel.v.sroa.sel = getelementptr inbounds i8, ptr %rlw_j.sroa.gep26.rlw_i.sroa.gep27.sroa.sel104.v.sroa.sel.v.sroa.sel.v, i64 52 - %7 = load i32, ptr %rlw_j.sroa.gep26.rlw_i.sroa.gep27.sroa.sel104.v.sroa.sel.v.sroa.sel, align 4 + %predator.0.sroa.gep.predator.0.sroa.gep19.sroa.sel105.v.sroa.sel.v.sroa.sel.v = select i1 %cmp13, ptr %rlw_j, ptr %rlw_i + %predator.0.sroa.gep.predator.0.sroa.gep19.sroa.sel105.v.sroa.sel.v.sroa.sel = getelementptr inbounds i8, ptr %predator.0.sroa.gep.predator.0.sroa.gep19.sroa.sel105.v.sroa.sel.v.sroa.sel.v, i64 52 + %7 = load i32, ptr %predator.0.sroa.gep.predator.0.sroa.gep19.sroa.sel105.v.sroa.sel.v.sroa.sel, align 4 %tobool = icmp ne i32 %7, 0 %lnot.ext = zext i1 %tobool to i32 - %rlw_j.sroa.gep26.rlw_i.sroa.gep27.sroa.sel101.v.sroa.sel = select i1 %cmp13, ptr %3, ptr %1 - %8 = load i32, ptr %rlw_j.sroa.gep26.rlw_i.sroa.gep27.sroa.sel101.v.sroa.sel, align 4 + %predator.0.sroa.gep.predator.0.sroa.gep19.sroa.sel102.v.sroa.sel = select i1 %cmp13, ptr %3, ptr %1 + %8 = load i32, ptr %predator.0.sroa.gep.predator.0.sroa.gep19.sroa.sel102.v.sroa.sel, align 4 %conv = sext i32 %8 to i64 %call18 = call i64 @rlwit_discharge(ptr noundef nonnull %rlw_i.rlw_j, ptr noundef %out, i64 noundef %conv, i32 noundef %lnot.ext) #11 - %9 = load i32, ptr %rlw_j.sroa.gep26.rlw_i.sroa.gep27.sroa.sel101.v.sroa.sel, align 4 + %9 = load i32, ptr %predator.0.sroa.gep.predator.0.sroa.gep19.sroa.sel102.v.sroa.sel, align 4 %conv21 = sext i32 %9 to i64 %cmp.i = icmp eq i64 %call18, %conv21 br i1 %cmp.i, label %ewah_add_empty_words.exit, label %if.end.i @@ -1247,15 +1247,15 @@ if.end.i: ; preds = %while.body8 %sub = sub i64 %conv21, %call18 %mul.i = shl i64 %sub, 6 %10 = load i64, ptr %bit_size.i, align 8 - %add.i34 = add i64 %10, %mul.i - store i64 %add.i34, ptr %bit_size.i, align 8 + %add.i35 = add i64 %10, %mul.i + store i64 %add.i35, ptr %bit_size.i, align 8 %call.i = call fastcc i64 @add_empty_words(ptr noundef %out, i32 noundef %lnot.ext, i64 noundef %sub) - %.pre = load i32, ptr %rlw_j.sroa.gep26.rlw_i.sroa.gep27.sroa.sel101.v.sroa.sel, align 4 - %.pre124 = sext i32 %.pre to i64 + %.pre = load i32, ptr %predator.0.sroa.gep.predator.0.sroa.gep19.sroa.sel102.v.sroa.sel, align 4 + %.pre125 = sext i32 %.pre to i64 br label %ewah_add_empty_words.exit ewah_add_empty_words.exit: ; preds = %while.body8, %if.end.i - %conv25.pre-phi = phi i64 [ %conv21, %while.body8 ], [ %.pre124, %if.end.i ] + %conv25.pre-phi = phi i64 [ %conv21, %while.body8 ], [ %.pre125, %if.end.i ] call void @rlwit_discard_first_words(ptr noundef nonnull %rlw_j.rlw_i, i64 noundef %conv25.pre-phi) #11 %11 = load i32, ptr %1, align 4 %cmp4 = icmp sgt i32 %11, 0 @@ -1265,35 +1265,35 @@ ewah_add_empty_words.exit: ; preds = %while.body8, %if.en br i1 %13, label %while.body8, label %while.end.loopexit, !llvm.loop !14 while.end.loopexit: ; preds = %ewah_add_empty_words.exit - %.pre116 = load i32, ptr %0, align 8 - %.pre117 = load i32, ptr %2, align 8 + %.pre117 = load i32, ptr %0, align 8 + %.pre118 = load i32, ptr %2, align 8 br label %while.end while.end: ; preds = %while.end.loopexit, %while.cond3.preheader - %rlw_i.val28121 = phi i32 [ %11, %while.end.loopexit ], [ %rlw_i.val28122, %while.cond3.preheader ] - %rlw_i.val118 = phi i32 [ %.pre116, %while.end.loopexit ], [ %rlw_i.val119, %while.cond3.preheader ] - %14 = phi i32 [ %.pre117, %while.end.loopexit ], [ %rlw_j.val, %while.cond3.preheader ] - %15 = call i32 @llvm.umin.i32(i32 %rlw_i.val118, i32 %14) + %rlw_i.val29122 = phi i32 [ %11, %while.end.loopexit ], [ %rlw_i.val29123, %while.cond3.preheader ] + %rlw_i.val119 = phi i32 [ %.pre117, %while.end.loopexit ], [ %rlw_i.val120, %while.cond3.preheader ] + %14 = phi i32 [ %.pre118, %while.end.loopexit ], [ %rlw_j.val, %while.cond3.preheader ] + %15 = call i32 @llvm.umin.i32(i32 %rlw_i.val119, i32 %14) %cond.i = sext i32 %15 to i64 %tobool32.not = icmp eq i32 %15, 0 br i1 %tobool32.not, label %if.end41, label %for.body for.body: ; preds = %while.end, %ewah_add.exit - %k.0109 = phi i64 [ %inc, %ewah_add.exit ], [ 0, %while.end ] + %k.0110 = phi i64 [ %inc, %ewah_add.exit ], [ 0, %while.end ] %16 = load ptr, ptr %rlw_i, align 8 %17 = load i64, ptr %literal_word_start, align 8 %18 = getelementptr i64, ptr %16, i64 %17 - %arrayidx = getelementptr i64, ptr %18, i64 %k.0109 + %arrayidx = getelementptr i64, ptr %18, i64 %k.0110 %19 = load i64, ptr %arrayidx, align 8 %20 = load ptr, ptr %rlw_j, align 8 %21 = load i64, ptr %literal_word_start37, align 8 %22 = getelementptr i64, ptr %20, i64 %21 - %arrayidx39 = getelementptr i64, ptr %22, i64 %k.0109 + %arrayidx39 = getelementptr i64, ptr %22, i64 %k.0110 %23 = load i64, ptr %arrayidx39, align 8 %xor = xor i64 %23, %19 %24 = load i64, ptr %bit_size.i, align 8 - %add.i36 = add i64 %24, 64 - store i64 %add.i36, ptr %bit_size.i, align 8 + %add.i37 = add i64 %24, 64 + store i64 %add.i37, ptr %bit_size.i, align 8 switch i64 %xor, label %if.end4.i [ i64 0, label %if.then.i i64 -1, label %if.then2.i @@ -1301,102 +1301,102 @@ for.body: ; preds = %while.end, %ewah_ad if.then.i: ; preds = %for.body %25 = load ptr, ptr %rlw.i, align 8 - %.val15.i47 = load i64, ptr %25, align 8 - %cmp.i48 = icmp ult i64 %.val15.i47, 8589934592 - %shr.i16.i49 = lshr i64 %.val15.i47, 1 - %and.i.i50 = and i64 %shr.i16.i49, 4294967295 - %cmp3.i51 = icmp eq i64 %and.i.i50, 0 - %or.cond.i52 = and i1 %cmp.i48, %cmp3.i51 - br i1 %or.cond.i52, label %if.end.thread.i91, label %if.end.i53 - -if.end.thread.i91: ; preds = %if.then.i - %and.i17.i92 = and i64 %.val15.i47, 8589934590 - store i64 %and.i17.i92, ptr %25, align 8 - %.pre.i93 = load ptr, ptr %rlw.i, align 8 - %.val.pre.i94 = load i64, ptr %.pre.i93, align 8 - br label %land.lhs.true7.i79 - -if.end.i53: ; preds = %if.then.i - br i1 %cmp.i48, label %land.lhs.true7.i79, label %if.else.i54 - -land.lhs.true7.i79: ; preds = %if.end.i53, %if.end.thread.i91 - %.val.i80 = phi i64 [ %.val.pre.i94, %if.end.thread.i91 ], [ %.val15.i47, %if.end.i53 ] - %26 = phi ptr [ %.pre.i93, %if.end.thread.i91 ], [ %25, %if.end.i53 ] - %conv.i.i81106 = and i64 %.val.i80, 1 - %cmp10.i82 = icmp eq i64 %conv.i.i81106, 0 - %cmp13.i83 = icmp ne i64 %and.i.i50, 4294967295 - %or.cond1.i84 = and i1 %cmp13.i83, %cmp10.i82 - br i1 %or.cond1.i84, label %if.then15.i85, label %if.else.i54 - -if.then15.i85: ; preds = %land.lhs.true7.i79 - %or.i.i86 = or i64 %.val.i80, 8589934590 - %add.i87 = shl nuw nsw i64 %and.i.i50, 1 - %shl.i.i88 = add nuw nsw i64 %add.i87, 2 - %or1.i.i89 = or i64 %shl.i.i88, -8589934591 - %and.i18.i90 = and i64 %or.i.i86, %or1.i.i89 - store i64 %and.i18.i90, ptr %26, align 8 + %.val15.i48 = load i64, ptr %25, align 8 + %cmp.i49 = icmp ult i64 %.val15.i48, 8589934592 + %shr.i16.i50 = lshr i64 %.val15.i48, 1 + %and.i.i51 = and i64 %shr.i16.i50, 4294967295 + %cmp3.i52 = icmp eq i64 %and.i.i51, 0 + %or.cond.i53 = and i1 %cmp.i49, %cmp3.i52 + br i1 %or.cond.i53, label %if.end.thread.i92, label %if.end.i54 + +if.end.thread.i92: ; preds = %if.then.i + %and.i17.i93 = and i64 %.val15.i48, 8589934590 + store i64 %and.i17.i93, ptr %25, align 8 + %.pre.i94 = load ptr, ptr %rlw.i, align 8 + %.val.pre.i95 = load i64, ptr %.pre.i94, align 8 + br label %land.lhs.true7.i80 + +if.end.i54: ; preds = %if.then.i + br i1 %cmp.i49, label %land.lhs.true7.i80, label %if.else.i55 + +land.lhs.true7.i80: ; preds = %if.end.i54, %if.end.thread.i92 + %.val.i81 = phi i64 [ %.val.pre.i95, %if.end.thread.i92 ], [ %.val15.i48, %if.end.i54 ] + %26 = phi ptr [ %.pre.i94, %if.end.thread.i92 ], [ %25, %if.end.i54 ] + %conv.i.i82107 = and i64 %.val.i81, 1 + %cmp10.i83 = icmp eq i64 %conv.i.i82107, 0 + %cmp13.i84 = icmp ne i64 %and.i.i51, 4294967295 + %or.cond1.i85 = and i1 %cmp13.i84, %cmp10.i83 + br i1 %or.cond1.i85, label %if.then15.i86, label %if.else.i55 + +if.then15.i86: ; preds = %land.lhs.true7.i80 + %or.i.i87 = or i64 %.val.i81, 8589934590 + %add.i88 = shl nuw nsw i64 %and.i.i51, 1 + %shl.i.i89 = add nuw nsw i64 %add.i88, 2 + %or1.i.i90 = or i64 %shl.i.i89, -8589934591 + %and.i18.i91 = and i64 %or.i.i87, %or1.i.i90 + store i64 %and.i18.i91, ptr %26, align 8 br label %ewah_add.exit -if.else.i54: ; preds = %land.lhs.true7.i79, %if.end.i53 +if.else.i55: ; preds = %land.lhs.true7.i80, %if.end.i54 %27 = load i64, ptr %buffer_size.i.i.i, align 8 - %add.i.i.i56 = add i64 %27, 1 + %add.i.i.i57 = add i64 %27, 1 %28 = load ptr, ptr %out, align 8 %29 = load i64, ptr %alloc_size.i.i.i.i, align 8 - %cmp.i.i.i.i58 = icmp ult i64 %29, %add.i.i.i56 - br i1 %cmp.i.i.i.i58, label %if.then.i.i.i.i68, label %buffer_push_rlw.exit.i59 + %cmp.i.i.i.i59 = icmp ult i64 %29, %add.i.i.i57 + br i1 %cmp.i.i.i.i59, label %if.then.i.i.i.i69, label %buffer_push_rlw.exit.i60 -if.then.i.i.i.i68: ; preds = %if.else.i54 +if.then.i.i.i.i69: ; preds = %if.else.i55 %30 = mul i64 %29, 3 - %mul.i.i.i.i69 = add i64 %30, 48 - %div14.i.i.i.i70 = lshr i64 %mul.i.i.i.i69, 1 - %new_size.div14.i.i.i.i71 = call i64 @llvm.umax.i64(i64 %div14.i.i.i.i70, i64 %add.i.i.i56) - store i64 %new_size.div14.i.i.i.i71, ptr %alloc_size.i.i.i.i, align 8 - %cmp.i.i.i.i.i72 = icmp ugt i64 %new_size.div14.i.i.i.i71, 2305843009213693951 - br i1 %cmp.i.i.i.i.i72, label %if.then.i.i.i.i.i78, label %st_mult.exit.i.i.i.i73 - -if.then.i.i.i.i.i78: ; preds = %if.then.i.i.i.i68 - call void (ptr, ...) @die(ptr noundef nonnull @.str, i64 noundef 8, i64 noundef %new_size.div14.i.i.i.i71) #10 + %mul.i.i.i.i70 = add i64 %30, 48 + %div14.i.i.i.i71 = lshr i64 %mul.i.i.i.i70, 1 + %new_size.div14.i.i.i.i72 = call i64 @llvm.umax.i64(i64 %div14.i.i.i.i71, i64 %add.i.i.i57) + store i64 %new_size.div14.i.i.i.i72, ptr %alloc_size.i.i.i.i, align 8 + %cmp.i.i.i.i.i73 = icmp ugt i64 %new_size.div14.i.i.i.i72, 2305843009213693951 + br i1 %cmp.i.i.i.i.i73, label %if.then.i.i.i.i.i79, label %st_mult.exit.i.i.i.i74 + +if.then.i.i.i.i.i79: ; preds = %if.then.i.i.i.i69 + call void (ptr, ...) @die(ptr noundef nonnull @.str, i64 noundef 8, i64 noundef %new_size.div14.i.i.i.i72) #10 unreachable -st_mult.exit.i.i.i.i73: ; preds = %if.then.i.i.i.i68 - %mul.i.i.i.i.i74 = shl nuw i64 %new_size.div14.i.i.i.i71, 3 - %call12.i.i.i.i75 = call ptr @xrealloc(ptr noundef %28, i64 noundef %mul.i.i.i.i.i74) #11 - store ptr %call12.i.i.i.i75, ptr %out, align 8 - %.pre.i.i.i76 = load i64, ptr %buffer_size.i.i.i, align 8 - %.pre4.i.i.i77 = add i64 %.pre.i.i.i76, 1 - br label %buffer_push_rlw.exit.i59 - -buffer_push_rlw.exit.i59: ; preds = %st_mult.exit.i.i.i.i73, %if.else.i54 - %inc.pre-phi.i.i.i60 = phi i64 [ %add.i.i.i56, %if.else.i54 ], [ %.pre4.i.i.i77, %st_mult.exit.i.i.i.i73 ] - %31 = phi i64 [ %27, %if.else.i54 ], [ %.pre.i.i.i76, %st_mult.exit.i.i.i.i73 ] - %32 = phi ptr [ %28, %if.else.i54 ], [ %call12.i.i.i.i75, %st_mult.exit.i.i.i.i73 ] - store i64 %inc.pre-phi.i.i.i60, ptr %buffer_size.i.i.i, align 8 - %arrayidx.i.i.i61 = getelementptr inbounds i64, ptr %32, i64 %31 - store i64 0, ptr %arrayidx.i.i.i61, align 8 +st_mult.exit.i.i.i.i74: ; preds = %if.then.i.i.i.i69 + %mul.i.i.i.i.i75 = shl nuw i64 %new_size.div14.i.i.i.i72, 3 + %call12.i.i.i.i76 = call ptr @xrealloc(ptr noundef %28, i64 noundef %mul.i.i.i.i.i75) #11 + store ptr %call12.i.i.i.i76, ptr %out, align 8 + %.pre.i.i.i77 = load i64, ptr %buffer_size.i.i.i, align 8 + %.pre4.i.i.i78 = add i64 %.pre.i.i.i77, 1 + br label %buffer_push_rlw.exit.i60 + +buffer_push_rlw.exit.i60: ; preds = %st_mult.exit.i.i.i.i74, %if.else.i55 + %inc.pre-phi.i.i.i61 = phi i64 [ %add.i.i.i57, %if.else.i55 ], [ %.pre4.i.i.i78, %st_mult.exit.i.i.i.i74 ] + %31 = phi i64 [ %27, %if.else.i55 ], [ %.pre.i.i.i77, %st_mult.exit.i.i.i.i74 ] + %32 = phi ptr [ %28, %if.else.i55 ], [ %call12.i.i.i.i76, %st_mult.exit.i.i.i.i74 ] + store i64 %inc.pre-phi.i.i.i61, ptr %buffer_size.i.i.i, align 8 + %arrayidx.i.i.i62 = getelementptr inbounds i64, ptr %32, i64 %31 + store i64 0, ptr %arrayidx.i.i.i62, align 8 %33 = load ptr, ptr %out, align 8 %34 = load i64, ptr %buffer_size.i.i.i, align 8 - %add.ptr.i.i62 = getelementptr inbounds i64, ptr %33, i64 %34 - %add.ptr1.i.i63 = getelementptr inbounds i8, ptr %add.ptr.i.i62, i64 -8 - store ptr %add.ptr1.i.i63, ptr %rlw.i, align 8 - %35 = load i64, ptr %add.ptr1.i.i63, align 8 - %and.i20.i64 = and i64 %35, -2 - store i64 %and.i20.i64, ptr %add.ptr1.i.i63, align 8 + %add.ptr.i.i63 = getelementptr inbounds i64, ptr %33, i64 %34 + %add.ptr1.i.i64 = getelementptr inbounds i8, ptr %add.ptr.i.i63, i64 -8 + store ptr %add.ptr1.i.i64, ptr %rlw.i, align 8 + %35 = load i64, ptr %add.ptr1.i.i64, align 8 + %and.i20.i65 = and i64 %35, -2 + store i64 %and.i20.i65, ptr %add.ptr1.i.i64, align 8 %36 = load ptr, ptr %rlw.i, align 8 %37 = load i64, ptr %36, align 8 - %or.i23.i65 = and i64 %37, -8589934591 - %and.i24.i66 = or disjoint i64 %or.i23.i65, 2 - store i64 %and.i24.i66, ptr %36, align 8 + %or.i23.i66 = and i64 %37, -8589934591 + %and.i24.i67 = or disjoint i64 %or.i23.i66, 2 + store i64 %and.i24.i67, ptr %36, align 8 br label %ewah_add.exit if.then2.i: ; preds = %for.body %38 = load ptr, ptr %rlw.i, align 8 %.val15.i = load i64, ptr %38, align 8 - %cmp.i42 = icmp ult i64 %.val15.i, 8589934592 + %cmp.i43 = icmp ult i64 %.val15.i, 8589934592 %shr.i16.i = lshr i64 %.val15.i, 1 %and.i.i = and i64 %shr.i16.i, 4294967295 %cmp3.i = icmp eq i64 %and.i.i, 0 - %or.cond.i = and i1 %cmp.i42, %cmp3.i - br i1 %or.cond.i, label %if.end.thread.i, label %if.end.i43 + %or.cond.i = and i1 %cmp.i43, %cmp3.i + br i1 %or.cond.i, label %if.end.thread.i, label %if.end.i44 if.end.thread.i: ; preds = %if.then2.i %storemerge.i.i = or i64 %.val15.i, 1 @@ -1405,28 +1405,28 @@ if.end.thread.i: ; preds = %if.then2.i %.val.pre.i = load i64, ptr %.pre.i, align 8 br label %land.lhs.true7.i -if.end.i43: ; preds = %if.then2.i - br i1 %cmp.i42, label %land.lhs.true7.i, label %if.else.i +if.end.i44: ; preds = %if.then2.i + br i1 %cmp.i43, label %land.lhs.true7.i, label %if.else.i -land.lhs.true7.i: ; preds = %if.end.i43, %if.end.thread.i - %.val.i = phi i64 [ %.val.pre.i, %if.end.thread.i ], [ %.val15.i, %if.end.i43 ] - %39 = phi ptr [ %.pre.i, %if.end.thread.i ], [ %38, %if.end.i43 ] - %conv.i.i105 = and i64 %.val.i, 1 - %cmp10.i = icmp ne i64 %conv.i.i105, 0 +land.lhs.true7.i: ; preds = %if.end.i44, %if.end.thread.i + %.val.i = phi i64 [ %.val.pre.i, %if.end.thread.i ], [ %.val15.i, %if.end.i44 ] + %39 = phi ptr [ %.pre.i, %if.end.thread.i ], [ %38, %if.end.i44 ] + %conv.i.i106 = and i64 %.val.i, 1 + %cmp10.i = icmp ne i64 %conv.i.i106, 0 %cmp13.i = icmp ne i64 %and.i.i, 4294967295 %or.cond1.i = and i1 %cmp13.i, %cmp10.i br i1 %or.cond1.i, label %if.then15.i, label %if.else.i if.then15.i: ; preds = %land.lhs.true7.i %or.i.i = or i64 %.val.i, 8589934590 - %add.i45 = shl nuw nsw i64 %and.i.i, 1 - %shl.i.i = add nuw nsw i64 %add.i45, 2 + %add.i46 = shl nuw nsw i64 %and.i.i, 1 + %shl.i.i = add nuw nsw i64 %add.i46, 2 %or1.i.i = or i64 %shl.i.i, -8589934591 %and.i18.i = and i64 %or.i.i, %or1.i.i store i64 %and.i18.i, ptr %39, align 8 br label %ewah_add.exit -if.else.i: ; preds = %land.lhs.true7.i, %if.end.i43 +if.else.i: ; preds = %land.lhs.true7.i, %if.end.i44 %40 = load i64, ptr %buffer_size.i.i.i, align 8 %add.i.i.i = add i64 %40, 1 %41 = load ptr, ptr %out, align 8 @@ -1481,8 +1481,8 @@ if.end4.i: ; preds = %for.body %call5.i = call fastcc i64 @add_literal(ptr noundef nonnull %out, i64 noundef %xor), !range !9 br label %ewah_add.exit -ewah_add.exit: ; preds = %buffer_push_rlw.exit.i, %if.then15.i, %buffer_push_rlw.exit.i59, %if.then15.i85, %if.end4.i - %inc = add nuw i64 %k.0109, 1 +ewah_add.exit: ; preds = %buffer_push_rlw.exit.i, %if.then15.i, %buffer_push_rlw.exit.i60, %if.then15.i86, %if.end4.i + %inc = add nuw i64 %k.0110, 1 %exitcond.not = icmp eq i64 %inc, %cond.i br i1 %exitcond.not, label %for.end, label %for.body, !llvm.loop !15 @@ -1490,14 +1490,14 @@ for.end: ; preds = %ewah_add.exit call void @rlwit_discard_first_words(ptr noundef nonnull %rlw_i, i64 noundef %cond.i) #11 call void @rlwit_discard_first_words(ptr noundef nonnull %rlw_j, i64 noundef %cond.i) #11 %rlw_i.val.pre = load i32, ptr %0, align 8 - %rlw_i.val28.pre = load i32, ptr %1, align 4 + %rlw_i.val29.pre = load i32, ptr %1, align 4 br label %if.end41 if.end41: ; preds = %for.end, %while.end - %rlw_i.val28 = phi i32 [ %rlw_i.val28.pre, %for.end ], [ %rlw_i.val28121, %while.end ] - %rlw_i.val = phi i32 [ %rlw_i.val.pre, %for.end ], [ %rlw_i.val118, %while.end ] + %rlw_i.val29 = phi i32 [ %rlw_i.val29.pre, %for.end ], [ %rlw_i.val29122, %while.end ] + %rlw_i.val = phi i32 [ %rlw_i.val.pre, %for.end ], [ %rlw_i.val119, %while.end ] %add.i = sub i32 0, %rlw_i.val - %cmp.not = icmp eq i32 %rlw_i.val28, %add.i + %cmp.not = icmp eq i32 %rlw_i.val29, %add.i br i1 %cmp.not, label %if.end50, label %land.rhs, !llvm.loop !16 if.end50: ; preds = %if.end41, %land.rhs, %entry @@ -1507,9 +1507,9 @@ if.end50: ; preds = %if.end41, %land.rhs %51 = load i64, ptr %bit_size, align 8 %bit_size51 = getelementptr inbounds i8, ptr %ewah_j, i64 24 %52 = load i64, ptr %bit_size51, align 8 - %cond.i41 = call noundef i64 @llvm.umax.i64(i64 %51, i64 %52) + %cond.i42 = call noundef i64 @llvm.umax.i64(i64 %51, i64 %52) %bit_size53 = getelementptr inbounds i8, ptr %out, i64 24 - store i64 %cond.i41, ptr %bit_size53, align 8 + store i64 %cond.i42, ptr %bit_size53, align 8 ret void } diff --git a/bench/linux/optimized/timekeeping.ll b/bench/linux/optimized/timekeeping.ll index bdc522ca6f8..cb4a615fd0a 100644 --- a/bench/linux/optimized/timekeeping.ll +++ b/bench/linux/optimized/timekeeping.ll @@ -2382,7 +2382,7 @@ define dso_local void @timekeeping_init() local_unnamed_addr #7 section ".init.t call void @read_persistent_wall_and_boot_offset(ptr noundef nonnull %2, ptr noundef nonnull %3) #13 %4 = load i64, ptr %2, align 8 %5 = icmp slt i64 %4, 0 - br i1 %5, label %14, label %6 + br i1 %5, label %16, label %6 6: ; preds = %0 %7 = getelementptr inbounds i8, ptr %2, i64 8 @@ -2390,108 +2390,108 @@ define dso_local void @timekeeping_init() local_unnamed_addr #7 section ".init.t %9 = icmp ult i64 %8, 1000000000 %10 = icmp ult i64 %4, 8277292036 %11 = and i1 %10, %9 - br i1 %11, label %12, label %14 + br i1 %11, label %12, label %16 12: ; preds = %6 - %.neg = mul nsw i64 %4, -1000000000 - %.not = icmp eq i64 %8, %.neg - br i1 %.not, label %.thread, label %13 + %13 = mul nuw nsw i64 %4, 1000000000 + %14 = or i64 %8, %13 + %.not = icmp eq i64 %14, 0 + br i1 %.not, label %.thread, label %15 -13: ; preds = %12 +15: ; preds = %12 store i1 true, ptr @persistent_clock_exists, align 1 - br label %21 + br label %24 -14: ; preds = %6, %0 - %15 = add i64 %4, -9223372036 - %16 = icmp ult i64 %15, -18446744071 - br i1 %16, label %19, label %..thread_crit_edge +16: ; preds = %6, %0 + %17 = add i64 %4, -9223372036 + %18 = icmp ult i64 %17, -18446744071 + br i1 %18, label %22, label %..thread_crit_edge -..thread_crit_edge: ; preds = %14 +..thread_crit_edge: ; preds = %16 %.phi.trans.insert = getelementptr inbounds i8, ptr %2, i64 8 %.pre = load i64, ptr %.phi.trans.insert, align 8 - %.pre7 = mul nsw i64 %4, -1000000000 br label %.thread .thread: ; preds = %..thread_crit_edge, %12 - %.pre-phi = phi i64 [ %.pre7, %..thread_crit_edge ], [ 0, %12 ] - %17 = phi i64 [ %.pre, %..thread_crit_edge ], [ 0, %12 ] - %18 = icmp eq i64 %17, %.pre-phi - br i1 %18, label %21, label %19 + %19 = phi i64 [ %.pre, %..thread_crit_edge ], [ %8, %12 ] + %20 = mul nsw i64 %4, -1000000000 + %21 = icmp eq i64 %19, %20 + br i1 %21, label %24, label %22 -19: ; preds = %.thread, %14 - %20 = call i32 (ptr, ...) @_printk(ptr noundef nonnull @.str.1) #14 +22: ; preds = %.thread, %16 + %23 = call i32 (ptr, ...) @_printk(ptr noundef nonnull @.str.1) #14 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %2, i8 0, i64 16, i1 false) - br label %21 + br label %24 -21: ; preds = %19, %.thread, %13 - %22 = phi i64 [ 0, %19 ], [ %.pre-phi, %.thread ], [ %8, %13 ] - %23 = phi i64 [ 0, %19 ], [ %4, %.thread ], [ %4, %13 ] - %24 = load i64, ptr %3, align 8 - %25 = icmp slt i64 %23, %24 - br i1 %25, label %32, label %26 +24: ; preds = %22, %.thread, %15 + %25 = phi i64 [ 0, %22 ], [ %19, %.thread ], [ %8, %15 ] + %26 = phi i64 [ 0, %22 ], [ %4, %.thread ], [ %4, %15 ] + %27 = load i64, ptr %3, align 8 + %28 = icmp slt i64 %26, %27 + br i1 %28, label %35, label %29 -26: ; preds = %21 - %27 = icmp sgt i64 %23, %24 +29: ; preds = %24 + %30 = icmp sgt i64 %26, %27 %.phi.trans.insert5 = getelementptr inbounds i8, ptr %3, i64 8 %.pre6 = load i64, ptr %.phi.trans.insert5, align 8 - br i1 %27, label %._crit_edge, label %28 + br i1 %30, label %._crit_edge, label %31 -28: ; preds = %26 - %29 = sub i64 %22, %.pre6 - %30 = and i64 %29, 2147483648 - %31 = icmp eq i64 %30, 0 - br i1 %31, label %._crit_edge, label %32 +31: ; preds = %29 + %32 = sub i64 %25, %.pre6 + %33 = and i64 %32, 2147483648 + %34 = icmp eq i64 %33, 0 + br i1 %34, label %._crit_edge, label %35 -32: ; preds = %28, %21 +35: ; preds = %31, %24 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %3, i8 0, i64 16, i1 false) br label %._crit_edge -._crit_edge: ; preds = %26, %32, %28 - %33 = phi i64 [ 0, %32 ], [ %.pre6, %28 ], [ %.pre6, %26 ] - %34 = phi i64 [ 0, %32 ], [ %24, %28 ], [ %24, %26 ] +._crit_edge: ; preds = %29, %35, %31 + %36 = phi i64 [ 0, %35 ], [ %.pre6, %31 ], [ %.pre6, %29 ] + %37 = phi i64 [ 0, %35 ], [ %27, %31 ], [ %27, %29 ] call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %1) call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %1, i8 0, i64 16, i1 false), !annotation !67 - %35 = sub i64 %34, %23 - %36 = sub i64 %33, %22 - call void @set_normalized_timespec64(ptr noundef nonnull %1, i64 noundef %35, i64 noundef %36) #10 - %37 = load i64, ptr %1, align 8 - %38 = getelementptr inbounds i8, ptr %1, i64 8 - %39 = load i64, ptr %38, align 8 + %38 = sub i64 %37, %26 + %39 = sub i64 %36, %25 + call void @set_normalized_timespec64(ptr noundef nonnull %1, i64 noundef %38, i64 noundef %39) #10 + %40 = load i64, ptr %1, align 8 + %41 = getelementptr inbounds i8, ptr %1, i64 8 + %42 = load i64, ptr %41, align 8 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %1) - %40 = call i64 @_raw_spin_lock_irqsave(ptr noundef nonnull @timekeeper_lock) #10 - %41 = load i32, ptr @tk_core, align 64 - %42 = add i32 %41, 1 - store i32 %42, ptr @tk_core, align 64 + %43 = call i64 @_raw_spin_lock_irqsave(ptr noundef nonnull @timekeeper_lock) #10 + %44 = load i32, ptr @tk_core, align 64 + %45 = add i32 %44, 1 + store i32 %45, ptr @tk_core, align 64 call void asm sideeffect "", "~{memory},~{dirflag},~{fpsr},~{flags}"() #10, !srcloc !73 call void @ntp_init() #10 - %43 = call ptr @clocksource_default_clock() #14 - %44 = getelementptr inbounds i8, ptr %43, i64 96 - %45 = load ptr, ptr %44, align 8 - %46 = icmp eq ptr %45, null - br i1 %46, label %49, label %47 - -47: ; preds = %._crit_edge - %48 = call i32 %45(ptr noundef %43) #10 - br label %49 - -49: ; preds = %47, %._crit_edge - %50 = getelementptr inbounds i8, ptr %2, i64 8 - call fastcc void @tk_setup_internals(ptr noundef %43) - %51 = load i64, ptr %2, align 8 - store i64 %51, ptr getelementptr inbounds (%struct.anon.1, ptr @tk_core, i64 0, i32 1, i32 2), align 8 - %52 = load i64, ptr %50, align 8 - %53 = load i32, ptr getelementptr inbounds (%struct.anon.1, ptr @tk_core, i64 0, i32 1, i32 0, i32 4), align 4 - %54 = zext nneg i32 %53 to i64 - %55 = shl i64 %52, %54 - store i64 %55, ptr getelementptr inbounds (%struct.anon.1, ptr @tk_core, i64 0, i32 1, i32 0, i32 5), align 8 + %46 = call ptr @clocksource_default_clock() #14 + %47 = getelementptr inbounds i8, ptr %46, i64 96 + %48 = load ptr, ptr %47, align 8 + %49 = icmp eq ptr %48, null + br i1 %49, label %52, label %50 + +50: ; preds = %._crit_edge + %51 = call i32 %48(ptr noundef %46) #10 + br label %52 + +52: ; preds = %50, %._crit_edge + %53 = getelementptr inbounds i8, ptr %2, i64 8 + call fastcc void @tk_setup_internals(ptr noundef %46) + %54 = load i64, ptr %2, align 8 + store i64 %54, ptr getelementptr inbounds (%struct.anon.1, ptr @tk_core, i64 0, i32 1, i32 2), align 8 + %55 = load i64, ptr %53, align 8 + %56 = load i32, ptr getelementptr inbounds (%struct.anon.1, ptr @tk_core, i64 0, i32 1, i32 0, i32 4), align 4 + %57 = zext nneg i32 %56 to i64 + %58 = shl i64 %55, %57 + store i64 %58, ptr getelementptr inbounds (%struct.anon.1, ptr @tk_core, i64 0, i32 1, i32 0, i32 5), align 8 store i64 0, ptr getelementptr inbounds (%struct.anon.1, ptr @tk_core, i64 0, i32 1, i32 12), align 8 - call fastcc void @tk_set_wall_to_mono(ptr noundef nonnull getelementptr inbounds (%struct.anon.1, ptr @tk_core, i64 0, i32 1), i64 %37, i64 %39) + call fastcc void @tk_set_wall_to_mono(ptr noundef nonnull getelementptr inbounds (%struct.anon.1, ptr @tk_core, i64 0, i32 1), i64 %40, i64 %42) call fastcc void @timekeeping_update(ptr noundef nonnull getelementptr inbounds (%struct.anon.1, ptr @tk_core, i64 0, i32 1), i32 noundef 6) call void asm sideeffect "", "~{memory},~{dirflag},~{fpsr},~{flags}"() #10, !srcloc !80 - %56 = load i32, ptr @tk_core, align 64 - %57 = add i32 %56, 1 - store i32 %57, ptr @tk_core, align 64 - call void @_raw_spin_unlock_irqrestore(ptr noundef nonnull @timekeeper_lock, i64 noundef %40) #10 + %59 = load i32, ptr @tk_core, align 64 + %60 = add i32 %59, 1 + store i32 %60, ptr @tk_core, align 64 + call void @_raw_spin_unlock_irqrestore(ptr noundef nonnull @timekeeper_lock, i64 noundef %43) #10 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %3) #10 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %2) #10 ret void diff --git a/bench/meshlab/optimized/filter_color_projection.cpp.ll b/bench/meshlab/optimized/filter_color_projection.cpp.ll index 2b0535cfdeb..82fa7a97a03 100644 --- a/bench/meshlab/optimized/filter_color_projection.cpp.ll +++ b/bench/meshlab/optimized/filter_color_projection.cpp.ll @@ -5443,22 +5443,22 @@ define noundef i32 @_ZN3vcg11mean4PixelwEjhjhjhjh(i32 noundef %0, i8 noundef zer define void @_ZN3vcg11PullPushMipER6QImageS1_j(ptr noundef nonnull align 8 dereferenceable(32) %0, ptr noundef nonnull align 8 dereferenceable(32) %1, i32 noundef %2) local_unnamed_addr #9 { %4 = tail call noundef i32 @_ZNK6QImage6heightEv(ptr noundef nonnull align 8 dereferenceable(32) %1) %5 = icmp sgt i32 %4, 0 - br i1 %5, label %.preheader, label %._crit_edge56 + br i1 %5, label %.preheader, label %._crit_edge55 .preheader: ; preds = %3, %._crit_edge - %.055 = phi i32 [ %98, %._crit_edge ], [ 0, %3 ] + %.054 = phi i32 [ %99, %._crit_edge ], [ 0, %3 ] %6 = tail call noundef i32 @_ZNK6QImage5widthEv(ptr noundef nonnull align 8 dereferenceable(32) %1) %7 = icmp sgt i32 %6, 0 br i1 %7, label %.lr.ph, label %._crit_edge .lr.ph: ; preds = %.preheader - %8 = shl nuw nsw i32 %.055, 1 + %8 = shl nuw nsw i32 %.054, 1 %9 = or disjoint i32 %8, 1 br label %10 -10: ; preds = %.lr.ph, %94 - %.04454 = phi i32 [ 0, %.lr.ph ], [ %95, %94 ] - %11 = shl nuw nsw i32 %.04454, 1 +10: ; preds = %.lr.ph, %95 + %.04453 = phi i32 [ 0, %.lr.ph ], [ %96, %95 ] + %11 = shl nuw nsw i32 %.04453, 1 %12 = tail call noundef i32 @_ZNK6QImage5pixelEii(ptr noundef nonnull align 8 dereferenceable(32) %0, i32 noundef %11, i32 noundef %8) %.not49 = icmp eq i32 %12, %2 %13 = or disjoint i32 %11, 1 @@ -5473,98 +5473,98 @@ define void @_ZN3vcg11PullPushMipER6QImageS1_j(ptr noundef nonnull align 8 deref %19 = add nuw nsw i32 %18, %17 %20 = select i1 %.not51, i32 0, i32 255 %21 = add nuw nsw i32 %19, %20 - %.not53 = icmp eq i32 %21, 0 - %.not = select i1 %.not52, i1 %.not53, i1 false - br i1 %.not, label %94, label %22 - -22: ; preds = %10 - %23 = select i1 %.not52, i32 0, i32 255 - %24 = tail call noundef i32 @_ZNK6QImage5pixelEii(ptr noundef nonnull align 8 dereferenceable(32) %0, i32 noundef %11, i32 noundef %8) - %25 = tail call noundef i32 @_ZNK6QImage5pixelEii(ptr noundef nonnull align 8 dereferenceable(32) %0, i32 noundef %13, i32 noundef %8) - %26 = tail call noundef i32 @_ZNK6QImage5pixelEii(ptr noundef nonnull align 8 dereferenceable(32) %0, i32 noundef %11, i32 noundef %9) - %27 = tail call noundef i32 @_ZNK6QImage5pixelEii(ptr noundef nonnull align 8 dereferenceable(32) %0, i32 noundef %13, i32 noundef %9) - %28 = lshr i32 %24, 16 - %29 = and i32 %28, 255 - %30 = lshr i32 %25, 16 - %31 = and i32 %30, 255 - %32 = lshr i32 %26, 16 - %33 = and i32 %32, 255 - %34 = lshr i32 %27, 16 - %35 = and i32 %34, 255 - %36 = mul nuw nsw i32 %29, %17 - %37 = mul nuw nsw i32 %31, %18 - %38 = add nuw nsw i32 %37, %36 - %39 = mul nuw nsw i32 %33, %20 - %40 = add nuw nsw i32 %38, %39 - %41 = mul nuw nsw i32 %35, %23 - %42 = add nuw nsw i32 %40, %41 - %43 = add nuw nsw i32 %21, %23 - %44 = udiv i32 %42, %43 - %45 = lshr i32 %24, 8 - %46 = and i32 %45, 255 - %47 = lshr i32 %25, 8 - %48 = and i32 %47, 255 - %49 = lshr i32 %26, 8 - %50 = and i32 %49, 255 - %51 = lshr i32 %27, 8 - %52 = and i32 %51, 255 - %53 = mul nuw nsw i32 %46, %17 - %54 = mul nuw nsw i32 %48, %18 - %55 = add nuw nsw i32 %54, %53 - %56 = mul nuw nsw i32 %50, %20 - %57 = add nuw nsw i32 %55, %56 - %58 = mul nuw nsw i32 %52, %23 - %59 = add nuw nsw i32 %57, %58 - %60 = udiv i32 %59, %43 - %61 = and i32 %24, 255 + %22 = select i1 %.not52, i32 0, i32 255 + %23 = or i32 %21, %22 + %.not = icmp eq i32 %23, 0 + br i1 %.not, label %95, label %24 + +24: ; preds = %10 + %25 = tail call noundef i32 @_ZNK6QImage5pixelEii(ptr noundef nonnull align 8 dereferenceable(32) %0, i32 noundef %11, i32 noundef %8) + %26 = tail call noundef i32 @_ZNK6QImage5pixelEii(ptr noundef nonnull align 8 dereferenceable(32) %0, i32 noundef %13, i32 noundef %8) + %27 = tail call noundef i32 @_ZNK6QImage5pixelEii(ptr noundef nonnull align 8 dereferenceable(32) %0, i32 noundef %11, i32 noundef %9) + %28 = tail call noundef i32 @_ZNK6QImage5pixelEii(ptr noundef nonnull align 8 dereferenceable(32) %0, i32 noundef %13, i32 noundef %9) + %29 = lshr i32 %25, 16 + %30 = and i32 %29, 255 + %31 = lshr i32 %26, 16 + %32 = and i32 %31, 255 + %33 = lshr i32 %27, 16 + %34 = and i32 %33, 255 + %35 = lshr i32 %28, 16 + %36 = and i32 %35, 255 + %37 = mul nuw nsw i32 %30, %17 + %38 = mul nuw nsw i32 %32, %18 + %39 = add nuw nsw i32 %38, %37 + %40 = mul nuw nsw i32 %34, %20 + %41 = add nuw nsw i32 %39, %40 + %42 = mul nuw nsw i32 %36, %22 + %43 = add nuw nsw i32 %41, %42 + %44 = add nuw nsw i32 %21, %22 + %45 = udiv i32 %43, %44 + %46 = lshr i32 %25, 8 + %47 = and i32 %46, 255 + %48 = lshr i32 %26, 8 + %49 = and i32 %48, 255 + %50 = lshr i32 %27, 8 + %51 = and i32 %50, 255 + %52 = lshr i32 %28, 8 + %53 = and i32 %52, 255 + %54 = mul nuw nsw i32 %47, %17 + %55 = mul nuw nsw i32 %49, %18 + %56 = add nuw nsw i32 %55, %54 + %57 = mul nuw nsw i32 %51, %20 + %58 = add nuw nsw i32 %56, %57 + %59 = mul nuw nsw i32 %53, %22 + %60 = add nuw nsw i32 %58, %59 + %61 = udiv i32 %60, %44 %62 = and i32 %25, 255 %63 = and i32 %26, 255 %64 = and i32 %27, 255 - %65 = mul nuw nsw i32 %61, %17 - %66 = mul nuw nsw i32 %62, %18 - %67 = add nuw nsw i32 %66, %65 - %68 = mul nuw nsw i32 %63, %20 - %69 = add nuw nsw i32 %67, %68 - %70 = mul nuw nsw i32 %64, %23 - %71 = add nuw nsw i32 %69, %70 - %72 = udiv i32 %71, %43 - %73 = lshr i32 %24, 24 + %65 = and i32 %28, 255 + %66 = mul nuw nsw i32 %62, %17 + %67 = mul nuw nsw i32 %63, %18 + %68 = add nuw nsw i32 %67, %66 + %69 = mul nuw nsw i32 %64, %20 + %70 = add nuw nsw i32 %68, %69 + %71 = mul nuw nsw i32 %65, %22 + %72 = add nuw nsw i32 %70, %71 + %73 = udiv i32 %72, %44 %74 = lshr i32 %25, 24 %75 = lshr i32 %26, 24 %76 = lshr i32 %27, 24 - %77 = mul nuw nsw i32 %73, %17 - %78 = mul nuw nsw i32 %74, %18 - %79 = add nuw nsw i32 %78, %77 - %80 = mul nuw nsw i32 %75, %20 - %81 = add nuw nsw i32 %79, %80 - %82 = mul nuw nsw i32 %76, %23 - %83 = add nuw nsw i32 %81, %82 - %84 = udiv i32 %83, %43 - %85 = shl i32 %84, 24 - %86 = shl i32 %44, 16 - %87 = and i32 %86, 16711680 - %88 = or disjoint i32 %85, %87 - %89 = shl nuw nsw i32 %60, 8 - %90 = and i32 %89, 65280 - %91 = or disjoint i32 %88, %90 - %92 = and i32 %72, 255 - %93 = or disjoint i32 %91, %92 - tail call void @_ZN6QImage8setPixelEiij(ptr noundef nonnull align 8 dereferenceable(32) %1, i32 noundef %.04454, i32 noundef %.055, i32 noundef %93) - br label %94 - -94: ; preds = %10, %22 - %95 = add nuw nsw i32 %.04454, 1 - %96 = tail call noundef i32 @_ZNK6QImage5widthEv(ptr noundef nonnull align 8 dereferenceable(32) %1) - %97 = icmp slt i32 %95, %96 - br i1 %97, label %10, label %._crit_edge, !llvm.loop !62 - -._crit_edge: ; preds = %94, %.preheader - %98 = add nuw nsw i32 %.055, 1 - %99 = tail call noundef i32 @_ZNK6QImage6heightEv(ptr noundef nonnull align 8 dereferenceable(32) %1) - %100 = icmp slt i32 %98, %99 - br i1 %100, label %.preheader, label %._crit_edge56, !llvm.loop !63 - -._crit_edge56: ; preds = %._crit_edge, %3 + %77 = lshr i32 %28, 24 + %78 = mul nuw nsw i32 %74, %17 + %79 = mul nuw nsw i32 %75, %18 + %80 = add nuw nsw i32 %79, %78 + %81 = mul nuw nsw i32 %76, %20 + %82 = add nuw nsw i32 %80, %81 + %83 = mul nuw nsw i32 %77, %22 + %84 = add nuw nsw i32 %82, %83 + %85 = udiv i32 %84, %44 + %86 = shl i32 %85, 24 + %87 = shl i32 %45, 16 + %88 = and i32 %87, 16711680 + %89 = or disjoint i32 %86, %88 + %90 = shl nuw nsw i32 %61, 8 + %91 = and i32 %90, 65280 + %92 = or disjoint i32 %89, %91 + %93 = and i32 %73, 255 + %94 = or disjoint i32 %92, %93 + tail call void @_ZN6QImage8setPixelEiij(ptr noundef nonnull align 8 dereferenceable(32) %1, i32 noundef %.04453, i32 noundef %.054, i32 noundef %94) + br label %95 + +95: ; preds = %10, %24 + %96 = add nuw nsw i32 %.04453, 1 + %97 = tail call noundef i32 @_ZNK6QImage5widthEv(ptr noundef nonnull align 8 dereferenceable(32) %1) + %98 = icmp slt i32 %96, %97 + br i1 %98, label %10, label %._crit_edge, !llvm.loop !62 + +._crit_edge: ; preds = %95, %.preheader + %99 = add nuw nsw i32 %.054, 1 + %100 = tail call noundef i32 @_ZNK6QImage6heightEv(ptr noundef nonnull align 8 dereferenceable(32) %1) + %101 = icmp slt i32 %99, %100 + br i1 %101, label %.preheader, label %._crit_edge55, !llvm.loop !63 + +._crit_edge55: ; preds = %._crit_edge, %3 ret void } diff --git a/bench/meshlab/optimized/filter_create.cpp.ll b/bench/meshlab/optimized/filter_create.cpp.ll index 5a105eb2c3e..3aecde4e23e 100644 --- a/bench/meshlab/optimized/filter_create.cpp.ll +++ b/bench/meshlab/optimized/filter_create.cpp.ll @@ -37779,13 +37779,14 @@ cdce.end145: ; preds = %32, %30, %_ZNK3vcg1 %narrow4.i = zext i1 %narrow4.i142 to i8 %narrow5.i = add nuw nsw i8 %narrow4.i, %narrow.i %narrow6.i143 = and i1 %.not.i25, %.not.i54 - %narrow6.i.neg = sext i1 %narrow6.i143 to i8 - %83 = icmp ne i8 %narrow5.i, %narrow6.i.neg - %84 = uitofp i1 %83 to double - %85 = tail call noundef double @acos(double noundef %84) #26 - %86 = fsub double 0x400921FB54442D18, %85 - %87 = fptosi double %86 to i8 - ret i8 %87 + %narrow6.i = zext i1 %narrow6.i143 to i8 + %83 = or i8 %narrow5.i, %narrow6.i + %84 = icmp ne i8 %83, 0 + %85 = uitofp i1 %84 to double + %86 = tail call noundef double @acos(double noundef %85) #26 + %87 = fsub double 0x400921FB54442D18, %86 + %88 = fptosi double %87 to i8 + ret i8 %88 } ; Function Attrs: mustprogress nofree nounwind willreturn memory(write) diff --git a/bench/meshlab/optimized/filter_sampling.cpp.ll b/bench/meshlab/optimized/filter_sampling.cpp.ll index 490641eb85e..6910dff2e9a 100644 --- a/bench/meshlab/optimized/filter_sampling.cpp.ll +++ b/bench/meshlab/optimized/filter_sampling.cpp.ll @@ -64064,7 +64064,7 @@ define linkonce_odr i64 @_ZN3vcg3tri9ResamplerI6CMeshOS2_NS_4face24PointDistance %24 = getelementptr inbounds i8, ptr %0, i64 68 %25 = call noundef ptr @_ZN3vcg10KdTreeFaceI6CMeshOE10GetClosestINS_4face24PointDistanceBaseFunctorIfEENS_3tri10EmptyTMarkIS1_EEEEP6CFaceORT_RT0_RKNS_6Point3IfEEfRfRSH_(ptr noundef nonnull align 8 dereferenceable(40) %23, ptr noundef nonnull align 1 dereferenceable(1) %6, ptr noundef nonnull align 1 dereferenceable(1) %24, ptr noundef nonnull align 4 dereferenceable(12) %4, float noundef %9, ptr noundef nonnull align 4 dereferenceable(4) %3, ptr noundef nonnull align 4 dereferenceable(12) %5) %26 = icmp eq ptr %25, null - br i1 %26, label %121, label %27 + br i1 %26, label %124, label %27 27: ; preds = %2 %28 = getelementptr inbounds i8, ptr %0, i64 306 @@ -64074,7 +64074,7 @@ define linkonce_odr i64 @_ZN3vcg3tri9ResamplerI6CMeshOS2_NS_4face24PointDistance 31: ; preds = %27 %32 = load i32, ptr %3, align 4 - br label %121 + br label %124 _ZN3vcg6Point3IfE9NormalizeEv.exit: ; preds = %27 store <2 x float> , ptr %7, align 8 @@ -64084,121 +64084,125 @@ _ZN3vcg6Point3IfE9NormalizeEv.exit: ; preds = %27 %35 = call noundef zeroext i1 @_ZN3vcg23InterpolationParametersI6CFaceOfEEbT_RKNS_6Point3IT0_EES7_RS5_(ptr noundef nonnull byval(%class.CFaceO) align 8 %25, ptr noundef nonnull align 4 dereferenceable(12) %34, ptr noundef nonnull align 4 dereferenceable(12) %5, ptr noundef nonnull align 4 dereferenceable(12) %7) %36 = load <2 x float>, ptr %7, align 8 %37 = extractelement <2 x float> %36, i64 0 - %38 = fcmp uge float %37, 0x3EE4F8B580000000 + %38 = fcmp olt float %37, 0x3EE4F8B580000000 + %.0 = zext i1 %38 to i32 %39 = extractelement <2 x float> %36, i64 1 - %40 = fcmp uge float %39, 0x3EE4F8B580000000 - %41 = load float, ptr %33, align 8 - %42 = fcmp uge float %41, 0x3EE4F8B580000000 - %43 = load <2 x float>, ptr %4, align 8 - %44 = load <2 x float>, ptr %5, align 8 - %45 = fsub <2 x float> %43, %44 - %46 = load float, ptr %22, align 8 - %47 = getelementptr inbounds i8, ptr %5, i64 8 - %48 = load float, ptr %47, align 8 - %49 = fsub float %46, %48 - %50 = fmul <2 x float> %45, %45 - %51 = extractelement <2 x float> %50, i64 1 - %52 = extractelement <2 x float> %45, i64 0 - %53 = call float @llvm.fmuladd.f32(float %52, float %52, float %51) - %54 = call float @llvm.fmuladd.f32(float %49, float %49, float %53) - %sqrt.i = call float @llvm.sqrt.f32(float %54) - %55 = fcmp ogt float %sqrt.i, 0.000000e+00 - %56 = insertelement <2 x float> poison, float %sqrt.i, i64 0 - %57 = shufflevector <2 x float> %56, <2 x float> poison, <2 x i32> zeroinitializer - %58 = fdiv <2 x float> %45, %57 - %59 = fdiv float %49, %sqrt.i - %.sroa.068.0 = select i1 %55, <2 x float> %58, <2 x float> %45 - %.sroa.6.0 = select i1 %55, float %59, float %49 - %.not85 = and i1 %38, %42 - %.not = select i1 %40, i1 %.not85, i1 false - br i1 %.not, label %106, label %60 - -60: ; preds = %_ZN3vcg6Point3IfE9NormalizeEv.exit - %61 = getelementptr inbounds i8, ptr %25, i64 8 - %62 = load ptr, ptr %61, align 8 - %63 = getelementptr inbounds i8, ptr %62, i64 24 - %64 = load float, ptr %63, align 4 - %65 = getelementptr inbounds i8, ptr %62, i64 28 - %66 = load float, ptr %65, align 4 - %67 = getelementptr inbounds i8, ptr %62, i64 32 - %68 = load float, ptr %67, align 4 - %69 = getelementptr inbounds i8, ptr %25, i64 16 - %70 = load ptr, ptr %69, align 8 - %71 = getelementptr inbounds i8, ptr %70, i64 24 - %72 = load float, ptr %71, align 4 - %73 = getelementptr inbounds i8, ptr %70, i64 28 - %74 = load float, ptr %73, align 4 - %75 = insertelement <2 x float> poison, float %66, i64 0 - %76 = insertelement <2 x float> %75, float %74, i64 1 - %77 = fmul <2 x float> %36, %76 - %78 = getelementptr inbounds i8, ptr %70, i64 32 - %79 = load float, ptr %78, align 4 - %shift = shufflevector <2 x float> %77, <2 x float> poison, <2 x i32> - %80 = fadd <2 x float> %77, %shift - %81 = extractelement <2 x float> %80, i64 0 - %82 = getelementptr inbounds i8, ptr %25, i64 24 - %83 = load ptr, ptr %82, align 8 - %84 = getelementptr inbounds i8, ptr %83, i64 24 - %85 = load float, ptr %84, align 4 - %86 = getelementptr inbounds i8, ptr %83, i64 28 - %87 = load float, ptr %86, align 4 - %88 = fmul float %41, %87 - %89 = getelementptr inbounds i8, ptr %83, i64 32 + %40 = fcmp olt float %39, 0x3EE4F8B580000000 + %41 = select i1 %38, i32 2, i32 1 + %.1 = select i1 %40, i32 %41, i32 %.0 + %42 = load float, ptr %33, align 8 + %43 = fcmp olt float %42, 0x3EE4F8B580000000 + %44 = zext i1 %43 to i32 + %45 = load <2 x float>, ptr %4, align 8 + %46 = load <2 x float>, ptr %5, align 8 + %47 = fsub <2 x float> %45, %46 + %48 = load float, ptr %22, align 8 + %49 = getelementptr inbounds i8, ptr %5, i64 8 + %50 = load float, ptr %49, align 8 + %51 = fsub float %48, %50 + %52 = fmul <2 x float> %47, %47 + %53 = extractelement <2 x float> %52, i64 1 + %54 = extractelement <2 x float> %47, i64 0 + %55 = call float @llvm.fmuladd.f32(float %54, float %54, float %53) + %56 = call float @llvm.fmuladd.f32(float %51, float %51, float %55) + %sqrt.i = call float @llvm.sqrt.f32(float %56) + %57 = fcmp ogt float %sqrt.i, 0.000000e+00 + %58 = insertelement <2 x float> poison, float %sqrt.i, i64 0 + %59 = shufflevector <2 x float> %58, <2 x float> poison, <2 x i32> zeroinitializer + %60 = fdiv <2 x float> %47, %59 + %61 = fdiv float %51, %sqrt.i + %.sroa.068.0 = select i1 %57, <2 x float> %60, <2 x float> %47 + %.sroa.6.0 = select i1 %57, float %61, float %51 + %62 = or i32 %.1, %44 + %.not = icmp eq i32 %62, 0 + br i1 %.not, label %109, label %63 + +63: ; preds = %_ZN3vcg6Point3IfE9NormalizeEv.exit + %64 = getelementptr inbounds i8, ptr %25, i64 8 + %65 = load ptr, ptr %64, align 8 + %66 = getelementptr inbounds i8, ptr %65, i64 24 + %67 = load float, ptr %66, align 4 + %68 = getelementptr inbounds i8, ptr %65, i64 28 + %69 = load float, ptr %68, align 4 + %70 = getelementptr inbounds i8, ptr %65, i64 32 + %71 = load float, ptr %70, align 4 + %72 = getelementptr inbounds i8, ptr %25, i64 16 + %73 = load ptr, ptr %72, align 8 + %74 = getelementptr inbounds i8, ptr %73, i64 24 + %75 = load float, ptr %74, align 4 + %76 = getelementptr inbounds i8, ptr %73, i64 28 + %77 = load float, ptr %76, align 4 + %78 = insertelement <2 x float> poison, float %69, i64 0 + %79 = insertelement <2 x float> %78, float %77, i64 1 + %80 = fmul <2 x float> %36, %79 + %81 = getelementptr inbounds i8, ptr %73, i64 32 + %82 = load float, ptr %81, align 4 + %shift = shufflevector <2 x float> %80, <2 x float> poison, <2 x i32> + %83 = fadd <2 x float> %80, %shift + %84 = extractelement <2 x float> %83, i64 0 + %85 = getelementptr inbounds i8, ptr %25, i64 24 + %86 = load ptr, ptr %85, align 8 + %87 = getelementptr inbounds i8, ptr %86, i64 24 + %88 = load float, ptr %87, align 4 + %89 = getelementptr inbounds i8, ptr %86, i64 28 %90 = load float, ptr %89, align 4 - %91 = insertelement <2 x float> poison, float %68, i64 0 - %92 = insertelement <2 x float> %91, float %72, i64 1 - %93 = fmul <2 x float> %36, %92 - %94 = insertelement <2 x float> poison, float %64, i64 0 - %95 = insertelement <2 x float> %94, float %79, i64 1 + %91 = fmul float %42, %90 + %92 = getelementptr inbounds i8, ptr %86, i64 32 + %93 = load float, ptr %92, align 4 + %94 = insertelement <2 x float> poison, float %71, i64 0 + %95 = insertelement <2 x float> %94, float %75, i64 1 %96 = fmul <2 x float> %36, %95 - %97 = shufflevector <2 x float> %96, <2 x float> poison, <2 x i32> - %98 = fadd <2 x float> %93, %97 - %99 = insertelement <2 x float> poison, float %41, i64 0 - %100 = shufflevector <2 x float> %99, <2 x float> poison, <2 x i32> zeroinitializer - %101 = insertelement <2 x float> poison, float %90, i64 0 - %102 = insertelement <2 x float> %101, float %85, i64 1 - %103 = fmul <2 x float> %100, %102 - %104 = fadd float %81, %88 - %105 = fadd <2 x float> %98, %103 - br label %109 - -106: ; preds = %_ZN3vcg6Point3IfE9NormalizeEv.exit + %97 = insertelement <2 x float> poison, float %67, i64 0 + %98 = insertelement <2 x float> %97, float %82, i64 1 + %99 = fmul <2 x float> %36, %98 + %100 = shufflevector <2 x float> %99, <2 x float> poison, <2 x i32> + %101 = fadd <2 x float> %96, %100 + %102 = insertelement <2 x float> poison, float %42, i64 0 + %103 = shufflevector <2 x float> %102, <2 x float> poison, <2 x i32> zeroinitializer + %104 = insertelement <2 x float> poison, float %93, i64 0 + %105 = insertelement <2 x float> %104, float %88, i64 1 + %106 = fmul <2 x float> %103, %105 + %107 = fadd float %84, %91 + %108 = fadd <2 x float> %101, %106 + br label %112 + +109: ; preds = %_ZN3vcg6Point3IfE9NormalizeEv.exit %.sroa.064.0.copyload = load float, ptr %34, align 4 %.sroa.2.0..sroa_idx = getelementptr inbounds i8, ptr %25, i64 40 %.sroa.2.0.copyload = load float, ptr %.sroa.2.0..sroa_idx, align 4 %.sroa.365.0..sroa_idx = getelementptr inbounds i8, ptr %25, i64 44 %.sroa.365.0.copyload = load float, ptr %.sroa.365.0..sroa_idx, align 4 - %107 = insertelement <2 x float> poison, float %.sroa.365.0.copyload, i64 0 - %108 = insertelement <2 x float> %107, float %.sroa.064.0.copyload, i64 1 - br label %109 + %110 = insertelement <2 x float> poison, float %.sroa.365.0.copyload, i64 0 + %111 = insertelement <2 x float> %110, float %.sroa.064.0.copyload, i64 1 + br label %112 -109: ; preds = %106, %60 - %.sroa.2.0.copyload.sink = phi float [ %.sroa.2.0.copyload, %106 ], [ %104, %60 ] - %110 = phi <2 x float> [ %108, %106 ], [ %105, %60 ] +112: ; preds = %109, %63 + %.sroa.2.0.copyload.sink = phi float [ %.sroa.2.0.copyload, %109 ], [ %107, %63 ] + %113 = phi <2 x float> [ %111, %109 ], [ %108, %63 ] %.sroa.071.0.vec.extract73 = extractelement <2 x float> %.sroa.068.0, i64 0 %.sroa.071.4.vec.extract75 = extractelement <2 x float> %.sroa.068.0, i64 1 - %111 = fmul float %.sroa.071.4.vec.extract75, %.sroa.2.0.copyload.sink - %112 = extractelement <2 x float> %110, i64 1 - %113 = call float @llvm.fmuladd.f32(float %.sroa.071.0.vec.extract73, float %112, float %111) - %114 = extractelement <2 x float> %110, i64 0 - %115 = call noundef float @llvm.fmuladd.f32(float %.sroa.6.0, float %114, float %113) - %116 = fcmp olt float %115, 0.000000e+00 - br i1 %116, label %117, label %._crit_edge - -._crit_edge: ; preds = %109 + %114 = fmul float %.sroa.071.4.vec.extract75, %.sroa.2.0.copyload.sink + %115 = extractelement <2 x float> %113, i64 1 + %116 = call float @llvm.fmuladd.f32(float %.sroa.071.0.vec.extract73, float %115, float %114) + %117 = extractelement <2 x float> %113, i64 0 + %118 = call noundef float @llvm.fmuladd.f32(float %.sroa.6.0, float %117, float %116) + %119 = fcmp olt float %118, 0.000000e+00 + br i1 %119, label %120, label %._crit_edge + +._crit_edge: ; preds = %112 %.pre = load i32, ptr %3, align 4 - br label %121 + br label %124 -117: ; preds = %109 - %118 = load float, ptr %3, align 4 - %119 = fneg float %118 - %120 = bitcast float %119 to i32 - br label %121 +120: ; preds = %112 + %121 = load float, ptr %3, align 4 + %122 = fneg float %121 + %123 = bitcast float %122 to i32 + br label %124 -121: ; preds = %117, %._crit_edge, %2, %31 - %.sroa.080.0 = phi i64 [ 1, %31 ], [ 0, %2 ], [ 1, %._crit_edge ], [ 1, %117 ] - %122 = phi i32 [ %32, %31 ], [ 0, %2 ], [ %.pre, %._crit_edge ], [ %120, %117 ] - %.sroa.481.0.insert.ext = zext i32 %122 to i64 +124: ; preds = %120, %._crit_edge, %2, %31 + %.sroa.080.0 = phi i64 [ 1, %31 ], [ 0, %2 ], [ 1, %._crit_edge ], [ 1, %120 ] + %125 = phi i32 [ %32, %31 ], [ 0, %2 ], [ %.pre, %._crit_edge ], [ %123, %120 ] + %.sroa.481.0.insert.ext = zext i32 %125 to i64 %.sroa.481.0.insert.shift = shl nuw i64 %.sroa.481.0.insert.ext, 32 %.sroa.080.0.insert.insert = or disjoint i64 %.sroa.481.0.insert.shift, %.sroa.080.0 ret i64 %.sroa.080.0.insert.insert diff --git a/bench/meshlab/optimized/filter_texture.cpp.ll b/bench/meshlab/optimized/filter_texture.cpp.ll index 7b679a73887..304460a2900 100644 --- a/bench/meshlab/optimized/filter_texture.cpp.ll +++ b/bench/meshlab/optimized/filter_texture.cpp.ll @@ -2753,22 +2753,22 @@ define noundef i32 @_ZN3vcg11mean4PixelwEjhjhjhjh(i32 noundef %0, i8 noundef zer define void @_ZN3vcg11PullPushMipER6QImageS1_j(ptr noundef nonnull align 8 dereferenceable(32) %0, ptr noundef nonnull align 8 dereferenceable(32) %1, i32 noundef %2) local_unnamed_addr #9 { %4 = tail call noundef i32 @_ZNK6QImage6heightEv(ptr noundef nonnull align 8 dereferenceable(32) %1) %5 = icmp sgt i32 %4, 0 - br i1 %5, label %.preheader, label %._crit_edge56 + br i1 %5, label %.preheader, label %._crit_edge55 .preheader: ; preds = %3, %._crit_edge - %.055 = phi i32 [ %98, %._crit_edge ], [ 0, %3 ] + %.054 = phi i32 [ %99, %._crit_edge ], [ 0, %3 ] %6 = tail call noundef i32 @_ZNK6QImage5widthEv(ptr noundef nonnull align 8 dereferenceable(32) %1) %7 = icmp sgt i32 %6, 0 br i1 %7, label %.lr.ph, label %._crit_edge .lr.ph: ; preds = %.preheader - %8 = shl nuw nsw i32 %.055, 1 + %8 = shl nuw nsw i32 %.054, 1 %9 = or disjoint i32 %8, 1 br label %10 -10: ; preds = %.lr.ph, %94 - %.04454 = phi i32 [ 0, %.lr.ph ], [ %95, %94 ] - %11 = shl nuw nsw i32 %.04454, 1 +10: ; preds = %.lr.ph, %95 + %.04453 = phi i32 [ 0, %.lr.ph ], [ %96, %95 ] + %11 = shl nuw nsw i32 %.04453, 1 %12 = tail call noundef i32 @_ZNK6QImage5pixelEii(ptr noundef nonnull align 8 dereferenceable(32) %0, i32 noundef %11, i32 noundef %8) %.not49 = icmp eq i32 %12, %2 %13 = or disjoint i32 %11, 1 @@ -2783,98 +2783,98 @@ define void @_ZN3vcg11PullPushMipER6QImageS1_j(ptr noundef nonnull align 8 deref %19 = add nuw nsw i32 %18, %17 %20 = select i1 %.not51, i32 0, i32 255 %21 = add nuw nsw i32 %19, %20 - %.not53 = icmp eq i32 %21, 0 - %.not = select i1 %.not52, i1 %.not53, i1 false - br i1 %.not, label %94, label %22 - -22: ; preds = %10 - %23 = select i1 %.not52, i32 0, i32 255 - %24 = tail call noundef i32 @_ZNK6QImage5pixelEii(ptr noundef nonnull align 8 dereferenceable(32) %0, i32 noundef %11, i32 noundef %8) - %25 = tail call noundef i32 @_ZNK6QImage5pixelEii(ptr noundef nonnull align 8 dereferenceable(32) %0, i32 noundef %13, i32 noundef %8) - %26 = tail call noundef i32 @_ZNK6QImage5pixelEii(ptr noundef nonnull align 8 dereferenceable(32) %0, i32 noundef %11, i32 noundef %9) - %27 = tail call noundef i32 @_ZNK6QImage5pixelEii(ptr noundef nonnull align 8 dereferenceable(32) %0, i32 noundef %13, i32 noundef %9) - %28 = lshr i32 %24, 16 - %29 = and i32 %28, 255 - %30 = lshr i32 %25, 16 - %31 = and i32 %30, 255 - %32 = lshr i32 %26, 16 - %33 = and i32 %32, 255 - %34 = lshr i32 %27, 16 - %35 = and i32 %34, 255 - %36 = mul nuw nsw i32 %29, %17 - %37 = mul nuw nsw i32 %31, %18 - %38 = add nuw nsw i32 %37, %36 - %39 = mul nuw nsw i32 %33, %20 - %40 = add nuw nsw i32 %38, %39 - %41 = mul nuw nsw i32 %35, %23 - %42 = add nuw nsw i32 %40, %41 - %43 = add nuw nsw i32 %21, %23 - %44 = udiv i32 %42, %43 - %45 = lshr i32 %24, 8 - %46 = and i32 %45, 255 - %47 = lshr i32 %25, 8 - %48 = and i32 %47, 255 - %49 = lshr i32 %26, 8 - %50 = and i32 %49, 255 - %51 = lshr i32 %27, 8 - %52 = and i32 %51, 255 - %53 = mul nuw nsw i32 %46, %17 - %54 = mul nuw nsw i32 %48, %18 - %55 = add nuw nsw i32 %54, %53 - %56 = mul nuw nsw i32 %50, %20 - %57 = add nuw nsw i32 %55, %56 - %58 = mul nuw nsw i32 %52, %23 - %59 = add nuw nsw i32 %57, %58 - %60 = udiv i32 %59, %43 - %61 = and i32 %24, 255 + %22 = select i1 %.not52, i32 0, i32 255 + %23 = or i32 %21, %22 + %.not = icmp eq i32 %23, 0 + br i1 %.not, label %95, label %24 + +24: ; preds = %10 + %25 = tail call noundef i32 @_ZNK6QImage5pixelEii(ptr noundef nonnull align 8 dereferenceable(32) %0, i32 noundef %11, i32 noundef %8) + %26 = tail call noundef i32 @_ZNK6QImage5pixelEii(ptr noundef nonnull align 8 dereferenceable(32) %0, i32 noundef %13, i32 noundef %8) + %27 = tail call noundef i32 @_ZNK6QImage5pixelEii(ptr noundef nonnull align 8 dereferenceable(32) %0, i32 noundef %11, i32 noundef %9) + %28 = tail call noundef i32 @_ZNK6QImage5pixelEii(ptr noundef nonnull align 8 dereferenceable(32) %0, i32 noundef %13, i32 noundef %9) + %29 = lshr i32 %25, 16 + %30 = and i32 %29, 255 + %31 = lshr i32 %26, 16 + %32 = and i32 %31, 255 + %33 = lshr i32 %27, 16 + %34 = and i32 %33, 255 + %35 = lshr i32 %28, 16 + %36 = and i32 %35, 255 + %37 = mul nuw nsw i32 %30, %17 + %38 = mul nuw nsw i32 %32, %18 + %39 = add nuw nsw i32 %38, %37 + %40 = mul nuw nsw i32 %34, %20 + %41 = add nuw nsw i32 %39, %40 + %42 = mul nuw nsw i32 %36, %22 + %43 = add nuw nsw i32 %41, %42 + %44 = add nuw nsw i32 %21, %22 + %45 = udiv i32 %43, %44 + %46 = lshr i32 %25, 8 + %47 = and i32 %46, 255 + %48 = lshr i32 %26, 8 + %49 = and i32 %48, 255 + %50 = lshr i32 %27, 8 + %51 = and i32 %50, 255 + %52 = lshr i32 %28, 8 + %53 = and i32 %52, 255 + %54 = mul nuw nsw i32 %47, %17 + %55 = mul nuw nsw i32 %49, %18 + %56 = add nuw nsw i32 %55, %54 + %57 = mul nuw nsw i32 %51, %20 + %58 = add nuw nsw i32 %56, %57 + %59 = mul nuw nsw i32 %53, %22 + %60 = add nuw nsw i32 %58, %59 + %61 = udiv i32 %60, %44 %62 = and i32 %25, 255 %63 = and i32 %26, 255 %64 = and i32 %27, 255 - %65 = mul nuw nsw i32 %61, %17 - %66 = mul nuw nsw i32 %62, %18 - %67 = add nuw nsw i32 %66, %65 - %68 = mul nuw nsw i32 %63, %20 - %69 = add nuw nsw i32 %67, %68 - %70 = mul nuw nsw i32 %64, %23 - %71 = add nuw nsw i32 %69, %70 - %72 = udiv i32 %71, %43 - %73 = lshr i32 %24, 24 + %65 = and i32 %28, 255 + %66 = mul nuw nsw i32 %62, %17 + %67 = mul nuw nsw i32 %63, %18 + %68 = add nuw nsw i32 %67, %66 + %69 = mul nuw nsw i32 %64, %20 + %70 = add nuw nsw i32 %68, %69 + %71 = mul nuw nsw i32 %65, %22 + %72 = add nuw nsw i32 %70, %71 + %73 = udiv i32 %72, %44 %74 = lshr i32 %25, 24 %75 = lshr i32 %26, 24 %76 = lshr i32 %27, 24 - %77 = mul nuw nsw i32 %73, %17 - %78 = mul nuw nsw i32 %74, %18 - %79 = add nuw nsw i32 %78, %77 - %80 = mul nuw nsw i32 %75, %20 - %81 = add nuw nsw i32 %79, %80 - %82 = mul nuw nsw i32 %76, %23 - %83 = add nuw nsw i32 %81, %82 - %84 = udiv i32 %83, %43 - %85 = shl i32 %84, 24 - %86 = shl i32 %44, 16 - %87 = and i32 %86, 16711680 - %88 = or disjoint i32 %85, %87 - %89 = shl nuw nsw i32 %60, 8 - %90 = and i32 %89, 65280 - %91 = or disjoint i32 %88, %90 - %92 = and i32 %72, 255 - %93 = or disjoint i32 %91, %92 - tail call void @_ZN6QImage8setPixelEiij(ptr noundef nonnull align 8 dereferenceable(32) %1, i32 noundef %.04454, i32 noundef %.055, i32 noundef %93) - br label %94 + %77 = lshr i32 %28, 24 + %78 = mul nuw nsw i32 %74, %17 + %79 = mul nuw nsw i32 %75, %18 + %80 = add nuw nsw i32 %79, %78 + %81 = mul nuw nsw i32 %76, %20 + %82 = add nuw nsw i32 %80, %81 + %83 = mul nuw nsw i32 %77, %22 + %84 = add nuw nsw i32 %82, %83 + %85 = udiv i32 %84, %44 + %86 = shl i32 %85, 24 + %87 = shl i32 %45, 16 + %88 = and i32 %87, 16711680 + %89 = or disjoint i32 %86, %88 + %90 = shl nuw nsw i32 %61, 8 + %91 = and i32 %90, 65280 + %92 = or disjoint i32 %89, %91 + %93 = and i32 %73, 255 + %94 = or disjoint i32 %92, %93 + tail call void @_ZN6QImage8setPixelEiij(ptr noundef nonnull align 8 dereferenceable(32) %1, i32 noundef %.04453, i32 noundef %.054, i32 noundef %94) + br label %95 -94: ; preds = %10, %22 - %95 = add nuw nsw i32 %.04454, 1 - %96 = tail call noundef i32 @_ZNK6QImage5widthEv(ptr noundef nonnull align 8 dereferenceable(32) %1) - %97 = icmp slt i32 %95, %96 - br i1 %97, label %10, label %._crit_edge, !llvm.loop !10 +95: ; preds = %10, %24 + %96 = add nuw nsw i32 %.04453, 1 + %97 = tail call noundef i32 @_ZNK6QImage5widthEv(ptr noundef nonnull align 8 dereferenceable(32) %1) + %98 = icmp slt i32 %96, %97 + br i1 %98, label %10, label %._crit_edge, !llvm.loop !10 -._crit_edge: ; preds = %94, %.preheader - %98 = add nuw nsw i32 %.055, 1 - %99 = tail call noundef i32 @_ZNK6QImage6heightEv(ptr noundef nonnull align 8 dereferenceable(32) %1) - %100 = icmp slt i32 %98, %99 - br i1 %100, label %.preheader, label %._crit_edge56, !llvm.loop !11 +._crit_edge: ; preds = %95, %.preheader + %99 = add nuw nsw i32 %.054, 1 + %100 = tail call noundef i32 @_ZNK6QImage6heightEv(ptr noundef nonnull align 8 dereferenceable(32) %1) + %101 = icmp slt i32 %99, %100 + br i1 %101, label %.preheader, label %._crit_edge55, !llvm.loop !11 -._crit_edge56: ; preds = %._crit_edge, %3 +._crit_edge55: ; preds = %._crit_edge, %3 ret void } diff --git a/bench/meshlab/optimized/filter_trioptimize.cpp.ll b/bench/meshlab/optimized/filter_trioptimize.cpp.ll index 3bb9969fc5a..107ca54c0ce 100644 --- a/bench/meshlab/optimized/filter_trioptimize.cpp.ll +++ b/bench/meshlab/optimized/filter_trioptimize.cpp.ll @@ -34929,13 +34929,14 @@ cdce.end145: ; preds = %32, %30, %_ZNK3vcg1 %narrow4.i = zext i1 %narrow4.i142 to i8 %narrow5.i = add nuw nsw i8 %narrow4.i, %narrow.i %narrow6.i143 = and i1 %.not.i25, %.not.i54 - %narrow6.i.neg = sext i1 %narrow6.i143 to i8 - %83 = icmp ne i8 %narrow5.i, %narrow6.i.neg - %84 = uitofp i1 %83 to double - %85 = tail call noundef double @acos(double noundef %84) #24 - %86 = fsub double 0x400921FB54442D18, %85 - %87 = fptosi double %86 to i8 - ret i8 %87 + %narrow6.i = zext i1 %narrow6.i143 to i8 + %83 = or i8 %narrow5.i, %narrow6.i + %84 = icmp ne i8 %83, 0 + %85 = uitofp i1 %84 to double + %86 = tail call noundef double @acos(double noundef %85) #24 + %87 = fsub double 0x400921FB54442D18, %86 + %88 = fptosi double %87 to i8 + ret i8 %88 } ; Function Attrs: mustprogress nofree nounwind willreturn memory(write) diff --git a/bench/meshlab/optimized/filter_unsharp.cpp.ll b/bench/meshlab/optimized/filter_unsharp.cpp.ll index 610809e42f2..38b4f89a5fd 100644 --- a/bench/meshlab/optimized/filter_unsharp.cpp.ll +++ b/bench/meshlab/optimized/filter_unsharp.cpp.ll @@ -32847,13 +32847,14 @@ cdce.end145: ; preds = %32, %30, %_ZNK3vcg1 %narrow4.i = zext i1 %narrow4.i142 to i8 %narrow5.i = add nuw nsw i8 %narrow4.i, %narrow.i %narrow6.i143 = and i1 %.not.i25, %.not.i54 - %narrow6.i.neg = sext i1 %narrow6.i143 to i8 - %83 = icmp ne i8 %narrow5.i, %narrow6.i.neg - %84 = uitofp i1 %83 to double - %85 = tail call noundef double @acos(double noundef %84) #30 - %86 = fsub double 0x400921FB54442D18, %85 - %87 = fptosi double %86 to i8 - ret i8 %87 + %narrow6.i = zext i1 %narrow6.i143 to i8 + %83 = or i8 %narrow5.i, %narrow6.i + %84 = icmp ne i8 %83, 0 + %85 = uitofp i1 %84 to double + %86 = tail call noundef double @acos(double noundef %85) #30 + %87 = fsub double 0x400921FB54442D18, %86 + %88 = fptosi double %87 to i8 + ret i8 %88 } ; Function Attrs: nofree nounwind diff --git a/bench/meshlab/optimized/filter_voronoi.cpp.ll b/bench/meshlab/optimized/filter_voronoi.cpp.ll index 51d94dc7a93..54386ba706c 100644 --- a/bench/meshlab/optimized/filter_voronoi.cpp.ll +++ b/bench/meshlab/optimized/filter_voronoi.cpp.ll @@ -100443,13 +100443,14 @@ cdce.end145: ; preds = %32, %30, %_ZNK3vcg1 %narrow4.i = zext i1 %narrow4.i142 to i8 %narrow5.i = add nuw nsw i8 %narrow4.i, %narrow.i %narrow6.i143 = and i1 %.not.i25, %.not.i54 - %narrow6.i.neg = sext i1 %narrow6.i143 to i8 - %83 = icmp ne i8 %narrow5.i, %narrow6.i.neg - %84 = uitofp i1 %83 to double - %85 = tail call noundef double @acos(double noundef %84) #27 - %86 = fsub double 0x400921FB54442D18, %85 - %87 = fptosi double %86 to i8 - ret i8 %87 + %narrow6.i = zext i1 %narrow6.i143 to i8 + %83 = or i8 %narrow5.i, %narrow6.i + %84 = icmp ne i8 %83, 0 + %85 = uitofp i1 %84 to double + %86 = tail call noundef double @acos(double noundef %85) #27 + %87 = fsub double 0x400921FB54442D18, %86 + %88 = fptosi double %87 to i8 + ret i8 %88 } ; Function Attrs: mustprogress nofree nounwind willreturn memory(write) diff --git a/bench/meshlab/optimized/meshfilter.cpp.ll b/bench/meshlab/optimized/meshfilter.cpp.ll index 3e33ac20a82..3ea7fcb8f33 100644 --- a/bench/meshlab/optimized/meshfilter.cpp.ll +++ b/bench/meshlab/optimized/meshfilter.cpp.ll @@ -128431,13 +128431,14 @@ cdce.end145: ; preds = %32, %30, %_ZNK3vcg1 %narrow4.i = zext i1 %narrow4.i142 to i8 %narrow5.i = add nuw nsw i8 %narrow4.i, %narrow.i %narrow6.i143 = and i1 %.not.i25, %.not.i54 - %narrow6.i.neg = sext i1 %narrow6.i143 to i8 - %83 = icmp ne i8 %narrow5.i, %narrow6.i.neg - %84 = uitofp i1 %83 to double - %85 = tail call noundef double @acos(double noundef %84) #25 - %86 = fsub double 0x400921FB54442D18, %85 - %87 = fptosi double %86 to i8 - ret i8 %87 + %narrow6.i = zext i1 %narrow6.i143 to i8 + %83 = or i8 %narrow5.i, %narrow6.i + %84 = icmp ne i8 %83, 0 + %85 = uitofp i1 %84 to double + %86 = tail call noundef double @acos(double noundef %85) #25 + %87 = fsub double 0x400921FB54442D18, %86 + %88 = fptosi double %87 to i8 + ret i8 %88 } ; Function Attrs: mustprogress nofree nounwind willreturn memory(write) diff --git a/bench/meshlab/optimized/texture_rendering.cpp.ll b/bench/meshlab/optimized/texture_rendering.cpp.ll index 7d535a10760..8e3e04a6c01 100644 --- a/bench/meshlab/optimized/texture_rendering.cpp.ll +++ b/bench/meshlab/optimized/texture_rendering.cpp.ll @@ -615,7 +615,7 @@ define void @_Z13RenderTextureR4MeshSt10shared_ptrI13TextureObjectERKSt6vectorI1 31: ; preds = %29, %6 %32 = landingpad { ptr, i32 } cleanup - br label %718 + br label %719 33: ; preds = %20 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %0, i8 0, i64 24, i1 false) @@ -677,7 +677,7 @@ _ZNSt10shared_ptrI13TextureObjectEC2ERKS1_.exit: ; preds = %43, %51, %54 call void @llvm.lifetime.start.p0(i64 376, ptr nonnull %14) call void @llvm.lifetime.start.p0(i64 376, ptr nonnull %15) %61 = invoke { ptr, i32 } @_Z32GetWedgeTexCoordStorageAttributeR4Mesh(ptr noundef nonnull align 8 dereferenceable(808) %1) - to label %.noexc unwind label %705 + to label %.noexc unwind label %706 .noexc: ; preds = %_ZNSt10shared_ptrI13TextureObjectEC2ERKS1_.exit %62 = extractvalue { ptr, i32 } %61, 0 @@ -887,31 +887,31 @@ _ZSt13move_backwardIN9__gnu_cxx17__normal_iteratorIPP8MeshFaceSt6vectorIS3_SaIS3 "_ZSt4sortIN9__gnu_cxx17__normal_iteratorIPP8MeshFaceSt6vectorIS3_SaIS3_EEEEZL13RenderTextureRS7_R4MeshSt10shared_ptrI13TextureObjectEb10RenderModeiiE3$_0EvT_SH_T0_.exit.i": ; preds = %"_ZSt25__unguarded_linear_insertIN9__gnu_cxx17__normal_iteratorIPP8MeshFaceSt6vectorIS3_SaIS3_EEEENS0_5__ops14_Val_comp_iterIZL13RenderTextureRS7_R4MeshSt10shared_ptrI13TextureObjectEb10RenderModeiiE3$_0EEEvT_T0_.exit.i36.i.i.i.i", %"_ZSt25__unguarded_linear_insertIN9__gnu_cxx17__normal_iteratorIPP8MeshFaceSt6vectorIS3_SaIS3_EEEENS0_5__ops14_Val_comp_iterIZL13RenderTextureRS7_R4MeshSt10shared_ptrI13TextureObjectEb10RenderModeiiE3$_0EEEvT_T0_.exit.i16.i.i.i.i", %121, %"_ZSt16__insertion_sortIN9__gnu_cxx17__normal_iteratorIPP8MeshFaceSt6vectorIS3_SaIS3_EEEENS0_5__ops15_Iter_comp_iterIZL13RenderTextureRS7_R4MeshSt10shared_ptrI13TextureObjectEb10RenderModeiiE3$_0EEEvT_SK_T0_.exit.i.i.i.i", %.noexc %153 = load ptr, ptr @__glewGenVertexArrays, align 8, !noalias !13 invoke void %153(i32 noundef 1, ptr noundef nonnull %9) - to label %.noexc24 unwind label %705 + to label %.noexc24 unwind label %706 .noexc24: ; preds = %"_ZSt4sortIN9__gnu_cxx17__normal_iteratorIPP8MeshFaceSt6vectorIS3_SaIS3_EEEEZL13RenderTextureRS7_R4MeshSt10shared_ptrI13TextureObjectEb10RenderModeiiE3$_0EvT_SH_T0_.exit.i" %154 = load ptr, ptr @__glewBindVertexArray, align 8, !noalias !13 %155 = load i32, ptr %9, align 4, !noalias !13 invoke void %154(i32 noundef %155) - to label %.noexc25 unwind label %705 + to label %.noexc25 unwind label %706 .noexc25: ; preds = %.noexc24 %156 = invoke noundef i32 @_Z14CompileShadersPPKcS1_(ptr noundef nonnull @_ZL7vs_text, ptr noundef nonnull @_ZL7fs_text) - to label %.noexc26 unwind label %705 + to label %.noexc26 unwind label %706 .noexc26: ; preds = %.noexc25 %157 = load ptr, ptr @__glewUseProgram, align 8, !noalias !13 invoke void %157(i32 noundef %156) - to label %.noexc27 unwind label %705 + to label %.noexc27 unwind label %706 .noexc27: ; preds = %.noexc26 invoke void @_Z12CheckGLErrorv() - to label %.noexc28 unwind label %705 + to label %.noexc28 unwind label %706 .noexc28: ; preds = %.noexc27 %158 = load ptr, ptr @__glewGenBuffers, align 8, !noalias !13 invoke void %158(i32 noundef 1, ptr noundef nonnull %10) - to label %.noexc29 unwind label %705 + to label %.noexc29 unwind label %706 .noexc29: ; preds = %.noexc28, %_ZNSt6vectorI11TextureSizeSaIS0_EE9push_backEOS0_.exit.i %.sroa.11.0.i = phi ptr [ %.sroa.11.1.i, %_ZNSt6vectorI11TextureSizeSaIS0_EE9push_backEOS0_.exit.i ], [ null, %.noexc28 ] @@ -1389,7 +1389,7 @@ _ZNSt15__allocated_ptrISaISt23_Sp_counted_ptr_inplaceI6QImageSaIvELN9__gnu_cxx12 cleanup br label %.body99.i -.loopexit.split-lp.i.loopexit: ; preds = %332, %333, %334, %335, %336, %424, %425, %427, %428, %430, %432, %434, %435, %437, %439, %441, %443, %446, %578 +.loopexit.split-lp.i.loopexit: ; preds = %332, %333, %334, %335, %336, %424, %425, %427, %428, %430, %432, %434, %435, %437, %439, %441, %443, %446, %579 %lpad.loopexit61 = landingpad { ptr, i32 } cleanup br label %.body99.i @@ -1604,7 +1604,7 @@ _ZN7logging6BufferlsIiEERS0_RKT_.exit.i: ; preds = %_ZN7logging6Bufferl to label %445 unwind label %.loopexit.split-lp.i.loopexit, !noalias !13 445: ; preds = %443 - br i1 %4, label %446, label %578 + br i1 %4, label %446, label %579 446: ; preds = %445 call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %7), !noalias !13 @@ -1620,9 +1620,9 @@ _ZN7logging6BufferlsIiEERS0_RKT_.exit.i: ; preds = %_ZN7logging6Bufferl %.not.i.i.i.i.i.i.i = icmp eq i64 %448, 0 br i1 %.not.i.i.i.i.i.i.i, label %.preheader, label %.lr.ph.i.i.i.i.i.i.i, !llvm.loop !28 -.preheader: ; preds = %.lr.ph.i.i.i.i.i.i.i, %572 - %indvars.iv.i.i = phi i64 [ %indvars.iv.next.i.i, %572 ], [ 0, %.lr.ph.i.i.i.i.i.i.i ] - %.031.i.i = phi i32 [ %463, %572 ], [ 2, %.lr.ph.i.i.i.i.i.i.i ] +.preheader: ; preds = %.lr.ph.i.i.i.i.i.i.i, %573 + %indvars.iv.i.i = phi i64 [ %indvars.iv.next.i.i, %573 ], [ 0, %.lr.ph.i.i.i.i.i.i.i ] + %.031.i.i = phi i32 [ %463, %573 ], [ 2, %.lr.ph.i.i.i.i.i.i.i ] %450 = invoke noundef i32 @_ZNK6QImage5widthEv(ptr noundef nonnull align 8 dereferenceable(32) %330) to label %451 unwind label %.loopexit.split-lp.i.loopexit.split-lp.loopexit.split-lp.i, !noalias !13 @@ -1664,7 +1664,7 @@ _ZN7logging6BufferlsIiEERS0_RKT_.exit.i: ; preds = %_ZN7logging6Bufferl br i1 %467, label %.preheader.i.i, label %_ZN3vcgL11PullPushMipER6QImageS1_j.exit.i .preheader.i.i: ; preds = %.noexc106.i, %.noexc118.i - %.055.i.i = phi i32 [ %560, %.noexc118.i ], [ 0, %.noexc106.i ] + %.054.i.i = phi i32 [ %561, %.noexc118.i ], [ 0, %.noexc106.i ] %468 = invoke noundef i32 @_ZNK6QImage5widthEv(ptr noundef nonnull align 8 dereferenceable(32) %462) to label %.noexc107.i unwind label %.loopexit.split-lp.i.loopexit.split-lp.loopexit.i, !noalias !13 @@ -1673,13 +1673,13 @@ _ZN7logging6BufferlsIiEERS0_RKT_.exit.i: ; preds = %_ZN7logging6Bufferl br i1 %469, label %.lr.ph.i104.i, label %._crit_edge.i103.i .lr.ph.i104.i: ; preds = %.noexc107.i - %470 = shl nuw nsw i32 %.055.i.i, 1 + %470 = shl nuw nsw i32 %.054.i.i, 1 %471 = or disjoint i32 %470, 1 br label %472 472: ; preds = %.noexc117.i, %.lr.ph.i104.i - %.04454.i.i = phi i32 [ 0, %.lr.ph.i104.i ], [ %557, %.noexc117.i ] - %473 = shl nuw nsw i32 %.04454.i.i, 1 + %.04453.i.i = phi i32 [ 0, %.lr.ph.i104.i ], [ %558, %.noexc117.i ] + %473 = shl nuw nsw i32 %.04453.i.i, 1 %474 = invoke noundef i32 @_ZNK6QImage5pixelEii(ptr noundef nonnull align 8 dereferenceable(32) %465, i32 noundef %473, i32 noundef %470) to label %.noexc108.i unwind label %.loopexit.split-lp.i.loopexit.i, !noalias !13 @@ -1706,114 +1706,114 @@ _ZN7logging6BufferlsIiEERS0_RKT_.exit.i: ; preds = %_ZN7logging6Bufferl %481 = add nuw nsw i32 %480, %479 %482 = select i1 %.not51.i.i, i32 0, i32 255 %483 = add nuw nsw i32 %481, %482 - %.not53.i.i = icmp eq i32 %483, 0 - %.not.i105.i = select i1 %.not52.i.i, i1 %.not53.i.i, i1 false - br i1 %.not.i105.i, label %.noexc116.i, label %484 + %484 = select i1 %.not52.i.i, i32 0, i32 255 + %485 = or i32 %484, %483 + %.not.i105.i = icmp eq i32 %485, 0 + br i1 %.not.i105.i, label %.noexc116.i, label %486 -484: ; preds = %.noexc111.i - %485 = select i1 %.not52.i.i, i32 0, i32 255 - %486 = invoke noundef i32 @_ZNK6QImage5pixelEii(ptr noundef nonnull align 8 dereferenceable(32) %465, i32 noundef %473, i32 noundef %470) +486: ; preds = %.noexc111.i + %487 = invoke noundef i32 @_ZNK6QImage5pixelEii(ptr noundef nonnull align 8 dereferenceable(32) %465, i32 noundef %473, i32 noundef %470) to label %.noexc112.i unwind label %.loopexit.split-lp.i.loopexit.i, !noalias !13 -.noexc112.i: ; preds = %484 - %487 = invoke noundef i32 @_ZNK6QImage5pixelEii(ptr noundef nonnull align 8 dereferenceable(32) %465, i32 noundef %475, i32 noundef %470) +.noexc112.i: ; preds = %486 + %488 = invoke noundef i32 @_ZNK6QImage5pixelEii(ptr noundef nonnull align 8 dereferenceable(32) %465, i32 noundef %475, i32 noundef %470) to label %.noexc113.i unwind label %.loopexit.split-lp.i.loopexit.i, !noalias !13 .noexc113.i: ; preds = %.noexc112.i - %488 = invoke noundef i32 @_ZNK6QImage5pixelEii(ptr noundef nonnull align 8 dereferenceable(32) %465, i32 noundef %473, i32 noundef %471) + %489 = invoke noundef i32 @_ZNK6QImage5pixelEii(ptr noundef nonnull align 8 dereferenceable(32) %465, i32 noundef %473, i32 noundef %471) to label %.noexc114.i unwind label %.loopexit.split-lp.i.loopexit.i, !noalias !13 .noexc114.i: ; preds = %.noexc113.i - %489 = invoke noundef i32 @_ZNK6QImage5pixelEii(ptr noundef nonnull align 8 dereferenceable(32) %465, i32 noundef %475, i32 noundef %471) + %490 = invoke noundef i32 @_ZNK6QImage5pixelEii(ptr noundef nonnull align 8 dereferenceable(32) %465, i32 noundef %475, i32 noundef %471) to label %.noexc115.i unwind label %.loopexit.split-lp.i.loopexit.i, !noalias !13 .noexc115.i: ; preds = %.noexc114.i - %490 = lshr i32 %486, 16 - %491 = and i32 %490, 255 - %492 = lshr i32 %487, 16 - %493 = and i32 %492, 255 - %494 = lshr i32 %488, 16 - %495 = and i32 %494, 255 - %496 = lshr i32 %489, 16 - %497 = and i32 %496, 255 - %498 = mul nuw nsw i32 %491, %479 - %499 = mul nuw nsw i32 %493, %480 - %500 = add nuw nsw i32 %499, %498 - %501 = mul nuw nsw i32 %495, %482 - %502 = add nuw nsw i32 %500, %501 - %503 = mul nuw nsw i32 %497, %485 - %504 = add nuw nsw i32 %502, %503 - %505 = add nuw nsw i32 %485, %483 - %506 = udiv i32 %504, %505 - %507 = lshr i32 %486, 8 - %508 = and i32 %507, 255 - %509 = lshr i32 %487, 8 - %510 = and i32 %509, 255 - %511 = lshr i32 %488, 8 - %512 = and i32 %511, 255 - %513 = lshr i32 %489, 8 - %514 = and i32 %513, 255 - %515 = mul nuw nsw i32 %508, %479 - %516 = mul nuw nsw i32 %510, %480 - %517 = add nuw nsw i32 %516, %515 - %518 = mul nuw nsw i32 %512, %482 - %519 = add nuw nsw i32 %517, %518 - %520 = mul nuw nsw i32 %514, %485 - %521 = add nuw nsw i32 %519, %520 - %522 = udiv i32 %521, %505 - %523 = and i32 %486, 255 + %491 = lshr i32 %487, 16 + %492 = and i32 %491, 255 + %493 = lshr i32 %488, 16 + %494 = and i32 %493, 255 + %495 = lshr i32 %489, 16 + %496 = and i32 %495, 255 + %497 = lshr i32 %490, 16 + %498 = and i32 %497, 255 + %499 = mul nuw nsw i32 %492, %479 + %500 = mul nuw nsw i32 %494, %480 + %501 = add nuw nsw i32 %500, %499 + %502 = mul nuw nsw i32 %496, %482 + %503 = add nuw nsw i32 %501, %502 + %504 = mul nuw nsw i32 %498, %484 + %505 = add nuw nsw i32 %503, %504 + %506 = add nuw nsw i32 %484, %483 + %507 = udiv i32 %505, %506 + %508 = lshr i32 %487, 8 + %509 = and i32 %508, 255 + %510 = lshr i32 %488, 8 + %511 = and i32 %510, 255 + %512 = lshr i32 %489, 8 + %513 = and i32 %512, 255 + %514 = lshr i32 %490, 8 + %515 = and i32 %514, 255 + %516 = mul nuw nsw i32 %509, %479 + %517 = mul nuw nsw i32 %511, %480 + %518 = add nuw nsw i32 %517, %516 + %519 = mul nuw nsw i32 %513, %482 + %520 = add nuw nsw i32 %518, %519 + %521 = mul nuw nsw i32 %515, %484 + %522 = add nuw nsw i32 %520, %521 + %523 = udiv i32 %522, %506 %524 = and i32 %487, 255 %525 = and i32 %488, 255 %526 = and i32 %489, 255 - %527 = mul nuw nsw i32 %523, %479 - %528 = mul nuw nsw i32 %524, %480 - %529 = add nuw nsw i32 %528, %527 - %530 = mul nuw nsw i32 %525, %482 - %531 = add nuw nsw i32 %529, %530 - %532 = mul nuw nsw i32 %526, %485 - %533 = add nuw nsw i32 %531, %532 - %534 = udiv i32 %533, %505 - %535 = lshr i32 %486, 24 + %527 = and i32 %490, 255 + %528 = mul nuw nsw i32 %524, %479 + %529 = mul nuw nsw i32 %525, %480 + %530 = add nuw nsw i32 %529, %528 + %531 = mul nuw nsw i32 %526, %482 + %532 = add nuw nsw i32 %530, %531 + %533 = mul nuw nsw i32 %527, %484 + %534 = add nuw nsw i32 %532, %533 + %535 = udiv i32 %534, %506 %536 = lshr i32 %487, 24 %537 = lshr i32 %488, 24 %538 = lshr i32 %489, 24 - %539 = mul nuw nsw i32 %535, %479 - %540 = mul nuw nsw i32 %536, %480 - %541 = add nuw nsw i32 %540, %539 - %542 = mul nuw nsw i32 %537, %482 - %543 = add nuw nsw i32 %541, %542 - %544 = mul nuw nsw i32 %538, %485 - %545 = add nuw nsw i32 %543, %544 - %546 = udiv i32 %545, %505 - %547 = shl i32 %546, 24 - %548 = shl i32 %506, 16 - %549 = and i32 %548, 16711680 - %550 = or disjoint i32 %547, %549 - %551 = shl nuw nsw i32 %522, 8 - %552 = and i32 %551, 65280 - %553 = or disjoint i32 %550, %552 - %554 = and i32 %534, 255 - %555 = or disjoint i32 %553, %554 - invoke void @_ZN6QImage8setPixelEiij(ptr noundef nonnull align 8 dereferenceable(32) %462, i32 noundef %.04454.i.i, i32 noundef %.055.i.i, i32 noundef %555) + %539 = lshr i32 %490, 24 + %540 = mul nuw nsw i32 %536, %479 + %541 = mul nuw nsw i32 %537, %480 + %542 = add nuw nsw i32 %541, %540 + %543 = mul nuw nsw i32 %538, %482 + %544 = add nuw nsw i32 %542, %543 + %545 = mul nuw nsw i32 %539, %484 + %546 = add nuw nsw i32 %544, %545 + %547 = udiv i32 %546, %506 + %548 = shl i32 %547, 24 + %549 = shl i32 %507, 16 + %550 = and i32 %549, 16711680 + %551 = or disjoint i32 %548, %550 + %552 = shl nuw nsw i32 %523, 8 + %553 = and i32 %552, 65280 + %554 = or disjoint i32 %551, %553 + %555 = and i32 %535, 255 + %556 = or disjoint i32 %554, %555 + invoke void @_ZN6QImage8setPixelEiij(ptr noundef nonnull align 8 dereferenceable(32) %462, i32 noundef %.04453.i.i, i32 noundef %.054.i.i, i32 noundef %556) to label %.noexc116.i unwind label %.loopexit.split-lp.i.loopexit.i, !noalias !13 .noexc116.i: ; preds = %.noexc115.i, %.noexc111.i - %556 = invoke noundef i32 @_ZNK6QImage5widthEv(ptr noundef nonnull align 8 dereferenceable(32) %462) + %557 = invoke noundef i32 @_ZNK6QImage5widthEv(ptr noundef nonnull align 8 dereferenceable(32) %462) to label %.noexc117.i unwind label %.loopexit.split-lp.i.loopexit.i, !noalias !13 .noexc117.i: ; preds = %.noexc116.i - %557 = add nuw nsw i32 %.04454.i.i, 1 - %558 = icmp slt i32 %557, %556 - br i1 %558, label %472, label %._crit_edge.i103.i, !llvm.loop !29 + %558 = add nuw nsw i32 %.04453.i.i, 1 + %559 = icmp slt i32 %558, %557 + br i1 %559, label %472, label %._crit_edge.i103.i, !llvm.loop !29 ._crit_edge.i103.i: ; preds = %.noexc117.i, %.noexc107.i - %559 = invoke noundef i32 @_ZNK6QImage6heightEv(ptr noundef nonnull align 8 dereferenceable(32) %462) + %560 = invoke noundef i32 @_ZNK6QImage6heightEv(ptr noundef nonnull align 8 dereferenceable(32) %462) to label %.noexc118.i unwind label %.loopexit.split-lp.i.loopexit.split-lp.loopexit.i, !noalias !13 .noexc118.i: ; preds = %._crit_edge.i103.i - %560 = add nuw nsw i32 %.055.i.i, 1 - %561 = icmp slt i32 %560, %559 - br i1 %561, label %.preheader.i.i, label %_ZN3vcgL11PullPushMipER6QImageS1_j.exit.i, !llvm.loop !30 + %561 = add nuw nsw i32 %.054.i.i, 1 + %562 = icmp slt i32 %561, %560 + br i1 %562, label %.preheader.i.i, label %_ZN3vcgL11PullPushMipER6QImageS1_j.exit.i, !llvm.loop !30 .loopexit.loopexit.i.i: ; preds = %.lr.ph %lpad.loopexit46.i.i = landingpad { ptr, i32 } @@ -1825,7 +1825,7 @@ _ZN7logging6BufferlsIiEERS0_RKT_.exit.i: ; preds = %_ZN7logging6Bufferl cleanup br label %.loopexit.i.i -.loopexit.split-lp.i.loopexit.i: ; preds = %.noexc116.i, %.noexc115.i, %.noexc114.i, %.noexc113.i, %.noexc112.i, %484, %.noexc110.i, %.noexc109.i, %.noexc108.i, %472 +.loopexit.split-lp.i.loopexit.i: ; preds = %.noexc116.i, %.noexc115.i, %.noexc114.i, %.noexc113.i, %.noexc112.i, %486, %.noexc110.i, %.noexc109.i, %.noexc108.i, %472 %lpad.loopexit.i = landingpad { ptr, i32 } cleanup br label %.loopexit.i.i @@ -1835,7 +1835,7 @@ _ZN7logging6BufferlsIiEERS0_RKT_.exit.i: ; preds = %_ZN7logging6Bufferl cleanup br label %.loopexit.i.i -.loopexit.split-lp.i.loopexit.split-lp.loopexit.split-lp.i: ; preds = %568, %_ZN3vcgL11PullPushMipER6QImageS1_j.exit.i, %.invoke.i.i, %458, %456, %454, %451, %.preheader +.loopexit.split-lp.i.loopexit.split-lp.loopexit.split-lp.i: ; preds = %569, %_ZN3vcgL11PullPushMipER6QImageS1_j.exit.i, %.invoke.i.i, %458, %456, %454, %451, %.preheader %lpad.loopexit.split-lp173.i = landingpad { ptr, i32 } cleanup br label %.loopexit.i.i @@ -1845,11 +1845,11 @@ _ZN7logging6BufferlsIiEERS0_RKT_.exit.i: ; preds = %_ZN7logging6Bufferl br label %.lr.ph.i.i.i.i53 .lr.ph.i.i.i.i53: ; preds = %.loopexit.i.i, %.lr.ph.i.i.i.i53 - %.05.i.i.i.i54 = phi ptr [ %564, %.lr.ph.i.i.i.i53 ], [ %447, %.loopexit.i.i ] - %562 = load ptr, ptr %.05.i.i.i.i54, align 8, !noalias !13 - %563 = load ptr, ptr %562, align 8, !noalias !13 - call void %563(ptr noundef nonnull align 8 dereferenceable(32) %.05.i.i.i.i54) #27, !noalias !13 - %564 = getelementptr inbounds i8, ptr %.05.i.i.i.i54, i64 32 + %.05.i.i.i.i54 = phi ptr [ %565, %.lr.ph.i.i.i.i53 ], [ %447, %.loopexit.i.i ] + %563 = load ptr, ptr %.05.i.i.i.i54, align 8, !noalias !13 + %564 = load ptr, ptr %563, align 8, !noalias !13 + call void %564(ptr noundef nonnull align 8 dereferenceable(32) %.05.i.i.i.i54) #27, !noalias !13 + %565 = getelementptr inbounds i8, ptr %.05.i.i.i.i54, i64 32 %.not.i.i.i.i55 = icmp eq ptr %.05.i.i.i.i54, %.08.i.i.i.i.i.i.i br i1 %.not.i.i.i.i55, label %_ZNSt6vectorI6QImageSaIS0_EED2Ev.exit, label %.lr.ph.i.i.i.i53, !llvm.loop !31 @@ -1858,33 +1858,33 @@ _ZNSt6vectorI6QImageSaIS0_EED2Ev.exit: ; preds = %.lr.ph.i.i.i.i53 br label %.body99.i _ZN3vcgL11PullPushMipER6QImageS1_j.exit.i: ; preds = %.noexc118.i, %.noexc106.i - %565 = invoke noundef i32 @_ZNK6QImage5widthEv(ptr noundef nonnull align 8 dereferenceable(32) %462) - to label %566 unwind label %.loopexit.split-lp.i.loopexit.split-lp.loopexit.split-lp.i, !noalias !13 + %566 = invoke noundef i32 @_ZNK6QImage5widthEv(ptr noundef nonnull align 8 dereferenceable(32) %462) + to label %567 unwind label %.loopexit.split-lp.i.loopexit.split-lp.loopexit.split-lp.i, !noalias !13 -566: ; preds = %_ZN3vcgL11PullPushMipER6QImageS1_j.exit.i - %567 = icmp slt i32 %565, 2 - br i1 %567, label %.lr.ph.preheader.i.i, label %568 +567: ; preds = %_ZN3vcgL11PullPushMipER6QImageS1_j.exit.i + %568 = icmp slt i32 %566, 2 + br i1 %568, label %.lr.ph.preheader.i.i, label %569 -568: ; preds = %566 - %569 = invoke noundef i32 @_ZNK6QImage6heightEv(ptr noundef nonnull align 8 dereferenceable(32) %462) - to label %570 unwind label %.loopexit.split-lp.i.loopexit.split-lp.loopexit.split-lp.i, !noalias !13 +569: ; preds = %567 + %570 = invoke noundef i32 @_ZNK6QImage6heightEv(ptr noundef nonnull align 8 dereferenceable(32) %462) + to label %571 unwind label %.loopexit.split-lp.i.loopexit.split-lp.loopexit.split-lp.i, !noalias !13 -570: ; preds = %568 - %571 = icmp slt i32 %569, 2 - br i1 %571, label %.lr.ph.preheader.i.i, label %572 +571: ; preds = %569 + %572 = icmp slt i32 %570, 2 + br i1 %572, label %.lr.ph.preheader.i.i, label %573 -572: ; preds = %570 +573: ; preds = %571 %indvars.iv.next.i.i = add nuw nsw i64 %indvars.iv.i.i, 1 br label %.preheader, !llvm.loop !32 -.lr.ph.preheader.i.i: ; preds = %570, %566 +.lr.ph.preheader.i.i: ; preds = %571, %567 br i1 %.not.i.i, label %.lr.ph.i.i._crit_edge, label %.lr.ph .lr.ph: ; preds = %.lr.ph.preheader.i.i, %.lr.ph.i.i %indvars.iv42.i.i120 = phi i64 [ %indvars.iv.next43.i.i, %.lr.ph.i.i ], [ %indvars.iv.i.i, %.lr.ph.preheader.i.i ] - %573 = getelementptr %class.QImage, ptr %447, i64 %indvars.iv42.i.i120 - %574 = getelementptr i8, ptr %573, i64 -32 - invoke fastcc void @_ZN3vcgL12PullPushFillER6QImageS1_j(ptr noundef nonnull align 8 dereferenceable(32) %574, ptr noundef nonnull align 8 dereferenceable(32) %573, i32 noundef -2147418368) + %574 = getelementptr %class.QImage, ptr %447, i64 %indvars.iv42.i.i120 + %575 = getelementptr i8, ptr %574, i64 -32 + invoke fastcc void @_ZN3vcgL12PullPushFillER6QImageS1_j(ptr noundef nonnull align 8 dereferenceable(32) %575, ptr noundef nonnull align 8 dereferenceable(32) %574, i32 noundef -2147418368) to label %.lr.ph.i.i unwind label %.loopexit.loopexit.i.i, !noalias !13 .lr.ph.i.i._crit_edge: ; preds = %.lr.ph.i.i, %.lr.ph.preheader.i.i @@ -1897,115 +1897,115 @@ _ZN3vcgL11PullPushMipER6QImageS1_j.exit.i: ; preds = %.noexc118.i, %.noex br i1 %.not35.i.i, label %.lr.ph.i.i._crit_edge, label %.lr.ph .lr.ph.i.i.i.i.i.i: ; preds = %.lr.ph.i.i._crit_edge, %.lr.ph.i.i.i.i.i.i - %.05.i.i.i.i.i.i = phi ptr [ %577, %.lr.ph.i.i.i.i.i.i ], [ %447, %.lr.ph.i.i._crit_edge ] - %575 = load ptr, ptr %.05.i.i.i.i.i.i, align 8, !noalias !13 - %576 = load ptr, ptr %575, align 8, !noalias !13 - call void %576(ptr noundef nonnull align 8 dereferenceable(32) %.05.i.i.i.i.i.i) #27, !noalias !13 - %577 = getelementptr inbounds i8, ptr %.05.i.i.i.i.i.i, i64 32 + %.05.i.i.i.i.i.i = phi ptr [ %578, %.lr.ph.i.i.i.i.i.i ], [ %447, %.lr.ph.i.i._crit_edge ] + %576 = load ptr, ptr %.05.i.i.i.i.i.i, align 8, !noalias !13 + %577 = load ptr, ptr %576, align 8, !noalias !13 + call void %577(ptr noundef nonnull align 8 dereferenceable(32) %.05.i.i.i.i.i.i) #27, !noalias !13 + %578 = getelementptr inbounds i8, ptr %.05.i.i.i.i.i.i, i64 32 %.not.i.i.i.i.i.i = icmp eq ptr %.05.i.i.i.i.i.i, %.08.i.i.i.i.i.i.i br i1 %.not.i.i.i.i.i.i, label %_ZN3vcgL8PullPushER6QImagej.exit.i, label %.lr.ph.i.i.i.i.i.i, !llvm.loop !31 _ZN3vcgL8PullPushER6QImagej.exit.i: ; preds = %.lr.ph.i.i.i.i.i.i call void @_ZdlPv(ptr noundef nonnull %447) #23, !noalias !13 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7), !noalias !13 - br label %578 + br label %579 -578: ; preds = %_ZN3vcgL8PullPushER6QImagej.exit.i, %445 +579: ; preds = %_ZN3vcgL8PullPushER6QImagej.exit.i, %445 invoke void @_Z6MirrorR6QImage(ptr noundef nonnull align 8 dereferenceable(32) %330) - to label %579 unwind label %.loopexit.split-lp.i.loopexit, !noalias !13 + to label %580 unwind label %.loopexit.split-lp.i.loopexit, !noalias !13 -579: ; preds = %578 +580: ; preds = %579 %.not.i.i.i.i23 = icmp eq ptr %.sroa.0162.0.i, null - br i1 %.not.i.i.i.i23, label %617, label %580 + br i1 %.not.i.i.i.i23, label %618, label %581 -580: ; preds = %579 +581: ; preds = %580 call void @_ZdlPv(ptr noundef nonnull %.sroa.0162.0.i) #23, !noalias !13 - br label %617 + br label %618 .body99.i: ; preds = %.loopexit.split-lp.i.loopexit, %.loopexit.split-lp.i.loopexit.split-lp, %_ZNSt6vectorI6QImageSaIS0_EED2Ev.exit, %411, %.loopexit.i %.pn.i = phi { ptr, i32 } [ %412, %411 ], [ %lpad.phi.i.i, %_ZNSt6vectorI6QImageSaIS0_EED2Ev.exit ], [ %lpad.loopexit175.i, %.loopexit.i ], [ %lpad.loopexit61, %.loopexit.split-lp.i.loopexit ], [ %lpad.loopexit.split-lp62, %.loopexit.split-lp.i.loopexit.split-lp ] - %581 = load ptr, ptr %39, align 8 - %.not.i.i.i45 = icmp eq ptr %581, null - br i1 %.not.i.i.i45, label %.body.i, label %582 - -582: ; preds = %.body99.i - %583 = getelementptr inbounds i8, ptr %581, i64 8 - %584 = load atomic i64, ptr %583 acquire, align 8 - %585 = icmp eq i64 %584, 4294967297 - %586 = trunc i64 %584 to i32 - br i1 %585, label %587, label %592 - -587: ; preds = %582 - store i32 0, ptr %583, align 8 - %588 = getelementptr inbounds i8, ptr %581, i64 12 - store i32 0, ptr %588, align 4 - %589 = load ptr, ptr %581, align 8 - %590 = getelementptr inbounds i8, ptr %589, i64 16 - %591 = load ptr, ptr %590, align 8 - call void %591(ptr noundef nonnull align 8 dereferenceable(16) %581) #27 + %582 = load ptr, ptr %39, align 8 + %.not.i.i.i45 = icmp eq ptr %582, null + br i1 %.not.i.i.i45, label %.body.i, label %583 + +583: ; preds = %.body99.i + %584 = getelementptr inbounds i8, ptr %582, i64 8 + %585 = load atomic i64, ptr %584 acquire, align 8 + %586 = icmp eq i64 %585, 4294967297 + %587 = trunc i64 %585 to i32 + br i1 %586, label %588, label %593 + +588: ; preds = %583 + store i32 0, ptr %584, align 8 + %589 = getelementptr inbounds i8, ptr %582, i64 12 + store i32 0, ptr %589, align 4 + %590 = load ptr, ptr %582, align 8 + %591 = getelementptr inbounds i8, ptr %590, i64 16 + %592 = load ptr, ptr %591, align 8 + call void %592(ptr noundef nonnull align 8 dereferenceable(16) %582) #27 br label %_ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE24_M_release_last_use_coldEv.exit.sink.split.i.i.i.i50 -592: ; preds = %582 - %593 = load i8, ptr @__libc_single_threaded, align 1 - %.not.i.i.i.i46 = icmp eq i8 %593, 0 - br i1 %.not.i.i.i.i46, label %596, label %594 - -594: ; preds = %592 - %595 = add nsw i32 %586, -1 - store i32 %595, ptr %583, align 4 - br label %598 - -596: ; preds = %592 - %597 = atomicrmw volatile add ptr %583, i32 -1 acq_rel, align 4 - br label %598 - -598: ; preds = %596, %594 - %.0.i.i.i.i47 = phi i32 [ %586, %594 ], [ %597, %596 ] - %599 = icmp eq i32 %.0.i.i.i.i47, 1 - br i1 %599, label %600, label %.body.i - -600: ; preds = %598 - %601 = load ptr, ptr %581, align 8 - %602 = getelementptr inbounds i8, ptr %601, i64 16 - %603 = load ptr, ptr %602, align 8 - call void %603(ptr noundef nonnull align 8 dereferenceable(16) %581) #27 - %604 = getelementptr inbounds i8, ptr %581, i64 12 - %605 = load i8, ptr @__libc_single_threaded, align 1 - %.not.i.i.i.i.i.i48 = icmp eq i8 %605, 0 - br i1 %.not.i.i.i.i.i.i48, label %609, label %606 - -606: ; preds = %600 - %607 = load i32, ptr %604, align 4 - %608 = add nsw i32 %607, -1 - store i32 %608, ptr %604, align 4 - br label %611 - -609: ; preds = %600 - %610 = atomicrmw volatile add ptr %604, i32 -1 acq_rel, align 4 - br label %611 - -611: ; preds = %609, %606 - %.0.i.i.i.i.i.i49 = phi i32 [ %607, %606 ], [ %610, %609 ] - %612 = icmp eq i32 %.0.i.i.i.i.i.i49, 1 - br i1 %612, label %_ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE24_M_release_last_use_coldEv.exit.sink.split.i.i.i.i50, label %.body.i - -_ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE24_M_release_last_use_coldEv.exit.sink.split.i.i.i.i50: ; preds = %611, %587 - %613 = load ptr, ptr %581, align 8 - %614 = getelementptr inbounds i8, ptr %613, i64 24 - %615 = load ptr, ptr %614, align 8 - call void %615(ptr noundef nonnull align 8 dereferenceable(16) %581) #27 +593: ; preds = %583 + %594 = load i8, ptr @__libc_single_threaded, align 1 + %.not.i.i.i.i46 = icmp eq i8 %594, 0 + br i1 %.not.i.i.i.i46, label %597, label %595 + +595: ; preds = %593 + %596 = add nsw i32 %587, -1 + store i32 %596, ptr %584, align 4 + br label %599 + +597: ; preds = %593 + %598 = atomicrmw volatile add ptr %584, i32 -1 acq_rel, align 4 + br label %599 + +599: ; preds = %597, %595 + %.0.i.i.i.i47 = phi i32 [ %587, %595 ], [ %598, %597 ] + %600 = icmp eq i32 %.0.i.i.i.i47, 1 + br i1 %600, label %601, label %.body.i + +601: ; preds = %599 + %602 = load ptr, ptr %582, align 8 + %603 = getelementptr inbounds i8, ptr %602, i64 16 + %604 = load ptr, ptr %603, align 8 + call void %604(ptr noundef nonnull align 8 dereferenceable(16) %582) #27 + %605 = getelementptr inbounds i8, ptr %582, i64 12 + %606 = load i8, ptr @__libc_single_threaded, align 1 + %.not.i.i.i.i.i.i48 = icmp eq i8 %606, 0 + br i1 %.not.i.i.i.i.i.i48, label %610, label %607 + +607: ; preds = %601 + %608 = load i32, ptr %605, align 4 + %609 = add nsw i32 %608, -1 + store i32 %609, ptr %605, align 4 + br label %612 + +610: ; preds = %601 + %611 = atomicrmw volatile add ptr %605, i32 -1 acq_rel, align 4 + br label %612 + +612: ; preds = %610, %607 + %.0.i.i.i.i.i.i49 = phi i32 [ %608, %607 ], [ %611, %610 ] + %613 = icmp eq i32 %.0.i.i.i.i.i.i49, 1 + br i1 %613, label %_ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE24_M_release_last_use_coldEv.exit.sink.split.i.i.i.i50, label %.body.i + +_ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE24_M_release_last_use_coldEv.exit.sink.split.i.i.i.i50: ; preds = %612, %588 + %614 = load ptr, ptr %582, align 8 + %615 = getelementptr inbounds i8, ptr %614, i64 24 + %616 = load ptr, ptr %615, align 8 + call void %616(ptr noundef nonnull align 8 dereferenceable(16) %582) #27 br label %.body.i -.body.i: ; preds = %.loopexit.split-lp178.i.loopexit, %.loopexit.split-lp178.i.loopexit.split-lp, %_ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE24_M_release_last_use_coldEv.exit.sink.split.i.i.i.i50, %611, %598, %.body99.i, %_ZNSt15__allocated_ptrISaISt23_Sp_counted_ptr_inplaceI6QImageSaIvELN9__gnu_cxx12_Lock_policyE2EEEED2Ev.exit12.i.i.i.i.i, %324, %.loopexit177.i - %.pn82.i = phi { ptr, i32 } [ %325, %324 ], [ %331, %_ZNSt15__allocated_ptrISaISt23_Sp_counted_ptr_inplaceI6QImageSaIvELN9__gnu_cxx12_Lock_policyE2EEEED2Ev.exit12.i.i.i.i.i ], [ %lpad.loopexit179.i, %.loopexit177.i ], [ %.pn.i, %.body99.i ], [ %.pn.i, %598 ], [ %.pn.i, %611 ], [ %.pn.i, %_ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE24_M_release_last_use_coldEv.exit.sink.split.i.i.i.i50 ], [ %lpad.loopexit, %.loopexit.split-lp178.i.loopexit ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp178.i.loopexit.split-lp ] +.body.i: ; preds = %.loopexit.split-lp178.i.loopexit, %.loopexit.split-lp178.i.loopexit.split-lp, %_ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE24_M_release_last_use_coldEv.exit.sink.split.i.i.i.i50, %612, %599, %.body99.i, %_ZNSt15__allocated_ptrISaISt23_Sp_counted_ptr_inplaceI6QImageSaIvELN9__gnu_cxx12_Lock_policyE2EEEED2Ev.exit12.i.i.i.i.i, %324, %.loopexit177.i + %.pn82.i = phi { ptr, i32 } [ %325, %324 ], [ %331, %_ZNSt15__allocated_ptrISaISt23_Sp_counted_ptr_inplaceI6QImageSaIvELN9__gnu_cxx12_Lock_policyE2EEEED2Ev.exit12.i.i.i.i.i ], [ %lpad.loopexit179.i, %.loopexit177.i ], [ %.pn.i, %.body99.i ], [ %.pn.i, %599 ], [ %.pn.i, %612 ], [ %.pn.i, %_ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE24_M_release_last_use_coldEv.exit.sink.split.i.i.i.i50 ], [ %lpad.loopexit, %.loopexit.split-lp178.i.loopexit ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp178.i.loopexit.split-lp ] %.not.i.i.i101.i = icmp eq ptr %.sroa.0162.0.i, null - br i1 %.not.i.i.i101.i, label %.body, label %616 + br i1 %.not.i.i.i101.i, label %.body, label %617 -616: ; preds = %.body.i +617: ; preds = %.body.i call void @_ZdlPv(ptr noundef nonnull %.sroa.0162.0.i) #23 br label %.body -617: ; preds = %580, %579 +618: ; preds = %581, %580 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %8) call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %9) call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %10) @@ -2014,233 +2014,233 @@ _ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE24_M_release_last_use_cold call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %13) call void @llvm.lifetime.end.p0(i64 376, ptr nonnull %14) call void @llvm.lifetime.end.p0(i64 376, ptr nonnull %15) - %618 = load ptr, ptr %35, align 8 - %.not.i.i.i30 = icmp eq ptr %618, null - br i1 %.not.i.i.i30, label %_ZNSt10shared_ptrI13TextureObjectED2Ev.exit, label %619 - -619: ; preds = %617 - %620 = getelementptr inbounds i8, ptr %618, i64 8 - %621 = load atomic i64, ptr %620 acquire, align 8 - %622 = icmp eq i64 %621, 4294967297 - %623 = trunc i64 %621 to i32 - br i1 %622, label %624, label %629 - -624: ; preds = %619 - store i32 0, ptr %620, align 8 - %625 = getelementptr inbounds i8, ptr %618, i64 12 - store i32 0, ptr %625, align 4 - %626 = load ptr, ptr %618, align 8 - %627 = getelementptr inbounds i8, ptr %626, i64 16 - %628 = load ptr, ptr %627, align 8 - call void %628(ptr noundef nonnull align 8 dereferenceable(16) %618) #27 + %619 = load ptr, ptr %35, align 8 + %.not.i.i.i30 = icmp eq ptr %619, null + br i1 %.not.i.i.i30, label %_ZNSt10shared_ptrI13TextureObjectED2Ev.exit, label %620 + +620: ; preds = %618 + %621 = getelementptr inbounds i8, ptr %619, i64 8 + %622 = load atomic i64, ptr %621 acquire, align 8 + %623 = icmp eq i64 %622, 4294967297 + %624 = trunc i64 %622 to i32 + br i1 %623, label %625, label %630 + +625: ; preds = %620 + store i32 0, ptr %621, align 8 + %626 = getelementptr inbounds i8, ptr %619, i64 12 + store i32 0, ptr %626, align 4 + %627 = load ptr, ptr %619, align 8 + %628 = getelementptr inbounds i8, ptr %627, i64 16 + %629 = load ptr, ptr %628, align 8 + call void %629(ptr noundef nonnull align 8 dereferenceable(16) %619) #27 br label %_ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE24_M_release_last_use_coldEv.exit.sink.split.i.i.i.i -629: ; preds = %619 - %630 = load i8, ptr @__libc_single_threaded, align 1 - %.not.i.i.i.i31 = icmp eq i8 %630, 0 - br i1 %.not.i.i.i.i31, label %633, label %631 - -631: ; preds = %629 - %632 = add nsw i32 %623, -1 - store i32 %632, ptr %620, align 4 - br label %635 - -633: ; preds = %629 - %634 = atomicrmw volatile add ptr %620, i32 -1 acq_rel, align 4 - br label %635 - -635: ; preds = %633, %631 - %.0.i.i.i.i = phi i32 [ %623, %631 ], [ %634, %633 ] - %636 = icmp eq i32 %.0.i.i.i.i, 1 - br i1 %636, label %637, label %_ZNSt10shared_ptrI13TextureObjectED2Ev.exit - -637: ; preds = %635 - %638 = load ptr, ptr %618, align 8 - %639 = getelementptr inbounds i8, ptr %638, i64 16 - %640 = load ptr, ptr %639, align 8 - call void %640(ptr noundef nonnull align 8 dereferenceable(16) %618) #27 - %641 = getelementptr inbounds i8, ptr %618, i64 12 - %642 = load i8, ptr @__libc_single_threaded, align 1 - %.not.i.i.i.i.i.i32 = icmp eq i8 %642, 0 - br i1 %.not.i.i.i.i.i.i32, label %646, label %643 - -643: ; preds = %637 - %644 = load i32, ptr %641, align 4 - %645 = add nsw i32 %644, -1 - store i32 %645, ptr %641, align 4 - br label %648 - -646: ; preds = %637 - %647 = atomicrmw volatile add ptr %641, i32 -1 acq_rel, align 4 - br label %648 - -648: ; preds = %646, %643 - %.0.i.i.i.i.i.i = phi i32 [ %644, %643 ], [ %647, %646 ] - %649 = icmp eq i32 %.0.i.i.i.i.i.i, 1 - br i1 %649, label %_ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE24_M_release_last_use_coldEv.exit.sink.split.i.i.i.i, label %_ZNSt10shared_ptrI13TextureObjectED2Ev.exit - -_ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE24_M_release_last_use_coldEv.exit.sink.split.i.i.i.i: ; preds = %648, %624 - %650 = load ptr, ptr %618, align 8 - %651 = getelementptr inbounds i8, ptr %650, i64 24 - %652 = load ptr, ptr %651, align 8 - call void %652(ptr noundef nonnull align 8 dereferenceable(16) %618) #27 +630: ; preds = %620 + %631 = load i8, ptr @__libc_single_threaded, align 1 + %.not.i.i.i.i31 = icmp eq i8 %631, 0 + br i1 %.not.i.i.i.i31, label %634, label %632 + +632: ; preds = %630 + %633 = add nsw i32 %624, -1 + store i32 %633, ptr %621, align 4 + br label %636 + +634: ; preds = %630 + %635 = atomicrmw volatile add ptr %621, i32 -1 acq_rel, align 4 + br label %636 + +636: ; preds = %634, %632 + %.0.i.i.i.i = phi i32 [ %624, %632 ], [ %635, %634 ] + %637 = icmp eq i32 %.0.i.i.i.i, 1 + br i1 %637, label %638, label %_ZNSt10shared_ptrI13TextureObjectED2Ev.exit + +638: ; preds = %636 + %639 = load ptr, ptr %619, align 8 + %640 = getelementptr inbounds i8, ptr %639, i64 16 + %641 = load ptr, ptr %640, align 8 + call void %641(ptr noundef nonnull align 8 dereferenceable(16) %619) #27 + %642 = getelementptr inbounds i8, ptr %619, i64 12 + %643 = load i8, ptr @__libc_single_threaded, align 1 + %.not.i.i.i.i.i.i32 = icmp eq i8 %643, 0 + br i1 %.not.i.i.i.i.i.i32, label %647, label %644 + +644: ; preds = %638 + %645 = load i32, ptr %642, align 4 + %646 = add nsw i32 %645, -1 + store i32 %646, ptr %642, align 4 + br label %649 + +647: ; preds = %638 + %648 = atomicrmw volatile add ptr %642, i32 -1 acq_rel, align 4 + br label %649 + +649: ; preds = %647, %644 + %.0.i.i.i.i.i.i = phi i32 [ %645, %644 ], [ %648, %647 ] + %650 = icmp eq i32 %.0.i.i.i.i.i.i, 1 + br i1 %650, label %_ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE24_M_release_last_use_coldEv.exit.sink.split.i.i.i.i, label %_ZNSt10shared_ptrI13TextureObjectED2Ev.exit + +_ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE24_M_release_last_use_coldEv.exit.sink.split.i.i.i.i: ; preds = %649, %625 + %651 = load ptr, ptr %619, align 8 + %652 = getelementptr inbounds i8, ptr %651, i64 24 + %653 = load ptr, ptr %652, align 8 + call void %653(ptr noundef nonnull align 8 dereferenceable(16) %619) #27 br label %_ZNSt10shared_ptrI13TextureObjectED2Ev.exit -_ZNSt10shared_ptrI13TextureObjectED2Ev.exit: ; preds = %617, %635, %648, %_ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE24_M_release_last_use_coldEv.exit.sink.split.i.i.i.i - %653 = load ptr, ptr %41, align 8 - %654 = load ptr, ptr %42, align 8 - %.not.i33 = icmp eq ptr %653, %654 - br i1 %.not.i33, label %669, label %655 - -655: ; preds = %_ZNSt10shared_ptrI13TextureObjectED2Ev.exit - %656 = load ptr, ptr %17, align 8 - store ptr %656, ptr %653, align 8 - %657 = getelementptr inbounds i8, ptr %653, i64 8 - %658 = load ptr, ptr %39, align 8 - store ptr %658, ptr %657, align 8 - %.not.i.i.i.i.i.i34 = icmp eq ptr %658, null - br i1 %.not.i.i.i.i.i.i34, label %_ZNSt16allocator_traitsISaISt10shared_ptrI6QImageEEE9constructIS2_JRKS2_EEEvRS3_PT_DpOT0_.exit.i, label %659 - -659: ; preds = %655 - %660 = getelementptr inbounds i8, ptr %658, i64 8 - %661 = load i8, ptr @__libc_single_threaded, align 1 - %.not.i.i.i.i.i.i.i35 = icmp eq i8 %661, 0 - br i1 %.not.i.i.i.i.i.i.i35, label %665, label %662 - -662: ; preds = %659 - %663 = load i32, ptr %660, align 4 - %664 = add nsw i32 %663, 1 - store i32 %664, ptr %660, align 4 +_ZNSt10shared_ptrI13TextureObjectED2Ev.exit: ; preds = %618, %636, %649, %_ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE24_M_release_last_use_coldEv.exit.sink.split.i.i.i.i + %654 = load ptr, ptr %41, align 8 + %655 = load ptr, ptr %42, align 8 + %.not.i33 = icmp eq ptr %654, %655 + br i1 %.not.i33, label %670, label %656 + +656: ; preds = %_ZNSt10shared_ptrI13TextureObjectED2Ev.exit + %657 = load ptr, ptr %17, align 8 + store ptr %657, ptr %654, align 8 + %658 = getelementptr inbounds i8, ptr %654, i64 8 + %659 = load ptr, ptr %39, align 8 + store ptr %659, ptr %658, align 8 + %.not.i.i.i.i.i.i34 = icmp eq ptr %659, null + br i1 %.not.i.i.i.i.i.i34, label %_ZNSt16allocator_traitsISaISt10shared_ptrI6QImageEEE9constructIS2_JRKS2_EEEvRS3_PT_DpOT0_.exit.i, label %660 + +660: ; preds = %656 + %661 = getelementptr inbounds i8, ptr %659, i64 8 + %662 = load i8, ptr @__libc_single_threaded, align 1 + %.not.i.i.i.i.i.i.i35 = icmp eq i8 %662, 0 + br i1 %.not.i.i.i.i.i.i.i35, label %666, label %663 + +663: ; preds = %660 + %664 = load i32, ptr %661, align 4 + %665 = add nsw i32 %664, 1 + store i32 %665, ptr %661, align 4 br label %_ZNSt16allocator_traitsISaISt10shared_ptrI6QImageEEE9constructIS2_JRKS2_EEEvRS3_PT_DpOT0_.exit.i -665: ; preds = %659 - %666 = atomicrmw volatile add ptr %660, i32 1 acq_rel, align 4 +666: ; preds = %660 + %667 = atomicrmw volatile add ptr %661, i32 1 acq_rel, align 4 br label %_ZNSt16allocator_traitsISaISt10shared_ptrI6QImageEEE9constructIS2_JRKS2_EEEvRS3_PT_DpOT0_.exit.i -_ZNSt16allocator_traitsISaISt10shared_ptrI6QImageEEE9constructIS2_JRKS2_EEEvRS3_PT_DpOT0_.exit.i: ; preds = %665, %662, %655 - %667 = load ptr, ptr %41, align 8 - %668 = getelementptr inbounds i8, ptr %667, i64 16 - store ptr %668, ptr %41, align 8 +_ZNSt16allocator_traitsISaISt10shared_ptrI6QImageEEE9constructIS2_JRKS2_EEEvRS3_PT_DpOT0_.exit.i: ; preds = %666, %663, %656 + %668 = load ptr, ptr %41, align 8 + %669 = getelementptr inbounds i8, ptr %668, i64 16 + store ptr %669, ptr %41, align 8 br label %_ZNSt6vectorISt10shared_ptrI6QImageESaIS2_EE9push_backERKS2_.exit -669: ; preds = %_ZNSt10shared_ptrI13TextureObjectED2Ev.exit - invoke void @_ZNSt6vectorISt10shared_ptrI6QImageESaIS2_EE17_M_realloc_insertIJRKS2_EEEvN9__gnu_cxx17__normal_iteratorIPS2_S4_EEDpOT_(ptr noundef nonnull align 8 dereferenceable(24) %0, ptr %653, ptr noundef nonnull align 8 dereferenceable(16) %17) - to label %_ZNSt6vectorISt10shared_ptrI6QImageESaIS2_EE9push_backERKS2_.exit unwind label %707 - -_ZNSt6vectorISt10shared_ptrI6QImageESaIS2_EE9push_backERKS2_.exit: ; preds = %_ZNSt16allocator_traitsISaISt10shared_ptrI6QImageEEE9constructIS2_JRKS2_EEEvRS3_PT_DpOT0_.exit.i, %669 - %670 = load ptr, ptr %39, align 8 - %.not.i.i.i37 = icmp eq ptr %670, null - br i1 %.not.i.i.i37, label %_ZNSt10shared_ptrI6QImageED2Ev.exit, label %671 - -671: ; preds = %_ZNSt6vectorISt10shared_ptrI6QImageESaIS2_EE9push_backERKS2_.exit - %672 = getelementptr inbounds i8, ptr %670, i64 8 - %673 = load atomic i64, ptr %672 acquire, align 8 - %674 = icmp eq i64 %673, 4294967297 - %675 = trunc i64 %673 to i32 - br i1 %674, label %676, label %681 - -676: ; preds = %671 - store i32 0, ptr %672, align 8 - %677 = getelementptr inbounds i8, ptr %670, i64 12 - store i32 0, ptr %677, align 4 - %678 = load ptr, ptr %670, align 8 - %679 = getelementptr inbounds i8, ptr %678, i64 16 - %680 = load ptr, ptr %679, align 8 - call void %680(ptr noundef nonnull align 8 dereferenceable(16) %670) #27 +670: ; preds = %_ZNSt10shared_ptrI13TextureObjectED2Ev.exit + invoke void @_ZNSt6vectorISt10shared_ptrI6QImageESaIS2_EE17_M_realloc_insertIJRKS2_EEEvN9__gnu_cxx17__normal_iteratorIPS2_S4_EEDpOT_(ptr noundef nonnull align 8 dereferenceable(24) %0, ptr %654, ptr noundef nonnull align 8 dereferenceable(16) %17) + to label %_ZNSt6vectorISt10shared_ptrI6QImageESaIS2_EE9push_backERKS2_.exit unwind label %708 + +_ZNSt6vectorISt10shared_ptrI6QImageESaIS2_EE9push_backERKS2_.exit: ; preds = %_ZNSt16allocator_traitsISaISt10shared_ptrI6QImageEEE9constructIS2_JRKS2_EEEvRS3_PT_DpOT0_.exit.i, %670 + %671 = load ptr, ptr %39, align 8 + %.not.i.i.i37 = icmp eq ptr %671, null + br i1 %.not.i.i.i37, label %_ZNSt10shared_ptrI6QImageED2Ev.exit, label %672 + +672: ; preds = %_ZNSt6vectorISt10shared_ptrI6QImageESaIS2_EE9push_backERKS2_.exit + %673 = getelementptr inbounds i8, ptr %671, i64 8 + %674 = load atomic i64, ptr %673 acquire, align 8 + %675 = icmp eq i64 %674, 4294967297 + %676 = trunc i64 %674 to i32 + br i1 %675, label %677, label %682 + +677: ; preds = %672 + store i32 0, ptr %673, align 8 + %678 = getelementptr inbounds i8, ptr %671, i64 12 + store i32 0, ptr %678, align 4 + %679 = load ptr, ptr %671, align 8 + %680 = getelementptr inbounds i8, ptr %679, i64 16 + %681 = load ptr, ptr %680, align 8 + call void %681(ptr noundef nonnull align 8 dereferenceable(16) %671) #27 br label %_ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE24_M_release_last_use_coldEv.exit.sink.split.i.i.i.i42 -681: ; preds = %671 - %682 = load i8, ptr @__libc_single_threaded, align 1 - %.not.i.i.i.i38 = icmp eq i8 %682, 0 - br i1 %.not.i.i.i.i38, label %685, label %683 - -683: ; preds = %681 - %684 = add nsw i32 %675, -1 - store i32 %684, ptr %672, align 4 - br label %687 - -685: ; preds = %681 - %686 = atomicrmw volatile add ptr %672, i32 -1 acq_rel, align 4 - br label %687 - -687: ; preds = %685, %683 - %.0.i.i.i.i39 = phi i32 [ %675, %683 ], [ %686, %685 ] - %688 = icmp eq i32 %.0.i.i.i.i39, 1 - br i1 %688, label %689, label %_ZNSt10shared_ptrI6QImageED2Ev.exit - -689: ; preds = %687 - %690 = load ptr, ptr %670, align 8 - %691 = getelementptr inbounds i8, ptr %690, i64 16 - %692 = load ptr, ptr %691, align 8 - call void %692(ptr noundef nonnull align 8 dereferenceable(16) %670) #27 - %693 = getelementptr inbounds i8, ptr %670, i64 12 - %694 = load i8, ptr @__libc_single_threaded, align 1 - %.not.i.i.i.i.i.i40 = icmp eq i8 %694, 0 - br i1 %.not.i.i.i.i.i.i40, label %698, label %695 - -695: ; preds = %689 - %696 = load i32, ptr %693, align 4 - %697 = add nsw i32 %696, -1 - store i32 %697, ptr %693, align 4 - br label %700 - -698: ; preds = %689 - %699 = atomicrmw volatile add ptr %693, i32 -1 acq_rel, align 4 - br label %700 - -700: ; preds = %698, %695 - %.0.i.i.i.i.i.i41 = phi i32 [ %696, %695 ], [ %699, %698 ] - %701 = icmp eq i32 %.0.i.i.i.i.i.i41, 1 - br i1 %701, label %_ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE24_M_release_last_use_coldEv.exit.sink.split.i.i.i.i42, label %_ZNSt10shared_ptrI6QImageED2Ev.exit - -_ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE24_M_release_last_use_coldEv.exit.sink.split.i.i.i.i42: ; preds = %700, %676 - %702 = load ptr, ptr %670, align 8 - %703 = getelementptr inbounds i8, ptr %702, i64 24 - %704 = load ptr, ptr %703, align 8 - call void %704(ptr noundef nonnull align 8 dereferenceable(16) %670) #27 +682: ; preds = %672 + %683 = load i8, ptr @__libc_single_threaded, align 1 + %.not.i.i.i.i38 = icmp eq i8 %683, 0 + br i1 %.not.i.i.i.i38, label %686, label %684 + +684: ; preds = %682 + %685 = add nsw i32 %676, -1 + store i32 %685, ptr %673, align 4 + br label %688 + +686: ; preds = %682 + %687 = atomicrmw volatile add ptr %673, i32 -1 acq_rel, align 4 + br label %688 + +688: ; preds = %686, %684 + %.0.i.i.i.i39 = phi i32 [ %676, %684 ], [ %687, %686 ] + %689 = icmp eq i32 %.0.i.i.i.i39, 1 + br i1 %689, label %690, label %_ZNSt10shared_ptrI6QImageED2Ev.exit + +690: ; preds = %688 + %691 = load ptr, ptr %671, align 8 + %692 = getelementptr inbounds i8, ptr %691, i64 16 + %693 = load ptr, ptr %692, align 8 + call void %693(ptr noundef nonnull align 8 dereferenceable(16) %671) #27 + %694 = getelementptr inbounds i8, ptr %671, i64 12 + %695 = load i8, ptr @__libc_single_threaded, align 1 + %.not.i.i.i.i.i.i40 = icmp eq i8 %695, 0 + br i1 %.not.i.i.i.i.i.i40, label %699, label %696 + +696: ; preds = %690 + %697 = load i32, ptr %694, align 4 + %698 = add nsw i32 %697, -1 + store i32 %698, ptr %694, align 4 + br label %701 + +699: ; preds = %690 + %700 = atomicrmw volatile add ptr %694, i32 -1 acq_rel, align 4 + br label %701 + +701: ; preds = %699, %696 + %.0.i.i.i.i.i.i41 = phi i32 [ %697, %696 ], [ %700, %699 ] + %702 = icmp eq i32 %.0.i.i.i.i.i.i41, 1 + br i1 %702, label %_ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE24_M_release_last_use_coldEv.exit.sink.split.i.i.i.i42, label %_ZNSt10shared_ptrI6QImageED2Ev.exit + +_ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE24_M_release_last_use_coldEv.exit.sink.split.i.i.i.i42: ; preds = %701, %677 + %703 = load ptr, ptr %671, align 8 + %704 = getelementptr inbounds i8, ptr %703, i64 24 + %705 = load ptr, ptr %704, align 8 + call void %705(ptr noundef nonnull align 8 dereferenceable(16) %671) #27 br label %_ZNSt10shared_ptrI6QImageED2Ev.exit -_ZNSt10shared_ptrI6QImageED2Ev.exit: ; preds = %_ZNSt6vectorISt10shared_ptrI6QImageESaIS2_EE9push_backERKS2_.exit, %687, %700, %_ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE24_M_release_last_use_coldEv.exit.sink.split.i.i.i.i42 +_ZNSt10shared_ptrI6QImageED2Ev.exit: ; preds = %_ZNSt6vectorISt10shared_ptrI6QImageESaIS2_EE9push_backERKS2_.exit, %688, %701, %_ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE24_M_release_last_use_coldEv.exit.sink.split.i.i.i.i42 %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 %exitcond.not = icmp eq i64 %indvars.iv.next, %wide.trip.count br i1 %exitcond.not, label %._crit_edge, label %43, !llvm.loop !33 -705: ; preds = %.noexc28, %.noexc27, %.noexc26, %.noexc25, %.noexc24, %"_ZSt4sortIN9__gnu_cxx17__normal_iteratorIPP8MeshFaceSt6vectorIS3_SaIS3_EEEEZL13RenderTextureRS7_R4MeshSt10shared_ptrI13TextureObjectEb10RenderModeiiE3$_0EvT_SH_T0_.exit.i", %_ZNSt10shared_ptrI13TextureObjectEC2ERKS1_.exit - %706 = landingpad { ptr, i32 } +706: ; preds = %.noexc28, %.noexc27, %.noexc26, %.noexc25, %.noexc24, %"_ZSt4sortIN9__gnu_cxx17__normal_iteratorIPP8MeshFaceSt6vectorIS3_SaIS3_EEEEZL13RenderTextureRS7_R4MeshSt10shared_ptrI13TextureObjectEb10RenderModeiiE3$_0EvT_SH_T0_.exit.i", %_ZNSt10shared_ptrI13TextureObjectEC2ERKS1_.exit + %707 = landingpad { ptr, i32 } cleanup br label %.body -.body: ; preds = %.body.i, %616, %705 - %eh.lpad-body = phi { ptr, i32 } [ %706, %705 ], [ %.pn82.i, %616 ], [ %.pn82.i, %.body.i ] +.body: ; preds = %.body.i, %617, %706 + %eh.lpad-body = phi { ptr, i32 } [ %707, %706 ], [ %.pn82.i, %617 ], [ %.pn82.i, %.body.i ] call void @_ZNSt10shared_ptrI13TextureObjectED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %18) #27 - br label %717 + br label %718 -707: ; preds = %669 - %708 = landingpad { ptr, i32 } +708: ; preds = %670 + %709 = landingpad { ptr, i32 } cleanup call void @_ZNSt10shared_ptrI6QImageED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %17) #27 - br label %717 + br label %718 ._crit_edge: ; preds = %_ZNSt10shared_ptrI6QImageED2Ev.exit, %33 - %709 = load ptr, ptr %16, align 8 - %710 = getelementptr inbounds i8, ptr %16, i64 8 - %711 = load ptr, ptr %710, align 8 - %.not4.i.i.i.i = icmp eq ptr %709, %711 + %710 = load ptr, ptr %16, align 8 + %711 = getelementptr inbounds i8, ptr %16, i64 8 + %712 = load ptr, ptr %711, align 8 + %.not4.i.i.i.i = icmp eq ptr %710, %712 br i1 %.not4.i.i.i.i, label %_ZSt8_DestroyIPSt6vectorIP8MeshFaceSaIS2_EES4_EvT_S6_RSaIT0_E.exit.i, label %.lr.ph.i.i.i.i .lr.ph.i.i.i.i: ; preds = %._crit_edge, %_ZSt8_DestroyISt6vectorIP8MeshFaceSaIS2_EEEvPT_.exit.i.i.i.i - %.05.i.i.i.i = phi ptr [ %714, %_ZSt8_DestroyISt6vectorIP8MeshFaceSaIS2_EEEvPT_.exit.i.i.i.i ], [ %709, %._crit_edge ] - %712 = load ptr, ptr %.05.i.i.i.i, align 8 - %.not.i.i.i.i.i.i.i.i = icmp eq ptr %712, null - br i1 %.not.i.i.i.i.i.i.i.i, label %_ZSt8_DestroyISt6vectorIP8MeshFaceSaIS2_EEEvPT_.exit.i.i.i.i, label %713 + %.05.i.i.i.i = phi ptr [ %715, %_ZSt8_DestroyISt6vectorIP8MeshFaceSaIS2_EEEvPT_.exit.i.i.i.i ], [ %710, %._crit_edge ] + %713 = load ptr, ptr %.05.i.i.i.i, align 8 + %.not.i.i.i.i.i.i.i.i = icmp eq ptr %713, null + br i1 %.not.i.i.i.i.i.i.i.i, label %_ZSt8_DestroyISt6vectorIP8MeshFaceSaIS2_EEEvPT_.exit.i.i.i.i, label %714 -713: ; preds = %.lr.ph.i.i.i.i - call void @_ZdlPv(ptr noundef nonnull %712) #23 +714: ; preds = %.lr.ph.i.i.i.i + call void @_ZdlPv(ptr noundef nonnull %713) #23 br label %_ZSt8_DestroyISt6vectorIP8MeshFaceSaIS2_EEEvPT_.exit.i.i.i.i -_ZSt8_DestroyISt6vectorIP8MeshFaceSaIS2_EEEvPT_.exit.i.i.i.i: ; preds = %713, %.lr.ph.i.i.i.i - %714 = getelementptr inbounds i8, ptr %.05.i.i.i.i, i64 24 - %.not.i.i.i.i43 = icmp eq ptr %714, %711 +_ZSt8_DestroyISt6vectorIP8MeshFaceSaIS2_EEEvPT_.exit.i.i.i.i: ; preds = %714, %.lr.ph.i.i.i.i + %715 = getelementptr inbounds i8, ptr %.05.i.i.i.i, i64 24 + %.not.i.i.i.i43 = icmp eq ptr %715, %712 br i1 %.not.i.i.i.i43, label %_ZSt8_DestroyIPSt6vectorIP8MeshFaceSaIS2_EES4_EvT_S6_RSaIT0_E.exitthread-pre-split.i, label %.lr.ph.i.i.i.i, !llvm.loop !5 _ZSt8_DestroyIPSt6vectorIP8MeshFaceSaIS2_EES4_EvT_S6_RSaIT0_E.exitthread-pre-split.i: ; preds = %_ZSt8_DestroyISt6vectorIP8MeshFaceSaIS2_EEEvPT_.exit.i.i.i.i @@ -2248,24 +2248,24 @@ _ZSt8_DestroyIPSt6vectorIP8MeshFaceSaIS2_EES4_EvT_S6_RSaIT0_E.exitthread-pre-spl br label %_ZSt8_DestroyIPSt6vectorIP8MeshFaceSaIS2_EES4_EvT_S6_RSaIT0_E.exit.i _ZSt8_DestroyIPSt6vectorIP8MeshFaceSaIS2_EES4_EvT_S6_RSaIT0_E.exit.i: ; preds = %_ZSt8_DestroyIPSt6vectorIP8MeshFaceSaIS2_EES4_EvT_S6_RSaIT0_E.exitthread-pre-split.i, %._crit_edge - %715 = phi ptr [ %.pr.i, %_ZSt8_DestroyIPSt6vectorIP8MeshFaceSaIS2_EES4_EvT_S6_RSaIT0_E.exitthread-pre-split.i ], [ %709, %._crit_edge ] - %.not.i.i.i44 = icmp eq ptr %715, null - br i1 %.not.i.i.i44, label %_ZNSt6vectorIS_IP8MeshFaceSaIS1_EESaIS3_EED2Ev.exit, label %716 + %716 = phi ptr [ %.pr.i, %_ZSt8_DestroyIPSt6vectorIP8MeshFaceSaIS2_EES4_EvT_S6_RSaIT0_E.exitthread-pre-split.i ], [ %710, %._crit_edge ] + %.not.i.i.i44 = icmp eq ptr %716, null + br i1 %.not.i.i.i44, label %_ZNSt6vectorIS_IP8MeshFaceSaIS1_EESaIS3_EED2Ev.exit, label %717 -716: ; preds = %_ZSt8_DestroyIPSt6vectorIP8MeshFaceSaIS2_EES4_EvT_S6_RSaIT0_E.exit.i - call void @_ZdlPv(ptr noundef nonnull %715) #23 +717: ; preds = %_ZSt8_DestroyIPSt6vectorIP8MeshFaceSaIS2_EES4_EvT_S6_RSaIT0_E.exit.i + call void @_ZdlPv(ptr noundef nonnull %716) #23 br label %_ZNSt6vectorIS_IP8MeshFaceSaIS1_EESaIS3_EED2Ev.exit -_ZNSt6vectorIS_IP8MeshFaceSaIS1_EESaIS3_EED2Ev.exit: ; preds = %_ZSt8_DestroyIPSt6vectorIP8MeshFaceSaIS2_EES4_EvT_S6_RSaIT0_E.exit.i, %716 +_ZNSt6vectorIS_IP8MeshFaceSaIS1_EESaIS3_EED2Ev.exit: ; preds = %_ZSt8_DestroyIPSt6vectorIP8MeshFaceSaIS2_EES4_EvT_S6_RSaIT0_E.exit.i, %717 ret void -717: ; preds = %707, %.body - %.pn = phi { ptr, i32 } [ %708, %707 ], [ %eh.lpad-body, %.body ] +718: ; preds = %708, %.body + %.pn = phi { ptr, i32 } [ %709, %708 ], [ %eh.lpad-body, %.body ] call void @_ZNSt6vectorISt10shared_ptrI6QImageESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %0) #27 - br label %718 + br label %719 -718: ; preds = %717, %31 - %.pn.pn = phi { ptr, i32 } [ %.pn, %717 ], [ %32, %31 ] +719: ; preds = %718, %31 + %.pn.pn = phi { ptr, i32 } [ %.pn, %718 ], [ %32, %31 ] call void @_ZNSt6vectorIS_IP8MeshFaceSaIS1_EESaIS3_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %16) #27 resume { ptr, i32 } %.pn.pn } diff --git a/bench/miniaudio/optimized/unity.c.ll b/bench/miniaudio/optimized/unity.c.ll index 3735c38e0d7..4177b946817 100644 --- a/bench/miniaudio/optimized/unity.c.ll +++ b/bench/miniaudio/optimized/unity.c.ll @@ -3240,8 +3240,9 @@ for.cond3.preheader: ; preds = %for.cond.preheader, %div.i2733 = lshr i32 %0, 5 %rem.i34 = and i32 %0, 31 %cmp.i.not35 = icmp ne i32 %rem.i34, 0 - %add.i36.neg = sext i1 %cmp.i.not35 to i32 - %cmp438.not = icmp eq i32 %div.i2733, %add.i36.neg + %add.i36 = zext i1 %cmp.i.not35 to i32 + %1 = or i32 %div.i2733, %add.i36 + %cmp438.not = icmp eq i32 %1, 0 br i1 %cmp438.not, label %for.end34, label %for.cond6.preheader for.cond6.preheader: ; preds = %for.cond3.preheader, %for.inc @@ -3249,17 +3250,17 @@ for.cond6.preheader: ; preds = %for.cond3.preheader br label %for.cond6 for.cond6: ; preds = %for.cond6.preheader, %ma_ffs_32.exit - %1 = load ptr, ptr %pAllocator, align 8 - %arrayidx = getelementptr inbounds %struct.ma_slot_allocator_group, ptr %1, i64 %indvars.iv - %2 = load atomic i32, ptr %arrayidx seq_cst, align 4 - %cmp7 = icmp eq i32 %2, -1 + %2 = load ptr, ptr %pAllocator, align 8 + %arrayidx = getelementptr inbounds %struct.ma_slot_allocator_group, ptr %2, i64 %indvars.iv + %3 = load atomic i32, ptr %arrayidx seq_cst, align 4 + %cmp7 = icmp eq i32 %3, -1 br i1 %cmp7, label %for.inc, label %for.body.i for.body.i: ; preds = %for.cond6, %for.inc.i %i.05.i = phi i32 [ %add.i29, %for.inc.i ], [ 0, %for.cond6 ] %shl.i = shl nuw i32 1, %i.05.i - %3 = and i32 %shl.i, %2 - %cmp1.not.i.not = icmp eq i32 %3, 0 + %4 = and i32 %shl.i, %3 + %cmp1.not.i.not = icmp eq i32 %4, 0 br i1 %cmp1.not.i.not, label %ma_ffs_32.exit, label %for.inc.i for.inc.i: ; preds = %for.body.i @@ -3270,34 +3271,34 @@ for.inc.i: ; preds = %for.body.i ma_ffs_32.exit: ; preds = %for.body.i, %for.inc.i %i.0.lcssa.i = phi i32 [ 32, %for.inc.i ], [ %i.05.i, %for.body.i ] %shl = shl nuw i32 1, %i.0.lcssa.i - %or = or i32 %shl, %2 - %4 = load ptr, ptr %pAllocator, align 8 - %arrayidx13 = getelementptr inbounds %struct.ma_slot_allocator_group, ptr %4, i64 %indvars.iv - %5 = cmpxchg volatile ptr %arrayidx13, i32 %2, i32 %or seq_cst seq_cst, align 4 - %cmp16 = extractvalue { i32, i1 } %5, 1 + %or = or i32 %shl, %3 + %5 = load ptr, ptr %pAllocator, align 8 + %arrayidx13 = getelementptr inbounds %struct.ma_slot_allocator_group, ptr %5, i64 %indvars.iv + %6 = cmpxchg volatile ptr %arrayidx13, i32 %3, i32 %or seq_cst seq_cst, align 4 + %cmp16 = extractvalue { i32, i1 } %6, 1 br i1 %cmp16, label %if.then17, label %for.cond6 if.then17: ; preds = %ma_ffs_32.exit - %6 = trunc i64 %indvars.iv to i32 - %7 = atomicrmw add ptr %count35, i32 1 seq_cst, align 8 - %shl19 = shl i32 %6, 5 + %7 = trunc i64 %indvars.iv to i32 + %8 = atomicrmw add ptr %count35, i32 1 seq_cst, align 8 + %shl19 = shl i32 %7, 5 %add = add i32 %i.0.lcssa.i, %shl19 - %8 = load i32, ptr %capacity.i, align 4 - %cmp20.not = icmp ult i32 %add, %8 + %9 = load i32, ptr %capacity.i, align 4 + %cmp20.not = icmp ult i32 %add, %9 br i1 %cmp20.not, label %if.end22, label %return if.end22: ; preds = %if.then17 %pSlots = getelementptr inbounds i8, ptr %pAllocator, i64 8 - %9 = load ptr, ptr %pSlots, align 8 + %10 = load ptr, ptr %pSlots, align 8 %idxprom23 = zext i32 %add to i64 - %arrayidx24 = getelementptr inbounds i32, ptr %9, i64 %idxprom23 - %10 = load i32, ptr %arrayidx24, align 4 - %add25 = add i32 %10, 1 + %arrayidx24 = getelementptr inbounds i32, ptr %10, i64 %idxprom23 + %11 = load i32, ptr %arrayidx24, align 4 + %add25 = add i32 %11, 1 store i32 %add25, ptr %arrayidx24, align 4 - %11 = load ptr, ptr %pSlots, align 8 - %arrayidx28 = getelementptr inbounds i32, ptr %11, i64 %idxprom23 - %12 = load i32, ptr %arrayidx28, align 4 - %conv = zext i32 %12 to i64 + %12 = load ptr, ptr %pSlots, align 8 + %arrayidx28 = getelementptr inbounds i32, ptr %12, i64 %idxprom23 + %13 = load i32, ptr %arrayidx28, align 4 + %conv = zext i32 %13 to i64 %shl29 = shl nuw i64 %conv, 32 %or31 = or disjoint i64 %shl29, %idxprom23 store i64 %or31, ptr %pSlot, align 8 @@ -3305,20 +3306,20 @@ if.end22: ; preds = %if.then17 for.inc: ; preds = %for.cond6 %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 - %13 = load i32, ptr %capacity.i, align 4 - %div.i27 = lshr i32 %13, 5 - %rem.i = and i32 %13, 31 + %14 = load i32, ptr %capacity.i, align 4 + %div.i27 = lshr i32 %14, 5 + %rem.i = and i32 %14, 31 %cmp.i.not = icmp ne i32 %rem.i, 0 %add.i = zext i1 %cmp.i.not to i32 %spec.select = add nuw nsw i32 %div.i27, %add.i - %14 = zext nneg i32 %spec.select to i64 - %cmp4 = icmp ult i64 %indvars.iv.next, %14 + %15 = zext nneg i32 %spec.select to i64 + %cmp4 = icmp ult i64 %indvars.iv.next, %15 br i1 %cmp4, label %for.cond6.preheader, label %for.end34, !llvm.loop !23 for.end34: ; preds = %for.inc, %for.cond3.preheader - %.lcssa = phi i32 [ %0, %for.cond3.preheader ], [ %13, %for.inc ] - %15 = load i32, ptr %count35, align 8 - %cmp37 = icmp ult i32 %15, %.lcssa + %.lcssa = phi i32 [ %0, %for.cond3.preheader ], [ %14, %for.inc ] + %16 = load i32, ptr %count35, align 8 + %cmp37 = icmp ult i32 %16, %.lcssa br i1 %cmp37, label %if.then39, label %return if.then39: ; preds = %for.end34 @@ -3601,8 +3602,9 @@ for.cond3.preheader.i: ; preds = %if.then39.i, %if.en %div.i2733.i = lshr i32 %9, 5 %rem.i34.i = and i32 %9, 31 %cmp.i.not35.i = icmp ne i32 %rem.i34.i, 0 - %add.i36.neg.i = sext i1 %cmp.i.not35.i to i32 - %cmp438.not.i = icmp eq i32 %div.i2733.i, %add.i36.neg.i + %add.i36.i = zext i1 %cmp.i.not35.i to i32 + %10 = or i32 %div.i2733.i, %add.i36.i + %cmp438.not.i = icmp eq i32 %10, 0 br i1 %cmp438.not.i, label %for.end34.i, label %for.cond6.preheader.i for.cond6.preheader.i: ; preds = %for.cond3.preheader.i, %for.inc.i @@ -3610,17 +3612,17 @@ for.cond6.preheader.i: ; preds = %for.cond3.preheader br label %for.cond6.i for.cond6.i: ; preds = %ma_ffs_32.exit.i, %for.cond6.preheader.i - %10 = load ptr, ptr %allocator, align 8 - %arrayidx.i = getelementptr inbounds %struct.ma_slot_allocator_group, ptr %10, i64 %indvars.iv.i - %11 = load atomic i32, ptr %arrayidx.i seq_cst, align 4 - %cmp7.i = icmp eq i32 %11, -1 + %11 = load ptr, ptr %allocator, align 8 + %arrayidx.i = getelementptr inbounds %struct.ma_slot_allocator_group, ptr %11, i64 %indvars.iv.i + %12 = load atomic i32, ptr %arrayidx.i seq_cst, align 4 + %cmp7.i = icmp eq i32 %12, -1 br i1 %cmp7.i, label %for.inc.i, label %for.body.i.i for.body.i.i: ; preds = %for.cond6.i, %for.inc.i.i %i.05.i.i = phi i32 [ %add.i29.i, %for.inc.i.i ], [ 0, %for.cond6.i ] %shl.i.i = shl nuw i32 1, %i.05.i.i - %12 = and i32 %shl.i.i, %11 - %cmp1.not.i.not.i = icmp eq i32 %12, 0 + %13 = and i32 %shl.i.i, %12 + %cmp1.not.i.not.i = icmp eq i32 %13, 0 br i1 %cmp1.not.i.not.i, label %ma_ffs_32.exit.i, label %for.inc.i.i for.inc.i.i: ; preds = %for.body.i.i @@ -3631,33 +3633,33 @@ for.inc.i.i: ; preds = %for.body.i.i ma_ffs_32.exit.i: ; preds = %for.body.i.i, %for.inc.i.i %i.0.lcssa.i.i = phi i32 [ 32, %for.inc.i.i ], [ %i.05.i.i, %for.body.i.i ] %shl.i = shl nuw i32 1, %i.0.lcssa.i.i - %or.i = or i32 %shl.i, %11 - %13 = load ptr, ptr %allocator, align 8 - %arrayidx13.i = getelementptr inbounds %struct.ma_slot_allocator_group, ptr %13, i64 %indvars.iv.i - %14 = cmpxchg volatile ptr %arrayidx13.i, i32 %11, i32 %or.i seq_cst seq_cst, align 4 - %cmp16.i = extractvalue { i32, i1 } %14, 1 + %or.i = or i32 %shl.i, %12 + %14 = load ptr, ptr %allocator, align 8 + %arrayidx13.i = getelementptr inbounds %struct.ma_slot_allocator_group, ptr %14, i64 %indvars.iv.i + %15 = cmpxchg volatile ptr %arrayidx13.i, i32 %12, i32 %or.i seq_cst seq_cst, align 4 + %cmp16.i = extractvalue { i32, i1 } %15, 1 br i1 %cmp16.i, label %if.then17.i, label %for.cond6.i if.then17.i: ; preds = %ma_ffs_32.exit.i - %15 = trunc i64 %indvars.iv.i to i32 - %16 = atomicrmw add ptr %count35.i, i32 1 seq_cst, align 8 - %shl19.i = shl i32 %15, 5 + %16 = trunc i64 %indvars.iv.i to i32 + %17 = atomicrmw add ptr %count35.i, i32 1 seq_cst, align 8 + %shl19.i = shl i32 %16, 5 %add.i = add i32 %i.0.lcssa.i.i, %shl19.i - %17 = load i32, ptr %capacity8.i, align 4 - %cmp20.not.i = icmp ult i32 %add.i, %17 + %18 = load i32, ptr %capacity8.i, align 4 + %cmp20.not.i = icmp ult i32 %add.i, %18 br i1 %cmp20.not.i, label %if.end22.i, label %ma_slot_allocator_alloc.exit if.end22.i: ; preds = %if.then17.i - %18 = load ptr, ptr %pSlots.i, align 8 + %19 = load ptr, ptr %pSlots.i, align 8 %idxprom23.i = zext i32 %add.i to i64 - %arrayidx24.i = getelementptr inbounds i32, ptr %18, i64 %idxprom23.i - %19 = load i32, ptr %arrayidx24.i, align 4 - %add25.i = add i32 %19, 1 + %arrayidx24.i = getelementptr inbounds i32, ptr %19, i64 %idxprom23.i + %20 = load i32, ptr %arrayidx24.i, align 4 + %add25.i = add i32 %20, 1 store i32 %add25.i, ptr %arrayidx24.i, align 4 - %20 = load ptr, ptr %pSlots.i, align 8 - %arrayidx28.i = getelementptr inbounds i32, ptr %20, i64 %idxprom23.i - %21 = load i32, ptr %arrayidx28.i, align 4 - %conv.i37 = zext i32 %21 to i64 + %21 = load ptr, ptr %pSlots.i, align 8 + %arrayidx28.i = getelementptr inbounds i32, ptr %21, i64 %idxprom23.i + %22 = load i32, ptr %arrayidx28.i, align 4 + %conv.i37 = zext i32 %22 to i64 %shl29.i = shl nuw i64 %conv.i37, 32 %or31.i = or disjoint i64 %shl29.i, %idxprom23.i store i64 %or31.i, ptr %head, align 8 @@ -3665,20 +3667,20 @@ if.end22.i: ; preds = %if.then17.i for.inc.i: ; preds = %for.cond6.i %indvars.iv.next.i = add nuw nsw i64 %indvars.iv.i, 1 - %22 = load i32, ptr %capacity8.i, align 4 - %div.i27.i = lshr i32 %22, 5 - %rem.i.i = and i32 %22, 31 + %23 = load i32, ptr %capacity8.i, align 4 + %div.i27.i = lshr i32 %23, 5 + %rem.i.i = and i32 %23, 31 %cmp.i.not.i = icmp ne i32 %rem.i.i, 0 %add.i.i = zext i1 %cmp.i.not.i to i32 %spec.select.i = add nuw nsw i32 %div.i27.i, %add.i.i - %23 = zext nneg i32 %spec.select.i to i64 - %cmp4.i = icmp ult i64 %indvars.iv.next.i, %23 + %24 = zext nneg i32 %spec.select.i to i64 + %cmp4.i = icmp ult i64 %indvars.iv.next.i, %24 br i1 %cmp4.i, label %for.cond6.preheader.i, label %for.end34.i, !llvm.loop !23 for.end34.i: ; preds = %for.inc.i, %for.cond3.preheader.i - %.lcssa.i = phi i32 [ %9, %for.cond3.preheader.i ], [ %22, %for.inc.i ] - %24 = load i32, ptr %count35.i, align 8 - %cmp37.i = icmp ult i32 %24, %.lcssa.i + %.lcssa.i = phi i32 [ %9, %for.cond3.preheader.i ], [ %23, %for.inc.i ] + %25 = load i32, ptr %count35.i, align 8 + %cmp37.i = icmp ult i32 %25, %.lcssa.i br i1 %cmp37.i, label %if.then39.i, label %ma_slot_allocator_alloc.exit if.then39.i: ; preds = %for.end34.i @@ -3686,14 +3688,14 @@ if.then39.i: ; preds = %for.end34.i br i1 %cmp2.i, label %for.cond3.preheader.i, label %ma_slot_allocator_alloc.exit, !llvm.loop !24 ma_slot_allocator_alloc.exit: ; preds = %for.end34.i, %if.then39.i, %if.then17.i, %if.end22.i - %25 = load ptr, ptr %pJobs, align 8 - %26 = load i64, ptr %head, align 8 - %idxprom = and i64 %26, 65535 - %next = getelementptr inbounds %struct.ma_job, ptr %25, i64 %idxprom, i32 1 - store i64 -1, ptr %next, align 8 + %26 = load ptr, ptr %pJobs, align 8 %27 = load i64, ptr %head, align 8 + %idxprom = and i64 %27, 65535 + %next = getelementptr inbounds %struct.ma_job, ptr %26, i64 %idxprom, i32 1 + store i64 -1, ptr %next, align 8 + %28 = load i64, ptr %head, align 8 %tail = getelementptr inbounds i8, ptr %pQueue, i64 16 - store i64 %27, ptr %tail, align 8 + store i64 %28, ptr %tail, align 8 br label %return return: ; preds = %ma_zero_memory_default.exit, %if.end.i, %if.then2.i29, %entry, %ma_slot_allocator_alloc.exit @@ -3891,8 +3893,9 @@ for.cond3.preheader.i: ; preds = %if.then39.i, %if.en %div.i2733.i = lshr i32 %0, 5 %rem.i34.i = and i32 %0, 31 %cmp.i.not35.i = icmp ne i32 %rem.i34.i, 0 - %add.i36.neg.i = sext i1 %cmp.i.not35.i to i32 - %cmp438.not.i = icmp eq i32 %div.i2733.i, %add.i36.neg.i + %add.i36.i = zext i1 %cmp.i.not35.i to i32 + %1 = or i32 %div.i2733.i, %add.i36.i + %cmp438.not.i = icmp eq i32 %1, 0 br i1 %cmp438.not.i, label %for.end34.i, label %for.cond6.preheader.i for.cond6.preheader.i: ; preds = %for.cond3.preheader.i, %for.inc.i @@ -3900,17 +3903,17 @@ for.cond6.preheader.i: ; preds = %for.cond3.preheader br label %for.cond6.i for.cond6.i: ; preds = %ma_ffs_32.exit.i, %for.cond6.preheader.i - %1 = load ptr, ptr %allocator, align 8 - %arrayidx.i = getelementptr inbounds %struct.ma_slot_allocator_group, ptr %1, i64 %indvars.iv.i - %2 = load atomic i32, ptr %arrayidx.i seq_cst, align 4 - %cmp7.i = icmp eq i32 %2, -1 + %2 = load ptr, ptr %allocator, align 8 + %arrayidx.i = getelementptr inbounds %struct.ma_slot_allocator_group, ptr %2, i64 %indvars.iv.i + %3 = load atomic i32, ptr %arrayidx.i seq_cst, align 4 + %cmp7.i = icmp eq i32 %3, -1 br i1 %cmp7.i, label %for.inc.i, label %for.body.i.i for.body.i.i: ; preds = %for.cond6.i, %for.inc.i.i %i.05.i.i = phi i32 [ %add.i29.i, %for.inc.i.i ], [ 0, %for.cond6.i ] %shl.i.i = shl nuw i32 1, %i.05.i.i - %3 = and i32 %shl.i.i, %2 - %cmp1.not.i.not.i = icmp eq i32 %3, 0 + %4 = and i32 %shl.i.i, %3 + %cmp1.not.i.not.i = icmp eq i32 %4, 0 br i1 %cmp1.not.i.not.i, label %ma_ffs_32.exit.i, label %for.inc.i.i for.inc.i.i: ; preds = %for.body.i.i @@ -3921,38 +3924,38 @@ for.inc.i.i: ; preds = %for.body.i.i ma_ffs_32.exit.i: ; preds = %for.body.i.i, %for.inc.i.i %i.0.lcssa.i.i = phi i32 [ 32, %for.inc.i.i ], [ %i.05.i.i, %for.body.i.i ] %shl.i = shl nuw i32 1, %i.0.lcssa.i.i - %or.i = or i32 %shl.i, %2 - %4 = load ptr, ptr %allocator, align 8 - %arrayidx13.i = getelementptr inbounds %struct.ma_slot_allocator_group, ptr %4, i64 %indvars.iv.i - %5 = cmpxchg volatile ptr %arrayidx13.i, i32 %2, i32 %or.i seq_cst seq_cst, align 4 - %cmp16.i = extractvalue { i32, i1 } %5, 1 + %or.i = or i32 %shl.i, %3 + %5 = load ptr, ptr %allocator, align 8 + %arrayidx13.i = getelementptr inbounds %struct.ma_slot_allocator_group, ptr %5, i64 %indvars.iv.i + %6 = cmpxchg volatile ptr %arrayidx13.i, i32 %3, i32 %or.i seq_cst seq_cst, align 4 + %cmp16.i = extractvalue { i32, i1 } %6, 1 br i1 %cmp16.i, label %if.then17.i, label %for.cond6.i if.then17.i: ; preds = %ma_ffs_32.exit.i - %6 = trunc i64 %indvars.iv.i to i32 - %7 = atomicrmw add ptr %count35.i, i32 1 seq_cst, align 8 - %shl19.i = shl i32 %6, 5 + %7 = trunc i64 %indvars.iv.i to i32 + %8 = atomicrmw add ptr %count35.i, i32 1 seq_cst, align 8 + %shl19.i = shl i32 %7, 5 %add.i = add i32 %i.0.lcssa.i.i, %shl19.i - %8 = load i32, ptr %capacity.i.i, align 4 - %cmp20.not.i = icmp ult i32 %add.i, %8 + %9 = load i32, ptr %capacity.i.i, align 4 + %cmp20.not.i = icmp ult i32 %add.i, %9 br i1 %cmp20.not.i, label %if.end4, label %return for.inc.i: ; preds = %for.cond6.i %indvars.iv.next.i = add nuw nsw i64 %indvars.iv.i, 1 - %9 = load i32, ptr %capacity.i.i, align 4 - %div.i27.i = lshr i32 %9, 5 - %rem.i.i = and i32 %9, 31 + %10 = load i32, ptr %capacity.i.i, align 4 + %div.i27.i = lshr i32 %10, 5 + %rem.i.i = and i32 %10, 31 %cmp.i.not.i = icmp ne i32 %rem.i.i, 0 %add.i.i = zext i1 %cmp.i.not.i to i32 %spec.select.i = add nuw nsw i32 %div.i27.i, %add.i.i - %10 = zext nneg i32 %spec.select.i to i64 - %cmp4.i = icmp ult i64 %indvars.iv.next.i, %10 + %11 = zext nneg i32 %spec.select.i to i64 + %cmp4.i = icmp ult i64 %indvars.iv.next.i, %11 br i1 %cmp4.i, label %for.cond6.preheader.i, label %for.end34.i, !llvm.loop !23 for.end34.i: ; preds = %for.inc.i, %for.cond3.preheader.i - %.lcssa.i = phi i32 [ %0, %for.cond3.preheader.i ], [ %9, %for.inc.i ] - %11 = load i32, ptr %count35.i, align 8 - %cmp37.i = icmp ult i32 %11, %.lcssa.i + %.lcssa.i = phi i32 [ %0, %for.cond3.preheader.i ], [ %10, %for.inc.i ] + %12 = load i32, ptr %count35.i, align 8 + %cmp37.i = icmp ult i32 %12, %.lcssa.i br i1 %cmp37.i, label %if.then39.i, label %return if.then39.i: ; preds = %for.end34.i @@ -3961,52 +3964,52 @@ if.then39.i: ; preds = %for.end34.i if.end4: ; preds = %if.then17.i %pSlots.i = getelementptr inbounds i8, ptr %pQueue, i64 128 - %12 = load ptr, ptr %pSlots.i, align 8 + %13 = load ptr, ptr %pSlots.i, align 8 %idxprom23.i = zext i32 %add.i to i64 - %arrayidx24.i = getelementptr inbounds i32, ptr %12, i64 %idxprom23.i - %13 = load i32, ptr %arrayidx24.i, align 4 - %add25.i = add i32 %13, 1 + %arrayidx24.i = getelementptr inbounds i32, ptr %13, i64 %idxprom23.i + %14 = load i32, ptr %arrayidx24.i, align 4 + %add25.i = add i32 %14, 1 store i32 %add25.i, ptr %arrayidx24.i, align 4 - %14 = load ptr, ptr %pSlots.i, align 8 - %arrayidx28.i = getelementptr inbounds i32, ptr %14, i64 %idxprom23.i - %15 = load i32, ptr %arrayidx28.i, align 4 - %conv.i = zext i32 %15 to i64 + %15 = load ptr, ptr %pSlots.i, align 8 + %arrayidx28.i = getelementptr inbounds i32, ptr %15, i64 %idxprom23.i + %16 = load i32, ptr %arrayidx28.i, align 4 + %conv.i = zext i32 %16 to i64 %shl29.i = shl nuw i64 %conv.i, 32 %or31.i = or disjoint i64 %shl29.i, %idxprom23.i %pJobs = getelementptr inbounds i8, ptr %pQueue, i64 160 - %16 = load ptr, ptr %pJobs, align 8 + %17 = load ptr, ptr %pJobs, align 8 %idxprom = and i64 %idxprom23.i, 65535 - %arrayidx = getelementptr inbounds %struct.ma_job, ptr %16, i64 %idxprom + %arrayidx = getelementptr inbounds %struct.ma_job, ptr %17, i64 %idxprom tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(104) %arrayidx, ptr noundef nonnull align 8 dereferenceable(104) %pJob, i64 104, i1 false) - %17 = load ptr, ptr %pJobs, align 8 - %arrayidx9 = getelementptr inbounds %struct.ma_job, ptr %17, i64 %idxprom + %18 = load ptr, ptr %pJobs, align 8 + %arrayidx9 = getelementptr inbounds %struct.ma_job, ptr %18, i64 %idxprom store i64 %or31.i, ptr %arrayidx9, align 8 - %18 = load i16, ptr %pJob, align 8 - %19 = load ptr, ptr %pJobs, align 8 - %arrayidx14 = getelementptr inbounds %struct.ma_job, ptr %19, i64 %idxprom - store i16 %18, ptr %arrayidx14, align 8 + %19 = load i16, ptr %pJob, align 8 %20 = load ptr, ptr %pJobs, align 8 - %next21 = getelementptr inbounds %struct.ma_job, ptr %20, i64 %idxprom, i32 1 + %arrayidx14 = getelementptr inbounds %struct.ma_job, ptr %20, i64 %idxprom + store i16 %19, ptr %arrayidx14, align 8 + %21 = load ptr, ptr %pJobs, align 8 + %next21 = getelementptr inbounds %struct.ma_job, ptr %21, i64 %idxprom, i32 1 store i64 -1, ptr %next21, align 8 %lock = getelementptr inbounds i8, ptr %pQueue, i64 168 - %21 = atomicrmw volatile xchg ptr %lock, i32 1 acquire, align 4 - %cmp1.i4.i = icmp eq i32 %21, 0 + %22 = atomicrmw volatile xchg ptr %lock, i32 1 acquire, align 4 + %cmp1.i4.i = icmp eq i32 %22, 0 br i1 %cmp1.i4.i, label %ma_spinlock_lock.exit, label %while.cond.i.preheader.i for.cond.i.loopexit.i: ; preds = %if.then6.i.i, %while.cond.i.preheader.i - %22 = atomicrmw volatile xchg ptr %lock, i32 1 acquire, align 4 - %cmp1.i.i = icmp eq i32 %22, 0 + %23 = atomicrmw volatile xchg ptr %lock, i32 1 acquire, align 4 + %cmp1.i.i = icmp eq i32 %23, 0 br i1 %cmp1.i.i, label %ma_spinlock_lock.exit, label %while.cond.i.preheader.i while.cond.i.preheader.i: ; preds = %if.end4, %for.cond.i.loopexit.i - %23 = load atomic volatile i32, ptr %lock monotonic, align 4 - %cmp5.i3.i = icmp eq i32 %23, 1 + %24 = load atomic volatile i32, ptr %lock monotonic, align 4 + %cmp5.i3.i = icmp eq i32 %24, 1 br i1 %cmp5.i3.i, label %if.then6.i.i, label %for.cond.i.loopexit.i if.then6.i.i: ; preds = %while.cond.i.preheader.i, %if.then6.i.i tail call void asm sideeffect "pause", "~{dirflag},~{fpsr},~{flags}"() #64, !srcloc !18 - %24 = load atomic volatile i32, ptr %lock monotonic, align 4 - %cmp5.i.i = icmp eq i32 %24, 1 + %25 = load atomic volatile i32, ptr %lock monotonic, align 4 + %cmp5.i.i = icmp eq i32 %25, 1 br i1 %cmp5.i.i, label %if.then6.i.i, label %for.cond.i.loopexit.i, !llvm.loop !19 ma_spinlock_lock.exit: ; preds = %for.cond.i.loopexit.i, %if.end4 @@ -4014,50 +4017,50 @@ ma_spinlock_lock.exit: ; preds = %for.cond.i.loopexit br label %for.cond for.cond: ; preds = %for.cond.backedge, %ma_spinlock_lock.exit - %25 = load atomic i64, ptr %tail23 seq_cst, align 8 - %26 = load ptr, ptr %pJobs, align 8 - %idxprom26 = and i64 %25, 65535 - %next28 = getelementptr inbounds %struct.ma_job, ptr %26, i64 %idxprom26, i32 1 - %27 = load atomic i64, ptr %next28 seq_cst, align 8 - %28 = load atomic i64, ptr %tail23 seq_cst, align 8 - %29 = xor i64 %28, %25 - %30 = and i64 %29, -4294901761 - %cmp34 = icmp eq i64 %30, 0 + %26 = load atomic i64, ptr %tail23 seq_cst, align 8 + %27 = load ptr, ptr %pJobs, align 8 + %idxprom26 = and i64 %26, 65535 + %next28 = getelementptr inbounds %struct.ma_job, ptr %27, i64 %idxprom26, i32 1 + %28 = load atomic i64, ptr %next28 seq_cst, align 8 + %29 = load atomic i64, ptr %tail23 seq_cst, align 8 + %30 = xor i64 %29, %26 + %31 = and i64 %30, -4294901761 + %cmp34 = icmp eq i64 %31, 0 br i1 %cmp34, label %if.then35, label %for.cond.backedge if.then35: ; preds = %for.cond - %conv27 = and i64 %27, 65535 + %conv27 = and i64 %28, 65535 %cmp37 = icmp eq i64 %conv27, 65535 br i1 %cmp37, label %if.then39, label %if.else if.then39: ; preds = %if.then35 - %31 = load ptr, ptr %pJobs, align 8 - %next44 = getelementptr inbounds %struct.ma_job, ptr %31, i64 %idxprom26, i32 1 - %32 = and i64 %27, -4294967296 - %shl.i.i28 = add i64 %32, 4294967296 + %32 = load ptr, ptr %pJobs, align 8 + %next44 = getelementptr inbounds %struct.ma_job, ptr %32, i64 %idxprom26, i32 1 + %33 = and i64 %28, -4294967296 + %shl.i.i28 = add i64 %33, 4294967296 %or.i.i = or disjoint i64 %shl.i.i28, %idxprom23.i - %33 = cmpxchg volatile ptr %next44, i64 %27, i64 %or.i.i seq_cst seq_cst, align 8 - %cmp.i = extractvalue { i64, i1 } %33, 1 + %34 = cmpxchg volatile ptr %next44, i64 %28, i64 %or.i.i seq_cst seq_cst, align 8 + %cmp.i = extractvalue { i64, i1 } %34, 1 br i1 %cmp.i, label %for.end, label %for.cond.backedge if.else: ; preds = %if.then35 - %34 = and i64 %25, -4294967296 - %shl.i.i30 = add i64 %34, 4294967296 + %35 = and i64 %26, -4294967296 + %shl.i.i30 = add i64 %35, 4294967296 %or.i.i31 = or disjoint i64 %conv27, %shl.i.i30 - %35 = cmpxchg volatile ptr %tail23, i64 %25, i64 %or.i.i31 seq_cst seq_cst, align 8 + %36 = cmpxchg volatile ptr %tail23, i64 %26, i64 %or.i.i31 seq_cst seq_cst, align 8 br label %for.cond.backedge for.cond.backedge: ; preds = %if.else, %if.then39, %for.cond br label %for.cond for.end: ; preds = %if.then39 - %36 = and i64 %25, -4294967296 - %shl.i.i35 = add i64 %36, 4294967296 + %37 = and i64 %26, -4294967296 + %shl.i.i35 = add i64 %37, 4294967296 %or.i.i36 = or disjoint i64 %shl.i.i35, %idxprom23.i - %37 = cmpxchg volatile ptr %tail23, i64 %25, i64 %or.i.i36 seq_cst seq_cst, align 8 + %38 = cmpxchg volatile ptr %tail23, i64 %26, i64 %or.i.i36 seq_cst seq_cst, align 8 store atomic volatile i32 0, ptr %lock release, align 4 - %38 = load i32, ptr %pQueue, align 8 - %and = and i32 %38, 1 + %39 = load i32, ptr %pQueue, align 8 + %and = and i32 %39, 1 %cmp58 = icmp eq i32 %and, 0 br i1 %cmp58, label %if.then60, label %return @@ -4065,8 +4068,8 @@ if.then60: ; preds = %for.end %sem = getelementptr inbounds i8, ptr %pQueue, i64 24 %lock.i.i = getelementptr inbounds i8, ptr %pQueue, i64 32 %call.i.i = tail call i32 @pthread_mutex_lock(ptr noundef nonnull %lock.i.i) #64 - %39 = load i32, ptr %sem, align 8 - %add.i.i40 = add nsw i32 %39, 1 + %40 = load i32, ptr %sem, align 8 + %add.i.i40 = add nsw i32 %40, 1 store i32 %add.i.i40, ptr %sem, align 8 %cond.i.i = getelementptr inbounds i8, ptr %pQueue, i64 72 %call1.i.i = tail call i32 @pthread_cond_signal(ptr noundef nonnull %cond.i.i) #64 @@ -103381,7 +103384,7 @@ for.cond.preheader: ; preds = %if.end70 br label %for.body for.body: ; preds = %for.cond.preheader, %ma_dr_mp3_L3_decode.exit - %149 = phi i32 [ %cond, %for.cond.preheader ], [ %394, %ma_dr_mp3_L3_decode.exit ] + %149 = phi i32 [ %cond, %for.cond.preheader ], [ %395, %ma_dr_mp3_L3_decode.exit ] %pcm.addr.0583 = phi ptr [ %pcm, %for.cond.preheader ], [ %add.ptr103, %ma_dr_mp3_L3_decode.exit ] %cmp83586 = phi i1 [ true, %for.cond.preheader ], [ false, %ma_dr_mp3_L3_decode.exit ] %igr.0582 = phi i32 [ 0, %for.cond.preheader ], [ 1, %ma_dr_mp3_L3_decode.exit ] @@ -103709,17 +103712,15 @@ do.body.i.i.i: ; preds = %do.body.i.i.i, %if. for.cond153.preheader.i.i: ; preds = %do.body.i.i.i %201 = load i8, ptr %n_long_sfb.i.i, align 1 - %conv15585.i.i = zext i8 %201 to i32 - %conv15786.i.i = zext i8 %176 to i32 - %add15887.i.i = sub nsw i32 0, %conv15585.i.i - %cmp15988.not.i.i = icmp eq i32 %conv15786.i.i, %add15887.i.i + %202 = or i8 %201, %176 + %cmp15988.not.i.i = icmp eq i8 %202, 0 br i1 %cmp15988.not.i.i, label %ma_dr_mp3_L3_decode_scalefactors.exit.i, label %for.body161.i.i for.body161.i.i: ; preds = %for.cond153.preheader.i.i, %ma_dr_mp3_L3_ldexp_q2.exit76.i.i %indvars.iv107.i.i = phi i64 [ %indvars.iv.next108.i.i, %ma_dr_mp3_L3_ldexp_q2.exit76.i.i ], [ 0, %for.cond153.preheader.i.i ] %arrayidx163.i.i = getelementptr inbounds [40 x i8], ptr %iscf.i.i, i64 0, i64 %indvars.iv107.i.i - %202 = load i8, ptr %arrayidx163.i.i, align 1 - %conv164.i.i = zext i8 %202 to i32 + %203 = load i8, ptr %arrayidx163.i.i, align 1 + %conv164.i.i = zext i8 %203 to i32 %shl165.i.i = shl i32 %conv164.i.i, %add5.i.i226 br label %do.body.i62.i.i @@ -103730,11 +103731,11 @@ do.body.i62.i.i: ; preds = %do.body.i62.i.i, %f %and.i66.i.i = and i32 %cond.i65.i.i, 3 %idxprom.i67.i.i = zext nneg i32 %and.i66.i.i to i64 %arrayidx.i68.i.i = getelementptr inbounds [4 x float], ptr @ma_dr_mp3_L3_ldexp_q2.g_expfrac, i64 0, i64 %idxprom.i67.i.i - %203 = load float, ptr %arrayidx.i68.i.i, align 4 + %204 = load float, ptr %arrayidx.i68.i.i, align 4 %shr.i69.i.i = ashr i32 %cond.i65.i.i, 2 %shr1.i70.i.i = lshr i32 1073741824, %shr.i69.i.i %conv.i71.i.i = sitofp i32 %shr1.i70.i.i to float - %mul.i72.i.i = fmul float %203, %conv.i71.i.i + %mul.i72.i.i = fmul float %204, %conv.i71.i.i %mul2.i73.i.i = fmul float %y.addr.0.i64.i.i, %mul.i72.i.i %sub.i74.i.i = sub nsw i32 %exp_q2.addr.0.i63.i.i, %cond.i65.i.i %cmp3.i75.i.i = icmp sgt i32 %sub.i74.i.i, 0 @@ -103744,10 +103745,10 @@ ma_dr_mp3_L3_ldexp_q2.exit76.i.i: ; preds = %do.body.i62.i.i %arrayidx168.i.i = getelementptr inbounds float, ptr %scf.i, i64 %indvars.iv107.i.i store float %mul2.i73.i.i, ptr %arrayidx168.i.i, align 4 %indvars.iv.next108.i.i = add nuw nsw i64 %indvars.iv107.i.i, 1 - %204 = load i8, ptr %n_long_sfb.i.i, align 1 - %conv155.i.i = zext i8 %204 to i64 - %205 = load i8, ptr %n_short_sfb.i.i, align 2 - %conv157.i.i = zext i8 %205 to i64 + %205 = load i8, ptr %n_long_sfb.i.i, align 1 + %conv155.i.i = zext i8 %205 to i64 + %206 = load i8, ptr %n_short_sfb.i.i, align 2 + %conv157.i.i = zext i8 %206 to i64 %add158.i.i = add nuw nsw i64 %conv157.i.i, %conv155.i.i %cmp159.i.i = icmp ult i64 %indvars.iv.next108.i.i, %add158.i.i br i1 %cmp159.i.i, label %for.body161.i.i, label %ma_dr_mp3_L3_decode_scalefactors.exit.i, !llvm.loop !855 @@ -103757,39 +103758,39 @@ ma_dr_mp3_L3_decode_scalefactors.exit.i: ; preds = %ma_dr_mp3_L3_ldexp_ call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %iscf.i.i) %arrayidx7.i = getelementptr inbounds [2 x [576 x float]], ptr %grbuf, i64 0, i64 %indvars.iv.i217 %big_values.i.i = getelementptr inbounds i8, ptr %arrayidx.i218, i64 10 - %206 = load i16, ptr %big_values.i.i, align 2 - %207 = load ptr, ptr %arrayidx.i218, align 8 - %208 = load ptr, ptr %scratch, align 8 - %209 = load i32, ptr %pos.i.i, align 8 - %div.i48.i = sdiv i32 %209, 8 + %207 = load i16, ptr %big_values.i.i, align 2 + %208 = load ptr, ptr %arrayidx.i218, align 8 + %209 = load ptr, ptr %scratch, align 8 + %210 = load i32, ptr %pos.i.i, align 8 + %div.i48.i = sdiv i32 %210, 8 %idx.ext.i49.i = sext i32 %div.i48.i to i64 - %add.ptr.i50.i = getelementptr inbounds i8, ptr %208, i64 %idx.ext.i49.i - %210 = load i8, ptr %add.ptr.i50.i, align 1 - %conv1.i.i = zext i8 %210 to i32 + %add.ptr.i50.i = getelementptr inbounds i8, ptr %209, i64 %idx.ext.i49.i + %211 = load i8, ptr %add.ptr.i50.i, align 1 + %conv1.i.i = zext i8 %211 to i32 %arrayidx2.i.i237 = getelementptr inbounds i8, ptr %add.ptr.i50.i, i64 1 - %211 = load i8, ptr %arrayidx2.i.i237, align 1 - %conv3.i.i238 = zext i8 %211 to i32 - %212 = shl nuw nsw i32 %conv1.i.i, 16 - %213 = shl nuw nsw i32 %conv3.i.i238, 8 - %mul4.i.i = or disjoint i32 %213, %212 + %212 = load i8, ptr %arrayidx2.i.i237, align 1 + %conv3.i.i238 = zext i8 %212 to i32 + %213 = shl nuw nsw i32 %conv1.i.i, 16 + %214 = shl nuw nsw i32 %conv3.i.i238, 8 + %mul4.i.i = or disjoint i32 %214, %213 %arrayidx5.i.i = getelementptr inbounds i8, ptr %add.ptr.i50.i, i64 2 - %214 = load i8, ptr %arrayidx5.i.i, align 1 - %conv6.i.i239 = zext i8 %214 to i32 + %215 = load i8, ptr %arrayidx5.i.i, align 1 + %conv6.i.i239 = zext i8 %215 to i32 %add7.i.i = or disjoint i32 %mul4.i.i, %conv6.i.i239 %mul8.i.i = shl nuw i32 %add7.i.i, 8 %arrayidx9.i.i = getelementptr inbounds i8, ptr %add.ptr.i50.i, i64 3 - %215 = load i8, ptr %arrayidx9.i.i, align 1 - %conv10.i.i240 = zext i8 %215 to i32 + %216 = load i8, ptr %arrayidx9.i.i, align 1 + %conv10.i.i240 = zext i8 %216 to i32 %add11.i.i = or disjoint i32 %mul8.i.i, %conv10.i.i240 - %and.i.i241 = and i32 %209, 7 + %and.i.i241 = and i32 %210, 7 %shl.i51.i = shl i32 %add11.i.i, %and.i.i241 - %sub.i52.i = or i32 %209, -8 + %sub.i52.i = or i32 %210, -8 %add.ptr15.i.i = getelementptr inbounds i8, ptr %add.ptr.i50.i, i64 4 - %cmp218.not.i.i = icmp eq i16 %206, 0 + %cmp218.not.i.i = icmp eq i16 %207, 0 br i1 %cmp218.not.i.i, label %while.end208.i.i, label %while.body.lr.ph.i.i while.body.lr.ph.i.i: ; preds = %ma_dr_mp3_L3_decode_scalefactors.exit.i - %conv.i53.i = zext i16 %206 to i32 + %conv.i53.i = zext i16 %207 to i32 %table_select.i.i = getelementptr inbounds i8, ptr %arrayidx.i218, i64 19 %region_count.i.i = getelementptr inbounds i8, ptr %arrayidx.i218, i64 22 br label %while.body.i.i @@ -103802,22 +103803,22 @@ while.body.i.i: ; preds = %if.end207.i.i, %whi %bs_sh.0222.i.i = phi i32 [ %sub.i52.i, %while.body.lr.ph.i.i ], [ %bs_sh.13.i.i, %if.end207.i.i ] %bs_cache.0221.i.i = phi i32 [ %shl.i51.i, %while.body.lr.ph.i.i ], [ %bs_cache.13.i.i, %if.end207.i.i ] %bs_next_ptr.0220.i.i = phi ptr [ %add.ptr15.i.i, %while.body.lr.ph.i.i ], [ %bs_next_ptr.10.i.i, %if.end207.i.i ] - %sfb.0219.i.i = phi ptr [ %207, %while.body.lr.ph.i.i ], [ %sfb.3.i.i, %if.end207.i.i ] + %sfb.0219.i.i = phi ptr [ %208, %while.body.lr.ph.i.i ], [ %sfb.3.i.i, %if.end207.i.i ] %arrayidx17.i.i = getelementptr inbounds [3 x i8], ptr %table_select.i.i, i64 0, i64 %indvars.iv.i54.i - %216 = load i8, ptr %arrayidx17.i.i, align 1 + %217 = load i8, ptr %arrayidx17.i.i, align 1 %indvars.iv.next.i55.i = add nuw nsw i64 %indvars.iv.i54.i, 1 %arrayidx20.i56.i = getelementptr inbounds [3 x i8], ptr %region_count.i.i, i64 0, i64 %indvars.iv.i54.i - %217 = load i8, ptr %arrayidx20.i56.i, align 1 - %conv21.i.i = zext i8 %217 to i32 - %idxprom22.i.i = zext i8 %216 to i64 + %218 = load i8, ptr %arrayidx20.i56.i, align 1 + %conv21.i.i = zext i8 %218 to i32 + %idxprom22.i.i = zext i8 %217 to i64 %arrayidx23.i.i = getelementptr inbounds [32 x i16], ptr @ma_dr_mp3_L3_huffman.tabindex, i64 0, i64 %idxprom22.i.i - %218 = load i16, ptr %arrayidx23.i.i, align 2 - %idx.ext25.i.i = sext i16 %218 to i64 + %219 = load i16, ptr %arrayidx23.i.i, align 2 + %idx.ext25.i.i = sext i16 %219 to i64 %add.ptr26.i.i = getelementptr inbounds i16, ptr @ma_dr_mp3_L3_huffman.tabs, i64 %idx.ext25.i.i %arrayidx28.i.i = getelementptr inbounds [32 x i8], ptr @ma_dr_mp3_L3_huffman.g_linbits, i64 0, i64 %idxprom22.i.i - %219 = load i8, ptr %arrayidx28.i.i, align 1 - %conv29.i.i = zext i8 %219 to i32 - %tobool.not.i.i242 = icmp ult i8 %216, 16 + %220 = load i8, ptr %arrayidx28.i.i, align 1 + %conv29.i.i = zext i8 %220 to i32 + %tobool.not.i.i242 = icmp ult i8 %217, 16 br i1 %tobool.not.i.i242, label %do.body120.i.i, label %do.body.preheader.i.i do.body.preheader.i.i: ; preds = %while.body.i.i @@ -103833,17 +103834,17 @@ do.body.i.i: ; preds = %do.cond111.i.i, %do %sfb_cnt.0.i.i = phi i32 [ %dec115.i.i, %do.cond111.i.i ], [ %conv21.i.i, %do.body.preheader.i.i ] %scf.addr.1.i.i = phi ptr [ %incdec.ptr34.i.i, %do.cond111.i.i ], [ %scf.addr.0225.i.i, %do.body.preheader.i.i ] %dst.addr.1.i.i = phi ptr [ %incdec.ptr98.i.i, %do.cond111.i.i ], [ %dst.addr.0226.i.i, %do.body.preheader.i.i ] - %220 = load i8, ptr %sfb.1.i.i, align 1 - %221 = lshr i8 %220, 1 - %div31.i.i = zext nneg i8 %221 to i32 - %222 = call i32 @llvm.umin.i32(i32 %big_val_cnt.1.i.i, i32 %div31.i.i) - %223 = load float, ptr %scf.addr.1.i.i, align 4 + %221 = load i8, ptr %sfb.1.i.i, align 1 + %222 = lshr i8 %221, 1 + %div31.i.i = zext nneg i8 %222 to i32 + %223 = call i32 @llvm.umin.i32(i32 %big_val_cnt.1.i.i, i32 %div31.i.i) + %224 = load float, ptr %scf.addr.1.i.i, align 4 br label %do.body35.i.i do.body35.i.i: ; preds = %do.cond.i.i, %do.body.i.i %bs_next_ptr.2.i.i = phi ptr [ %bs_next_ptr.1.i.i, %do.body.i.i ], [ %bs_next_ptr.6.lcssa.i.i, %do.cond.i.i ] %bs_cache.2.i.i = phi i32 [ %bs_cache.1.i.i, %do.body.i.i ], [ %bs_cache.7.lcssa.i.i, %do.cond.i.i ] - %pairs_to_decode.0.i.i = phi i32 [ %222, %do.body.i.i ], [ %dec.i.i, %do.cond.i.i ] + %pairs_to_decode.0.i.i = phi i32 [ %223, %do.body.i.i ], [ %dec.i.i, %do.cond.i.i ] %bs_sh.2.i.i = phi i32 [ %bs_sh.1.i.i, %do.body.i.i ], [ %bs_sh.7.lcssa.i.i, %do.cond.i.i ] %dst.addr.2.i.i = phi ptr [ %dst.addr.1.i.i, %do.body.i.i ], [ %incdec.ptr98.i.i, %do.cond.i.i ] %shr.i57.i = lshr i32 %bs_cache.2.i.i, 27 @@ -103910,8 +103911,8 @@ while.body72.i.i: ; preds = %if.then63.i.i, %whi %bs_cache.5176.i.i = phi i32 [ %or.i.i, %while.body72.i.i ], [ %shl67.i.i, %if.then63.i.i ] %bs_next_ptr.4175.i.i = phi ptr [ %incdec.ptr73.i.i, %while.body72.i.i ], [ %bs_next_ptr.3181.i.i, %if.then63.i.i ] %incdec.ptr73.i.i = getelementptr inbounds i8, ptr %bs_next_ptr.4175.i.i, i64 1 - %224 = load i8, ptr %bs_next_ptr.4175.i.i, align 1 - %conv74.i.i = zext i8 %224 to i32 + %225 = load i8, ptr %bs_next_ptr.4175.i.i, align 1 + %conv74.i.i = zext i8 %225 to i32 %shl75.i.i = shl i32 %conv74.i.i, %bs_sh.5177.i.i %or.i.i = or i32 %shl75.i.i, %bs_cache.5176.i.i %sub76.i.i = add nsw i32 %bs_sh.5177.i.i, -8 @@ -103929,7 +103930,7 @@ if.then.i.i65.i: ; preds = %while.end77.i.i %add.i.i.i = add i32 %shr65.i.i, 31 %idxprom.i.i66.i = sext i32 %add.i.i.i to i64 %arrayidx.i.i67.i = getelementptr inbounds [145 x float], ptr @g_ma_dr_mp3_pow43, i64 0, i64 %idxprom.i.i66.i - %225 = load float, ptr %arrayidx.i.i67.i, align 4 + %226 = load float, ptr %arrayidx.i.i67.i, align 4 br label %ma_dr_mp3_L3_pow_43.exit.i.i if.end.i.i.i: ; preds = %while.end77.i.i @@ -103951,16 +103952,16 @@ if.end.i.i.i: ; preds = %while.end77.i.i %add9.i.i.i = add nuw nsw i32 %shr.i.i64.i, 16 %idxprom10.i.i.i = zext nneg i32 %add9.i.i.i to i64 %arrayidx11.i.i.i = getelementptr inbounds [145 x float], ptr @g_ma_dr_mp3_pow43, i64 0, i64 %idxprom10.i.i.i - %226 = load float, ptr %arrayidx11.i.i.i, align 4 - %227 = call float @llvm.fmuladd.f32(float %div.i.i.i250, float 0x3FCC71C720000000, float 0x3FF5555560000000) - %228 = call float @llvm.fmuladd.f32(float %div.i.i.i250, float %227, float 1.000000e+00) - %mul14.i.i.i = fmul float %228, %226 + %227 = load float, ptr %arrayidx11.i.i.i, align 4 + %228 = call float @llvm.fmuladd.f32(float %div.i.i.i250, float 0x3FCC71C720000000, float 0x3FF5555560000000) + %229 = call float @llvm.fmuladd.f32(float %div.i.i.i250, float %228, float 1.000000e+00) + %mul14.i.i.i = fmul float %229, %227 %mul16.i.i.i = fmul float %mult.0.i.i.i, %mul14.i.i.i br label %ma_dr_mp3_L3_pow_43.exit.i.i ma_dr_mp3_L3_pow_43.exit.i.i: ; preds = %if.end.i.i.i, %if.then.i.i65.i - %retval.0.i.i.i = phi float [ %225, %if.then.i.i65.i ], [ %mul16.i.i.i, %if.end.i.i.i ] - %mul78.i.i = fmul float %223, %retval.0.i.i.i + %retval.0.i.i.i = phi float [ %226, %if.then.i.i65.i ], [ %mul16.i.i.i, %if.end.i.i.i ] + %mul78.i.i = fmul float %224, %retval.0.i.i.i %cmp79.inv.i.i = icmp sgt i32 %bs_cache.5.lcssa.i.i, -1 %cond81.i.i = select i1 %cmp79.inv.i.i, i32 1, i32 -1 %conv82.i.i = sitofp i32 %cond81.i.i to float @@ -103968,14 +103969,14 @@ ma_dr_mp3_L3_pow_43.exit.i.i: ; preds = %if.end.i.i.i, %if.t br label %if.end.i58.i if.else.i.i: ; preds = %for.body.i.i243 - %229 = lshr i32 %bs_cache.4182.i.i, 27 - %.not.i.i = and i32 %229, 16 - %230 = or disjoint i32 %.not.i.i, %and60.i.i - %sub87.i.i = xor i32 %230, 16 + %230 = lshr i32 %bs_cache.4182.i.i, 27 + %.not.i.i = and i32 %230, 16 + %231 = or disjoint i32 %.not.i.i, %and60.i.i + %sub87.i.i = xor i32 %231, 16 %idxprom88.i.i = zext nneg i32 %sub87.i.i to i64 %arrayidx89.i.i = getelementptr inbounds [145 x float], ptr @g_ma_dr_mp3_pow43, i64 0, i64 %idxprom88.i.i - %231 = load float, ptr %arrayidx89.i.i, align 4 - %mul90.i.i = fmul float %223, %231 + %232 = load float, ptr %arrayidx89.i.i, align 4 + %mul90.i.i = fmul float %224, %232 br label %if.end.i58.i if.end.i58.i: ; preds = %if.else.i.i, %ma_dr_mp3_L3_pow_43.exit.i.i @@ -103998,8 +103999,8 @@ while.body103.i.i: ; preds = %while.cond100.prehe %bs_cache.7189.i.i = phi i32 [ %or107.i.i, %while.body103.i.i ], [ %shl93.i.i, %while.cond100.preheader.i.i ] %bs_next_ptr.6188.i.i = phi ptr [ %incdec.ptr104.i.i, %while.body103.i.i ], [ %bs_next_ptr.5.i.i, %while.cond100.preheader.i.i ] %incdec.ptr104.i.i = getelementptr inbounds i8, ptr %bs_next_ptr.6188.i.i, i64 1 - %232 = load i8, ptr %bs_next_ptr.6188.i.i, align 1 - %conv105.i.i = zext i8 %232 to i32 + %233 = load i8, ptr %bs_next_ptr.6188.i.i, align 1 + %conv105.i.i = zext i8 %233 to i32 %shl106.i.i = shl i32 %conv105.i.i, %bs_sh.7190.i.i %or107.i.i = or i32 %shl106.i.i, %bs_cache.7189.i.i %sub108.i.i = add nsw i32 %bs_sh.7190.i.i, -8 @@ -104033,17 +104034,17 @@ do.body120.i.i: ; preds = %while.body.i.i, %do %sfb_cnt.1.i.i = phi i32 [ %dec202.i.i, %do.cond197.i.i ], [ %conv21.i.i, %while.body.i.i ] %scf.addr.2.i.i = phi ptr [ %incdec.ptr130.i.i, %do.cond197.i.i ], [ %scf.addr.0225.i.i, %while.body.i.i ] %dst.addr.4.i.i = phi ptr [ %incdec.ptr180.i.i, %do.cond197.i.i ], [ %dst.addr.0226.i.i, %while.body.i.i ] - %233 = load i8, ptr %sfb.2.i.i, align 1 - %234 = lshr i8 %233, 1 - %div123.i.i = zext nneg i8 %234 to i32 - %235 = call i32 @llvm.umin.i32(i32 %big_val_cnt.2.i.i, i32 %div123.i.i) - %236 = load float, ptr %scf.addr.2.i.i, align 4 + %234 = load i8, ptr %sfb.2.i.i, align 1 + %235 = lshr i8 %234, 1 + %div123.i.i = zext nneg i8 %235 to i32 + %236 = call i32 @llvm.umin.i32(i32 %big_val_cnt.2.i.i, i32 %div123.i.i) + %237 = load float, ptr %scf.addr.2.i.i, align 4 br label %do.body131.i.i do.body131.i.i: ; preds = %do.cond193.i.i, %do.body120.i.i %bs_next_ptr.8.i.i = phi ptr [ %bs_next_ptr.7.i.i, %do.body120.i.i ], [ %bs_next_ptr.9.lcssa.i.i, %do.cond193.i.i ] %bs_cache.9.i.i = phi i32 [ %bs_cache.8.i.i, %do.body120.i.i ], [ %bs_cache.12.lcssa.i.i, %do.cond193.i.i ] - %pairs_to_decode.1.i.i = phi i32 [ %235, %do.body120.i.i ], [ %dec194.i.i, %do.cond193.i.i ] + %pairs_to_decode.1.i.i = phi i32 [ %236, %do.body120.i.i ], [ %dec194.i.i, %do.cond193.i.i ] %bs_sh.9.i.i = phi i32 [ %bs_sh.8.i.i, %do.body120.i.i ], [ %bs_sh.12.lcssa.i.i, %do.cond193.i.i ] %dst.addr.5.i.i = phi ptr [ %dst.addr.4.i.i, %do.body120.i.i ], [ %incdec.ptr180.i.i, %do.cond193.i.i ] %shr136.i.i = lshr i32 %bs_cache.9.i.i, 27 @@ -104093,14 +104094,14 @@ for.body162.i.i: ; preds = %for.body162.i.i, %w %bs_sh.11207.i.i = phi i32 [ %add158.i68.i, %while.end154.i.i ], [ %add177.i.i, %for.body162.i.i ] %bs_cache.11206.i.i = phi i32 [ %shl156.i.i, %while.end154.i.i ], [ %shl174.i.i, %for.body162.i.i ] %and164.i.i = and i32 %leaf134.1209.i.i, 15 - %237 = lshr i32 %bs_cache.11206.i.i, 27 - %.not242.i.i = and i32 %237, 16 - %238 = or disjoint i32 %.not242.i.i, %and164.i.i - %sub168.i.i = xor i32 %238, 16 + %238 = lshr i32 %bs_cache.11206.i.i, 27 + %.not242.i.i = and i32 %238, 16 + %239 = or disjoint i32 %.not242.i.i, %and164.i.i + %sub168.i.i = xor i32 %239, 16 %idxprom169.i.i = zext nneg i32 %sub168.i.i to i64 %arrayidx170.i.i = getelementptr inbounds [145 x float], ptr @g_ma_dr_mp3_pow43, i64 0, i64 %idxprom169.i.i - %239 = load float, ptr %arrayidx170.i.i, align 4 - %mul171.i.i = fmul float %236, %239 + %240 = load float, ptr %arrayidx170.i.i, align 4 + %mul171.i.i = fmul float %237, %240 store float %mul171.i.i, ptr %dst.addr.6210.i.i, align 4 %tobool172.not.i.i = icmp ne i32 %and164.i.i, 0 %cond173.i.i = zext i1 %tobool172.not.i.i to i32 @@ -104115,8 +104116,8 @@ while.body186.i.i: ; preds = %while.cond183.prehe %bs_cache.12213.i.i = phi i32 [ %or190.i.i, %while.body186.i.i ], [ %shl174.i.i, %while.cond183.preheader.i.i ] %bs_next_ptr.9212.i.i = phi ptr [ %incdec.ptr187.i.i, %while.body186.i.i ], [ %bs_next_ptr.8.i.i, %while.cond183.preheader.i.i ] %incdec.ptr187.i.i = getelementptr inbounds i8, ptr %bs_next_ptr.9212.i.i, i64 1 - %240 = load i8, ptr %bs_next_ptr.9212.i.i, align 1 - %conv188.i.i = zext i8 %240 to i32 + %241 = load i8, ptr %bs_next_ptr.9212.i.i, align 1 + %conv188.i.i = zext i8 %241 to i32 %shl189.i.i = shl i32 %conv188.i.i, %bs_sh.12214.i.i %or190.i.i = or i32 %shl189.i.i, %bs_cache.12213.i.i %sub191.i.i = add nsw i32 %bs_sh.12214.i.i, -8 @@ -104147,14 +104148,14 @@ if.end207.i.i: ; preds = %do.cond111.i.i, %do %bs_cache.13.i.i = phi i32 [ %bs_cache.12.lcssa.i.i, %do.cond197.i.i ], [ %bs_cache.7.lcssa.i.i, %do.cond111.i.i ] %bs_sh.13.i.i = phi i32 [ %bs_sh.12.lcssa.i.i, %do.cond197.i.i ], [ %bs_sh.7.lcssa.i.i, %do.cond111.i.i ] %big_val_cnt.3.i.i = phi i32 [ %sub198.i.i, %do.cond197.i.i ], [ %sub112.i.i, %do.cond111.i.i ] - %one.1.i.i = phi float [ %236, %do.cond197.i.i ], [ %223, %do.cond111.i.i ] + %one.1.i.i = phi float [ %237, %do.cond197.i.i ], [ %224, %do.cond111.i.i ] %scf.addr.3.i.i = phi ptr [ %incdec.ptr130.i.i, %do.cond197.i.i ], [ %incdec.ptr34.i.i, %do.cond111.i.i ] %dst.addr.7.i.i = phi ptr [ %incdec.ptr180.i.i, %do.cond197.i.i ], [ %incdec.ptr98.i.i, %do.cond111.i.i ] %cmp.i59.i = icmp sgt i32 %big_val_cnt.3.i.i, 0 br i1 %cmp.i59.i, label %while.body.i.i, label %while.end208.i.i, !llvm.loop !867 while.end208.i.i: ; preds = %if.end207.i.i, %ma_dr_mp3_L3_decode_scalefactors.exit.i - %sfb.0.lcssa.i.i = phi ptr [ %207, %ma_dr_mp3_L3_decode_scalefactors.exit.i ], [ %sfb.3.i.i, %if.end207.i.i ] + %sfb.0.lcssa.i.i = phi ptr [ %208, %ma_dr_mp3_L3_decode_scalefactors.exit.i ], [ %sfb.3.i.i, %if.end207.i.i ] %bs_next_ptr.0.lcssa.i.i = phi ptr [ %add.ptr15.i.i, %ma_dr_mp3_L3_decode_scalefactors.exit.i ], [ %bs_next_ptr.10.i.i, %if.end207.i.i ] %bs_cache.0.lcssa.i.i = phi i32 [ %shl.i51.i, %ma_dr_mp3_L3_decode_scalefactors.exit.i ], [ %bs_cache.13.i.i, %if.end207.i.i ] %bs_sh.0.lcssa.i.i = phi i32 [ %sub.i52.i, %ma_dr_mp3_L3_decode_scalefactors.exit.i ], [ %bs_sh.13.i.i, %if.end207.i.i ] @@ -104176,14 +104177,14 @@ for.cond210.i.i: ; preds = %for.inc333.i.i, %wh %one.2.i.i = phi float [ %one.0.lcssa.i.i, %while.end208.i.i ], [ %one.4.i.i, %for.inc333.i.i ] %scf.addr.4.i.i = phi ptr [ %scf.addr.0.lcssa.i.i, %while.end208.i.i ], [ %scf.addr.6.i.i, %for.inc333.i.i ] %dst.addr.8.i.i = phi ptr [ %dst.addr.0.lcssa.i.i, %while.end208.i.i ], [ %add.ptr334.i.i, %for.inc333.i.i ] - %241 = load i8, ptr %count1_table.i.i, align 2 - %tobool212.not.i.i = icmp eq i8 %241, 0 + %242 = load i8, ptr %count1_table.i.i, align 2 + %tobool212.not.i.i = icmp eq i8 %242, 0 %cond213.i.i = select i1 %tobool212.not.i.i, ptr @ma_dr_mp3_L3_huffman.tab32, ptr @ma_dr_mp3_L3_huffman.tab33 %shr215.i.i = lshr i32 %bs_cache.14.i.i, 28 %idxprom216.i.i = zext nneg i32 %shr215.i.i to i64 %arrayidx217.i.i = getelementptr inbounds i8, ptr %cond213.i.i, i64 %idxprom216.i.i - %242 = load i8, ptr %arrayidx217.i.i, align 1 - %conv218.i.i = zext i8 %242 to i32 + %243 = load i8, ptr %arrayidx217.i.i, align 1 + %conv218.i.i = zext i8 %243 to i32 %and219.i.i = and i32 %conv218.i.i, 8 %tobool220.not.i.i = icmp eq i32 %and219.i.i, 0 br i1 %tobool220.not.i.i, label %if.then221.i.i, label %if.end231.i.i @@ -104197,8 +104198,8 @@ if.then221.i.i: ; preds = %for.cond210.i.i %add227.i.i = add nuw nsw i32 %shr226.i.i, %shr222.i.i %idxprom228.i.i = zext nneg i32 %add227.i.i to i64 %arrayidx229.i.i = getelementptr inbounds i8, ptr %cond213.i.i, i64 %idxprom228.i.i - %243 = load i8, ptr %arrayidx229.i.i, align 1 - %conv230.i.i = zext i8 %243 to i32 + %244 = load i8, ptr %arrayidx229.i.i, align 1 + %conv230.i.i = zext i8 %244 to i32 br label %if.end231.i.i if.end231.i.i: ; preds = %if.then221.i.i, %for.cond210.i.i @@ -104206,9 +104207,9 @@ if.end231.i.i: ; preds = %if.then221.i.i, %fo %and232.i.i = and i32 %leaf214.0.i.i, 7 %shl233.i.i = shl i32 %bs_cache.14.i.i, %and232.i.i %add235.i.i = add nsw i32 %and232.i.i, %bs_sh.14.i.i - %244 = load ptr, ptr %scratch, align 8 + %245 = load ptr, ptr %scratch, align 8 %sub.ptr.lhs.cast.i.i = ptrtoint ptr %bs_next_ptr.11.i.i to i64 - %sub.ptr.rhs.cast.i.i = ptrtoint ptr %244 to i64 + %sub.ptr.rhs.cast.i.i = ptrtoint ptr %245 to i64 %sub.ptr.sub.i.i = sub i64 %sub.ptr.lhs.cast.i.i, %sub.ptr.rhs.cast.i.i %mul237.i.i = shl nsw i64 %sub.ptr.sub.i.i, 3 %conv239.i.i = sext i32 %add235.i.i to i64 @@ -104223,22 +104224,22 @@ if.end245.i.i: ; preds = %if.end231.i.i br i1 %tobool247.not.i.i, label %if.then248.i.i, label %if.end256.i.i if.then248.i.i: ; preds = %if.end245.i.i - %245 = load i8, ptr %sfb.4.i.i, align 1 - %tobool252.not.i.i = icmp ult i8 %245, 2 + %246 = load i8, ptr %sfb.4.i.i, align 1 + %tobool252.not.i.i = icmp ult i8 %246, 2 br i1 %tobool252.not.i.i, label %ma_dr_mp3_L3_huffman.exit.i, label %if.end254.i.i if.end254.i.i: ; preds = %if.then248.i.i - %246 = lshr i8 %245, 1 - %div251.i.i = zext nneg i8 %246 to i32 + %247 = lshr i8 %246, 1 + %div251.i.i = zext nneg i8 %247 to i32 %incdec.ptr249.i.i = getelementptr inbounds i8, ptr %sfb.4.i.i, i64 1 %incdec.ptr255.i.i = getelementptr inbounds i8, ptr %scf.addr.4.i.i, i64 4 - %247 = load float, ptr %scf.addr.4.i.i, align 4 + %248 = load float, ptr %scf.addr.4.i.i, align 4 br label %if.end256.i.i if.end256.i.i: ; preds = %if.end254.i.i, %if.end245.i.i %sfb.5.i.i = phi ptr [ %sfb.4.i.i, %if.end245.i.i ], [ %incdec.ptr249.i.i, %if.end254.i.i ] %np.1.i.i = phi i32 [ %dec246.i.i, %if.end245.i.i ], [ %div251.i.i, %if.end254.i.i ] - %one.3.i.i = phi float [ %one.2.i.i, %if.end245.i.i ], [ %247, %if.end254.i.i ] + %one.3.i.i = phi float [ %one.2.i.i, %if.end245.i.i ], [ %248, %if.end254.i.i ] %scf.addr.5.i.i = phi ptr [ %scf.addr.4.i.i, %if.end245.i.i ], [ %incdec.ptr255.i.i, %if.end254.i.i ] %tobool258.not.i.i = icmp ult i32 %leaf214.0.i.i, 128 br i1 %tobool258.not.i.i, label %if.end269.i.i, label %if.then259.i.i @@ -104277,22 +104278,22 @@ if.end283.i.i: ; preds = %if.then272.i.i, %if br i1 %tobool285.not.i.i, label %if.then286.i.i, label %if.end294.i.i if.then286.i.i: ; preds = %if.end283.i.i - %248 = load i8, ptr %sfb.5.i.i, align 1 - %tobool290.not.i.i = icmp ult i8 %248, 2 + %249 = load i8, ptr %sfb.5.i.i, align 1 + %tobool290.not.i.i = icmp ult i8 %249, 2 br i1 %tobool290.not.i.i, label %ma_dr_mp3_L3_huffman.exit.i, label %if.end292.i.i if.end292.i.i: ; preds = %if.then286.i.i - %249 = lshr i8 %248, 1 - %div289.i.i = zext nneg i8 %249 to i32 + %250 = lshr i8 %249, 1 + %div289.i.i = zext nneg i8 %250 to i32 %incdec.ptr287.i.i = getelementptr inbounds i8, ptr %sfb.5.i.i, i64 1 %incdec.ptr293.i.i = getelementptr inbounds i8, ptr %scf.addr.5.i.i, i64 4 - %250 = load float, ptr %scf.addr.5.i.i, align 4 + %251 = load float, ptr %scf.addr.5.i.i, align 4 br label %if.end294.i.i if.end294.i.i: ; preds = %if.end292.i.i, %if.end283.i.i %sfb.6.i.i = phi ptr [ %sfb.5.i.i, %if.end283.i.i ], [ %incdec.ptr287.i.i, %if.end292.i.i ] %np.2.i.i = phi i32 [ %dec284.i.i, %if.end283.i.i ], [ %div289.i.i, %if.end292.i.i ] - %one.4.i.i = phi float [ %one.3.i.i, %if.end283.i.i ], [ %250, %if.end292.i.i ] + %one.4.i.i = phi float [ %one.3.i.i, %if.end283.i.i ], [ %251, %if.end292.i.i ] %scf.addr.6.i.i = phi ptr [ %scf.addr.5.i.i, %if.end283.i.i ], [ %incdec.ptr293.i.i, %if.end292.i.i ] %and295.i.i = and i32 %leaf214.0.i.i, 32 %tobool296.not.i.i = icmp eq i32 %and295.i.i, 0 @@ -104333,9 +104334,9 @@ if.end322.i.i: ; preds = %if.then311.i.i, %if while.body326.i.preheader.i: ; preds = %if.end322.i.i %scevgep.i = getelementptr i8, ptr %bs_next_ptr.11.i.i, i64 1 - %251 = lshr i32 %bs_sh.18.i.i, 3 - %252 = zext nneg i32 %251 to i64 - %scevgep176.i = getelementptr i8, ptr %scevgep.i, i64 %252 + %252 = lshr i32 %bs_sh.18.i.i, 3 + %253 = zext nneg i32 %252 to i64 + %scevgep176.i = getelementptr i8, ptr %scevgep.i, i64 %253 br label %while.body326.i.i while.body326.i.i: ; preds = %while.body326.i.i, %while.body326.i.preheader.i @@ -104343,8 +104344,8 @@ while.body326.i.i: ; preds = %while.body326.i.i, %bs_cache.19237.i.i = phi i32 [ %or330.i.i, %while.body326.i.i ], [ %bs_cache.18.i.i, %while.body326.i.preheader.i ] %bs_next_ptr.12236.i.i = phi ptr [ %incdec.ptr327.i.i, %while.body326.i.i ], [ %bs_next_ptr.11.i.i, %while.body326.i.preheader.i ] %incdec.ptr327.i.i = getelementptr inbounds i8, ptr %bs_next_ptr.12236.i.i, i64 1 - %253 = load i8, ptr %bs_next_ptr.12236.i.i, align 1 - %conv328.i.i = zext i8 %253 to i32 + %254 = load i8, ptr %bs_next_ptr.12236.i.i, align 1 + %conv328.i.i = zext i8 %254 to i32 %shl329.i.i = shl i32 %conv328.i.i, %bs_sh.19238.i.i %or330.i.i = or i32 %shl329.i.i, %bs_cache.19237.i.i %sub331.i.i = add nsw i32 %bs_sh.19238.i.i, -8 @@ -104352,15 +104353,15 @@ while.body326.i.i: ; preds = %while.body326.i.i, br i1 %cmp324.i.i, label %while.body326.i.i, label %for.inc333.i.loopexit.i, !llvm.loop !868 for.inc333.i.loopexit.i: ; preds = %while.body326.i.i - %254 = and i32 %bs_sh.18.i.i, 2147483640 - %255 = add nsw i32 %bs_sh.18.i.i, -8 - %256 = sub i32 %255, %254 + %255 = and i32 %bs_sh.18.i.i, 2147483640 + %256 = add nsw i32 %bs_sh.18.i.i, -8 + %257 = sub i32 %256, %255 br label %for.inc333.i.i for.inc333.i.i: ; preds = %for.inc333.i.loopexit.i, %if.end322.i.i %bs_next_ptr.12.lcssa.i.i = phi ptr [ %bs_next_ptr.11.i.i, %if.end322.i.i ], [ %scevgep176.i, %for.inc333.i.loopexit.i ] %bs_cache.19.lcssa.i.i = phi i32 [ %bs_cache.18.i.i, %if.end322.i.i ], [ %or330.i.i, %for.inc333.i.loopexit.i ] - %bs_sh.19.lcssa.i.i = phi i32 [ %bs_sh.18.i.i, %if.end322.i.i ], [ %256, %for.inc333.i.loopexit.i ] + %bs_sh.19.lcssa.i.i = phi i32 [ %bs_sh.18.i.i, %if.end322.i.i ], [ %257, %for.inc333.i.loopexit.i ] %add.ptr334.i.i = getelementptr inbounds i8, ptr %dst.addr.8.i.i, i64 16 br label %for.cond210.i.i @@ -104371,8 +104372,8 @@ ma_dr_mp3_L3_huffman.exit.i: ; preds = %if.then286.i.i, %if br i1 %exitcond.not.i246, label %for.end.i186, label %for.body.i216, !llvm.loop !869 for.end.i186: ; preds = %ma_dr_mp3_L3_huffman.exit.i, %for.body - %257 = load i8, ptr %arrayidx15.i, align 1 - %conv16.i = zext i8 %257 to i32 + %258 = load i8, ptr %arrayidx15.i, align 1 + %conv16.i = zext i8 %258 to i32 %and.i187 = and i32 %conv16.i, 16 %tobool.not.i188 = icmp eq i32 %and.i187, 0 br i1 %tobool.not.i188, label %if.else.i213, label %if.then.i189 @@ -104380,15 +104381,15 @@ for.end.i186: ; preds = %ma_dr_mp3_L3_huffma if.then.i189: ; preds = %for.end.i186 call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %max_band.i.i) %n_long_sfb.i69.i = getelementptr inbounds i8, ptr %add.ptr91, i64 17 - %258 = load i8, ptr %n_long_sfb.i69.i, align 1 - %conv.i70.i = zext i8 %258 to i32 + %259 = load i8, ptr %n_long_sfb.i69.i, align 1 + %conv.i70.i = zext i8 %259 to i32 %n_short_sfb.i71.i = getelementptr inbounds i8, ptr %add.ptr91, i64 18 - %259 = load i8, ptr %n_short_sfb.i71.i, align 2 - %conv1.i72.i = zext i8 %259 to i32 + %260 = load i8, ptr %n_short_sfb.i71.i, align 2 + %conv1.i72.i = zext i8 %260 to i32 %add.i73.i = add nuw nsw i32 %conv1.i72.i, %conv.i70.i - %tobool.not.i74.i = icmp eq i8 %259, 0 + %tobool.not.i74.i = icmp eq i8 %260, 0 %cond.i.i190 = select i1 %tobool.not.i74.i, i32 1, i32 3 - %260 = load ptr, ptr %add.ptr91, align 8 + %261 = load ptr, ptr %add.ptr91, align 8 store i32 -1, ptr %arrayidx.i.i75.i, align 4 store i32 -1, ptr %arrayidx1.i.i.i191, align 4 store i32 -1, ptr %max_band.i.i, align 4 @@ -104402,59 +104403,59 @@ for.cond3.preheader.preheader.i.i.i: ; preds = %if.then.i189 for.cond3.preheader.i.i.i: ; preds = %for.end.i.i.i, %for.cond3.preheader.preheader.i.i.i %indvars.iv28.i.i.i = phi i64 [ 0, %for.cond3.preheader.preheader.i.i.i ], [ %indvars.iv.next29.i.i.i, %for.end.i.i.i ] %right.addr.022.i.i.i = phi ptr [ %add.ptr.i76.i, %for.cond3.preheader.preheader.i.i.i ], [ %add.ptr.i.i80.i, %for.end.i.i.i ] - %arrayidx4.i.i.i = getelementptr inbounds i8, ptr %260, i64 %indvars.iv28.i.i.i - %261 = load i8, ptr %arrayidx4.i.i.i, align 1 - %cmp519.not.i.i.i = icmp eq i8 %261, 0 + %arrayidx4.i.i.i = getelementptr inbounds i8, ptr %261, i64 %indvars.iv28.i.i.i + %262 = load i8, ptr %arrayidx4.i.i.i, align 1 + %cmp519.not.i.i.i = icmp eq i8 %262, 0 br i1 %cmp519.not.i.i.i, label %for.end.i.i.i, label %for.body7.preheader.i.i.i for.body7.preheader.i.i.i: ; preds = %for.cond3.preheader.i.i.i - %262 = zext i8 %261 to i64 + %263 = zext i8 %262 to i64 br label %for.body7.i.i.i for.cond3.i.i.i: ; preds = %lor.lhs.false.i.i.i %indvars.iv.next.i.i79.i = add nuw nsw i64 %indvars.iv.i.i78.i, 2 - %cmp5.i.i.i192 = icmp ult i64 %indvars.iv.next.i.i79.i, %262 + %cmp5.i.i.i192 = icmp ult i64 %indvars.iv.next.i.i79.i, %263 br i1 %cmp5.i.i.i192, label %for.body7.i.i.i, label %for.end.i.i.i, !llvm.loop !870 for.body7.i.i.i: ; preds = %for.cond3.i.i.i, %for.body7.preheader.i.i.i %indvars.iv.i.i78.i = phi i64 [ 0, %for.body7.preheader.i.i.i ], [ %indvars.iv.next.i.i79.i, %for.cond3.i.i.i ] %arrayidx9.i.i.i = getelementptr inbounds float, ptr %right.addr.022.i.i.i, i64 %indvars.iv.i.i78.i - %263 = load float, ptr %arrayidx9.i.i.i, align 4 - %cmp10.i.i.i = fcmp une float %263, 0.000000e+00 + %264 = load float, ptr %arrayidx9.i.i.i, align 4 + %cmp10.i.i.i = fcmp une float %264, 0.000000e+00 br i1 %cmp10.i.i.i, label %if.then.i.i108.i, label %lor.lhs.false.i.i.i lor.lhs.false.i.i.i: ; preds = %for.body7.i.i.i - %264 = or disjoint i64 %indvars.iv.i.i78.i, 1 - %arrayidx13.i.i.i = getelementptr inbounds float, ptr %right.addr.022.i.i.i, i64 %264 - %265 = load float, ptr %arrayidx13.i.i.i, align 4 - %cmp14.i.i.i = fcmp une float %265, 0.000000e+00 + %265 = or disjoint i64 %indvars.iv.i.i78.i, 1 + %arrayidx13.i.i.i = getelementptr inbounds float, ptr %right.addr.022.i.i.i, i64 %265 + %266 = load float, ptr %arrayidx13.i.i.i, align 4 + %cmp14.i.i.i = fcmp une float %266, 0.000000e+00 br i1 %cmp14.i.i.i, label %if.then.i.i108.i, label %for.cond3.i.i.i if.then.i.i108.i: ; preds = %lor.lhs.false.i.i.i, %for.body7.i.i.i - %266 = trunc i64 %indvars.iv28.i.i.i to i32 - %rem.i.i.i = urem i32 %266, 3 + %267 = trunc i64 %indvars.iv28.i.i.i to i32 + %rem.i.i.i = urem i32 %267, 3 %idxprom16.i.i.i = zext nneg i32 %rem.i.i.i to i64 %arrayidx17.i.i.i = getelementptr inbounds i32, ptr %max_band.i.i, i64 %idxprom16.i.i.i - store i32 %266, ptr %arrayidx17.i.i.i, align 4 + store i32 %267, ptr %arrayidx17.i.i.i, align 4 br label %for.end.i.i.i for.end.i.i.i: ; preds = %for.cond3.i.i.i, %if.then.i.i108.i, %for.cond3.preheader.i.i.i - %idx.ext.i.pre-phi.i.i = phi i64 [ %262, %if.then.i.i108.i ], [ 0, %for.cond3.preheader.i.i.i ], [ %262, %for.cond3.i.i.i ] + %idx.ext.i.pre-phi.i.i = phi i64 [ %263, %if.then.i.i108.i ], [ 0, %for.cond3.preheader.i.i.i ], [ %263, %for.cond3.i.i.i ] %add.ptr.i.i80.i = getelementptr inbounds float, ptr %right.addr.022.i.i.i, i64 %idx.ext.i.pre-phi.i.i %indvars.iv.next29.i.i.i = add nuw nsw i64 %indvars.iv28.i.i.i, 1 %exitcond.not.i.i81.i = icmp eq i64 %indvars.iv.next29.i.i.i, %wide.trip.count.i.i77.i br i1 %exitcond.not.i.i81.i, label %ma_dr_mp3_L3_stereo_top_band.exit.i.i, label %for.cond3.preheader.i.i.i, !llvm.loop !871 ma_dr_mp3_L3_stereo_top_band.exit.i.i: ; preds = %for.end.i.i.i, %if.then.i189 - %tobool5.not.i.i = icmp eq i8 %258, 0 + %tobool5.not.i.i = icmp eq i8 %259, 0 br i1 %tobool5.not.i.i, label %if.end.i83.i, label %if.then.i82.i if.then.i82.i: ; preds = %ma_dr_mp3_L3_stereo_top_band.exit.i.i - %267 = load i32, ptr %max_band.i.i, align 4 - %268 = load i32, ptr %arrayidx1.i.i.i191, align 4 - %cond10.i.i = call i32 @llvm.smax.i32(i32 %267, i32 %268) - %269 = load i32, ptr %arrayidx.i.i75.i, align 4 - %.cond10.i.i = call i32 @llvm.smax.i32(i32 %cond10.i.i, i32 %269) + %268 = load i32, ptr %max_band.i.i, align 4 + %269 = load i32, ptr %arrayidx1.i.i.i191, align 4 + %cond10.i.i = call i32 @llvm.smax.i32(i32 %268, i32 %269) + %270 = load i32, ptr %arrayidx.i.i75.i, align 4 + %.cond10.i.i = call i32 @llvm.smax.i32(i32 %cond10.i.i, i32 %270) store i32 %.cond10.i.i, ptr %arrayidx.i.i75.i, align 4 store i32 %.cond10.i.i, ptr %arrayidx1.i.i.i191, align 4 store i32 %.cond10.i.i, ptr %max_band.i.i, align 4 @@ -104467,29 +104468,29 @@ if.end.i83.i: ; preds = %if.then.i82.i, %ma_ for.body.i85.i: ; preds = %cond.end48.i.i, %if.end.i83.i %indvars.iv.i86.i = phi i64 [ 0, %if.end.i83.i ], [ %indvars.iv.next.i87.i, %cond.end48.i.i ] - %270 = trunc i64 %indvars.iv.i86.i to i32 - %add38.i.i = add nsw i32 %sub.i84.i, %270 + %271 = trunc i64 %indvars.iv.i86.i to i32 + %add38.i.i = add nsw i32 %sub.i84.i, %271 %sub39.i.i = sub nsw i32 %add38.i.i, %cond.i.i190 %arrayidx40.i.i = getelementptr inbounds [3 x i32], ptr %max_band.i.i, i64 0, i64 %indvars.iv.i86.i - %271 = load i32, ptr %arrayidx40.i.i, align 4 - %cmp41.not.i.i = icmp slt i32 %271, %sub39.i.i + %272 = load i32, ptr %arrayidx40.i.i, align 4 + %cmp41.not.i.i = icmp slt i32 %272, %sub39.i.i br i1 %cmp41.not.i.i, label %cond.false44.i.i, label %cond.true43.i.i cond.true43.i.i: ; preds = %for.body.i85.i - %272 = load i8, ptr %arrayidx8.i.i, align 1 - %273 = and i8 %272, 8 - %tobool36.not.i.i = icmp eq i8 %273, 0 + %273 = load i8, ptr %arrayidx8.i.i, align 1 + %274 = and i8 %273, 8 + %tobool36.not.i.i = icmp eq i8 %274, 0 %cond37.i.i = select i1 %tobool36.not.i.i, i8 0, i8 3 br label %cond.end48.i.i cond.false44.i.i: ; preds = %for.body.i85.i %idxprom45.i.i = sext i32 %sub39.i.i to i64 %arrayidx46.i.i = getelementptr inbounds i8, ptr %arrayidx21.i, i64 %idxprom45.i.i - %274 = load i8, ptr %arrayidx46.i.i, align 1 + %275 = load i8, ptr %arrayidx46.i.i, align 1 br label %cond.end48.i.i cond.end48.i.i: ; preds = %cond.false44.i.i, %cond.true43.i.i - %cond49.i.i = phi i8 [ %cond37.i.i, %cond.true43.i.i ], [ %274, %cond.false44.i.i ] + %cond49.i.i = phi i8 [ %cond37.i.i, %cond.true43.i.i ], [ %275, %cond.false44.i.i ] %idxprom51.i.i = sext i32 %add38.i.i to i64 %arrayidx52.i.i = getelementptr inbounds i8, ptr %arrayidx21.i, i64 %idxprom51.i.i store i8 %cond49.i.i, ptr %arrayidx52.i.i, align 1 @@ -104498,39 +104499,39 @@ cond.end48.i.i: ; preds = %cond.false44.i.i, % br i1 %exitcond.not.i88.i, label %for.end.i.i, label %for.body.i85.i, !llvm.loop !872 for.end.i.i: ; preds = %cond.end48.i.i - %275 = load ptr, ptr %add.ptr91, align 8 + %276 = load ptr, ptr %add.ptr91, align 8 %scalefac_compress.i89.i = getelementptr inbounds i8, ptr %add.ptr91, i64 44 - %276 = load i16, ptr %scalefac_compress.i89.i, align 4 - %277 = and i16 %276, 1 - %and57.i.i = zext nneg i16 %277 to i32 - %278 = load i8, ptr %arrayidx8.i.i, align 1 - %279 = and i8 %278, 8 - %tobool.not.i.i90.i = icmp eq i8 %279, 0 + %277 = load i16, ptr %scalefac_compress.i89.i, align 4 + %278 = and i16 %277, 1 + %and57.i.i = zext nneg i16 %278 to i32 + %279 = load i8, ptr %arrayidx8.i.i, align 1 + %280 = and i8 %279, 8 + %tobool.not.i.i90.i = icmp eq i8 %280, 0 %cond.i.i91.i = select i1 %tobool.not.i.i90.i, i32 64, i32 7 - %280 = load i8, ptr %275, align 1 - %tobool2.not34.i.i.i = icmp eq i8 %280, 0 + %281 = load i8, ptr %276, align 1 + %tobool2.not34.i.i.i = icmp eq i8 %281, 0 br i1 %tobool2.not34.i.i.i, label %ma_dr_mp3_L3_intensity_stereo.exit.i, label %for.body.i.i92.i.preheader for.body.i.i92.i.preheader: ; preds = %for.end.i.i - %281 = and i8 %257, 32 - %tobool14.not.i.i.i = icmp eq i8 %281, 0 + %282 = and i8 %258, 32 + %tobool14.not.i.i.i = icmp eq i8 %282, 0 %cond15.i.i.i = select i1 %tobool14.not.i.i.i, float 1.000000e+00, float 0x3FF6A09E60000000 br label %for.body.i.i92.i for.body.i.i92.i: ; preds = %for.body.i.i92.i.preheader, %if.end46.i.i.i - %282 = phi i8 [ %297, %if.end46.i.i.i ], [ %280, %for.body.i.i92.i.preheader ] - %arrayidx138.i.i.i = phi ptr [ %arrayidx1.i24.i.i, %if.end46.i.i.i ], [ %275, %for.body.i.i92.i.preheader ] + %283 = phi i8 [ %298, %if.end46.i.i.i ], [ %281, %for.body.i.i92.i.preheader ] + %arrayidx138.i.i.i = phi ptr [ %arrayidx1.i24.i.i, %if.end46.i.i.i ], [ %276, %for.body.i.i92.i.preheader ] %idxprom37.i.i.i = phi i64 [ %idxprom.i.i97.i, %if.end46.i.i.i ], [ 0, %for.body.i.i92.i.preheader ] %left.addr.036.i.i.i = phi ptr [ %add.ptr.i23.i.i, %if.end46.i.i.i ], [ %grbuf, %for.body.i.i92.i.preheader ] %i.035.i.i.i = phi i32 [ %inc.i.i.i, %if.end46.i.i.i ], [ 0, %for.body.i.i92.i.preheader ] %arrayidx4.i20.i.i = getelementptr inbounds i8, ptr %arrayidx21.i, i64 %idxprom37.i.i.i - %283 = load i8, ptr %arrayidx4.i20.i.i, align 1 - %conv5.i.i93.i = zext i8 %283 to i32 + %284 = load i8, ptr %arrayidx4.i20.i.i, align 1 + %conv5.i.i93.i = zext i8 %284 to i32 %rem.i21.i.i = urem i32 %i.035.i.i.i, 3 %idxprom6.i.i.i193 = zext nneg i32 %rem.i21.i.i to i64 %arrayidx7.i.i94.i = getelementptr inbounds i32, ptr %max_band.i.i, i64 %idxprom6.i.i.i193 - %284 = load i32, ptr %arrayidx7.i.i94.i, align 4 - %cmp.i.i95.i = icmp sgt i32 %i.035.i.i.i, %284 + %285 = load i32, ptr %arrayidx7.i.i94.i, align 4 + %cmp.i.i95.i = icmp sgt i32 %i.035.i.i.i, %285 %cmp9.i.i.i194 = icmp ugt i32 %cond.i.i91.i, %conv5.i.i93.i %or.cond.i.i.i = select i1 %cmp.i.i95.i, i1 %cmp9.i.i.i194, i1 false br i1 %or.cond.i.i.i, label %if.then.i26.i.i, label %if.else36.i.i.i @@ -104542,11 +104543,11 @@ if.then20.i.i.i: ; preds = %if.then.i26.i.i %mul.i.i99.i = shl nuw nsw i32 %conv5.i.i93.i, 1 %idxprom21.i.i.i = zext nneg i32 %mul.i.i99.i to i64 %arrayidx22.i.i.i = getelementptr inbounds [14 x float], ptr @ma_dr_mp3_L3_stereo_process.g_pan, i64 0, i64 %idxprom21.i.i.i - %285 = load float, ptr %arrayidx22.i.i.i, align 8 + %286 = load float, ptr %arrayidx22.i.i.i, align 8 %add.i.i100.i = or disjoint i32 %mul.i.i99.i, 1 %idxprom24.i.i.i = zext nneg i32 %add.i.i100.i to i64 %arrayidx25.i.i.i = getelementptr inbounds [14 x float], ptr @ma_dr_mp3_L3_stereo_process.g_pan, i64 0, i64 %idxprom24.i.i.i - %286 = load float, ptr %arrayidx25.i.i.i, align 4 + %287 = load float, ptr %arrayidx25.i.i.i, align 4 br label %for.body.preheader.i.i.i.i if.else.i.i101.i: ; preds = %if.then.i26.i.i @@ -104562,11 +104563,11 @@ do.body.i.i.i.i: ; preds = %do.body.i.i.i.i, %i %and.i.i.i104.i = and i32 %cond.i.i.i.i, 3 %idxprom.i.i.i.i212 = zext nneg i32 %and.i.i.i104.i to i64 %arrayidx.i.i.i.i = getelementptr inbounds [4 x float], ptr @ma_dr_mp3_L3_ldexp_q2.g_expfrac, i64 0, i64 %idxprom.i.i.i.i212 - %287 = load float, ptr %arrayidx.i.i.i.i, align 4 + %288 = load float, ptr %arrayidx.i.i.i.i, align 4 %shr.i.i.i105.i = ashr i32 %cond.i.i.i.i, 2 %shr1.i.i.i.i = lshr i32 1073741824, %shr.i.i.i105.i %conv.i.i.i106.i = sitofp i32 %shr1.i.i.i.i to float - %mul.i.i.i.i = fmul float %287, %conv.i.i.i106.i + %mul.i.i.i.i = fmul float %288, %conv.i.i.i106.i %mul2.i.i.i.i = fmul float %y.addr.0.i.i.i.i, %mul.i.i.i.i %sub.i.i.i107.i = sub nsw i32 %exp_q2.addr.0.i.i.i.i, %cond.i.i.i.i %cmp3.i.i.i.i = icmp sgt i32 %sub.i.i.i107.i, 0 @@ -104581,21 +104582,21 @@ if.then29.i.i.i: ; preds = %ma_dr_mp3_L3_ldexp_ br label %for.body.preheader.i.i.i.i for.body.preheader.i.i.i.i: ; preds = %if.then29.i.i.i, %ma_dr_mp3_L3_ldexp_q2.exit.i.i.i, %if.then20.i.i.i - %kl.0.i.i.i = phi float [ %285, %if.then20.i.i.i ], [ %mul2.i.i.i.i, %if.then29.i.i.i ], [ 1.000000e+00, %ma_dr_mp3_L3_ldexp_q2.exit.i.i.i ] - %kr.0.i.i.i = phi float [ %286, %if.then20.i.i.i ], [ 1.000000e+00, %if.then29.i.i.i ], [ %mul2.i.i.i.i, %ma_dr_mp3_L3_ldexp_q2.exit.i.i.i ] + %kl.0.i.i.i = phi float [ %286, %if.then20.i.i.i ], [ %mul2.i.i.i.i, %if.then29.i.i.i ], [ 1.000000e+00, %ma_dr_mp3_L3_ldexp_q2.exit.i.i.i ] + %kr.0.i.i.i = phi float [ %287, %if.then20.i.i.i ], [ 1.000000e+00, %if.then29.i.i.i ], [ %mul2.i.i.i.i, %ma_dr_mp3_L3_ldexp_q2.exit.i.i.i ] %mul34.i.i.i = fmul float %cond15.i.i.i, %kl.0.i.i.i %mul35.i.i.i = fmul float %cond15.i.i.i, %kr.0.i.i.i - %wide.trip.count.i.i.i.i = zext i8 %282 to i64 + %wide.trip.count.i.i.i.i = zext i8 %283 to i64 br label %for.body.i.i.i.i for.body.i.i.i.i: ; preds = %for.body.i.i.i.i, %for.body.preheader.i.i.i.i %indvars.iv.i.i.i.i = phi i64 [ 0, %for.body.preheader.i.i.i.i ], [ %indvars.iv.next.i.i.i.i, %for.body.i.i.i.i ] %arrayidx.i22.i.i.i = getelementptr inbounds float, ptr %left.addr.036.i.i.i, i64 %indvars.iv.i.i.i.i - %288 = load float, ptr %arrayidx.i22.i.i.i, align 4 - %mul.i23.i.i.i = fmul float %mul35.i.i.i, %288 + %289 = load float, ptr %arrayidx.i22.i.i.i, align 4 + %mul.i23.i.i.i = fmul float %mul35.i.i.i, %289 %arrayidx2.i.i.i.i211 = getelementptr i8, ptr %arrayidx.i22.i.i.i, i64 2304 store float %mul.i23.i.i.i, ptr %arrayidx2.i.i.i.i211, align 4 - %mul5.i.i.i.i = fmul float %mul34.i.i.i, %288 + %mul5.i.i.i.i = fmul float %mul34.i.i.i, %289 store float %mul5.i.i.i.i, ptr %arrayidx.i22.i.i.i, align 4 %indvars.iv.next.i.i.i.i = add nuw nsw i64 %indvars.iv.i.i.i.i, 1 %exitcond.not.i.i.i.i = icmp eq i64 %indvars.iv.next.i.i.i.i, %wide.trip.count.i.i.i.i @@ -104605,67 +104606,67 @@ if.else36.i.i.i: ; preds = %for.body.i.i92.i br i1 %tobool14.not.i.i.i, label %if.end46.i.i.i, label %if.then41.i.i.i if.then41.i.i.i: ; preds = %if.else36.i.i.i - %conv44.i.i.i = zext i8 %282 to i32 + %conv44.i.i.i = zext i8 %283 to i32 %add.ptr.i.i.i96.i = getelementptr inbounds i8, ptr %left.addr.036.i.i.i, i64 2304 - %cmp26.i.i.i.i = icmp ugt i8 %282, 3 + %cmp26.i.i.i.i = icmp ugt i8 %283, 3 br i1 %cmp26.i.i.i.i, label %for.body.preheader.i28.i.i.i, label %for.end.i.i.i.i for.body.preheader.i28.i.i.i: ; preds = %if.then41.i.i.i %sub.i29.i.i.i = add nsw i32 %conv44.i.i.i, -3 - %289 = zext nneg i32 %sub.i29.i.i.i to i64 + %290 = zext nneg i32 %sub.i29.i.i.i to i64 br label %for.body.i30.i.i.i for.body.i30.i.i.i: ; preds = %for.body.i30.i.i.i, %for.body.preheader.i28.i.i.i %indvars.iv.i31.i.i.i = phi i64 [ 0, %for.body.preheader.i28.i.i.i ], [ %indvars.iv.next.i32.i.i.i, %for.body.i30.i.i.i ] %add.ptr1.i.i.i.i = getelementptr inbounds float, ptr %left.addr.036.i.i.i, i64 %indvars.iv.i31.i.i.i - %290 = load <4 x float>, ptr %add.ptr1.i.i.i.i, align 1 + %291 = load <4 x float>, ptr %add.ptr1.i.i.i.i, align 1 %add.ptr4.i.i.i.i = getelementptr inbounds float, ptr %add.ptr.i.i.i96.i, i64 %indvars.iv.i31.i.i.i - %291 = load <4 x float>, ptr %add.ptr4.i.i.i.i, align 1 - %add.i.i.i.i.i = fadd <4 x float> %290, %291 + %292 = load <4 x float>, ptr %add.ptr4.i.i.i.i, align 1 + %add.i.i.i.i.i = fadd <4 x float> %291, %292 store <4 x float> %add.i.i.i.i.i, ptr %add.ptr1.i.i.i.i, align 1 - %sub.i.i.i.i.i = fsub <4 x float> %290, %291 + %sub.i.i.i.i.i = fsub <4 x float> %291, %292 store <4 x float> %sub.i.i.i.i.i, ptr %add.ptr4.i.i.i.i, align 1 %indvars.iv.next.i32.i.i.i = add nuw nsw i64 %indvars.iv.i31.i.i.i, 4 - %cmp.i.i.i98.i = icmp ult i64 %indvars.iv.next.i32.i.i.i, %289 + %cmp.i.i.i98.i = icmp ult i64 %indvars.iv.next.i32.i.i.i, %290 br i1 %cmp.i.i.i98.i, label %for.body.i30.i.i.i, label %for.end.loopexit.i.i.i.i, !llvm.loop !874 for.end.loopexit.i.i.i.i: ; preds = %for.body.i30.i.i.i - %292 = trunc i64 %indvars.iv.next.i32.i.i.i to i32 + %293 = trunc i64 %indvars.iv.next.i32.i.i.i to i32 br label %for.end.i.i.i.i for.end.i.i.i.i: ; preds = %for.end.loopexit.i.i.i.i, %if.then41.i.i.i - %i.0.lcssa.i.i.i.i = phi i32 [ 0, %if.then41.i.i.i ], [ %292, %for.end.loopexit.i.i.i.i ] + %i.0.lcssa.i.i.i.i = phi i32 [ 0, %if.then41.i.i.i ], [ %293, %for.end.loopexit.i.i.i.i ] %cmp1928.i.i.i.i.not = icmp slt i32 %i.0.lcssa.i.i.i.i, %conv44.i.i.i br i1 %cmp1928.i.i.i.i.not, label %for.body21.preheader.i.i.i.i, label %if.end46.i.i.i for.body21.preheader.i.i.i.i: ; preds = %for.end.i.i.i.i - %293 = zext nneg i32 %i.0.lcssa.i.i.i.i to i64 - %wide.trip.count.i25.i.i.i = zext i8 %282 to i64 + %294 = zext nneg i32 %i.0.lcssa.i.i.i.i to i64 + %wide.trip.count.i25.i.i.i = zext i8 %283 to i64 br label %for.body21.i.i.i.i for.body21.i.i.i.i: ; preds = %for.body21.i.i.i.i, %for.body21.preheader.i.i.i.i - %indvars.iv31.i.i.i.i = phi i64 [ %293, %for.body21.preheader.i.i.i.i ], [ %indvars.iv.next32.i.i.i.i, %for.body21.i.i.i.i ] + %indvars.iv31.i.i.i.i = phi i64 [ %294, %for.body21.preheader.i.i.i.i ], [ %indvars.iv.next32.i.i.i.i, %for.body21.i.i.i.i ] %arrayidx.i26.i.i.i = getelementptr inbounds float, ptr %left.addr.036.i.i.i, i64 %indvars.iv31.i.i.i.i - %294 = load float, ptr %arrayidx.i26.i.i.i, align 4 + %295 = load float, ptr %arrayidx.i26.i.i.i, align 4 %arrayidx23.i.i.i.i = getelementptr inbounds float, ptr %add.ptr.i.i.i96.i, i64 %indvars.iv31.i.i.i.i - %295 = load float, ptr %arrayidx23.i.i.i.i, align 4 - %add24.i.i.i.i = fadd float %294, %295 + %296 = load float, ptr %arrayidx23.i.i.i.i, align 4 + %add24.i.i.i.i = fadd float %295, %296 store float %add24.i.i.i.i, ptr %arrayidx.i26.i.i.i, align 4 - %sub27.i.i.i.i = fsub float %294, %295 + %sub27.i.i.i.i = fsub float %295, %296 store float %sub27.i.i.i.i, ptr %arrayidx23.i.i.i.i, align 4 %indvars.iv.next32.i.i.i.i = add nuw nsw i64 %indvars.iv31.i.i.i.i, 1 %exitcond.not.i27.i.i.i = icmp eq i64 %indvars.iv.next32.i.i.i.i, %wide.trip.count.i25.i.i.i br i1 %exitcond.not.i27.i.i.i, label %if.end46.i.i.i, label %for.body21.i.i.i.i, !llvm.loop !875 if.end46.i.i.i: ; preds = %for.body21.i.i.i.i, %for.body.i.i.i.i, %for.end.i.i.i.i, %if.else36.i.i.i - %296 = load i8, ptr %arrayidx138.i.i.i, align 1 - %idx.ext.i22.i.i = zext i8 %296 to i64 + %297 = load i8, ptr %arrayidx138.i.i.i, align 1 + %idx.ext.i22.i.i = zext i8 %297 to i64 %add.ptr.i23.i.i = getelementptr inbounds float, ptr %left.addr.036.i.i.i, i64 %idx.ext.i22.i.i %inc.i.i.i = add i32 %i.035.i.i.i, 1 %idxprom.i.i97.i = zext i32 %inc.i.i.i to i64 - %arrayidx1.i24.i.i = getelementptr inbounds i8, ptr %275, i64 %idxprom.i.i97.i - %297 = load i8, ptr %arrayidx1.i24.i.i, align 1 - %tobool2.not.i.i.i = icmp eq i8 %297, 0 + %arrayidx1.i24.i.i = getelementptr inbounds i8, ptr %276, i64 %idxprom.i.i97.i + %298 = load i8, ptr %arrayidx1.i24.i.i, align 1 + %tobool2.not.i.i.i = icmp eq i8 %298, 0 br i1 %tobool2.not.i.i.i, label %ma_dr_mp3_L3_intensity_stereo.exit.i, label %for.body.i.i92.i, !llvm.loop !876 ma_dr_mp3_L3_intensity_stereo.exit.i: ; preds = %if.end46.i.i.i, %for.end.i.i @@ -104680,12 +104681,12 @@ if.else.i213: ; preds = %for.end.i186 for.body.i110.i: ; preds = %if.else.i213, %for.body.i110.i %indvars.iv.i111.i = phi i64 [ %indvars.iv.next.i114.i, %for.body.i110.i ], [ 0, %if.else.i213 ] %add.ptr1.i.i = getelementptr inbounds float, ptr %grbuf, i64 %indvars.iv.i111.i - %298 = load <4 x float>, ptr %add.ptr1.i.i, align 8 + %299 = load <4 x float>, ptr %add.ptr1.i.i, align 8 %add.ptr4.i.i = getelementptr inbounds float, ptr %add.ptr.i76.i, i64 %indvars.iv.i111.i - %299 = load <4 x float>, ptr %add.ptr4.i.i, align 8 - %add.i.i112.i = fadd <4 x float> %298, %299 + %300 = load <4 x float>, ptr %add.ptr4.i.i, align 8 + %add.i.i112.i = fadd <4 x float> %299, %300 store <4 x float> %add.i.i112.i, ptr %add.ptr1.i.i, align 8 - %sub.i.i113.i = fsub <4 x float> %298, %299 + %sub.i.i113.i = fsub <4 x float> %299, %300 store <4 x float> %sub.i.i113.i, ptr %add.ptr4.i.i, align 8 %indvars.iv.next.i114.i = add nuw nsw i64 %indvars.iv.i111.i, 4 %cmp.i115.i = icmp ult i64 %indvars.iv.i111.i, 569 @@ -104702,15 +104703,15 @@ for.body39.i: ; preds = %ma_dr_mp3_L3_change %indvars.iv178.i = phi i64 [ 0, %for.body39.lr.ph.i ], [ %indvars.iv.next179.i, %ma_dr_mp3_L3_change_sign.exit.i ] %gr_info.addr.0171.i = phi ptr [ %add.ptr91, %for.body39.lr.ph.i ], [ %incdec.ptr.i209, %ma_dr_mp3_L3_change_sign.exit.i ] %mixed_block_flag.i195 = getelementptr inbounds i8, ptr %gr_info.addr.0171.i, i64 16 - %300 = load i8, ptr %mixed_block_flag.i195, align 8 - %tobool41.not.i = icmp eq i8 %300, 0 + %301 = load i8, ptr %mixed_block_flag.i195, align 8 + %tobool41.not.i = icmp eq i8 %301, 0 %cond.i196 = select i1 %tobool41.not.i, i32 0, i32 2 - %301 = load i8, ptr %arrayidx43.i, align 2 - %302 = lshr i8 %301, 2 - %303 = and i8 %302, 3 - %and45.i = zext nneg i8 %303 to i32 - %304 = load i8, ptr %arrayidx8.i.i, align 1 - %conv48.i = zext i8 %304 to i32 + %302 = load i8, ptr %arrayidx43.i, align 2 + %303 = lshr i8 %302, 2 + %304 = and i8 %303, 3 + %and45.i = zext nneg i8 %304 to i32 + %305 = load i8, ptr %arrayidx8.i.i, align 1 + %conv48.i = zext i8 %305 to i32 %shr49.i = lshr i32 %conv48.i, 3 %and50.i = and i32 %shr49.i, 1 %shr54.i = lshr i32 %conv48.i, 4 @@ -104722,8 +104723,8 @@ for.body39.i: ; preds = %ma_dr_mp3_L3_change %conv59.i198 = zext i1 %cmp58.i to i32 %shl.i199 = shl nuw nsw i32 %cond.i196, %conv59.i198 %n_short_sfb.i200 = getelementptr inbounds i8, ptr %gr_info.addr.0171.i, i64 18 - %305 = load i8, ptr %n_short_sfb.i200, align 2 - %tobool60.not.i = icmp eq i8 %305, 0 + %306 = load i8, ptr %n_short_sfb.i200, align 2 + %tobool60.not.i = icmp eq i8 %306, 0 br i1 %tobool60.not.i, label %if.end74.thread.i, label %if.then61.i if.end74.thread.i: ; preds = %for.body39.i @@ -104736,22 +104737,22 @@ if.then61.i: ; preds = %for.body39.i %mul66.i = mul nuw nsw i32 %shl.i199, 18 %idx.ext67.i = zext nneg i32 %mul66.i to i64 %add.ptr68.i = getelementptr inbounds float, ptr %arrayidx64.i, i64 %idx.ext67.i - %306 = load ptr, ptr %gr_info.addr.0171.i, align 8 + %307 = load ptr, ptr %gr_info.addr.0171.i, align 8 %n_long_sfb.i202 = getelementptr inbounds i8, ptr %gr_info.addr.0171.i, i64 17 - %307 = load i8, ptr %n_long_sfb.i202, align 1 - %idx.ext72.i = zext i8 %307 to i64 - %add.ptr73.i = getelementptr inbounds i8, ptr %306, i64 %idx.ext72.i - %308 = load i8, ptr %add.ptr73.i, align 1 - %cmp.not21.i.i = icmp eq i8 %308, 0 + %308 = load i8, ptr %n_long_sfb.i202, align 1 + %idx.ext72.i = zext i8 %308 to i64 + %add.ptr73.i = getelementptr inbounds i8, ptr %307, i64 %idx.ext72.i + %309 = load i8, ptr %add.ptr73.i, align 1 + %cmp.not21.i.i = icmp eq i8 %309, 0 br i1 %cmp.not21.i.i, label %if.end74.i, label %for.cond2.preheader.i.i for.cond2.preheader.i.i: ; preds = %if.then61.i, %for.inc15.i.i - %309 = phi i8 [ %313, %for.inc15.i.i ], [ %308, %if.then61.i ] + %310 = phi i8 [ %314, %for.inc15.i.i ], [ %309, %if.then61.i ] %dst.024.i.i = phi ptr [ %incdec.ptr13.i.i, %for.inc15.i.i ], [ %syn.i, %if.then61.i ] %src.023.i.i = phi ptr [ %add.ptr17.i.i, %for.inc15.i.i ], [ %add.ptr68.i, %if.then61.i ] %sfb.addr.022.i.i = phi ptr [ %add.ptr.i122.i, %for.inc15.i.i ], [ %add.ptr73.i, %if.then61.i ] - %conv25.i.i = zext i8 %309 to i32 - %idxprom7.i.i = zext i8 %309 to i64 + %conv25.i.i = zext i8 %310 to i32 + %idxprom7.i.i = zext i8 %310 to i64 %mul10.i.i = shl nuw nsw i32 %conv25.i.i, 1 %idxprom11.i117.i = zext nneg i32 %mul10.i.i to i64 br label %for.body5.i.i @@ -104760,17 +104761,17 @@ for.body5.i.i: ; preds = %for.body5.i.i, %for %dst.119.i.i = phi ptr [ %dst.024.i.i, %for.cond2.preheader.i.i ], [ %incdec.ptr13.i.i, %for.body5.i.i ] %src.118.i.i = phi ptr [ %src.023.i.i, %for.cond2.preheader.i.i ], [ %incdec.ptr14.i.i, %for.body5.i.i ] %i.017.i.i = phi i32 [ 0, %for.cond2.preheader.i.i ], [ %inc.i.i203, %for.body5.i.i ] - %310 = load float, ptr %src.118.i.i, align 4 + %311 = load float, ptr %src.118.i.i, align 4 %incdec.ptr.i118.i = getelementptr inbounds i8, ptr %dst.119.i.i, i64 4 - store float %310, ptr %dst.119.i.i, align 4 + store float %311, ptr %dst.119.i.i, align 4 %arrayidx8.i119.i = getelementptr inbounds float, ptr %src.118.i.i, i64 %idxprom7.i.i - %311 = load float, ptr %arrayidx8.i119.i, align 4 + %312 = load float, ptr %arrayidx8.i119.i, align 4 %incdec.ptr9.i.i = getelementptr inbounds i8, ptr %dst.119.i.i, i64 8 - store float %311, ptr %incdec.ptr.i118.i, align 4 + store float %312, ptr %incdec.ptr.i118.i, align 4 %arrayidx12.i120.i = getelementptr inbounds float, ptr %src.118.i.i, i64 %idxprom11.i117.i - %312 = load float, ptr %arrayidx12.i120.i, align 4 + %313 = load float, ptr %arrayidx12.i120.i, align 4 %incdec.ptr13.i.i = getelementptr inbounds i8, ptr %dst.119.i.i, i64 12 - store float %312, ptr %incdec.ptr9.i.i, align 4 + store float %313, ptr %incdec.ptr9.i.i, align 4 %inc.i.i203 = add nuw nsw i32 %i.017.i.i, 1 %incdec.ptr14.i.i = getelementptr inbounds i8, ptr %src.118.i.i, i64 4 %exitcond.not.i121.i = icmp eq i32 %inc.i.i203, %conv25.i.i @@ -104779,8 +104780,8 @@ for.body5.i.i: ; preds = %for.body5.i.i, %for for.inc15.i.i: ; preds = %for.body5.i.i %add.ptr.i122.i = getelementptr inbounds i8, ptr %sfb.addr.022.i.i, i64 3 %add.ptr17.i.i = getelementptr inbounds float, ptr %incdec.ptr14.i.i, i64 %idxprom11.i117.i - %313 = load i8, ptr %add.ptr.i122.i, align 1 - %cmp.not.i.i = icmp eq i8 %313, 0 + %314 = load i8, ptr %add.ptr.i122.i, align 1 + %cmp.not.i.i = icmp eq i8 %314, 0 br i1 %cmp.not.i.i, label %ma_dr_mp3_L3_reorder.exit.loopexit.i, label %for.cond2.preheader.i.i, !llvm.loop !878 ma_dr_mp3_L3_reorder.exit.loopexit.i: ; preds = %for.inc15.i.i @@ -104796,7 +104797,7 @@ if.end74.i: ; preds = %ma_dr_mp3_L3_reorde ma_dr_mp3_L3_antialias.exit.i.thread: ; preds = %if.end74.i %arrayidx84.i549 = getelementptr inbounds [2 x [288 x float]], ptr %dec, i64 0, i64 %indvars.iv178.i %block_type.i205550 = getelementptr inbounds i8, ptr %gr_info.addr.0171.i, i64 15 - %314 = load i8, ptr %block_type.i205550, align 1 + %315 = load i8, ptr %block_type.i205550, align 1 br label %if.end.thread.i.i for.body3.preheader.i.preheader.i: ; preds = %if.end74.i, %if.end74.thread.i @@ -104815,21 +104816,21 @@ for.body3.i.i: ; preds = %for.body3.i.i, %for %cmp2.old.i.i = phi i1 [ false, %for.body3.i.i ], [ true, %for.body3.preheader.i.i ] %i.0.i.i = phi i64 [ 4, %for.body3.i.i ], [ 0, %for.body3.preheader.i.i ] %add.ptr4.i127.i = getelementptr inbounds float, ptr %add.ptr.i126.i204, i64 %i.0.i.i - %315 = load <4 x float>, ptr %add.ptr4.i127.i, align 1 + %316 = load <4 x float>, ptr %add.ptr4.i127.i, align 1 %idx.neg.i.i = sub nsw i64 0, %i.0.i.i %add.ptr8.i.i = getelementptr inbounds float, ptr %add.ptr6.i.i, i64 %idx.neg.i.i - %316 = load <4 x float>, ptr %add.ptr8.i.i, align 1 + %317 = load <4 x float>, ptr %add.ptr8.i.i, align 1 %add.ptr11.i.i = getelementptr inbounds float, ptr @ma_dr_mp3_L3_antialias.g_aa, i64 %i.0.i.i - %317 = load <4 x float>, ptr %add.ptr11.i.i, align 16 + %318 = load <4 x float>, ptr %add.ptr11.i.i, align 16 %add.ptr14.i.i = getelementptr inbounds float, ptr getelementptr inbounds ([2 x [8 x float]], ptr @ma_dr_mp3_L3_antialias.g_aa, i64 0, i64 1), i64 %i.0.i.i - %318 = load <4 x float>, ptr %add.ptr14.i.i, align 16 - %shufp.i.i = shufflevector <4 x float> %316, <4 x float> poison, <4 x i32> - %mul.i41.i.i = fmul <4 x float> %315, %317 - %mul.i38.i.i = fmul <4 x float> %shufp.i.i, %318 + %319 = load <4 x float>, ptr %add.ptr14.i.i, align 16 + %shufp.i.i = shufflevector <4 x float> %317, <4 x float> poison, <4 x i32> + %mul.i41.i.i = fmul <4 x float> %316, %318 + %mul.i38.i.i = fmul <4 x float> %shufp.i.i, %319 %sub.i.i128.i = fsub <4 x float> %mul.i41.i.i, %mul.i38.i.i store <4 x float> %sub.i.i128.i, ptr %add.ptr4.i127.i, align 1 - %mul.i35.i.i = fmul <4 x float> %315, %318 - %mul.i.i129.i = fmul <4 x float> %shufp.i.i, %317 + %mul.i35.i.i = fmul <4 x float> %316, %319 + %mul.i.i129.i = fmul <4 x float> %shufp.i.i, %318 %add.i.i130.i = fadd <4 x float> %mul.i.i129.i, %mul.i35.i.i %shufp29.i.i = shufflevector <4 x float> %add.i.i130.i, <4 x float> poison, <4 x i32> store <4 x float> %shufp29.i.i, ptr %add.ptr8.i.i, align 1 @@ -104843,26 +104844,26 @@ for.inc30.i.i: ; preds = %for.body3.i.i ma_dr_mp3_L3_antialias.exit.i: ; preds = %for.inc30.i.i %arrayidx84.i = getelementptr inbounds [2 x [288 x float]], ptr %dec, i64 0, i64 %indvars.iv178.i %block_type.i205 = getelementptr inbounds i8, ptr %gr_info.addr.0171.i, i64 15 - %319 = load i8, ptr %block_type.i205, align 1 + %320 = load i8, ptr %block_type.i205, align 1 br i1 %tobool41.not.i, label %if.end.thread.i.i, label %if.end.i134.i if.end.i134.i: ; preds = %ma_dr_mp3_L3_antialias.exit.i - %320 = getelementptr inbounds [2 x [576 x float]], ptr %grbuf, i64 0, i64 %indvars.iv178.i + %321 = getelementptr inbounds [2 x [576 x float]], ptr %grbuf, i64 0, i64 %indvars.iv178.i call fastcc void @ma_dr_mp3_L3_imdct36(ptr noundef nonnull %arrayidx77189.i, ptr noundef %arrayidx84.i, ptr noundef nonnull @ma_dr_mp3_L3_imdct_gr.g_mdct_window, i32 noundef %shl.i199) %mul.i.i206 = mul nuw nsw i32 %shl.i199, 18 %idx.ext.i135.i = zext nneg i32 %mul.i.i206 to i64 - %add.ptr.i136.i = getelementptr inbounds float, ptr %320, i64 %idx.ext.i135.i + %add.ptr.i136.i = getelementptr inbounds float, ptr %321, i64 %idx.ext.i135.i %mul1.i.i = mul nuw nsw i32 %shl.i199, 9 %idx.ext2.i.i = zext nneg i32 %mul1.i.i to i64 %add.ptr3.i.i = getelementptr inbounds float, ptr %arrayidx84.i, i64 %idx.ext2.i.i - %cmp.i137.i = icmp eq i8 %319, 2 + %cmp.i137.i = icmp eq i8 %320, 2 br i1 %cmp.i137.i, label %for.body.lr.ph.i.i140.i, label %if.else.i138.i if.end.thread.i.i: ; preds = %ma_dr_mp3_L3_antialias.exit.i.thread, %ma_dr_mp3_L3_antialias.exit.i - %321 = phi i8 [ %314, %ma_dr_mp3_L3_antialias.exit.i.thread ], [ %319, %ma_dr_mp3_L3_antialias.exit.i ] + %322 = phi i8 [ %315, %ma_dr_mp3_L3_antialias.exit.i.thread ], [ %320, %ma_dr_mp3_L3_antialias.exit.i ] %arrayidx84.i555 = phi ptr [ %arrayidx84.i549, %ma_dr_mp3_L3_antialias.exit.i.thread ], [ %arrayidx84.i, %ma_dr_mp3_L3_antialias.exit.i ] %arrayidx77188.i554 = phi ptr [ %arrayidx64.i, %ma_dr_mp3_L3_antialias.exit.i.thread ], [ %arrayidx77189.i, %ma_dr_mp3_L3_antialias.exit.i ] - %cmp15.i.i = icmp eq i8 %321, 2 + %cmp15.i.i = icmp eq i8 %322, 2 br i1 %cmp15.i.i, label %for.body.lr.ph.i.i140.i, label %if.else.i138.i for.body.lr.ph.i.i140.i: ; preds = %if.end.thread.i.i, %if.end.i134.i @@ -104920,24 +104921,24 @@ for.body.i.i142.i: ; preds = %ma_dr_mp3_L3_imdct1 %add5.i.i.i.i = fadd float %tmp.sroa.10.0.copyload.i.i.i, %tmp.sroa.13.0.copyload.i.i.i %mul.i.i.i.i.i = fmul float %add.i.i.i143.i, 0x3FEBB67AE0000000 %neg.i.i.i.i.i = fneg float %add5.i.i.i.i - %322 = call float @llvm.fmuladd.f32(float %neg.i.i.i.i.i, float 5.000000e-01, float %fneg.i.i.i.i) - %add2.i.i.i.i.i = fadd float %mul.i.i.i.i.i, %322 + %323 = call float @llvm.fmuladd.f32(float %neg.i.i.i.i.i, float 5.000000e-01, float %fneg.i.i.i.i) + %add2.i.i.i.i.i = fadd float %mul.i.i.i.i.i, %323 store float %add2.i.i.i.i.i, ptr %co.i.i.i.i, align 4 - %323 = insertelement <2 x float> poison, float %add5.i.i.i.i, i64 0 - %324 = insertelement <2 x float> %323, float %322, i64 1 - %325 = insertelement <2 x float> poison, float %tmp.sroa.0.0.copyload.i.i.i, i64 0 - %326 = insertelement <2 x float> %325, float %mul.i.i.i.i.i, i64 1 - %327 = fsub <2 x float> %324, %326 - store <2 x float> %327, ptr %arrayidx.i.i.i.i.i, align 4 + %324 = insertelement <2 x float> poison, float %add5.i.i.i.i, i64 0 + %325 = insertelement <2 x float> %324, float %323, i64 1 + %326 = insertelement <2 x float> poison, float %tmp.sroa.0.0.copyload.i.i.i, i64 0 + %327 = insertelement <2 x float> %326, float %mul.i.i.i.i.i, i64 1 + %328 = fsub <2 x float> %325, %327 + store <2 x float> %328, ptr %arrayidx.i.i.i.i.i, align 4 %sub.i.i.i146.i = fsub float %tmp.sroa.13.0.copyload.i.i.i, %tmp.sroa.10.0.copyload.i.i.i %sub11.i.i.i147.i = fsub float %tmp.sroa.7.0.copyload.i.i.i, %tmp.sroa.4.0.copyload.i.i.i %mul.i31.i.i.i.i = fmul float %sub.i.i.i146.i, 0x3FEBB67AE0000000 %neg.i32.i.i.i.i = fneg float %sub11.i.i.i147.i - %328 = call float @llvm.fmuladd.f32(float %neg.i32.i.i.i.i, float 5.000000e-01, float %tmp.sroa.16.0.copyload.i.i.i) + %329 = call float @llvm.fmuladd.f32(float %neg.i32.i.i.i.i, float 5.000000e-01, float %tmp.sroa.16.0.copyload.i.i.i) %add.i33.i.i.i.i = fadd float %sub11.i.i.i147.i, %tmp.sroa.16.0.copyload.i.i.i - %add2.i35.i.i.i.i = fadd float %mul.i31.i.i.i.i, %328 + %add2.i35.i.i.i.i = fadd float %mul.i31.i.i.i.i, %329 store float %add2.i35.i.i.i.i, ptr %si.i.i.i.i, align 4 - %sub.i36.i.i.i.i = fsub float %328, %mul.i31.i.i.i.i + %sub.i36.i.i.i.i = fsub float %329, %mul.i31.i.i.i.i store float %sub.i36.i.i.i.i, ptr %arrayidx4.i37.i.i.i.i, align 4 %fneg14.i.i.i.i = fneg float %add.i33.i.i.i.i store float %fneg14.i.i.i.i, ptr %arrayidx.i34.i.i.i.i, align 4 @@ -104946,37 +104947,37 @@ for.body.i.i142.i: ; preds = %ma_dr_mp3_L3_imdct1 for.body.i.i.i148.i: ; preds = %for.body.i.i.i148.i, %for.body.i.i142.i %indvars.iv.i.i.i149.i = phi i64 [ 0, %for.body.i.i142.i ], [ %indvars.iv.next.i.i.i151.i, %for.body.i.i.i148.i ] %arrayidx16.i.i.i.i = getelementptr inbounds float, ptr %add.ptr2.i.i.i, i64 %indvars.iv.i.i.i149.i - %329 = load float, ptr %arrayidx16.i.i.i.i, align 4 + %330 = load float, ptr %arrayidx16.i.i.i.i, align 4 %arrayidx18.i.i.i.i210 = getelementptr inbounds [3 x float], ptr %co.i.i.i.i, i64 0, i64 %indvars.iv.i.i.i149.i - %330 = load float, ptr %arrayidx18.i.i.i.i210, align 4 - %331 = add nuw nsw i64 %indvars.iv.i.i.i149.i, 3 - %arrayidx21.i.i.i.i = getelementptr inbounds [6 x float], ptr @ma_dr_mp3_L3_imdct12.g_twid3, i64 0, i64 %331 - %332 = load float, ptr %arrayidx21.i.i.i.i, align 4 + %331 = load float, ptr %arrayidx18.i.i.i.i210, align 4 + %332 = add nuw nsw i64 %indvars.iv.i.i.i149.i, 3 + %arrayidx21.i.i.i.i = getelementptr inbounds [6 x float], ptr @ma_dr_mp3_L3_imdct12.g_twid3, i64 0, i64 %332 + %333 = load float, ptr %arrayidx21.i.i.i.i, align 4 %arrayidx23.i.i.i150.i = getelementptr inbounds [3 x float], ptr %si.i.i.i.i, i64 0, i64 %indvars.iv.i.i.i149.i - %333 = load float, ptr %arrayidx23.i.i.i150.i, align 4 + %334 = load float, ptr %arrayidx23.i.i.i150.i, align 4 %arrayidx26.i.i.i.i = getelementptr inbounds [6 x float], ptr @ma_dr_mp3_L3_imdct12.g_twid3, i64 0, i64 %indvars.iv.i.i.i149.i - %334 = load float, ptr %arrayidx26.i.i.i.i, align 4 - %mul27.i.i.i.i = fmul float %333, %334 - %335 = call float @llvm.fmuladd.f32(float %330, float %332, float %mul27.i.i.i.i) - %336 = fneg float %333 - %neg.i.i.i.i = fmul float %332, %336 - %337 = call float @llvm.fmuladd.f32(float %330, float %334, float %neg.i.i.i.i) - store float %337, ptr %arrayidx16.i.i.i.i, align 4 - %338 = sub nuw nsw i64 2, %indvars.iv.i.i.i149.i - %arrayidx43.i.i.i.i = getelementptr inbounds [6 x float], ptr @ma_dr_mp3_L3_imdct12.g_twid3, i64 0, i64 %338 - %339 = load float, ptr %arrayidx43.i.i.i.i, align 4 - %340 = sub nuw nsw i64 5, %indvars.iv.i.i.i149.i - %arrayidx46.i.i.i.i = getelementptr inbounds [6 x float], ptr @ma_dr_mp3_L3_imdct12.g_twid3, i64 0, i64 %340 - %341 = load float, ptr %arrayidx46.i.i.i.i, align 4 - %342 = fneg float %335 - %neg48.i.i.i.i = fmul float %341, %342 - %343 = call float @llvm.fmuladd.f32(float %329, float %339, float %neg48.i.i.i.i) + %335 = load float, ptr %arrayidx26.i.i.i.i, align 4 + %mul27.i.i.i.i = fmul float %334, %335 + %336 = call float @llvm.fmuladd.f32(float %331, float %333, float %mul27.i.i.i.i) + %337 = fneg float %334 + %neg.i.i.i.i = fmul float %333, %337 + %338 = call float @llvm.fmuladd.f32(float %331, float %335, float %neg.i.i.i.i) + store float %338, ptr %arrayidx16.i.i.i.i, align 4 + %339 = sub nuw nsw i64 2, %indvars.iv.i.i.i149.i + %arrayidx43.i.i.i.i = getelementptr inbounds [6 x float], ptr @ma_dr_mp3_L3_imdct12.g_twid3, i64 0, i64 %339 + %340 = load float, ptr %arrayidx43.i.i.i.i, align 4 + %341 = sub nuw nsw i64 5, %indvars.iv.i.i.i149.i + %arrayidx46.i.i.i.i = getelementptr inbounds [6 x float], ptr @ma_dr_mp3_L3_imdct12.g_twid3, i64 0, i64 %341 + %342 = load float, ptr %arrayidx46.i.i.i.i, align 4 + %343 = fneg float %336 + %neg48.i.i.i.i = fmul float %342, %343 + %344 = call float @llvm.fmuladd.f32(float %330, float %340, float %neg48.i.i.i.i) %arrayidx50.i.i.i.i = getelementptr inbounds float, ptr %tmp.sroa.7.0.grbuf.addr.0.sroa_idx.i.i.i, i64 %indvars.iv.i.i.i149.i - store float %343, ptr %arrayidx50.i.i.i.i, align 4 - %mul57.i.i.i.i = fmul float %335, %339 - %344 = call float @llvm.fmuladd.f32(float %329, float %341, float %mul57.i.i.i.i) - %arrayidx60.i.i.i.i = getelementptr inbounds float, ptr %tmp.sroa.7.0.grbuf.addr.0.sroa_idx.i.i.i, i64 %340 - store float %344, ptr %arrayidx60.i.i.i.i, align 4 + store float %344, ptr %arrayidx50.i.i.i.i, align 4 + %mul57.i.i.i.i = fmul float %336, %340 + %345 = call float @llvm.fmuladd.f32(float %330, float %342, float %mul57.i.i.i.i) + %arrayidx60.i.i.i.i = getelementptr inbounds float, ptr %tmp.sroa.7.0.grbuf.addr.0.sroa_idx.i.i.i, i64 %341 + store float %345, ptr %arrayidx60.i.i.i.i, align 4 %indvars.iv.next.i.i.i151.i = add nuw nsw i64 %indvars.iv.i.i.i149.i, 1 %exitcond.not.i.i.i152.i = icmp eq i64 %indvars.iv.next.i.i.i151.i, 3 br i1 %exitcond.not.i.i.i152.i, label %ma_dr_mp3_L3_imdct12.exit.i.i.i, label %for.body.i.i.i148.i, !llvm.loop !880 @@ -104991,24 +104992,24 @@ ma_dr_mp3_L3_imdct12.exit.i.i.i: ; preds = %for.body.i.i.i148.i %add5.i19.i.i.i = fadd float %tmp.sroa.11.0.copyload.i.i.i, %tmp.sroa.14.0.copyload.i.i.i %mul.i.i20.i.i.i = fmul float %add.i16.i.i.i, 0x3FEBB67AE0000000 %neg.i.i21.i.i.i = fneg float %add5.i19.i.i.i - %345 = call float @llvm.fmuladd.f32(float %neg.i.i21.i.i.i, float 5.000000e-01, float %fneg.i13.i.i.i) - %add2.i.i24.i.i.i = fadd float %mul.i.i20.i.i.i, %345 + %346 = call float @llvm.fmuladd.f32(float %neg.i.i21.i.i.i, float 5.000000e-01, float %fneg.i13.i.i.i) + %add2.i.i24.i.i.i = fadd float %mul.i.i20.i.i.i, %346 store float %add2.i.i24.i.i.i, ptr %co.i11.i.i.i, align 4 - %346 = insertelement <2 x float> poison, float %add5.i19.i.i.i, i64 0 - %347 = insertelement <2 x float> %346, float %345, i64 1 - %348 = insertelement <2 x float> poison, float %tmp.sroa.2.0.copyload.i.i.i, i64 0 - %349 = insertelement <2 x float> %348, float %mul.i.i20.i.i.i, i64 1 - %350 = fsub <2 x float> %347, %349 - store <2 x float> %350, ptr %arrayidx.i.i23.i.i.i, align 4 + %347 = insertelement <2 x float> poison, float %add5.i19.i.i.i, i64 0 + %348 = insertelement <2 x float> %347, float %346, i64 1 + %349 = insertelement <2 x float> poison, float %tmp.sroa.2.0.copyload.i.i.i, i64 0 + %350 = insertelement <2 x float> %349, float %mul.i.i20.i.i.i, i64 1 + %351 = fsub <2 x float> %348, %350 + store <2 x float> %351, ptr %arrayidx.i.i23.i.i.i, align 4 %sub.i28.i.i.i = fsub float %tmp.sroa.14.0.copyload.i.i.i, %tmp.sroa.11.0.copyload.i.i.i %sub11.i29.i.i.i = fsub float %tmp.sroa.8.0.copyload.i.i.i, %tmp.sroa.5.0.copyload.i.i.i %mul.i31.i30.i.i.i = fmul float %sub.i28.i.i.i, 0x3FEBB67AE0000000 %neg.i32.i31.i.i.i = fneg float %sub11.i29.i.i.i - %351 = call float @llvm.fmuladd.f32(float %neg.i32.i31.i.i.i, float 5.000000e-01, float %tmp.sroa.17.0.copyload.i.i.i) + %352 = call float @llvm.fmuladd.f32(float %neg.i32.i31.i.i.i, float 5.000000e-01, float %tmp.sroa.17.0.copyload.i.i.i) %add.i33.i32.i.i.i = fadd float %sub11.i29.i.i.i, %tmp.sroa.17.0.copyload.i.i.i - %add2.i35.i34.i.i.i = fadd float %mul.i31.i30.i.i.i, %351 + %add2.i35.i34.i.i.i = fadd float %mul.i31.i30.i.i.i, %352 store float %add2.i35.i34.i.i.i, ptr %si.i12.i.i.i, align 4 - %sub.i36.i35.i.i.i = fsub float %351, %mul.i31.i30.i.i.i + %sub.i36.i35.i.i.i = fsub float %352, %mul.i31.i30.i.i.i store float %sub.i36.i35.i.i.i, ptr %arrayidx4.i37.i36.i.i.i, align 4 %fneg14.i37.i.i.i = fneg float %add.i33.i32.i.i.i store float %fneg14.i37.i.i.i, ptr %arrayidx.i34.i33.i.i.i, align 4 @@ -105017,37 +105018,37 @@ ma_dr_mp3_L3_imdct12.exit.i.i.i: ; preds = %for.body.i.i.i148.i for.body.i38.i.i.i: ; preds = %for.body.i38.i.i.i, %ma_dr_mp3_L3_imdct12.exit.i.i.i %indvars.iv.i39.i.i.i = phi i64 [ 0, %ma_dr_mp3_L3_imdct12.exit.i.i.i ], [ %indvars.iv.next.i53.i.i.i, %for.body.i38.i.i.i ] %arrayidx16.i40.i.i.i = getelementptr inbounds float, ptr %add.ptr2.i.i.i, i64 %indvars.iv.i39.i.i.i - %352 = load float, ptr %arrayidx16.i40.i.i.i, align 4 + %353 = load float, ptr %arrayidx16.i40.i.i.i, align 4 %arrayidx18.i41.i.i.i = getelementptr inbounds [3 x float], ptr %co.i11.i.i.i, i64 0, i64 %indvars.iv.i39.i.i.i - %353 = load float, ptr %arrayidx18.i41.i.i.i, align 4 - %354 = add nuw nsw i64 %indvars.iv.i39.i.i.i, 3 - %arrayidx21.i42.i.i.i = getelementptr inbounds [6 x float], ptr @ma_dr_mp3_L3_imdct12.g_twid3, i64 0, i64 %354 - %355 = load float, ptr %arrayidx21.i42.i.i.i, align 4 + %354 = load float, ptr %arrayidx18.i41.i.i.i, align 4 + %355 = add nuw nsw i64 %indvars.iv.i39.i.i.i, 3 + %arrayidx21.i42.i.i.i = getelementptr inbounds [6 x float], ptr @ma_dr_mp3_L3_imdct12.g_twid3, i64 0, i64 %355 + %356 = load float, ptr %arrayidx21.i42.i.i.i, align 4 %arrayidx23.i43.i.i.i = getelementptr inbounds [3 x float], ptr %si.i12.i.i.i, i64 0, i64 %indvars.iv.i39.i.i.i - %356 = load float, ptr %arrayidx23.i43.i.i.i, align 4 + %357 = load float, ptr %arrayidx23.i43.i.i.i, align 4 %arrayidx26.i44.i.i.i = getelementptr inbounds [6 x float], ptr @ma_dr_mp3_L3_imdct12.g_twid3, i64 0, i64 %indvars.iv.i39.i.i.i - %357 = load float, ptr %arrayidx26.i44.i.i.i, align 4 - %mul27.i45.i.i.i = fmul float %356, %357 - %358 = call float @llvm.fmuladd.f32(float %353, float %355, float %mul27.i45.i.i.i) - %359 = fneg float %356 - %neg.i46.i.i.i = fmul float %355, %359 - %360 = call float @llvm.fmuladd.f32(float %353, float %357, float %neg.i46.i.i.i) - store float %360, ptr %arrayidx16.i40.i.i.i, align 4 - %361 = sub nuw nsw i64 2, %indvars.iv.i39.i.i.i - %arrayidx43.i47.i.i.i = getelementptr inbounds [6 x float], ptr @ma_dr_mp3_L3_imdct12.g_twid3, i64 0, i64 %361 - %362 = load float, ptr %arrayidx43.i47.i.i.i, align 4 - %363 = sub nuw nsw i64 5, %indvars.iv.i39.i.i.i - %arrayidx46.i48.i.i.i = getelementptr inbounds [6 x float], ptr @ma_dr_mp3_L3_imdct12.g_twid3, i64 0, i64 %363 - %364 = load float, ptr %arrayidx46.i48.i.i.i, align 4 - %365 = fneg float %358 - %neg48.i49.i.i.i = fmul float %364, %365 - %366 = call float @llvm.fmuladd.f32(float %352, float %362, float %neg48.i49.i.i.i) + %358 = load float, ptr %arrayidx26.i44.i.i.i, align 4 + %mul27.i45.i.i.i = fmul float %357, %358 + %359 = call float @llvm.fmuladd.f32(float %354, float %356, float %mul27.i45.i.i.i) + %360 = fneg float %357 + %neg.i46.i.i.i = fmul float %356, %360 + %361 = call float @llvm.fmuladd.f32(float %354, float %358, float %neg.i46.i.i.i) + store float %361, ptr %arrayidx16.i40.i.i.i, align 4 + %362 = sub nuw nsw i64 2, %indvars.iv.i39.i.i.i + %arrayidx43.i47.i.i.i = getelementptr inbounds [6 x float], ptr @ma_dr_mp3_L3_imdct12.g_twid3, i64 0, i64 %362 + %363 = load float, ptr %arrayidx43.i47.i.i.i, align 4 + %364 = sub nuw nsw i64 5, %indvars.iv.i39.i.i.i + %arrayidx46.i48.i.i.i = getelementptr inbounds [6 x float], ptr @ma_dr_mp3_L3_imdct12.g_twid3, i64 0, i64 %364 + %365 = load float, ptr %arrayidx46.i48.i.i.i, align 4 + %366 = fneg float %359 + %neg48.i49.i.i.i = fmul float %365, %366 + %367 = call float @llvm.fmuladd.f32(float %353, float %363, float %neg48.i49.i.i.i) %arrayidx50.i50.i.i.i = getelementptr inbounds float, ptr %tmp.sroa.13.0.grbuf.addr.0.sroa_idx.i.i.i, i64 %indvars.iv.i39.i.i.i - store float %366, ptr %arrayidx50.i50.i.i.i, align 4 - %mul57.i51.i.i.i = fmul float %358, %362 - %367 = call float @llvm.fmuladd.f32(float %352, float %364, float %mul57.i51.i.i.i) - %arrayidx60.i52.i.i.i = getelementptr inbounds float, ptr %tmp.sroa.13.0.grbuf.addr.0.sroa_idx.i.i.i, i64 %363 - store float %367, ptr %arrayidx60.i52.i.i.i, align 4 + store float %367, ptr %arrayidx50.i50.i.i.i, align 4 + %mul57.i51.i.i.i = fmul float %359, %363 + %368 = call float @llvm.fmuladd.f32(float %353, float %365, float %mul57.i51.i.i.i) + %arrayidx60.i52.i.i.i = getelementptr inbounds float, ptr %tmp.sroa.13.0.grbuf.addr.0.sroa_idx.i.i.i, i64 %364 + store float %368, ptr %arrayidx60.i52.i.i.i, align 4 %indvars.iv.next.i53.i.i.i = add nuw nsw i64 %indvars.iv.i39.i.i.i, 1 %exitcond.not.i54.i.i.i = icmp eq i64 %indvars.iv.next.i53.i.i.i, 3 br i1 %exitcond.not.i54.i.i.i, label %ma_dr_mp3_L3_imdct12.exit55.i.i.i, label %for.body.i38.i.i.i, !llvm.loop !880 @@ -105062,24 +105063,24 @@ ma_dr_mp3_L3_imdct12.exit55.i.i.i: ; preds = %for.body.i38.i.i.i %add5.i64.i.i.i = fadd float %tmp.sroa.12.0.copyload.i.i.i, %tmp.sroa.15.0.copyload.i.i.i %mul.i.i65.i.i.i = fmul float %add.i61.i.i.i, 0x3FEBB67AE0000000 %neg.i.i66.i.i.i = fneg float %add5.i64.i.i.i - %368 = call float @llvm.fmuladd.f32(float %neg.i.i66.i.i.i, float 5.000000e-01, float %fneg.i58.i.i.i) - %add2.i.i69.i.i.i = fadd float %mul.i.i65.i.i.i, %368 + %369 = call float @llvm.fmuladd.f32(float %neg.i.i66.i.i.i, float 5.000000e-01, float %fneg.i58.i.i.i) + %add2.i.i69.i.i.i = fadd float %mul.i.i65.i.i.i, %369 store float %add2.i.i69.i.i.i, ptr %co.i56.i.i.i, align 4 - %369 = insertelement <2 x float> poison, float %add5.i64.i.i.i, i64 0 - %370 = insertelement <2 x float> %369, float %368, i64 1 - %371 = insertelement <2 x float> poison, float %tmp.sroa.3.0.copyload.i.i.i, i64 0 - %372 = insertelement <2 x float> %371, float %mul.i.i65.i.i.i, i64 1 - %373 = fsub <2 x float> %370, %372 - store <2 x float> %373, ptr %arrayidx.i.i68.i.i.i, align 4 + %370 = insertelement <2 x float> poison, float %add5.i64.i.i.i, i64 0 + %371 = insertelement <2 x float> %370, float %369, i64 1 + %372 = insertelement <2 x float> poison, float %tmp.sroa.3.0.copyload.i.i.i, i64 0 + %373 = insertelement <2 x float> %372, float %mul.i.i65.i.i.i, i64 1 + %374 = fsub <2 x float> %371, %373 + store <2 x float> %374, ptr %arrayidx.i.i68.i.i.i, align 4 %sub.i73.i.i.i = fsub float %tmp.sroa.15.0.copyload.i.i.i, %tmp.sroa.12.0.copyload.i.i.i %sub11.i74.i.i.i = fsub float %tmp.sroa.9.0.copyload.i.i.i, %tmp.sroa.6.0.copyload.i.i.i %mul.i31.i75.i.i.i = fmul float %sub.i73.i.i.i, 0x3FEBB67AE0000000 %neg.i32.i76.i.i.i = fneg float %sub11.i74.i.i.i - %374 = call float @llvm.fmuladd.f32(float %neg.i32.i76.i.i.i, float 5.000000e-01, float %tmp.sroa.18.0.copyload.i.i.i) + %375 = call float @llvm.fmuladd.f32(float %neg.i32.i76.i.i.i, float 5.000000e-01, float %tmp.sroa.18.0.copyload.i.i.i) %add.i33.i77.i.i.i = fadd float %sub11.i74.i.i.i, %tmp.sroa.18.0.copyload.i.i.i - %add2.i35.i79.i.i.i = fadd float %mul.i31.i75.i.i.i, %374 + %add2.i35.i79.i.i.i = fadd float %mul.i31.i75.i.i.i, %375 store float %add2.i35.i79.i.i.i, ptr %si.i57.i.i.i, align 4 - %sub.i36.i80.i.i.i = fsub float %374, %mul.i31.i75.i.i.i + %sub.i36.i80.i.i.i = fsub float %375, %mul.i31.i75.i.i.i store float %sub.i36.i80.i.i.i, ptr %arrayidx4.i37.i81.i.i.i, align 4 %fneg14.i82.i.i.i = fneg float %add.i33.i77.i.i.i store float %fneg14.i82.i.i.i, ptr %arrayidx.i34.i78.i.i.i, align 4 @@ -105088,37 +105089,37 @@ ma_dr_mp3_L3_imdct12.exit55.i.i.i: ; preds = %for.body.i38.i.i.i for.body.i83.i.i.i: ; preds = %for.body.i83.i.i.i, %ma_dr_mp3_L3_imdct12.exit55.i.i.i %indvars.iv.i84.i.i.i = phi i64 [ 0, %ma_dr_mp3_L3_imdct12.exit55.i.i.i ], [ %indvars.iv.next.i98.i.i.i, %for.body.i83.i.i.i ] %arrayidx16.i85.i.i.i = getelementptr inbounds float, ptr %add.ptr2.i.i.i, i64 %indvars.iv.i84.i.i.i - %375 = load float, ptr %arrayidx16.i85.i.i.i, align 4 + %376 = load float, ptr %arrayidx16.i85.i.i.i, align 4 %arrayidx18.i86.i.i.i = getelementptr inbounds [3 x float], ptr %co.i56.i.i.i, i64 0, i64 %indvars.iv.i84.i.i.i - %376 = load float, ptr %arrayidx18.i86.i.i.i, align 4 - %377 = add nuw nsw i64 %indvars.iv.i84.i.i.i, 3 - %arrayidx21.i87.i.i.i = getelementptr inbounds [6 x float], ptr @ma_dr_mp3_L3_imdct12.g_twid3, i64 0, i64 %377 - %378 = load float, ptr %arrayidx21.i87.i.i.i, align 4 + %377 = load float, ptr %arrayidx18.i86.i.i.i, align 4 + %378 = add nuw nsw i64 %indvars.iv.i84.i.i.i, 3 + %arrayidx21.i87.i.i.i = getelementptr inbounds [6 x float], ptr @ma_dr_mp3_L3_imdct12.g_twid3, i64 0, i64 %378 + %379 = load float, ptr %arrayidx21.i87.i.i.i, align 4 %arrayidx23.i88.i.i.i = getelementptr inbounds [3 x float], ptr %si.i57.i.i.i, i64 0, i64 %indvars.iv.i84.i.i.i - %379 = load float, ptr %arrayidx23.i88.i.i.i, align 4 + %380 = load float, ptr %arrayidx23.i88.i.i.i, align 4 %arrayidx26.i89.i.i.i = getelementptr inbounds [6 x float], ptr @ma_dr_mp3_L3_imdct12.g_twid3, i64 0, i64 %indvars.iv.i84.i.i.i - %380 = load float, ptr %arrayidx26.i89.i.i.i, align 4 - %mul27.i90.i.i.i = fmul float %379, %380 - %381 = call float @llvm.fmuladd.f32(float %376, float %378, float %mul27.i90.i.i.i) - %382 = fneg float %379 - %neg.i91.i.i.i = fmul float %378, %382 - %383 = call float @llvm.fmuladd.f32(float %376, float %380, float %neg.i91.i.i.i) - store float %383, ptr %arrayidx16.i85.i.i.i, align 4 - %384 = sub nuw nsw i64 2, %indvars.iv.i84.i.i.i - %arrayidx43.i92.i.i.i = getelementptr inbounds [6 x float], ptr @ma_dr_mp3_L3_imdct12.g_twid3, i64 0, i64 %384 - %385 = load float, ptr %arrayidx43.i92.i.i.i, align 4 - %386 = sub nuw nsw i64 5, %indvars.iv.i84.i.i.i - %arrayidx46.i93.i.i.i = getelementptr inbounds [6 x float], ptr @ma_dr_mp3_L3_imdct12.g_twid3, i64 0, i64 %386 - %387 = load float, ptr %arrayidx46.i93.i.i.i, align 4 - %388 = fneg float %381 - %neg48.i94.i.i.i = fmul float %387, %388 - %389 = call float @llvm.fmuladd.f32(float %375, float %385, float %neg48.i94.i.i.i) + %381 = load float, ptr %arrayidx26.i89.i.i.i, align 4 + %mul27.i90.i.i.i = fmul float %380, %381 + %382 = call float @llvm.fmuladd.f32(float %377, float %379, float %mul27.i90.i.i.i) + %383 = fneg float %380 + %neg.i91.i.i.i = fmul float %379, %383 + %384 = call float @llvm.fmuladd.f32(float %377, float %381, float %neg.i91.i.i.i) + store float %384, ptr %arrayidx16.i85.i.i.i, align 4 + %385 = sub nuw nsw i64 2, %indvars.iv.i84.i.i.i + %arrayidx43.i92.i.i.i = getelementptr inbounds [6 x float], ptr @ma_dr_mp3_L3_imdct12.g_twid3, i64 0, i64 %385 + %386 = load float, ptr %arrayidx43.i92.i.i.i, align 4 + %387 = sub nuw nsw i64 5, %indvars.iv.i84.i.i.i + %arrayidx46.i93.i.i.i = getelementptr inbounds [6 x float], ptr @ma_dr_mp3_L3_imdct12.g_twid3, i64 0, i64 %387 + %388 = load float, ptr %arrayidx46.i93.i.i.i, align 4 + %389 = fneg float %382 + %neg48.i94.i.i.i = fmul float %388, %389 + %390 = call float @llvm.fmuladd.f32(float %376, float %386, float %neg48.i94.i.i.i) %arrayidx50.i95.i.i.i = getelementptr inbounds float, ptr %overlap.addr.0103.i.i.i, i64 %indvars.iv.i84.i.i.i - store float %389, ptr %arrayidx50.i95.i.i.i, align 4 - %mul57.i96.i.i.i = fmul float %381, %385 - %390 = call float @llvm.fmuladd.f32(float %375, float %387, float %mul57.i96.i.i.i) - %arrayidx60.i97.i.i.i = getelementptr inbounds float, ptr %overlap.addr.0103.i.i.i, i64 %386 - store float %390, ptr %arrayidx60.i97.i.i.i, align 4 + store float %390, ptr %arrayidx50.i95.i.i.i, align 4 + %mul57.i96.i.i.i = fmul float %382, %386 + %391 = call float @llvm.fmuladd.f32(float %376, float %388, float %mul57.i96.i.i.i) + %arrayidx60.i97.i.i.i = getelementptr inbounds float, ptr %overlap.addr.0103.i.i.i, i64 %387 + store float %391, ptr %arrayidx60.i97.i.i.i, align 4 %indvars.iv.next.i98.i.i.i = add nuw nsw i64 %indvars.iv.i84.i.i.i, 1 %exitcond.not.i99.i.i.i = icmp eq i64 %indvars.iv.next.i98.i.i.i, 3 br i1 %exitcond.not.i99.i.i.i, label %ma_dr_mp3_L3_imdct12.exit100.i.i.i, label %for.body.i83.i.i.i, !llvm.loop !880 @@ -105133,11 +105134,11 @@ ma_dr_mp3_L3_imdct12.exit100.i.i.i: ; preds = %for.body.i83.i.i.i br i1 %cmp.i.i153.i, label %for.body.i.i142.i, label %ma_dr_mp3_L3_imdct_gr.exit.i, !llvm.loop !881 if.else.i138.i: ; preds = %if.end.thread.i.i, %if.end.i134.i - %391 = phi i8 [ %321, %if.end.thread.i.i ], [ %319, %if.end.i134.i ] + %392 = phi i8 [ %322, %if.end.thread.i.i ], [ %320, %if.end.i134.i ] %arrayidx77188.i552 = phi ptr [ %arrayidx77188.i554, %if.end.thread.i.i ], [ %arrayidx77189.i, %if.end.i134.i ] %grbuf.addr.018.i.i = phi ptr [ %arrayidx77188.i554, %if.end.thread.i.i ], [ %add.ptr.i136.i, %if.end.i134.i ] %overlap.addr.016.i.i = phi ptr [ %arrayidx84.i555, %if.end.thread.i.i ], [ %add.ptr3.i.i, %if.end.i134.i ] - %cmp5.i.i207 = icmp eq i8 %391, 3 + %cmp5.i.i207 = icmp eq i8 %392, 3 %idxprom.i.i208 = zext i1 %cmp5.i.i207 to i64 %arrayidx.i139.i = getelementptr inbounds [2 x [18 x float]], ptr @ma_dr_mp3_L3_imdct_gr.g_mdct_window, i64 0, i64 %idxprom.i.i208 %sub6.i.i = sub nuw nsw i32 32, %shl.i199 @@ -105157,8 +105158,8 @@ for.cond1.preheader.i.i: ; preds = %for.inc6.i.i, %ma_d for.body3.i155.i: ; preds = %for.body3.i155.i, %for.cond1.preheader.i.i %indvars.iv.i156.i = phi i64 [ 1, %for.cond1.preheader.i.i ], [ %indvars.iv.next.i159.i, %for.body3.i155.i ] %arrayidx.i157.i = getelementptr inbounds float, ptr %grbuf.addr.09.i.i, i64 %indvars.iv.i156.i - %392 = load float, ptr %arrayidx.i157.i, align 4 - %fneg.i158.i = fneg float %392 + %393 = load float, ptr %arrayidx.i157.i, align 4 + %fneg.i158.i = fneg float %393 store float %fneg.i158.i, ptr %arrayidx.i157.i, align 4 %indvars.iv.next.i159.i = add nuw nsw i64 %indvars.iv.i156.i, 2 %cmp2.i.i = icmp ult i64 %indvars.iv.i156.i, 16 @@ -105177,29 +105178,29 @@ ma_dr_mp3_L3_change_sign.exit.i: ; preds = %for.inc6.i.i br i1 %exitcond182.not.i, label %ma_dr_mp3_L3_decode.exit, label %for.body39.i, !llvm.loop !884 ma_dr_mp3_L3_decode.exit: ; preds = %ma_dr_mp3_L3_change_sign.exit.i, %if.end35.i - %393 = load i32, ptr %channels, align 4 - call fastcc void @ma_dr_mp3d_synth_granule(ptr noundef nonnull %qmf_state, ptr noundef nonnull %grbuf, i32 noundef 18, i32 noundef %393, ptr noundef %pcm.addr.0583, ptr noundef nonnull %syn.i) %394 = load i32, ptr %channels, align 4 - %conv101 = sext i32 %394 to i64 + call fastcc void @ma_dr_mp3d_synth_granule(ptr noundef nonnull %qmf_state, ptr noundef nonnull %grbuf, i32 noundef 18, i32 noundef %394, ptr noundef %pcm.addr.0583, ptr noundef nonnull %syn.i) + %395 = load i32, ptr %channels, align 4 + %conv101 = sext i32 %395 to i64 %mul102 = mul nsw i64 %conv101, 1152 %add.ptr103 = getelementptr inbounds i8, ptr %pcm.addr.0583, i64 %mul102 - %395 = load i8, ptr %84, align 1 - %396 = and i8 %395, 8 - %tobool81.not = icmp ne i8 %396, 0 + %396 = load i8, ptr %84, align 1 + %397 = and i8 %396, 8 + %tobool81.not = icmp ne i8 %397, 0 %cmp83 = and i1 %tobool81.not, %cmp83586 br i1 %cmp83, label %for.body, label %if.end104.loopexit, !llvm.loop !885 if.end104.loopexit: ; preds = %ma_dr_mp3_L3_decode.exit %.pre = load i32, ptr %pos.i.i, align 8 %.pre609 = load i32, ptr %limit.i.i, align 4 - %397 = add nsw i32 %.pre, 7 - %398 = lshr i32 %397, 3 + %398 = add nsw i32 %.pre, 7 + %399 = lshr i32 %398, 3 br label %if.end104 if.end104: ; preds = %if.end104.loopexit, %if.end70 - %399 = phi i32 [ %.pre609, %if.end104.loopexit ], [ %mul.i.i184, %if.end70 ] - %add.i266 = phi i32 [ %398, %if.end104.loopexit ], [ 0, %if.end70 ] - %div311.i = lshr i32 %399, 3 + %400 = phi i32 [ %.pre609, %if.end104.loopexit ], [ %mul.i.i184, %if.end70 ] + %add.i266 = phi i32 [ %399, %if.end104.loopexit ], [ 0, %if.end70 ] + %div311.i = lshr i32 %400, 3 %sub.i268 = sub nsw i32 %div311.i, %add.i266 %spec.select12.i = call i32 @llvm.smin.i32(i32 %sub.i268, i32 511) %cmp6.i269 = icmp sgt i32 %sub.i268, 0 @@ -105235,8 +105236,8 @@ if.then107: ; preds = %if.else br label %return if.end109: ; preds = %if.else - %400 = load i8, ptr %arrayidx35, align 1 - %conv.i.i287 = zext i8 %400 to i32 + %401 = load i8, ptr %arrayidx35, align 1 + %conv.i.i287 = zext i8 %401 to i32 %shr.i.i288 = lshr i32 %conv.i.i287, 6 switch i32 %shr.i.i288, label %cond.end10.fold.split.i.i [ i32 3, label %cond.end10.i.i @@ -105244,8 +105245,8 @@ if.end109: ; preds = %if.else ] cond.true4.i.i: ; preds = %if.end109 - %401 = lshr i32 %conv.i.i287, 2 - %shl.i.i289 = and i32 %401, 12 + %402 = lshr i32 %conv.i.i287, 2 + %shl.i.i289 = and i32 %402, 12 %add.i.i290 = add nuw nsw i32 %shl.i.i289, 4 br label %cond.end10.i.i @@ -105265,35 +105266,35 @@ if.else.i.i294: ; preds = %cond.end10.i.i br i1 %tobool.not.i.i295, label %for.body.lr.ph.i308, label %if.else21.i.i if.else21.i.i: ; preds = %if.else.i.i294 - %402 = load i8, ptr %85, align 1 - %403 = lshr i8 %402, 2 - %404 = and i8 %403, 3 + %403 = load i8, ptr %85, align 1 + %404 = lshr i8 %403, 2 + %405 = and i8 %404, 3 %shr.i.i.i296 = lshr i32 %conv13.i.i292, 1 %and5.i.i.i297 = and i32 %shr.i.i.i296, 3 %sub.i.i.i298 = add nsw i32 %and5.i.i.i297, -1 %idxprom6.i.i.i299 = sext i32 %sub.i.i.i298 to i64 - %405 = lshr i8 %402, 4 - %idxprom11.i.i.i300 = zext nneg i8 %405 to i64 + %406 = lshr i8 %403, 4 + %idxprom11.i.i.i300 = zext nneg i8 %406 to i64 %arrayidx12.i.i.i301 = getelementptr inbounds [2 x [3 x [15 x i8]]], ptr @ma_dr_mp3_hdr_bitrate_kbps.halfrate, i64 0, i64 1, i64 %idxprom6.i.i.i299, i64 %idxprom11.i.i.i300 - %406 = load i8, ptr %arrayidx12.i.i.i301, align 1 - %conv13.i.i.i302 = zext i8 %406 to i32 + %407 = load i8, ptr %arrayidx12.i.i.i301, align 1 + %conv13.i.i.i302 = zext i8 %407 to i32 %mul.i.i.i303 = shl nuw nsw i32 %conv13.i.i.i302, 1 %cmp26.i.i = icmp ne i32 %shr.i.i288, 3 %conv27.i.i304 = zext i1 %cmp26.i.i to i32 %shr28.i.i305 = lshr exact i32 %mul.i.i.i303, %conv27.i.i304 - %tobool29.not.i.i = icmp eq i8 %406, 0 + %tobool29.not.i.i = icmp eq i8 %407, 0 %spec.store.select.i.i = select i1 %tobool29.not.i.i, i32 192, i32 %shr28.i.i305 %cmp31.i.i = icmp ult i32 %spec.store.select.i.i, 56 br i1 %cmp31.i.i, label %if.then33.i.i, label %if.else37.i.i if.then33.i.i: ; preds = %if.else21.i.i - %cmp34.i.i = icmp eq i8 %404, 2 + %cmp34.i.i = icmp eq i8 %405, 2 %cond36.i.i = select i1 %cmp34.i.i, i32 12, i32 8 br label %for.body.lr.ph.i308 if.else37.i.i: ; preds = %if.else21.i.i %cmp38.i.i = icmp ugt i32 %spec.store.select.i.i, 95 - %cmp40.i.i = icmp ne i8 %404, 1 + %cmp40.i.i = icmp ne i8 %405, 1 %or.cond.i.i306 = and i1 %cmp40.i.i, %cmp38.i.i %spec.select.i.i307 = select i1 %or.cond.i.i306, i32 30, i32 27 br label %for.body.lr.ph.i308 @@ -105304,34 +105305,34 @@ for.body.lr.ph.i308: ; preds = %if.else37.i.i, %if. %conv47.i.i = trunc i32 %nbands.0.i.i to i8 %total_bands.i.i = getelementptr inbounds i8, ptr %sci, i64 768 store i8 %conv47.i.i, ptr %total_bands.i.i, align 16 - %407 = tail call i32 @llvm.umin.i32(i32 %cond11.i.i, i32 %nbands.0.i.i) - %conv54.i.i = trunc i32 %407 to i8 + %408 = tail call i32 @llvm.umin.i32(i32 %cond11.i.i, i32 %nbands.0.i.i) + %conv54.i.i = trunc i32 %408 to i8 %stereo_bands55.i.i = getelementptr inbounds i8, ptr %sci, i64 769 store i8 %conv54.i.i, ptr %stereo_bands55.i.i, align 1 %bitalloc.i = getelementptr inbounds i8, ptr %sci, i64 770 - %408 = zext nneg i32 %407 to i64 + %409 = zext nneg i32 %408 to i64 %tobool.not.i331 = icmp eq i8 %conv54.i.i, 0 - %409 = zext nneg i32 %nbands.0.i.i to i64 + %410 = zext nneg i32 %nbands.0.i.i to i64 br label %for.body.i311 for.body33.lr.ph.i: ; preds = %if.end17.i %scfcod.i = getelementptr inbounds i8, ptr %sci, i64 834 %mul30.i = shl nuw nsw i32 %nbands.0.i.i, 1 - %410 = zext nneg i32 %mul30.i to i64 - %411 = and i8 %.fr585, 6 - %cmp42.i335 = icmp eq i8 %411, 6 + %411 = zext nneg i32 %mul30.i to i64 + %412 = and i8 %.fr585, 6 + %cmp42.i335 = icmp eq i8 %412, 6 br i1 %cmp42.i335, label %for.body33.i.us, label %for.body33.i for.body33.i.us: ; preds = %for.body33.lr.ph.i, %for.body33.i.us %indvars.iv140.i.us = phi i64 [ %indvars.iv.next141.i.us, %for.body33.i.us ], [ 0, %for.body33.lr.ph.i ] %arrayidx36.i.us = getelementptr inbounds [64 x i8], ptr %bitalloc.i, i64 0, i64 %indvars.iv140.i.us - %412 = load i8, ptr %arrayidx36.i.us, align 1 - %tobool38.not.i.us = icmp eq i8 %412, 0 + %413 = load i8, ptr %arrayidx36.i.us, align 1 + %tobool38.not.i.us = icmp eq i8 %413, 0 %conv52.i.us = select i1 %tobool38.not.i.us, i8 6, i8 2 %arrayidx54.i337.us = getelementptr inbounds [64 x i8], ptr %scfcod.i, i64 0, i64 %indvars.iv140.i.us store i8 %conv52.i.us, ptr %arrayidx54.i337.us, align 1 %indvars.iv.next141.i.us = add nuw nsw i64 %indvars.iv140.i.us, 1 - %exitcond604.not = icmp eq i64 %indvars.iv.next141.i.us, %410 + %exitcond604.not = icmp eq i64 %indvars.iv.next141.i.us, %411 br i1 %exitcond604.not, label %for.body.i.i339.preheader, label %for.body33.i.us, !llvm.loop !886 for.body.i311: ; preds = %if.end17.i, %for.body.lr.ph.i308 @@ -105341,20 +105342,20 @@ for.body.i311: ; preds = %if.end17.i, %for.bo %ba_bits.0126.i = phi i32 [ 0, %for.body.lr.ph.i308 ], [ %ba_bits.1.i, %if.end17.i ] %k.0125.i = phi i32 [ 0, %for.body.lr.ph.i308 ], [ %k.1.i, %if.end17.i ] %subband_alloc.0123.i = phi ptr [ %alloc.0.i.i, %for.body.lr.ph.i308 ], [ %subband_alloc.1.i, %if.end17.i ] - %413 = zext i32 %k.0125.i to i64 - %cmp2.i = icmp eq i64 %indvars.iv.i312, %413 + %414 = zext i32 %k.0125.i to i64 + %cmp2.i = icmp eq i64 %indvars.iv.i312, %414 br i1 %cmp2.i, label %if.then.i371, label %if.end.i313 if.then.i371: ; preds = %for.body.i311 %band_count.i = getelementptr inbounds i8, ptr %subband_alloc.0123.i, i64 2 - %414 = load i8, ptr %band_count.i, align 1 - %conv4.i = zext i8 %414 to i32 + %415 = load i8, ptr %band_count.i, align 1 + %conv4.i = zext i8 %415 to i32 %add.i372 = add nuw nsw i32 %k.0125.i, %conv4.i %code_tab_width.i = getelementptr inbounds i8, ptr %subband_alloc.0123.i, i64 1 - %415 = load i8, ptr %code_tab_width.i, align 1 - %conv5.i = zext i8 %415 to i32 - %416 = load i8, ptr %subband_alloc.0123.i, align 1 - %idx.ext.i373 = zext i8 %416 to i64 + %416 = load i8, ptr %code_tab_width.i, align 1 + %conv5.i = zext i8 %416 to i32 + %417 = load i8, ptr %subband_alloc.0123.i, align 1 + %idx.ext.i373 = zext i8 %417 to i64 %add.ptr.i374 = getelementptr inbounds i8, ptr @ma_dr_mp3_L12_read_scale_info.g_bitalloc_code_tab, i64 %idx.ext.i373 %incdec.ptr.i375 = getelementptr inbounds i8, ptr %subband_alloc.0123.i, i64 3 br label %if.end.i313 @@ -105374,8 +105375,8 @@ if.end.i.i316: ; preds = %if.end.i313 %add.ptr.i.i318 = getelementptr inbounds i8, ptr %add.ptr45, i64 %idx.ext.i.i317 %and.i.i319 = and i32 %bs_frame.sroa.24.6, 7 %add.i40.i = add nuw nsw i32 %ba_bits.1.i, %and.i.i319 - %417 = load i8, ptr %add.ptr.i.i318, align 1 - %conv.i41.i = zext i8 %417 to i32 + %418 = load i8, ptr %add.ptr.i.i318, align 1 + %conv.i41.i = zext i8 %418 to i32 %shr4.i.i320 = lshr i32 255, %and.i.i319 %and5.i.i321 = and i32 %shr4.i.i320, %conv.i41.i %cmp612.i.i = icmp sgt i32 %add.i40.i, 8 @@ -105390,8 +105391,8 @@ while.body.i.i364: ; preds = %if.end.i.i316, %whi %sub.i.i366 = add nsw i32 %shl.015.i.i, -8 %shl8.i.i367 = shl i32 %next.013.i.i, %sub.i.i366 %or.i.i368 = or i32 %shl8.i.i367, %cache.014.i.i - %418 = load i8, ptr %p.0.i.i365, align 1 - %conv10.i.i369 = zext i8 %418 to i32 + %419 = load i8, ptr %p.0.i.i365, align 1 + %conv10.i.i369 = zext i8 %419 to i32 %cmp6.i.i370 = icmp ugt i32 %shl.015.i.i, 16 br i1 %cmp6.i.i370, label %while.body.i.i364, label %while.end.i.i322, !llvm.loop !846 @@ -105408,11 +105409,11 @@ ma_dr_mp3_bs_get_bits.exit.i326: ; preds = %while.end.i.i322, % %retval.0.i.i327 = phi i32 [ %or13.i.i325, %while.end.i.i322 ], [ 0, %if.end.i313 ] %idxprom.i328 = zext i32 %retval.0.i.i327 to i64 %arrayidx.i329 = getelementptr inbounds i8, ptr %ba_code_tab.1.i, i64 %idxprom.i328 - %419 = load i8, ptr %arrayidx.i329, align 1 - %420 = shl nuw nsw i64 %indvars.iv.i312, 1 - %arrayidx9.i = getelementptr inbounds [64 x i8], ptr %bitalloc.i, i64 0, i64 %420 - store i8 %419, ptr %arrayidx9.i, align 2 - %cmp11.i330 = icmp ult i64 %indvars.iv.i312, %408 + %420 = load i8, ptr %arrayidx.i329, align 1 + %421 = shl nuw nsw i64 %indvars.iv.i312, 1 + %arrayidx9.i = getelementptr inbounds [64 x i8], ptr %bitalloc.i, i64 0, i64 %421 + store i8 %420, ptr %arrayidx9.i, align 2 + %cmp11.i330 = icmp ult i64 %indvars.iv.i312, %409 br i1 %cmp11.i330, label %if.then13.i, label %if.end17.i if.then13.i: ; preds = %ma_dr_mp3_bs_get_bits.exit.i326 @@ -105426,8 +105427,8 @@ if.end.i46.i: ; preds = %if.then13.i %add.ptr.i49.i = getelementptr inbounds i8, ptr %add.ptr45, i64 %idx.ext.i48.i %and.i50.i = and i32 %add3.i.i314, 7 %add.i51.i = add nuw nsw i32 %and.i50.i, %ba_bits.1.i - %421 = load i8, ptr %add.ptr.i49.i, align 1 - %conv.i52.i = zext i8 %421 to i32 + %422 = load i8, ptr %add.ptr.i49.i, align 1 + %conv.i52.i = zext i8 %422 to i32 %shr4.i53.i = lshr i32 255, %and.i50.i %and5.i54.i = and i32 %shr4.i53.i, %conv.i52.i %cmp612.i55.i = icmp sgt i32 %add.i51.i, 8 @@ -105442,8 +105443,8 @@ while.body.i64.i: ; preds = %if.end.i46.i, %whil %sub.i70.i = add nsw i32 %shl.015.i66.i, -8 %shl8.i71.i = shl i32 %next.013.i68.i, %sub.i70.i %or.i72.i = or i32 %shl8.i71.i, %cache.014.i67.i - %422 = load i8, ptr %p.0.i69.i, align 1 - %conv10.i73.i = zext i8 %422 to i32 + %423 = load i8, ptr %p.0.i69.i, align 1 + %conv10.i73.i = zext i8 %423 to i32 %cmp6.i74.i = icmp ugt i32 %shl.015.i66.i, 16 br i1 %cmp6.i74.i, label %while.body.i64.i, label %while.end.i56.i, !llvm.loop !846 @@ -105460,26 +105461,26 @@ ma_dr_mp3_bs_get_bits.exit75.i: ; preds = %while.end.i56.i, %i %retval.0.i63.i = phi i32 [ %or13.i62.i, %while.end.i56.i ], [ 0, %if.then13.i ] %idxprom15.i = zext i32 %retval.0.i63.i to i64 %arrayidx16.i = getelementptr inbounds i8, ptr %ba_code_tab.1.i, i64 %idxprom15.i - %423 = load i8, ptr %arrayidx16.i, align 1 + %424 = load i8, ptr %arrayidx16.i, align 1 br label %if.end17.i if.end17.i: ; preds = %ma_dr_mp3_bs_get_bits.exit75.i, %ma_dr_mp3_bs_get_bits.exit.i326 %bs_frame.sroa.24.7 = phi i32 [ %add3.i43.i, %ma_dr_mp3_bs_get_bits.exit75.i ], [ %add3.i.i314, %ma_dr_mp3_bs_get_bits.exit.i326 ] - %ba.0.i = phi i8 [ %423, %ma_dr_mp3_bs_get_bits.exit75.i ], [ %419, %ma_dr_mp3_bs_get_bits.exit.i326 ] + %ba.0.i = phi i8 [ %424, %ma_dr_mp3_bs_get_bits.exit75.i ], [ %420, %ma_dr_mp3_bs_get_bits.exit.i326 ] %narrow.i332 = select i1 %tobool.not.i331, i8 0, i8 %ba.0.i - %424 = or disjoint i64 %420, 1 - %arrayidx26.i = getelementptr inbounds [64 x i8], ptr %bitalloc.i, i64 0, i64 %424 + %425 = or disjoint i64 %421, 1 + %arrayidx26.i = getelementptr inbounds [64 x i8], ptr %bitalloc.i, i64 0, i64 %425 store i8 %narrow.i332, ptr %arrayidx26.i, align 1 %indvars.iv.next.i333 = add nuw nsw i64 %indvars.iv.i312, 1 - %exitcond.not = icmp eq i64 %indvars.iv.next.i333, %409 + %exitcond.not = icmp eq i64 %indvars.iv.next.i333, %410 br i1 %exitcond.not, label %for.body33.lr.ph.i, label %for.body.i311, !llvm.loop !887 for.body33.i: ; preds = %for.body33.lr.ph.i, %cond.end50.i %bs_frame.sroa.24.8 = phi i32 [ %bs_frame.sroa.24.9, %cond.end50.i ], [ %bs_frame.sroa.24.7, %for.body33.lr.ph.i ] %indvars.iv140.i = phi i64 [ %indvars.iv.next141.i, %cond.end50.i ], [ 0, %for.body33.lr.ph.i ] %arrayidx36.i = getelementptr inbounds [64 x i8], ptr %bitalloc.i, i64 0, i64 %indvars.iv140.i - %425 = load i8, ptr %arrayidx36.i, align 1 - %tobool38.not.i = icmp eq i8 %425, 0 + %426 = load i8, ptr %arrayidx36.i, align 1 + %tobool38.not.i = icmp eq i8 %426, 0 br i1 %tobool38.not.i, label %cond.end50.i, label %cond.true39.i cond.true39.i: ; preds = %for.body33.i @@ -105493,8 +105494,8 @@ if.end.i80.i: ; preds = %cond.true39.i %add.ptr.i83.i = getelementptr inbounds i8, ptr %add.ptr45, i64 %idx.ext.i82.i %and.i84.i = and i32 %bs_frame.sroa.24.8, 7 %add.i85.i = add nuw nsw i32 %and.i84.i, 2 - %426 = load i8, ptr %add.ptr.i83.i, align 1 - %conv.i86.i = zext i8 %426 to i32 + %427 = load i8, ptr %add.ptr.i83.i, align 1 + %conv.i86.i = zext i8 %427 to i32 %shr4.i87.i = lshr i32 255, %and.i84.i %and5.i88.i = and i32 %shr4.i87.i, %conv.i86.i %cmp612.i89.i = icmp eq i32 %and.i84.i, 7 @@ -105503,8 +105504,8 @@ if.end.i80.i: ; preds = %cond.true39.i while.body.i98.preheader.i: ; preds = %if.end.i80.i %shl8.i105.i = shl nuw nsw i32 %and5.i88.i, 1 %p.0.i103.i = getelementptr inbounds i8, ptr %add.ptr.i83.i, i64 1 - %427 = load i8, ptr %p.0.i103.i, align 1 - %conv10.i107.i = zext i8 %427 to i32 + %428 = load i8, ptr %p.0.i103.i, align 1 + %conv10.i107.i = zext i8 %428 to i32 br label %while.end.i90.i while.end.i90.i: ; preds = %while.body.i98.preheader.i, %if.end.i80.i @@ -105523,7 +105524,7 @@ cond.end50.i: ; preds = %while.end.i90.i, %c %arrayidx54.i337 = getelementptr inbounds [64 x i8], ptr %scfcod.i, i64 0, i64 %indvars.iv140.i store i8 %conv52.i, ptr %arrayidx54.i337, align 1 %indvars.iv.next141.i = add nuw nsw i64 %indvars.iv140.i, 1 - %exitcond603.not = icmp eq i64 %indvars.iv.next141.i, %410 + %exitcond603.not = icmp eq i64 %indvars.iv.next141.i, %411 br i1 %exitcond603.not, label %for.body.i.i339.preheader, label %for.body33.i, !llvm.loop !886 for.body.i.i339.preheader: ; preds = %cond.end50.i, %for.body33.i.us @@ -105536,15 +105537,15 @@ for.body.i.i339: ; preds = %for.body.i.i339.pre %pba.addr.013.i.i = phi ptr [ %incdec.ptr.i.i341, %for.inc15.i.i357 ], [ %bitalloc.i, %for.body.i.i339.preheader ] %scf.addr.012.i.i = phi ptr [ %incdec.ptr13.i.i356, %for.inc15.i.i357 ], [ %sci, %for.body.i.i339.preheader ] %incdec.ptr.i.i341 = getelementptr inbounds i8, ptr %pba.addr.013.i.i, i64 1 - %428 = load i8, ptr %pba.addr.013.i.i, align 1 - %conv.i110.i = zext i8 %428 to i64 - %tobool.not.i111.i = icmp eq i8 %428, 0 + %429 = load i8, ptr %pba.addr.013.i.i, align 1 + %conv.i110.i = zext i8 %429 to i64 + %tobool.not.i111.i = icmp eq i8 %429, 0 br i1 %tobool.not.i111.i, label %cond.end.i.i, label %cond.true.i.i cond.true.i.i: ; preds = %for.body.i.i339 %arrayidx.i112.i = getelementptr inbounds i8, ptr %scfcod.i, i64 %indvars.iv.i.i340 - %429 = load i8, ptr %arrayidx.i112.i, align 1 - %conv1.i.i342 = zext nneg i8 %429 to i32 + %430 = load i8, ptr %arrayidx.i112.i, align 1 + %conv1.i.i342 = zext nneg i8 %430 to i32 %shr.i113.i = lshr i32 19, %conv1.i.i342 %add.i114.i = or i32 %shr.i113.i, 4 br label %cond.end.i.i @@ -105575,8 +105576,8 @@ if.end.i.i.i347: ; preds = %if.then.i.i345 %add.ptr.i.i.i348 = getelementptr inbounds i8, ptr %add.ptr45, i64 %idx.ext.i.i.i %and.i.i.i349 = and i32 %bs_frame.sroa.24.11, 7 %add.i.i.i350 = add nuw nsw i32 %and.i.i.i349, 6 - %430 = load i8, ptr %add.ptr.i.i.i348, align 1 - %conv.i.i.i351 = zext i8 %430 to i32 + %431 = load i8, ptr %add.ptr.i.i.i348, align 1 + %conv.i.i.i351 = zext i8 %431 to i32 %shr4.i.i.i = lshr i32 255, %and.i.i.i349 %and5.i.i118.i = and i32 %shr4.i.i.i, %conv.i.i.i351 %cmp612.i.i.i = icmp ugt i32 %and.i.i.i349, 2 @@ -105586,8 +105587,8 @@ while.body.i.preheader.i.i: ; preds = %if.end.i.i.i347 %sub.i.i120.i = add nsw i32 %and.i.i.i349, -2 %shl8.i.i.i = shl nuw nsw i32 %and5.i.i118.i, %sub.i.i120.i %p.0.i.i.i = getelementptr inbounds i8, ptr %add.ptr.i.i.i348, i64 1 - %431 = load i8, ptr %p.0.i.i.i, align 1 - %conv10.i.i.i = zext i8 %431 to i32 + %432 = load i8, ptr %p.0.i.i.i, align 1 + %conv10.i.i.i = zext i8 %432 to i32 br label %while.end.i.i.i while.end.i.i.i: ; preds = %while.body.i.preheader.i.i, %if.end.i.i.i347 @@ -105606,12 +105607,12 @@ ma_dr_mp3_bs_get_bits.exit.i.i: ; preds = %while.end.i.i.i, %i %rem15.zext.i.i = zext nneg i16 %rem1516.i.i to i64 %add7.i.i354 = add nsw i64 %sub.i115.i, %rem15.zext.i.i %arrayidx9.i.i355 = getelementptr inbounds [54 x float], ptr @ma_dr_mp3_L12_read_scalefactors.g_deq_L12, i64 0, i64 %add7.i.i354 - %432 = load float, ptr %arrayidx9.i.i355, align 4 + %433 = load float, ptr %arrayidx9.i.i355, align 4 %div1718.i.i = udiv i16 %rem15.lhs.trunc.i.i, 3 %div17.zext.i.i = zext nneg i16 %div1718.i.i to i32 %shr10.i.i = lshr i32 2097152, %div17.zext.i.i %conv11.i.i = sitofp i32 %shr10.i.i to float - %mul12.i.i = fmul float %432, %conv11.i.i + %mul12.i.i = fmul float %433, %conv11.i.i br label %if.end.i119.i if.end.i119.i: ; preds = %ma_dr_mp3_bs_get_bits.exit.i.i, %for.body4.i.i @@ -105625,25 +105626,25 @@ if.end.i119.i: ; preds = %ma_dr_mp3_bs_get_bi for.inc15.i.i357: ; preds = %if.end.i119.i %indvars.iv.next.i.i358 = add nuw nsw i64 %indvars.iv.i.i340, 1 - %exitcond.not.i.i359 = icmp eq i64 %indvars.iv.next.i.i358, %410 + %exitcond.not.i.i359 = icmp eq i64 %indvars.iv.next.i.i358, %411 br i1 %exitcond.not.i.i359, label %ma_dr_mp3_L12_read_scalefactors.exit.i, label %for.body.i.i339, !llvm.loop !889 ma_dr_mp3_L12_read_scalefactors.exit.i: ; preds = %for.inc15.i.i357 %.pre148.i = load i8, ptr %total_bands.i.i, align 16 - %433 = load i8, ptr %stereo_bands55.i.i, align 1 - %cmp70133.i = icmp ult i8 %433, %.pre148.i + %434 = load i8, ptr %stereo_bands55.i.i, align 1 + %cmp70133.i = icmp ult i8 %434, %.pre148.i br i1 %cmp70133.i, label %for.body72.preheader.i, label %ma_dr_mp3_L12_read_scale_info.exit for.body72.preheader.i: ; preds = %ma_dr_mp3_L12_read_scalefactors.exit.i - %434 = zext i8 %433 to i64 + %435 = zext i8 %434 to i64 %wide.trip.count.i360 = zext i8 %.pre148.i to i64 br label %for.body72.i for.body72.i: ; preds = %for.body72.i, %for.body72.preheader.i - %indvars.iv143.i = phi i64 [ %434, %for.body72.preheader.i ], [ %indvars.iv.next144.i, %for.body72.i ] - %435 = shl nuw nsw i64 %indvars.iv143.i, 1 - %436 = or disjoint i64 %435, 1 - %arrayidx77.i361 = getelementptr inbounds [64 x i8], ptr %bitalloc.i, i64 0, i64 %436 + %indvars.iv143.i = phi i64 [ %435, %for.body72.preheader.i ], [ %indvars.iv.next144.i, %for.body72.i ] + %436 = shl nuw nsw i64 %indvars.iv143.i, 1 + %437 = or disjoint i64 %436, 1 + %arrayidx77.i361 = getelementptr inbounds [64 x i8], ptr %bitalloc.i, i64 0, i64 %437 store i8 0, ptr %arrayidx77.i361, align 1 %indvars.iv.next144.i = add nuw nsw i64 %indvars.iv143.i, 1 %exitcond.not.i362 = icmp eq i64 %indvars.iv.next144.i, %wide.trip.count.i360 @@ -105669,10 +105670,10 @@ for.body118: ; preds = %ma_dr_mp3_L12_read_ %bs_frame.sroa.24.14576 = phi i32 [ %bs_frame.sroa.24.12, %ma_dr_mp3_L12_read_scale_info.exit ], [ %bs_frame.sroa.24.19, %for.cond115 ] %idx.ext122 = sext i32 %i.1577 to i64 %add.ptr123 = getelementptr inbounds float, ptr %grbuf112, i64 %idx.ext122 - %437 = load i32, ptr %layer, align 4 - %or = or i32 %437, 1 - %cmp2763.i = icmp sgt i32 %437, -1 - %438 = sext i32 %or to i64 + %438 = load i32, ptr %layer, align 4 + %or = or i32 %438, 1 + %cmp2763.i = icmp sgt i32 %438, -1 + %439 = sext i32 %or to i64 %.pre.i377 = load i8, ptr %total_bands.i.i, align 16 %wide.trip.count.i378 = zext nneg i32 %or to i64 %conv.i387 = zext i8 %.pre.i377 to i64 @@ -105682,15 +105683,15 @@ for.body118: ; preds = %ma_dr_mp3_L12_read_ for.body.i379: ; preds = %for.inc45.i, %for.body118 %bs_frame.sroa.24.15 = phi i32 [ %bs_frame.sroa.24.14576, %for.body118 ], [ %bs_frame.sroa.24.19, %for.inc45.i ] - %439 = phi i8 [ %.pre.i377, %for.body118 ], [ %446, %for.inc45.i ] + %440 = phi i8 [ %.pre.i377, %for.body118 ], [ %447, %for.inc45.i ] %indvars.iv87.i = phi i64 [ 0, %for.body118 ], [ %indvars.iv.next88.i, %for.inc45.i ] %choff.075.i = phi i32 [ 576, %for.body118 ], [ %choff.1.lcssa.i, %for.inc45.i ] - %cmp370.not.i = icmp eq i8 %439, 0 + %cmp370.not.i = icmp eq i8 %440, 0 br i1 %cmp370.not.i, label %for.inc45.i, label %for.body5.preheader.i for.body5.preheader.i: ; preds = %for.body.i379 - %440 = mul nsw i64 %indvars.iv87.i, %438 - %add.ptr.i380 = getelementptr inbounds float, ptr %add.ptr123, i64 %440 + %441 = mul nsw i64 %indvars.iv87.i, %439 + %add.ptr.i380 = getelementptr inbounds float, ptr %add.ptr123, i64 %441 br label %for.body5.i for.body5.i: ; preds = %if.end38.i, %for.body5.preheader.i @@ -105699,13 +105700,13 @@ for.body5.i: ; preds = %if.end38.i, %for.bo %dst.072.i = phi ptr [ %add.ptr.i380, %for.body5.preheader.i ], [ %add.ptr40.i, %if.end38.i ] %choff.171.i = phi i32 [ %choff.075.i, %for.body5.preheader.i ], [ %sub41.i, %if.end38.i ] %arrayidx.i381 = getelementptr inbounds [64 x i8], ptr %bitalloc.i, i64 0, i64 %indvars.iv84.i - %441 = load i8, ptr %arrayidx.i381, align 1 - %conv6.i382 = zext i8 %441 to i32 - %cmp7.not.i = icmp eq i8 %441, 0 + %442 = load i8, ptr %arrayidx.i381, align 1 + %conv6.i382 = zext i8 %442 to i32 + %cmp7.not.i = icmp eq i8 %442, 0 br i1 %cmp7.not.i, label %if.end38.i, label %if.then.i383 if.then.i383: ; preds = %for.body5.i - %cmp9.i = icmp ult i8 %441, 17 + %cmp9.i = icmp ult i8 %442, 17 br i1 %cmp9.i, label %if.then11.i, label %if.else.i384 if.then11.i: ; preds = %if.then.i383 @@ -105727,8 +105728,8 @@ if.end.i.i395: ; preds = %for.body16.i %add.ptr.i.i398 = getelementptr inbounds i8, ptr %add.ptr45, i64 %idx.ext.i.i397 %and.i.i399 = and i32 %bs_frame.sroa.24.17, 7 %add.i.i400 = add nuw nsw i32 %and.i.i399, %conv6.i382 - %442 = load i8, ptr %add.ptr.i.i398, align 1 - %conv.i.i401 = zext i8 %442 to i32 + %443 = load i8, ptr %add.ptr.i.i398, align 1 + %conv.i.i401 = zext i8 %443 to i32 %shr4.i.i402 = lshr i32 255, %and.i.i399 %and5.i.i403 = and i32 %shr4.i.i402, %conv.i.i401 %cmp612.i.i404 = icmp ugt i32 %add.i.i400, 8 @@ -105743,8 +105744,8 @@ while.body.i.i414: ; preds = %if.end.i.i395, %whi %sub.i.i420 = add nsw i32 %shl.015.i.i416, -8 %shl8.i.i421 = shl i32 %next.013.i.i418, %sub.i.i420 %or.i.i422 = or i32 %shl8.i.i421, %cache.014.i.i417 - %443 = load i8, ptr %p.0.i.i419, align 1 - %conv10.i.i423 = zext i8 %443 to i32 + %444 = load i8, ptr %p.0.i.i419, align 1 + %conv10.i.i423 = zext i8 %444 to i32 %cmp6.i.i424 = icmp ugt i32 %shl.015.i.i416, 16 br i1 %cmp6.i.i424, label %while.body.i.i414, label %while.end.i.i405, !llvm.loop !846 @@ -105784,8 +105785,8 @@ if.end.i32.i: ; preds = %if.else.i384 %add.ptr.i35.i = getelementptr inbounds i8, ptr %add.ptr45, i64 %idx.ext.i34.i %and.i36.i = and i32 %bs_frame.sroa.24.16, 7 %add.i37.i = add i32 %sub24.i, %and.i36.i - %444 = load i8, ptr %add.ptr.i35.i, align 1 - %conv.i38.i = zext i8 %444 to i32 + %445 = load i8, ptr %add.ptr.i35.i, align 1 + %conv.i38.i = zext i8 %445 to i32 %shr4.i39.i = lshr i32 255, %and.i36.i %and5.i40.i = and i32 %shr4.i39.i, %conv.i38.i %cmp612.i41.i = icmp sgt i32 %add.i37.i, 8 @@ -105800,8 +105801,8 @@ while.body.i50.i: ; preds = %if.end.i32.i, %whil %sub.i56.i = add nsw i32 %shl.015.i52.i, -8 %shl8.i57.i = shl i32 %next.013.i54.i, %sub.i56.i %or.i58.i = or i32 %shl8.i57.i, %cache.014.i53.i - %445 = load i8, ptr %p.0.i55.i, align 1 - %conv10.i59.i = zext i8 %445 to i32 + %446 = load i8, ptr %p.0.i55.i, align 1 + %conv10.i59.i = zext i8 %446 to i32 %cmp6.i60.i = icmp ugt i32 %shl.015.i52.i, 16 br i1 %cmp6.i60.i, label %while.body.i50.i, label %while.end.i42.i, !llvm.loop !846 @@ -105846,7 +105847,7 @@ if.end38.i: ; preds = %for.body29.i, %ma_d for.inc45.i: ; preds = %if.end38.i, %for.body.i379 %bs_frame.sroa.24.19 = phi i32 [ %bs_frame.sroa.24.15, %for.body.i379 ], [ %bs_frame.sroa.24.18, %if.end38.i ] - %446 = phi i8 [ 0, %for.body.i379 ], [ %.pre.i377, %if.end38.i ] + %447 = phi i8 [ 0, %for.body.i379 ], [ %.pre.i377, %if.end38.i ] %choff.1.lcssa.i = phi i32 [ %choff.075.i, %for.body.i379 ], [ %sub41.i, %if.end38.i ] %indvars.iv.next88.i = add nuw nsw i64 %indvars.iv87.i, 1 %exitcond91.not.i = icmp eq i64 %indvars.iv.next88.i, 4 @@ -105859,8 +105860,8 @@ ma_dr_mp3_L12_dequantize_granule.exit: ; preds = %for.inc45.i br i1 %cmp129, label %if.then131, label %if.end156 if.then131: ; preds = %ma_dr_mp3_L12_dequantize_granule.exit - %447 = load i8, ptr %stereo_bands55.i.i, align 1 - %conv.i426 = zext i8 %447 to i32 + %448 = load i8, ptr %stereo_bands55.i.i, align 1 + %conv.i426 = zext i8 %448 to i32 %mul.i427 = mul nuw nsw i32 %conv.i426, 18 %idx.ext.i428 = zext nneg i32 %mul.i427 to i64 %add.ptr1.i = getelementptr inbounds float, ptr %add.ptr.i425, i64 %idx.ext.i428 @@ -105883,20 +105884,20 @@ for.cond16.preheader.i: ; preds = %for.cond16.preheade %dst.addr.020.i = phi ptr [ %add.ptr29.i, %for.inc27.i ], [ %grbuf112, %for.cond16.preheader.i.preheader ] %scf.addr.019.i = phi ptr [ %add.ptr30.i, %for.inc27.i ], [ %add.ptr136, %for.cond16.preheader.i.preheader ] %arrayidx22.i = getelementptr inbounds i8, ptr %scf.addr.019.i, i64 12 - %448 = load float, ptr %scf.addr.019.i, align 4 - %449 = load float, ptr %arrayidx22.i, align 4 + %449 = load float, ptr %scf.addr.019.i, align 4 + %450 = load float, ptr %arrayidx22.i, align 4 br label %for.body19.i for.body19.i: ; preds = %for.body19.i, %for.cond16.preheader.i %indvars.iv.i431 = phi i64 [ 0, %for.cond16.preheader.i ], [ %indvars.iv.next.i433, %for.body19.i ] %arrayidx20.i432 = getelementptr inbounds float, ptr %dst.addr.020.i, i64 %indvars.iv.i431 - %450 = load float, ptr %arrayidx20.i432, align 4 - %mul21.i = fmul float %448, %450 + %451 = load float, ptr %arrayidx20.i432, align 4 + %mul21.i = fmul float %449, %451 store float %mul21.i, ptr %arrayidx20.i432, align 4 - %451 = or disjoint i64 %indvars.iv.i431, 576 - %arrayidx25.i = getelementptr inbounds float, ptr %dst.addr.020.i, i64 %451 - %452 = load float, ptr %arrayidx25.i, align 4 - %mul26.i = fmul float %449, %452 + %452 = or disjoint i64 %indvars.iv.i431, 576 + %arrayidx25.i = getelementptr inbounds float, ptr %dst.addr.020.i, i64 %452 + %453 = load float, ptr %arrayidx25.i, align 4 + %mul26.i = fmul float %450, %453 store float %mul26.i, ptr %arrayidx25.i, align 4 %indvars.iv.next.i433 = add nuw nsw i64 %indvars.iv.i431, 1 %exitcond.not.i434 = icmp eq i64 %indvars.iv.next.i433, 12 @@ -105910,11 +105911,11 @@ for.inc27.i: ; preds = %for.body19.i br i1 %exitcond606.not, label %ma_dr_mp3_L12_apply_scf_384.exit, label %for.cond16.preheader.i, !llvm.loop !897 ma_dr_mp3_L12_apply_scf_384.exit: ; preds = %for.inc27.i, %if.then131 - %453 = load i32, ptr %channels, align 4 - call fastcc void @ma_dr_mp3d_synth_granule(ptr noundef nonnull %qmf_state140, ptr noundef nonnull %grbuf112, i32 noundef 12, i32 noundef %453, ptr noundef %pcm.addr.1579, ptr noundef nonnull %syn146) - call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(4608) %grbuf112, i8 0, i64 4608, i1 false) %454 = load i32, ptr %channels, align 4 - %conv153 = sext i32 %454 to i64 + call fastcc void @ma_dr_mp3d_synth_granule(ptr noundef nonnull %qmf_state140, ptr noundef nonnull %grbuf112, i32 noundef 12, i32 noundef %454, ptr noundef %pcm.addr.1579, ptr noundef nonnull %syn146) + call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(4608) %grbuf112, i8 0, i64 4608, i1 false) + %455 = load i32, ptr %channels, align 4 + %conv153 = sext i32 %455 to i64 %mul154 = mul nsw i64 %conv153, 768 %add.ptr155 = getelementptr inbounds i8, ptr %pcm.addr.1579, i64 %mul154 br label %if.end156 @@ -105931,8 +105932,8 @@ if.then163: ; preds = %if.end156 if.end168: ; preds = %for.cond115, %ma_dr_mp3_L3_save_reservoir.exit %success.0 = phi i32 [ %conv33.i185, %ma_dr_mp3_L3_save_reservoir.exit ], [ 1, %for.cond115 ] - %455 = getelementptr i8, ptr %dec, i64 6153 - %header31.val = load i8, ptr %455, align 1 + %456 = getelementptr i8, ptr %dec, i64 6153 + %header31.val = load i8, ptr %456, align 1 %conv.i437 = zext i8 %header31.val to i32 %and.i438 = and i32 %conv.i437, 6 %cmp.i439 = icmp eq i32 %and.i438, 6 diff --git a/bench/openvdb/optimized/Merge.cc.ll b/bench/openvdb/optimized/Merge.cc.ll index 95f38f5cff8..f7f1cf79a06 100644 --- a/bench/openvdb/optimized/Merge.cc.ll +++ b/bench/openvdb/optimized/Merge.cc.ll @@ -15637,8 +15637,8 @@ while.body.i.i.i: ; preds = %land.rhs.i.i.i invoke.cont8: ; preds = %land.rhs.i.i.i, %if.then7 %retval.sroa.2.1.i = phi ptr [ %6, %if.then7 ], [ %retval.sroa.2.0.i, %land.rhs.i.i.i ] - %cmp.i.i.i39.not688 = icmp eq ptr %retval.sroa.2.1.i, %add.ptr.i.i.i.i.i.i - br i1 %cmp.i.i.i39.not688, label %for.end, label %for.body.lr.ph + %cmp.i.i.i37.not687 = icmp eq ptr %retval.sroa.2.1.i, %add.ptr.i.i.i.i.i.i + br i1 %cmp.i.i.i37.not687, label %for.end, label %for.body.lr.ph for.body.lr.ph: ; preds = %invoke.cont8 %ref.tmp.sroa.2.0.ref.tmp16.sroa_idx = getelementptr inbounds i8, ptr %ref.tmp16, i64 8 @@ -15646,216 +15646,216 @@ for.body.lr.ph: ; preds = %invoke.cont8 br label %for.body for.body: ; preds = %for.body.lr.ph, %_ZN7openvdb5v11_04tree8RootNodeINS1_12InternalNodeINS3_INS1_8LeafNodeINS0_9ValueMaskELj3EEELj4EEELj5EEEE9ValueIterIKS9_St23_Rb_tree_const_iteratorISt4pairIKNS0_4math5CoordENS9_10NodeStructEEENS9_12ValueAllPredEKbEppEv.exit - %valueIter.sroa.3.0689 = phi ptr [ %retval.sroa.2.1.i, %for.body.lr.ph ], [ %valueIter.sroa.3.1, %_ZN7openvdb5v11_04tree8RootNodeINS1_12InternalNodeINS3_INS1_8LeafNodeINS0_9ValueMaskELj3EEELj4EEELj5EEEE9ValueIterIKS9_St23_Rb_tree_const_iteratorISt4pairIKNS0_4math5CoordENS9_10NodeStructEEENS9_12ValueAllPredEKbEppEv.exit ] - %_M_storage.i.i.i = getelementptr inbounds i8, ptr %valueIter.sroa.3.0689, i64 32 + %valueIter.sroa.3.0688 = phi ptr [ %retval.sroa.2.1.i, %for.body.lr.ph ], [ %valueIter.sroa.3.1, %_ZN7openvdb5v11_04tree8RootNodeINS1_12InternalNodeINS3_INS1_8LeafNodeINS0_9ValueMaskELj3EEELj4EEELj5EEEE9ValueIterIKS9_St23_Rb_tree_const_iteratorISt4pairIKNS0_4math5CoordENS9_10NodeStructEEENS9_12ValueAllPredEKbEppEv.exit ] + %_M_storage.i.i.i = getelementptr inbounds i8, ptr %valueIter.sroa.3.0688, i64 32 %retval.sroa.0.0.copyload.i = load i64, ptr %_M_storage.i.i.i, align 8 - %retval.sroa.2.0.first.sroa_idx.i = getelementptr inbounds i8, ptr %valueIter.sroa.3.0689, i64 40 + %retval.sroa.2.0.first.sroa_idx.i = getelementptr inbounds i8, ptr %valueIter.sroa.3.0688, i64 40 %retval.sroa.2.0.copyload.i = load i32, ptr %retval.sroa.2.0.first.sroa_idx.i, align 8 store i64 %retval.sroa.0.0.copyload.i, ptr %ref.tmp16, align 8 store i32 %retval.sroa.2.0.copyload.i, ptr %ref.tmp.sroa.2.0.ref.tmp16.sroa_idx, align 8 store i8 1, ptr %second.i, align 4 - %call2.i.i42 = invoke { ptr, i8 } @_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE10_M_emplaceIJS6_EEES4_INS8_14_Node_iteratorIS6_Lb0ELb0EEEbESt17integral_constantIbLb1EEDpOT_(ptr noundef nonnull align 8 dereferenceable(56) %children, ptr noundef nonnull align 4 dereferenceable(13) %ref.tmp16) + %call2.i.i40 = invoke { ptr, i8 } @_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE10_M_emplaceIJS6_EEES4_INS8_14_Node_iteratorIS6_Lb0ELb0EEEbESt17integral_constantIbLb1EEDpOT_(ptr noundef nonnull align 8 dereferenceable(56) %children, ptr noundef nonnull align 4 dereferenceable(13) %ref.tmp16) to label %invoke.cont18 unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp invoke.cont18: ; preds = %for.body - %cmp.i.i.not.i.i = icmp eq ptr %valueIter.sroa.3.0689, %add.ptr.i.i.i.i.i.i + %cmp.i.i.not.i.i = icmp eq ptr %valueIter.sroa.3.0688, %add.ptr.i.i.i.i.i.i br i1 %cmp.i.i.not.i.i, label %for.end.loopexit, label %if.end.i.i if.end.i.i: ; preds = %invoke.cont18 - %call.i.i.i = call noundef ptr @_ZSt18_Rb_tree_incrementPKSt18_Rb_tree_node_base(ptr noundef nonnull %valueIter.sroa.3.0689) #25 - %cmp.i.i.not2.i.i.i43 = icmp eq ptr %call.i.i.i, %add.ptr.i.i.i.i.i.i - br i1 %cmp.i.i.not2.i.i.i43, label %for.end.loopexit, label %land.rhs.i.i.i44 - -land.rhs.i.i.i44: ; preds = %if.end.i.i, %while.body.i.i.i47 - %valueIter.sroa.3.1 = phi ptr [ %call.i.i.i.i48, %while.body.i.i.i47 ], [ %call.i.i.i, %if.end.i.i ] - %second.i.i.i.i.i45 = getelementptr inbounds i8, ptr %valueIter.sroa.3.1, i64 48 - %8 = load ptr, ptr %second.i.i.i.i.i45, align 8 - %cmp.i.i.i.i.i.i46 = icmp eq ptr %8, null - br i1 %cmp.i.i.i.i.i.i46, label %_ZN7openvdb5v11_04tree8RootNodeINS1_12InternalNodeINS3_INS1_8LeafNodeINS0_9ValueMaskELj3EEELj4EEELj5EEEE9ValueIterIKS9_St23_Rb_tree_const_iteratorISt4pairIKNS0_4math5CoordENS9_10NodeStructEEENS9_12ValueAllPredEKbEppEv.exit, label %while.body.i.i.i47 - -while.body.i.i.i47: ; preds = %land.rhs.i.i.i44 - %call.i.i.i.i48 = call noundef ptr @_ZSt18_Rb_tree_incrementPKSt18_Rb_tree_node_base(ptr noundef nonnull %valueIter.sroa.3.1) #25 - %cmp.i.i.not.i.i.i49 = icmp eq ptr %call.i.i.i.i48, %add.ptr.i.i.i.i.i.i - br i1 %cmp.i.i.not.i.i.i49, label %for.end.loopexit, label %land.rhs.i.i.i44, !llvm.loop !130 - -_ZN7openvdb5v11_04tree8RootNodeINS1_12InternalNodeINS3_INS1_8LeafNodeINS0_9ValueMaskELj3EEELj4EEELj5EEEE9ValueIterIKS9_St23_Rb_tree_const_iteratorISt4pairIKNS0_4math5CoordENS9_10NodeStructEEENS9_12ValueAllPredEKbEppEv.exit: ; preds = %land.rhs.i.i.i44 - %cmp.i.i.i39.not = icmp eq ptr %valueIter.sroa.3.1, %add.ptr.i.i.i.i.i.i - br i1 %cmp.i.i.i39.not, label %for.end.loopexit, label %for.body + %call.i.i.i = call noundef ptr @_ZSt18_Rb_tree_incrementPKSt18_Rb_tree_node_base(ptr noundef nonnull %valueIter.sroa.3.0688) #25 + %cmp.i.i.not2.i.i.i41 = icmp eq ptr %call.i.i.i, %add.ptr.i.i.i.i.i.i + br i1 %cmp.i.i.not2.i.i.i41, label %for.end.loopexit, label %land.rhs.i.i.i42 + +land.rhs.i.i.i42: ; preds = %if.end.i.i, %while.body.i.i.i45 + %valueIter.sroa.3.1 = phi ptr [ %call.i.i.i.i46, %while.body.i.i.i45 ], [ %call.i.i.i, %if.end.i.i ] + %second.i.i.i.i.i43 = getelementptr inbounds i8, ptr %valueIter.sroa.3.1, i64 48 + %8 = load ptr, ptr %second.i.i.i.i.i43, align 8 + %cmp.i.i.i.i.i.i44 = icmp eq ptr %8, null + br i1 %cmp.i.i.i.i.i.i44, label %_ZN7openvdb5v11_04tree8RootNodeINS1_12InternalNodeINS3_INS1_8LeafNodeINS0_9ValueMaskELj3EEELj4EEELj5EEEE9ValueIterIKS9_St23_Rb_tree_const_iteratorISt4pairIKNS0_4math5CoordENS9_10NodeStructEEENS9_12ValueAllPredEKbEppEv.exit, label %while.body.i.i.i45 + +while.body.i.i.i45: ; preds = %land.rhs.i.i.i42 + %call.i.i.i.i46 = call noundef ptr @_ZSt18_Rb_tree_incrementPKSt18_Rb_tree_node_base(ptr noundef nonnull %valueIter.sroa.3.1) #25 + %cmp.i.i.not.i.i.i47 = icmp eq ptr %call.i.i.i.i46, %add.ptr.i.i.i.i.i.i + br i1 %cmp.i.i.not.i.i.i47, label %for.end.loopexit, label %land.rhs.i.i.i42, !llvm.loop !130 + +_ZN7openvdb5v11_04tree8RootNodeINS1_12InternalNodeINS3_INS1_8LeafNodeINS0_9ValueMaskELj3EEELj4EEELj5EEEE9ValueIterIKS9_St23_Rb_tree_const_iteratorISt4pairIKNS0_4math5CoordENS9_10NodeStructEEENS9_12ValueAllPredEKbEppEv.exit: ; preds = %land.rhs.i.i.i42 + %cmp.i.i.i37.not = icmp eq ptr %valueIter.sroa.3.1, %add.ptr.i.i.i.i.i.i + br i1 %cmp.i.i.i37.not, label %for.end.loopexit, label %for.body lpad.loopexit: ; preds = %invoke.cont223, %if.end245 - %lpad.loopexit632 = landingpad { ptr, i32 } + %lpad.loopexit631 = landingpad { ptr, i32 } cleanup br label %ehcleanup lpad.loopexit.split-lp.loopexit: ; preds = %if.then209, %if.end185 - %lpad.loopexit634 = landingpad { ptr, i32 } + %lpad.loopexit633 = landingpad { ptr, i32 } cleanup br label %ehcleanup lpad.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %if.then156, %for.body151 - %lpad.loopexit637 = landingpad { ptr, i32 } + %lpad.loopexit636 = landingpad { ptr, i32 } cleanup br label %ehcleanup lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %if.then122 - %lpad.loopexit646 = landingpad { ptr, i32 } + %lpad.loopexit645 = landingpad { ptr, i32 } cleanup br label %ehcleanup lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %if.then84 - %lpad.loopexit652 = landingpad { ptr, i32 } + %lpad.loopexit651 = landingpad { ptr, i32 } cleanup br label %ehcleanup lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %for.body28 - %lpad.loopexit658 = landingpad { ptr, i32 } + %lpad.loopexit657 = landingpad { ptr, i32 } cleanup br label %ehcleanup lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp: ; preds = %for.body - %lpad.loopexit.split-lp659 = landingpad { ptr, i32 } + %lpad.loopexit.split-lp658 = landingpad { ptr, i32 } cleanup br label %ehcleanup -for.end.loopexit: ; preds = %if.end.i.i, %invoke.cont18, %_ZN7openvdb5v11_04tree8RootNodeINS1_12InternalNodeINS3_INS1_8LeafNodeINS0_9ValueMaskELj3EEELj4EEELj5EEEE9ValueIterIKS9_St23_Rb_tree_const_iteratorISt4pairIKNS0_4math5CoordENS9_10NodeStructEEENS9_12ValueAllPredEKbEppEv.exit, %while.body.i.i.i47 +for.end.loopexit: ; preds = %if.end.i.i, %invoke.cont18, %_ZN7openvdb5v11_04tree8RootNodeINS1_12InternalNodeINS3_INS1_8LeafNodeINS0_9ValueMaskELj3EEELj4EEELj5EEEE9ValueIterIKS9_St23_Rb_tree_const_iteratorISt4pairIKNS0_4math5CoordENS9_10NodeStructEEENS9_12ValueAllPredEKbEppEv.exit, %while.body.i.i.i45 %.pre = load ptr, ptr %_M_left.i.i.i, align 8 br label %for.end for.end: ; preds = %while.body.i.i.i, %for.end.loopexit, %invoke.cont8 %9 = phi ptr [ %.pre, %for.end.loopexit ], [ %6, %invoke.cont8 ], [ %6, %while.body.i.i.i ] - %cmp.i.i.not2.i.i.i52 = icmp eq ptr %add.ptr.i.i.i.i.i.i, %9 - br i1 %cmp.i.i.not2.i.i.i52, label %if.end46, label %land.rhs.i.i.i53 + %cmp.i.i.not2.i.i.i50 = icmp eq ptr %add.ptr.i.i.i.i.i.i, %9 + br i1 %cmp.i.i.not2.i.i.i50, label %if.end46, label %land.rhs.i.i.i51 -land.rhs.i.i.i53: ; preds = %for.end, %while.body.i.i.i59 - %retval.sroa.2.0.i54 = phi ptr [ %call.i.i.i.i60, %while.body.i.i.i59 ], [ %9, %for.end ] - %second.i.i.i.i.i55 = getelementptr inbounds i8, ptr %retval.sroa.2.0.i54, i64 48 - %10 = load ptr, ptr %second.i.i.i.i.i55, align 8 +land.rhs.i.i.i51: ; preds = %for.end, %while.body.i.i.i57 + %retval.sroa.2.0.i52 = phi ptr [ %call.i.i.i.i58, %while.body.i.i.i57 ], [ %9, %for.end ] + %second.i.i.i.i.i53 = getelementptr inbounds i8, ptr %retval.sroa.2.0.i52, i64 48 + %10 = load ptr, ptr %second.i.i.i.i.i53, align 8 %cmp.i.i.i.not.i.i.i = icmp eq ptr %10, null - br i1 %cmp.i.i.i.not.i.i.i, label %while.body.i.i.i59, label %invoke.cont22 + br i1 %cmp.i.i.i.not.i.i.i, label %while.body.i.i.i57, label %invoke.cont22 -while.body.i.i.i59: ; preds = %land.rhs.i.i.i53 - %call.i.i.i.i60 = call noundef ptr @_ZSt18_Rb_tree_incrementPKSt18_Rb_tree_node_base(ptr noundef nonnull %retval.sroa.2.0.i54) #25 - %cmp.i.i.not.i.i.i61 = icmp eq ptr %call.i.i.i.i60, %add.ptr.i.i.i.i.i.i - br i1 %cmp.i.i.not.i.i.i61, label %if.end46, label %land.rhs.i.i.i53, !llvm.loop !21 +while.body.i.i.i57: ; preds = %land.rhs.i.i.i51 + %call.i.i.i.i58 = call noundef ptr @_ZSt18_Rb_tree_incrementPKSt18_Rb_tree_node_base(ptr noundef nonnull %retval.sroa.2.0.i52) #25 + %cmp.i.i.not.i.i.i59 = icmp eq ptr %call.i.i.i.i58, %add.ptr.i.i.i.i.i.i + br i1 %cmp.i.i.not.i.i.i59, label %if.end46, label %land.rhs.i.i.i51, !llvm.loop !21 -invoke.cont22: ; preds = %land.rhs.i.i.i53 - %cmp.i.i.i64.not690 = icmp eq ptr %retval.sroa.2.0.i54, %add.ptr.i.i.i.i.i.i - br i1 %cmp.i.i.i64.not690, label %if.end46, label %for.body28.lr.ph +invoke.cont22: ; preds = %land.rhs.i.i.i51 + %cmp.i.i.i62.not689 = icmp eq ptr %retval.sroa.2.0.i52, %add.ptr.i.i.i.i.i.i + br i1 %cmp.i.i.i62.not689, label %if.end46, label %for.body28.lr.ph for.body28.lr.ph: ; preds = %invoke.cont22 %ref.tmp30.sroa.2.0.ref.tmp36.sroa_idx = getelementptr inbounds i8, ptr %ref.tmp36, i64 8 - %second.i72 = getelementptr inbounds i8, ptr %ref.tmp36, i64 12 + %second.i70 = getelementptr inbounds i8, ptr %ref.tmp36, i64 12 br label %for.body28 for.body28: ; preds = %for.body28.lr.ph, %_ZN7openvdb5v11_04tree8RootNodeINS1_12InternalNodeINS3_INS1_8LeafNodeINS0_9ValueMaskELj3EEELj4EEELj5EEEE9ChildIterIKS9_St23_Rb_tree_const_iteratorISt4pairIKNS0_4math5CoordENS9_10NodeStructEEENS9_11ChildOnPredEKS8_EppEv.exit - %childIter.sroa.3.0691 = phi ptr [ %retval.sroa.2.0.i54, %for.body28.lr.ph ], [ %childIter.sroa.3.1, %_ZN7openvdb5v11_04tree8RootNodeINS1_12InternalNodeINS3_INS1_8LeafNodeINS0_9ValueMaskELj3EEELj4EEELj5EEEE9ChildIterIKS9_St23_Rb_tree_const_iteratorISt4pairIKNS0_4math5CoordENS9_10NodeStructEEENS9_11ChildOnPredEKS8_EppEv.exit ] - %_M_storage.i.i.i66 = getelementptr inbounds i8, ptr %childIter.sroa.3.0691, i64 32 - %retval.sroa.0.0.copyload.i67 = load i64, ptr %_M_storage.i.i.i66, align 8 - %retval.sroa.2.0.first.sroa_idx.i68 = getelementptr inbounds i8, ptr %childIter.sroa.3.0691, i64 40 - %retval.sroa.2.0.copyload.i69 = load i32, ptr %retval.sroa.2.0.first.sroa_idx.i68, align 8 - store i64 %retval.sroa.0.0.copyload.i67, ptr %ref.tmp36, align 8 - store i32 %retval.sroa.2.0.copyload.i69, ptr %ref.tmp30.sroa.2.0.ref.tmp36.sroa_idx, align 8 - store i8 6, ptr %second.i72, align 4 - %call2.i.i74 = invoke { ptr, i8 } @_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE10_M_emplaceIJS6_EEES4_INS8_14_Node_iteratorIS6_Lb0ELb0EEEbESt17integral_constantIbLb1EEDpOT_(ptr noundef nonnull align 8 dereferenceable(56) %children, ptr noundef nonnull align 4 dereferenceable(13) %ref.tmp36) + %childIter.sroa.3.0690 = phi ptr [ %retval.sroa.2.0.i52, %for.body28.lr.ph ], [ %childIter.sroa.3.1, %_ZN7openvdb5v11_04tree8RootNodeINS1_12InternalNodeINS3_INS1_8LeafNodeINS0_9ValueMaskELj3EEELj4EEELj5EEEE9ChildIterIKS9_St23_Rb_tree_const_iteratorISt4pairIKNS0_4math5CoordENS9_10NodeStructEEENS9_11ChildOnPredEKS8_EppEv.exit ] + %_M_storage.i.i.i64 = getelementptr inbounds i8, ptr %childIter.sroa.3.0690, i64 32 + %retval.sroa.0.0.copyload.i65 = load i64, ptr %_M_storage.i.i.i64, align 8 + %retval.sroa.2.0.first.sroa_idx.i66 = getelementptr inbounds i8, ptr %childIter.sroa.3.0690, i64 40 + %retval.sroa.2.0.copyload.i67 = load i32, ptr %retval.sroa.2.0.first.sroa_idx.i66, align 8 + store i64 %retval.sroa.0.0.copyload.i65, ptr %ref.tmp36, align 8 + store i32 %retval.sroa.2.0.copyload.i67, ptr %ref.tmp30.sroa.2.0.ref.tmp36.sroa_idx, align 8 + store i8 6, ptr %second.i70, align 4 + %call2.i.i72 = invoke { ptr, i8 } @_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE10_M_emplaceIJS6_EEES4_INS8_14_Node_iteratorIS6_Lb0ELb0EEEbESt17integral_constantIbLb1EEDpOT_(ptr noundef nonnull align 8 dereferenceable(56) %children, ptr noundef nonnull align 4 dereferenceable(13) %ref.tmp36) to label %invoke.cont39 unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit invoke.cont39: ; preds = %for.body28 - %cmp.i.i.not.i.i78 = icmp eq ptr %childIter.sroa.3.0691, %add.ptr.i.i.i.i.i.i - br i1 %cmp.i.i.not.i.i78, label %if.end46, label %if.end.i.i79 - -if.end.i.i79: ; preds = %invoke.cont39 - %call.i.i.i80 = call noundef ptr @_ZSt18_Rb_tree_incrementPKSt18_Rb_tree_node_base(ptr noundef nonnull %childIter.sroa.3.0691) #25 - %cmp.i.i.not2.i.i.i81 = icmp eq ptr %call.i.i.i80, %add.ptr.i.i.i.i.i.i - br i1 %cmp.i.i.not2.i.i.i81, label %if.end46, label %land.rhs.i.i.i82 - -land.rhs.i.i.i82: ; preds = %if.end.i.i79, %while.body.i.i.i86 - %childIter.sroa.3.1 = phi ptr [ %call.i.i.i.i87, %while.body.i.i.i86 ], [ %call.i.i.i80, %if.end.i.i79 ] - %second.i.i.i.i.i84 = getelementptr inbounds i8, ptr %childIter.sroa.3.1, i64 48 - %11 = load ptr, ptr %second.i.i.i.i.i84, align 8 - %cmp.i.i.i.not.i.i.i85 = icmp eq ptr %11, null - br i1 %cmp.i.i.i.not.i.i.i85, label %while.body.i.i.i86, label %_ZN7openvdb5v11_04tree8RootNodeINS1_12InternalNodeINS3_INS1_8LeafNodeINS0_9ValueMaskELj3EEELj4EEELj5EEEE9ChildIterIKS9_St23_Rb_tree_const_iteratorISt4pairIKNS0_4math5CoordENS9_10NodeStructEEENS9_11ChildOnPredEKS8_EppEv.exit - -while.body.i.i.i86: ; preds = %land.rhs.i.i.i82 - %call.i.i.i.i87 = call noundef ptr @_ZSt18_Rb_tree_incrementPKSt18_Rb_tree_node_base(ptr noundef nonnull %childIter.sroa.3.1) #25 - %cmp.i.i.not.i.i.i88 = icmp eq ptr %call.i.i.i.i87, %add.ptr.i.i.i.i.i.i - br i1 %cmp.i.i.not.i.i.i88, label %if.end46, label %land.rhs.i.i.i82, !llvm.loop !21 - -_ZN7openvdb5v11_04tree8RootNodeINS1_12InternalNodeINS3_INS1_8LeafNodeINS0_9ValueMaskELj3EEELj4EEELj5EEEE9ChildIterIKS9_St23_Rb_tree_const_iteratorISt4pairIKNS0_4math5CoordENS9_10NodeStructEEENS9_11ChildOnPredEKS8_EppEv.exit: ; preds = %land.rhs.i.i.i82 - %cmp.i.i.i64.not = icmp eq ptr %childIter.sroa.3.1, %add.ptr.i.i.i.i.i.i - br i1 %cmp.i.i.i64.not, label %if.end46, label %for.body28 - -if.end46: ; preds = %while.body.i.i.i59, %if.end.i.i79, %invoke.cont39, %_ZN7openvdb5v11_04tree8RootNodeINS1_12InternalNodeINS3_INS1_8LeafNodeINS0_9ValueMaskELj3EEELj4EEELj5EEEE9ChildIterIKS9_St23_Rb_tree_const_iteratorISt4pairIKNS0_4math5CoordENS9_10NodeStructEEENS9_11ChildOnPredEKS8_EppEv.exit, %while.body.i.i.i86, %for.end, %invoke.cont22, %if.end5 + %cmp.i.i.not.i.i76 = icmp eq ptr %childIter.sroa.3.0690, %add.ptr.i.i.i.i.i.i + br i1 %cmp.i.i.not.i.i76, label %if.end46, label %if.end.i.i77 + +if.end.i.i77: ; preds = %invoke.cont39 + %call.i.i.i78 = call noundef ptr @_ZSt18_Rb_tree_incrementPKSt18_Rb_tree_node_base(ptr noundef nonnull %childIter.sroa.3.0690) #25 + %cmp.i.i.not2.i.i.i79 = icmp eq ptr %call.i.i.i78, %add.ptr.i.i.i.i.i.i + br i1 %cmp.i.i.not2.i.i.i79, label %if.end46, label %land.rhs.i.i.i80 + +land.rhs.i.i.i80: ; preds = %if.end.i.i77, %while.body.i.i.i84 + %childIter.sroa.3.1 = phi ptr [ %call.i.i.i.i85, %while.body.i.i.i84 ], [ %call.i.i.i78, %if.end.i.i77 ] + %second.i.i.i.i.i82 = getelementptr inbounds i8, ptr %childIter.sroa.3.1, i64 48 + %11 = load ptr, ptr %second.i.i.i.i.i82, align 8 + %cmp.i.i.i.not.i.i.i83 = icmp eq ptr %11, null + br i1 %cmp.i.i.i.not.i.i.i83, label %while.body.i.i.i84, label %_ZN7openvdb5v11_04tree8RootNodeINS1_12InternalNodeINS3_INS1_8LeafNodeINS0_9ValueMaskELj3EEELj4EEELj5EEEE9ChildIterIKS9_St23_Rb_tree_const_iteratorISt4pairIKNS0_4math5CoordENS9_10NodeStructEEENS9_11ChildOnPredEKS8_EppEv.exit + +while.body.i.i.i84: ; preds = %land.rhs.i.i.i80 + %call.i.i.i.i85 = call noundef ptr @_ZSt18_Rb_tree_incrementPKSt18_Rb_tree_node_base(ptr noundef nonnull %childIter.sroa.3.1) #25 + %cmp.i.i.not.i.i.i86 = icmp eq ptr %call.i.i.i.i85, %add.ptr.i.i.i.i.i.i + br i1 %cmp.i.i.not.i.i.i86, label %if.end46, label %land.rhs.i.i.i80, !llvm.loop !21 + +_ZN7openvdb5v11_04tree8RootNodeINS1_12InternalNodeINS3_INS1_8LeafNodeINS0_9ValueMaskELj3EEELj4EEELj5EEEE9ChildIterIKS9_St23_Rb_tree_const_iteratorISt4pairIKNS0_4math5CoordENS9_10NodeStructEEENS9_11ChildOnPredEKS8_EppEv.exit: ; preds = %land.rhs.i.i.i80 + %cmp.i.i.i62.not = icmp eq ptr %childIter.sroa.3.1, %add.ptr.i.i.i.i.i.i + br i1 %cmp.i.i.i62.not, label %if.end46, label %for.body28 + +if.end46: ; preds = %while.body.i.i.i57, %if.end.i.i77, %invoke.cont39, %_ZN7openvdb5v11_04tree8RootNodeINS1_12InternalNodeINS3_INS1_8LeafNodeINS0_9ValueMaskELj3EEELj4EEELj5EEEE9ChildIterIKS9_St23_Rb_tree_const_iteratorISt4pairIKNS0_4math5CoordENS9_10NodeStructEEENS9_11ChildOnPredEKS8_EppEv.exit, %while.body.i.i.i84, %for.end, %invoke.cont22, %if.end5 %12 = load ptr, ptr %this, align 8 %13 = load ptr, ptr %_M_finish.i.i.i, align 8 - %cmp.i.not696 = icmp eq ptr %12, %13 - br i1 %cmp.i.not696, label %for.end141, label %if.end59.lr.ph + %cmp.i.not695 = icmp eq ptr %12, %13 + br i1 %cmp.i.not695, label %for.end141, label %if.end59.lr.ph if.end59.lr.ph: ; preds = %if.end46 %_M_element_count.i.i = getelementptr inbounds i8, ptr %children, i64 24 br label %if.end59 if.end59: ; preds = %if.end59.lr.ph, %for.inc139 - %__begin1.sroa.0.0697 = phi ptr [ %12, %if.end59.lr.ph ], [ %incdec.ptr.i, %for.inc139 ] - %mTree.i = getelementptr inbounds i8, ptr %__begin1.sroa.0.0697, i64 16 + %__begin1.sroa.0.0696 = phi ptr [ %12, %if.end59.lr.ph ], [ %incdec.ptr.i, %for.inc139 ] + %mTree.i = getelementptr inbounds i8, ptr %__begin1.sroa.0.0696, i64 16 %14 = load ptr, ptr %mTree.i, align 8 - %_M_left.i.i.i89 = getelementptr inbounds i8, ptr %14, i64 32 - %15 = load ptr, ptr %_M_left.i.i.i89, align 8 - %add.ptr.i.i.i.i.i.i90 = getelementptr inbounds i8, ptr %14, i64 16 - %cmp.i.i.not2.i.i.i91 = icmp eq ptr %add.ptr.i.i.i.i.i.i90, %15 - br i1 %cmp.i.i.not2.i.i.i91, label %invoke.cont61, label %land.rhs.i.i.i92 - -land.rhs.i.i.i92: ; preds = %if.end59, %while.body.i.i.i96 - %retval.sroa.2.0.i93 = phi ptr [ %call.i.i.i.i97, %while.body.i.i.i96 ], [ %15, %if.end59 ] - %second.i.i.i.i.i94 = getelementptr inbounds i8, ptr %retval.sroa.2.0.i93, i64 48 - %16 = load ptr, ptr %second.i.i.i.i.i94, align 8 - %cmp.i.i.i.i.i.i95 = icmp eq ptr %16, null - br i1 %cmp.i.i.i.i.i.i95, label %invoke.cont61, label %while.body.i.i.i96 - -while.body.i.i.i96: ; preds = %land.rhs.i.i.i92 - %call.i.i.i.i97 = call noundef ptr @_ZSt18_Rb_tree_incrementPKSt18_Rb_tree_node_base(ptr noundef nonnull %retval.sroa.2.0.i93) #25 - %cmp.i.i.not.i.i.i98 = icmp eq ptr %call.i.i.i.i97, %add.ptr.i.i.i.i.i.i90 - br i1 %cmp.i.i.not.i.i.i98, label %for.end96, label %land.rhs.i.i.i92, !llvm.loop !130 - -invoke.cont61: ; preds = %land.rhs.i.i.i92, %if.end59 - %retval.sroa.2.1.i99 = phi ptr [ %15, %if.end59 ], [ %retval.sroa.2.0.i93, %land.rhs.i.i.i92 ] - %cmp.i.i.i105.not692 = icmp eq ptr %retval.sroa.2.1.i99, %add.ptr.i.i.i.i.i.i90 - br i1 %cmp.i.i.i105.not692, label %for.end96, label %for.body67 - -for.body67: ; preds = %invoke.cont61, %_ZN7openvdb5v11_04tree8RootNodeINS1_12InternalNodeINS3_INS1_8LeafNodeINS0_9ValueMaskELj3EEELj4EEELj5EEEE9ValueIterIKS9_St23_Rb_tree_const_iteratorISt4pairIKNS0_4math5CoordENS9_10NodeStructEEENS9_12ValueAllPredEKbEppEv.exit131 - %valueIter60.sroa.3.0693 = phi ptr [ %valueIter60.sroa.3.1, %_ZN7openvdb5v11_04tree8RootNodeINS1_12InternalNodeINS3_INS1_8LeafNodeINS0_9ValueMaskELj3EEELj4EEELj5EEEE9ValueIterIKS9_St23_Rb_tree_const_iteratorISt4pairIKNS0_4math5CoordENS9_10NodeStructEEENS9_12ValueAllPredEKbEppEv.exit131 ], [ %retval.sroa.2.1.i99, %invoke.cont61 ] - %_M_storage.i.i.i107 = getelementptr inbounds i8, ptr %valueIter60.sroa.3.0693, i64 32 - %retval.sroa.0.0.copyload.i108 = load i64, ptr %_M_storage.i.i.i107, align 8 - %retval.sroa.2.0.first.sroa_idx.i109 = getelementptr inbounds i8, ptr %valueIter60.sroa.3.0693, i64 40 - %retval.sroa.2.0.copyload.i110 = load i32, ptr %retval.sroa.2.0.first.sroa_idx.i109, align 8 - %ref.tmp69.sroa.0.sroa.0.0.extract.trunc = trunc i64 %retval.sroa.0.0.copyload.i108 to i32 - %ref.tmp69.sroa.0.sroa.4.0.extract.shift = lshr i64 %retval.sroa.0.0.copyload.i108, 32 + %_M_left.i.i.i87 = getelementptr inbounds i8, ptr %14, i64 32 + %15 = load ptr, ptr %_M_left.i.i.i87, align 8 + %add.ptr.i.i.i.i.i.i88 = getelementptr inbounds i8, ptr %14, i64 16 + %cmp.i.i.not2.i.i.i89 = icmp eq ptr %add.ptr.i.i.i.i.i.i88, %15 + br i1 %cmp.i.i.not2.i.i.i89, label %invoke.cont61, label %land.rhs.i.i.i90 + +land.rhs.i.i.i90: ; preds = %if.end59, %while.body.i.i.i94 + %retval.sroa.2.0.i91 = phi ptr [ %call.i.i.i.i95, %while.body.i.i.i94 ], [ %15, %if.end59 ] + %second.i.i.i.i.i92 = getelementptr inbounds i8, ptr %retval.sroa.2.0.i91, i64 48 + %16 = load ptr, ptr %second.i.i.i.i.i92, align 8 + %cmp.i.i.i.i.i.i93 = icmp eq ptr %16, null + br i1 %cmp.i.i.i.i.i.i93, label %invoke.cont61, label %while.body.i.i.i94 + +while.body.i.i.i94: ; preds = %land.rhs.i.i.i90 + %call.i.i.i.i95 = call noundef ptr @_ZSt18_Rb_tree_incrementPKSt18_Rb_tree_node_base(ptr noundef nonnull %retval.sroa.2.0.i91) #25 + %cmp.i.i.not.i.i.i96 = icmp eq ptr %call.i.i.i.i95, %add.ptr.i.i.i.i.i.i88 + br i1 %cmp.i.i.not.i.i.i96, label %for.end96, label %land.rhs.i.i.i90, !llvm.loop !130 + +invoke.cont61: ; preds = %land.rhs.i.i.i90, %if.end59 + %retval.sroa.2.1.i97 = phi ptr [ %15, %if.end59 ], [ %retval.sroa.2.0.i91, %land.rhs.i.i.i90 ] + %cmp.i.i.i103.not691 = icmp eq ptr %retval.sroa.2.1.i97, %add.ptr.i.i.i.i.i.i88 + br i1 %cmp.i.i.i103.not691, label %for.end96, label %for.body67 + +for.body67: ; preds = %invoke.cont61, %_ZN7openvdb5v11_04tree8RootNodeINS1_12InternalNodeINS3_INS1_8LeafNodeINS0_9ValueMaskELj3EEELj4EEELj5EEEE9ValueIterIKS9_St23_Rb_tree_const_iteratorISt4pairIKNS0_4math5CoordENS9_10NodeStructEEENS9_12ValueAllPredEKbEppEv.exit129 + %valueIter60.sroa.3.0692 = phi ptr [ %valueIter60.sroa.3.1, %_ZN7openvdb5v11_04tree8RootNodeINS1_12InternalNodeINS3_INS1_8LeafNodeINS0_9ValueMaskELj3EEELj4EEELj5EEEE9ValueIterIKS9_St23_Rb_tree_const_iteratorISt4pairIKNS0_4math5CoordENS9_10NodeStructEEENS9_12ValueAllPredEKbEppEv.exit129 ], [ %retval.sroa.2.1.i97, %invoke.cont61 ] + %_M_storage.i.i.i105 = getelementptr inbounds i8, ptr %valueIter60.sroa.3.0692, i64 32 + %retval.sroa.0.0.copyload.i106 = load i64, ptr %_M_storage.i.i.i105, align 8 + %retval.sroa.2.0.first.sroa_idx.i107 = getelementptr inbounds i8, ptr %valueIter60.sroa.3.0692, i64 40 + %retval.sroa.2.0.copyload.i108 = load i32, ptr %retval.sroa.2.0.first.sroa_idx.i107, align 8 + %ref.tmp69.sroa.0.sroa.0.0.extract.trunc = trunc i64 %retval.sroa.0.0.copyload.i106 to i32 + %ref.tmp69.sroa.0.sroa.4.0.extract.shift = lshr i64 %retval.sroa.0.0.copyload.i106, 32 %ref.tmp69.sroa.0.sroa.4.0.extract.trunc = trunc i64 %ref.tmp69.sroa.0.sroa.4.0.extract.shift to i32 %17 = load i64, ptr %_M_element_count.i.i, align 8 %cmp.not.not.i = icmp ne i64 %17, 0 - br i1 %cmp.not.not.i, label %if.end15.i, label %if.then.i264 + br i1 %cmp.not.not.i, label %if.end15.i, label %if.then.i262 -if.then.i264: ; preds = %for.body67 +if.then.i262: ; preds = %for.body67 %retval.sroa.0.09.i = load ptr, ptr %_M_before_begin.i.i, align 8 %cmp.i.not10.i = icmp eq ptr %retval.sroa.0.09.i, null br i1 %cmp.i.not10.i, label %if.then84, label %for.body.i -for.body.i: ; preds = %if.then.i264, %for.inc.i - %retval.sroa.0.011.i = phi ptr [ %retval.sroa.0.0.i, %for.inc.i ], [ %retval.sroa.0.09.i, %if.then.i264 ] - %add.ptr.i267 = getelementptr inbounds i8, ptr %retval.sroa.0.011.i, i64 8 - %18 = load i32, ptr %add.ptr.i267, align 4 - %cmp.i.i.i.i268 = icmp eq i32 %18, %ref.tmp69.sroa.0.sroa.0.0.extract.trunc - br i1 %cmp.i.i.i.i268, label %land.lhs.true.i.i.i.i, label %for.inc.i +for.body.i: ; preds = %if.then.i262, %for.inc.i + %retval.sroa.0.011.i = phi ptr [ %retval.sroa.0.0.i, %for.inc.i ], [ %retval.sroa.0.09.i, %if.then.i262 ] + %add.ptr.i265 = getelementptr inbounds i8, ptr %retval.sroa.0.011.i, i64 8 + %18 = load i32, ptr %add.ptr.i265, align 4 + %cmp.i.i.i.i266 = icmp eq i32 %18, %ref.tmp69.sroa.0.sroa.0.0.extract.trunc + br i1 %cmp.i.i.i.i266, label %land.lhs.true.i.i.i.i, label %for.inc.i land.lhs.true.i.i.i.i: ; preds = %for.body.i - %arrayidx.i.i3.i.i.i.i269 = getelementptr inbounds i8, ptr %retval.sroa.0.011.i, i64 12 - %19 = load i32, ptr %arrayidx.i.i3.i.i.i.i269, align 4 + %arrayidx.i.i3.i.i.i.i267 = getelementptr inbounds i8, ptr %retval.sroa.0.011.i, i64 12 + %19 = load i32, ptr %arrayidx.i.i3.i.i.i.i267, align 4 %cmp8.i.i.i.i = icmp eq i32 %19, %ref.tmp69.sroa.0.sroa.4.0.extract.trunc br i1 %cmp8.i.i.i.i, label %_ZNKSt8__detail15_Hashtable_baseIN7openvdb5v11_04math5CoordESt4pairIKS4_hENS_10_Select1stESt8equal_toIS4_ESt4hashIS4_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE13_M_key_equalsERS6_RKNS_16_Hash_node_valueIS7_Lb0EEE.exit.i, label %for.inc.i _ZNKSt8__detail15_Hashtable_baseIN7openvdb5v11_04math5CoordESt4pairIKS4_hENS_10_Select1stESt8equal_toIS4_ESt4hashIS4_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE13_M_key_equalsERS6_RKNS_16_Hash_node_valueIS7_Lb0EEE.exit.i: ; preds = %land.lhs.true.i.i.i.i %arrayidx.i.i5.i.i.i.i = getelementptr inbounds i8, ptr %retval.sroa.0.011.i, i64 16 %20 = load i32, ptr %arrayidx.i.i5.i.i.i.i, align 4 - %cmp13.i.i.i.i = icmp eq i32 %retval.sroa.2.0.copyload.i110, %20 + %cmp13.i.i.i.i = icmp eq i32 %retval.sroa.2.0.copyload.i108, %20 br i1 %cmp13.i.i.i.i, label %if.else, label %for.inc.i for.inc.i: ; preds = %_ZNKSt8__detail15_Hashtable_baseIN7openvdb5v11_04math5CoordESt4pairIKS4_hENS_10_Select1stESt8equal_toIS4_ESt4hashIS4_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE13_M_key_equalsERS6_RKNS_16_Hash_node_valueIS7_Lb0EEE.exit.i, %land.lhs.true.i.i.i.i, %for.body.i @@ -15866,30 +15866,30 @@ for.inc.i: ; preds = %_ZNKSt8__detail15_H if.end15.i: ; preds = %for.body67 %mul.i.i.i.i = mul i32 %ref.tmp69.sroa.0.sroa.0.0.extract.trunc, 455773 %mul3.i.i.i.i = mul i32 %ref.tmp69.sroa.0.sroa.4.0.extract.trunc, 475301 - %mul5.i.i.i.i = mul i32 %retval.sroa.2.0.copyload.i110, 655287 + %mul5.i.i.i.i = mul i32 %retval.sroa.2.0.copyload.i108, 655287 %xor.i.i.i.i = xor i32 %mul5.i.i.i.i, %mul.i.i.i.i %xor6.i.i.i.i = xor i32 %xor.i.i.i.i, %mul3.i.i.i.i - %and.i.i.i.i259 = and i32 %xor6.i.i.i.i, 1048575 - %conv.i.i.i.i = zext nneg i32 %and.i.i.i.i259 to i64 + %and.i.i.i.i257 = and i32 %xor6.i.i.i.i, 1048575 + %conv.i.i.i.i = zext nneg i32 %and.i.i.i.i257 to i64 %21 = load i64, ptr %_M_bucket_count.i.i, align 8 %rem.i.i.i.i = urem i64 %conv.i.i.i.i, %21 %22 = load ptr, ptr %children, align 8 - %arrayidx.i.i.i261 = getelementptr inbounds ptr, ptr %22, i64 %rem.i.i.i.i - %23 = load ptr, ptr %arrayidx.i.i.i261, align 8 + %arrayidx.i.i.i259 = getelementptr inbounds ptr, ptr %22, i64 %rem.i.i.i.i + %23 = load ptr, ptr %arrayidx.i.i.i259, align 8 %tobool.not.i.i.i = icmp eq ptr %23, null - br i1 %tobool.not.i.i.i, label %if.then84, label %if.end.i.i.i262 + br i1 %tobool.not.i.i.i, label %if.then84, label %if.end.i.i.i260 -if.end.i.i.i262: ; preds = %if.end15.i +if.end.i.i.i260: ; preds = %if.end15.i %24 = load ptr, ptr %23, align 8 %add.ptr.phi.trans.insert.i.i.i = getelementptr inbounds i8, ptr %24, i64 8 %.pre.i.i.i = load i32, ptr %add.ptr.phi.trans.insert.i.i.i, align 4 br label %for.cond.i.i.i -for.cond.i.i.i: ; preds = %lor.lhs.false.i.i.i, %if.end.i.i.i262 - %25 = phi i32 [ %.pre.i.i.i, %if.end.i.i.i262 ], [ %30, %lor.lhs.false.i.i.i ] - %26 = phi ptr [ %24, %if.end.i.i.i262 ], [ %29, %lor.lhs.false.i.i.i ] - %cmp.i.i.i.i.i.i.i263 = icmp eq i32 %25, %ref.tmp69.sroa.0.sroa.0.0.extract.trunc - br i1 %cmp.i.i.i.i.i.i.i263, label %land.lhs.true.i.i.i.i.i.i.i, label %if.end3.i.i.i +for.cond.i.i.i: ; preds = %lor.lhs.false.i.i.i, %if.end.i.i.i260 + %25 = phi i32 [ %.pre.i.i.i, %if.end.i.i.i260 ], [ %30, %lor.lhs.false.i.i.i ] + %26 = phi ptr [ %24, %if.end.i.i.i260 ], [ %29, %lor.lhs.false.i.i.i ] + %cmp.i.i.i.i.i.i.i261 = icmp eq i32 %25, %ref.tmp69.sroa.0.sroa.0.0.extract.trunc + br i1 %cmp.i.i.i.i.i.i.i261, label %land.lhs.true.i.i.i.i.i.i.i, label %if.end3.i.i.i land.lhs.true.i.i.i.i.i.i.i: ; preds = %for.cond.i.i.i %arrayidx.i.i3.i.i.i.i.i.i.i = getelementptr inbounds i8, ptr %26, i64 12 @@ -15900,7 +15900,7 @@ land.lhs.true.i.i.i.i.i.i.i: ; preds = %for.cond.i.i.i _ZNKSt8__detail15_Hashtable_baseIN7openvdb5v11_04math5CoordESt4pairIKS4_hENS_10_Select1stESt8equal_toIS4_ESt4hashIS4_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_equalsERS6_mRKNS_16_Hash_node_valueIS7_Lb0EEE.exit.i.i.i: ; preds = %land.lhs.true.i.i.i.i.i.i.i %arrayidx.i.i5.i.i.i.i.i.i.i = getelementptr inbounds i8, ptr %26, i64 16 %28 = load i32, ptr %arrayidx.i.i5.i.i.i.i.i.i.i, align 4 - %cmp13.i.i.i.i.i.i.i = icmp eq i32 %retval.sroa.2.0.copyload.i110, %28 + %cmp13.i.i.i.i.i.i.i = icmp eq i32 %retval.sroa.2.0.copyload.i108, %28 br i1 %cmp13.i.i.i.i.i.i.i, label %if.else, label %if.end3.i.i.i if.end3.i.i.i: ; preds = %_ZNKSt8__detail15_Hashtable_baseIN7openvdb5v11_04math5CoordESt4pairIKS4_hENS_10_Select1stESt8equal_toIS4_ESt4hashIS4_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_equalsERS6_mRKNS_16_Hash_node_valueIS7_Lb0EEE.exit.i.i.i, %land.lhs.true.i.i.i.i.i.i.i, %for.cond.i.i.i @@ -15926,41 +15926,41 @@ lor.lhs.false.i.i.i: ; preds = %if.end3.i.i.i %cmp.not.i.i.i = icmp eq i64 %rem.i.i.i.i.i.i, %rem.i.i.i.i br i1 %cmp.not.i.i.i, label %for.cond.i.i.i, label %if.then84, !llvm.loop !132 -if.then84: ; preds = %for.inc.i, %lor.lhs.false.i.i.i, %if.end3.i.i.i, %if.end15.i, %if.then.i264 - %call5.i.i.i.i.i327 = invoke noalias noundef nonnull dereferenceable(24) ptr @_Znwm(i64 noundef 24) #22 +if.then84: ; preds = %for.inc.i, %lor.lhs.false.i.i.i, %if.end3.i.i.i, %if.end15.i, %if.then.i262 + %call5.i.i.i.i.i325 = invoke noalias noundef nonnull dereferenceable(24) ptr @_Znwm(i64 noundef 24) #22 to label %call5.i.i.i.i.i.noexc unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit call5.i.i.i.i.i.noexc: ; preds = %if.then84 - store ptr null, ptr %call5.i.i.i.i.i327, align 8 - %add.ptr.i.i.i = getelementptr inbounds i8, ptr %call5.i.i.i.i.i327, i64 8 - store i64 %retval.sroa.0.0.copyload.i108, ptr %add.ptr.i.i.i, align 4 - %ref.tmp85.sroa.0.sroa.2.0.add.ptr.i.i.i.sroa_idx = getelementptr inbounds i8, ptr %call5.i.i.i.i.i327, i64 16 - store i32 %retval.sroa.2.0.copyload.i110, ptr %ref.tmp85.sroa.0.sroa.2.0.add.ptr.i.i.i.sroa_idx, align 4 - %ref.tmp85.sroa.2.0.add.ptr.i.i.i.sroa_idx = getelementptr inbounds i8, ptr %call5.i.i.i.i.i327, i64 20 + store ptr null, ptr %call5.i.i.i.i.i325, align 8 + %add.ptr.i.i.i = getelementptr inbounds i8, ptr %call5.i.i.i.i.i325, i64 8 + store i64 %retval.sroa.0.0.copyload.i106, ptr %add.ptr.i.i.i, align 4 + %ref.tmp85.sroa.0.sroa.2.0.add.ptr.i.i.i.sroa_idx = getelementptr inbounds i8, ptr %call5.i.i.i.i.i325, i64 16 + store i32 %retval.sroa.2.0.copyload.i108, ptr %ref.tmp85.sroa.0.sroa.2.0.add.ptr.i.i.i.sroa_idx, align 4 + %ref.tmp85.sroa.2.0.add.ptr.i.i.i.sroa_idx = getelementptr inbounds i8, ptr %call5.i.i.i.i.i325, i64 20 store i8 1, ptr %ref.tmp85.sroa.2.0.add.ptr.i.i.i.sroa_idx, align 4 %__it.sroa.0.036.i = load ptr, ptr %_M_before_begin.i.i, align 8 %cmp.i.not37.i = icmp eq ptr %__it.sroa.0.036.i, null %or.cond = select i1 %cmp.not.not.i, i1 true, i1 %cmp.i.not37.i - br i1 %or.cond, label %invoke.cont21.i, label %for.body.i318 + br i1 %or.cond, label %invoke.cont21.i, label %for.body.i316 -for.body.i318: ; preds = %call5.i.i.i.i.i.noexc, %for.inc.i320 - %__it.sroa.0.038.i = phi ptr [ %__it.sroa.0.0.i, %for.inc.i320 ], [ %__it.sroa.0.036.i, %call5.i.i.i.i.i.noexc ] +for.body.i316: ; preds = %call5.i.i.i.i.i.noexc, %for.inc.i318 + %__it.sroa.0.038.i = phi ptr [ %__it.sroa.0.0.i, %for.inc.i318 ], [ %__it.sroa.0.036.i, %call5.i.i.i.i.i.noexc ] %add.ptr12.i = getelementptr inbounds i8, ptr %__it.sroa.0.038.i, i64 8 %33 = load i32, ptr %add.ptr12.i, align 4 - %cmp.i.i.i.i319 = icmp eq i32 %33, %ref.tmp69.sroa.0.sroa.0.0.extract.trunc - br i1 %cmp.i.i.i.i319, label %land.lhs.true.i.i.i.i322, label %for.inc.i320 + %cmp.i.i.i.i317 = icmp eq i32 %33, %ref.tmp69.sroa.0.sroa.0.0.extract.trunc + br i1 %cmp.i.i.i.i317, label %land.lhs.true.i.i.i.i320, label %for.inc.i318 -land.lhs.true.i.i.i.i322: ; preds = %for.body.i318 - %arrayidx.i.i3.i.i.i.i323 = getelementptr inbounds i8, ptr %__it.sroa.0.038.i, i64 12 - %34 = load i32, ptr %arrayidx.i.i3.i.i.i.i323, align 4 - %cmp8.i.i.i.i324 = icmp eq i32 %34, %ref.tmp69.sroa.0.sroa.4.0.extract.trunc - br i1 %cmp8.i.i.i.i324, label %invoke.cont.i, label %for.inc.i320 +land.lhs.true.i.i.i.i320: ; preds = %for.body.i316 + %arrayidx.i.i3.i.i.i.i321 = getelementptr inbounds i8, ptr %__it.sroa.0.038.i, i64 12 + %34 = load i32, ptr %arrayidx.i.i3.i.i.i.i321, align 4 + %cmp8.i.i.i.i322 = icmp eq i32 %34, %ref.tmp69.sroa.0.sroa.4.0.extract.trunc + br i1 %cmp8.i.i.i.i322, label %invoke.cont.i, label %for.inc.i318 -invoke.cont.i: ; preds = %land.lhs.true.i.i.i.i322 - %arrayidx.i.i5.i.i.i.i325 = getelementptr inbounds i8, ptr %__it.sroa.0.038.i, i64 16 - %35 = load i32, ptr %arrayidx.i.i5.i.i.i.i325, align 4 - %cmp13.i.i.i.i326 = icmp eq i32 %retval.sroa.2.0.copyload.i110, %35 - br i1 %cmp13.i.i.i.i326, label %if.then.i15.i, label %for.inc.i320 +invoke.cont.i: ; preds = %land.lhs.true.i.i.i.i320 + %arrayidx.i.i5.i.i.i.i323 = getelementptr inbounds i8, ptr %__it.sroa.0.038.i, i64 16 + %35 = load i32, ptr %arrayidx.i.i5.i.i.i.i323, align 4 + %cmp13.i.i.i.i324 = icmp eq i32 %retval.sroa.2.0.copyload.i108, %35 + br i1 %cmp13.i.i.i.i324, label %if.then.i15.i, label %for.inc.i318 _ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE12_Scoped_nodeD2Ev.exit.i: ; preds = %if.end34.i %36 = landingpad { ptr, i32 } @@ -15968,111 +15968,111 @@ _ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10 br label %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE12_Scoped_nodeD2Ev.exit.i.body _ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE12_Scoped_nodeD2Ev.exit.i.body: ; preds = %lpad2.i.i, %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE12_Scoped_nodeD2Ev.exit.i - %eh.lpad-body481 = phi { ptr, i32 } [ %36, %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE12_Scoped_nodeD2Ev.exit.i ], [ %65, %lpad2.i.i ] - call void @_ZdlPv(ptr noundef nonnull %call5.i.i.i.i.i327) #23 + %eh.lpad-body479 = phi { ptr, i32 } [ %36, %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE12_Scoped_nodeD2Ev.exit.i ], [ %65, %lpad2.i.i ] + call void @_ZdlPv(ptr noundef nonnull %call5.i.i.i.i.i325) #23 br label %ehcleanup -for.inc.i320: ; preds = %invoke.cont.i, %land.lhs.true.i.i.i.i322, %for.body.i318 +for.inc.i318: ; preds = %invoke.cont.i, %land.lhs.true.i.i.i.i320, %for.body.i316 %__it.sroa.0.0.i = load ptr, ptr %__it.sroa.0.038.i, align 8 - %cmp.i.not.i321 = icmp eq ptr %__it.sroa.0.0.i, null - br i1 %cmp.i.not.i321, label %invoke.cont21.i, label %for.body.i318, !llvm.loop !133 - -invoke.cont21.i: ; preds = %for.inc.i320, %call5.i.i.i.i.i.noexc - %mul.i.i.i.i272 = mul i32 %ref.tmp69.sroa.0.sroa.0.0.extract.trunc, 455773 - %mul3.i.i.i.i274 = mul i32 %ref.tmp69.sroa.0.sroa.4.0.extract.trunc, 475301 - %xor.i.i.i.i275 = xor i32 %mul3.i.i.i.i274, %mul.i.i.i.i272 - %mul5.i.i.i.i277 = mul i32 %retval.sroa.2.0.copyload.i110, 655287 - %xor6.i.i.i.i278 = xor i32 %xor.i.i.i.i275, %mul5.i.i.i.i277 - %and.i.i.i.i279 = and i32 %xor6.i.i.i.i278, 1048575 - %conv.i.i.i.i280 = zext nneg i32 %and.i.i.i.i279 to i64 + %cmp.i.not.i319 = icmp eq ptr %__it.sroa.0.0.i, null + br i1 %cmp.i.not.i319, label %invoke.cont21.i, label %for.body.i316, !llvm.loop !133 + +invoke.cont21.i: ; preds = %for.inc.i318, %call5.i.i.i.i.i.noexc + %mul.i.i.i.i270 = mul i32 %ref.tmp69.sroa.0.sroa.0.0.extract.trunc, 455773 + %mul3.i.i.i.i272 = mul i32 %ref.tmp69.sroa.0.sroa.4.0.extract.trunc, 475301 + %xor.i.i.i.i273 = xor i32 %mul3.i.i.i.i272, %mul.i.i.i.i270 + %mul5.i.i.i.i275 = mul i32 %retval.sroa.2.0.copyload.i108, 655287 + %xor6.i.i.i.i276 = xor i32 %xor.i.i.i.i273, %mul5.i.i.i.i275 + %and.i.i.i.i277 = and i32 %xor6.i.i.i.i276, 1048575 + %conv.i.i.i.i278 = zext nneg i32 %and.i.i.i.i277 to i64 %37 = load i64, ptr %_M_bucket_count.i.i, align 8 - %rem.i.i.i.i282 = urem i64 %conv.i.i.i.i280, %37 + %rem.i.i.i.i280 = urem i64 %conv.i.i.i.i278, %37 br i1 %cmp.not.not.i, label %if.then26.i, label %if.end34.i if.then26.i: ; preds = %invoke.cont21.i %38 = load ptr, ptr %children, align 8 - %arrayidx.i.i.i283 = getelementptr inbounds ptr, ptr %38, i64 %rem.i.i.i.i282 - %39 = load ptr, ptr %arrayidx.i.i.i283, align 8 - %tobool.not.i.i.i284 = icmp eq ptr %39, null - br i1 %tobool.not.i.i.i284, label %if.end34.i, label %if.end.i.i.i285 + %arrayidx.i.i.i281 = getelementptr inbounds ptr, ptr %38, i64 %rem.i.i.i.i280 + %39 = load ptr, ptr %arrayidx.i.i.i281, align 8 + %tobool.not.i.i.i282 = icmp eq ptr %39, null + br i1 %tobool.not.i.i.i282, label %if.end34.i, label %if.end.i.i.i283 -if.end.i.i.i285: ; preds = %if.then26.i +if.end.i.i.i283: ; preds = %if.then26.i %40 = load ptr, ptr %39, align 8 - %add.ptr.phi.trans.insert.i.i.i286 = getelementptr inbounds i8, ptr %40, i64 8 - %.pre.i.i.i287 = load i32, ptr %add.ptr.phi.trans.insert.i.i.i286, align 4 - br label %for.cond.i.i.i288 - -for.cond.i.i.i288: ; preds = %lor.lhs.false.i.i.i292, %if.end.i.i.i285 - %41 = phi i32 [ %.pre.i.i.i287, %if.end.i.i.i285 ], [ %46, %lor.lhs.false.i.i.i292 ] - %42 = phi ptr [ %40, %if.end.i.i.i285 ], [ %45, %lor.lhs.false.i.i.i292 ] - %cmp.i.i.i.i.i.i.i289 = icmp eq i32 %41, %ref.tmp69.sroa.0.sroa.0.0.extract.trunc - br i1 %cmp.i.i.i.i.i.i.i289, label %land.lhs.true.i.i.i.i.i.i.i307, label %if.end3.i.i.i290 - -land.lhs.true.i.i.i.i.i.i.i307: ; preds = %for.cond.i.i.i288 - %arrayidx.i.i3.i.i.i.i.i.i.i308 = getelementptr inbounds i8, ptr %42, i64 12 - %43 = load i32, ptr %arrayidx.i.i3.i.i.i.i.i.i.i308, align 4 - %cmp8.i.i.i.i.i.i.i309 = icmp eq i32 %43, %ref.tmp69.sroa.0.sroa.4.0.extract.trunc - br i1 %cmp8.i.i.i.i.i.i.i309, label %_ZNKSt8__detail15_Hashtable_baseIN7openvdb5v11_04math5CoordESt4pairIKS4_hENS_10_Select1stESt8equal_toIS4_ESt4hashIS4_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_equalsERS6_mRKNS_16_Hash_node_valueIS7_Lb0EEE.exit.i.i.i310, label %if.end3.i.i.i290 - -_ZNKSt8__detail15_Hashtable_baseIN7openvdb5v11_04math5CoordESt4pairIKS4_hENS_10_Select1stESt8equal_toIS4_ESt4hashIS4_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_equalsERS6_mRKNS_16_Hash_node_valueIS7_Lb0EEE.exit.i.i.i310: ; preds = %land.lhs.true.i.i.i.i.i.i.i307 - %arrayidx.i.i5.i.i.i.i.i.i.i311 = getelementptr inbounds i8, ptr %42, i64 16 - %44 = load i32, ptr %arrayidx.i.i5.i.i.i.i.i.i.i311, align 4 - %cmp13.i.i.i.i.i.i.i312 = icmp eq i32 %retval.sroa.2.0.copyload.i110, %44 - br i1 %cmp13.i.i.i.i.i.i.i312, label %if.then.i15.i, label %if.end3.i.i.i290 - -if.end3.i.i.i290: ; preds = %_ZNKSt8__detail15_Hashtable_baseIN7openvdb5v11_04math5CoordESt4pairIKS4_hENS_10_Select1stESt8equal_toIS4_ESt4hashIS4_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_equalsERS6_mRKNS_16_Hash_node_valueIS7_Lb0EEE.exit.i.i.i310, %land.lhs.true.i.i.i.i.i.i.i307, %for.cond.i.i.i288 + %add.ptr.phi.trans.insert.i.i.i284 = getelementptr inbounds i8, ptr %40, i64 8 + %.pre.i.i.i285 = load i32, ptr %add.ptr.phi.trans.insert.i.i.i284, align 4 + br label %for.cond.i.i.i286 + +for.cond.i.i.i286: ; preds = %lor.lhs.false.i.i.i290, %if.end.i.i.i283 + %41 = phi i32 [ %.pre.i.i.i285, %if.end.i.i.i283 ], [ %46, %lor.lhs.false.i.i.i290 ] + %42 = phi ptr [ %40, %if.end.i.i.i283 ], [ %45, %lor.lhs.false.i.i.i290 ] + %cmp.i.i.i.i.i.i.i287 = icmp eq i32 %41, %ref.tmp69.sroa.0.sroa.0.0.extract.trunc + br i1 %cmp.i.i.i.i.i.i.i287, label %land.lhs.true.i.i.i.i.i.i.i305, label %if.end3.i.i.i288 + +land.lhs.true.i.i.i.i.i.i.i305: ; preds = %for.cond.i.i.i286 + %arrayidx.i.i3.i.i.i.i.i.i.i306 = getelementptr inbounds i8, ptr %42, i64 12 + %43 = load i32, ptr %arrayidx.i.i3.i.i.i.i.i.i.i306, align 4 + %cmp8.i.i.i.i.i.i.i307 = icmp eq i32 %43, %ref.tmp69.sroa.0.sroa.4.0.extract.trunc + br i1 %cmp8.i.i.i.i.i.i.i307, label %_ZNKSt8__detail15_Hashtable_baseIN7openvdb5v11_04math5CoordESt4pairIKS4_hENS_10_Select1stESt8equal_toIS4_ESt4hashIS4_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_equalsERS6_mRKNS_16_Hash_node_valueIS7_Lb0EEE.exit.i.i.i308, label %if.end3.i.i.i288 + +_ZNKSt8__detail15_Hashtable_baseIN7openvdb5v11_04math5CoordESt4pairIKS4_hENS_10_Select1stESt8equal_toIS4_ESt4hashIS4_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_equalsERS6_mRKNS_16_Hash_node_valueIS7_Lb0EEE.exit.i.i.i308: ; preds = %land.lhs.true.i.i.i.i.i.i.i305 + %arrayidx.i.i5.i.i.i.i.i.i.i309 = getelementptr inbounds i8, ptr %42, i64 16 + %44 = load i32, ptr %arrayidx.i.i5.i.i.i.i.i.i.i309, align 4 + %cmp13.i.i.i.i.i.i.i310 = icmp eq i32 %retval.sroa.2.0.copyload.i108, %44 + br i1 %cmp13.i.i.i.i.i.i.i310, label %if.then.i15.i, label %if.end3.i.i.i288 + +if.end3.i.i.i288: ; preds = %_ZNKSt8__detail15_Hashtable_baseIN7openvdb5v11_04math5CoordESt4pairIKS4_hENS_10_Select1stESt8equal_toIS4_ESt4hashIS4_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_equalsERS6_mRKNS_16_Hash_node_valueIS7_Lb0EEE.exit.i.i.i308, %land.lhs.true.i.i.i.i.i.i.i305, %for.cond.i.i.i286 %45 = load ptr, ptr %42, align 8 - %tobool5.not.i.i.i291 = icmp eq ptr %45, null - br i1 %tobool5.not.i.i.i291, label %if.end34.i, label %lor.lhs.false.i.i.i292 - -lor.lhs.false.i.i.i292: ; preds = %if.end3.i.i.i290 - %add.ptr7.i.i.i293 = getelementptr inbounds i8, ptr %45, i64 8 - %46 = load i32, ptr %add.ptr7.i.i.i293, align 4 - %mul.i.i.i.i.i.i.i.i294 = mul i32 %46, 455773 - %arrayidx2.i.i.i.i.i.i.i.i295 = getelementptr inbounds i8, ptr %45, i64 12 - %47 = load i32, ptr %arrayidx2.i.i.i.i.i.i.i.i295, align 4 - %mul3.i.i.i.i.i.i.i.i296 = mul i32 %47, 475301 - %xor.i.i.i.i.i.i.i.i297 = xor i32 %mul3.i.i.i.i.i.i.i.i296, %mul.i.i.i.i.i.i.i.i294 - %arrayidx4.i.i.i.i.i.i.i.i298 = getelementptr inbounds i8, ptr %45, i64 16 - %48 = load i32, ptr %arrayidx4.i.i.i.i.i.i.i.i298, align 4 - %mul5.i.i.i.i.i.i.i.i299 = mul i32 %48, 655287 - %xor6.i.i.i.i.i.i.i.i300 = xor i32 %xor.i.i.i.i.i.i.i.i297, %mul5.i.i.i.i.i.i.i.i299 - %and.i.i.i.i.i.i.i.i301 = and i32 %xor6.i.i.i.i.i.i.i.i300, 1048575 - %conv.i.i.i.i.i.i.i.i302 = zext nneg i32 %and.i.i.i.i.i.i.i.i301 to i64 - %rem.i.i.i.i.i.i303 = urem i64 %conv.i.i.i.i.i.i.i.i302, %37 - %cmp.not.i.i.i304 = icmp eq i64 %rem.i.i.i.i.i.i303, %rem.i.i.i.i282 - br i1 %cmp.not.i.i.i304, label %for.cond.i.i.i288, label %if.end34.i, !llvm.loop !132 - -if.end34.i: ; preds = %lor.lhs.false.i.i.i292, %if.end3.i.i.i290, %if.then26.i, %invoke.cont21.i + %tobool5.not.i.i.i289 = icmp eq ptr %45, null + br i1 %tobool5.not.i.i.i289, label %if.end34.i, label %lor.lhs.false.i.i.i290 + +lor.lhs.false.i.i.i290: ; preds = %if.end3.i.i.i288 + %add.ptr7.i.i.i291 = getelementptr inbounds i8, ptr %45, i64 8 + %46 = load i32, ptr %add.ptr7.i.i.i291, align 4 + %mul.i.i.i.i.i.i.i.i292 = mul i32 %46, 455773 + %arrayidx2.i.i.i.i.i.i.i.i293 = getelementptr inbounds i8, ptr %45, i64 12 + %47 = load i32, ptr %arrayidx2.i.i.i.i.i.i.i.i293, align 4 + %mul3.i.i.i.i.i.i.i.i294 = mul i32 %47, 475301 + %xor.i.i.i.i.i.i.i.i295 = xor i32 %mul3.i.i.i.i.i.i.i.i294, %mul.i.i.i.i.i.i.i.i292 + %arrayidx4.i.i.i.i.i.i.i.i296 = getelementptr inbounds i8, ptr %45, i64 16 + %48 = load i32, ptr %arrayidx4.i.i.i.i.i.i.i.i296, align 4 + %mul5.i.i.i.i.i.i.i.i297 = mul i32 %48, 655287 + %xor6.i.i.i.i.i.i.i.i298 = xor i32 %xor.i.i.i.i.i.i.i.i295, %mul5.i.i.i.i.i.i.i.i297 + %and.i.i.i.i.i.i.i.i299 = and i32 %xor6.i.i.i.i.i.i.i.i298, 1048575 + %conv.i.i.i.i.i.i.i.i300 = zext nneg i32 %and.i.i.i.i.i.i.i.i299 to i64 + %rem.i.i.i.i.i.i301 = urem i64 %conv.i.i.i.i.i.i.i.i300, %37 + %cmp.not.i.i.i302 = icmp eq i64 %rem.i.i.i.i.i.i301, %rem.i.i.i.i280 + br i1 %cmp.not.i.i.i302, label %for.cond.i.i.i286, label %if.end34.i, !llvm.loop !132 + +if.end34.i: ; preds = %lor.lhs.false.i.i.i290, %if.end3.i.i.i288, %if.then26.i, %invoke.cont21.i %49 = load i64, ptr %_M_next_resize.i.i.i, align 8 - %call3.i480 = invoke { i8, i64 } @_ZNKSt8__detail20_Prime_rehash_policy14_M_need_rehashEmmm(ptr noundef nonnull align 8 dereferenceable(16) %_M_rehash_policy.i.i, i64 noundef %37, i64 noundef %17, i64 noundef 1) + %call3.i478 = invoke { i8, i64 } @_ZNKSt8__detail20_Prime_rehash_policy14_M_need_rehashEmmm(ptr noundef nonnull align 8 dereferenceable(16) %_M_rehash_policy.i.i, i64 noundef %37, i64 noundef %17, i64 noundef 1) to label %call3.i.noexc unwind label %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE12_Scoped_nodeD2Ev.exit.i call3.i.noexc: ; preds = %if.end34.i - %50 = extractvalue { i8, i64 } %call3.i480, 0 + %50 = extractvalue { i8, i64 } %call3.i478, 0 %tobool.i = trunc i8 %50 to i1 - br i1 %tobool.i, label %if.then.i478, label %call3.i.noexc.if.end.i473_crit_edge + br i1 %tobool.i, label %if.then.i476, label %call3.i.noexc.if.end.i471_crit_edge -call3.i.noexc.if.end.i473_crit_edge: ; preds = %call3.i.noexc - %.pre744 = load ptr, ptr %children, align 8 - br label %if.end.i473 +call3.i.noexc.if.end.i471_crit_edge: ; preds = %call3.i.noexc + %.pre747 = load ptr, ptr %children, align 8 + br label %if.end.i471 -if.then.i478: ; preds = %call3.i.noexc - %51 = extractvalue { i8, i64 } %call3.i480, 1 - %cmp.i.i524 = icmp eq i64 %51, 1 - br i1 %cmp.i.i524, label %if.then.i.i536, label %if.end.i.i525 +if.then.i476: ; preds = %call3.i.noexc + %51 = extractvalue { i8, i64 } %call3.i478, 1 + %cmp.i.i522 = icmp eq i64 %51, 1 + br i1 %cmp.i.i522, label %if.then.i.i534, label %if.end.i.i523 -if.then.i.i536: ; preds = %if.then.i478 +if.then.i.i534: ; preds = %if.then.i476 store ptr null, ptr %_M_single_bucket.i.i, align 8 br label %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE19_M_allocate_bucketsEm.exit.i -if.end.i.i525: ; preds = %if.then.i478 - %cmp.i.i.i.i.i526 = icmp ugt i64 %51, 1152921504606846975 - br i1 %cmp.i.i.i.i.i526, label %if.then.i.i.i.i.i, label %_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeISt4pairIKN7openvdb5v11_04math5CoordEhELb0EEEEE19_M_allocate_bucketsEm.exit.i.i +if.end.i.i523: ; preds = %if.then.i476 + %cmp.i.i.i.i.i524 = icmp ugt i64 %51, 1152921504606846975 + br i1 %cmp.i.i.i.i.i524, label %if.then.i.i.i.i.i, label %_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeISt4pairIKN7openvdb5v11_04math5CoordEhELb0EEEEE19_M_allocate_bucketsEm.exit.i.i -if.then.i.i.i.i.i: ; preds = %if.end.i.i525 +if.then.i.i.i.i.i: ; preds = %if.end.i.i523 %cmp2.i.i.i.i.i = icmp ugt i64 %51, 2305843009213693951 - br i1 %cmp2.i.i.i.i.i, label %if.then3.i.i.i.i.i, label %if.end.i.i.i.i.i535 + br i1 %cmp2.i.i.i.i.i, label %if.then3.i.i.i.i.i, label %if.end.i.i.i.i.i533 if.then3.i.i.i.i.i: ; preds = %if.then.i.i.i.i.i invoke void @_ZSt28__throw_bad_array_new_lengthv() #24 @@ -16081,24 +16081,24 @@ if.then3.i.i.i.i.i: ; preds = %if.then.i.i.i.i.i .noexc: ; preds = %if.then3.i.i.i.i.i unreachable -if.end.i.i.i.i.i535: ; preds = %if.then.i.i.i.i.i +if.end.i.i.i.i.i533: ; preds = %if.then.i.i.i.i.i invoke void @_ZSt17__throw_bad_allocv() #24 - to label %.noexc538 unwind label %lpad.i.i.loopexit.split-lp + to label %.noexc536 unwind label %lpad.i.i.loopexit.split-lp -.noexc538: ; preds = %if.end.i.i.i.i.i535 +.noexc536: ; preds = %if.end.i.i.i.i.i533 unreachable -_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeISt4pairIKN7openvdb5v11_04math5CoordEhELb0EEEEE19_M_allocate_bucketsEm.exit.i.i: ; preds = %if.end.i.i525 +_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeISt4pairIKN7openvdb5v11_04math5CoordEhELb0EEEEE19_M_allocate_bucketsEm.exit.i.i: ; preds = %if.end.i.i523 %mul.i.i.i.i.i = shl nuw nsw i64 %51, 3 - %call5.i.i4.i.i.i539 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef %mul.i.i.i.i.i) #22 + %call5.i.i4.i.i.i537 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef %mul.i.i.i.i.i) #22 to label %call5.i.i4.i.i.i.noexc unwind label %lpad.i.i.loopexit call5.i.i4.i.i.i.noexc: ; preds = %_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeISt4pairIKN7openvdb5v11_04math5CoordEhELb0EEEEE19_M_allocate_bucketsEm.exit.i.i - call void @llvm.memset.p0.i64(ptr nonnull align 8 %call5.i.i4.i.i.i539, i8 0, i64 %mul.i.i.i.i.i, i1 false) + call void @llvm.memset.p0.i64(ptr nonnull align 8 %call5.i.i4.i.i.i537, i8 0, i64 %mul.i.i.i.i.i, i1 false) br label %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE19_M_allocate_bucketsEm.exit.i -_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE19_M_allocate_bucketsEm.exit.i: ; preds = %call5.i.i4.i.i.i.noexc, %if.then.i.i536 - %retval.0.i.i = phi ptr [ %_M_single_bucket.i.i, %if.then.i.i536 ], [ %call5.i.i4.i.i.i539, %call5.i.i4.i.i.i.noexc ] +_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE19_M_allocate_bucketsEm.exit.i: ; preds = %call5.i.i4.i.i.i.noexc, %if.then.i.i534 + %retval.0.i.i = phi ptr [ %_M_single_bucket.i.i, %if.then.i.i534 ], [ %call5.i.i4.i.i.i537, %call5.i.i4.i.i.i.noexc ] %52 = load ptr, ptr %_M_before_begin.i.i, align 8 store ptr null, ptr %_M_before_begin.i.i, align 8 %tobool.not21.i = icmp eq ptr %52, null @@ -16108,8 +16108,8 @@ while.body.i: ; preds = %_ZNSt10_HashtableIN %__p.023.i = phi ptr [ %53, %if.end22.i ], [ %52, %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE19_M_allocate_bucketsEm.exit.i ] %__bbegin_bkt.022.i = phi i64 [ %__bbegin_bkt.1.i, %if.end22.i ], [ 0, %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE19_M_allocate_bucketsEm.exit.i ] %53 = load ptr, ptr %__p.023.i, align 8 - %add.ptr.i528 = getelementptr inbounds i8, ptr %__p.023.i, i64 8 - %54 = load i32, ptr %add.ptr.i528, align 4 + %add.ptr.i526 = getelementptr inbounds i8, ptr %__p.023.i, i64 8 + %54 = load i32, ptr %add.ptr.i526, align 4 %mul.i.i.i.i20.i = mul i32 %54, 455773 %arrayidx2.i.i.i.i.i = getelementptr inbounds i8, ptr %__p.023.i, i64 12 %55 = load i32, ptr %arrayidx2.i.i.i.i.i, align 4 @@ -16119,15 +16119,15 @@ while.body.i: ; preds = %_ZNSt10_HashtableIN %56 = load i32, ptr %arrayidx4.i.i.i.i.i, align 4 %mul5.i.i.i.i.i = mul i32 %56, 655287 %xor6.i.i.i.i.i = xor i32 %xor.i.i.i.i.i, %mul5.i.i.i.i.i - %and.i.i.i.i.i529 = and i32 %xor6.i.i.i.i.i, 1048575 - %conv.i.i.i.i.i = zext nneg i32 %and.i.i.i.i.i529 to i64 + %and.i.i.i.i.i527 = and i32 %xor6.i.i.i.i.i, 1048575 + %conv.i.i.i.i.i = zext nneg i32 %and.i.i.i.i.i527 to i64 %rem.i.i.i = urem i64 %conv.i.i.i.i.i, %51 %arrayidx.i = getelementptr inbounds ptr, ptr %retval.0.i.i, i64 %rem.i.i.i %57 = load ptr, ptr %arrayidx.i, align 8 %tobool5.not.i = icmp eq ptr %57, null - br i1 %tobool5.not.i, label %if.then.i534, label %if.else.i530 + br i1 %tobool5.not.i, label %if.then.i532, label %if.else.i528 -if.then.i534: ; preds = %while.body.i +if.then.i532: ; preds = %while.body.i %58 = load ptr, ptr %_M_before_begin.i.i, align 8 store ptr %58, ptr %__p.023.i, align 8 store ptr %__p.023.i, ptr %_M_before_begin.i.i, align 8 @@ -16136,49 +16136,49 @@ if.then.i534: ; preds = %while.body.i %tobool14.not.i = icmp eq ptr %59, null br i1 %tobool14.not.i, label %if.end22.i, label %if.then15.i -if.then15.i: ; preds = %if.then.i534 +if.then15.i: ; preds = %if.then.i532 %arrayidx16.i = getelementptr inbounds ptr, ptr %retval.0.i.i, i64 %__bbegin_bkt.022.i br label %if.end22.sink.split.i -if.else.i530: ; preds = %while.body.i +if.else.i528: ; preds = %while.body.i %60 = load ptr, ptr %57, align 8 store ptr %60, ptr %__p.023.i, align 8 %61 = load ptr, ptr %arrayidx.i, align 8 br label %if.end22.sink.split.i -if.end22.sink.split.i: ; preds = %if.else.i530, %if.then15.i - %arrayidx16.sink.i = phi ptr [ %arrayidx16.i, %if.then15.i ], [ %61, %if.else.i530 ] - %__bbegin_bkt.1.ph.i = phi i64 [ %rem.i.i.i, %if.then15.i ], [ %__bbegin_bkt.022.i, %if.else.i530 ] +if.end22.sink.split.i: ; preds = %if.else.i528, %if.then15.i + %arrayidx16.sink.i = phi ptr [ %arrayidx16.i, %if.then15.i ], [ %61, %if.else.i528 ] + %__bbegin_bkt.1.ph.i = phi i64 [ %rem.i.i.i, %if.then15.i ], [ %__bbegin_bkt.022.i, %if.else.i528 ] store ptr %__p.023.i, ptr %arrayidx16.sink.i, align 8 br label %if.end22.i -if.end22.i: ; preds = %if.end22.sink.split.i, %if.then.i534 - %__bbegin_bkt.1.i = phi i64 [ %rem.i.i.i, %if.then.i534 ], [ %__bbegin_bkt.1.ph.i, %if.end22.sink.split.i ] +if.end22.i: ; preds = %if.end22.sink.split.i, %if.then.i532 + %__bbegin_bkt.1.i = phi i64 [ %rem.i.i.i, %if.then.i532 ], [ %__bbegin_bkt.1.ph.i, %if.end22.sink.split.i ] %tobool.not.i = icmp eq ptr %53, null br i1 %tobool.not.i, label %while.end.i, label %while.body.i, !llvm.loop !134 while.end.i: ; preds = %if.end22.i, %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE19_M_allocate_bucketsEm.exit.i %62 = load ptr, ptr %children, align 8 - %cmp.i.i.i.i531 = icmp eq ptr %_M_single_bucket.i.i, %62 - br i1 %cmp.i.i.i.i531, label %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_rehashEmRKm.exit.i, label %if.end.i.i.i532 + %cmp.i.i.i.i529 = icmp eq ptr %_M_single_bucket.i.i, %62 + br i1 %cmp.i.i.i.i529, label %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_rehashEmRKm.exit.i, label %if.end.i.i.i530 -if.end.i.i.i532: ; preds = %while.end.i +if.end.i.i.i530: ; preds = %while.end.i call void @_ZdlPv(ptr noundef %62) #23 br label %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_rehashEmRKm.exit.i lpad.i.i.loopexit: ; preds = %_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeISt4pairIKN7openvdb5v11_04math5CoordEhELb0EEEEE19_M_allocate_bucketsEm.exit.i.i - %lpad.loopexit655 = landingpad { ptr, i32 } + %lpad.loopexit654 = landingpad { ptr, i32 } catch ptr null br label %lpad.i.i -lpad.i.i.loopexit.split-lp: ; preds = %if.then3.i.i.i.i.i, %if.end.i.i.i.i.i535 - %lpad.loopexit.split-lp656 = landingpad { ptr, i32 } +lpad.i.i.loopexit.split-lp: ; preds = %if.then3.i.i.i.i.i, %if.end.i.i.i.i.i533 + %lpad.loopexit.split-lp655 = landingpad { ptr, i32 } catch ptr null br label %lpad.i.i lpad.i.i: ; preds = %lpad.i.i.loopexit.split-lp, %lpad.i.i.loopexit - %lpad.phi657 = phi { ptr, i32 } [ %lpad.loopexit655, %lpad.i.i.loopexit ], [ %lpad.loopexit.split-lp656, %lpad.i.i.loopexit.split-lp ] - %63 = extractvalue { ptr, i32 } %lpad.phi657, 0 + %lpad.phi656 = phi { ptr, i32 } [ %lpad.loopexit654, %lpad.i.i.loopexit ], [ %lpad.loopexit.split-lp655, %lpad.i.i.loopexit.split-lp ] + %63 = extractvalue { ptr, i32 } %lpad.phi656, 0 %64 = call ptr @__cxa_begin_catch(ptr %63) #15 store i64 %49, ptr %_M_next_resize.i.i.i, align 8 invoke void @__cxa_rethrow() #24 @@ -16200,33 +16200,33 @@ terminate.lpad.i.i: ; preds = %lpad2.i.i unreachable.i.i: ; preds = %lpad.i.i unreachable -_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_rehashEmRKm.exit.i: ; preds = %if.end.i.i.i532, %while.end.i +_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_rehashEmRKm.exit.i: ; preds = %if.end.i.i.i530, %while.end.i store i64 %51, ptr %_M_bucket_count.i.i, align 8 store ptr %retval.0.i.i, ptr %children, align 8 - %rem.i.i.i.i479 = urem i64 %conv.i.i.i.i280, %51 - br label %if.end.i473 - -if.end.i473: ; preds = %call3.i.noexc.if.end.i473_crit_edge, %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_rehashEmRKm.exit.i - %68 = phi ptr [ %retval.0.i.i, %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_rehashEmRKm.exit.i ], [ %.pre744, %call3.i.noexc.if.end.i473_crit_edge ] - %__bkt.addr.0.i = phi i64 [ %rem.i.i.i.i479, %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_rehashEmRKm.exit.i ], [ %rem.i.i.i.i282, %call3.i.noexc.if.end.i473_crit_edge ] - %arrayidx.i.i474 = getelementptr inbounds ptr, ptr %68, i64 %__bkt.addr.0.i - %69 = load ptr, ptr %arrayidx.i.i474, align 8 + %rem.i.i.i.i477 = urem i64 %conv.i.i.i.i278, %51 + br label %if.end.i471 + +if.end.i471: ; preds = %call3.i.noexc.if.end.i471_crit_edge, %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_rehashEmRKm.exit.i + %68 = phi ptr [ %retval.0.i.i, %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_rehashEmRKm.exit.i ], [ %.pre747, %call3.i.noexc.if.end.i471_crit_edge ] + %__bkt.addr.0.i = phi i64 [ %rem.i.i.i.i477, %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_rehashEmRKm.exit.i ], [ %rem.i.i.i.i280, %call3.i.noexc.if.end.i471_crit_edge ] + %arrayidx.i.i472 = getelementptr inbounds ptr, ptr %68, i64 %__bkt.addr.0.i + %69 = load ptr, ptr %arrayidx.i.i472, align 8 %tobool.not.i.i = icmp eq ptr %69, null - br i1 %tobool.not.i.i, label %if.else.i.i, label %if.then.i.i475 + br i1 %tobool.not.i.i, label %if.else.i.i, label %if.then.i.i473 -if.then.i.i475: ; preds = %if.end.i473 +if.then.i.i473: ; preds = %if.end.i471 %70 = load ptr, ptr %69, align 8 - store ptr %70, ptr %call5.i.i.i.i.i327, align 8 - %71 = load ptr, ptr %arrayidx.i.i474, align 8 - store ptr %call5.i.i.i.i.i327, ptr %71, align 8 + store ptr %70, ptr %call5.i.i.i.i.i325, align 8 + %71 = load ptr, ptr %arrayidx.i.i472, align 8 + store ptr %call5.i.i.i.i.i325, ptr %71, align 8 br label %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE21_M_insert_unique_nodeEmmPNS8_10_Hash_nodeIS6_Lb0EEEm.exit -if.else.i.i: ; preds = %if.end.i473 +if.else.i.i: ; preds = %if.end.i471 %72 = load ptr, ptr %_M_before_begin.i.i, align 8 - store ptr %72, ptr %call5.i.i.i.i.i327, align 8 - store ptr %call5.i.i.i.i.i327, ptr %_M_before_begin.i.i, align 8 + store ptr %72, ptr %call5.i.i.i.i.i325, align 8 + store ptr %call5.i.i.i.i.i325, ptr %_M_before_begin.i.i, align 8 %tobool13.not.i.i = icmp eq ptr %72, null - br i1 %tobool13.not.i.i, label %if.end.i.i477, label %if.then14.i.i + br i1 %tobool13.not.i.i, label %if.end.i.i475, label %if.then14.i.i if.then14.i.i: ; preds = %if.else.i.i %add.ptr.i.i = getelementptr inbounds i8, ptr %72, i64 8 @@ -16245,24 +16245,24 @@ if.then14.i.i: ; preds = %if.else.i.i %conv.i.i.i.i.i.i.i = zext nneg i32 %and.i.i.i.i.i.i.i to i64 %rem.i.i.i.i.i = urem i64 %conv.i.i.i.i.i.i.i, %73 %arrayidx17.i.i = getelementptr inbounds ptr, ptr %68, i64 %rem.i.i.i.i.i - store ptr %call5.i.i.i.i.i327, ptr %arrayidx17.i.i, align 8 - %.pre745 = load ptr, ptr %children, align 8 - br label %if.end.i.i477 + store ptr %call5.i.i.i.i.i325, ptr %arrayidx17.i.i, align 8 + %.pre748 = load ptr, ptr %children, align 8 + br label %if.end.i.i475 -if.end.i.i477: ; preds = %if.then14.i.i, %if.else.i.i - %77 = phi ptr [ %.pre745, %if.then14.i.i ], [ %68, %if.else.i.i ] +if.end.i.i475: ; preds = %if.then14.i.i, %if.else.i.i + %77 = phi ptr [ %.pre748, %if.then14.i.i ], [ %68, %if.else.i.i ] %arrayidx20.i.i = getelementptr inbounds ptr, ptr %77, i64 %__bkt.addr.0.i store ptr %_M_before_begin.i.i, ptr %arrayidx20.i.i, align 8 br label %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE21_M_insert_unique_nodeEmmPNS8_10_Hash_nodeIS6_Lb0EEEm.exit -_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE21_M_insert_unique_nodeEmmPNS8_10_Hash_nodeIS6_Lb0EEEm.exit: ; preds = %if.then.i.i475, %if.end.i.i477 +_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE21_M_insert_unique_nodeEmmPNS8_10_Hash_nodeIS6_Lb0EEEm.exit: ; preds = %if.then.i.i473, %if.end.i.i475 %78 = load i64, ptr %_M_element_count.i.i, align 8 %inc.i = add i64 %78, 1 store i64 %inc.i, ptr %_M_element_count.i.i, align 8 br label %for.inc93 -if.then.i15.i: ; preds = %invoke.cont.i, %_ZNKSt8__detail15_Hashtable_baseIN7openvdb5v11_04math5CoordESt4pairIKS4_hENS_10_Select1stESt8equal_toIS4_ESt4hashIS4_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_equalsERS6_mRKNS_16_Hash_node_valueIS7_Lb0EEE.exit.i.i.i310 - call void @_ZdlPv(ptr noundef nonnull %call5.i.i.i.i.i327) #23 +if.then.i15.i: ; preds = %invoke.cont.i, %_ZNKSt8__detail15_Hashtable_baseIN7openvdb5v11_04math5CoordESt4pairIKS4_hENS_10_Select1stESt8equal_toIS4_ESt4hashIS4_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_equalsERS6_mRKNS_16_Hash_node_valueIS7_Lb0EEE.exit.i.i.i308 + call void @_ZdlPv(ptr noundef nonnull %call5.i.i.i.i.i325) #23 br label %for.inc93 if.else: ; preds = %_ZNKSt8__detail15_Hashtable_baseIN7openvdb5v11_04math5CoordESt4pairIKS4_hENS_10_Select1stESt8equal_toIS4_ESt4hashIS4_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE13_M_key_equalsERS6_RKNS_16_Hash_node_valueIS7_Lb0EEE.exit.i, %_ZNKSt8__detail15_Hashtable_baseIN7openvdb5v11_04math5CoordESt4pairIKS4_hENS_10_Select1stESt8equal_toIS4_ESt4hashIS4_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_equalsERS6_mRKNS_16_Hash_node_valueIS7_Lb0EEE.exit.i.i.i @@ -16274,604 +16274,604 @@ if.else: ; preds = %_ZNKSt8__detail15_H br label %for.inc93 for.inc93: ; preds = %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE21_M_insert_unique_nodeEmmPNS8_10_Hash_nodeIS6_Lb0EEEm.exit, %if.then.i15.i, %if.else - %cmp.i.i.not.i.i120 = icmp eq ptr %valueIter60.sroa.3.0693, %add.ptr.i.i.i.i.i.i90 - br i1 %cmp.i.i.not.i.i120, label %for.end96.loopexit, label %if.end.i.i121 - -if.end.i.i121: ; preds = %for.inc93 - %call.i.i.i122 = call noundef ptr @_ZSt18_Rb_tree_incrementPKSt18_Rb_tree_node_base(ptr noundef %valueIter60.sroa.3.0693) #25 - %cmp.i.i.not2.i.i.i123 = icmp eq ptr %call.i.i.i122, %add.ptr.i.i.i.i.i.i90 - br i1 %cmp.i.i.not2.i.i.i123, label %for.end96.loopexit, label %land.rhs.i.i.i124 - -land.rhs.i.i.i124: ; preds = %if.end.i.i121, %while.body.i.i.i128 - %valueIter60.sroa.3.1 = phi ptr [ %call.i.i.i.i129, %while.body.i.i.i128 ], [ %call.i.i.i122, %if.end.i.i121 ] - %second.i.i.i.i.i126 = getelementptr inbounds i8, ptr %valueIter60.sroa.3.1, i64 48 - %81 = load ptr, ptr %second.i.i.i.i.i126, align 8 - %cmp.i.i.i.i.i.i127 = icmp eq ptr %81, null - br i1 %cmp.i.i.i.i.i.i127, label %_ZN7openvdb5v11_04tree8RootNodeINS1_12InternalNodeINS3_INS1_8LeafNodeINS0_9ValueMaskELj3EEELj4EEELj5EEEE9ValueIterIKS9_St23_Rb_tree_const_iteratorISt4pairIKNS0_4math5CoordENS9_10NodeStructEEENS9_12ValueAllPredEKbEppEv.exit131, label %while.body.i.i.i128 - -while.body.i.i.i128: ; preds = %land.rhs.i.i.i124 - %call.i.i.i.i129 = call noundef ptr @_ZSt18_Rb_tree_incrementPKSt18_Rb_tree_node_base(ptr noundef nonnull %valueIter60.sroa.3.1) #25 - %cmp.i.i.not.i.i.i130 = icmp eq ptr %call.i.i.i.i129, %add.ptr.i.i.i.i.i.i90 - br i1 %cmp.i.i.not.i.i.i130, label %for.end96.loopexit, label %land.rhs.i.i.i124, !llvm.loop !130 - -_ZN7openvdb5v11_04tree8RootNodeINS1_12InternalNodeINS3_INS1_8LeafNodeINS0_9ValueMaskELj3EEELj4EEELj5EEEE9ValueIterIKS9_St23_Rb_tree_const_iteratorISt4pairIKNS0_4math5CoordENS9_10NodeStructEEENS9_12ValueAllPredEKbEppEv.exit131: ; preds = %land.rhs.i.i.i124 - %cmp.i.i.i105.not = icmp eq ptr %valueIter60.sroa.3.1, %add.ptr.i.i.i.i.i.i90 - br i1 %cmp.i.i.i105.not, label %for.end96.loopexit, label %for.body67 - -for.end96.loopexit: ; preds = %if.end.i.i121, %for.inc93, %_ZN7openvdb5v11_04tree8RootNodeINS1_12InternalNodeINS3_INS1_8LeafNodeINS0_9ValueMaskELj3EEELj4EEELj5EEEE9ValueIterIKS9_St23_Rb_tree_const_iteratorISt4pairIKNS0_4math5CoordENS9_10NodeStructEEENS9_12ValueAllPredEKbEppEv.exit131, %while.body.i.i.i128 - %.pre746 = load ptr, ptr %_M_left.i.i.i89, align 8 + %cmp.i.i.not.i.i118 = icmp eq ptr %valueIter60.sroa.3.0692, %add.ptr.i.i.i.i.i.i88 + br i1 %cmp.i.i.not.i.i118, label %for.end96.loopexit, label %if.end.i.i119 + +if.end.i.i119: ; preds = %for.inc93 + %call.i.i.i120 = call noundef ptr @_ZSt18_Rb_tree_incrementPKSt18_Rb_tree_node_base(ptr noundef %valueIter60.sroa.3.0692) #25 + %cmp.i.i.not2.i.i.i121 = icmp eq ptr %call.i.i.i120, %add.ptr.i.i.i.i.i.i88 + br i1 %cmp.i.i.not2.i.i.i121, label %for.end96.loopexit, label %land.rhs.i.i.i122 + +land.rhs.i.i.i122: ; preds = %if.end.i.i119, %while.body.i.i.i126 + %valueIter60.sroa.3.1 = phi ptr [ %call.i.i.i.i127, %while.body.i.i.i126 ], [ %call.i.i.i120, %if.end.i.i119 ] + %second.i.i.i.i.i124 = getelementptr inbounds i8, ptr %valueIter60.sroa.3.1, i64 48 + %81 = load ptr, ptr %second.i.i.i.i.i124, align 8 + %cmp.i.i.i.i.i.i125 = icmp eq ptr %81, null + br i1 %cmp.i.i.i.i.i.i125, label %_ZN7openvdb5v11_04tree8RootNodeINS1_12InternalNodeINS3_INS1_8LeafNodeINS0_9ValueMaskELj3EEELj4EEELj5EEEE9ValueIterIKS9_St23_Rb_tree_const_iteratorISt4pairIKNS0_4math5CoordENS9_10NodeStructEEENS9_12ValueAllPredEKbEppEv.exit129, label %while.body.i.i.i126 + +while.body.i.i.i126: ; preds = %land.rhs.i.i.i122 + %call.i.i.i.i127 = call noundef ptr @_ZSt18_Rb_tree_incrementPKSt18_Rb_tree_node_base(ptr noundef nonnull %valueIter60.sroa.3.1) #25 + %cmp.i.i.not.i.i.i128 = icmp eq ptr %call.i.i.i.i127, %add.ptr.i.i.i.i.i.i88 + br i1 %cmp.i.i.not.i.i.i128, label %for.end96.loopexit, label %land.rhs.i.i.i122, !llvm.loop !130 + +_ZN7openvdb5v11_04tree8RootNodeINS1_12InternalNodeINS3_INS1_8LeafNodeINS0_9ValueMaskELj3EEELj4EEELj5EEEE9ValueIterIKS9_St23_Rb_tree_const_iteratorISt4pairIKNS0_4math5CoordENS9_10NodeStructEEENS9_12ValueAllPredEKbEppEv.exit129: ; preds = %land.rhs.i.i.i122 + %cmp.i.i.i103.not = icmp eq ptr %valueIter60.sroa.3.1, %add.ptr.i.i.i.i.i.i88 + br i1 %cmp.i.i.i103.not, label %for.end96.loopexit, label %for.body67 + +for.end96.loopexit: ; preds = %if.end.i.i119, %for.inc93, %_ZN7openvdb5v11_04tree8RootNodeINS1_12InternalNodeINS3_INS1_8LeafNodeINS0_9ValueMaskELj3EEELj4EEELj5EEEE9ValueIterIKS9_St23_Rb_tree_const_iteratorISt4pairIKNS0_4math5CoordENS9_10NodeStructEEENS9_12ValueAllPredEKbEppEv.exit129, %while.body.i.i.i126 + %.pre749 = load ptr, ptr %_M_left.i.i.i87, align 8 br label %for.end96 -for.end96: ; preds = %while.body.i.i.i96, %for.end96.loopexit, %invoke.cont61 - %82 = phi ptr [ %.pre746, %for.end96.loopexit ], [ %15, %invoke.cont61 ], [ %15, %while.body.i.i.i96 ] - %cmp.i.i.not2.i.i.i134 = icmp eq ptr %add.ptr.i.i.i.i.i.i90, %82 - br i1 %cmp.i.i.not2.i.i.i134, label %for.inc139, label %land.rhs.i.i.i135 - -land.rhs.i.i.i135: ; preds = %for.end96, %while.body.i.i.i142 - %retval.sroa.2.0.i136 = phi ptr [ %call.i.i.i.i143, %while.body.i.i.i142 ], [ %82, %for.end96 ] - %second.i.i.i.i.i137 = getelementptr inbounds i8, ptr %retval.sroa.2.0.i136, i64 48 - %83 = load ptr, ptr %second.i.i.i.i.i137, align 8 - %cmp.i.i.i.not.i.i.i138 = icmp eq ptr %83, null - br i1 %cmp.i.i.i.not.i.i.i138, label %while.body.i.i.i142, label %invoke.cont98 - -while.body.i.i.i142: ; preds = %land.rhs.i.i.i135 - %call.i.i.i.i143 = call noundef ptr @_ZSt18_Rb_tree_incrementPKSt18_Rb_tree_node_base(ptr noundef nonnull %retval.sroa.2.0.i136) #25 - %cmp.i.i.not.i.i.i144 = icmp eq ptr %call.i.i.i.i143, %add.ptr.i.i.i.i.i.i90 - br i1 %cmp.i.i.not.i.i.i144, label %for.inc139, label %land.rhs.i.i.i135, !llvm.loop !21 - -invoke.cont98: ; preds = %land.rhs.i.i.i135 - %cmp.i.i.i148.not694 = icmp eq ptr %retval.sroa.2.0.i136, %add.ptr.i.i.i.i.i.i90 - br i1 %cmp.i.i.i148.not694, label %for.inc139, label %for.body104 - -for.body104: ; preds = %invoke.cont98, %_ZN7openvdb5v11_04tree8RootNodeINS1_12InternalNodeINS3_INS1_8LeafNodeINS0_9ValueMaskELj3EEELj4EEELj5EEEE9ChildIterIKS9_St23_Rb_tree_const_iteratorISt4pairIKNS0_4math5CoordENS9_10NodeStructEEENS9_11ChildOnPredEKS8_EppEv.exit176 - %childIter97.sroa.3.0695 = phi ptr [ %childIter97.sroa.3.1, %_ZN7openvdb5v11_04tree8RootNodeINS1_12InternalNodeINS3_INS1_8LeafNodeINS0_9ValueMaskELj3EEELj4EEELj5EEEE9ChildIterIKS9_St23_Rb_tree_const_iteratorISt4pairIKNS0_4math5CoordENS9_10NodeStructEEENS9_11ChildOnPredEKS8_EppEv.exit176 ], [ %retval.sroa.2.0.i136, %invoke.cont98 ] - %_M_storage.i.i.i150 = getelementptr inbounds i8, ptr %childIter97.sroa.3.0695, i64 32 - %retval.sroa.0.0.copyload.i151 = load i64, ptr %_M_storage.i.i.i150, align 8 - %retval.sroa.2.0.first.sroa_idx.i152 = getelementptr inbounds i8, ptr %childIter97.sroa.3.0695, i64 40 - %retval.sroa.2.0.copyload.i153 = load i32, ptr %retval.sroa.2.0.first.sroa_idx.i152, align 8 - %ref.tmp106.sroa.0.sroa.0.0.extract.trunc = trunc i64 %retval.sroa.0.0.copyload.i151 to i32 - %ref.tmp106.sroa.0.sroa.4.0.extract.shift = lshr i64 %retval.sroa.0.0.copyload.i151, 32 +for.end96: ; preds = %while.body.i.i.i94, %for.end96.loopexit, %invoke.cont61 + %82 = phi ptr [ %.pre749, %for.end96.loopexit ], [ %15, %invoke.cont61 ], [ %15, %while.body.i.i.i94 ] + %cmp.i.i.not2.i.i.i132 = icmp eq ptr %add.ptr.i.i.i.i.i.i88, %82 + br i1 %cmp.i.i.not2.i.i.i132, label %for.inc139, label %land.rhs.i.i.i133 + +land.rhs.i.i.i133: ; preds = %for.end96, %while.body.i.i.i140 + %retval.sroa.2.0.i134 = phi ptr [ %call.i.i.i.i141, %while.body.i.i.i140 ], [ %82, %for.end96 ] + %second.i.i.i.i.i135 = getelementptr inbounds i8, ptr %retval.sroa.2.0.i134, i64 48 + %83 = load ptr, ptr %second.i.i.i.i.i135, align 8 + %cmp.i.i.i.not.i.i.i136 = icmp eq ptr %83, null + br i1 %cmp.i.i.i.not.i.i.i136, label %while.body.i.i.i140, label %invoke.cont98 + +while.body.i.i.i140: ; preds = %land.rhs.i.i.i133 + %call.i.i.i.i141 = call noundef ptr @_ZSt18_Rb_tree_incrementPKSt18_Rb_tree_node_base(ptr noundef nonnull %retval.sroa.2.0.i134) #25 + %cmp.i.i.not.i.i.i142 = icmp eq ptr %call.i.i.i.i141, %add.ptr.i.i.i.i.i.i88 + br i1 %cmp.i.i.not.i.i.i142, label %for.inc139, label %land.rhs.i.i.i133, !llvm.loop !21 + +invoke.cont98: ; preds = %land.rhs.i.i.i133 + %cmp.i.i.i146.not693 = icmp eq ptr %retval.sroa.2.0.i134, %add.ptr.i.i.i.i.i.i88 + br i1 %cmp.i.i.i146.not693, label %for.inc139, label %for.body104 + +for.body104: ; preds = %invoke.cont98, %_ZN7openvdb5v11_04tree8RootNodeINS1_12InternalNodeINS3_INS1_8LeafNodeINS0_9ValueMaskELj3EEELj4EEELj5EEEE9ChildIterIKS9_St23_Rb_tree_const_iteratorISt4pairIKNS0_4math5CoordENS9_10NodeStructEEENS9_11ChildOnPredEKS8_EppEv.exit174 + %childIter97.sroa.3.0694 = phi ptr [ %childIter97.sroa.3.1, %_ZN7openvdb5v11_04tree8RootNodeINS1_12InternalNodeINS3_INS1_8LeafNodeINS0_9ValueMaskELj3EEELj4EEELj5EEEE9ChildIterIKS9_St23_Rb_tree_const_iteratorISt4pairIKNS0_4math5CoordENS9_10NodeStructEEENS9_11ChildOnPredEKS8_EppEv.exit174 ], [ %retval.sroa.2.0.i134, %invoke.cont98 ] + %_M_storage.i.i.i148 = getelementptr inbounds i8, ptr %childIter97.sroa.3.0694, i64 32 + %retval.sroa.0.0.copyload.i149 = load i64, ptr %_M_storage.i.i.i148, align 8 + %retval.sroa.2.0.first.sroa_idx.i150 = getelementptr inbounds i8, ptr %childIter97.sroa.3.0694, i64 40 + %retval.sroa.2.0.copyload.i151 = load i32, ptr %retval.sroa.2.0.first.sroa_idx.i150, align 8 + %ref.tmp106.sroa.0.sroa.0.0.extract.trunc = trunc i64 %retval.sroa.0.0.copyload.i149 to i32 + %ref.tmp106.sroa.0.sroa.4.0.extract.shift = lshr i64 %retval.sroa.0.0.copyload.i149, 32 %ref.tmp106.sroa.0.sroa.4.0.extract.trunc = trunc i64 %ref.tmp106.sroa.0.sroa.4.0.extract.shift to i32 %84 = load i64, ptr %_M_element_count.i.i, align 8 - %cmp.not.not.i329 = icmp ne i64 %84, 0 - br i1 %cmp.not.not.i329, label %if.end15.i330, label %if.then.i371 - -if.then.i371: ; preds = %for.body104 - %retval.sroa.0.09.i373 = load ptr, ptr %_M_before_begin.i.i, align 8 - %cmp.i.not10.i374 = icmp eq ptr %retval.sroa.0.09.i373, null - br i1 %cmp.i.not10.i374, label %if.then122, label %for.body.i378 - -for.body.i378: ; preds = %if.then.i371, %for.inc.i382 - %retval.sroa.0.011.i379 = phi ptr [ %retval.sroa.0.0.i383, %for.inc.i382 ], [ %retval.sroa.0.09.i373, %if.then.i371 ] - %add.ptr.i380 = getelementptr inbounds i8, ptr %retval.sroa.0.011.i379, i64 8 - %85 = load i32, ptr %add.ptr.i380, align 4 - %cmp.i.i.i.i381 = icmp eq i32 %85, %ref.tmp106.sroa.0.sroa.0.0.extract.trunc - br i1 %cmp.i.i.i.i381, label %land.lhs.true.i.i.i.i385, label %for.inc.i382 - -land.lhs.true.i.i.i.i385: ; preds = %for.body.i378 - %arrayidx.i.i3.i.i.i.i386 = getelementptr inbounds i8, ptr %retval.sroa.0.011.i379, i64 12 - %86 = load i32, ptr %arrayidx.i.i3.i.i.i.i386, align 4 - %cmp8.i.i.i.i387 = icmp eq i32 %86, %ref.tmp106.sroa.0.sroa.4.0.extract.trunc - br i1 %cmp8.i.i.i.i387, label %_ZNKSt8__detail15_Hashtable_baseIN7openvdb5v11_04math5CoordESt4pairIKS4_hENS_10_Select1stESt8equal_toIS4_ESt4hashIS4_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE13_M_key_equalsERS6_RKNS_16_Hash_node_valueIS7_Lb0EEE.exit.i388, label %for.inc.i382 - -_ZNKSt8__detail15_Hashtable_baseIN7openvdb5v11_04math5CoordESt4pairIKS4_hENS_10_Select1stESt8equal_toIS4_ESt4hashIS4_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE13_M_key_equalsERS6_RKNS_16_Hash_node_valueIS7_Lb0EEE.exit.i388: ; preds = %land.lhs.true.i.i.i.i385 - %arrayidx.i.i5.i.i.i.i389 = getelementptr inbounds i8, ptr %retval.sroa.0.011.i379, i64 16 - %87 = load i32, ptr %arrayidx.i.i5.i.i.i.i389, align 4 - %cmp13.i.i.i.i390 = icmp eq i32 %retval.sroa.2.0.copyload.i153, %87 - br i1 %cmp13.i.i.i.i390, label %if.else128, label %for.inc.i382 - -for.inc.i382: ; preds = %_ZNKSt8__detail15_Hashtable_baseIN7openvdb5v11_04math5CoordESt4pairIKS4_hENS_10_Select1stESt8equal_toIS4_ESt4hashIS4_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE13_M_key_equalsERS6_RKNS_16_Hash_node_valueIS7_Lb0EEE.exit.i388, %land.lhs.true.i.i.i.i385, %for.body.i378 - %retval.sroa.0.0.i383 = load ptr, ptr %retval.sroa.0.011.i379, align 8 - %cmp.i.not.i384 = icmp eq ptr %retval.sroa.0.0.i383, null - br i1 %cmp.i.not.i384, label %if.then122, label %for.body.i378, !llvm.loop !131 - -if.end15.i330: ; preds = %for.body104 - %mul.i.i.i.i331 = mul i32 %ref.tmp106.sroa.0.sroa.0.0.extract.trunc, 455773 - %mul3.i.i.i.i333 = mul i32 %ref.tmp106.sroa.0.sroa.4.0.extract.trunc, 475301 - %mul5.i.i.i.i336 = mul i32 %retval.sroa.2.0.copyload.i153, 655287 - %xor.i.i.i.i334 = xor i32 %mul5.i.i.i.i336, %mul.i.i.i.i331 - %xor6.i.i.i.i337 = xor i32 %xor.i.i.i.i334, %mul3.i.i.i.i333 - %and.i.i.i.i338 = and i32 %xor6.i.i.i.i337, 1048575 - %conv.i.i.i.i339 = zext nneg i32 %and.i.i.i.i338 to i64 + %cmp.not.not.i327 = icmp ne i64 %84, 0 + br i1 %cmp.not.not.i327, label %if.end15.i328, label %if.then.i369 + +if.then.i369: ; preds = %for.body104 + %retval.sroa.0.09.i371 = load ptr, ptr %_M_before_begin.i.i, align 8 + %cmp.i.not10.i372 = icmp eq ptr %retval.sroa.0.09.i371, null + br i1 %cmp.i.not10.i372, label %if.then122, label %for.body.i376 + +for.body.i376: ; preds = %if.then.i369, %for.inc.i380 + %retval.sroa.0.011.i377 = phi ptr [ %retval.sroa.0.0.i381, %for.inc.i380 ], [ %retval.sroa.0.09.i371, %if.then.i369 ] + %add.ptr.i378 = getelementptr inbounds i8, ptr %retval.sroa.0.011.i377, i64 8 + %85 = load i32, ptr %add.ptr.i378, align 4 + %cmp.i.i.i.i379 = icmp eq i32 %85, %ref.tmp106.sroa.0.sroa.0.0.extract.trunc + br i1 %cmp.i.i.i.i379, label %land.lhs.true.i.i.i.i383, label %for.inc.i380 + +land.lhs.true.i.i.i.i383: ; preds = %for.body.i376 + %arrayidx.i.i3.i.i.i.i384 = getelementptr inbounds i8, ptr %retval.sroa.0.011.i377, i64 12 + %86 = load i32, ptr %arrayidx.i.i3.i.i.i.i384, align 4 + %cmp8.i.i.i.i385 = icmp eq i32 %86, %ref.tmp106.sroa.0.sroa.4.0.extract.trunc + br i1 %cmp8.i.i.i.i385, label %_ZNKSt8__detail15_Hashtable_baseIN7openvdb5v11_04math5CoordESt4pairIKS4_hENS_10_Select1stESt8equal_toIS4_ESt4hashIS4_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE13_M_key_equalsERS6_RKNS_16_Hash_node_valueIS7_Lb0EEE.exit.i386, label %for.inc.i380 + +_ZNKSt8__detail15_Hashtable_baseIN7openvdb5v11_04math5CoordESt4pairIKS4_hENS_10_Select1stESt8equal_toIS4_ESt4hashIS4_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE13_M_key_equalsERS6_RKNS_16_Hash_node_valueIS7_Lb0EEE.exit.i386: ; preds = %land.lhs.true.i.i.i.i383 + %arrayidx.i.i5.i.i.i.i387 = getelementptr inbounds i8, ptr %retval.sroa.0.011.i377, i64 16 + %87 = load i32, ptr %arrayidx.i.i5.i.i.i.i387, align 4 + %cmp13.i.i.i.i388 = icmp eq i32 %retval.sroa.2.0.copyload.i151, %87 + br i1 %cmp13.i.i.i.i388, label %if.else128, label %for.inc.i380 + +for.inc.i380: ; preds = %_ZNKSt8__detail15_Hashtable_baseIN7openvdb5v11_04math5CoordESt4pairIKS4_hENS_10_Select1stESt8equal_toIS4_ESt4hashIS4_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE13_M_key_equalsERS6_RKNS_16_Hash_node_valueIS7_Lb0EEE.exit.i386, %land.lhs.true.i.i.i.i383, %for.body.i376 + %retval.sroa.0.0.i381 = load ptr, ptr %retval.sroa.0.011.i377, align 8 + %cmp.i.not.i382 = icmp eq ptr %retval.sroa.0.0.i381, null + br i1 %cmp.i.not.i382, label %if.then122, label %for.body.i376, !llvm.loop !131 + +if.end15.i328: ; preds = %for.body104 + %mul.i.i.i.i329 = mul i32 %ref.tmp106.sroa.0.sroa.0.0.extract.trunc, 455773 + %mul3.i.i.i.i331 = mul i32 %ref.tmp106.sroa.0.sroa.4.0.extract.trunc, 475301 + %mul5.i.i.i.i334 = mul i32 %retval.sroa.2.0.copyload.i151, 655287 + %xor.i.i.i.i332 = xor i32 %mul5.i.i.i.i334, %mul.i.i.i.i329 + %xor6.i.i.i.i335 = xor i32 %xor.i.i.i.i332, %mul3.i.i.i.i331 + %and.i.i.i.i336 = and i32 %xor6.i.i.i.i335, 1048575 + %conv.i.i.i.i337 = zext nneg i32 %and.i.i.i.i336 to i64 %88 = load i64, ptr %_M_bucket_count.i.i, align 8 - %rem.i.i.i.i341 = urem i64 %conv.i.i.i.i339, %88 + %rem.i.i.i.i339 = urem i64 %conv.i.i.i.i337, %88 %89 = load ptr, ptr %children, align 8 - %arrayidx.i.i.i342 = getelementptr inbounds ptr, ptr %89, i64 %rem.i.i.i.i341 - %90 = load ptr, ptr %arrayidx.i.i.i342, align 8 - %tobool.not.i.i.i343 = icmp eq ptr %90, null - br i1 %tobool.not.i.i.i343, label %if.then122, label %if.end.i.i.i344 + %arrayidx.i.i.i340 = getelementptr inbounds ptr, ptr %89, i64 %rem.i.i.i.i339 + %90 = load ptr, ptr %arrayidx.i.i.i340, align 8 + %tobool.not.i.i.i341 = icmp eq ptr %90, null + br i1 %tobool.not.i.i.i341, label %if.then122, label %if.end.i.i.i342 -if.end.i.i.i344: ; preds = %if.end15.i330 +if.end.i.i.i342: ; preds = %if.end15.i328 %91 = load ptr, ptr %90, align 8 - %add.ptr.phi.trans.insert.i.i.i345 = getelementptr inbounds i8, ptr %91, i64 8 - %.pre.i.i.i346 = load i32, ptr %add.ptr.phi.trans.insert.i.i.i345, align 4 - br label %for.cond.i.i.i347 - -for.cond.i.i.i347: ; preds = %lor.lhs.false.i.i.i351, %if.end.i.i.i344 - %92 = phi i32 [ %.pre.i.i.i346, %if.end.i.i.i344 ], [ %97, %lor.lhs.false.i.i.i351 ] - %93 = phi ptr [ %91, %if.end.i.i.i344 ], [ %96, %lor.lhs.false.i.i.i351 ] - %cmp.i.i.i.i.i.i.i348 = icmp eq i32 %92, %ref.tmp106.sroa.0.sroa.0.0.extract.trunc - br i1 %cmp.i.i.i.i.i.i.i348, label %land.lhs.true.i.i.i.i.i.i.i365, label %if.end3.i.i.i349 - -land.lhs.true.i.i.i.i.i.i.i365: ; preds = %for.cond.i.i.i347 - %arrayidx.i.i3.i.i.i.i.i.i.i366 = getelementptr inbounds i8, ptr %93, i64 12 - %94 = load i32, ptr %arrayidx.i.i3.i.i.i.i.i.i.i366, align 4 - %cmp8.i.i.i.i.i.i.i367 = icmp eq i32 %94, %ref.tmp106.sroa.0.sroa.4.0.extract.trunc - br i1 %cmp8.i.i.i.i.i.i.i367, label %_ZNKSt8__detail15_Hashtable_baseIN7openvdb5v11_04math5CoordESt4pairIKS4_hENS_10_Select1stESt8equal_toIS4_ESt4hashIS4_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_equalsERS6_mRKNS_16_Hash_node_valueIS7_Lb0EEE.exit.i.i.i368, label %if.end3.i.i.i349 - -_ZNKSt8__detail15_Hashtable_baseIN7openvdb5v11_04math5CoordESt4pairIKS4_hENS_10_Select1stESt8equal_toIS4_ESt4hashIS4_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_equalsERS6_mRKNS_16_Hash_node_valueIS7_Lb0EEE.exit.i.i.i368: ; preds = %land.lhs.true.i.i.i.i.i.i.i365 - %arrayidx.i.i5.i.i.i.i.i.i.i369 = getelementptr inbounds i8, ptr %93, i64 16 - %95 = load i32, ptr %arrayidx.i.i5.i.i.i.i.i.i.i369, align 4 - %cmp13.i.i.i.i.i.i.i370 = icmp eq i32 %retval.sroa.2.0.copyload.i153, %95 - br i1 %cmp13.i.i.i.i.i.i.i370, label %if.else128, label %if.end3.i.i.i349 - -if.end3.i.i.i349: ; preds = %_ZNKSt8__detail15_Hashtable_baseIN7openvdb5v11_04math5CoordESt4pairIKS4_hENS_10_Select1stESt8equal_toIS4_ESt4hashIS4_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_equalsERS6_mRKNS_16_Hash_node_valueIS7_Lb0EEE.exit.i.i.i368, %land.lhs.true.i.i.i.i.i.i.i365, %for.cond.i.i.i347 + %add.ptr.phi.trans.insert.i.i.i343 = getelementptr inbounds i8, ptr %91, i64 8 + %.pre.i.i.i344 = load i32, ptr %add.ptr.phi.trans.insert.i.i.i343, align 4 + br label %for.cond.i.i.i345 + +for.cond.i.i.i345: ; preds = %lor.lhs.false.i.i.i349, %if.end.i.i.i342 + %92 = phi i32 [ %.pre.i.i.i344, %if.end.i.i.i342 ], [ %97, %lor.lhs.false.i.i.i349 ] + %93 = phi ptr [ %91, %if.end.i.i.i342 ], [ %96, %lor.lhs.false.i.i.i349 ] + %cmp.i.i.i.i.i.i.i346 = icmp eq i32 %92, %ref.tmp106.sroa.0.sroa.0.0.extract.trunc + br i1 %cmp.i.i.i.i.i.i.i346, label %land.lhs.true.i.i.i.i.i.i.i363, label %if.end3.i.i.i347 + +land.lhs.true.i.i.i.i.i.i.i363: ; preds = %for.cond.i.i.i345 + %arrayidx.i.i3.i.i.i.i.i.i.i364 = getelementptr inbounds i8, ptr %93, i64 12 + %94 = load i32, ptr %arrayidx.i.i3.i.i.i.i.i.i.i364, align 4 + %cmp8.i.i.i.i.i.i.i365 = icmp eq i32 %94, %ref.tmp106.sroa.0.sroa.4.0.extract.trunc + br i1 %cmp8.i.i.i.i.i.i.i365, label %_ZNKSt8__detail15_Hashtable_baseIN7openvdb5v11_04math5CoordESt4pairIKS4_hENS_10_Select1stESt8equal_toIS4_ESt4hashIS4_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_equalsERS6_mRKNS_16_Hash_node_valueIS7_Lb0EEE.exit.i.i.i366, label %if.end3.i.i.i347 + +_ZNKSt8__detail15_Hashtable_baseIN7openvdb5v11_04math5CoordESt4pairIKS4_hENS_10_Select1stESt8equal_toIS4_ESt4hashIS4_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_equalsERS6_mRKNS_16_Hash_node_valueIS7_Lb0EEE.exit.i.i.i366: ; preds = %land.lhs.true.i.i.i.i.i.i.i363 + %arrayidx.i.i5.i.i.i.i.i.i.i367 = getelementptr inbounds i8, ptr %93, i64 16 + %95 = load i32, ptr %arrayidx.i.i5.i.i.i.i.i.i.i367, align 4 + %cmp13.i.i.i.i.i.i.i368 = icmp eq i32 %retval.sroa.2.0.copyload.i151, %95 + br i1 %cmp13.i.i.i.i.i.i.i368, label %if.else128, label %if.end3.i.i.i347 + +if.end3.i.i.i347: ; preds = %_ZNKSt8__detail15_Hashtable_baseIN7openvdb5v11_04math5CoordESt4pairIKS4_hENS_10_Select1stESt8equal_toIS4_ESt4hashIS4_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_equalsERS6_mRKNS_16_Hash_node_valueIS7_Lb0EEE.exit.i.i.i366, %land.lhs.true.i.i.i.i.i.i.i363, %for.cond.i.i.i345 %96 = load ptr, ptr %93, align 8 - %tobool5.not.i.i.i350 = icmp eq ptr %96, null - br i1 %tobool5.not.i.i.i350, label %if.then122, label %lor.lhs.false.i.i.i351 - -lor.lhs.false.i.i.i351: ; preds = %if.end3.i.i.i349 - %add.ptr7.i.i.i352 = getelementptr inbounds i8, ptr %96, i64 8 - %97 = load i32, ptr %add.ptr7.i.i.i352, align 4 - %mul.i.i.i.i.i.i.i.i353 = mul i32 %97, 455773 - %arrayidx2.i.i.i.i.i.i.i.i354 = getelementptr inbounds i8, ptr %96, i64 12 - %98 = load i32, ptr %arrayidx2.i.i.i.i.i.i.i.i354, align 4 - %mul3.i.i.i.i.i.i.i.i355 = mul i32 %98, 475301 - %xor.i.i.i.i.i.i.i.i356 = xor i32 %mul3.i.i.i.i.i.i.i.i355, %mul.i.i.i.i.i.i.i.i353 - %arrayidx4.i.i.i.i.i.i.i.i357 = getelementptr inbounds i8, ptr %96, i64 16 - %99 = load i32, ptr %arrayidx4.i.i.i.i.i.i.i.i357, align 4 - %mul5.i.i.i.i.i.i.i.i358 = mul i32 %99, 655287 - %xor6.i.i.i.i.i.i.i.i359 = xor i32 %xor.i.i.i.i.i.i.i.i356, %mul5.i.i.i.i.i.i.i.i358 - %and.i.i.i.i.i.i.i.i360 = and i32 %xor6.i.i.i.i.i.i.i.i359, 1048575 - %conv.i.i.i.i.i.i.i.i361 = zext nneg i32 %and.i.i.i.i.i.i.i.i360 to i64 - %rem.i.i.i.i.i.i362 = urem i64 %conv.i.i.i.i.i.i.i.i361, %88 - %cmp.not.i.i.i363 = icmp eq i64 %rem.i.i.i.i.i.i362, %rem.i.i.i.i341 - br i1 %cmp.not.i.i.i363, label %for.cond.i.i.i347, label %if.then122, !llvm.loop !132 - -if.then122: ; preds = %for.inc.i382, %lor.lhs.false.i.i.i351, %if.end3.i.i.i349, %if.end15.i330, %if.then.i371 - %call5.i.i.i.i.i469 = invoke noalias noundef nonnull dereferenceable(24) ptr @_Znwm(i64 noundef 24) #22 - to label %call5.i.i.i.i.i.noexc468 unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit - -call5.i.i.i.i.i.noexc468: ; preds = %if.then122 - store ptr null, ptr %call5.i.i.i.i.i469, align 8 - %add.ptr.i.i.i392 = getelementptr inbounds i8, ptr %call5.i.i.i.i.i469, i64 8 - store i64 %retval.sroa.0.0.copyload.i151, ptr %add.ptr.i.i.i392, align 4 - %ref.tmp123.sroa.0.sroa.2.0.add.ptr.i.i.i392.sroa_idx = getelementptr inbounds i8, ptr %call5.i.i.i.i.i469, i64 16 - store i32 %retval.sroa.2.0.copyload.i153, ptr %ref.tmp123.sroa.0.sroa.2.0.add.ptr.i.i.i392.sroa_idx, align 4 - %ref.tmp123.sroa.2.0.add.ptr.i.i.i392.sroa_idx = getelementptr inbounds i8, ptr %call5.i.i.i.i.i469, i64 20 - store i8 2, ptr %ref.tmp123.sroa.2.0.add.ptr.i.i.i392.sroa_idx, align 4 - %__it.sroa.0.036.i449 = load ptr, ptr %_M_before_begin.i.i, align 8 - %cmp.i.not37.i450 = icmp eq ptr %__it.sroa.0.036.i449, null - %or.cond819 = select i1 %cmp.not.not.i329, i1 true, i1 %cmp.i.not37.i450 - br i1 %or.cond819, label %invoke.cont21.i397, label %for.body.i455 - -for.body.i455: ; preds = %call5.i.i.i.i.i.noexc468, %for.inc.i459 - %__it.sroa.0.038.i456 = phi ptr [ %__it.sroa.0.0.i460, %for.inc.i459 ], [ %__it.sroa.0.036.i449, %call5.i.i.i.i.i.noexc468 ] - %add.ptr12.i457 = getelementptr inbounds i8, ptr %__it.sroa.0.038.i456, i64 8 - %100 = load i32, ptr %add.ptr12.i457, align 4 - %cmp.i.i.i.i458 = icmp eq i32 %100, %ref.tmp106.sroa.0.sroa.0.0.extract.trunc - br i1 %cmp.i.i.i.i458, label %land.lhs.true.i.i.i.i462, label %for.inc.i459 - -land.lhs.true.i.i.i.i462: ; preds = %for.body.i455 - %arrayidx.i.i3.i.i.i.i463 = getelementptr inbounds i8, ptr %__it.sroa.0.038.i456, i64 12 - %101 = load i32, ptr %arrayidx.i.i3.i.i.i.i463, align 4 - %cmp8.i.i.i.i464 = icmp eq i32 %101, %ref.tmp106.sroa.0.sroa.4.0.extract.trunc - br i1 %cmp8.i.i.i.i464, label %invoke.cont.i465, label %for.inc.i459 - -invoke.cont.i465: ; preds = %land.lhs.true.i.i.i.i462 - %arrayidx.i.i5.i.i.i.i466 = getelementptr inbounds i8, ptr %__it.sroa.0.038.i456, i64 16 - %102 = load i32, ptr %arrayidx.i.i5.i.i.i.i466, align 4 - %cmp13.i.i.i.i467 = icmp eq i32 %retval.sroa.2.0.copyload.i153, %102 - br i1 %cmp13.i.i.i.i467, label %if.then.i15.i445, label %for.inc.i459 - -_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE12_Scoped_nodeD2Ev.exit.i434: ; preds = %if.end34.i432 + %tobool5.not.i.i.i348 = icmp eq ptr %96, null + br i1 %tobool5.not.i.i.i348, label %if.then122, label %lor.lhs.false.i.i.i349 + +lor.lhs.false.i.i.i349: ; preds = %if.end3.i.i.i347 + %add.ptr7.i.i.i350 = getelementptr inbounds i8, ptr %96, i64 8 + %97 = load i32, ptr %add.ptr7.i.i.i350, align 4 + %mul.i.i.i.i.i.i.i.i351 = mul i32 %97, 455773 + %arrayidx2.i.i.i.i.i.i.i.i352 = getelementptr inbounds i8, ptr %96, i64 12 + %98 = load i32, ptr %arrayidx2.i.i.i.i.i.i.i.i352, align 4 + %mul3.i.i.i.i.i.i.i.i353 = mul i32 %98, 475301 + %xor.i.i.i.i.i.i.i.i354 = xor i32 %mul3.i.i.i.i.i.i.i.i353, %mul.i.i.i.i.i.i.i.i351 + %arrayidx4.i.i.i.i.i.i.i.i355 = getelementptr inbounds i8, ptr %96, i64 16 + %99 = load i32, ptr %arrayidx4.i.i.i.i.i.i.i.i355, align 4 + %mul5.i.i.i.i.i.i.i.i356 = mul i32 %99, 655287 + %xor6.i.i.i.i.i.i.i.i357 = xor i32 %xor.i.i.i.i.i.i.i.i354, %mul5.i.i.i.i.i.i.i.i356 + %and.i.i.i.i.i.i.i.i358 = and i32 %xor6.i.i.i.i.i.i.i.i357, 1048575 + %conv.i.i.i.i.i.i.i.i359 = zext nneg i32 %and.i.i.i.i.i.i.i.i358 to i64 + %rem.i.i.i.i.i.i360 = urem i64 %conv.i.i.i.i.i.i.i.i359, %88 + %cmp.not.i.i.i361 = icmp eq i64 %rem.i.i.i.i.i.i360, %rem.i.i.i.i339 + br i1 %cmp.not.i.i.i361, label %for.cond.i.i.i345, label %if.then122, !llvm.loop !132 + +if.then122: ; preds = %for.inc.i380, %lor.lhs.false.i.i.i349, %if.end3.i.i.i347, %if.end15.i328, %if.then.i369 + %call5.i.i.i.i.i467 = invoke noalias noundef nonnull dereferenceable(24) ptr @_Znwm(i64 noundef 24) #22 + to label %call5.i.i.i.i.i.noexc466 unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit + +call5.i.i.i.i.i.noexc466: ; preds = %if.then122 + store ptr null, ptr %call5.i.i.i.i.i467, align 8 + %add.ptr.i.i.i390 = getelementptr inbounds i8, ptr %call5.i.i.i.i.i467, i64 8 + store i64 %retval.sroa.0.0.copyload.i149, ptr %add.ptr.i.i.i390, align 4 + %ref.tmp123.sroa.0.sroa.2.0.add.ptr.i.i.i390.sroa_idx = getelementptr inbounds i8, ptr %call5.i.i.i.i.i467, i64 16 + store i32 %retval.sroa.2.0.copyload.i151, ptr %ref.tmp123.sroa.0.sroa.2.0.add.ptr.i.i.i390.sroa_idx, align 4 + %ref.tmp123.sroa.2.0.add.ptr.i.i.i390.sroa_idx = getelementptr inbounds i8, ptr %call5.i.i.i.i.i467, i64 20 + store i8 2, ptr %ref.tmp123.sroa.2.0.add.ptr.i.i.i390.sroa_idx, align 4 + %__it.sroa.0.036.i447 = load ptr, ptr %_M_before_begin.i.i, align 8 + %cmp.i.not37.i448 = icmp eq ptr %__it.sroa.0.036.i447, null + %or.cond822 = select i1 %cmp.not.not.i327, i1 true, i1 %cmp.i.not37.i448 + br i1 %or.cond822, label %invoke.cont21.i395, label %for.body.i453 + +for.body.i453: ; preds = %call5.i.i.i.i.i.noexc466, %for.inc.i457 + %__it.sroa.0.038.i454 = phi ptr [ %__it.sroa.0.0.i458, %for.inc.i457 ], [ %__it.sroa.0.036.i447, %call5.i.i.i.i.i.noexc466 ] + %add.ptr12.i455 = getelementptr inbounds i8, ptr %__it.sroa.0.038.i454, i64 8 + %100 = load i32, ptr %add.ptr12.i455, align 4 + %cmp.i.i.i.i456 = icmp eq i32 %100, %ref.tmp106.sroa.0.sroa.0.0.extract.trunc + br i1 %cmp.i.i.i.i456, label %land.lhs.true.i.i.i.i460, label %for.inc.i457 + +land.lhs.true.i.i.i.i460: ; preds = %for.body.i453 + %arrayidx.i.i3.i.i.i.i461 = getelementptr inbounds i8, ptr %__it.sroa.0.038.i454, i64 12 + %101 = load i32, ptr %arrayidx.i.i3.i.i.i.i461, align 4 + %cmp8.i.i.i.i462 = icmp eq i32 %101, %ref.tmp106.sroa.0.sroa.4.0.extract.trunc + br i1 %cmp8.i.i.i.i462, label %invoke.cont.i463, label %for.inc.i457 + +invoke.cont.i463: ; preds = %land.lhs.true.i.i.i.i460 + %arrayidx.i.i5.i.i.i.i464 = getelementptr inbounds i8, ptr %__it.sroa.0.038.i454, i64 16 + %102 = load i32, ptr %arrayidx.i.i5.i.i.i.i464, align 4 + %cmp13.i.i.i.i465 = icmp eq i32 %retval.sroa.2.0.copyload.i151, %102 + br i1 %cmp13.i.i.i.i465, label %if.then.i15.i443, label %for.inc.i457 + +_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE12_Scoped_nodeD2Ev.exit.i432: ; preds = %if.end34.i430 %103 = landingpad { ptr, i32 } cleanup - br label %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE12_Scoped_nodeD2Ev.exit.i434.body + br label %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE12_Scoped_nodeD2Ev.exit.i432.body -_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE12_Scoped_nodeD2Ev.exit.i434.body: ; preds = %lpad2.i.i514, %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE12_Scoped_nodeD2Ev.exit.i434 - %eh.lpad-body522 = phi { ptr, i32 } [ %103, %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE12_Scoped_nodeD2Ev.exit.i434 ], [ %132, %lpad2.i.i514 ] - call void @_ZdlPv(ptr noundef nonnull %call5.i.i.i.i.i469) #23 +_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE12_Scoped_nodeD2Ev.exit.i432.body: ; preds = %lpad2.i.i512, %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE12_Scoped_nodeD2Ev.exit.i432 + %eh.lpad-body520 = phi { ptr, i32 } [ %103, %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE12_Scoped_nodeD2Ev.exit.i432 ], [ %132, %lpad2.i.i512 ] + call void @_ZdlPv(ptr noundef nonnull %call5.i.i.i.i.i467) #23 br label %ehcleanup -for.inc.i459: ; preds = %invoke.cont.i465, %land.lhs.true.i.i.i.i462, %for.body.i455 - %__it.sroa.0.0.i460 = load ptr, ptr %__it.sroa.0.038.i456, align 8 - %cmp.i.not.i461 = icmp eq ptr %__it.sroa.0.0.i460, null - br i1 %cmp.i.not.i461, label %invoke.cont21.i397, label %for.body.i455, !llvm.loop !133 - -invoke.cont21.i397: ; preds = %for.inc.i459, %call5.i.i.i.i.i.noexc468 - %mul.i.i.i.i398 = mul i32 %ref.tmp106.sroa.0.sroa.0.0.extract.trunc, 455773 - %mul3.i.i.i.i400 = mul i32 %ref.tmp106.sroa.0.sroa.4.0.extract.trunc, 475301 - %xor.i.i.i.i401 = xor i32 %mul3.i.i.i.i400, %mul.i.i.i.i398 - %mul5.i.i.i.i403 = mul i32 %retval.sroa.2.0.copyload.i153, 655287 - %xor6.i.i.i.i404 = xor i32 %xor.i.i.i.i401, %mul5.i.i.i.i403 - %and.i.i.i.i405 = and i32 %xor6.i.i.i.i404, 1048575 - %conv.i.i.i.i406 = zext nneg i32 %and.i.i.i.i405 to i64 +for.inc.i457: ; preds = %invoke.cont.i463, %land.lhs.true.i.i.i.i460, %for.body.i453 + %__it.sroa.0.0.i458 = load ptr, ptr %__it.sroa.0.038.i454, align 8 + %cmp.i.not.i459 = icmp eq ptr %__it.sroa.0.0.i458, null + br i1 %cmp.i.not.i459, label %invoke.cont21.i395, label %for.body.i453, !llvm.loop !133 + +invoke.cont21.i395: ; preds = %for.inc.i457, %call5.i.i.i.i.i.noexc466 + %mul.i.i.i.i396 = mul i32 %ref.tmp106.sroa.0.sroa.0.0.extract.trunc, 455773 + %mul3.i.i.i.i398 = mul i32 %ref.tmp106.sroa.0.sroa.4.0.extract.trunc, 475301 + %xor.i.i.i.i399 = xor i32 %mul3.i.i.i.i398, %mul.i.i.i.i396 + %mul5.i.i.i.i401 = mul i32 %retval.sroa.2.0.copyload.i151, 655287 + %xor6.i.i.i.i402 = xor i32 %xor.i.i.i.i399, %mul5.i.i.i.i401 + %and.i.i.i.i403 = and i32 %xor6.i.i.i.i402, 1048575 + %conv.i.i.i.i404 = zext nneg i32 %and.i.i.i.i403 to i64 %104 = load i64, ptr %_M_bucket_count.i.i, align 8 - %rem.i.i.i.i408 = urem i64 %conv.i.i.i.i406, %104 - br i1 %cmp.not.not.i329, label %if.then26.i409, label %if.end34.i432 + %rem.i.i.i.i406 = urem i64 %conv.i.i.i.i404, %104 + br i1 %cmp.not.not.i327, label %if.then26.i407, label %if.end34.i430 -if.then26.i409: ; preds = %invoke.cont21.i397 +if.then26.i407: ; preds = %invoke.cont21.i395 %105 = load ptr, ptr %children, align 8 - %arrayidx.i.i.i410 = getelementptr inbounds ptr, ptr %105, i64 %rem.i.i.i.i408 - %106 = load ptr, ptr %arrayidx.i.i.i410, align 8 - %tobool.not.i.i.i411 = icmp eq ptr %106, null - br i1 %tobool.not.i.i.i411, label %if.end34.i432, label %if.end.i.i.i412 + %arrayidx.i.i.i408 = getelementptr inbounds ptr, ptr %105, i64 %rem.i.i.i.i406 + %106 = load ptr, ptr %arrayidx.i.i.i408, align 8 + %tobool.not.i.i.i409 = icmp eq ptr %106, null + br i1 %tobool.not.i.i.i409, label %if.end34.i430, label %if.end.i.i.i410 -if.end.i.i.i412: ; preds = %if.then26.i409 +if.end.i.i.i410: ; preds = %if.then26.i407 %107 = load ptr, ptr %106, align 8 - %add.ptr.phi.trans.insert.i.i.i413 = getelementptr inbounds i8, ptr %107, i64 8 - %.pre.i.i.i414 = load i32, ptr %add.ptr.phi.trans.insert.i.i.i413, align 4 - br label %for.cond.i.i.i415 - -for.cond.i.i.i415: ; preds = %lor.lhs.false.i.i.i419, %if.end.i.i.i412 - %108 = phi i32 [ %.pre.i.i.i414, %if.end.i.i.i412 ], [ %113, %lor.lhs.false.i.i.i419 ] - %109 = phi ptr [ %107, %if.end.i.i.i412 ], [ %112, %lor.lhs.false.i.i.i419 ] - %cmp.i.i.i.i.i.i.i416 = icmp eq i32 %108, %ref.tmp106.sroa.0.sroa.0.0.extract.trunc - br i1 %cmp.i.i.i.i.i.i.i416, label %land.lhs.true.i.i.i.i.i.i.i439, label %if.end3.i.i.i417 - -land.lhs.true.i.i.i.i.i.i.i439: ; preds = %for.cond.i.i.i415 - %arrayidx.i.i3.i.i.i.i.i.i.i440 = getelementptr inbounds i8, ptr %109, i64 12 - %110 = load i32, ptr %arrayidx.i.i3.i.i.i.i.i.i.i440, align 4 - %cmp8.i.i.i.i.i.i.i441 = icmp eq i32 %110, %ref.tmp106.sroa.0.sroa.4.0.extract.trunc - br i1 %cmp8.i.i.i.i.i.i.i441, label %_ZNKSt8__detail15_Hashtable_baseIN7openvdb5v11_04math5CoordESt4pairIKS4_hENS_10_Select1stESt8equal_toIS4_ESt4hashIS4_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_equalsERS6_mRKNS_16_Hash_node_valueIS7_Lb0EEE.exit.i.i.i442, label %if.end3.i.i.i417 - -_ZNKSt8__detail15_Hashtable_baseIN7openvdb5v11_04math5CoordESt4pairIKS4_hENS_10_Select1stESt8equal_toIS4_ESt4hashIS4_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_equalsERS6_mRKNS_16_Hash_node_valueIS7_Lb0EEE.exit.i.i.i442: ; preds = %land.lhs.true.i.i.i.i.i.i.i439 - %arrayidx.i.i5.i.i.i.i.i.i.i443 = getelementptr inbounds i8, ptr %109, i64 16 - %111 = load i32, ptr %arrayidx.i.i5.i.i.i.i.i.i.i443, align 4 - %cmp13.i.i.i.i.i.i.i444 = icmp eq i32 %retval.sroa.2.0.copyload.i153, %111 - br i1 %cmp13.i.i.i.i.i.i.i444, label %if.then.i15.i445, label %if.end3.i.i.i417 - -if.end3.i.i.i417: ; preds = %_ZNKSt8__detail15_Hashtable_baseIN7openvdb5v11_04math5CoordESt4pairIKS4_hENS_10_Select1stESt8equal_toIS4_ESt4hashIS4_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_equalsERS6_mRKNS_16_Hash_node_valueIS7_Lb0EEE.exit.i.i.i442, %land.lhs.true.i.i.i.i.i.i.i439, %for.cond.i.i.i415 + %add.ptr.phi.trans.insert.i.i.i411 = getelementptr inbounds i8, ptr %107, i64 8 + %.pre.i.i.i412 = load i32, ptr %add.ptr.phi.trans.insert.i.i.i411, align 4 + br label %for.cond.i.i.i413 + +for.cond.i.i.i413: ; preds = %lor.lhs.false.i.i.i417, %if.end.i.i.i410 + %108 = phi i32 [ %.pre.i.i.i412, %if.end.i.i.i410 ], [ %113, %lor.lhs.false.i.i.i417 ] + %109 = phi ptr [ %107, %if.end.i.i.i410 ], [ %112, %lor.lhs.false.i.i.i417 ] + %cmp.i.i.i.i.i.i.i414 = icmp eq i32 %108, %ref.tmp106.sroa.0.sroa.0.0.extract.trunc + br i1 %cmp.i.i.i.i.i.i.i414, label %land.lhs.true.i.i.i.i.i.i.i437, label %if.end3.i.i.i415 + +land.lhs.true.i.i.i.i.i.i.i437: ; preds = %for.cond.i.i.i413 + %arrayidx.i.i3.i.i.i.i.i.i.i438 = getelementptr inbounds i8, ptr %109, i64 12 + %110 = load i32, ptr %arrayidx.i.i3.i.i.i.i.i.i.i438, align 4 + %cmp8.i.i.i.i.i.i.i439 = icmp eq i32 %110, %ref.tmp106.sroa.0.sroa.4.0.extract.trunc + br i1 %cmp8.i.i.i.i.i.i.i439, label %_ZNKSt8__detail15_Hashtable_baseIN7openvdb5v11_04math5CoordESt4pairIKS4_hENS_10_Select1stESt8equal_toIS4_ESt4hashIS4_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_equalsERS6_mRKNS_16_Hash_node_valueIS7_Lb0EEE.exit.i.i.i440, label %if.end3.i.i.i415 + +_ZNKSt8__detail15_Hashtable_baseIN7openvdb5v11_04math5CoordESt4pairIKS4_hENS_10_Select1stESt8equal_toIS4_ESt4hashIS4_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_equalsERS6_mRKNS_16_Hash_node_valueIS7_Lb0EEE.exit.i.i.i440: ; preds = %land.lhs.true.i.i.i.i.i.i.i437 + %arrayidx.i.i5.i.i.i.i.i.i.i441 = getelementptr inbounds i8, ptr %109, i64 16 + %111 = load i32, ptr %arrayidx.i.i5.i.i.i.i.i.i.i441, align 4 + %cmp13.i.i.i.i.i.i.i442 = icmp eq i32 %retval.sroa.2.0.copyload.i151, %111 + br i1 %cmp13.i.i.i.i.i.i.i442, label %if.then.i15.i443, label %if.end3.i.i.i415 + +if.end3.i.i.i415: ; preds = %_ZNKSt8__detail15_Hashtable_baseIN7openvdb5v11_04math5CoordESt4pairIKS4_hENS_10_Select1stESt8equal_toIS4_ESt4hashIS4_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_equalsERS6_mRKNS_16_Hash_node_valueIS7_Lb0EEE.exit.i.i.i440, %land.lhs.true.i.i.i.i.i.i.i437, %for.cond.i.i.i413 %112 = load ptr, ptr %109, align 8 - %tobool5.not.i.i.i418 = icmp eq ptr %112, null - br i1 %tobool5.not.i.i.i418, label %if.end34.i432, label %lor.lhs.false.i.i.i419 - -lor.lhs.false.i.i.i419: ; preds = %if.end3.i.i.i417 - %add.ptr7.i.i.i420 = getelementptr inbounds i8, ptr %112, i64 8 - %113 = load i32, ptr %add.ptr7.i.i.i420, align 4 - %mul.i.i.i.i.i.i.i.i421 = mul i32 %113, 455773 - %arrayidx2.i.i.i.i.i.i.i.i422 = getelementptr inbounds i8, ptr %112, i64 12 - %114 = load i32, ptr %arrayidx2.i.i.i.i.i.i.i.i422, align 4 - %mul3.i.i.i.i.i.i.i.i423 = mul i32 %114, 475301 - %xor.i.i.i.i.i.i.i.i424 = xor i32 %mul3.i.i.i.i.i.i.i.i423, %mul.i.i.i.i.i.i.i.i421 - %arrayidx4.i.i.i.i.i.i.i.i425 = getelementptr inbounds i8, ptr %112, i64 16 - %115 = load i32, ptr %arrayidx4.i.i.i.i.i.i.i.i425, align 4 - %mul5.i.i.i.i.i.i.i.i426 = mul i32 %115, 655287 - %xor6.i.i.i.i.i.i.i.i427 = xor i32 %xor.i.i.i.i.i.i.i.i424, %mul5.i.i.i.i.i.i.i.i426 - %and.i.i.i.i.i.i.i.i428 = and i32 %xor6.i.i.i.i.i.i.i.i427, 1048575 - %conv.i.i.i.i.i.i.i.i429 = zext nneg i32 %and.i.i.i.i.i.i.i.i428 to i64 - %rem.i.i.i.i.i.i430 = urem i64 %conv.i.i.i.i.i.i.i.i429, %104 - %cmp.not.i.i.i431 = icmp eq i64 %rem.i.i.i.i.i.i430, %rem.i.i.i.i408 - br i1 %cmp.not.i.i.i431, label %for.cond.i.i.i415, label %if.end34.i432, !llvm.loop !132 - -if.end34.i432: ; preds = %lor.lhs.false.i.i.i419, %if.end3.i.i.i417, %if.then26.i409, %invoke.cont21.i397 + %tobool5.not.i.i.i416 = icmp eq ptr %112, null + br i1 %tobool5.not.i.i.i416, label %if.end34.i430, label %lor.lhs.false.i.i.i417 + +lor.lhs.false.i.i.i417: ; preds = %if.end3.i.i.i415 + %add.ptr7.i.i.i418 = getelementptr inbounds i8, ptr %112, i64 8 + %113 = load i32, ptr %add.ptr7.i.i.i418, align 4 + %mul.i.i.i.i.i.i.i.i419 = mul i32 %113, 455773 + %arrayidx2.i.i.i.i.i.i.i.i420 = getelementptr inbounds i8, ptr %112, i64 12 + %114 = load i32, ptr %arrayidx2.i.i.i.i.i.i.i.i420, align 4 + %mul3.i.i.i.i.i.i.i.i421 = mul i32 %114, 475301 + %xor.i.i.i.i.i.i.i.i422 = xor i32 %mul3.i.i.i.i.i.i.i.i421, %mul.i.i.i.i.i.i.i.i419 + %arrayidx4.i.i.i.i.i.i.i.i423 = getelementptr inbounds i8, ptr %112, i64 16 + %115 = load i32, ptr %arrayidx4.i.i.i.i.i.i.i.i423, align 4 + %mul5.i.i.i.i.i.i.i.i424 = mul i32 %115, 655287 + %xor6.i.i.i.i.i.i.i.i425 = xor i32 %xor.i.i.i.i.i.i.i.i422, %mul5.i.i.i.i.i.i.i.i424 + %and.i.i.i.i.i.i.i.i426 = and i32 %xor6.i.i.i.i.i.i.i.i425, 1048575 + %conv.i.i.i.i.i.i.i.i427 = zext nneg i32 %and.i.i.i.i.i.i.i.i426 to i64 + %rem.i.i.i.i.i.i428 = urem i64 %conv.i.i.i.i.i.i.i.i427, %104 + %cmp.not.i.i.i429 = icmp eq i64 %rem.i.i.i.i.i.i428, %rem.i.i.i.i406 + br i1 %cmp.not.i.i.i429, label %for.cond.i.i.i413, label %if.end34.i430, !llvm.loop !132 + +if.end34.i430: ; preds = %lor.lhs.false.i.i.i417, %if.end3.i.i.i415, %if.then26.i407, %invoke.cont21.i395 %116 = load i64, ptr %_M_next_resize.i.i.i, align 8 - %call3.i521 = invoke { i8, i64 } @_ZNKSt8__detail20_Prime_rehash_policy14_M_need_rehashEmmm(ptr noundef nonnull align 8 dereferenceable(16) %_M_rehash_policy.i.i, i64 noundef %104, i64 noundef %84, i64 noundef 1) - to label %call3.i.noexc520 unwind label %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE12_Scoped_nodeD2Ev.exit.i434 + %call3.i519 = invoke { i8, i64 } @_ZNKSt8__detail20_Prime_rehash_policy14_M_need_rehashEmmm(ptr noundef nonnull align 8 dereferenceable(16) %_M_rehash_policy.i.i, i64 noundef %104, i64 noundef %84, i64 noundef 1) + to label %call3.i.noexc518 unwind label %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE12_Scoped_nodeD2Ev.exit.i432 -call3.i.noexc520: ; preds = %if.end34.i432 - %117 = extractvalue { i8, i64 } %call3.i521, 0 - %tobool.i486 = trunc i8 %117 to i1 - br i1 %tobool.i486, label %if.then.i512, label %call3.i.noexc520.if.end.i487_crit_edge +call3.i.noexc518: ; preds = %if.end34.i430 + %117 = extractvalue { i8, i64 } %call3.i519, 0 + %tobool.i484 = trunc i8 %117 to i1 + br i1 %tobool.i484, label %if.then.i510, label %call3.i.noexc518.if.end.i485_crit_edge -call3.i.noexc520.if.end.i487_crit_edge: ; preds = %call3.i.noexc520 - %.pre747 = load ptr, ptr %children, align 8 - br label %if.end.i487 +call3.i.noexc518.if.end.i485_crit_edge: ; preds = %call3.i.noexc518 + %.pre750 = load ptr, ptr %children, align 8 + br label %if.end.i485 -if.then.i512: ; preds = %call3.i.noexc520 - %118 = extractvalue { i8, i64 } %call3.i521, 1 - %cmp.i.i540 = icmp eq i64 %118, 1 - br i1 %cmp.i.i540, label %if.then.i.i585, label %if.end.i.i541 +if.then.i510: ; preds = %call3.i.noexc518 + %118 = extractvalue { i8, i64 } %call3.i519, 1 + %cmp.i.i538 = icmp eq i64 %118, 1 + br i1 %cmp.i.i538, label %if.then.i.i583, label %if.end.i.i539 -if.then.i.i585: ; preds = %if.then.i512 +if.then.i.i583: ; preds = %if.then.i510 store ptr null, ptr %_M_single_bucket.i.i, align 8 - br label %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE19_M_allocate_bucketsEm.exit.i545 + br label %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE19_M_allocate_bucketsEm.exit.i543 -if.end.i.i541: ; preds = %if.then.i512 - %cmp.i.i.i.i.i542 = icmp ugt i64 %118, 1152921504606846975 - br i1 %cmp.i.i.i.i.i542, label %if.then.i.i.i.i.i581, label %_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeISt4pairIKN7openvdb5v11_04math5CoordEhELb0EEEEE19_M_allocate_bucketsEm.exit.i.i543 +if.end.i.i539: ; preds = %if.then.i510 + %cmp.i.i.i.i.i540 = icmp ugt i64 %118, 1152921504606846975 + br i1 %cmp.i.i.i.i.i540, label %if.then.i.i.i.i.i579, label %_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeISt4pairIKN7openvdb5v11_04math5CoordEhELb0EEEEE19_M_allocate_bucketsEm.exit.i.i541 -if.then.i.i.i.i.i581: ; preds = %if.end.i.i541 - %cmp2.i.i.i.i.i582 = icmp ugt i64 %118, 2305843009213693951 - br i1 %cmp2.i.i.i.i.i582, label %if.then3.i.i.i.i.i584, label %if.end.i.i.i.i.i583 +if.then.i.i.i.i.i579: ; preds = %if.end.i.i539 + %cmp2.i.i.i.i.i580 = icmp ugt i64 %118, 2305843009213693951 + br i1 %cmp2.i.i.i.i.i580, label %if.then3.i.i.i.i.i582, label %if.end.i.i.i.i.i581 -if.then3.i.i.i.i.i584: ; preds = %if.then.i.i.i.i.i581 +if.then3.i.i.i.i.i582: ; preds = %if.then.i.i.i.i.i579 invoke void @_ZSt28__throw_bad_array_new_lengthv() #24 - to label %.noexc587 unwind label %lpad.i.i513.loopexit.split-lp + to label %.noexc585 unwind label %lpad.i.i511.loopexit.split-lp -.noexc587: ; preds = %if.then3.i.i.i.i.i584 +.noexc585: ; preds = %if.then3.i.i.i.i.i582 unreachable -if.end.i.i.i.i.i583: ; preds = %if.then.i.i.i.i.i581 +if.end.i.i.i.i.i581: ; preds = %if.then.i.i.i.i.i579 invoke void @_ZSt17__throw_bad_allocv() #24 - to label %.noexc588 unwind label %lpad.i.i513.loopexit.split-lp + to label %.noexc586 unwind label %lpad.i.i511.loopexit.split-lp -.noexc588: ; preds = %if.end.i.i.i.i.i583 +.noexc586: ; preds = %if.end.i.i.i.i.i581 unreachable -_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeISt4pairIKN7openvdb5v11_04math5CoordEhELb0EEEEE19_M_allocate_bucketsEm.exit.i.i543: ; preds = %if.end.i.i541 - %mul.i.i.i.i.i544 = shl nuw nsw i64 %118, 3 - %call5.i.i4.i.i.i590 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef %mul.i.i.i.i.i544) #22 - to label %call5.i.i4.i.i.i.noexc589 unwind label %lpad.i.i513.loopexit +_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeISt4pairIKN7openvdb5v11_04math5CoordEhELb0EEEEE19_M_allocate_bucketsEm.exit.i.i541: ; preds = %if.end.i.i539 + %mul.i.i.i.i.i542 = shl nuw nsw i64 %118, 3 + %call5.i.i4.i.i.i588 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef %mul.i.i.i.i.i542) #22 + to label %call5.i.i4.i.i.i.noexc587 unwind label %lpad.i.i511.loopexit -call5.i.i4.i.i.i.noexc589: ; preds = %_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeISt4pairIKN7openvdb5v11_04math5CoordEhELb0EEEEE19_M_allocate_bucketsEm.exit.i.i543 - call void @llvm.memset.p0.i64(ptr nonnull align 8 %call5.i.i4.i.i.i590, i8 0, i64 %mul.i.i.i.i.i544, i1 false) - br label %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE19_M_allocate_bucketsEm.exit.i545 +call5.i.i4.i.i.i.noexc587: ; preds = %_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeISt4pairIKN7openvdb5v11_04math5CoordEhELb0EEEEE19_M_allocate_bucketsEm.exit.i.i541 + call void @llvm.memset.p0.i64(ptr nonnull align 8 %call5.i.i4.i.i.i588, i8 0, i64 %mul.i.i.i.i.i542, i1 false) + br label %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE19_M_allocate_bucketsEm.exit.i543 -_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE19_M_allocate_bucketsEm.exit.i545: ; preds = %call5.i.i4.i.i.i.noexc589, %if.then.i.i585 - %retval.0.i.i546 = phi ptr [ %_M_single_bucket.i.i, %if.then.i.i585 ], [ %call5.i.i4.i.i.i590, %call5.i.i4.i.i.i.noexc589 ] +_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE19_M_allocate_bucketsEm.exit.i543: ; preds = %call5.i.i4.i.i.i.noexc587, %if.then.i.i583 + %retval.0.i.i544 = phi ptr [ %_M_single_bucket.i.i, %if.then.i.i583 ], [ %call5.i.i4.i.i.i588, %call5.i.i4.i.i.i.noexc587 ] %119 = load ptr, ptr %_M_before_begin.i.i, align 8 store ptr null, ptr %_M_before_begin.i.i, align 8 - %tobool.not21.i548 = icmp eq ptr %119, null - br i1 %tobool.not21.i548, label %while.end.i572, label %while.body.i549 - -while.body.i549: ; preds = %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE19_M_allocate_bucketsEm.exit.i545, %if.end22.i569 - %__p.023.i550 = phi ptr [ %120, %if.end22.i569 ], [ %119, %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE19_M_allocate_bucketsEm.exit.i545 ] - %__bbegin_bkt.022.i551 = phi i64 [ %__bbegin_bkt.1.i570, %if.end22.i569 ], [ 0, %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE19_M_allocate_bucketsEm.exit.i545 ] - %120 = load ptr, ptr %__p.023.i550, align 8 - %add.ptr.i552 = getelementptr inbounds i8, ptr %__p.023.i550, i64 8 - %121 = load i32, ptr %add.ptr.i552, align 4 - %mul.i.i.i.i20.i553 = mul i32 %121, 455773 - %arrayidx2.i.i.i.i.i554 = getelementptr inbounds i8, ptr %__p.023.i550, i64 12 - %122 = load i32, ptr %arrayidx2.i.i.i.i.i554, align 4 - %mul3.i.i.i.i.i555 = mul i32 %122, 475301 - %xor.i.i.i.i.i556 = xor i32 %mul3.i.i.i.i.i555, %mul.i.i.i.i20.i553 - %arrayidx4.i.i.i.i.i557 = getelementptr inbounds i8, ptr %__p.023.i550, i64 16 - %123 = load i32, ptr %arrayidx4.i.i.i.i.i557, align 4 - %mul5.i.i.i.i.i558 = mul i32 %123, 655287 - %xor6.i.i.i.i.i559 = xor i32 %xor.i.i.i.i.i556, %mul5.i.i.i.i.i558 - %and.i.i.i.i.i560 = and i32 %xor6.i.i.i.i.i559, 1048575 - %conv.i.i.i.i.i561 = zext nneg i32 %and.i.i.i.i.i560 to i64 - %rem.i.i.i562 = urem i64 %conv.i.i.i.i.i561, %118 - %arrayidx.i563 = getelementptr inbounds ptr, ptr %retval.0.i.i546, i64 %rem.i.i.i562 - %124 = load ptr, ptr %arrayidx.i563, align 8 - %tobool5.not.i564 = icmp eq ptr %124, null - br i1 %tobool5.not.i564, label %if.then.i577, label %if.else.i565 - -if.then.i577: ; preds = %while.body.i549 + %tobool.not21.i546 = icmp eq ptr %119, null + br i1 %tobool.not21.i546, label %while.end.i570, label %while.body.i547 + +while.body.i547: ; preds = %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE19_M_allocate_bucketsEm.exit.i543, %if.end22.i567 + %__p.023.i548 = phi ptr [ %120, %if.end22.i567 ], [ %119, %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE19_M_allocate_bucketsEm.exit.i543 ] + %__bbegin_bkt.022.i549 = phi i64 [ %__bbegin_bkt.1.i568, %if.end22.i567 ], [ 0, %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE19_M_allocate_bucketsEm.exit.i543 ] + %120 = load ptr, ptr %__p.023.i548, align 8 + %add.ptr.i550 = getelementptr inbounds i8, ptr %__p.023.i548, i64 8 + %121 = load i32, ptr %add.ptr.i550, align 4 + %mul.i.i.i.i20.i551 = mul i32 %121, 455773 + %arrayidx2.i.i.i.i.i552 = getelementptr inbounds i8, ptr %__p.023.i548, i64 12 + %122 = load i32, ptr %arrayidx2.i.i.i.i.i552, align 4 + %mul3.i.i.i.i.i553 = mul i32 %122, 475301 + %xor.i.i.i.i.i554 = xor i32 %mul3.i.i.i.i.i553, %mul.i.i.i.i20.i551 + %arrayidx4.i.i.i.i.i555 = getelementptr inbounds i8, ptr %__p.023.i548, i64 16 + %123 = load i32, ptr %arrayidx4.i.i.i.i.i555, align 4 + %mul5.i.i.i.i.i556 = mul i32 %123, 655287 + %xor6.i.i.i.i.i557 = xor i32 %xor.i.i.i.i.i554, %mul5.i.i.i.i.i556 + %and.i.i.i.i.i558 = and i32 %xor6.i.i.i.i.i557, 1048575 + %conv.i.i.i.i.i559 = zext nneg i32 %and.i.i.i.i.i558 to i64 + %rem.i.i.i560 = urem i64 %conv.i.i.i.i.i559, %118 + %arrayidx.i561 = getelementptr inbounds ptr, ptr %retval.0.i.i544, i64 %rem.i.i.i560 + %124 = load ptr, ptr %arrayidx.i561, align 8 + %tobool5.not.i562 = icmp eq ptr %124, null + br i1 %tobool5.not.i562, label %if.then.i575, label %if.else.i563 + +if.then.i575: ; preds = %while.body.i547 %125 = load ptr, ptr %_M_before_begin.i.i, align 8 - store ptr %125, ptr %__p.023.i550, align 8 - store ptr %__p.023.i550, ptr %_M_before_begin.i.i, align 8 - store ptr %_M_before_begin.i.i, ptr %arrayidx.i563, align 8 - %126 = load ptr, ptr %__p.023.i550, align 8 - %tobool14.not.i578 = icmp eq ptr %126, null - br i1 %tobool14.not.i578, label %if.end22.i569, label %if.then15.i579 - -if.then15.i579: ; preds = %if.then.i577 - %arrayidx16.i580 = getelementptr inbounds ptr, ptr %retval.0.i.i546, i64 %__bbegin_bkt.022.i551 - br label %if.end22.sink.split.i566 - -if.else.i565: ; preds = %while.body.i549 + store ptr %125, ptr %__p.023.i548, align 8 + store ptr %__p.023.i548, ptr %_M_before_begin.i.i, align 8 + store ptr %_M_before_begin.i.i, ptr %arrayidx.i561, align 8 + %126 = load ptr, ptr %__p.023.i548, align 8 + %tobool14.not.i576 = icmp eq ptr %126, null + br i1 %tobool14.not.i576, label %if.end22.i567, label %if.then15.i577 + +if.then15.i577: ; preds = %if.then.i575 + %arrayidx16.i578 = getelementptr inbounds ptr, ptr %retval.0.i.i544, i64 %__bbegin_bkt.022.i549 + br label %if.end22.sink.split.i564 + +if.else.i563: ; preds = %while.body.i547 %127 = load ptr, ptr %124, align 8 - store ptr %127, ptr %__p.023.i550, align 8 - %128 = load ptr, ptr %arrayidx.i563, align 8 - br label %if.end22.sink.split.i566 - -if.end22.sink.split.i566: ; preds = %if.else.i565, %if.then15.i579 - %arrayidx16.sink.i567 = phi ptr [ %arrayidx16.i580, %if.then15.i579 ], [ %128, %if.else.i565 ] - %__bbegin_bkt.1.ph.i568 = phi i64 [ %rem.i.i.i562, %if.then15.i579 ], [ %__bbegin_bkt.022.i551, %if.else.i565 ] - store ptr %__p.023.i550, ptr %arrayidx16.sink.i567, align 8 - br label %if.end22.i569 - -if.end22.i569: ; preds = %if.end22.sink.split.i566, %if.then.i577 - %__bbegin_bkt.1.i570 = phi i64 [ %rem.i.i.i562, %if.then.i577 ], [ %__bbegin_bkt.1.ph.i568, %if.end22.sink.split.i566 ] - %tobool.not.i571 = icmp eq ptr %120, null - br i1 %tobool.not.i571, label %while.end.i572, label %while.body.i549, !llvm.loop !134 - -while.end.i572: ; preds = %if.end22.i569, %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE19_M_allocate_bucketsEm.exit.i545 + store ptr %127, ptr %__p.023.i548, align 8 + %128 = load ptr, ptr %arrayidx.i561, align 8 + br label %if.end22.sink.split.i564 + +if.end22.sink.split.i564: ; preds = %if.else.i563, %if.then15.i577 + %arrayidx16.sink.i565 = phi ptr [ %arrayidx16.i578, %if.then15.i577 ], [ %128, %if.else.i563 ] + %__bbegin_bkt.1.ph.i566 = phi i64 [ %rem.i.i.i560, %if.then15.i577 ], [ %__bbegin_bkt.022.i549, %if.else.i563 ] + store ptr %__p.023.i548, ptr %arrayidx16.sink.i565, align 8 + br label %if.end22.i567 + +if.end22.i567: ; preds = %if.end22.sink.split.i564, %if.then.i575 + %__bbegin_bkt.1.i568 = phi i64 [ %rem.i.i.i560, %if.then.i575 ], [ %__bbegin_bkt.1.ph.i566, %if.end22.sink.split.i564 ] + %tobool.not.i569 = icmp eq ptr %120, null + br i1 %tobool.not.i569, label %while.end.i570, label %while.body.i547, !llvm.loop !134 + +while.end.i570: ; preds = %if.end22.i567, %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE19_M_allocate_bucketsEm.exit.i543 %129 = load ptr, ptr %children, align 8 - %cmp.i.i.i.i574 = icmp eq ptr %_M_single_bucket.i.i, %129 - br i1 %cmp.i.i.i.i574, label %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_rehashEmRKm.exit.i518, label %if.end.i.i.i575 + %cmp.i.i.i.i572 = icmp eq ptr %_M_single_bucket.i.i, %129 + br i1 %cmp.i.i.i.i572, label %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_rehashEmRKm.exit.i516, label %if.end.i.i.i573 -if.end.i.i.i575: ; preds = %while.end.i572 +if.end.i.i.i573: ; preds = %while.end.i570 call void @_ZdlPv(ptr noundef %129) #23 - br label %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_rehashEmRKm.exit.i518 + br label %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_rehashEmRKm.exit.i516 -lpad.i.i513.loopexit: ; preds = %_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeISt4pairIKN7openvdb5v11_04math5CoordEhELb0EEEEE19_M_allocate_bucketsEm.exit.i.i543 - %lpad.loopexit649 = landingpad { ptr, i32 } +lpad.i.i511.loopexit: ; preds = %_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeISt4pairIKN7openvdb5v11_04math5CoordEhELb0EEEEE19_M_allocate_bucketsEm.exit.i.i541 + %lpad.loopexit648 = landingpad { ptr, i32 } catch ptr null - br label %lpad.i.i513 + br label %lpad.i.i511 -lpad.i.i513.loopexit.split-lp: ; preds = %if.then3.i.i.i.i.i584, %if.end.i.i.i.i.i583 - %lpad.loopexit.split-lp650 = landingpad { ptr, i32 } +lpad.i.i511.loopexit.split-lp: ; preds = %if.then3.i.i.i.i.i582, %if.end.i.i.i.i.i581 + %lpad.loopexit.split-lp649 = landingpad { ptr, i32 } catch ptr null - br label %lpad.i.i513 + br label %lpad.i.i511 -lpad.i.i513: ; preds = %lpad.i.i513.loopexit.split-lp, %lpad.i.i513.loopexit - %lpad.phi651 = phi { ptr, i32 } [ %lpad.loopexit649, %lpad.i.i513.loopexit ], [ %lpad.loopexit.split-lp650, %lpad.i.i513.loopexit.split-lp ] - %130 = extractvalue { ptr, i32 } %lpad.phi651, 0 +lpad.i.i511: ; preds = %lpad.i.i511.loopexit.split-lp, %lpad.i.i511.loopexit + %lpad.phi650 = phi { ptr, i32 } [ %lpad.loopexit648, %lpad.i.i511.loopexit ], [ %lpad.loopexit.split-lp649, %lpad.i.i511.loopexit.split-lp ] + %130 = extractvalue { ptr, i32 } %lpad.phi650, 0 %131 = call ptr @__cxa_begin_catch(ptr %130) #15 store i64 %116, ptr %_M_next_resize.i.i.i, align 8 invoke void @__cxa_rethrow() #24 - to label %unreachable.i.i517 unwind label %lpad2.i.i514 + to label %unreachable.i.i515 unwind label %lpad2.i.i512 -lpad2.i.i514: ; preds = %lpad.i.i513 +lpad2.i.i512: ; preds = %lpad.i.i511 %132 = landingpad { ptr, i32 } cleanup invoke void @__cxa_end_catch() - to label %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE12_Scoped_nodeD2Ev.exit.i434.body unwind label %terminate.lpad.i.i515 + to label %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE12_Scoped_nodeD2Ev.exit.i432.body unwind label %terminate.lpad.i.i513 -terminate.lpad.i.i515: ; preds = %lpad2.i.i514 +terminate.lpad.i.i513: ; preds = %lpad2.i.i512 %133 = landingpad { ptr, i32 } catch ptr null %134 = extractvalue { ptr, i32 } %133, 0 call void @__clang_call_terminate(ptr %134) #26 unreachable -unreachable.i.i517: ; preds = %lpad.i.i513 +unreachable.i.i515: ; preds = %lpad.i.i511 unreachable -_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_rehashEmRKm.exit.i518: ; preds = %if.end.i.i.i575, %while.end.i572 +_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_rehashEmRKm.exit.i516: ; preds = %if.end.i.i.i573, %while.end.i570 store i64 %118, ptr %_M_bucket_count.i.i, align 8 - store ptr %retval.0.i.i546, ptr %children, align 8 - %rem.i.i.i.i519 = urem i64 %conv.i.i.i.i406, %118 - br label %if.end.i487 - -if.end.i487: ; preds = %call3.i.noexc520.if.end.i487_crit_edge, %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_rehashEmRKm.exit.i518 - %135 = phi ptr [ %retval.0.i.i546, %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_rehashEmRKm.exit.i518 ], [ %.pre747, %call3.i.noexc520.if.end.i487_crit_edge ] - %__bkt.addr.0.i488 = phi i64 [ %rem.i.i.i.i519, %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_rehashEmRKm.exit.i518 ], [ %rem.i.i.i.i408, %call3.i.noexc520.if.end.i487_crit_edge ] - %arrayidx.i.i489 = getelementptr inbounds ptr, ptr %135, i64 %__bkt.addr.0.i488 - %136 = load ptr, ptr %arrayidx.i.i489, align 8 - %tobool.not.i.i490 = icmp eq ptr %136, null - br i1 %tobool.not.i.i490, label %if.else.i.i494, label %if.then.i.i491 - -if.then.i.i491: ; preds = %if.end.i487 + store ptr %retval.0.i.i544, ptr %children, align 8 + %rem.i.i.i.i517 = urem i64 %conv.i.i.i.i404, %118 + br label %if.end.i485 + +if.end.i485: ; preds = %call3.i.noexc518.if.end.i485_crit_edge, %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_rehashEmRKm.exit.i516 + %135 = phi ptr [ %retval.0.i.i544, %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_rehashEmRKm.exit.i516 ], [ %.pre750, %call3.i.noexc518.if.end.i485_crit_edge ] + %__bkt.addr.0.i486 = phi i64 [ %rem.i.i.i.i517, %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_rehashEmRKm.exit.i516 ], [ %rem.i.i.i.i406, %call3.i.noexc518.if.end.i485_crit_edge ] + %arrayidx.i.i487 = getelementptr inbounds ptr, ptr %135, i64 %__bkt.addr.0.i486 + %136 = load ptr, ptr %arrayidx.i.i487, align 8 + %tobool.not.i.i488 = icmp eq ptr %136, null + br i1 %tobool.not.i.i488, label %if.else.i.i492, label %if.then.i.i489 + +if.then.i.i489: ; preds = %if.end.i485 %137 = load ptr, ptr %136, align 8 - store ptr %137, ptr %call5.i.i.i.i.i469, align 8 - %138 = load ptr, ptr %arrayidx.i.i489, align 8 - store ptr %call5.i.i.i.i.i469, ptr %138, align 8 - br label %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE21_M_insert_unique_nodeEmmPNS8_10_Hash_nodeIS6_Lb0EEEm.exit523 + store ptr %137, ptr %call5.i.i.i.i.i467, align 8 + %138 = load ptr, ptr %arrayidx.i.i487, align 8 + store ptr %call5.i.i.i.i.i467, ptr %138, align 8 + br label %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE21_M_insert_unique_nodeEmmPNS8_10_Hash_nodeIS6_Lb0EEEm.exit521 -if.else.i.i494: ; preds = %if.end.i487 +if.else.i.i492: ; preds = %if.end.i485 %139 = load ptr, ptr %_M_before_begin.i.i, align 8 - store ptr %139, ptr %call5.i.i.i.i.i469, align 8 - store ptr %call5.i.i.i.i.i469, ptr %_M_before_begin.i.i, align 8 - %tobool13.not.i.i496 = icmp eq ptr %139, null - br i1 %tobool13.not.i.i496, label %if.end.i.i510, label %if.then14.i.i497 + store ptr %139, ptr %call5.i.i.i.i.i467, align 8 + store ptr %call5.i.i.i.i.i467, ptr %_M_before_begin.i.i, align 8 + %tobool13.not.i.i494 = icmp eq ptr %139, null + br i1 %tobool13.not.i.i494, label %if.end.i.i508, label %if.then14.i.i495 -if.then14.i.i497: ; preds = %if.else.i.i494 - %add.ptr.i.i498 = getelementptr inbounds i8, ptr %139, i64 8 +if.then14.i.i495: ; preds = %if.else.i.i492 + %add.ptr.i.i496 = getelementptr inbounds i8, ptr %139, i64 8 %140 = load i64, ptr %_M_bucket_count.i.i, align 8 - %141 = load i32, ptr %add.ptr.i.i498, align 4 - %mul.i.i.i.i.i.i.i499 = mul i32 %141, 455773 - %arrayidx2.i.i.i.i.i.i.i500 = getelementptr inbounds i8, ptr %139, i64 12 - %142 = load i32, ptr %arrayidx2.i.i.i.i.i.i.i500, align 4 - %mul3.i.i.i.i.i.i.i501 = mul i32 %142, 475301 - %xor.i.i.i.i.i.i.i502 = xor i32 %mul3.i.i.i.i.i.i.i501, %mul.i.i.i.i.i.i.i499 - %arrayidx4.i.i.i.i.i.i.i503 = getelementptr inbounds i8, ptr %139, i64 16 - %143 = load i32, ptr %arrayidx4.i.i.i.i.i.i.i503, align 4 - %mul5.i.i.i.i.i.i.i504 = mul i32 %143, 655287 - %xor6.i.i.i.i.i.i.i505 = xor i32 %xor.i.i.i.i.i.i.i502, %mul5.i.i.i.i.i.i.i504 - %and.i.i.i.i.i.i.i506 = and i32 %xor6.i.i.i.i.i.i.i505, 1048575 - %conv.i.i.i.i.i.i.i507 = zext nneg i32 %and.i.i.i.i.i.i.i506 to i64 - %rem.i.i.i.i.i508 = urem i64 %conv.i.i.i.i.i.i.i507, %140 - %arrayidx17.i.i509 = getelementptr inbounds ptr, ptr %135, i64 %rem.i.i.i.i.i508 - store ptr %call5.i.i.i.i.i469, ptr %arrayidx17.i.i509, align 8 - %.pre748 = load ptr, ptr %children, align 8 - br label %if.end.i.i510 - -if.end.i.i510: ; preds = %if.then14.i.i497, %if.else.i.i494 - %144 = phi ptr [ %.pre748, %if.then14.i.i497 ], [ %135, %if.else.i.i494 ] - %arrayidx20.i.i511 = getelementptr inbounds ptr, ptr %144, i64 %__bkt.addr.0.i488 - store ptr %_M_before_begin.i.i, ptr %arrayidx20.i.i511, align 8 - br label %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE21_M_insert_unique_nodeEmmPNS8_10_Hash_nodeIS6_Lb0EEEm.exit523 - -_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE21_M_insert_unique_nodeEmmPNS8_10_Hash_nodeIS6_Lb0EEEm.exit523: ; preds = %if.then.i.i491, %if.end.i.i510 + %141 = load i32, ptr %add.ptr.i.i496, align 4 + %mul.i.i.i.i.i.i.i497 = mul i32 %141, 455773 + %arrayidx2.i.i.i.i.i.i.i498 = getelementptr inbounds i8, ptr %139, i64 12 + %142 = load i32, ptr %arrayidx2.i.i.i.i.i.i.i498, align 4 + %mul3.i.i.i.i.i.i.i499 = mul i32 %142, 475301 + %xor.i.i.i.i.i.i.i500 = xor i32 %mul3.i.i.i.i.i.i.i499, %mul.i.i.i.i.i.i.i497 + %arrayidx4.i.i.i.i.i.i.i501 = getelementptr inbounds i8, ptr %139, i64 16 + %143 = load i32, ptr %arrayidx4.i.i.i.i.i.i.i501, align 4 + %mul5.i.i.i.i.i.i.i502 = mul i32 %143, 655287 + %xor6.i.i.i.i.i.i.i503 = xor i32 %xor.i.i.i.i.i.i.i500, %mul5.i.i.i.i.i.i.i502 + %and.i.i.i.i.i.i.i504 = and i32 %xor6.i.i.i.i.i.i.i503, 1048575 + %conv.i.i.i.i.i.i.i505 = zext nneg i32 %and.i.i.i.i.i.i.i504 to i64 + %rem.i.i.i.i.i506 = urem i64 %conv.i.i.i.i.i.i.i505, %140 + %arrayidx17.i.i507 = getelementptr inbounds ptr, ptr %135, i64 %rem.i.i.i.i.i506 + store ptr %call5.i.i.i.i.i467, ptr %arrayidx17.i.i507, align 8 + %.pre751 = load ptr, ptr %children, align 8 + br label %if.end.i.i508 + +if.end.i.i508: ; preds = %if.then14.i.i495, %if.else.i.i492 + %144 = phi ptr [ %.pre751, %if.then14.i.i495 ], [ %135, %if.else.i.i492 ] + %arrayidx20.i.i509 = getelementptr inbounds ptr, ptr %144, i64 %__bkt.addr.0.i486 + store ptr %_M_before_begin.i.i, ptr %arrayidx20.i.i509, align 8 + br label %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE21_M_insert_unique_nodeEmmPNS8_10_Hash_nodeIS6_Lb0EEEm.exit521 + +_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE21_M_insert_unique_nodeEmmPNS8_10_Hash_nodeIS6_Lb0EEEm.exit521: ; preds = %if.then.i.i489, %if.end.i.i508 %145 = load i64, ptr %_M_element_count.i.i, align 8 - %inc.i493 = add i64 %145, 1 - store i64 %inc.i493, ptr %_M_element_count.i.i, align 8 + %inc.i491 = add i64 %145, 1 + store i64 %inc.i491, ptr %_M_element_count.i.i, align 8 br label %for.inc135 -if.then.i15.i445: ; preds = %invoke.cont.i465, %_ZNKSt8__detail15_Hashtable_baseIN7openvdb5v11_04math5CoordESt4pairIKS4_hENS_10_Select1stESt8equal_toIS4_ESt4hashIS4_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_equalsERS6_mRKNS_16_Hash_node_valueIS7_Lb0EEE.exit.i.i.i442 - call void @_ZdlPv(ptr noundef nonnull %call5.i.i.i.i.i469) #23 +if.then.i15.i443: ; preds = %invoke.cont.i463, %_ZNKSt8__detail15_Hashtable_baseIN7openvdb5v11_04math5CoordESt4pairIKS4_hENS_10_Select1stESt8equal_toIS4_ESt4hashIS4_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_equalsERS6_mRKNS_16_Hash_node_valueIS7_Lb0EEE.exit.i.i.i440 + call void @_ZdlPv(ptr noundef nonnull %call5.i.i.i.i.i467) #23 br label %for.inc135 -if.else128: ; preds = %_ZNKSt8__detail15_Hashtable_baseIN7openvdb5v11_04math5CoordESt4pairIKS4_hENS_10_Select1stESt8equal_toIS4_ESt4hashIS4_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE13_M_key_equalsERS6_RKNS_16_Hash_node_valueIS7_Lb0EEE.exit.i388, %_ZNKSt8__detail15_Hashtable_baseIN7openvdb5v11_04math5CoordESt4pairIKS4_hENS_10_Select1stESt8equal_toIS4_ESt4hashIS4_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_equalsERS6_mRKNS_16_Hash_node_valueIS7_Lb0EEE.exit.i.i.i368 - %retval.sroa.0.1.i364 = phi ptr [ %93, %_ZNKSt8__detail15_Hashtable_baseIN7openvdb5v11_04math5CoordESt4pairIKS4_hENS_10_Select1stESt8equal_toIS4_ESt4hashIS4_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_equalsERS6_mRKNS_16_Hash_node_valueIS7_Lb0EEE.exit.i.i.i368 ], [ %retval.sroa.0.011.i379, %_ZNKSt8__detail15_Hashtable_baseIN7openvdb5v11_04math5CoordESt4pairIKS4_hENS_10_Select1stESt8equal_toIS4_ESt4hashIS4_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE13_M_key_equalsERS6_RKNS_16_Hash_node_valueIS7_Lb0EEE.exit.i388 ] - %second130 = getelementptr inbounds i8, ptr %retval.sroa.0.1.i364, i64 20 +if.else128: ; preds = %_ZNKSt8__detail15_Hashtable_baseIN7openvdb5v11_04math5CoordESt4pairIKS4_hENS_10_Select1stESt8equal_toIS4_ESt4hashIS4_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE13_M_key_equalsERS6_RKNS_16_Hash_node_valueIS7_Lb0EEE.exit.i386, %_ZNKSt8__detail15_Hashtable_baseIN7openvdb5v11_04math5CoordESt4pairIKS4_hENS_10_Select1stESt8equal_toIS4_ESt4hashIS4_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_equalsERS6_mRKNS_16_Hash_node_valueIS7_Lb0EEE.exit.i.i.i366 + %retval.sroa.0.1.i362 = phi ptr [ %93, %_ZNKSt8__detail15_Hashtable_baseIN7openvdb5v11_04math5CoordESt4pairIKS4_hENS_10_Select1stESt8equal_toIS4_ESt4hashIS4_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_equalsERS6_mRKNS_16_Hash_node_valueIS7_Lb0EEE.exit.i.i.i366 ], [ %retval.sroa.0.011.i377, %_ZNKSt8__detail15_Hashtable_baseIN7openvdb5v11_04math5CoordESt4pairIKS4_hENS_10_Select1stESt8equal_toIS4_ESt4hashIS4_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE13_M_key_equalsERS6_RKNS_16_Hash_node_valueIS7_Lb0EEE.exit.i386 ] + %second130 = getelementptr inbounds i8, ptr %retval.sroa.0.1.i362, i64 20 %146 = load i8, ptr %second130, align 4 %147 = or i8 %146, 2 store i8 %147, ptr %second130, align 4 br label %for.inc135 -for.inc135: ; preds = %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE21_M_insert_unique_nodeEmmPNS8_10_Hash_nodeIS6_Lb0EEEm.exit523, %if.then.i15.i445, %if.else128 - %cmp.i.i.not.i.i165 = icmp eq ptr %childIter97.sroa.3.0695, %add.ptr.i.i.i.i.i.i90 - br i1 %cmp.i.i.not.i.i165, label %for.inc139, label %if.end.i.i166 - -if.end.i.i166: ; preds = %for.inc135 - %call.i.i.i167 = call noundef ptr @_ZSt18_Rb_tree_incrementPKSt18_Rb_tree_node_base(ptr noundef %childIter97.sroa.3.0695) #25 - %cmp.i.i.not2.i.i.i168 = icmp eq ptr %call.i.i.i167, %add.ptr.i.i.i.i.i.i90 - br i1 %cmp.i.i.not2.i.i.i168, label %for.inc139, label %land.rhs.i.i.i169 - -land.rhs.i.i.i169: ; preds = %if.end.i.i166, %while.body.i.i.i173 - %childIter97.sroa.3.1 = phi ptr [ %call.i.i.i.i174, %while.body.i.i.i173 ], [ %call.i.i.i167, %if.end.i.i166 ] - %second.i.i.i.i.i171 = getelementptr inbounds i8, ptr %childIter97.sroa.3.1, i64 48 - %148 = load ptr, ptr %second.i.i.i.i.i171, align 8 - %cmp.i.i.i.not.i.i.i172 = icmp eq ptr %148, null - br i1 %cmp.i.i.i.not.i.i.i172, label %while.body.i.i.i173, label %_ZN7openvdb5v11_04tree8RootNodeINS1_12InternalNodeINS3_INS1_8LeafNodeINS0_9ValueMaskELj3EEELj4EEELj5EEEE9ChildIterIKS9_St23_Rb_tree_const_iteratorISt4pairIKNS0_4math5CoordENS9_10NodeStructEEENS9_11ChildOnPredEKS8_EppEv.exit176 - -while.body.i.i.i173: ; preds = %land.rhs.i.i.i169 - %call.i.i.i.i174 = call noundef ptr @_ZSt18_Rb_tree_incrementPKSt18_Rb_tree_node_base(ptr noundef nonnull %childIter97.sroa.3.1) #25 - %cmp.i.i.not.i.i.i175 = icmp eq ptr %call.i.i.i.i174, %add.ptr.i.i.i.i.i.i90 - br i1 %cmp.i.i.not.i.i.i175, label %for.inc139, label %land.rhs.i.i.i169, !llvm.loop !21 - -_ZN7openvdb5v11_04tree8RootNodeINS1_12InternalNodeINS3_INS1_8LeafNodeINS0_9ValueMaskELj3EEELj4EEELj5EEEE9ChildIterIKS9_St23_Rb_tree_const_iteratorISt4pairIKNS0_4math5CoordENS9_10NodeStructEEENS9_11ChildOnPredEKS8_EppEv.exit176: ; preds = %land.rhs.i.i.i169 - %cmp.i.i.i148.not = icmp eq ptr %childIter97.sroa.3.1, %add.ptr.i.i.i.i.i.i90 - br i1 %cmp.i.i.i148.not, label %for.inc139, label %for.body104 - -for.inc139: ; preds = %while.body.i.i.i142, %if.end.i.i166, %for.inc135, %_ZN7openvdb5v11_04tree8RootNodeINS1_12InternalNodeINS3_INS1_8LeafNodeINS0_9ValueMaskELj3EEELj4EEELj5EEEE9ChildIterIKS9_St23_Rb_tree_const_iteratorISt4pairIKNS0_4math5CoordENS9_10NodeStructEEENS9_11ChildOnPredEKS8_EppEv.exit176, %while.body.i.i.i173, %for.end96, %invoke.cont98 - %incdec.ptr.i = getelementptr inbounds i8, ptr %__begin1.sroa.0.0697, i64 40 +for.inc135: ; preds = %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE21_M_insert_unique_nodeEmmPNS8_10_Hash_nodeIS6_Lb0EEEm.exit521, %if.then.i15.i443, %if.else128 + %cmp.i.i.not.i.i163 = icmp eq ptr %childIter97.sroa.3.0694, %add.ptr.i.i.i.i.i.i88 + br i1 %cmp.i.i.not.i.i163, label %for.inc139, label %if.end.i.i164 + +if.end.i.i164: ; preds = %for.inc135 + %call.i.i.i165 = call noundef ptr @_ZSt18_Rb_tree_incrementPKSt18_Rb_tree_node_base(ptr noundef %childIter97.sroa.3.0694) #25 + %cmp.i.i.not2.i.i.i166 = icmp eq ptr %call.i.i.i165, %add.ptr.i.i.i.i.i.i88 + br i1 %cmp.i.i.not2.i.i.i166, label %for.inc139, label %land.rhs.i.i.i167 + +land.rhs.i.i.i167: ; preds = %if.end.i.i164, %while.body.i.i.i171 + %childIter97.sroa.3.1 = phi ptr [ %call.i.i.i.i172, %while.body.i.i.i171 ], [ %call.i.i.i165, %if.end.i.i164 ] + %second.i.i.i.i.i169 = getelementptr inbounds i8, ptr %childIter97.sroa.3.1, i64 48 + %148 = load ptr, ptr %second.i.i.i.i.i169, align 8 + %cmp.i.i.i.not.i.i.i170 = icmp eq ptr %148, null + br i1 %cmp.i.i.i.not.i.i.i170, label %while.body.i.i.i171, label %_ZN7openvdb5v11_04tree8RootNodeINS1_12InternalNodeINS3_INS1_8LeafNodeINS0_9ValueMaskELj3EEELj4EEELj5EEEE9ChildIterIKS9_St23_Rb_tree_const_iteratorISt4pairIKNS0_4math5CoordENS9_10NodeStructEEENS9_11ChildOnPredEKS8_EppEv.exit174 + +while.body.i.i.i171: ; preds = %land.rhs.i.i.i167 + %call.i.i.i.i172 = call noundef ptr @_ZSt18_Rb_tree_incrementPKSt18_Rb_tree_node_base(ptr noundef nonnull %childIter97.sroa.3.1) #25 + %cmp.i.i.not.i.i.i173 = icmp eq ptr %call.i.i.i.i172, %add.ptr.i.i.i.i.i.i88 + br i1 %cmp.i.i.not.i.i.i173, label %for.inc139, label %land.rhs.i.i.i167, !llvm.loop !21 + +_ZN7openvdb5v11_04tree8RootNodeINS1_12InternalNodeINS3_INS1_8LeafNodeINS0_9ValueMaskELj3EEELj4EEELj5EEEE9ChildIterIKS9_St23_Rb_tree_const_iteratorISt4pairIKNS0_4math5CoordENS9_10NodeStructEEENS9_11ChildOnPredEKS8_EppEv.exit174: ; preds = %land.rhs.i.i.i167 + %cmp.i.i.i146.not = icmp eq ptr %childIter97.sroa.3.1, %add.ptr.i.i.i.i.i.i88 + br i1 %cmp.i.i.i146.not, label %for.inc139, label %for.body104 + +for.inc139: ; preds = %while.body.i.i.i140, %if.end.i.i164, %for.inc135, %_ZN7openvdb5v11_04tree8RootNodeINS1_12InternalNodeINS3_INS1_8LeafNodeINS0_9ValueMaskELj3EEELj4EEELj5EEEE9ChildIterIKS9_St23_Rb_tree_const_iteratorISt4pairIKNS0_4math5CoordENS9_10NodeStructEEENS9_11ChildOnPredEKS8_EppEv.exit174, %while.body.i.i.i171, %for.end96, %invoke.cont98 + %incdec.ptr.i = getelementptr inbounds i8, ptr %__begin1.sroa.0.0696, i64 40 %cmp.i.not = icmp eq ptr %incdec.ptr.i, %13 br i1 %cmp.i.not, label %for.end141, label %if.end59 for.end141: ; preds = %for.inc139, %if.end46 %149 = load ptr, ptr %_M_before_begin.i.i, align 8 - %cmp.i177.not698 = icmp eq ptr %149, null - br i1 %cmp.i177.not698, label %for.end256, label %for.body151.lr.ph + %cmp.i175.not697 = icmp eq ptr %149, null + br i1 %cmp.i175.not697, label %for.end256, label %for.body151.lr.ph for.body151.lr.ph: ; preds = %for.end141 - %mBackground.i181 = getelementptr inbounds i8, ptr %root, i64 48 + %mBackground.i179 = getelementptr inbounds i8, ptr %root, i64 48 br label %for.body151 for.body151: ; preds = %for.body151.lr.ph, %for.inc162 - %__begin3.sroa.0.0699 = phi ptr [ %149, %for.body151.lr.ph ], [ %150, %for.inc162 ] - %add.ptr.i178 = getelementptr inbounds i8, ptr %__begin3.sroa.0.0699, i64 8 - %call.i180 = invoke noundef i32 @_ZNK7openvdb5v11_04tree8RootNodeINS1_12InternalNodeINS3_INS1_8LeafNodeINS0_9ValueMaskELj3EEELj4EEELj5EEEE13getValueDepthERKNS0_4math5CoordE(ptr noundef nonnull align 8 dereferenceable(68) %root, ptr noundef nonnull align 4 dereferenceable(12) %add.ptr.i178) + %__begin3.sroa.0.0698 = phi ptr [ %149, %for.body151.lr.ph ], [ %150, %for.inc162 ] + %add.ptr.i176 = getelementptr inbounds i8, ptr %__begin3.sroa.0.0698, i64 8 + %call.i178 = invoke noundef i32 @_ZNK7openvdb5v11_04tree8RootNodeINS1_12InternalNodeINS3_INS1_8LeafNodeINS0_9ValueMaskELj3EEELj4EEELj5EEEE13getValueDepthERKNS0_4math5CoordE(ptr noundef nonnull align 8 dereferenceable(68) %root, ptr noundef nonnull align 4 dereferenceable(12) %add.ptr.i176) to label %invoke.cont154 unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit invoke.cont154: ; preds = %for.body151 - %cmp.i179 = icmp sgt i32 %call.i180, -1 - br i1 %cmp.i179, label %for.inc162, label %if.then156 + %cmp.i177 = icmp sgt i32 %call.i178, -1 + br i1 %cmp.i177, label %for.inc162, label %if.then156 if.then156: ; preds = %invoke.cont154 - invoke void @_ZN7openvdb5v11_04tree8RootNodeINS1_12InternalNodeINS3_INS1_8LeafNodeINS0_9ValueMaskELj3EEELj4EEELj5EEEE7addTileERKNS0_4math5CoordERKbb(ptr noundef nonnull align 8 dereferenceable(68) %root, ptr noundef nonnull align 4 dereferenceable(12) %add.ptr.i178, ptr noundef nonnull align 1 dereferenceable(1) %mBackground.i181, i1 noundef zeroext false) + invoke void @_ZN7openvdb5v11_04tree8RootNodeINS1_12InternalNodeINS3_INS1_8LeafNodeINS0_9ValueMaskELj3EEELj4EEELj5EEEE7addTileERKNS0_4math5CoordERKbb(ptr noundef nonnull align 8 dereferenceable(68) %root, ptr noundef nonnull align 4 dereferenceable(12) %add.ptr.i176, ptr noundef nonnull align 1 dereferenceable(1) %mBackground.i179, i1 noundef zeroext false) to label %for.inc162 unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit for.inc162: ; preds = %invoke.cont154, %if.then156 - %150 = load ptr, ptr %__begin3.sroa.0.0699, align 8 - %cmp.i177.not = icmp eq ptr %150, null - br i1 %cmp.i177.not, label %for.end164, label %for.body151 + %150 = load ptr, ptr %__begin3.sroa.0.0698, align 8 + %cmp.i175.not = icmp eq ptr %150, null + br i1 %cmp.i175.not, label %for.end164, label %for.body151 for.end164: ; preds = %for.inc162 - %.pre749 = load ptr, ptr %_M_before_begin.i.i, align 8 - %cmp.i183.not704 = icmp eq ptr %.pre749, null - br i1 %cmp.i183.not704, label %for.end256, label %for.body176.lr.ph + %.pre752 = load ptr, ptr %_M_before_begin.i.i, align 8 + %cmp.i181.not703 = icmp eq ptr %.pre752, null + br i1 %cmp.i181.not703, label %for.end256, label %for.body176.lr.ph for.body176.lr.ph: ; preds = %for.end164 %mActive.i = getelementptr inbounds i8, ptr %applyOp, i64 1 br label %for.body176 for.body176: ; preds = %for.body176.lr.ph, %for.inc254 - %__begin3166.sroa.0.0705 = phi ptr [ %.pre749, %for.body176.lr.ph ], [ %200, %for.inc254 ] - %add.ptr.i184 = getelementptr inbounds i8, ptr %__begin3166.sroa.0.0705, i64 8 - %second181 = getelementptr inbounds i8, ptr %__begin3166.sroa.0.0705, i64 20 + %__begin3166.sroa.0.0704 = phi ptr [ %.pre752, %for.body176.lr.ph ], [ %200, %for.inc254 ] + %add.ptr.i182 = getelementptr inbounds i8, ptr %__begin3166.sroa.0.0704, i64 8 + %second181 = getelementptr inbounds i8, ptr %__begin3166.sroa.0.0704, i64 20 %151 = load i8, ptr %second181, align 4 %152 = and i8 %151, 4 %tobool183.not = icmp eq i8 %152, 0 br i1 %tobool183.not, label %if.end185, label %for.inc254 if.end185: ; preds = %for.body176 - %call187 = invoke noundef zeroext i1 @_ZNK7openvdb5v11_04tree8RootNodeINS1_12InternalNodeINS3_INS1_8LeafNodeINS0_9ValueMaskELj3EEELj4EEELj5EEEE10probeValueERKNS0_4math5CoordERb(ptr noundef nonnull align 8 dereferenceable(68) %root, ptr noundef nonnull align 4 dereferenceable(12) %add.ptr.i184, ptr noundef nonnull align 1 dereferenceable(1) %value) + %call187 = invoke noundef zeroext i1 @_ZNK7openvdb5v11_04tree8RootNodeINS1_12InternalNodeINS3_INS1_8LeafNodeINS0_9ValueMaskELj3EEELj4EEELj5EEEE10probeValueERKNS0_4math5CoordERb(ptr noundef nonnull align 8 dereferenceable(68) %root, ptr noundef nonnull align 4 dereferenceable(12) %add.ptr.i182, ptr noundef nonnull align 1 dereferenceable(1) %value) to label %invoke.cont186 unwind label %lpad.loopexit.split-lp.loopexit invoke.cont186: ; preds = %if.end185 %153 = load ptr, ptr %this, align 8 %154 = load ptr, ptr %_M_finish.i.i.i, align 8 - %cmp.i186.not700 = icmp eq ptr %153, %154 - br i1 %cmp.i186.not700, label %for.inc254, label %if.end205.lr.ph + %cmp.i184.not699 = icmp eq ptr %153, %154 + br i1 %cmp.i184.not699, label %for.inc254, label %if.end205.lr.ph if.end205.lr.ph: ; preds = %invoke.cont186 - %arrayidx.i.i.i.i.i.i = getelementptr inbounds i8, ptr %__begin3166.sroa.0.0705, i64 12 - %arrayidx.i.i3.i.i.i.i = getelementptr inbounds i8, ptr %__begin3166.sroa.0.0705, i64 16 + %arrayidx.i.i.i.i.i.i = getelementptr inbounds i8, ptr %__begin3166.sroa.0.0704, i64 12 + %arrayidx.i.i3.i.i.i.i = getelementptr inbounds i8, ptr %__begin3166.sroa.0.0704, i64 16 br label %if.end205 if.end205: ; preds = %if.end205.lr.ph, %for.inc251 - %__begin1189.sroa.0.0701 = phi ptr [ %153, %if.end205.lr.ph ], [ %incdec.ptr.i249, %for.inc251 ] - %mTree.i187 = getelementptr inbounds i8, ptr %__begin1189.sroa.0.0701, i64 16 - %155 = load ptr, ptr %mTree.i187, align 8 + %__begin1189.sroa.0.0700 = phi ptr [ %153, %if.end205.lr.ph ], [ %incdec.ptr.i247, %for.inc251 ] + %mTree.i185 = getelementptr inbounds i8, ptr %__begin1189.sroa.0.0700, i64 16 + %155 = load ptr, ptr %mTree.i185, align 8 %mOrigin.i.i.i = getelementptr inbounds i8, ptr %155, i64 60 - %156 = load i32, ptr %add.ptr.i184, align 4 + %156 = load i32, ptr %add.ptr.i182, align 4 %157 = load i32, ptr %mOrigin.i.i.i, align 4 %sub.i.i.i.i = sub nsw i32 %156, %157 %158 = load i32, ptr %arrayidx.i.i.i.i.i.i, align 4 @@ -16887,13 +16887,13 @@ if.end205: ; preds = %if.end205.lr.ph, %f %and7.i.i.i.i = and i32 %sub10.i.i.i.i, -4096 %_M_parent.i.i.i.i.i = getelementptr inbounds i8, ptr %155, i64 24 %162 = load ptr, ptr %_M_parent.i.i.i.i.i, align 8 - %add.ptr.i.i.i.i.i189 = getelementptr inbounds i8, ptr %155, i64 16 + %add.ptr.i.i.i.i.i187 = getelementptr inbounds i8, ptr %155, i64 16 %cmp.not9.i.i.i.i.i = icmp eq ptr %162, null br i1 %cmp.not9.i.i.i.i.i, label %if.then.i, label %while.body.i.i.i.i.i while.body.i.i.i.i.i: ; preds = %if.end205, %if.end.i.i.i.i.i %__x.addr.011.i.i.i.i.i = phi ptr [ %__x.addr.1.i.i.i.i.i, %if.end.i.i.i.i.i ], [ %162, %if.end205 ] - %__y.addr.010.i.i.i.i.i = phi ptr [ %__y.addr.1.i.i.i.i.i, %if.end.i.i.i.i.i ], [ %add.ptr.i.i.i.i.i189, %if.end205 ] + %__y.addr.010.i.i.i.i.i = phi ptr [ %__y.addr.1.i.i.i.i.i, %if.end.i.i.i.i.i ], [ %add.ptr.i.i.i.i.i187, %if.end205 ] %_M_storage.i.i.i.i.i.i.i = getelementptr inbounds i8, ptr %__x.addr.011.i.i.i.i.i, i64 32 %163 = load i32, ptr %_M_storage.i.i.i.i.i.i.i, align 4 %cmp.i.i.i.i.i.i.i = icmp slt i32 %163, %and.i.i.i.i @@ -16931,14 +16931,14 @@ if.end.i.i.i.i.i: ; preds = %if.else.i.i.i.i.i, br i1 %cmp.not.i.i.i.i.i, label %_ZNKSt8_Rb_treeIN7openvdb5v11_04math5CoordESt4pairIKS3_NS1_4tree8RootNodeINS6_12InternalNodeINS8_INS6_8LeafNodeINS1_9ValueMaskELj3EEELj4EEELj5EEEE10NodeStructEESt10_Select1stISG_ESt4lessIS3_ESaISG_EE14_M_lower_boundEPKSt13_Rb_tree_nodeISG_EPKSt18_Rb_tree_node_baseRS5_.exit.i.i.i.i, label %while.body.i.i.i.i.i, !llvm.loop !135 _ZNKSt8_Rb_treeIN7openvdb5v11_04math5CoordESt4pairIKS3_NS1_4tree8RootNodeINS6_12InternalNodeINS8_INS6_8LeafNodeINS1_9ValueMaskELj3EEELj4EEELj5EEEE10NodeStructEESt10_Select1stISG_ESt4lessIS3_ESaISG_EE14_M_lower_boundEPKSt13_Rb_tree_nodeISG_EPKSt18_Rb_tree_node_baseRS5_.exit.i.i.i.i: ; preds = %if.end.i.i.i.i.i - %cmp.i.i.i.i.i = icmp eq ptr %__y.addr.1.i.i.i.i.i, %add.ptr.i.i.i.i.i189 - br i1 %cmp.i.i.i.i.i, label %while.body.i.i.i.i.i207.preheader, label %lor.lhs.false.i.i.i.i + %cmp.i.i.i.i.i = icmp eq ptr %__y.addr.1.i.i.i.i.i, %add.ptr.i.i.i.i.i187 + br i1 %cmp.i.i.i.i.i, label %while.body.i.i.i.i.i205.preheader, label %lor.lhs.false.i.i.i.i lor.lhs.false.i.i.i.i: ; preds = %_ZNKSt8_Rb_treeIN7openvdb5v11_04math5CoordESt4pairIKS3_NS1_4tree8RootNodeINS6_12InternalNodeINS8_INS6_8LeafNodeINS1_9ValueMaskELj3EEELj4EEELj5EEEE10NodeStructEESt10_Select1stISG_ESt4lessIS3_ESaISG_EE14_M_lower_boundEPKSt13_Rb_tree_nodeISG_EPKSt18_Rb_tree_node_baseRS5_.exit.i.i.i.i %_M_storage.i.i.i3.i.i.i.i = getelementptr inbounds i8, ptr %__y.addr.1.i.i.i.i.i, i64 32 %166 = load i32, ptr %_M_storage.i.i.i3.i.i.i.i, align 4 - %cmp.i.i.i.i.i.i190 = icmp slt i32 %and.i.i.i.i, %166 - br i1 %cmp.i.i.i.i.i.i190, label %while.body.i.i.i.i.i207.preheader, label %cond.false.i.i.i.i.i.i + %cmp.i.i.i.i.i.i188 = icmp slt i32 %and.i.i.i.i, %166 + br i1 %cmp.i.i.i.i.i.i188, label %while.body.i.i.i.i.i205.preheader, label %cond.false.i.i.i.i.i.i cond.false.i.i.i.i.i.i: ; preds = %lor.lhs.false.i.i.i.i %cmp5.i.i.i.i.i.i = icmp sgt i32 %and.i.i.i.i, %166 @@ -16948,7 +16948,7 @@ cond.false7.i.i.i.i.i.i: ; preds = %cond.false.i.i.i.i. %arrayidx.i.i.i5.i.i.i.i.i.i = getelementptr inbounds i8, ptr %__y.addr.1.i.i.i.i.i, i64 36 %167 = load i32, ptr %arrayidx.i.i.i5.i.i.i.i.i.i, align 4 %cmp10.i.i.i.i.i.i = icmp slt i32 %and4.i.i.i.i, %167 - br i1 %cmp10.i.i.i.i.i.i, label %while.body.i.i.i.i.i207.preheader, label %cond.false12.i.i.i.i.i.i + br i1 %cmp10.i.i.i.i.i.i, label %while.body.i.i.i.i.i205.preheader, label %cond.false12.i.i.i.i.i.i cond.false12.i.i.i.i.i.i: ; preds = %cond.false7.i.i.i.i.i.i %cmp15.i.i.i.i.i.i = icmp sgt i32 %and4.i.i.i.i, %167 @@ -16958,26 +16958,26 @@ _ZNKSt4lessIN7openvdb5v11_04math5CoordEEclERKS3_S6_.exit.i.i.i.i: ; preds = %con %arrayidx.i.i.i9.i.i.i.i.i.i = getelementptr inbounds i8, ptr %__y.addr.1.i.i.i.i.i, i64 40 %168 = load i32, ptr %arrayidx.i.i.i9.i.i.i.i.i.i, align 4 %cmp20.i.i.i.i.i.i = icmp slt i32 %and7.i.i.i.i, %168 - br i1 %cmp20.i.i.i.i.i.i, label %while.body.i.i.i.i.i207.preheader, label %invoke.cont206 + br i1 %cmp20.i.i.i.i.i.i, label %while.body.i.i.i.i.i205.preheader, label %invoke.cont206 invoke.cont206: ; preds = %cond.false.i.i.i.i.i.i, %cond.false12.i.i.i.i.i.i, %_ZNKSt4lessIN7openvdb5v11_04math5CoordEEclERKS3_S6_.exit.i.i.i.i %second.i.i = getelementptr inbounds i8, ptr %__y.addr.1.i.i.i.i.i, i64 48 %169 = load ptr, ptr %second.i.i, align 8 %tobool208.not = icmp eq ptr %169, null - br i1 %tobool208.not, label %while.body.i.i.i.i.i207.preheader, label %if.then209 + br i1 %tobool208.not, label %while.body.i.i.i.i.i205.preheader, label %if.then209 -while.body.i.i.i.i.i207.preheader: ; preds = %cond.false7.i.i.i.i.i.i, %lor.lhs.false.i.i.i.i, %_ZNKSt8_Rb_treeIN7openvdb5v11_04math5CoordESt4pairIKS3_NS1_4tree8RootNodeINS6_12InternalNodeINS8_INS6_8LeafNodeINS1_9ValueMaskELj3EEELj4EEELj5EEEE10NodeStructEESt10_Select1stISG_ESt4lessIS3_ESaISG_EE14_M_lower_boundEPKSt13_Rb_tree_nodeISG_EPKSt18_Rb_tree_node_baseRS5_.exit.i.i.i.i, %_ZNKSt4lessIN7openvdb5v11_04math5CoordEEclERKS3_S6_.exit.i.i.i.i, %invoke.cont206 - br label %while.body.i.i.i.i.i207 +while.body.i.i.i.i.i205.preheader: ; preds = %cond.false7.i.i.i.i.i.i, %lor.lhs.false.i.i.i.i, %_ZNKSt8_Rb_treeIN7openvdb5v11_04math5CoordESt4pairIKS3_NS1_4tree8RootNodeINS6_12InternalNodeINS8_INS6_8LeafNodeINS1_9ValueMaskELj3EEELj4EEELj5EEEE10NodeStructEESt10_Select1stISG_ESt4lessIS3_ESaISG_EE14_M_lower_boundEPKSt13_Rb_tree_nodeISG_EPKSt18_Rb_tree_node_baseRS5_.exit.i.i.i.i, %_ZNKSt4lessIN7openvdb5v11_04math5CoordEEclERKS3_S6_.exit.i.i.i.i, %invoke.cont206 + br label %while.body.i.i.i.i.i205 if.then209: ; preds = %invoke.cont206 %mBackground.i.i = getelementptr inbounds i8, ptr %155, i64 56 - invoke void @_ZN7openvdb5v11_05tools11TreeToMergeINS0_4tree4TreeINS3_8RootNodeINS3_12InternalNodeINS6_INS3_8LeafNodeINS0_9ValueMaskELj3EEELj4EEELj5EEEEEEEE19stealOrDeepCopyNodeISB_EESt10unique_ptrIT_St14default_deleteISH_EERKNS0_4math5CoordERKb(ptr nonnull sret(%"class.std::unique_ptr.48") align 8 %childPtr, ptr noundef nonnull align 8 dereferenceable(33) %__begin1189.sroa.0.0701, ptr noundef nonnull align 4 dereferenceable(12) %add.ptr.i184, ptr noundef nonnull align 1 dereferenceable(1) %mBackground.i.i) + invoke void @_ZN7openvdb5v11_05tools11TreeToMergeINS0_4tree4TreeINS3_8RootNodeINS3_12InternalNodeINS6_INS3_8LeafNodeINS0_9ValueMaskELj3EEELj4EEELj5EEEEEEEE19stealOrDeepCopyNodeISB_EESt10unique_ptrIT_St14default_deleteISH_EERKNS0_4math5CoordERKb(ptr nonnull sret(%"class.std::unique_ptr.48") align 8 %childPtr, ptr noundef nonnull align 8 dereferenceable(33) %__begin1189.sroa.0.0700, ptr noundef nonnull align 4 dereferenceable(12) %add.ptr.i182, ptr noundef nonnull align 1 dereferenceable(1) %mBackground.i.i) to label %invoke.cont210 unwind label %lpad.loopexit.split-lp.loopexit invoke.cont210: ; preds = %if.then209 %170 = load ptr, ptr %childPtr, align 8 - %cmp.i192.not = icmp eq ptr %170, null - br i1 %cmp.i192.not, label %_ZNSt10unique_ptrIN7openvdb5v11_04tree12InternalNodeINS3_INS2_8LeafNodeINS1_9ValueMaskELj3EEELj4EEELj5EEESt14default_deleteIS8_EED2Ev.exit, label %if.then212 + %cmp.i190.not = icmp eq ptr %170, null + br i1 %cmp.i190.not, label %_ZNSt10unique_ptrIN7openvdb5v11_04tree12InternalNodeINS3_INS2_8LeafNodeINS1_9ValueMaskELj3EEELj4EEELj5EEESt14default_deleteIS8_EED2Ev.exit, label %if.then212 if.then212: ; preds = %invoke.cont210 %frombool.i = zext i1 %call187 to i8 @@ -17014,84 +17014,84 @@ _ZNSt10unique_ptrIN7openvdb5v11_04tree12InternalNodeINS3_INS2_8LeafNodeINS1_9Val store ptr null, ptr %childPtr, align 8 br label %for.inc254 -while.body.i.i.i.i.i207: ; preds = %while.body.i.i.i.i.i207.preheader, %if.end.i.i.i.i.i222 - %__x.addr.011.i.i.i.i.i208 = phi ptr [ %__x.addr.1.i.i.i.i.i226, %if.end.i.i.i.i.i222 ], [ %162, %while.body.i.i.i.i.i207.preheader ] - %__y.addr.010.i.i.i.i.i209 = phi ptr [ %__y.addr.1.i.i.i.i.i224, %if.end.i.i.i.i.i222 ], [ %add.ptr.i.i.i.i.i189, %while.body.i.i.i.i.i207.preheader ] - %_M_storage.i.i.i.i.i.i.i210 = getelementptr inbounds i8, ptr %__x.addr.011.i.i.i.i.i208, i64 32 - %174 = load i32, ptr %_M_storage.i.i.i.i.i.i.i210, align 4 - %cmp.i.i.i.i.i.i.i211 = icmp slt i32 %174, %and.i.i.i.i - br i1 %cmp.i.i.i.i.i.i.i211, label %if.else.i.i.i.i.i248, label %cond.false.i.i.i.i.i.i.i212 - -cond.false.i.i.i.i.i.i.i212: ; preds = %while.body.i.i.i.i.i207 - %cmp5.i.i.i.i.i.i.i213 = icmp sgt i32 %174, %and.i.i.i.i - br i1 %cmp5.i.i.i.i.i.i.i213, label %if.end.i.i.i.i.i222, label %cond.false7.i.i.i.i.i.i.i214 - -cond.false7.i.i.i.i.i.i.i214: ; preds = %cond.false.i.i.i.i.i.i.i212 - %arrayidx.i.i.i.i.i.i.i.i.i.i215 = getelementptr inbounds i8, ptr %__x.addr.011.i.i.i.i.i208, i64 36 - %175 = load i32, ptr %arrayidx.i.i.i.i.i.i.i.i.i.i215, align 4 - %cmp10.i.i.i.i.i.i.i216 = icmp slt i32 %175, %and4.i.i.i.i - br i1 %cmp10.i.i.i.i.i.i.i216, label %if.else.i.i.i.i.i248, label %cond.false12.i.i.i.i.i.i.i217 - -cond.false12.i.i.i.i.i.i.i217: ; preds = %cond.false7.i.i.i.i.i.i.i214 - %cmp15.i.i.i.i.i.i.i218 = icmp sgt i32 %175, %and4.i.i.i.i - br i1 %cmp15.i.i.i.i.i.i.i218, label %if.end.i.i.i.i.i222, label %_ZNKSt4lessIN7openvdb5v11_04math5CoordEEclERKS3_S6_.exit.i.i.i.i.i219 - -_ZNKSt4lessIN7openvdb5v11_04math5CoordEEclERKS3_S6_.exit.i.i.i.i.i219: ; preds = %cond.false12.i.i.i.i.i.i.i217 - %arrayidx.i.i.i8.i.i.i.i.i.i.i220 = getelementptr inbounds i8, ptr %__x.addr.011.i.i.i.i.i208, i64 40 - %176 = load i32, ptr %arrayidx.i.i.i8.i.i.i.i.i.i.i220, align 4 - %cmp20.i.i.i.i.i.i.i221 = icmp slt i32 %176, %and7.i.i.i.i - br i1 %cmp20.i.i.i.i.i.i.i221, label %if.else.i.i.i.i.i248, label %if.end.i.i.i.i.i222 - -if.else.i.i.i.i.i248: ; preds = %_ZNKSt4lessIN7openvdb5v11_04math5CoordEEclERKS3_S6_.exit.i.i.i.i.i219, %cond.false7.i.i.i.i.i.i.i214, %while.body.i.i.i.i.i207 - br label %if.end.i.i.i.i.i222 - -if.end.i.i.i.i.i222: ; preds = %if.else.i.i.i.i.i248, %_ZNKSt4lessIN7openvdb5v11_04math5CoordEEclERKS3_S6_.exit.i.i.i.i.i219, %cond.false12.i.i.i.i.i.i.i217, %cond.false.i.i.i.i.i.i.i212 - %.sink.i.i.i.i.i223 = phi i64 [ 24, %if.else.i.i.i.i.i248 ], [ 16, %cond.false12.i.i.i.i.i.i.i217 ], [ 16, %cond.false.i.i.i.i.i.i.i212 ], [ 16, %_ZNKSt4lessIN7openvdb5v11_04math5CoordEEclERKS3_S6_.exit.i.i.i.i.i219 ] - %__y.addr.1.i.i.i.i.i224 = phi ptr [ %__y.addr.010.i.i.i.i.i209, %if.else.i.i.i.i.i248 ], [ %__x.addr.011.i.i.i.i.i208, %cond.false12.i.i.i.i.i.i.i217 ], [ %__x.addr.011.i.i.i.i.i208, %cond.false.i.i.i.i.i.i.i212 ], [ %__x.addr.011.i.i.i.i.i208, %_ZNKSt4lessIN7openvdb5v11_04math5CoordEEclERKS3_S6_.exit.i.i.i.i.i219 ] - %_M_right.i.i.i.i.i.i225 = getelementptr inbounds i8, ptr %__x.addr.011.i.i.i.i.i208, i64 %.sink.i.i.i.i.i223 - %__x.addr.1.i.i.i.i.i226 = load ptr, ptr %_M_right.i.i.i.i.i.i225, align 8 - %cmp.not.i.i.i.i.i227 = icmp eq ptr %__x.addr.1.i.i.i.i.i226, null - br i1 %cmp.not.i.i.i.i.i227, label %_ZNKSt8_Rb_treeIN7openvdb5v11_04math5CoordESt4pairIKS3_NS1_4tree8RootNodeINS6_12InternalNodeINS8_INS6_8LeafNodeINS1_9ValueMaskELj3EEELj4EEELj5EEEE10NodeStructEESt10_Select1stISG_ESt4lessIS3_ESaISG_EE14_M_lower_boundEPKSt13_Rb_tree_nodeISG_EPKSt18_Rb_tree_node_baseRS5_.exit.i.i.i.i228, label %while.body.i.i.i.i.i207, !llvm.loop !135 - -_ZNKSt8_Rb_treeIN7openvdb5v11_04math5CoordESt4pairIKS3_NS1_4tree8RootNodeINS6_12InternalNodeINS8_INS6_8LeafNodeINS1_9ValueMaskELj3EEELj4EEELj5EEEE10NodeStructEESt10_Select1stISG_ESt4lessIS3_ESaISG_EE14_M_lower_boundEPKSt13_Rb_tree_nodeISG_EPKSt18_Rb_tree_node_baseRS5_.exit.i.i.i.i228: ; preds = %if.end.i.i.i.i.i222 - %cmp.i.i.i.i.i229 = icmp eq ptr %__y.addr.1.i.i.i.i.i224, %add.ptr.i.i.i.i.i189 - br i1 %cmp.i.i.i.i.i229, label %if.then.i, label %lor.lhs.false.i.i.i.i230 - -lor.lhs.false.i.i.i.i230: ; preds = %_ZNKSt8_Rb_treeIN7openvdb5v11_04math5CoordESt4pairIKS3_NS1_4tree8RootNodeINS6_12InternalNodeINS8_INS6_8LeafNodeINS1_9ValueMaskELj3EEELj4EEELj5EEEE10NodeStructEESt10_Select1stISG_ESt4lessIS3_ESaISG_EE14_M_lower_boundEPKSt13_Rb_tree_nodeISG_EPKSt18_Rb_tree_node_baseRS5_.exit.i.i.i.i228 - %_M_storage.i.i.i3.i.i.i.i231 = getelementptr inbounds i8, ptr %__y.addr.1.i.i.i.i.i224, i64 32 - %177 = load i32, ptr %_M_storage.i.i.i3.i.i.i.i231, align 4 - %cmp.i.i.i.i.i.i232 = icmp slt i32 %and.i.i.i.i, %177 - br i1 %cmp.i.i.i.i.i.i232, label %if.then.i, label %cond.false.i.i.i.i.i.i233 - -cond.false.i.i.i.i.i.i233: ; preds = %lor.lhs.false.i.i.i.i230 - %cmp5.i.i.i.i.i.i234 = icmp sgt i32 %and.i.i.i.i, %177 - br i1 %cmp5.i.i.i.i.i.i234, label %if.else.i, label %cond.false7.i.i.i.i.i.i235 - -cond.false7.i.i.i.i.i.i235: ; preds = %cond.false.i.i.i.i.i.i233 - %arrayidx.i.i.i5.i.i.i.i.i.i236 = getelementptr inbounds i8, ptr %__y.addr.1.i.i.i.i.i224, i64 36 - %178 = load i32, ptr %arrayidx.i.i.i5.i.i.i.i.i.i236, align 4 - %cmp10.i.i.i.i.i.i237 = icmp slt i32 %and4.i.i.i.i, %178 - br i1 %cmp10.i.i.i.i.i.i237, label %if.then.i, label %cond.false12.i.i.i.i.i.i238 - -cond.false12.i.i.i.i.i.i238: ; preds = %cond.false7.i.i.i.i.i.i235 - %cmp15.i.i.i.i.i.i239 = icmp sgt i32 %and4.i.i.i.i, %178 - br i1 %cmp15.i.i.i.i.i.i239, label %if.else.i, label %_ZNKSt4lessIN7openvdb5v11_04math5CoordEEclERKS3_S6_.exit.i.i.i.i240 - -_ZNKSt4lessIN7openvdb5v11_04math5CoordEEclERKS3_S6_.exit.i.i.i.i240: ; preds = %cond.false12.i.i.i.i.i.i238 - %arrayidx.i.i.i9.i.i.i.i.i.i241 = getelementptr inbounds i8, ptr %__y.addr.1.i.i.i.i.i224, i64 40 - %179 = load i32, ptr %arrayidx.i.i.i9.i.i.i.i.i.i241, align 4 - %cmp20.i.i.i.i.i.i242 = icmp slt i32 %and7.i.i.i.i, %179 - br i1 %cmp20.i.i.i.i.i.i242, label %if.then.i, label %if.else.i - -if.then.i: ; preds = %if.end205, %_ZNKSt4lessIN7openvdb5v11_04math5CoordEEclERKS3_S6_.exit.i.i.i.i240, %cond.false7.i.i.i.i.i.i235, %lor.lhs.false.i.i.i.i230, %_ZNKSt8_Rb_treeIN7openvdb5v11_04math5CoordESt4pairIKS3_NS1_4tree8RootNodeINS6_12InternalNodeINS8_INS6_8LeafNodeINS1_9ValueMaskELj3EEELj4EEELj5EEEE10NodeStructEESt10_Select1stISG_ESt4lessIS3_ESaISG_EE14_M_lower_boundEPKSt13_Rb_tree_nodeISG_EPKSt18_Rb_tree_node_baseRS5_.exit.i.i.i.i228 - %mBackground.i246 = getelementptr inbounds i8, ptr %155, i64 56 - %180 = load i8, ptr %mBackground.i246, align 8 - %frombool.i247 = and i8 %180, 1 +while.body.i.i.i.i.i205: ; preds = %while.body.i.i.i.i.i205.preheader, %if.end.i.i.i.i.i220 + %__x.addr.011.i.i.i.i.i206 = phi ptr [ %__x.addr.1.i.i.i.i.i224, %if.end.i.i.i.i.i220 ], [ %162, %while.body.i.i.i.i.i205.preheader ] + %__y.addr.010.i.i.i.i.i207 = phi ptr [ %__y.addr.1.i.i.i.i.i222, %if.end.i.i.i.i.i220 ], [ %add.ptr.i.i.i.i.i187, %while.body.i.i.i.i.i205.preheader ] + %_M_storage.i.i.i.i.i.i.i208 = getelementptr inbounds i8, ptr %__x.addr.011.i.i.i.i.i206, i64 32 + %174 = load i32, ptr %_M_storage.i.i.i.i.i.i.i208, align 4 + %cmp.i.i.i.i.i.i.i209 = icmp slt i32 %174, %and.i.i.i.i + br i1 %cmp.i.i.i.i.i.i.i209, label %if.else.i.i.i.i.i246, label %cond.false.i.i.i.i.i.i.i210 + +cond.false.i.i.i.i.i.i.i210: ; preds = %while.body.i.i.i.i.i205 + %cmp5.i.i.i.i.i.i.i211 = icmp sgt i32 %174, %and.i.i.i.i + br i1 %cmp5.i.i.i.i.i.i.i211, label %if.end.i.i.i.i.i220, label %cond.false7.i.i.i.i.i.i.i212 + +cond.false7.i.i.i.i.i.i.i212: ; preds = %cond.false.i.i.i.i.i.i.i210 + %arrayidx.i.i.i.i.i.i.i.i.i.i213 = getelementptr inbounds i8, ptr %__x.addr.011.i.i.i.i.i206, i64 36 + %175 = load i32, ptr %arrayidx.i.i.i.i.i.i.i.i.i.i213, align 4 + %cmp10.i.i.i.i.i.i.i214 = icmp slt i32 %175, %and4.i.i.i.i + br i1 %cmp10.i.i.i.i.i.i.i214, label %if.else.i.i.i.i.i246, label %cond.false12.i.i.i.i.i.i.i215 + +cond.false12.i.i.i.i.i.i.i215: ; preds = %cond.false7.i.i.i.i.i.i.i212 + %cmp15.i.i.i.i.i.i.i216 = icmp sgt i32 %175, %and4.i.i.i.i + br i1 %cmp15.i.i.i.i.i.i.i216, label %if.end.i.i.i.i.i220, label %_ZNKSt4lessIN7openvdb5v11_04math5CoordEEclERKS3_S6_.exit.i.i.i.i.i217 + +_ZNKSt4lessIN7openvdb5v11_04math5CoordEEclERKS3_S6_.exit.i.i.i.i.i217: ; preds = %cond.false12.i.i.i.i.i.i.i215 + %arrayidx.i.i.i8.i.i.i.i.i.i.i218 = getelementptr inbounds i8, ptr %__x.addr.011.i.i.i.i.i206, i64 40 + %176 = load i32, ptr %arrayidx.i.i.i8.i.i.i.i.i.i.i218, align 4 + %cmp20.i.i.i.i.i.i.i219 = icmp slt i32 %176, %and7.i.i.i.i + br i1 %cmp20.i.i.i.i.i.i.i219, label %if.else.i.i.i.i.i246, label %if.end.i.i.i.i.i220 + +if.else.i.i.i.i.i246: ; preds = %_ZNKSt4lessIN7openvdb5v11_04math5CoordEEclERKS3_S6_.exit.i.i.i.i.i217, %cond.false7.i.i.i.i.i.i.i212, %while.body.i.i.i.i.i205 + br label %if.end.i.i.i.i.i220 + +if.end.i.i.i.i.i220: ; preds = %if.else.i.i.i.i.i246, %_ZNKSt4lessIN7openvdb5v11_04math5CoordEEclERKS3_S6_.exit.i.i.i.i.i217, %cond.false12.i.i.i.i.i.i.i215, %cond.false.i.i.i.i.i.i.i210 + %.sink.i.i.i.i.i221 = phi i64 [ 24, %if.else.i.i.i.i.i246 ], [ 16, %cond.false12.i.i.i.i.i.i.i215 ], [ 16, %cond.false.i.i.i.i.i.i.i210 ], [ 16, %_ZNKSt4lessIN7openvdb5v11_04math5CoordEEclERKS3_S6_.exit.i.i.i.i.i217 ] + %__y.addr.1.i.i.i.i.i222 = phi ptr [ %__y.addr.010.i.i.i.i.i207, %if.else.i.i.i.i.i246 ], [ %__x.addr.011.i.i.i.i.i206, %cond.false12.i.i.i.i.i.i.i215 ], [ %__x.addr.011.i.i.i.i.i206, %cond.false.i.i.i.i.i.i.i210 ], [ %__x.addr.011.i.i.i.i.i206, %_ZNKSt4lessIN7openvdb5v11_04math5CoordEEclERKS3_S6_.exit.i.i.i.i.i217 ] + %_M_right.i.i.i.i.i.i223 = getelementptr inbounds i8, ptr %__x.addr.011.i.i.i.i.i206, i64 %.sink.i.i.i.i.i221 + %__x.addr.1.i.i.i.i.i224 = load ptr, ptr %_M_right.i.i.i.i.i.i223, align 8 + %cmp.not.i.i.i.i.i225 = icmp eq ptr %__x.addr.1.i.i.i.i.i224, null + br i1 %cmp.not.i.i.i.i.i225, label %_ZNKSt8_Rb_treeIN7openvdb5v11_04math5CoordESt4pairIKS3_NS1_4tree8RootNodeINS6_12InternalNodeINS8_INS6_8LeafNodeINS1_9ValueMaskELj3EEELj4EEELj5EEEE10NodeStructEESt10_Select1stISG_ESt4lessIS3_ESaISG_EE14_M_lower_boundEPKSt13_Rb_tree_nodeISG_EPKSt18_Rb_tree_node_baseRS5_.exit.i.i.i.i226, label %while.body.i.i.i.i.i205, !llvm.loop !135 + +_ZNKSt8_Rb_treeIN7openvdb5v11_04math5CoordESt4pairIKS3_NS1_4tree8RootNodeINS6_12InternalNodeINS8_INS6_8LeafNodeINS1_9ValueMaskELj3EEELj4EEELj5EEEE10NodeStructEESt10_Select1stISG_ESt4lessIS3_ESaISG_EE14_M_lower_boundEPKSt13_Rb_tree_nodeISG_EPKSt18_Rb_tree_node_baseRS5_.exit.i.i.i.i226: ; preds = %if.end.i.i.i.i.i220 + %cmp.i.i.i.i.i227 = icmp eq ptr %__y.addr.1.i.i.i.i.i222, %add.ptr.i.i.i.i.i187 + br i1 %cmp.i.i.i.i.i227, label %if.then.i, label %lor.lhs.false.i.i.i.i228 + +lor.lhs.false.i.i.i.i228: ; preds = %_ZNKSt8_Rb_treeIN7openvdb5v11_04math5CoordESt4pairIKS3_NS1_4tree8RootNodeINS6_12InternalNodeINS8_INS6_8LeafNodeINS1_9ValueMaskELj3EEELj4EEELj5EEEE10NodeStructEESt10_Select1stISG_ESt4lessIS3_ESaISG_EE14_M_lower_boundEPKSt13_Rb_tree_nodeISG_EPKSt18_Rb_tree_node_baseRS5_.exit.i.i.i.i226 + %_M_storage.i.i.i3.i.i.i.i229 = getelementptr inbounds i8, ptr %__y.addr.1.i.i.i.i.i222, i64 32 + %177 = load i32, ptr %_M_storage.i.i.i3.i.i.i.i229, align 4 + %cmp.i.i.i.i.i.i230 = icmp slt i32 %and.i.i.i.i, %177 + br i1 %cmp.i.i.i.i.i.i230, label %if.then.i, label %cond.false.i.i.i.i.i.i231 + +cond.false.i.i.i.i.i.i231: ; preds = %lor.lhs.false.i.i.i.i228 + %cmp5.i.i.i.i.i.i232 = icmp sgt i32 %and.i.i.i.i, %177 + br i1 %cmp5.i.i.i.i.i.i232, label %if.else.i, label %cond.false7.i.i.i.i.i.i233 + +cond.false7.i.i.i.i.i.i233: ; preds = %cond.false.i.i.i.i.i.i231 + %arrayidx.i.i.i5.i.i.i.i.i.i234 = getelementptr inbounds i8, ptr %__y.addr.1.i.i.i.i.i222, i64 36 + %178 = load i32, ptr %arrayidx.i.i.i5.i.i.i.i.i.i234, align 4 + %cmp10.i.i.i.i.i.i235 = icmp slt i32 %and4.i.i.i.i, %178 + br i1 %cmp10.i.i.i.i.i.i235, label %if.then.i, label %cond.false12.i.i.i.i.i.i236 + +cond.false12.i.i.i.i.i.i236: ; preds = %cond.false7.i.i.i.i.i.i233 + %cmp15.i.i.i.i.i.i237 = icmp sgt i32 %and4.i.i.i.i, %178 + br i1 %cmp15.i.i.i.i.i.i237, label %if.else.i, label %_ZNKSt4lessIN7openvdb5v11_04math5CoordEEclERKS3_S6_.exit.i.i.i.i238 + +_ZNKSt4lessIN7openvdb5v11_04math5CoordEEclERKS3_S6_.exit.i.i.i.i238: ; preds = %cond.false12.i.i.i.i.i.i236 + %arrayidx.i.i.i9.i.i.i.i.i.i239 = getelementptr inbounds i8, ptr %__y.addr.1.i.i.i.i.i222, i64 40 + %179 = load i32, ptr %arrayidx.i.i.i9.i.i.i.i.i.i239, align 4 + %cmp20.i.i.i.i.i.i240 = icmp slt i32 %and7.i.i.i.i, %179 + br i1 %cmp20.i.i.i.i.i.i240, label %if.then.i, label %if.else.i + +if.then.i: ; preds = %if.end205, %_ZNKSt4lessIN7openvdb5v11_04math5CoordEEclERKS3_S6_.exit.i.i.i.i238, %cond.false7.i.i.i.i.i.i233, %lor.lhs.false.i.i.i.i228, %_ZNKSt8_Rb_treeIN7openvdb5v11_04math5CoordESt4pairIKS3_NS1_4tree8RootNodeINS6_12InternalNodeINS8_INS6_8LeafNodeINS1_9ValueMaskELj3EEELj4EEELj5EEEE10NodeStructEESt10_Select1stISG_ESt4lessIS3_ESaISG_EE14_M_lower_boundEPKSt13_Rb_tree_nodeISG_EPKSt18_Rb_tree_node_baseRS5_.exit.i.i.i.i226 + %mBackground.i244 = getelementptr inbounds i8, ptr %155, i64 56 + %180 = load i8, ptr %mBackground.i244, align 8 + %frombool.i245 = and i8 %180, 1 br label %invoke.cont223 -if.else.i: ; preds = %_ZNKSt4lessIN7openvdb5v11_04math5CoordEEclERKS3_S6_.exit.i.i.i.i240, %cond.false12.i.i.i.i.i.i238, %cond.false.i.i.i.i.i.i233 - %second.i.i243 = getelementptr inbounds i8, ptr %__y.addr.1.i.i.i.i.i224, i64 48 - %181 = load ptr, ptr %second.i.i243, align 8 +if.else.i: ; preds = %_ZNKSt4lessIN7openvdb5v11_04math5CoordEEclERKS3_S6_.exit.i.i.i.i238, %cond.false12.i.i.i.i.i.i236, %cond.false.i.i.i.i.i.i231 + %second.i.i241 = getelementptr inbounds i8, ptr %__y.addr.1.i.i.i.i.i222, i64 48 + %181 = load ptr, ptr %second.i.i241, align 8 %cmp.i.i.not.i = icmp eq ptr %181, null br i1 %cmp.i.i.not.i, label %if.end9.i, label %if.then6.i @@ -17116,7 +17116,7 @@ if.then6.i: ; preds = %if.else.i %cmp.i.not.i.i.i.i = icmp eq i64 %and2.i.i.i.i.i, 0 %idxprom.i.i = zext nneg i32 %add8.i.i.i to i64 %arrayidx.i.i = getelementptr inbounds [32768 x %"class.openvdb::v11_0::tree::NodeUnion"], ptr %181, i64 0, i64 %idxprom.i.i - br i1 %cmp.i.not.i.i.i.i, label %if.then.i.i, label %if.end.i.i244 + br i1 %cmp.i.not.i.i.i.i, label %if.then.i.i, label %if.end.i.i242 if.then.i.i: ; preds = %if.then6.i %185 = load i8, ptr %arrayidx.i.i, align 1 @@ -17128,7 +17128,7 @@ if.then.i.i: ; preds = %if.then6.i %cmp.i.i.i.i = icmp ne i64 %and2.i.i.i.i, 0 br label %invoke.cont223 -if.end.i.i244: ; preds = %if.then6.i +if.end.i.i242: ; preds = %if.then6.i %187 = load ptr, ptr %arrayidx.i.i, align 8 %188 = shl i32 %156, 5 %shl.i.i6.i.i = and i32 %188, 3840 @@ -17152,7 +17152,7 @@ if.end.i.i244: ; preds = %if.then6.i %arrayidx.i.i.i = getelementptr inbounds [4096 x %"class.openvdb::v11_0::tree::NodeUnion.703"], ptr %187, i64 0, i64 %idxprom.i.i.i br i1 %cmp.i.not.i.i.i.i.i, label %if.then.i.i.i, label %if.end.i.i.i -if.then.i.i.i: ; preds = %if.end.i.i244 +if.then.i.i.i: ; preds = %if.end.i.i242 %191 = load i8, ptr %arrayidx.i.i.i, align 1 %frombool.i.i.i = and i8 %191, 1 %mValueMask.i.i.i.i = getelementptr inbounds i8, ptr %187, i64 33280 @@ -17162,7 +17162,7 @@ if.then.i.i.i: ; preds = %if.end.i.i244 %cmp.i.i.i.i6.i = icmp ne i64 %and2.i.i.i9.i.i, 0 br label %invoke.cont223 -if.end.i.i.i: ; preds = %if.end.i.i244 +if.end.i.i.i: ; preds = %if.end.i.i242 %193 = load ptr, ptr %arrayidx.i.i.i, align 8 %shl.i.i6.i.i.i = and i32 %156, 7 %and2.i.i7.i.i.i = shl i32 %158, 3 @@ -17180,102 +17180,102 @@ if.end.i.i.i: ; preds = %if.end.i.i244 br label %invoke.cont223 if.end9.i: ; preds = %if.else.i - %tile.i.i = getelementptr inbounds i8, ptr %__y.addr.1.i.i.i.i.i224, i64 56 + %tile.i.i = getelementptr inbounds i8, ptr %__y.addr.1.i.i.i.i.i222, i64 56 %196 = load i8, ptr %tile.i.i, align 1 %frombool13.i = and i8 %196, 1 - %active.i.i.i = getelementptr inbounds i8, ptr %__y.addr.1.i.i.i.i.i224, i64 57 + %active.i.i.i = getelementptr inbounds i8, ptr %__y.addr.1.i.i.i.i.i222, i64 57 %197 = load i8, ptr %active.i.i.i, align 1 %tobool.i.i.i = trunc i8 %197 to i1 br label %invoke.cont223 invoke.cont223: ; preds = %if.end9.i, %if.end.i.i.i, %if.then.i.i.i, %if.then.i.i, %if.then.i - %mergeValue.0 = phi i8 [ %frombool.i247, %if.then.i ], [ %frombool13.i, %if.end9.i ], [ %frombool.i.i, %if.then.i.i ], [ %frombool.i.i.i, %if.then.i.i.i ], [ %frombool.i.i.i.i, %if.end.i.i.i ] - %retval.0.i245 = phi i1 [ false, %if.then.i ], [ %tobool.i.i.i, %if.end9.i ], [ %cmp.i.i.i.i, %if.then.i.i ], [ %cmp.i.i.i.i6.i, %if.then.i.i.i ], [ %cmp.i.i11.i.i.i, %if.end.i.i.i ] - %brmerge = or i1 %call187, %retval.0.i245 + %mergeValue.0 = phi i8 [ %frombool.i245, %if.then.i ], [ %frombool13.i, %if.end9.i ], [ %frombool.i.i, %if.then.i.i ], [ %frombool.i.i.i, %if.then.i.i.i ], [ %frombool.i.i.i.i, %if.end.i.i.i ] + %retval.0.i243 = phi i1 [ false, %if.then.i ], [ %tobool.i.i.i, %if.end9.i ], [ %cmp.i.i.i.i, %if.then.i.i ], [ %cmp.i.i.i.i6.i, %if.then.i.i.i ], [ %cmp.i.i11.i.i.i, %if.end.i.i.i ] + %brmerge = or i1 %call187, %retval.0.i243 %198 = load i8, ptr %value, align 1 - %199 = and i8 %198, 1 - %narrow37 = sub nsw i8 0, %mergeValue.0 - %tobool233 = icmp ne i8 %199, %narrow37 - %frombool234 = zext i1 %tobool233 to i8 - store i8 %frombool234, ptr %value, align 1 - invoke void @_ZN7openvdb5v11_04tree8RootNodeINS1_12InternalNodeINS3_INS1_8LeafNodeINS0_9ValueMaskELj3EEELj4EEELj5EEEE7addTileERKNS0_4math5CoordERKbb(ptr noundef nonnull align 8 dereferenceable(68) %root, ptr noundef nonnull align 4 dereferenceable(12) %add.ptr.i184, ptr noundef nonnull align 1 dereferenceable(1) %value, i1 noundef zeroext %brmerge) + %.masked630 = and i8 %198, 1 + %199 = or i8 %.masked630, %mergeValue.0 + store i8 %199, ptr %value, align 1 + invoke void @_ZN7openvdb5v11_04tree8RootNodeINS1_12InternalNodeINS3_INS1_8LeafNodeINS0_9ValueMaskELj3EEELj4EEELj5EEEE7addTileERKNS0_4math5CoordERKbb(ptr noundef nonnull align 8 dereferenceable(68) %root, ptr noundef nonnull align 4 dereferenceable(12) %add.ptr.i182, ptr noundef nonnull align 1 dereferenceable(1) %value, i1 noundef zeroext %brmerge) to label %if.end245 unwind label %lpad.loopexit if.end245: ; preds = %invoke.cont223 store i8 0, ptr %ref.tmp246, align 1 - invoke void @_ZN7openvdb5v11_05tools11TreeToMergeINS0_4tree4TreeINS3_8RootNodeINS3_12InternalNodeINS6_INS3_8LeafNodeINS0_9ValueMaskELj3EEELj4EEELj5EEEEEEEE7addTileISB_EEvRKNS0_4math5CoordERKbb(ptr noundef nonnull align 8 dereferenceable(33) %__begin1189.sroa.0.0701, ptr noundef nonnull align 4 dereferenceable(12) %add.ptr.i184, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp246, i1 noundef zeroext false) + invoke void @_ZN7openvdb5v11_05tools11TreeToMergeINS0_4tree4TreeINS3_8RootNodeINS3_12InternalNodeINS6_INS3_8LeafNodeINS0_9ValueMaskELj3EEELj4EEELj5EEEEEEEE7addTileISB_EEvRKNS0_4math5CoordERKbb(ptr noundef nonnull align 8 dereferenceable(33) %__begin1189.sroa.0.0700, ptr noundef nonnull align 4 dereferenceable(12) %add.ptr.i182, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp246, i1 noundef zeroext false) to label %for.inc251 unwind label %lpad.loopexit for.inc251: ; preds = %if.end245 - %incdec.ptr.i249 = getelementptr inbounds i8, ptr %__begin1189.sroa.0.0701, i64 40 - %cmp.i186.not = icmp eq ptr %incdec.ptr.i249, %154 - br i1 %cmp.i186.not, label %for.inc254, label %if.end205 + %incdec.ptr.i247 = getelementptr inbounds i8, ptr %__begin1189.sroa.0.0700, i64 40 + %cmp.i184.not = icmp eq ptr %incdec.ptr.i247, %154 + br i1 %cmp.i184.not, label %for.inc254, label %if.end205 for.inc254: ; preds = %for.inc251, %invoke.cont186, %_ZNSt10unique_ptrIN7openvdb5v11_04tree12InternalNodeINS3_INS2_8LeafNodeINS1_9ValueMaskELj3EEELj4EEELj5EEESt14default_deleteIS8_EED2Ev.exit, %for.body176 - %200 = load ptr, ptr %__begin3166.sroa.0.0705, align 8 - %cmp.i183.not = icmp eq ptr %200, null - br i1 %cmp.i183.not, label %for.end256, label %for.body176 + %200 = load ptr, ptr %__begin3166.sroa.0.0704, align 8 + %cmp.i181.not = icmp eq ptr %200, null + br i1 %cmp.i181.not, label %for.end256, label %for.body176 for.end256: ; preds = %for.inc254, %for.end141, %for.end164 - %mBackground.i250 = getelementptr inbounds i8, ptr %root, i64 48 - %201 = load i8, ptr %mBackground.i250, align 8 - %frombool260 = and i8 %201, 1 + %mBackground.i248 = getelementptr inbounds i8, ptr %root, i64 48 + %201 = load i8, ptr %mBackground.i248, align 8 %202 = load ptr, ptr %this, align 8 %203 = load ptr, ptr %_M_finish.i.i.i, align 8 - %cmp.i252.not707 = icmp eq ptr %202, %203 - br i1 %cmp.i252.not707, label %invoke.cont292, label %for.inc289 + %background.0706 = and i8 %201, 1 + %cmp.i250.not707 = icmp eq ptr %202, %203 + br i1 %cmp.i250.not707, label %for.end291, label %for.inc289 for.inc289: ; preds = %for.end256, %for.inc289 - %__begin1263.sroa.0.0709 = phi ptr [ %incdec.ptr.i256, %for.inc289 ], [ %202, %for.end256 ] - %background.0708 = phi i8 [ %frombool288, %for.inc289 ], [ %frombool260, %for.end256 ] - %mTree.i253 = getelementptr inbounds i8, ptr %__begin1263.sroa.0.0709, i64 16 - %204 = load ptr, ptr %mTree.i253, align 8 - %mBackground.i255 = getelementptr inbounds i8, ptr %204, i64 56 - %205 = load i8, ptr %mBackground.i255, align 1 - %206 = and i8 %205, 1 - %narrow = sub nsw i8 0, %206 - %tobool287 = icmp ne i8 %background.0708, %narrow - %frombool288 = zext i1 %tobool287 to i8 - %incdec.ptr.i256 = getelementptr inbounds i8, ptr %__begin1263.sroa.0.0709, i64 40 - %cmp.i252.not = icmp eq ptr %incdec.ptr.i256, %203 - br i1 %cmp.i252.not, label %for.end291, label %for.inc289 - -for.end291: ; preds = %for.inc289 - %cmp.i.i = icmp eq i8 %frombool260, %frombool288 + %background.0709 = phi i8 [ %background.0, %for.inc289 ], [ %background.0706, %for.end256 ] + %__begin1263.sroa.0.0708 = phi ptr [ %incdec.ptr.i254, %for.inc289 ], [ %202, %for.end256 ] + %mTree.i251 = getelementptr inbounds i8, ptr %__begin1263.sroa.0.0708, i64 16 + %204 = load ptr, ptr %mTree.i251, align 8 + %mBackground.i253 = getelementptr inbounds i8, ptr %204, i64 56 + %205 = load i8, ptr %mBackground.i253, align 1 + %206 = or i8 %205, %background.0709 + %incdec.ptr.i254 = getelementptr inbounds i8, ptr %__begin1263.sroa.0.0708, i64 40 + %background.0 = and i8 %206, 1 + %cmp.i250.not = icmp eq ptr %incdec.ptr.i254, %203 + br i1 %cmp.i250.not, label %for.end291, label %for.inc289 + +for.end291: ; preds = %for.inc289, %for.end256 + %background.0.in.lcssa = phi i8 [ %201, %for.end256 ], [ %206, %for.inc289 ] + %background.0.lcssa = phi i8 [ %background.0706, %for.end256 ], [ %background.0, %for.inc289 ] + %207 = xor i8 %background.0.in.lcssa, %201 + %208 = and i8 %207, 1 + %cmp.i.i = icmp eq i8 %208, 0 br i1 %cmp.i.i, label %invoke.cont292, label %if.end.i if.end.i: ; preds = %for.end291 - store i8 %frombool288, ptr %mBackground.i250, align 8 + store i8 %background.0.lcssa, ptr %mBackground.i248, align 8 br label %invoke.cont292 -invoke.cont292: ; preds = %for.end256, %if.end.i, %for.end291 - %207 = load ptr, ptr %_M_before_begin.i.i, align 8 - %tobool.not3.i.i.i.i = icmp eq ptr %207, null +invoke.cont292: ; preds = %if.end.i, %for.end291 + %209 = load ptr, ptr %_M_before_begin.i.i, align 8 + %tobool.not3.i.i.i.i = icmp eq ptr %209, null br i1 %tobool.not3.i.i.i.i, label %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE5clearEv.exit.i.i, label %while.body.i.i.i.i while.body.i.i.i.i: ; preds = %invoke.cont292, %while.body.i.i.i.i - %__n.addr.04.i.i.i.i = phi ptr [ %208, %while.body.i.i.i.i ], [ %207, %invoke.cont292 ] - %208 = load ptr, ptr %__n.addr.04.i.i.i.i, align 8 + %__n.addr.04.i.i.i.i = phi ptr [ %210, %while.body.i.i.i.i ], [ %209, %invoke.cont292 ] + %210 = load ptr, ptr %__n.addr.04.i.i.i.i, align 8 call void @_ZdlPv(ptr noundef nonnull %__n.addr.04.i.i.i.i) #23 - %tobool.not.i.i.i.i = icmp eq ptr %208, null + %tobool.not.i.i.i.i = icmp eq ptr %210, null br i1 %tobool.not.i.i.i.i, label %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE5clearEv.exit.i.i, label %while.body.i.i.i.i, !llvm.loop !136 _ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE5clearEv.exit.i.i: ; preds = %while.body.i.i.i.i, %invoke.cont292 - %209 = load ptr, ptr %children, align 8 - %210 = load i64, ptr %_M_bucket_count.i.i, align 8 - %mul.i.i.i = shl i64 %210, 3 - call void @llvm.memset.p0.i64(ptr align 8 %209, i8 0, i64 %mul.i.i.i, i1 false) - call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %_M_before_begin.i.i, i8 0, i64 16, i1 false) %211 = load ptr, ptr %children, align 8 - %cmp.i.i.i.i.i258 = icmp eq ptr %_M_single_bucket.i.i, %211 - br i1 %cmp.i.i.i.i.i258, label %return, label %if.end.i.i.i.i + %212 = load i64, ptr %_M_bucket_count.i.i, align 8 + %mul.i.i.i = shl i64 %212, 3 + call void @llvm.memset.p0.i64(ptr align 8 %211, i8 0, i64 %mul.i.i.i, i1 false) + call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %_M_before_begin.i.i, i8 0, i64 16, i1 false) + %213 = load ptr, ptr %children, align 8 + %cmp.i.i.i.i.i256 = icmp eq ptr %_M_single_bucket.i.i, %213 + br i1 %cmp.i.i.i.i.i256, label %return, label %if.end.i.i.i.i if.end.i.i.i.i: ; preds = %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE5clearEv.exit.i.i - call void @_ZdlPv(ptr noundef %211) #23 + call void @_ZdlPv(ptr noundef %213) #23 br label %return -ehcleanup: ; preds = %lpad.loopexit, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit, %lpad.loopexit.split-lp.loopexit, %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE12_Scoped_nodeD2Ev.exit.i.body, %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE12_Scoped_nodeD2Ev.exit.i434.body, %lpad214 - %.pn = phi { ptr, i32 } [ %173, %lpad214 ], [ %eh.lpad-body481, %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE12_Scoped_nodeD2Ev.exit.i.body ], [ %eh.lpad-body522, %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE12_Scoped_nodeD2Ev.exit.i434.body ], [ %lpad.loopexit632, %lpad.loopexit ], [ %lpad.loopexit634, %lpad.loopexit.split-lp.loopexit ], [ %lpad.loopexit637, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit646, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit652, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit658, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit.split-lp659, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp ] +ehcleanup: ; preds = %lpad.loopexit, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit, %lpad.loopexit.split-lp.loopexit, %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE12_Scoped_nodeD2Ev.exit.i.body, %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE12_Scoped_nodeD2Ev.exit.i432.body, %lpad214 + %.pn = phi { ptr, i32 } [ %173, %lpad214 ], [ %eh.lpad-body479, %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE12_Scoped_nodeD2Ev.exit.i.body ], [ %eh.lpad-body520, %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE12_Scoped_nodeD2Ev.exit.i432.body ], [ %lpad.loopexit631, %lpad.loopexit ], [ %lpad.loopexit633, %lpad.loopexit.split-lp.loopexit ], [ %lpad.loopexit636, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit645, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit651, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit657, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit.split-lp658, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp ] call void @_ZNSt13unordered_mapIN7openvdb5v11_04math5CoordEhSt4hashIS3_ESt8equal_toIS3_ESaISt4pairIKS3_hEEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %children) #15 resume { ptr, i32 } %.pn @@ -18909,8 +18909,8 @@ while.body.i.i.i: ; preds = %land.rhs.i.i.i invoke.cont8: ; preds = %land.rhs.i.i.i, %if.then7 %retval.sroa.2.1.i = phi ptr [ %6, %if.then7 ], [ %retval.sroa.2.0.i, %land.rhs.i.i.i ] - %cmp.i.i.i39.not689 = icmp eq ptr %retval.sroa.2.1.i, %add.ptr.i.i.i.i.i.i - br i1 %cmp.i.i.i39.not689, label %for.end, label %for.body.lr.ph + %cmp.i.i.i37.not687 = icmp eq ptr %retval.sroa.2.1.i, %add.ptr.i.i.i.i.i.i + br i1 %cmp.i.i.i37.not687, label %for.end, label %for.body.lr.ph for.body.lr.ph: ; preds = %invoke.cont8 %ref.tmp.sroa.2.0.ref.tmp16.sroa_idx = getelementptr inbounds i8, ptr %ref.tmp16, i64 8 @@ -18918,216 +18918,216 @@ for.body.lr.ph: ; preds = %invoke.cont8 br label %for.body for.body: ; preds = %for.body.lr.ph, %_ZN7openvdb5v11_04tree8RootNodeINS1_12InternalNodeINS3_INS1_8LeafNodeIbLj3EEELj4EEELj5EEEE9ValueIterIKS8_St23_Rb_tree_const_iteratorISt4pairIKNS0_4math5CoordENS8_10NodeStructEEENS8_12ValueAllPredEKbEppEv.exit - %valueIter.sroa.3.0690 = phi ptr [ %retval.sroa.2.1.i, %for.body.lr.ph ], [ %valueIter.sroa.3.1, %_ZN7openvdb5v11_04tree8RootNodeINS1_12InternalNodeINS3_INS1_8LeafNodeIbLj3EEELj4EEELj5EEEE9ValueIterIKS8_St23_Rb_tree_const_iteratorISt4pairIKNS0_4math5CoordENS8_10NodeStructEEENS8_12ValueAllPredEKbEppEv.exit ] - %_M_storage.i.i.i = getelementptr inbounds i8, ptr %valueIter.sroa.3.0690, i64 32 + %valueIter.sroa.3.0688 = phi ptr [ %retval.sroa.2.1.i, %for.body.lr.ph ], [ %valueIter.sroa.3.1, %_ZN7openvdb5v11_04tree8RootNodeINS1_12InternalNodeINS3_INS1_8LeafNodeIbLj3EEELj4EEELj5EEEE9ValueIterIKS8_St23_Rb_tree_const_iteratorISt4pairIKNS0_4math5CoordENS8_10NodeStructEEENS8_12ValueAllPredEKbEppEv.exit ] + %_M_storage.i.i.i = getelementptr inbounds i8, ptr %valueIter.sroa.3.0688, i64 32 %retval.sroa.0.0.copyload.i = load i64, ptr %_M_storage.i.i.i, align 8 - %retval.sroa.2.0.first.sroa_idx.i = getelementptr inbounds i8, ptr %valueIter.sroa.3.0690, i64 40 + %retval.sroa.2.0.first.sroa_idx.i = getelementptr inbounds i8, ptr %valueIter.sroa.3.0688, i64 40 %retval.sroa.2.0.copyload.i = load i32, ptr %retval.sroa.2.0.first.sroa_idx.i, align 8 store i64 %retval.sroa.0.0.copyload.i, ptr %ref.tmp16, align 8 store i32 %retval.sroa.2.0.copyload.i, ptr %ref.tmp.sroa.2.0.ref.tmp16.sroa_idx, align 8 store i8 1, ptr %second.i, align 4 - %call2.i.i42 = invoke { ptr, i8 } @_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE10_M_emplaceIJS6_EEES4_INS8_14_Node_iteratorIS6_Lb0ELb0EEEbESt17integral_constantIbLb1EEDpOT_(ptr noundef nonnull align 8 dereferenceable(56) %children, ptr noundef nonnull align 4 dereferenceable(13) %ref.tmp16) + %call2.i.i40 = invoke { ptr, i8 } @_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE10_M_emplaceIJS6_EEES4_INS8_14_Node_iteratorIS6_Lb0ELb0EEEbESt17integral_constantIbLb1EEDpOT_(ptr noundef nonnull align 8 dereferenceable(56) %children, ptr noundef nonnull align 4 dereferenceable(13) %ref.tmp16) to label %invoke.cont18 unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp invoke.cont18: ; preds = %for.body - %cmp.i.i.not.i.i = icmp eq ptr %valueIter.sroa.3.0690, %add.ptr.i.i.i.i.i.i + %cmp.i.i.not.i.i = icmp eq ptr %valueIter.sroa.3.0688, %add.ptr.i.i.i.i.i.i br i1 %cmp.i.i.not.i.i, label %for.end.loopexit, label %if.end.i.i if.end.i.i: ; preds = %invoke.cont18 - %call.i.i.i = call noundef ptr @_ZSt18_Rb_tree_incrementPKSt18_Rb_tree_node_base(ptr noundef nonnull %valueIter.sroa.3.0690) #25 - %cmp.i.i.not2.i.i.i43 = icmp eq ptr %call.i.i.i, %add.ptr.i.i.i.i.i.i - br i1 %cmp.i.i.not2.i.i.i43, label %for.end.loopexit, label %land.rhs.i.i.i44 - -land.rhs.i.i.i44: ; preds = %if.end.i.i, %while.body.i.i.i47 - %valueIter.sroa.3.1 = phi ptr [ %call.i.i.i.i48, %while.body.i.i.i47 ], [ %call.i.i.i, %if.end.i.i ] - %second.i.i.i.i.i45 = getelementptr inbounds i8, ptr %valueIter.sroa.3.1, i64 48 - %8 = load ptr, ptr %second.i.i.i.i.i45, align 8 - %cmp.i.i.i.i.i.i46 = icmp eq ptr %8, null - br i1 %cmp.i.i.i.i.i.i46, label %_ZN7openvdb5v11_04tree8RootNodeINS1_12InternalNodeINS3_INS1_8LeafNodeIbLj3EEELj4EEELj5EEEE9ValueIterIKS8_St23_Rb_tree_const_iteratorISt4pairIKNS0_4math5CoordENS8_10NodeStructEEENS8_12ValueAllPredEKbEppEv.exit, label %while.body.i.i.i47 - -while.body.i.i.i47: ; preds = %land.rhs.i.i.i44 - %call.i.i.i.i48 = call noundef ptr @_ZSt18_Rb_tree_incrementPKSt18_Rb_tree_node_base(ptr noundef nonnull %valueIter.sroa.3.1) #25 - %cmp.i.i.not.i.i.i49 = icmp eq ptr %call.i.i.i.i48, %add.ptr.i.i.i.i.i.i - br i1 %cmp.i.i.not.i.i.i49, label %for.end.loopexit, label %land.rhs.i.i.i44, !llvm.loop !150 - -_ZN7openvdb5v11_04tree8RootNodeINS1_12InternalNodeINS3_INS1_8LeafNodeIbLj3EEELj4EEELj5EEEE9ValueIterIKS8_St23_Rb_tree_const_iteratorISt4pairIKNS0_4math5CoordENS8_10NodeStructEEENS8_12ValueAllPredEKbEppEv.exit: ; preds = %land.rhs.i.i.i44 - %cmp.i.i.i39.not = icmp eq ptr %valueIter.sroa.3.1, %add.ptr.i.i.i.i.i.i - br i1 %cmp.i.i.i39.not, label %for.end.loopexit, label %for.body + %call.i.i.i = call noundef ptr @_ZSt18_Rb_tree_incrementPKSt18_Rb_tree_node_base(ptr noundef nonnull %valueIter.sroa.3.0688) #25 + %cmp.i.i.not2.i.i.i41 = icmp eq ptr %call.i.i.i, %add.ptr.i.i.i.i.i.i + br i1 %cmp.i.i.not2.i.i.i41, label %for.end.loopexit, label %land.rhs.i.i.i42 + +land.rhs.i.i.i42: ; preds = %if.end.i.i, %while.body.i.i.i45 + %valueIter.sroa.3.1 = phi ptr [ %call.i.i.i.i46, %while.body.i.i.i45 ], [ %call.i.i.i, %if.end.i.i ] + %second.i.i.i.i.i43 = getelementptr inbounds i8, ptr %valueIter.sroa.3.1, i64 48 + %8 = load ptr, ptr %second.i.i.i.i.i43, align 8 + %cmp.i.i.i.i.i.i44 = icmp eq ptr %8, null + br i1 %cmp.i.i.i.i.i.i44, label %_ZN7openvdb5v11_04tree8RootNodeINS1_12InternalNodeINS3_INS1_8LeafNodeIbLj3EEELj4EEELj5EEEE9ValueIterIKS8_St23_Rb_tree_const_iteratorISt4pairIKNS0_4math5CoordENS8_10NodeStructEEENS8_12ValueAllPredEKbEppEv.exit, label %while.body.i.i.i45 + +while.body.i.i.i45: ; preds = %land.rhs.i.i.i42 + %call.i.i.i.i46 = call noundef ptr @_ZSt18_Rb_tree_incrementPKSt18_Rb_tree_node_base(ptr noundef nonnull %valueIter.sroa.3.1) #25 + %cmp.i.i.not.i.i.i47 = icmp eq ptr %call.i.i.i.i46, %add.ptr.i.i.i.i.i.i + br i1 %cmp.i.i.not.i.i.i47, label %for.end.loopexit, label %land.rhs.i.i.i42, !llvm.loop !150 + +_ZN7openvdb5v11_04tree8RootNodeINS1_12InternalNodeINS3_INS1_8LeafNodeIbLj3EEELj4EEELj5EEEE9ValueIterIKS8_St23_Rb_tree_const_iteratorISt4pairIKNS0_4math5CoordENS8_10NodeStructEEENS8_12ValueAllPredEKbEppEv.exit: ; preds = %land.rhs.i.i.i42 + %cmp.i.i.i37.not = icmp eq ptr %valueIter.sroa.3.1, %add.ptr.i.i.i.i.i.i + br i1 %cmp.i.i.i37.not, label %for.end.loopexit, label %for.body lpad.loopexit: ; preds = %invoke.cont223, %if.end245 - %lpad.loopexit633 = landingpad { ptr, i32 } + %lpad.loopexit631 = landingpad { ptr, i32 } cleanup br label %ehcleanup lpad.loopexit.split-lp.loopexit: ; preds = %if.then209, %if.end185 - %lpad.loopexit635 = landingpad { ptr, i32 } + %lpad.loopexit633 = landingpad { ptr, i32 } cleanup br label %ehcleanup lpad.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %if.then156, %for.body151 - %lpad.loopexit638 = landingpad { ptr, i32 } + %lpad.loopexit636 = landingpad { ptr, i32 } cleanup br label %ehcleanup lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %if.then122 - %lpad.loopexit647 = landingpad { ptr, i32 } + %lpad.loopexit645 = landingpad { ptr, i32 } cleanup br label %ehcleanup lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %if.then84 - %lpad.loopexit653 = landingpad { ptr, i32 } + %lpad.loopexit651 = landingpad { ptr, i32 } cleanup br label %ehcleanup lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %for.body28 - %lpad.loopexit659 = landingpad { ptr, i32 } + %lpad.loopexit657 = landingpad { ptr, i32 } cleanup br label %ehcleanup lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp: ; preds = %for.body - %lpad.loopexit.split-lp660 = landingpad { ptr, i32 } + %lpad.loopexit.split-lp658 = landingpad { ptr, i32 } cleanup br label %ehcleanup -for.end.loopexit: ; preds = %if.end.i.i, %invoke.cont18, %_ZN7openvdb5v11_04tree8RootNodeINS1_12InternalNodeINS3_INS1_8LeafNodeIbLj3EEELj4EEELj5EEEE9ValueIterIKS8_St23_Rb_tree_const_iteratorISt4pairIKNS0_4math5CoordENS8_10NodeStructEEENS8_12ValueAllPredEKbEppEv.exit, %while.body.i.i.i47 +for.end.loopexit: ; preds = %if.end.i.i, %invoke.cont18, %_ZN7openvdb5v11_04tree8RootNodeINS1_12InternalNodeINS3_INS1_8LeafNodeIbLj3EEELj4EEELj5EEEE9ValueIterIKS8_St23_Rb_tree_const_iteratorISt4pairIKNS0_4math5CoordENS8_10NodeStructEEENS8_12ValueAllPredEKbEppEv.exit, %while.body.i.i.i45 %.pre = load ptr, ptr %_M_left.i.i.i, align 8 br label %for.end for.end: ; preds = %while.body.i.i.i, %for.end.loopexit, %invoke.cont8 %9 = phi ptr [ %.pre, %for.end.loopexit ], [ %6, %invoke.cont8 ], [ %6, %while.body.i.i.i ] - %cmp.i.i.not2.i.i.i52 = icmp eq ptr %add.ptr.i.i.i.i.i.i, %9 - br i1 %cmp.i.i.not2.i.i.i52, label %if.end46, label %land.rhs.i.i.i53 + %cmp.i.i.not2.i.i.i50 = icmp eq ptr %add.ptr.i.i.i.i.i.i, %9 + br i1 %cmp.i.i.not2.i.i.i50, label %if.end46, label %land.rhs.i.i.i51 -land.rhs.i.i.i53: ; preds = %for.end, %while.body.i.i.i59 - %retval.sroa.2.0.i54 = phi ptr [ %call.i.i.i.i60, %while.body.i.i.i59 ], [ %9, %for.end ] - %second.i.i.i.i.i55 = getelementptr inbounds i8, ptr %retval.sroa.2.0.i54, i64 48 - %10 = load ptr, ptr %second.i.i.i.i.i55, align 8 +land.rhs.i.i.i51: ; preds = %for.end, %while.body.i.i.i57 + %retval.sroa.2.0.i52 = phi ptr [ %call.i.i.i.i58, %while.body.i.i.i57 ], [ %9, %for.end ] + %second.i.i.i.i.i53 = getelementptr inbounds i8, ptr %retval.sroa.2.0.i52, i64 48 + %10 = load ptr, ptr %second.i.i.i.i.i53, align 8 %cmp.i.i.i.not.i.i.i = icmp eq ptr %10, null - br i1 %cmp.i.i.i.not.i.i.i, label %while.body.i.i.i59, label %invoke.cont22 + br i1 %cmp.i.i.i.not.i.i.i, label %while.body.i.i.i57, label %invoke.cont22 -while.body.i.i.i59: ; preds = %land.rhs.i.i.i53 - %call.i.i.i.i60 = call noundef ptr @_ZSt18_Rb_tree_incrementPKSt18_Rb_tree_node_base(ptr noundef nonnull %retval.sroa.2.0.i54) #25 - %cmp.i.i.not.i.i.i61 = icmp eq ptr %call.i.i.i.i60, %add.ptr.i.i.i.i.i.i - br i1 %cmp.i.i.not.i.i.i61, label %if.end46, label %land.rhs.i.i.i53, !llvm.loop !38 +while.body.i.i.i57: ; preds = %land.rhs.i.i.i51 + %call.i.i.i.i58 = call noundef ptr @_ZSt18_Rb_tree_incrementPKSt18_Rb_tree_node_base(ptr noundef nonnull %retval.sroa.2.0.i52) #25 + %cmp.i.i.not.i.i.i59 = icmp eq ptr %call.i.i.i.i58, %add.ptr.i.i.i.i.i.i + br i1 %cmp.i.i.not.i.i.i59, label %if.end46, label %land.rhs.i.i.i51, !llvm.loop !38 -invoke.cont22: ; preds = %land.rhs.i.i.i53 - %cmp.i.i.i64.not691 = icmp eq ptr %retval.sroa.2.0.i54, %add.ptr.i.i.i.i.i.i - br i1 %cmp.i.i.i64.not691, label %if.end46, label %for.body28.lr.ph +invoke.cont22: ; preds = %land.rhs.i.i.i51 + %cmp.i.i.i62.not689 = icmp eq ptr %retval.sroa.2.0.i52, %add.ptr.i.i.i.i.i.i + br i1 %cmp.i.i.i62.not689, label %if.end46, label %for.body28.lr.ph for.body28.lr.ph: ; preds = %invoke.cont22 %ref.tmp30.sroa.2.0.ref.tmp36.sroa_idx = getelementptr inbounds i8, ptr %ref.tmp36, i64 8 - %second.i72 = getelementptr inbounds i8, ptr %ref.tmp36, i64 12 + %second.i70 = getelementptr inbounds i8, ptr %ref.tmp36, i64 12 br label %for.body28 for.body28: ; preds = %for.body28.lr.ph, %_ZN7openvdb5v11_04tree8RootNodeINS1_12InternalNodeINS3_INS1_8LeafNodeIbLj3EEELj4EEELj5EEEE9ChildIterIKS8_St23_Rb_tree_const_iteratorISt4pairIKNS0_4math5CoordENS8_10NodeStructEEENS8_11ChildOnPredEKS7_EppEv.exit - %childIter.sroa.3.0692 = phi ptr [ %retval.sroa.2.0.i54, %for.body28.lr.ph ], [ %childIter.sroa.3.1, %_ZN7openvdb5v11_04tree8RootNodeINS1_12InternalNodeINS3_INS1_8LeafNodeIbLj3EEELj4EEELj5EEEE9ChildIterIKS8_St23_Rb_tree_const_iteratorISt4pairIKNS0_4math5CoordENS8_10NodeStructEEENS8_11ChildOnPredEKS7_EppEv.exit ] - %_M_storage.i.i.i66 = getelementptr inbounds i8, ptr %childIter.sroa.3.0692, i64 32 - %retval.sroa.0.0.copyload.i67 = load i64, ptr %_M_storage.i.i.i66, align 8 - %retval.sroa.2.0.first.sroa_idx.i68 = getelementptr inbounds i8, ptr %childIter.sroa.3.0692, i64 40 - %retval.sroa.2.0.copyload.i69 = load i32, ptr %retval.sroa.2.0.first.sroa_idx.i68, align 8 - store i64 %retval.sroa.0.0.copyload.i67, ptr %ref.tmp36, align 8 - store i32 %retval.sroa.2.0.copyload.i69, ptr %ref.tmp30.sroa.2.0.ref.tmp36.sroa_idx, align 8 - store i8 6, ptr %second.i72, align 4 - %call2.i.i74 = invoke { ptr, i8 } @_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE10_M_emplaceIJS6_EEES4_INS8_14_Node_iteratorIS6_Lb0ELb0EEEbESt17integral_constantIbLb1EEDpOT_(ptr noundef nonnull align 8 dereferenceable(56) %children, ptr noundef nonnull align 4 dereferenceable(13) %ref.tmp36) + %childIter.sroa.3.0690 = phi ptr [ %retval.sroa.2.0.i52, %for.body28.lr.ph ], [ %childIter.sroa.3.1, %_ZN7openvdb5v11_04tree8RootNodeINS1_12InternalNodeINS3_INS1_8LeafNodeIbLj3EEELj4EEELj5EEEE9ChildIterIKS8_St23_Rb_tree_const_iteratorISt4pairIKNS0_4math5CoordENS8_10NodeStructEEENS8_11ChildOnPredEKS7_EppEv.exit ] + %_M_storage.i.i.i64 = getelementptr inbounds i8, ptr %childIter.sroa.3.0690, i64 32 + %retval.sroa.0.0.copyload.i65 = load i64, ptr %_M_storage.i.i.i64, align 8 + %retval.sroa.2.0.first.sroa_idx.i66 = getelementptr inbounds i8, ptr %childIter.sroa.3.0690, i64 40 + %retval.sroa.2.0.copyload.i67 = load i32, ptr %retval.sroa.2.0.first.sroa_idx.i66, align 8 + store i64 %retval.sroa.0.0.copyload.i65, ptr %ref.tmp36, align 8 + store i32 %retval.sroa.2.0.copyload.i67, ptr %ref.tmp30.sroa.2.0.ref.tmp36.sroa_idx, align 8 + store i8 6, ptr %second.i70, align 4 + %call2.i.i72 = invoke { ptr, i8 } @_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE10_M_emplaceIJS6_EEES4_INS8_14_Node_iteratorIS6_Lb0ELb0EEEbESt17integral_constantIbLb1EEDpOT_(ptr noundef nonnull align 8 dereferenceable(56) %children, ptr noundef nonnull align 4 dereferenceable(13) %ref.tmp36) to label %invoke.cont39 unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit invoke.cont39: ; preds = %for.body28 - %cmp.i.i.not.i.i78 = icmp eq ptr %childIter.sroa.3.0692, %add.ptr.i.i.i.i.i.i - br i1 %cmp.i.i.not.i.i78, label %if.end46, label %if.end.i.i79 - -if.end.i.i79: ; preds = %invoke.cont39 - %call.i.i.i80 = call noundef ptr @_ZSt18_Rb_tree_incrementPKSt18_Rb_tree_node_base(ptr noundef nonnull %childIter.sroa.3.0692) #25 - %cmp.i.i.not2.i.i.i81 = icmp eq ptr %call.i.i.i80, %add.ptr.i.i.i.i.i.i - br i1 %cmp.i.i.not2.i.i.i81, label %if.end46, label %land.rhs.i.i.i82 - -land.rhs.i.i.i82: ; preds = %if.end.i.i79, %while.body.i.i.i86 - %childIter.sroa.3.1 = phi ptr [ %call.i.i.i.i87, %while.body.i.i.i86 ], [ %call.i.i.i80, %if.end.i.i79 ] - %second.i.i.i.i.i84 = getelementptr inbounds i8, ptr %childIter.sroa.3.1, i64 48 - %11 = load ptr, ptr %second.i.i.i.i.i84, align 8 - %cmp.i.i.i.not.i.i.i85 = icmp eq ptr %11, null - br i1 %cmp.i.i.i.not.i.i.i85, label %while.body.i.i.i86, label %_ZN7openvdb5v11_04tree8RootNodeINS1_12InternalNodeINS3_INS1_8LeafNodeIbLj3EEELj4EEELj5EEEE9ChildIterIKS8_St23_Rb_tree_const_iteratorISt4pairIKNS0_4math5CoordENS8_10NodeStructEEENS8_11ChildOnPredEKS7_EppEv.exit - -while.body.i.i.i86: ; preds = %land.rhs.i.i.i82 - %call.i.i.i.i87 = call noundef ptr @_ZSt18_Rb_tree_incrementPKSt18_Rb_tree_node_base(ptr noundef nonnull %childIter.sroa.3.1) #25 - %cmp.i.i.not.i.i.i88 = icmp eq ptr %call.i.i.i.i87, %add.ptr.i.i.i.i.i.i - br i1 %cmp.i.i.not.i.i.i88, label %if.end46, label %land.rhs.i.i.i82, !llvm.loop !38 - -_ZN7openvdb5v11_04tree8RootNodeINS1_12InternalNodeINS3_INS1_8LeafNodeIbLj3EEELj4EEELj5EEEE9ChildIterIKS8_St23_Rb_tree_const_iteratorISt4pairIKNS0_4math5CoordENS8_10NodeStructEEENS8_11ChildOnPredEKS7_EppEv.exit: ; preds = %land.rhs.i.i.i82 - %cmp.i.i.i64.not = icmp eq ptr %childIter.sroa.3.1, %add.ptr.i.i.i.i.i.i - br i1 %cmp.i.i.i64.not, label %if.end46, label %for.body28 - -if.end46: ; preds = %while.body.i.i.i59, %if.end.i.i79, %invoke.cont39, %_ZN7openvdb5v11_04tree8RootNodeINS1_12InternalNodeINS3_INS1_8LeafNodeIbLj3EEELj4EEELj5EEEE9ChildIterIKS8_St23_Rb_tree_const_iteratorISt4pairIKNS0_4math5CoordENS8_10NodeStructEEENS8_11ChildOnPredEKS7_EppEv.exit, %while.body.i.i.i86, %for.end, %invoke.cont22, %if.end5 + %cmp.i.i.not.i.i76 = icmp eq ptr %childIter.sroa.3.0690, %add.ptr.i.i.i.i.i.i + br i1 %cmp.i.i.not.i.i76, label %if.end46, label %if.end.i.i77 + +if.end.i.i77: ; preds = %invoke.cont39 + %call.i.i.i78 = call noundef ptr @_ZSt18_Rb_tree_incrementPKSt18_Rb_tree_node_base(ptr noundef nonnull %childIter.sroa.3.0690) #25 + %cmp.i.i.not2.i.i.i79 = icmp eq ptr %call.i.i.i78, %add.ptr.i.i.i.i.i.i + br i1 %cmp.i.i.not2.i.i.i79, label %if.end46, label %land.rhs.i.i.i80 + +land.rhs.i.i.i80: ; preds = %if.end.i.i77, %while.body.i.i.i84 + %childIter.sroa.3.1 = phi ptr [ %call.i.i.i.i85, %while.body.i.i.i84 ], [ %call.i.i.i78, %if.end.i.i77 ] + %second.i.i.i.i.i82 = getelementptr inbounds i8, ptr %childIter.sroa.3.1, i64 48 + %11 = load ptr, ptr %second.i.i.i.i.i82, align 8 + %cmp.i.i.i.not.i.i.i83 = icmp eq ptr %11, null + br i1 %cmp.i.i.i.not.i.i.i83, label %while.body.i.i.i84, label %_ZN7openvdb5v11_04tree8RootNodeINS1_12InternalNodeINS3_INS1_8LeafNodeIbLj3EEELj4EEELj5EEEE9ChildIterIKS8_St23_Rb_tree_const_iteratorISt4pairIKNS0_4math5CoordENS8_10NodeStructEEENS8_11ChildOnPredEKS7_EppEv.exit + +while.body.i.i.i84: ; preds = %land.rhs.i.i.i80 + %call.i.i.i.i85 = call noundef ptr @_ZSt18_Rb_tree_incrementPKSt18_Rb_tree_node_base(ptr noundef nonnull %childIter.sroa.3.1) #25 + %cmp.i.i.not.i.i.i86 = icmp eq ptr %call.i.i.i.i85, %add.ptr.i.i.i.i.i.i + br i1 %cmp.i.i.not.i.i.i86, label %if.end46, label %land.rhs.i.i.i80, !llvm.loop !38 + +_ZN7openvdb5v11_04tree8RootNodeINS1_12InternalNodeINS3_INS1_8LeafNodeIbLj3EEELj4EEELj5EEEE9ChildIterIKS8_St23_Rb_tree_const_iteratorISt4pairIKNS0_4math5CoordENS8_10NodeStructEEENS8_11ChildOnPredEKS7_EppEv.exit: ; preds = %land.rhs.i.i.i80 + %cmp.i.i.i62.not = icmp eq ptr %childIter.sroa.3.1, %add.ptr.i.i.i.i.i.i + br i1 %cmp.i.i.i62.not, label %if.end46, label %for.body28 + +if.end46: ; preds = %while.body.i.i.i57, %if.end.i.i77, %invoke.cont39, %_ZN7openvdb5v11_04tree8RootNodeINS1_12InternalNodeINS3_INS1_8LeafNodeIbLj3EEELj4EEELj5EEEE9ChildIterIKS8_St23_Rb_tree_const_iteratorISt4pairIKNS0_4math5CoordENS8_10NodeStructEEENS8_11ChildOnPredEKS7_EppEv.exit, %while.body.i.i.i84, %for.end, %invoke.cont22, %if.end5 %12 = load ptr, ptr %this, align 8 %13 = load ptr, ptr %_M_finish.i.i.i, align 8 - %cmp.i.not697 = icmp eq ptr %12, %13 - br i1 %cmp.i.not697, label %for.end141, label %if.end59.lr.ph + %cmp.i.not695 = icmp eq ptr %12, %13 + br i1 %cmp.i.not695, label %for.end141, label %if.end59.lr.ph if.end59.lr.ph: ; preds = %if.end46 %_M_element_count.i.i = getelementptr inbounds i8, ptr %children, i64 24 br label %if.end59 if.end59: ; preds = %if.end59.lr.ph, %for.inc139 - %__begin1.sroa.0.0698 = phi ptr [ %12, %if.end59.lr.ph ], [ %incdec.ptr.i, %for.inc139 ] - %mTree.i = getelementptr inbounds i8, ptr %__begin1.sroa.0.0698, i64 16 + %__begin1.sroa.0.0696 = phi ptr [ %12, %if.end59.lr.ph ], [ %incdec.ptr.i, %for.inc139 ] + %mTree.i = getelementptr inbounds i8, ptr %__begin1.sroa.0.0696, i64 16 %14 = load ptr, ptr %mTree.i, align 8 - %_M_left.i.i.i89 = getelementptr inbounds i8, ptr %14, i64 32 - %15 = load ptr, ptr %_M_left.i.i.i89, align 8 - %add.ptr.i.i.i.i.i.i90 = getelementptr inbounds i8, ptr %14, i64 16 - %cmp.i.i.not2.i.i.i91 = icmp eq ptr %add.ptr.i.i.i.i.i.i90, %15 - br i1 %cmp.i.i.not2.i.i.i91, label %invoke.cont61, label %land.rhs.i.i.i92 - -land.rhs.i.i.i92: ; preds = %if.end59, %while.body.i.i.i96 - %retval.sroa.2.0.i93 = phi ptr [ %call.i.i.i.i97, %while.body.i.i.i96 ], [ %15, %if.end59 ] - %second.i.i.i.i.i94 = getelementptr inbounds i8, ptr %retval.sroa.2.0.i93, i64 48 - %16 = load ptr, ptr %second.i.i.i.i.i94, align 8 - %cmp.i.i.i.i.i.i95 = icmp eq ptr %16, null - br i1 %cmp.i.i.i.i.i.i95, label %invoke.cont61, label %while.body.i.i.i96 - -while.body.i.i.i96: ; preds = %land.rhs.i.i.i92 - %call.i.i.i.i97 = call noundef ptr @_ZSt18_Rb_tree_incrementPKSt18_Rb_tree_node_base(ptr noundef nonnull %retval.sroa.2.0.i93) #25 - %cmp.i.i.not.i.i.i98 = icmp eq ptr %call.i.i.i.i97, %add.ptr.i.i.i.i.i.i90 - br i1 %cmp.i.i.not.i.i.i98, label %for.end96, label %land.rhs.i.i.i92, !llvm.loop !150 - -invoke.cont61: ; preds = %land.rhs.i.i.i92, %if.end59 - %retval.sroa.2.1.i99 = phi ptr [ %15, %if.end59 ], [ %retval.sroa.2.0.i93, %land.rhs.i.i.i92 ] - %cmp.i.i.i105.not693 = icmp eq ptr %retval.sroa.2.1.i99, %add.ptr.i.i.i.i.i.i90 - br i1 %cmp.i.i.i105.not693, label %for.end96, label %for.body67 - -for.body67: ; preds = %invoke.cont61, %_ZN7openvdb5v11_04tree8RootNodeINS1_12InternalNodeINS3_INS1_8LeafNodeIbLj3EEELj4EEELj5EEEE9ValueIterIKS8_St23_Rb_tree_const_iteratorISt4pairIKNS0_4math5CoordENS8_10NodeStructEEENS8_12ValueAllPredEKbEppEv.exit131 - %valueIter60.sroa.3.0694 = phi ptr [ %valueIter60.sroa.3.1, %_ZN7openvdb5v11_04tree8RootNodeINS1_12InternalNodeINS3_INS1_8LeafNodeIbLj3EEELj4EEELj5EEEE9ValueIterIKS8_St23_Rb_tree_const_iteratorISt4pairIKNS0_4math5CoordENS8_10NodeStructEEENS8_12ValueAllPredEKbEppEv.exit131 ], [ %retval.sroa.2.1.i99, %invoke.cont61 ] - %_M_storage.i.i.i107 = getelementptr inbounds i8, ptr %valueIter60.sroa.3.0694, i64 32 - %retval.sroa.0.0.copyload.i108 = load i64, ptr %_M_storage.i.i.i107, align 8 - %retval.sroa.2.0.first.sroa_idx.i109 = getelementptr inbounds i8, ptr %valueIter60.sroa.3.0694, i64 40 - %retval.sroa.2.0.copyload.i110 = load i32, ptr %retval.sroa.2.0.first.sroa_idx.i109, align 8 - %ref.tmp69.sroa.0.sroa.0.0.extract.trunc = trunc i64 %retval.sroa.0.0.copyload.i108 to i32 - %ref.tmp69.sroa.0.sroa.4.0.extract.shift = lshr i64 %retval.sroa.0.0.copyload.i108, 32 + %_M_left.i.i.i87 = getelementptr inbounds i8, ptr %14, i64 32 + %15 = load ptr, ptr %_M_left.i.i.i87, align 8 + %add.ptr.i.i.i.i.i.i88 = getelementptr inbounds i8, ptr %14, i64 16 + %cmp.i.i.not2.i.i.i89 = icmp eq ptr %add.ptr.i.i.i.i.i.i88, %15 + br i1 %cmp.i.i.not2.i.i.i89, label %invoke.cont61, label %land.rhs.i.i.i90 + +land.rhs.i.i.i90: ; preds = %if.end59, %while.body.i.i.i94 + %retval.sroa.2.0.i91 = phi ptr [ %call.i.i.i.i95, %while.body.i.i.i94 ], [ %15, %if.end59 ] + %second.i.i.i.i.i92 = getelementptr inbounds i8, ptr %retval.sroa.2.0.i91, i64 48 + %16 = load ptr, ptr %second.i.i.i.i.i92, align 8 + %cmp.i.i.i.i.i.i93 = icmp eq ptr %16, null + br i1 %cmp.i.i.i.i.i.i93, label %invoke.cont61, label %while.body.i.i.i94 + +while.body.i.i.i94: ; preds = %land.rhs.i.i.i90 + %call.i.i.i.i95 = call noundef ptr @_ZSt18_Rb_tree_incrementPKSt18_Rb_tree_node_base(ptr noundef nonnull %retval.sroa.2.0.i91) #25 + %cmp.i.i.not.i.i.i96 = icmp eq ptr %call.i.i.i.i95, %add.ptr.i.i.i.i.i.i88 + br i1 %cmp.i.i.not.i.i.i96, label %for.end96, label %land.rhs.i.i.i90, !llvm.loop !150 + +invoke.cont61: ; preds = %land.rhs.i.i.i90, %if.end59 + %retval.sroa.2.1.i97 = phi ptr [ %15, %if.end59 ], [ %retval.sroa.2.0.i91, %land.rhs.i.i.i90 ] + %cmp.i.i.i103.not691 = icmp eq ptr %retval.sroa.2.1.i97, %add.ptr.i.i.i.i.i.i88 + br i1 %cmp.i.i.i103.not691, label %for.end96, label %for.body67 + +for.body67: ; preds = %invoke.cont61, %_ZN7openvdb5v11_04tree8RootNodeINS1_12InternalNodeINS3_INS1_8LeafNodeIbLj3EEELj4EEELj5EEEE9ValueIterIKS8_St23_Rb_tree_const_iteratorISt4pairIKNS0_4math5CoordENS8_10NodeStructEEENS8_12ValueAllPredEKbEppEv.exit129 + %valueIter60.sroa.3.0692 = phi ptr [ %valueIter60.sroa.3.1, %_ZN7openvdb5v11_04tree8RootNodeINS1_12InternalNodeINS3_INS1_8LeafNodeIbLj3EEELj4EEELj5EEEE9ValueIterIKS8_St23_Rb_tree_const_iteratorISt4pairIKNS0_4math5CoordENS8_10NodeStructEEENS8_12ValueAllPredEKbEppEv.exit129 ], [ %retval.sroa.2.1.i97, %invoke.cont61 ] + %_M_storage.i.i.i105 = getelementptr inbounds i8, ptr %valueIter60.sroa.3.0692, i64 32 + %retval.sroa.0.0.copyload.i106 = load i64, ptr %_M_storage.i.i.i105, align 8 + %retval.sroa.2.0.first.sroa_idx.i107 = getelementptr inbounds i8, ptr %valueIter60.sroa.3.0692, i64 40 + %retval.sroa.2.0.copyload.i108 = load i32, ptr %retval.sroa.2.0.first.sroa_idx.i107, align 8 + %ref.tmp69.sroa.0.sroa.0.0.extract.trunc = trunc i64 %retval.sroa.0.0.copyload.i106 to i32 + %ref.tmp69.sroa.0.sroa.4.0.extract.shift = lshr i64 %retval.sroa.0.0.copyload.i106, 32 %ref.tmp69.sroa.0.sroa.4.0.extract.trunc = trunc i64 %ref.tmp69.sroa.0.sroa.4.0.extract.shift to i32 %17 = load i64, ptr %_M_element_count.i.i, align 8 %cmp.not.not.i = icmp ne i64 %17, 0 - br i1 %cmp.not.not.i, label %if.end15.i, label %if.then.i264 + br i1 %cmp.not.not.i, label %if.end15.i, label %if.then.i262 -if.then.i264: ; preds = %for.body67 +if.then.i262: ; preds = %for.body67 %retval.sroa.0.09.i = load ptr, ptr %_M_before_begin.i.i, align 8 %cmp.i.not10.i = icmp eq ptr %retval.sroa.0.09.i, null br i1 %cmp.i.not10.i, label %if.then84, label %for.body.i -for.body.i: ; preds = %if.then.i264, %for.inc.i - %retval.sroa.0.011.i = phi ptr [ %retval.sroa.0.0.i, %for.inc.i ], [ %retval.sroa.0.09.i, %if.then.i264 ] - %add.ptr.i267 = getelementptr inbounds i8, ptr %retval.sroa.0.011.i, i64 8 - %18 = load i32, ptr %add.ptr.i267, align 4 - %cmp.i.i.i.i268 = icmp eq i32 %18, %ref.tmp69.sroa.0.sroa.0.0.extract.trunc - br i1 %cmp.i.i.i.i268, label %land.lhs.true.i.i.i.i, label %for.inc.i +for.body.i: ; preds = %if.then.i262, %for.inc.i + %retval.sroa.0.011.i = phi ptr [ %retval.sroa.0.0.i, %for.inc.i ], [ %retval.sroa.0.09.i, %if.then.i262 ] + %add.ptr.i265 = getelementptr inbounds i8, ptr %retval.sroa.0.011.i, i64 8 + %18 = load i32, ptr %add.ptr.i265, align 4 + %cmp.i.i.i.i266 = icmp eq i32 %18, %ref.tmp69.sroa.0.sroa.0.0.extract.trunc + br i1 %cmp.i.i.i.i266, label %land.lhs.true.i.i.i.i, label %for.inc.i land.lhs.true.i.i.i.i: ; preds = %for.body.i - %arrayidx.i.i3.i.i.i.i269 = getelementptr inbounds i8, ptr %retval.sroa.0.011.i, i64 12 - %19 = load i32, ptr %arrayidx.i.i3.i.i.i.i269, align 4 + %arrayidx.i.i3.i.i.i.i267 = getelementptr inbounds i8, ptr %retval.sroa.0.011.i, i64 12 + %19 = load i32, ptr %arrayidx.i.i3.i.i.i.i267, align 4 %cmp8.i.i.i.i = icmp eq i32 %19, %ref.tmp69.sroa.0.sroa.4.0.extract.trunc br i1 %cmp8.i.i.i.i, label %_ZNKSt8__detail15_Hashtable_baseIN7openvdb5v11_04math5CoordESt4pairIKS4_hENS_10_Select1stESt8equal_toIS4_ESt4hashIS4_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE13_M_key_equalsERS6_RKNS_16_Hash_node_valueIS7_Lb0EEE.exit.i, label %for.inc.i _ZNKSt8__detail15_Hashtable_baseIN7openvdb5v11_04math5CoordESt4pairIKS4_hENS_10_Select1stESt8equal_toIS4_ESt4hashIS4_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE13_M_key_equalsERS6_RKNS_16_Hash_node_valueIS7_Lb0EEE.exit.i: ; preds = %land.lhs.true.i.i.i.i %arrayidx.i.i5.i.i.i.i = getelementptr inbounds i8, ptr %retval.sroa.0.011.i, i64 16 %20 = load i32, ptr %arrayidx.i.i5.i.i.i.i, align 4 - %cmp13.i.i.i.i = icmp eq i32 %retval.sroa.2.0.copyload.i110, %20 + %cmp13.i.i.i.i = icmp eq i32 %retval.sroa.2.0.copyload.i108, %20 br i1 %cmp13.i.i.i.i, label %if.else, label %for.inc.i for.inc.i: ; preds = %_ZNKSt8__detail15_Hashtable_baseIN7openvdb5v11_04math5CoordESt4pairIKS4_hENS_10_Select1stESt8equal_toIS4_ESt4hashIS4_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE13_M_key_equalsERS6_RKNS_16_Hash_node_valueIS7_Lb0EEE.exit.i, %land.lhs.true.i.i.i.i, %for.body.i @@ -19138,30 +19138,30 @@ for.inc.i: ; preds = %_ZNKSt8__detail15_H if.end15.i: ; preds = %for.body67 %mul.i.i.i.i = mul i32 %ref.tmp69.sroa.0.sroa.0.0.extract.trunc, 455773 %mul3.i.i.i.i = mul i32 %ref.tmp69.sroa.0.sroa.4.0.extract.trunc, 475301 - %mul5.i.i.i.i = mul i32 %retval.sroa.2.0.copyload.i110, 655287 + %mul5.i.i.i.i = mul i32 %retval.sroa.2.0.copyload.i108, 655287 %xor.i.i.i.i = xor i32 %mul5.i.i.i.i, %mul.i.i.i.i %xor6.i.i.i.i = xor i32 %xor.i.i.i.i, %mul3.i.i.i.i - %and.i.i.i.i259 = and i32 %xor6.i.i.i.i, 1048575 - %conv.i.i.i.i = zext nneg i32 %and.i.i.i.i259 to i64 + %and.i.i.i.i257 = and i32 %xor6.i.i.i.i, 1048575 + %conv.i.i.i.i = zext nneg i32 %and.i.i.i.i257 to i64 %21 = load i64, ptr %_M_bucket_count.i.i, align 8 %rem.i.i.i.i = urem i64 %conv.i.i.i.i, %21 %22 = load ptr, ptr %children, align 8 - %arrayidx.i.i.i261 = getelementptr inbounds ptr, ptr %22, i64 %rem.i.i.i.i - %23 = load ptr, ptr %arrayidx.i.i.i261, align 8 + %arrayidx.i.i.i259 = getelementptr inbounds ptr, ptr %22, i64 %rem.i.i.i.i + %23 = load ptr, ptr %arrayidx.i.i.i259, align 8 %tobool.not.i.i.i = icmp eq ptr %23, null - br i1 %tobool.not.i.i.i, label %if.then84, label %if.end.i.i.i262 + br i1 %tobool.not.i.i.i, label %if.then84, label %if.end.i.i.i260 -if.end.i.i.i262: ; preds = %if.end15.i +if.end.i.i.i260: ; preds = %if.end15.i %24 = load ptr, ptr %23, align 8 %add.ptr.phi.trans.insert.i.i.i = getelementptr inbounds i8, ptr %24, i64 8 %.pre.i.i.i = load i32, ptr %add.ptr.phi.trans.insert.i.i.i, align 4 br label %for.cond.i.i.i -for.cond.i.i.i: ; preds = %lor.lhs.false.i.i.i, %if.end.i.i.i262 - %25 = phi i32 [ %.pre.i.i.i, %if.end.i.i.i262 ], [ %30, %lor.lhs.false.i.i.i ] - %26 = phi ptr [ %24, %if.end.i.i.i262 ], [ %29, %lor.lhs.false.i.i.i ] - %cmp.i.i.i.i.i.i.i263 = icmp eq i32 %25, %ref.tmp69.sroa.0.sroa.0.0.extract.trunc - br i1 %cmp.i.i.i.i.i.i.i263, label %land.lhs.true.i.i.i.i.i.i.i, label %if.end3.i.i.i +for.cond.i.i.i: ; preds = %lor.lhs.false.i.i.i, %if.end.i.i.i260 + %25 = phi i32 [ %.pre.i.i.i, %if.end.i.i.i260 ], [ %30, %lor.lhs.false.i.i.i ] + %26 = phi ptr [ %24, %if.end.i.i.i260 ], [ %29, %lor.lhs.false.i.i.i ] + %cmp.i.i.i.i.i.i.i261 = icmp eq i32 %25, %ref.tmp69.sroa.0.sroa.0.0.extract.trunc + br i1 %cmp.i.i.i.i.i.i.i261, label %land.lhs.true.i.i.i.i.i.i.i, label %if.end3.i.i.i land.lhs.true.i.i.i.i.i.i.i: ; preds = %for.cond.i.i.i %arrayidx.i.i3.i.i.i.i.i.i.i = getelementptr inbounds i8, ptr %26, i64 12 @@ -19172,7 +19172,7 @@ land.lhs.true.i.i.i.i.i.i.i: ; preds = %for.cond.i.i.i _ZNKSt8__detail15_Hashtable_baseIN7openvdb5v11_04math5CoordESt4pairIKS4_hENS_10_Select1stESt8equal_toIS4_ESt4hashIS4_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_equalsERS6_mRKNS_16_Hash_node_valueIS7_Lb0EEE.exit.i.i.i: ; preds = %land.lhs.true.i.i.i.i.i.i.i %arrayidx.i.i5.i.i.i.i.i.i.i = getelementptr inbounds i8, ptr %26, i64 16 %28 = load i32, ptr %arrayidx.i.i5.i.i.i.i.i.i.i, align 4 - %cmp13.i.i.i.i.i.i.i = icmp eq i32 %retval.sroa.2.0.copyload.i110, %28 + %cmp13.i.i.i.i.i.i.i = icmp eq i32 %retval.sroa.2.0.copyload.i108, %28 br i1 %cmp13.i.i.i.i.i.i.i, label %if.else, label %if.end3.i.i.i if.end3.i.i.i: ; preds = %_ZNKSt8__detail15_Hashtable_baseIN7openvdb5v11_04math5CoordESt4pairIKS4_hENS_10_Select1stESt8equal_toIS4_ESt4hashIS4_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_equalsERS6_mRKNS_16_Hash_node_valueIS7_Lb0EEE.exit.i.i.i, %land.lhs.true.i.i.i.i.i.i.i, %for.cond.i.i.i @@ -19198,41 +19198,41 @@ lor.lhs.false.i.i.i: ; preds = %if.end3.i.i.i %cmp.not.i.i.i = icmp eq i64 %rem.i.i.i.i.i.i, %rem.i.i.i.i br i1 %cmp.not.i.i.i, label %for.cond.i.i.i, label %if.then84, !llvm.loop !132 -if.then84: ; preds = %for.inc.i, %lor.lhs.false.i.i.i, %if.end3.i.i.i, %if.end15.i, %if.then.i264 - %call5.i.i.i.i.i327 = invoke noalias noundef nonnull dereferenceable(24) ptr @_Znwm(i64 noundef 24) #22 +if.then84: ; preds = %for.inc.i, %lor.lhs.false.i.i.i, %if.end3.i.i.i, %if.end15.i, %if.then.i262 + %call5.i.i.i.i.i325 = invoke noalias noundef nonnull dereferenceable(24) ptr @_Znwm(i64 noundef 24) #22 to label %call5.i.i.i.i.i.noexc unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit call5.i.i.i.i.i.noexc: ; preds = %if.then84 - store ptr null, ptr %call5.i.i.i.i.i327, align 8 - %add.ptr.i.i.i = getelementptr inbounds i8, ptr %call5.i.i.i.i.i327, i64 8 - store i64 %retval.sroa.0.0.copyload.i108, ptr %add.ptr.i.i.i, align 4 - %ref.tmp85.sroa.0.sroa.2.0.add.ptr.i.i.i.sroa_idx = getelementptr inbounds i8, ptr %call5.i.i.i.i.i327, i64 16 - store i32 %retval.sroa.2.0.copyload.i110, ptr %ref.tmp85.sroa.0.sroa.2.0.add.ptr.i.i.i.sroa_idx, align 4 - %ref.tmp85.sroa.2.0.add.ptr.i.i.i.sroa_idx = getelementptr inbounds i8, ptr %call5.i.i.i.i.i327, i64 20 + store ptr null, ptr %call5.i.i.i.i.i325, align 8 + %add.ptr.i.i.i = getelementptr inbounds i8, ptr %call5.i.i.i.i.i325, i64 8 + store i64 %retval.sroa.0.0.copyload.i106, ptr %add.ptr.i.i.i, align 4 + %ref.tmp85.sroa.0.sroa.2.0.add.ptr.i.i.i.sroa_idx = getelementptr inbounds i8, ptr %call5.i.i.i.i.i325, i64 16 + store i32 %retval.sroa.2.0.copyload.i108, ptr %ref.tmp85.sroa.0.sroa.2.0.add.ptr.i.i.i.sroa_idx, align 4 + %ref.tmp85.sroa.2.0.add.ptr.i.i.i.sroa_idx = getelementptr inbounds i8, ptr %call5.i.i.i.i.i325, i64 20 store i8 1, ptr %ref.tmp85.sroa.2.0.add.ptr.i.i.i.sroa_idx, align 4 %__it.sroa.0.036.i = load ptr, ptr %_M_before_begin.i.i, align 8 %cmp.i.not37.i = icmp eq ptr %__it.sroa.0.036.i, null %or.cond = select i1 %cmp.not.not.i, i1 true, i1 %cmp.i.not37.i - br i1 %or.cond, label %invoke.cont21.i, label %for.body.i318 + br i1 %or.cond, label %invoke.cont21.i, label %for.body.i316 -for.body.i318: ; preds = %call5.i.i.i.i.i.noexc, %for.inc.i320 - %__it.sroa.0.038.i = phi ptr [ %__it.sroa.0.0.i, %for.inc.i320 ], [ %__it.sroa.0.036.i, %call5.i.i.i.i.i.noexc ] +for.body.i316: ; preds = %call5.i.i.i.i.i.noexc, %for.inc.i318 + %__it.sroa.0.038.i = phi ptr [ %__it.sroa.0.0.i, %for.inc.i318 ], [ %__it.sroa.0.036.i, %call5.i.i.i.i.i.noexc ] %add.ptr12.i = getelementptr inbounds i8, ptr %__it.sroa.0.038.i, i64 8 %33 = load i32, ptr %add.ptr12.i, align 4 - %cmp.i.i.i.i319 = icmp eq i32 %33, %ref.tmp69.sroa.0.sroa.0.0.extract.trunc - br i1 %cmp.i.i.i.i319, label %land.lhs.true.i.i.i.i322, label %for.inc.i320 + %cmp.i.i.i.i317 = icmp eq i32 %33, %ref.tmp69.sroa.0.sroa.0.0.extract.trunc + br i1 %cmp.i.i.i.i317, label %land.lhs.true.i.i.i.i320, label %for.inc.i318 -land.lhs.true.i.i.i.i322: ; preds = %for.body.i318 - %arrayidx.i.i3.i.i.i.i323 = getelementptr inbounds i8, ptr %__it.sroa.0.038.i, i64 12 - %34 = load i32, ptr %arrayidx.i.i3.i.i.i.i323, align 4 - %cmp8.i.i.i.i324 = icmp eq i32 %34, %ref.tmp69.sroa.0.sroa.4.0.extract.trunc - br i1 %cmp8.i.i.i.i324, label %invoke.cont.i, label %for.inc.i320 +land.lhs.true.i.i.i.i320: ; preds = %for.body.i316 + %arrayidx.i.i3.i.i.i.i321 = getelementptr inbounds i8, ptr %__it.sroa.0.038.i, i64 12 + %34 = load i32, ptr %arrayidx.i.i3.i.i.i.i321, align 4 + %cmp8.i.i.i.i322 = icmp eq i32 %34, %ref.tmp69.sroa.0.sroa.4.0.extract.trunc + br i1 %cmp8.i.i.i.i322, label %invoke.cont.i, label %for.inc.i318 -invoke.cont.i: ; preds = %land.lhs.true.i.i.i.i322 - %arrayidx.i.i5.i.i.i.i325 = getelementptr inbounds i8, ptr %__it.sroa.0.038.i, i64 16 - %35 = load i32, ptr %arrayidx.i.i5.i.i.i.i325, align 4 - %cmp13.i.i.i.i326 = icmp eq i32 %retval.sroa.2.0.copyload.i110, %35 - br i1 %cmp13.i.i.i.i326, label %if.then.i15.i, label %for.inc.i320 +invoke.cont.i: ; preds = %land.lhs.true.i.i.i.i320 + %arrayidx.i.i5.i.i.i.i323 = getelementptr inbounds i8, ptr %__it.sroa.0.038.i, i64 16 + %35 = load i32, ptr %arrayidx.i.i5.i.i.i.i323, align 4 + %cmp13.i.i.i.i324 = icmp eq i32 %retval.sroa.2.0.copyload.i108, %35 + br i1 %cmp13.i.i.i.i324, label %if.then.i15.i, label %for.inc.i318 _ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE12_Scoped_nodeD2Ev.exit.i: ; preds = %if.end34.i %36 = landingpad { ptr, i32 } @@ -19240,111 +19240,111 @@ _ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10 br label %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE12_Scoped_nodeD2Ev.exit.i.body _ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE12_Scoped_nodeD2Ev.exit.i.body: ; preds = %lpad2.i.i, %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE12_Scoped_nodeD2Ev.exit.i - %eh.lpad-body481 = phi { ptr, i32 } [ %36, %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE12_Scoped_nodeD2Ev.exit.i ], [ %65, %lpad2.i.i ] - call void @_ZdlPv(ptr noundef nonnull %call5.i.i.i.i.i327) #23 + %eh.lpad-body479 = phi { ptr, i32 } [ %36, %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE12_Scoped_nodeD2Ev.exit.i ], [ %65, %lpad2.i.i ] + call void @_ZdlPv(ptr noundef nonnull %call5.i.i.i.i.i325) #23 br label %ehcleanup -for.inc.i320: ; preds = %invoke.cont.i, %land.lhs.true.i.i.i.i322, %for.body.i318 +for.inc.i318: ; preds = %invoke.cont.i, %land.lhs.true.i.i.i.i320, %for.body.i316 %__it.sroa.0.0.i = load ptr, ptr %__it.sroa.0.038.i, align 8 - %cmp.i.not.i321 = icmp eq ptr %__it.sroa.0.0.i, null - br i1 %cmp.i.not.i321, label %invoke.cont21.i, label %for.body.i318, !llvm.loop !133 - -invoke.cont21.i: ; preds = %for.inc.i320, %call5.i.i.i.i.i.noexc - %mul.i.i.i.i272 = mul i32 %ref.tmp69.sroa.0.sroa.0.0.extract.trunc, 455773 - %mul3.i.i.i.i274 = mul i32 %ref.tmp69.sroa.0.sroa.4.0.extract.trunc, 475301 - %xor.i.i.i.i275 = xor i32 %mul3.i.i.i.i274, %mul.i.i.i.i272 - %mul5.i.i.i.i277 = mul i32 %retval.sroa.2.0.copyload.i110, 655287 - %xor6.i.i.i.i278 = xor i32 %xor.i.i.i.i275, %mul5.i.i.i.i277 - %and.i.i.i.i279 = and i32 %xor6.i.i.i.i278, 1048575 - %conv.i.i.i.i280 = zext nneg i32 %and.i.i.i.i279 to i64 + %cmp.i.not.i319 = icmp eq ptr %__it.sroa.0.0.i, null + br i1 %cmp.i.not.i319, label %invoke.cont21.i, label %for.body.i316, !llvm.loop !133 + +invoke.cont21.i: ; preds = %for.inc.i318, %call5.i.i.i.i.i.noexc + %mul.i.i.i.i270 = mul i32 %ref.tmp69.sroa.0.sroa.0.0.extract.trunc, 455773 + %mul3.i.i.i.i272 = mul i32 %ref.tmp69.sroa.0.sroa.4.0.extract.trunc, 475301 + %xor.i.i.i.i273 = xor i32 %mul3.i.i.i.i272, %mul.i.i.i.i270 + %mul5.i.i.i.i275 = mul i32 %retval.sroa.2.0.copyload.i108, 655287 + %xor6.i.i.i.i276 = xor i32 %xor.i.i.i.i273, %mul5.i.i.i.i275 + %and.i.i.i.i277 = and i32 %xor6.i.i.i.i276, 1048575 + %conv.i.i.i.i278 = zext nneg i32 %and.i.i.i.i277 to i64 %37 = load i64, ptr %_M_bucket_count.i.i, align 8 - %rem.i.i.i.i282 = urem i64 %conv.i.i.i.i280, %37 + %rem.i.i.i.i280 = urem i64 %conv.i.i.i.i278, %37 br i1 %cmp.not.not.i, label %if.then26.i, label %if.end34.i if.then26.i: ; preds = %invoke.cont21.i %38 = load ptr, ptr %children, align 8 - %arrayidx.i.i.i283 = getelementptr inbounds ptr, ptr %38, i64 %rem.i.i.i.i282 - %39 = load ptr, ptr %arrayidx.i.i.i283, align 8 - %tobool.not.i.i.i284 = icmp eq ptr %39, null - br i1 %tobool.not.i.i.i284, label %if.end34.i, label %if.end.i.i.i285 + %arrayidx.i.i.i281 = getelementptr inbounds ptr, ptr %38, i64 %rem.i.i.i.i280 + %39 = load ptr, ptr %arrayidx.i.i.i281, align 8 + %tobool.not.i.i.i282 = icmp eq ptr %39, null + br i1 %tobool.not.i.i.i282, label %if.end34.i, label %if.end.i.i.i283 -if.end.i.i.i285: ; preds = %if.then26.i +if.end.i.i.i283: ; preds = %if.then26.i %40 = load ptr, ptr %39, align 8 - %add.ptr.phi.trans.insert.i.i.i286 = getelementptr inbounds i8, ptr %40, i64 8 - %.pre.i.i.i287 = load i32, ptr %add.ptr.phi.trans.insert.i.i.i286, align 4 - br label %for.cond.i.i.i288 - -for.cond.i.i.i288: ; preds = %lor.lhs.false.i.i.i292, %if.end.i.i.i285 - %41 = phi i32 [ %.pre.i.i.i287, %if.end.i.i.i285 ], [ %46, %lor.lhs.false.i.i.i292 ] - %42 = phi ptr [ %40, %if.end.i.i.i285 ], [ %45, %lor.lhs.false.i.i.i292 ] - %cmp.i.i.i.i.i.i.i289 = icmp eq i32 %41, %ref.tmp69.sroa.0.sroa.0.0.extract.trunc - br i1 %cmp.i.i.i.i.i.i.i289, label %land.lhs.true.i.i.i.i.i.i.i307, label %if.end3.i.i.i290 - -land.lhs.true.i.i.i.i.i.i.i307: ; preds = %for.cond.i.i.i288 - %arrayidx.i.i3.i.i.i.i.i.i.i308 = getelementptr inbounds i8, ptr %42, i64 12 - %43 = load i32, ptr %arrayidx.i.i3.i.i.i.i.i.i.i308, align 4 - %cmp8.i.i.i.i.i.i.i309 = icmp eq i32 %43, %ref.tmp69.sroa.0.sroa.4.0.extract.trunc - br i1 %cmp8.i.i.i.i.i.i.i309, label %_ZNKSt8__detail15_Hashtable_baseIN7openvdb5v11_04math5CoordESt4pairIKS4_hENS_10_Select1stESt8equal_toIS4_ESt4hashIS4_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_equalsERS6_mRKNS_16_Hash_node_valueIS7_Lb0EEE.exit.i.i.i310, label %if.end3.i.i.i290 - -_ZNKSt8__detail15_Hashtable_baseIN7openvdb5v11_04math5CoordESt4pairIKS4_hENS_10_Select1stESt8equal_toIS4_ESt4hashIS4_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_equalsERS6_mRKNS_16_Hash_node_valueIS7_Lb0EEE.exit.i.i.i310: ; preds = %land.lhs.true.i.i.i.i.i.i.i307 - %arrayidx.i.i5.i.i.i.i.i.i.i311 = getelementptr inbounds i8, ptr %42, i64 16 - %44 = load i32, ptr %arrayidx.i.i5.i.i.i.i.i.i.i311, align 4 - %cmp13.i.i.i.i.i.i.i312 = icmp eq i32 %retval.sroa.2.0.copyload.i110, %44 - br i1 %cmp13.i.i.i.i.i.i.i312, label %if.then.i15.i, label %if.end3.i.i.i290 - -if.end3.i.i.i290: ; preds = %_ZNKSt8__detail15_Hashtable_baseIN7openvdb5v11_04math5CoordESt4pairIKS4_hENS_10_Select1stESt8equal_toIS4_ESt4hashIS4_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_equalsERS6_mRKNS_16_Hash_node_valueIS7_Lb0EEE.exit.i.i.i310, %land.lhs.true.i.i.i.i.i.i.i307, %for.cond.i.i.i288 + %add.ptr.phi.trans.insert.i.i.i284 = getelementptr inbounds i8, ptr %40, i64 8 + %.pre.i.i.i285 = load i32, ptr %add.ptr.phi.trans.insert.i.i.i284, align 4 + br label %for.cond.i.i.i286 + +for.cond.i.i.i286: ; preds = %lor.lhs.false.i.i.i290, %if.end.i.i.i283 + %41 = phi i32 [ %.pre.i.i.i285, %if.end.i.i.i283 ], [ %46, %lor.lhs.false.i.i.i290 ] + %42 = phi ptr [ %40, %if.end.i.i.i283 ], [ %45, %lor.lhs.false.i.i.i290 ] + %cmp.i.i.i.i.i.i.i287 = icmp eq i32 %41, %ref.tmp69.sroa.0.sroa.0.0.extract.trunc + br i1 %cmp.i.i.i.i.i.i.i287, label %land.lhs.true.i.i.i.i.i.i.i305, label %if.end3.i.i.i288 + +land.lhs.true.i.i.i.i.i.i.i305: ; preds = %for.cond.i.i.i286 + %arrayidx.i.i3.i.i.i.i.i.i.i306 = getelementptr inbounds i8, ptr %42, i64 12 + %43 = load i32, ptr %arrayidx.i.i3.i.i.i.i.i.i.i306, align 4 + %cmp8.i.i.i.i.i.i.i307 = icmp eq i32 %43, %ref.tmp69.sroa.0.sroa.4.0.extract.trunc + br i1 %cmp8.i.i.i.i.i.i.i307, label %_ZNKSt8__detail15_Hashtable_baseIN7openvdb5v11_04math5CoordESt4pairIKS4_hENS_10_Select1stESt8equal_toIS4_ESt4hashIS4_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_equalsERS6_mRKNS_16_Hash_node_valueIS7_Lb0EEE.exit.i.i.i308, label %if.end3.i.i.i288 + +_ZNKSt8__detail15_Hashtable_baseIN7openvdb5v11_04math5CoordESt4pairIKS4_hENS_10_Select1stESt8equal_toIS4_ESt4hashIS4_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_equalsERS6_mRKNS_16_Hash_node_valueIS7_Lb0EEE.exit.i.i.i308: ; preds = %land.lhs.true.i.i.i.i.i.i.i305 + %arrayidx.i.i5.i.i.i.i.i.i.i309 = getelementptr inbounds i8, ptr %42, i64 16 + %44 = load i32, ptr %arrayidx.i.i5.i.i.i.i.i.i.i309, align 4 + %cmp13.i.i.i.i.i.i.i310 = icmp eq i32 %retval.sroa.2.0.copyload.i108, %44 + br i1 %cmp13.i.i.i.i.i.i.i310, label %if.then.i15.i, label %if.end3.i.i.i288 + +if.end3.i.i.i288: ; preds = %_ZNKSt8__detail15_Hashtable_baseIN7openvdb5v11_04math5CoordESt4pairIKS4_hENS_10_Select1stESt8equal_toIS4_ESt4hashIS4_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_equalsERS6_mRKNS_16_Hash_node_valueIS7_Lb0EEE.exit.i.i.i308, %land.lhs.true.i.i.i.i.i.i.i305, %for.cond.i.i.i286 %45 = load ptr, ptr %42, align 8 - %tobool5.not.i.i.i291 = icmp eq ptr %45, null - br i1 %tobool5.not.i.i.i291, label %if.end34.i, label %lor.lhs.false.i.i.i292 - -lor.lhs.false.i.i.i292: ; preds = %if.end3.i.i.i290 - %add.ptr7.i.i.i293 = getelementptr inbounds i8, ptr %45, i64 8 - %46 = load i32, ptr %add.ptr7.i.i.i293, align 4 - %mul.i.i.i.i.i.i.i.i294 = mul i32 %46, 455773 - %arrayidx2.i.i.i.i.i.i.i.i295 = getelementptr inbounds i8, ptr %45, i64 12 - %47 = load i32, ptr %arrayidx2.i.i.i.i.i.i.i.i295, align 4 - %mul3.i.i.i.i.i.i.i.i296 = mul i32 %47, 475301 - %xor.i.i.i.i.i.i.i.i297 = xor i32 %mul3.i.i.i.i.i.i.i.i296, %mul.i.i.i.i.i.i.i.i294 - %arrayidx4.i.i.i.i.i.i.i.i298 = getelementptr inbounds i8, ptr %45, i64 16 - %48 = load i32, ptr %arrayidx4.i.i.i.i.i.i.i.i298, align 4 - %mul5.i.i.i.i.i.i.i.i299 = mul i32 %48, 655287 - %xor6.i.i.i.i.i.i.i.i300 = xor i32 %xor.i.i.i.i.i.i.i.i297, %mul5.i.i.i.i.i.i.i.i299 - %and.i.i.i.i.i.i.i.i301 = and i32 %xor6.i.i.i.i.i.i.i.i300, 1048575 - %conv.i.i.i.i.i.i.i.i302 = zext nneg i32 %and.i.i.i.i.i.i.i.i301 to i64 - %rem.i.i.i.i.i.i303 = urem i64 %conv.i.i.i.i.i.i.i.i302, %37 - %cmp.not.i.i.i304 = icmp eq i64 %rem.i.i.i.i.i.i303, %rem.i.i.i.i282 - br i1 %cmp.not.i.i.i304, label %for.cond.i.i.i288, label %if.end34.i, !llvm.loop !132 - -if.end34.i: ; preds = %lor.lhs.false.i.i.i292, %if.end3.i.i.i290, %if.then26.i, %invoke.cont21.i + %tobool5.not.i.i.i289 = icmp eq ptr %45, null + br i1 %tobool5.not.i.i.i289, label %if.end34.i, label %lor.lhs.false.i.i.i290 + +lor.lhs.false.i.i.i290: ; preds = %if.end3.i.i.i288 + %add.ptr7.i.i.i291 = getelementptr inbounds i8, ptr %45, i64 8 + %46 = load i32, ptr %add.ptr7.i.i.i291, align 4 + %mul.i.i.i.i.i.i.i.i292 = mul i32 %46, 455773 + %arrayidx2.i.i.i.i.i.i.i.i293 = getelementptr inbounds i8, ptr %45, i64 12 + %47 = load i32, ptr %arrayidx2.i.i.i.i.i.i.i.i293, align 4 + %mul3.i.i.i.i.i.i.i.i294 = mul i32 %47, 475301 + %xor.i.i.i.i.i.i.i.i295 = xor i32 %mul3.i.i.i.i.i.i.i.i294, %mul.i.i.i.i.i.i.i.i292 + %arrayidx4.i.i.i.i.i.i.i.i296 = getelementptr inbounds i8, ptr %45, i64 16 + %48 = load i32, ptr %arrayidx4.i.i.i.i.i.i.i.i296, align 4 + %mul5.i.i.i.i.i.i.i.i297 = mul i32 %48, 655287 + %xor6.i.i.i.i.i.i.i.i298 = xor i32 %xor.i.i.i.i.i.i.i.i295, %mul5.i.i.i.i.i.i.i.i297 + %and.i.i.i.i.i.i.i.i299 = and i32 %xor6.i.i.i.i.i.i.i.i298, 1048575 + %conv.i.i.i.i.i.i.i.i300 = zext nneg i32 %and.i.i.i.i.i.i.i.i299 to i64 + %rem.i.i.i.i.i.i301 = urem i64 %conv.i.i.i.i.i.i.i.i300, %37 + %cmp.not.i.i.i302 = icmp eq i64 %rem.i.i.i.i.i.i301, %rem.i.i.i.i280 + br i1 %cmp.not.i.i.i302, label %for.cond.i.i.i286, label %if.end34.i, !llvm.loop !132 + +if.end34.i: ; preds = %lor.lhs.false.i.i.i290, %if.end3.i.i.i288, %if.then26.i, %invoke.cont21.i %49 = load i64, ptr %_M_next_resize.i.i.i, align 8 - %call3.i480 = invoke { i8, i64 } @_ZNKSt8__detail20_Prime_rehash_policy14_M_need_rehashEmmm(ptr noundef nonnull align 8 dereferenceable(16) %_M_rehash_policy.i.i, i64 noundef %37, i64 noundef %17, i64 noundef 1) + %call3.i478 = invoke { i8, i64 } @_ZNKSt8__detail20_Prime_rehash_policy14_M_need_rehashEmmm(ptr noundef nonnull align 8 dereferenceable(16) %_M_rehash_policy.i.i, i64 noundef %37, i64 noundef %17, i64 noundef 1) to label %call3.i.noexc unwind label %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE12_Scoped_nodeD2Ev.exit.i call3.i.noexc: ; preds = %if.end34.i - %50 = extractvalue { i8, i64 } %call3.i480, 0 + %50 = extractvalue { i8, i64 } %call3.i478, 0 %tobool.i = trunc i8 %50 to i1 - br i1 %tobool.i, label %if.then.i478, label %call3.i.noexc.if.end.i473_crit_edge + br i1 %tobool.i, label %if.then.i476, label %call3.i.noexc.if.end.i471_crit_edge -call3.i.noexc.if.end.i473_crit_edge: ; preds = %call3.i.noexc - %.pre745 = load ptr, ptr %children, align 8 - br label %if.end.i473 +call3.i.noexc.if.end.i471_crit_edge: ; preds = %call3.i.noexc + %.pre747 = load ptr, ptr %children, align 8 + br label %if.end.i471 -if.then.i478: ; preds = %call3.i.noexc - %51 = extractvalue { i8, i64 } %call3.i480, 1 - %cmp.i.i524 = icmp eq i64 %51, 1 - br i1 %cmp.i.i524, label %if.then.i.i537, label %if.end.i.i525 +if.then.i476: ; preds = %call3.i.noexc + %51 = extractvalue { i8, i64 } %call3.i478, 1 + %cmp.i.i522 = icmp eq i64 %51, 1 + br i1 %cmp.i.i522, label %if.then.i.i535, label %if.end.i.i523 -if.then.i.i537: ; preds = %if.then.i478 +if.then.i.i535: ; preds = %if.then.i476 store ptr null, ptr %_M_single_bucket.i.i, align 8 br label %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE19_M_allocate_bucketsEm.exit.i -if.end.i.i525: ; preds = %if.then.i478 - %cmp.i.i.i.i.i526 = icmp ugt i64 %51, 1152921504606846975 - br i1 %cmp.i.i.i.i.i526, label %if.then.i.i.i.i.i, label %_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeISt4pairIKN7openvdb5v11_04math5CoordEhELb0EEEEE19_M_allocate_bucketsEm.exit.i.i +if.end.i.i523: ; preds = %if.then.i476 + %cmp.i.i.i.i.i524 = icmp ugt i64 %51, 1152921504606846975 + br i1 %cmp.i.i.i.i.i524, label %if.then.i.i.i.i.i, label %_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeISt4pairIKN7openvdb5v11_04math5CoordEhELb0EEEEE19_M_allocate_bucketsEm.exit.i.i -if.then.i.i.i.i.i: ; preds = %if.end.i.i525 +if.then.i.i.i.i.i: ; preds = %if.end.i.i523 %cmp2.i.i.i.i.i = icmp ugt i64 %51, 2305843009213693951 - br i1 %cmp2.i.i.i.i.i, label %if.then3.i.i.i.i.i, label %if.end.i.i.i.i.i536 + br i1 %cmp2.i.i.i.i.i, label %if.then3.i.i.i.i.i, label %if.end.i.i.i.i.i534 if.then3.i.i.i.i.i: ; preds = %if.then.i.i.i.i.i invoke void @_ZSt28__throw_bad_array_new_lengthv() #24 @@ -19353,24 +19353,24 @@ if.then3.i.i.i.i.i: ; preds = %if.then.i.i.i.i.i .noexc: ; preds = %if.then3.i.i.i.i.i unreachable -if.end.i.i.i.i.i536: ; preds = %if.then.i.i.i.i.i +if.end.i.i.i.i.i534: ; preds = %if.then.i.i.i.i.i invoke void @_ZSt17__throw_bad_allocv() #24 - to label %.noexc539 unwind label %lpad.i.i.loopexit.split-lp + to label %.noexc537 unwind label %lpad.i.i.loopexit.split-lp -.noexc539: ; preds = %if.end.i.i.i.i.i536 +.noexc537: ; preds = %if.end.i.i.i.i.i534 unreachable -_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeISt4pairIKN7openvdb5v11_04math5CoordEhELb0EEEEE19_M_allocate_bucketsEm.exit.i.i: ; preds = %if.end.i.i525 +_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeISt4pairIKN7openvdb5v11_04math5CoordEhELb0EEEEE19_M_allocate_bucketsEm.exit.i.i: ; preds = %if.end.i.i523 %mul.i.i.i.i.i = shl nuw nsw i64 %51, 3 - %call5.i.i4.i.i.i540 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef %mul.i.i.i.i.i) #22 + %call5.i.i4.i.i.i538 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef %mul.i.i.i.i.i) #22 to label %call5.i.i4.i.i.i.noexc unwind label %lpad.i.i.loopexit call5.i.i4.i.i.i.noexc: ; preds = %_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeISt4pairIKN7openvdb5v11_04math5CoordEhELb0EEEEE19_M_allocate_bucketsEm.exit.i.i - call void @llvm.memset.p0.i64(ptr nonnull align 8 %call5.i.i4.i.i.i540, i8 0, i64 %mul.i.i.i.i.i, i1 false) + call void @llvm.memset.p0.i64(ptr nonnull align 8 %call5.i.i4.i.i.i538, i8 0, i64 %mul.i.i.i.i.i, i1 false) br label %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE19_M_allocate_bucketsEm.exit.i -_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE19_M_allocate_bucketsEm.exit.i: ; preds = %call5.i.i4.i.i.i.noexc, %if.then.i.i537 - %retval.0.i.i527 = phi ptr [ %_M_single_bucket.i.i, %if.then.i.i537 ], [ %call5.i.i4.i.i.i540, %call5.i.i4.i.i.i.noexc ] +_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE19_M_allocate_bucketsEm.exit.i: ; preds = %call5.i.i4.i.i.i.noexc, %if.then.i.i535 + %retval.0.i.i525 = phi ptr [ %_M_single_bucket.i.i, %if.then.i.i535 ], [ %call5.i.i4.i.i.i538, %call5.i.i4.i.i.i.noexc ] %52 = load ptr, ptr %_M_before_begin.i.i, align 8 store ptr null, ptr %_M_before_begin.i.i, align 8 %tobool.not21.i = icmp eq ptr %52, null @@ -19380,8 +19380,8 @@ while.body.i: ; preds = %_ZNSt10_HashtableIN %__p.023.i = phi ptr [ %53, %if.end22.i ], [ %52, %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE19_M_allocate_bucketsEm.exit.i ] %__bbegin_bkt.022.i = phi i64 [ %__bbegin_bkt.1.i, %if.end22.i ], [ 0, %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE19_M_allocate_bucketsEm.exit.i ] %53 = load ptr, ptr %__p.023.i, align 8 - %add.ptr.i529 = getelementptr inbounds i8, ptr %__p.023.i, i64 8 - %54 = load i32, ptr %add.ptr.i529, align 4 + %add.ptr.i527 = getelementptr inbounds i8, ptr %__p.023.i, i64 8 + %54 = load i32, ptr %add.ptr.i527, align 4 %mul.i.i.i.i20.i = mul i32 %54, 455773 %arrayidx2.i.i.i.i.i = getelementptr inbounds i8, ptr %__p.023.i, i64 12 %55 = load i32, ptr %arrayidx2.i.i.i.i.i, align 4 @@ -19391,15 +19391,15 @@ while.body.i: ; preds = %_ZNSt10_HashtableIN %56 = load i32, ptr %arrayidx4.i.i.i.i.i, align 4 %mul5.i.i.i.i.i = mul i32 %56, 655287 %xor6.i.i.i.i.i = xor i32 %xor.i.i.i.i.i, %mul5.i.i.i.i.i - %and.i.i.i.i.i530 = and i32 %xor6.i.i.i.i.i, 1048575 - %conv.i.i.i.i.i = zext nneg i32 %and.i.i.i.i.i530 to i64 + %and.i.i.i.i.i528 = and i32 %xor6.i.i.i.i.i, 1048575 + %conv.i.i.i.i.i = zext nneg i32 %and.i.i.i.i.i528 to i64 %rem.i.i.i = urem i64 %conv.i.i.i.i.i, %51 - %arrayidx.i = getelementptr inbounds ptr, ptr %retval.0.i.i527, i64 %rem.i.i.i + %arrayidx.i = getelementptr inbounds ptr, ptr %retval.0.i.i525, i64 %rem.i.i.i %57 = load ptr, ptr %arrayidx.i, align 8 %tobool5.not.i = icmp eq ptr %57, null - br i1 %tobool5.not.i, label %if.then.i535, label %if.else.i531 + br i1 %tobool5.not.i, label %if.then.i533, label %if.else.i529 -if.then.i535: ; preds = %while.body.i +if.then.i533: ; preds = %while.body.i %58 = load ptr, ptr %_M_before_begin.i.i, align 8 store ptr %58, ptr %__p.023.i, align 8 store ptr %__p.023.i, ptr %_M_before_begin.i.i, align 8 @@ -19408,49 +19408,49 @@ if.then.i535: ; preds = %while.body.i %tobool14.not.i = icmp eq ptr %59, null br i1 %tobool14.not.i, label %if.end22.i, label %if.then15.i -if.then15.i: ; preds = %if.then.i535 - %arrayidx16.i = getelementptr inbounds ptr, ptr %retval.0.i.i527, i64 %__bbegin_bkt.022.i +if.then15.i: ; preds = %if.then.i533 + %arrayidx16.i = getelementptr inbounds ptr, ptr %retval.0.i.i525, i64 %__bbegin_bkt.022.i br label %if.end22.sink.split.i -if.else.i531: ; preds = %while.body.i +if.else.i529: ; preds = %while.body.i %60 = load ptr, ptr %57, align 8 store ptr %60, ptr %__p.023.i, align 8 %61 = load ptr, ptr %arrayidx.i, align 8 br label %if.end22.sink.split.i -if.end22.sink.split.i: ; preds = %if.else.i531, %if.then15.i - %arrayidx16.sink.i = phi ptr [ %arrayidx16.i, %if.then15.i ], [ %61, %if.else.i531 ] - %__bbegin_bkt.1.ph.i = phi i64 [ %rem.i.i.i, %if.then15.i ], [ %__bbegin_bkt.022.i, %if.else.i531 ] +if.end22.sink.split.i: ; preds = %if.else.i529, %if.then15.i + %arrayidx16.sink.i = phi ptr [ %arrayidx16.i, %if.then15.i ], [ %61, %if.else.i529 ] + %__bbegin_bkt.1.ph.i = phi i64 [ %rem.i.i.i, %if.then15.i ], [ %__bbegin_bkt.022.i, %if.else.i529 ] store ptr %__p.023.i, ptr %arrayidx16.sink.i, align 8 br label %if.end22.i -if.end22.i: ; preds = %if.end22.sink.split.i, %if.then.i535 - %__bbegin_bkt.1.i = phi i64 [ %rem.i.i.i, %if.then.i535 ], [ %__bbegin_bkt.1.ph.i, %if.end22.sink.split.i ] +if.end22.i: ; preds = %if.end22.sink.split.i, %if.then.i533 + %__bbegin_bkt.1.i = phi i64 [ %rem.i.i.i, %if.then.i533 ], [ %__bbegin_bkt.1.ph.i, %if.end22.sink.split.i ] %tobool.not.i = icmp eq ptr %53, null br i1 %tobool.not.i, label %while.end.i, label %while.body.i, !llvm.loop !134 while.end.i: ; preds = %if.end22.i, %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE19_M_allocate_bucketsEm.exit.i %62 = load ptr, ptr %children, align 8 - %cmp.i.i.i.i532 = icmp eq ptr %_M_single_bucket.i.i, %62 - br i1 %cmp.i.i.i.i532, label %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_rehashEmRKm.exit.i, label %if.end.i.i.i533 + %cmp.i.i.i.i530 = icmp eq ptr %_M_single_bucket.i.i, %62 + br i1 %cmp.i.i.i.i530, label %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_rehashEmRKm.exit.i, label %if.end.i.i.i531 -if.end.i.i.i533: ; preds = %while.end.i +if.end.i.i.i531: ; preds = %while.end.i call void @_ZdlPv(ptr noundef %62) #23 br label %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_rehashEmRKm.exit.i lpad.i.i.loopexit: ; preds = %_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeISt4pairIKN7openvdb5v11_04math5CoordEhELb0EEEEE19_M_allocate_bucketsEm.exit.i.i - %lpad.loopexit656 = landingpad { ptr, i32 } + %lpad.loopexit654 = landingpad { ptr, i32 } catch ptr null br label %lpad.i.i -lpad.i.i.loopexit.split-lp: ; preds = %if.then3.i.i.i.i.i, %if.end.i.i.i.i.i536 - %lpad.loopexit.split-lp657 = landingpad { ptr, i32 } +lpad.i.i.loopexit.split-lp: ; preds = %if.then3.i.i.i.i.i, %if.end.i.i.i.i.i534 + %lpad.loopexit.split-lp655 = landingpad { ptr, i32 } catch ptr null br label %lpad.i.i lpad.i.i: ; preds = %lpad.i.i.loopexit.split-lp, %lpad.i.i.loopexit - %lpad.phi658 = phi { ptr, i32 } [ %lpad.loopexit656, %lpad.i.i.loopexit ], [ %lpad.loopexit.split-lp657, %lpad.i.i.loopexit.split-lp ] - %63 = extractvalue { ptr, i32 } %lpad.phi658, 0 + %lpad.phi656 = phi { ptr, i32 } [ %lpad.loopexit654, %lpad.i.i.loopexit ], [ %lpad.loopexit.split-lp655, %lpad.i.i.loopexit.split-lp ] + %63 = extractvalue { ptr, i32 } %lpad.phi656, 0 %64 = call ptr @__cxa_begin_catch(ptr %63) #15 store i64 %49, ptr %_M_next_resize.i.i.i, align 8 invoke void @__cxa_rethrow() #24 @@ -19472,33 +19472,33 @@ terminate.lpad.i.i: ; preds = %lpad2.i.i unreachable.i.i: ; preds = %lpad.i.i unreachable -_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_rehashEmRKm.exit.i: ; preds = %if.end.i.i.i533, %while.end.i +_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_rehashEmRKm.exit.i: ; preds = %if.end.i.i.i531, %while.end.i store i64 %51, ptr %_M_bucket_count.i.i, align 8 - store ptr %retval.0.i.i527, ptr %children, align 8 - %rem.i.i.i.i479 = urem i64 %conv.i.i.i.i280, %51 - br label %if.end.i473 - -if.end.i473: ; preds = %call3.i.noexc.if.end.i473_crit_edge, %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_rehashEmRKm.exit.i - %68 = phi ptr [ %retval.0.i.i527, %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_rehashEmRKm.exit.i ], [ %.pre745, %call3.i.noexc.if.end.i473_crit_edge ] - %__bkt.addr.0.i = phi i64 [ %rem.i.i.i.i479, %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_rehashEmRKm.exit.i ], [ %rem.i.i.i.i282, %call3.i.noexc.if.end.i473_crit_edge ] - %arrayidx.i.i474 = getelementptr inbounds ptr, ptr %68, i64 %__bkt.addr.0.i - %69 = load ptr, ptr %arrayidx.i.i474, align 8 + store ptr %retval.0.i.i525, ptr %children, align 8 + %rem.i.i.i.i477 = urem i64 %conv.i.i.i.i278, %51 + br label %if.end.i471 + +if.end.i471: ; preds = %call3.i.noexc.if.end.i471_crit_edge, %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_rehashEmRKm.exit.i + %68 = phi ptr [ %retval.0.i.i525, %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_rehashEmRKm.exit.i ], [ %.pre747, %call3.i.noexc.if.end.i471_crit_edge ] + %__bkt.addr.0.i = phi i64 [ %rem.i.i.i.i477, %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_rehashEmRKm.exit.i ], [ %rem.i.i.i.i280, %call3.i.noexc.if.end.i471_crit_edge ] + %arrayidx.i.i472 = getelementptr inbounds ptr, ptr %68, i64 %__bkt.addr.0.i + %69 = load ptr, ptr %arrayidx.i.i472, align 8 %tobool.not.i.i = icmp eq ptr %69, null - br i1 %tobool.not.i.i, label %if.else.i.i, label %if.then.i.i475 + br i1 %tobool.not.i.i, label %if.else.i.i, label %if.then.i.i473 -if.then.i.i475: ; preds = %if.end.i473 +if.then.i.i473: ; preds = %if.end.i471 %70 = load ptr, ptr %69, align 8 - store ptr %70, ptr %call5.i.i.i.i.i327, align 8 - %71 = load ptr, ptr %arrayidx.i.i474, align 8 - store ptr %call5.i.i.i.i.i327, ptr %71, align 8 + store ptr %70, ptr %call5.i.i.i.i.i325, align 8 + %71 = load ptr, ptr %arrayidx.i.i472, align 8 + store ptr %call5.i.i.i.i.i325, ptr %71, align 8 br label %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE21_M_insert_unique_nodeEmmPNS8_10_Hash_nodeIS6_Lb0EEEm.exit -if.else.i.i: ; preds = %if.end.i473 +if.else.i.i: ; preds = %if.end.i471 %72 = load ptr, ptr %_M_before_begin.i.i, align 8 - store ptr %72, ptr %call5.i.i.i.i.i327, align 8 - store ptr %call5.i.i.i.i.i327, ptr %_M_before_begin.i.i, align 8 + store ptr %72, ptr %call5.i.i.i.i.i325, align 8 + store ptr %call5.i.i.i.i.i325, ptr %_M_before_begin.i.i, align 8 %tobool13.not.i.i = icmp eq ptr %72, null - br i1 %tobool13.not.i.i, label %if.end.i.i477, label %if.then14.i.i + br i1 %tobool13.not.i.i, label %if.end.i.i475, label %if.then14.i.i if.then14.i.i: ; preds = %if.else.i.i %add.ptr.i.i = getelementptr inbounds i8, ptr %72, i64 8 @@ -19517,24 +19517,24 @@ if.then14.i.i: ; preds = %if.else.i.i %conv.i.i.i.i.i.i.i = zext nneg i32 %and.i.i.i.i.i.i.i to i64 %rem.i.i.i.i.i = urem i64 %conv.i.i.i.i.i.i.i, %73 %arrayidx17.i.i = getelementptr inbounds ptr, ptr %68, i64 %rem.i.i.i.i.i - store ptr %call5.i.i.i.i.i327, ptr %arrayidx17.i.i, align 8 - %.pre746 = load ptr, ptr %children, align 8 - br label %if.end.i.i477 + store ptr %call5.i.i.i.i.i325, ptr %arrayidx17.i.i, align 8 + %.pre748 = load ptr, ptr %children, align 8 + br label %if.end.i.i475 -if.end.i.i477: ; preds = %if.then14.i.i, %if.else.i.i - %77 = phi ptr [ %.pre746, %if.then14.i.i ], [ %68, %if.else.i.i ] +if.end.i.i475: ; preds = %if.then14.i.i, %if.else.i.i + %77 = phi ptr [ %.pre748, %if.then14.i.i ], [ %68, %if.else.i.i ] %arrayidx20.i.i = getelementptr inbounds ptr, ptr %77, i64 %__bkt.addr.0.i store ptr %_M_before_begin.i.i, ptr %arrayidx20.i.i, align 8 br label %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE21_M_insert_unique_nodeEmmPNS8_10_Hash_nodeIS6_Lb0EEEm.exit -_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE21_M_insert_unique_nodeEmmPNS8_10_Hash_nodeIS6_Lb0EEEm.exit: ; preds = %if.then.i.i475, %if.end.i.i477 +_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE21_M_insert_unique_nodeEmmPNS8_10_Hash_nodeIS6_Lb0EEEm.exit: ; preds = %if.then.i.i473, %if.end.i.i475 %78 = load i64, ptr %_M_element_count.i.i, align 8 %inc.i = add i64 %78, 1 store i64 %inc.i, ptr %_M_element_count.i.i, align 8 br label %for.inc93 -if.then.i15.i: ; preds = %invoke.cont.i, %_ZNKSt8__detail15_Hashtable_baseIN7openvdb5v11_04math5CoordESt4pairIKS4_hENS_10_Select1stESt8equal_toIS4_ESt4hashIS4_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_equalsERS6_mRKNS_16_Hash_node_valueIS7_Lb0EEE.exit.i.i.i310 - call void @_ZdlPv(ptr noundef nonnull %call5.i.i.i.i.i327) #23 +if.then.i15.i: ; preds = %invoke.cont.i, %_ZNKSt8__detail15_Hashtable_baseIN7openvdb5v11_04math5CoordESt4pairIKS4_hENS_10_Select1stESt8equal_toIS4_ESt4hashIS4_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_equalsERS6_mRKNS_16_Hash_node_valueIS7_Lb0EEE.exit.i.i.i308 + call void @_ZdlPv(ptr noundef nonnull %call5.i.i.i.i.i325) #23 br label %for.inc93 if.else: ; preds = %_ZNKSt8__detail15_Hashtable_baseIN7openvdb5v11_04math5CoordESt4pairIKS4_hENS_10_Select1stESt8equal_toIS4_ESt4hashIS4_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE13_M_key_equalsERS6_RKNS_16_Hash_node_valueIS7_Lb0EEE.exit.i, %_ZNKSt8__detail15_Hashtable_baseIN7openvdb5v11_04math5CoordESt4pairIKS4_hENS_10_Select1stESt8equal_toIS4_ESt4hashIS4_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_equalsERS6_mRKNS_16_Hash_node_valueIS7_Lb0EEE.exit.i.i.i @@ -19546,604 +19546,604 @@ if.else: ; preds = %_ZNKSt8__detail15_H br label %for.inc93 for.inc93: ; preds = %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE21_M_insert_unique_nodeEmmPNS8_10_Hash_nodeIS6_Lb0EEEm.exit, %if.then.i15.i, %if.else - %cmp.i.i.not.i.i120 = icmp eq ptr %valueIter60.sroa.3.0694, %add.ptr.i.i.i.i.i.i90 - br i1 %cmp.i.i.not.i.i120, label %for.end96.loopexit, label %if.end.i.i121 - -if.end.i.i121: ; preds = %for.inc93 - %call.i.i.i122 = call noundef ptr @_ZSt18_Rb_tree_incrementPKSt18_Rb_tree_node_base(ptr noundef %valueIter60.sroa.3.0694) #25 - %cmp.i.i.not2.i.i.i123 = icmp eq ptr %call.i.i.i122, %add.ptr.i.i.i.i.i.i90 - br i1 %cmp.i.i.not2.i.i.i123, label %for.end96.loopexit, label %land.rhs.i.i.i124 - -land.rhs.i.i.i124: ; preds = %if.end.i.i121, %while.body.i.i.i128 - %valueIter60.sroa.3.1 = phi ptr [ %call.i.i.i.i129, %while.body.i.i.i128 ], [ %call.i.i.i122, %if.end.i.i121 ] - %second.i.i.i.i.i126 = getelementptr inbounds i8, ptr %valueIter60.sroa.3.1, i64 48 - %81 = load ptr, ptr %second.i.i.i.i.i126, align 8 - %cmp.i.i.i.i.i.i127 = icmp eq ptr %81, null - br i1 %cmp.i.i.i.i.i.i127, label %_ZN7openvdb5v11_04tree8RootNodeINS1_12InternalNodeINS3_INS1_8LeafNodeIbLj3EEELj4EEELj5EEEE9ValueIterIKS8_St23_Rb_tree_const_iteratorISt4pairIKNS0_4math5CoordENS8_10NodeStructEEENS8_12ValueAllPredEKbEppEv.exit131, label %while.body.i.i.i128 - -while.body.i.i.i128: ; preds = %land.rhs.i.i.i124 - %call.i.i.i.i129 = call noundef ptr @_ZSt18_Rb_tree_incrementPKSt18_Rb_tree_node_base(ptr noundef nonnull %valueIter60.sroa.3.1) #25 - %cmp.i.i.not.i.i.i130 = icmp eq ptr %call.i.i.i.i129, %add.ptr.i.i.i.i.i.i90 - br i1 %cmp.i.i.not.i.i.i130, label %for.end96.loopexit, label %land.rhs.i.i.i124, !llvm.loop !150 - -_ZN7openvdb5v11_04tree8RootNodeINS1_12InternalNodeINS3_INS1_8LeafNodeIbLj3EEELj4EEELj5EEEE9ValueIterIKS8_St23_Rb_tree_const_iteratorISt4pairIKNS0_4math5CoordENS8_10NodeStructEEENS8_12ValueAllPredEKbEppEv.exit131: ; preds = %land.rhs.i.i.i124 - %cmp.i.i.i105.not = icmp eq ptr %valueIter60.sroa.3.1, %add.ptr.i.i.i.i.i.i90 - br i1 %cmp.i.i.i105.not, label %for.end96.loopexit, label %for.body67 - -for.end96.loopexit: ; preds = %if.end.i.i121, %for.inc93, %_ZN7openvdb5v11_04tree8RootNodeINS1_12InternalNodeINS3_INS1_8LeafNodeIbLj3EEELj4EEELj5EEEE9ValueIterIKS8_St23_Rb_tree_const_iteratorISt4pairIKNS0_4math5CoordENS8_10NodeStructEEENS8_12ValueAllPredEKbEppEv.exit131, %while.body.i.i.i128 - %.pre747 = load ptr, ptr %_M_left.i.i.i89, align 8 + %cmp.i.i.not.i.i118 = icmp eq ptr %valueIter60.sroa.3.0692, %add.ptr.i.i.i.i.i.i88 + br i1 %cmp.i.i.not.i.i118, label %for.end96.loopexit, label %if.end.i.i119 + +if.end.i.i119: ; preds = %for.inc93 + %call.i.i.i120 = call noundef ptr @_ZSt18_Rb_tree_incrementPKSt18_Rb_tree_node_base(ptr noundef %valueIter60.sroa.3.0692) #25 + %cmp.i.i.not2.i.i.i121 = icmp eq ptr %call.i.i.i120, %add.ptr.i.i.i.i.i.i88 + br i1 %cmp.i.i.not2.i.i.i121, label %for.end96.loopexit, label %land.rhs.i.i.i122 + +land.rhs.i.i.i122: ; preds = %if.end.i.i119, %while.body.i.i.i126 + %valueIter60.sroa.3.1 = phi ptr [ %call.i.i.i.i127, %while.body.i.i.i126 ], [ %call.i.i.i120, %if.end.i.i119 ] + %second.i.i.i.i.i124 = getelementptr inbounds i8, ptr %valueIter60.sroa.3.1, i64 48 + %81 = load ptr, ptr %second.i.i.i.i.i124, align 8 + %cmp.i.i.i.i.i.i125 = icmp eq ptr %81, null + br i1 %cmp.i.i.i.i.i.i125, label %_ZN7openvdb5v11_04tree8RootNodeINS1_12InternalNodeINS3_INS1_8LeafNodeIbLj3EEELj4EEELj5EEEE9ValueIterIKS8_St23_Rb_tree_const_iteratorISt4pairIKNS0_4math5CoordENS8_10NodeStructEEENS8_12ValueAllPredEKbEppEv.exit129, label %while.body.i.i.i126 + +while.body.i.i.i126: ; preds = %land.rhs.i.i.i122 + %call.i.i.i.i127 = call noundef ptr @_ZSt18_Rb_tree_incrementPKSt18_Rb_tree_node_base(ptr noundef nonnull %valueIter60.sroa.3.1) #25 + %cmp.i.i.not.i.i.i128 = icmp eq ptr %call.i.i.i.i127, %add.ptr.i.i.i.i.i.i88 + br i1 %cmp.i.i.not.i.i.i128, label %for.end96.loopexit, label %land.rhs.i.i.i122, !llvm.loop !150 + +_ZN7openvdb5v11_04tree8RootNodeINS1_12InternalNodeINS3_INS1_8LeafNodeIbLj3EEELj4EEELj5EEEE9ValueIterIKS8_St23_Rb_tree_const_iteratorISt4pairIKNS0_4math5CoordENS8_10NodeStructEEENS8_12ValueAllPredEKbEppEv.exit129: ; preds = %land.rhs.i.i.i122 + %cmp.i.i.i103.not = icmp eq ptr %valueIter60.sroa.3.1, %add.ptr.i.i.i.i.i.i88 + br i1 %cmp.i.i.i103.not, label %for.end96.loopexit, label %for.body67 + +for.end96.loopexit: ; preds = %if.end.i.i119, %for.inc93, %_ZN7openvdb5v11_04tree8RootNodeINS1_12InternalNodeINS3_INS1_8LeafNodeIbLj3EEELj4EEELj5EEEE9ValueIterIKS8_St23_Rb_tree_const_iteratorISt4pairIKNS0_4math5CoordENS8_10NodeStructEEENS8_12ValueAllPredEKbEppEv.exit129, %while.body.i.i.i126 + %.pre749 = load ptr, ptr %_M_left.i.i.i87, align 8 br label %for.end96 -for.end96: ; preds = %while.body.i.i.i96, %for.end96.loopexit, %invoke.cont61 - %82 = phi ptr [ %.pre747, %for.end96.loopexit ], [ %15, %invoke.cont61 ], [ %15, %while.body.i.i.i96 ] - %cmp.i.i.not2.i.i.i134 = icmp eq ptr %add.ptr.i.i.i.i.i.i90, %82 - br i1 %cmp.i.i.not2.i.i.i134, label %for.inc139, label %land.rhs.i.i.i135 - -land.rhs.i.i.i135: ; preds = %for.end96, %while.body.i.i.i142 - %retval.sroa.2.0.i136 = phi ptr [ %call.i.i.i.i143, %while.body.i.i.i142 ], [ %82, %for.end96 ] - %second.i.i.i.i.i137 = getelementptr inbounds i8, ptr %retval.sroa.2.0.i136, i64 48 - %83 = load ptr, ptr %second.i.i.i.i.i137, align 8 - %cmp.i.i.i.not.i.i.i138 = icmp eq ptr %83, null - br i1 %cmp.i.i.i.not.i.i.i138, label %while.body.i.i.i142, label %invoke.cont98 - -while.body.i.i.i142: ; preds = %land.rhs.i.i.i135 - %call.i.i.i.i143 = call noundef ptr @_ZSt18_Rb_tree_incrementPKSt18_Rb_tree_node_base(ptr noundef nonnull %retval.sroa.2.0.i136) #25 - %cmp.i.i.not.i.i.i144 = icmp eq ptr %call.i.i.i.i143, %add.ptr.i.i.i.i.i.i90 - br i1 %cmp.i.i.not.i.i.i144, label %for.inc139, label %land.rhs.i.i.i135, !llvm.loop !38 - -invoke.cont98: ; preds = %land.rhs.i.i.i135 - %cmp.i.i.i148.not695 = icmp eq ptr %retval.sroa.2.0.i136, %add.ptr.i.i.i.i.i.i90 - br i1 %cmp.i.i.i148.not695, label %for.inc139, label %for.body104 - -for.body104: ; preds = %invoke.cont98, %_ZN7openvdb5v11_04tree8RootNodeINS1_12InternalNodeINS3_INS1_8LeafNodeIbLj3EEELj4EEELj5EEEE9ChildIterIKS8_St23_Rb_tree_const_iteratorISt4pairIKNS0_4math5CoordENS8_10NodeStructEEENS8_11ChildOnPredEKS7_EppEv.exit176 - %childIter97.sroa.3.0696 = phi ptr [ %childIter97.sroa.3.1, %_ZN7openvdb5v11_04tree8RootNodeINS1_12InternalNodeINS3_INS1_8LeafNodeIbLj3EEELj4EEELj5EEEE9ChildIterIKS8_St23_Rb_tree_const_iteratorISt4pairIKNS0_4math5CoordENS8_10NodeStructEEENS8_11ChildOnPredEKS7_EppEv.exit176 ], [ %retval.sroa.2.0.i136, %invoke.cont98 ] - %_M_storage.i.i.i150 = getelementptr inbounds i8, ptr %childIter97.sroa.3.0696, i64 32 - %retval.sroa.0.0.copyload.i151 = load i64, ptr %_M_storage.i.i.i150, align 8 - %retval.sroa.2.0.first.sroa_idx.i152 = getelementptr inbounds i8, ptr %childIter97.sroa.3.0696, i64 40 - %retval.sroa.2.0.copyload.i153 = load i32, ptr %retval.sroa.2.0.first.sroa_idx.i152, align 8 - %ref.tmp106.sroa.0.sroa.0.0.extract.trunc = trunc i64 %retval.sroa.0.0.copyload.i151 to i32 - %ref.tmp106.sroa.0.sroa.4.0.extract.shift = lshr i64 %retval.sroa.0.0.copyload.i151, 32 +for.end96: ; preds = %while.body.i.i.i94, %for.end96.loopexit, %invoke.cont61 + %82 = phi ptr [ %.pre749, %for.end96.loopexit ], [ %15, %invoke.cont61 ], [ %15, %while.body.i.i.i94 ] + %cmp.i.i.not2.i.i.i132 = icmp eq ptr %add.ptr.i.i.i.i.i.i88, %82 + br i1 %cmp.i.i.not2.i.i.i132, label %for.inc139, label %land.rhs.i.i.i133 + +land.rhs.i.i.i133: ; preds = %for.end96, %while.body.i.i.i140 + %retval.sroa.2.0.i134 = phi ptr [ %call.i.i.i.i141, %while.body.i.i.i140 ], [ %82, %for.end96 ] + %second.i.i.i.i.i135 = getelementptr inbounds i8, ptr %retval.sroa.2.0.i134, i64 48 + %83 = load ptr, ptr %second.i.i.i.i.i135, align 8 + %cmp.i.i.i.not.i.i.i136 = icmp eq ptr %83, null + br i1 %cmp.i.i.i.not.i.i.i136, label %while.body.i.i.i140, label %invoke.cont98 + +while.body.i.i.i140: ; preds = %land.rhs.i.i.i133 + %call.i.i.i.i141 = call noundef ptr @_ZSt18_Rb_tree_incrementPKSt18_Rb_tree_node_base(ptr noundef nonnull %retval.sroa.2.0.i134) #25 + %cmp.i.i.not.i.i.i142 = icmp eq ptr %call.i.i.i.i141, %add.ptr.i.i.i.i.i.i88 + br i1 %cmp.i.i.not.i.i.i142, label %for.inc139, label %land.rhs.i.i.i133, !llvm.loop !38 + +invoke.cont98: ; preds = %land.rhs.i.i.i133 + %cmp.i.i.i146.not693 = icmp eq ptr %retval.sroa.2.0.i134, %add.ptr.i.i.i.i.i.i88 + br i1 %cmp.i.i.i146.not693, label %for.inc139, label %for.body104 + +for.body104: ; preds = %invoke.cont98, %_ZN7openvdb5v11_04tree8RootNodeINS1_12InternalNodeINS3_INS1_8LeafNodeIbLj3EEELj4EEELj5EEEE9ChildIterIKS8_St23_Rb_tree_const_iteratorISt4pairIKNS0_4math5CoordENS8_10NodeStructEEENS8_11ChildOnPredEKS7_EppEv.exit174 + %childIter97.sroa.3.0694 = phi ptr [ %childIter97.sroa.3.1, %_ZN7openvdb5v11_04tree8RootNodeINS1_12InternalNodeINS3_INS1_8LeafNodeIbLj3EEELj4EEELj5EEEE9ChildIterIKS8_St23_Rb_tree_const_iteratorISt4pairIKNS0_4math5CoordENS8_10NodeStructEEENS8_11ChildOnPredEKS7_EppEv.exit174 ], [ %retval.sroa.2.0.i134, %invoke.cont98 ] + %_M_storage.i.i.i148 = getelementptr inbounds i8, ptr %childIter97.sroa.3.0694, i64 32 + %retval.sroa.0.0.copyload.i149 = load i64, ptr %_M_storage.i.i.i148, align 8 + %retval.sroa.2.0.first.sroa_idx.i150 = getelementptr inbounds i8, ptr %childIter97.sroa.3.0694, i64 40 + %retval.sroa.2.0.copyload.i151 = load i32, ptr %retval.sroa.2.0.first.sroa_idx.i150, align 8 + %ref.tmp106.sroa.0.sroa.0.0.extract.trunc = trunc i64 %retval.sroa.0.0.copyload.i149 to i32 + %ref.tmp106.sroa.0.sroa.4.0.extract.shift = lshr i64 %retval.sroa.0.0.copyload.i149, 32 %ref.tmp106.sroa.0.sroa.4.0.extract.trunc = trunc i64 %ref.tmp106.sroa.0.sroa.4.0.extract.shift to i32 %84 = load i64, ptr %_M_element_count.i.i, align 8 - %cmp.not.not.i329 = icmp ne i64 %84, 0 - br i1 %cmp.not.not.i329, label %if.end15.i330, label %if.then.i371 - -if.then.i371: ; preds = %for.body104 - %retval.sroa.0.09.i373 = load ptr, ptr %_M_before_begin.i.i, align 8 - %cmp.i.not10.i374 = icmp eq ptr %retval.sroa.0.09.i373, null - br i1 %cmp.i.not10.i374, label %if.then122, label %for.body.i378 - -for.body.i378: ; preds = %if.then.i371, %for.inc.i382 - %retval.sroa.0.011.i379 = phi ptr [ %retval.sroa.0.0.i383, %for.inc.i382 ], [ %retval.sroa.0.09.i373, %if.then.i371 ] - %add.ptr.i380 = getelementptr inbounds i8, ptr %retval.sroa.0.011.i379, i64 8 - %85 = load i32, ptr %add.ptr.i380, align 4 - %cmp.i.i.i.i381 = icmp eq i32 %85, %ref.tmp106.sroa.0.sroa.0.0.extract.trunc - br i1 %cmp.i.i.i.i381, label %land.lhs.true.i.i.i.i385, label %for.inc.i382 - -land.lhs.true.i.i.i.i385: ; preds = %for.body.i378 - %arrayidx.i.i3.i.i.i.i386 = getelementptr inbounds i8, ptr %retval.sroa.0.011.i379, i64 12 - %86 = load i32, ptr %arrayidx.i.i3.i.i.i.i386, align 4 - %cmp8.i.i.i.i387 = icmp eq i32 %86, %ref.tmp106.sroa.0.sroa.4.0.extract.trunc - br i1 %cmp8.i.i.i.i387, label %_ZNKSt8__detail15_Hashtable_baseIN7openvdb5v11_04math5CoordESt4pairIKS4_hENS_10_Select1stESt8equal_toIS4_ESt4hashIS4_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE13_M_key_equalsERS6_RKNS_16_Hash_node_valueIS7_Lb0EEE.exit.i388, label %for.inc.i382 - -_ZNKSt8__detail15_Hashtable_baseIN7openvdb5v11_04math5CoordESt4pairIKS4_hENS_10_Select1stESt8equal_toIS4_ESt4hashIS4_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE13_M_key_equalsERS6_RKNS_16_Hash_node_valueIS7_Lb0EEE.exit.i388: ; preds = %land.lhs.true.i.i.i.i385 - %arrayidx.i.i5.i.i.i.i389 = getelementptr inbounds i8, ptr %retval.sroa.0.011.i379, i64 16 - %87 = load i32, ptr %arrayidx.i.i5.i.i.i.i389, align 4 - %cmp13.i.i.i.i390 = icmp eq i32 %retval.sroa.2.0.copyload.i153, %87 - br i1 %cmp13.i.i.i.i390, label %if.else128, label %for.inc.i382 - -for.inc.i382: ; preds = %_ZNKSt8__detail15_Hashtable_baseIN7openvdb5v11_04math5CoordESt4pairIKS4_hENS_10_Select1stESt8equal_toIS4_ESt4hashIS4_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE13_M_key_equalsERS6_RKNS_16_Hash_node_valueIS7_Lb0EEE.exit.i388, %land.lhs.true.i.i.i.i385, %for.body.i378 - %retval.sroa.0.0.i383 = load ptr, ptr %retval.sroa.0.011.i379, align 8 - %cmp.i.not.i384 = icmp eq ptr %retval.sroa.0.0.i383, null - br i1 %cmp.i.not.i384, label %if.then122, label %for.body.i378, !llvm.loop !131 - -if.end15.i330: ; preds = %for.body104 - %mul.i.i.i.i331 = mul i32 %ref.tmp106.sroa.0.sroa.0.0.extract.trunc, 455773 - %mul3.i.i.i.i333 = mul i32 %ref.tmp106.sroa.0.sroa.4.0.extract.trunc, 475301 - %mul5.i.i.i.i336 = mul i32 %retval.sroa.2.0.copyload.i153, 655287 - %xor.i.i.i.i334 = xor i32 %mul5.i.i.i.i336, %mul.i.i.i.i331 - %xor6.i.i.i.i337 = xor i32 %xor.i.i.i.i334, %mul3.i.i.i.i333 - %and.i.i.i.i338 = and i32 %xor6.i.i.i.i337, 1048575 - %conv.i.i.i.i339 = zext nneg i32 %and.i.i.i.i338 to i64 + %cmp.not.not.i327 = icmp ne i64 %84, 0 + br i1 %cmp.not.not.i327, label %if.end15.i328, label %if.then.i369 + +if.then.i369: ; preds = %for.body104 + %retval.sroa.0.09.i371 = load ptr, ptr %_M_before_begin.i.i, align 8 + %cmp.i.not10.i372 = icmp eq ptr %retval.sroa.0.09.i371, null + br i1 %cmp.i.not10.i372, label %if.then122, label %for.body.i376 + +for.body.i376: ; preds = %if.then.i369, %for.inc.i380 + %retval.sroa.0.011.i377 = phi ptr [ %retval.sroa.0.0.i381, %for.inc.i380 ], [ %retval.sroa.0.09.i371, %if.then.i369 ] + %add.ptr.i378 = getelementptr inbounds i8, ptr %retval.sroa.0.011.i377, i64 8 + %85 = load i32, ptr %add.ptr.i378, align 4 + %cmp.i.i.i.i379 = icmp eq i32 %85, %ref.tmp106.sroa.0.sroa.0.0.extract.trunc + br i1 %cmp.i.i.i.i379, label %land.lhs.true.i.i.i.i383, label %for.inc.i380 + +land.lhs.true.i.i.i.i383: ; preds = %for.body.i376 + %arrayidx.i.i3.i.i.i.i384 = getelementptr inbounds i8, ptr %retval.sroa.0.011.i377, i64 12 + %86 = load i32, ptr %arrayidx.i.i3.i.i.i.i384, align 4 + %cmp8.i.i.i.i385 = icmp eq i32 %86, %ref.tmp106.sroa.0.sroa.4.0.extract.trunc + br i1 %cmp8.i.i.i.i385, label %_ZNKSt8__detail15_Hashtable_baseIN7openvdb5v11_04math5CoordESt4pairIKS4_hENS_10_Select1stESt8equal_toIS4_ESt4hashIS4_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE13_M_key_equalsERS6_RKNS_16_Hash_node_valueIS7_Lb0EEE.exit.i386, label %for.inc.i380 + +_ZNKSt8__detail15_Hashtable_baseIN7openvdb5v11_04math5CoordESt4pairIKS4_hENS_10_Select1stESt8equal_toIS4_ESt4hashIS4_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE13_M_key_equalsERS6_RKNS_16_Hash_node_valueIS7_Lb0EEE.exit.i386: ; preds = %land.lhs.true.i.i.i.i383 + %arrayidx.i.i5.i.i.i.i387 = getelementptr inbounds i8, ptr %retval.sroa.0.011.i377, i64 16 + %87 = load i32, ptr %arrayidx.i.i5.i.i.i.i387, align 4 + %cmp13.i.i.i.i388 = icmp eq i32 %retval.sroa.2.0.copyload.i151, %87 + br i1 %cmp13.i.i.i.i388, label %if.else128, label %for.inc.i380 + +for.inc.i380: ; preds = %_ZNKSt8__detail15_Hashtable_baseIN7openvdb5v11_04math5CoordESt4pairIKS4_hENS_10_Select1stESt8equal_toIS4_ESt4hashIS4_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE13_M_key_equalsERS6_RKNS_16_Hash_node_valueIS7_Lb0EEE.exit.i386, %land.lhs.true.i.i.i.i383, %for.body.i376 + %retval.sroa.0.0.i381 = load ptr, ptr %retval.sroa.0.011.i377, align 8 + %cmp.i.not.i382 = icmp eq ptr %retval.sroa.0.0.i381, null + br i1 %cmp.i.not.i382, label %if.then122, label %for.body.i376, !llvm.loop !131 + +if.end15.i328: ; preds = %for.body104 + %mul.i.i.i.i329 = mul i32 %ref.tmp106.sroa.0.sroa.0.0.extract.trunc, 455773 + %mul3.i.i.i.i331 = mul i32 %ref.tmp106.sroa.0.sroa.4.0.extract.trunc, 475301 + %mul5.i.i.i.i334 = mul i32 %retval.sroa.2.0.copyload.i151, 655287 + %xor.i.i.i.i332 = xor i32 %mul5.i.i.i.i334, %mul.i.i.i.i329 + %xor6.i.i.i.i335 = xor i32 %xor.i.i.i.i332, %mul3.i.i.i.i331 + %and.i.i.i.i336 = and i32 %xor6.i.i.i.i335, 1048575 + %conv.i.i.i.i337 = zext nneg i32 %and.i.i.i.i336 to i64 %88 = load i64, ptr %_M_bucket_count.i.i, align 8 - %rem.i.i.i.i341 = urem i64 %conv.i.i.i.i339, %88 + %rem.i.i.i.i339 = urem i64 %conv.i.i.i.i337, %88 %89 = load ptr, ptr %children, align 8 - %arrayidx.i.i.i342 = getelementptr inbounds ptr, ptr %89, i64 %rem.i.i.i.i341 - %90 = load ptr, ptr %arrayidx.i.i.i342, align 8 - %tobool.not.i.i.i343 = icmp eq ptr %90, null - br i1 %tobool.not.i.i.i343, label %if.then122, label %if.end.i.i.i344 + %arrayidx.i.i.i340 = getelementptr inbounds ptr, ptr %89, i64 %rem.i.i.i.i339 + %90 = load ptr, ptr %arrayidx.i.i.i340, align 8 + %tobool.not.i.i.i341 = icmp eq ptr %90, null + br i1 %tobool.not.i.i.i341, label %if.then122, label %if.end.i.i.i342 -if.end.i.i.i344: ; preds = %if.end15.i330 +if.end.i.i.i342: ; preds = %if.end15.i328 %91 = load ptr, ptr %90, align 8 - %add.ptr.phi.trans.insert.i.i.i345 = getelementptr inbounds i8, ptr %91, i64 8 - %.pre.i.i.i346 = load i32, ptr %add.ptr.phi.trans.insert.i.i.i345, align 4 - br label %for.cond.i.i.i347 - -for.cond.i.i.i347: ; preds = %lor.lhs.false.i.i.i351, %if.end.i.i.i344 - %92 = phi i32 [ %.pre.i.i.i346, %if.end.i.i.i344 ], [ %97, %lor.lhs.false.i.i.i351 ] - %93 = phi ptr [ %91, %if.end.i.i.i344 ], [ %96, %lor.lhs.false.i.i.i351 ] - %cmp.i.i.i.i.i.i.i348 = icmp eq i32 %92, %ref.tmp106.sroa.0.sroa.0.0.extract.trunc - br i1 %cmp.i.i.i.i.i.i.i348, label %land.lhs.true.i.i.i.i.i.i.i365, label %if.end3.i.i.i349 - -land.lhs.true.i.i.i.i.i.i.i365: ; preds = %for.cond.i.i.i347 - %arrayidx.i.i3.i.i.i.i.i.i.i366 = getelementptr inbounds i8, ptr %93, i64 12 - %94 = load i32, ptr %arrayidx.i.i3.i.i.i.i.i.i.i366, align 4 - %cmp8.i.i.i.i.i.i.i367 = icmp eq i32 %94, %ref.tmp106.sroa.0.sroa.4.0.extract.trunc - br i1 %cmp8.i.i.i.i.i.i.i367, label %_ZNKSt8__detail15_Hashtable_baseIN7openvdb5v11_04math5CoordESt4pairIKS4_hENS_10_Select1stESt8equal_toIS4_ESt4hashIS4_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_equalsERS6_mRKNS_16_Hash_node_valueIS7_Lb0EEE.exit.i.i.i368, label %if.end3.i.i.i349 - -_ZNKSt8__detail15_Hashtable_baseIN7openvdb5v11_04math5CoordESt4pairIKS4_hENS_10_Select1stESt8equal_toIS4_ESt4hashIS4_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_equalsERS6_mRKNS_16_Hash_node_valueIS7_Lb0EEE.exit.i.i.i368: ; preds = %land.lhs.true.i.i.i.i.i.i.i365 - %arrayidx.i.i5.i.i.i.i.i.i.i369 = getelementptr inbounds i8, ptr %93, i64 16 - %95 = load i32, ptr %arrayidx.i.i5.i.i.i.i.i.i.i369, align 4 - %cmp13.i.i.i.i.i.i.i370 = icmp eq i32 %retval.sroa.2.0.copyload.i153, %95 - br i1 %cmp13.i.i.i.i.i.i.i370, label %if.else128, label %if.end3.i.i.i349 - -if.end3.i.i.i349: ; preds = %_ZNKSt8__detail15_Hashtable_baseIN7openvdb5v11_04math5CoordESt4pairIKS4_hENS_10_Select1stESt8equal_toIS4_ESt4hashIS4_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_equalsERS6_mRKNS_16_Hash_node_valueIS7_Lb0EEE.exit.i.i.i368, %land.lhs.true.i.i.i.i.i.i.i365, %for.cond.i.i.i347 + %add.ptr.phi.trans.insert.i.i.i343 = getelementptr inbounds i8, ptr %91, i64 8 + %.pre.i.i.i344 = load i32, ptr %add.ptr.phi.trans.insert.i.i.i343, align 4 + br label %for.cond.i.i.i345 + +for.cond.i.i.i345: ; preds = %lor.lhs.false.i.i.i349, %if.end.i.i.i342 + %92 = phi i32 [ %.pre.i.i.i344, %if.end.i.i.i342 ], [ %97, %lor.lhs.false.i.i.i349 ] + %93 = phi ptr [ %91, %if.end.i.i.i342 ], [ %96, %lor.lhs.false.i.i.i349 ] + %cmp.i.i.i.i.i.i.i346 = icmp eq i32 %92, %ref.tmp106.sroa.0.sroa.0.0.extract.trunc + br i1 %cmp.i.i.i.i.i.i.i346, label %land.lhs.true.i.i.i.i.i.i.i363, label %if.end3.i.i.i347 + +land.lhs.true.i.i.i.i.i.i.i363: ; preds = %for.cond.i.i.i345 + %arrayidx.i.i3.i.i.i.i.i.i.i364 = getelementptr inbounds i8, ptr %93, i64 12 + %94 = load i32, ptr %arrayidx.i.i3.i.i.i.i.i.i.i364, align 4 + %cmp8.i.i.i.i.i.i.i365 = icmp eq i32 %94, %ref.tmp106.sroa.0.sroa.4.0.extract.trunc + br i1 %cmp8.i.i.i.i.i.i.i365, label %_ZNKSt8__detail15_Hashtable_baseIN7openvdb5v11_04math5CoordESt4pairIKS4_hENS_10_Select1stESt8equal_toIS4_ESt4hashIS4_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_equalsERS6_mRKNS_16_Hash_node_valueIS7_Lb0EEE.exit.i.i.i366, label %if.end3.i.i.i347 + +_ZNKSt8__detail15_Hashtable_baseIN7openvdb5v11_04math5CoordESt4pairIKS4_hENS_10_Select1stESt8equal_toIS4_ESt4hashIS4_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_equalsERS6_mRKNS_16_Hash_node_valueIS7_Lb0EEE.exit.i.i.i366: ; preds = %land.lhs.true.i.i.i.i.i.i.i363 + %arrayidx.i.i5.i.i.i.i.i.i.i367 = getelementptr inbounds i8, ptr %93, i64 16 + %95 = load i32, ptr %arrayidx.i.i5.i.i.i.i.i.i.i367, align 4 + %cmp13.i.i.i.i.i.i.i368 = icmp eq i32 %retval.sroa.2.0.copyload.i151, %95 + br i1 %cmp13.i.i.i.i.i.i.i368, label %if.else128, label %if.end3.i.i.i347 + +if.end3.i.i.i347: ; preds = %_ZNKSt8__detail15_Hashtable_baseIN7openvdb5v11_04math5CoordESt4pairIKS4_hENS_10_Select1stESt8equal_toIS4_ESt4hashIS4_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_equalsERS6_mRKNS_16_Hash_node_valueIS7_Lb0EEE.exit.i.i.i366, %land.lhs.true.i.i.i.i.i.i.i363, %for.cond.i.i.i345 %96 = load ptr, ptr %93, align 8 - %tobool5.not.i.i.i350 = icmp eq ptr %96, null - br i1 %tobool5.not.i.i.i350, label %if.then122, label %lor.lhs.false.i.i.i351 - -lor.lhs.false.i.i.i351: ; preds = %if.end3.i.i.i349 - %add.ptr7.i.i.i352 = getelementptr inbounds i8, ptr %96, i64 8 - %97 = load i32, ptr %add.ptr7.i.i.i352, align 4 - %mul.i.i.i.i.i.i.i.i353 = mul i32 %97, 455773 - %arrayidx2.i.i.i.i.i.i.i.i354 = getelementptr inbounds i8, ptr %96, i64 12 - %98 = load i32, ptr %arrayidx2.i.i.i.i.i.i.i.i354, align 4 - %mul3.i.i.i.i.i.i.i.i355 = mul i32 %98, 475301 - %xor.i.i.i.i.i.i.i.i356 = xor i32 %mul3.i.i.i.i.i.i.i.i355, %mul.i.i.i.i.i.i.i.i353 - %arrayidx4.i.i.i.i.i.i.i.i357 = getelementptr inbounds i8, ptr %96, i64 16 - %99 = load i32, ptr %arrayidx4.i.i.i.i.i.i.i.i357, align 4 - %mul5.i.i.i.i.i.i.i.i358 = mul i32 %99, 655287 - %xor6.i.i.i.i.i.i.i.i359 = xor i32 %xor.i.i.i.i.i.i.i.i356, %mul5.i.i.i.i.i.i.i.i358 - %and.i.i.i.i.i.i.i.i360 = and i32 %xor6.i.i.i.i.i.i.i.i359, 1048575 - %conv.i.i.i.i.i.i.i.i361 = zext nneg i32 %and.i.i.i.i.i.i.i.i360 to i64 - %rem.i.i.i.i.i.i362 = urem i64 %conv.i.i.i.i.i.i.i.i361, %88 - %cmp.not.i.i.i363 = icmp eq i64 %rem.i.i.i.i.i.i362, %rem.i.i.i.i341 - br i1 %cmp.not.i.i.i363, label %for.cond.i.i.i347, label %if.then122, !llvm.loop !132 - -if.then122: ; preds = %for.inc.i382, %lor.lhs.false.i.i.i351, %if.end3.i.i.i349, %if.end15.i330, %if.then.i371 - %call5.i.i.i.i.i469 = invoke noalias noundef nonnull dereferenceable(24) ptr @_Znwm(i64 noundef 24) #22 - to label %call5.i.i.i.i.i.noexc468 unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit - -call5.i.i.i.i.i.noexc468: ; preds = %if.then122 - store ptr null, ptr %call5.i.i.i.i.i469, align 8 - %add.ptr.i.i.i392 = getelementptr inbounds i8, ptr %call5.i.i.i.i.i469, i64 8 - store i64 %retval.sroa.0.0.copyload.i151, ptr %add.ptr.i.i.i392, align 4 - %ref.tmp123.sroa.0.sroa.2.0.add.ptr.i.i.i392.sroa_idx = getelementptr inbounds i8, ptr %call5.i.i.i.i.i469, i64 16 - store i32 %retval.sroa.2.0.copyload.i153, ptr %ref.tmp123.sroa.0.sroa.2.0.add.ptr.i.i.i392.sroa_idx, align 4 - %ref.tmp123.sroa.2.0.add.ptr.i.i.i392.sroa_idx = getelementptr inbounds i8, ptr %call5.i.i.i.i.i469, i64 20 - store i8 2, ptr %ref.tmp123.sroa.2.0.add.ptr.i.i.i392.sroa_idx, align 4 - %__it.sroa.0.036.i449 = load ptr, ptr %_M_before_begin.i.i, align 8 - %cmp.i.not37.i450 = icmp eq ptr %__it.sroa.0.036.i449, null - %or.cond820 = select i1 %cmp.not.not.i329, i1 true, i1 %cmp.i.not37.i450 - br i1 %or.cond820, label %invoke.cont21.i397, label %for.body.i455 - -for.body.i455: ; preds = %call5.i.i.i.i.i.noexc468, %for.inc.i459 - %__it.sroa.0.038.i456 = phi ptr [ %__it.sroa.0.0.i460, %for.inc.i459 ], [ %__it.sroa.0.036.i449, %call5.i.i.i.i.i.noexc468 ] - %add.ptr12.i457 = getelementptr inbounds i8, ptr %__it.sroa.0.038.i456, i64 8 - %100 = load i32, ptr %add.ptr12.i457, align 4 - %cmp.i.i.i.i458 = icmp eq i32 %100, %ref.tmp106.sroa.0.sroa.0.0.extract.trunc - br i1 %cmp.i.i.i.i458, label %land.lhs.true.i.i.i.i462, label %for.inc.i459 - -land.lhs.true.i.i.i.i462: ; preds = %for.body.i455 - %arrayidx.i.i3.i.i.i.i463 = getelementptr inbounds i8, ptr %__it.sroa.0.038.i456, i64 12 - %101 = load i32, ptr %arrayidx.i.i3.i.i.i.i463, align 4 - %cmp8.i.i.i.i464 = icmp eq i32 %101, %ref.tmp106.sroa.0.sroa.4.0.extract.trunc - br i1 %cmp8.i.i.i.i464, label %invoke.cont.i465, label %for.inc.i459 - -invoke.cont.i465: ; preds = %land.lhs.true.i.i.i.i462 - %arrayidx.i.i5.i.i.i.i466 = getelementptr inbounds i8, ptr %__it.sroa.0.038.i456, i64 16 - %102 = load i32, ptr %arrayidx.i.i5.i.i.i.i466, align 4 - %cmp13.i.i.i.i467 = icmp eq i32 %retval.sroa.2.0.copyload.i153, %102 - br i1 %cmp13.i.i.i.i467, label %if.then.i15.i445, label %for.inc.i459 - -_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE12_Scoped_nodeD2Ev.exit.i434: ; preds = %if.end34.i432 + %tobool5.not.i.i.i348 = icmp eq ptr %96, null + br i1 %tobool5.not.i.i.i348, label %if.then122, label %lor.lhs.false.i.i.i349 + +lor.lhs.false.i.i.i349: ; preds = %if.end3.i.i.i347 + %add.ptr7.i.i.i350 = getelementptr inbounds i8, ptr %96, i64 8 + %97 = load i32, ptr %add.ptr7.i.i.i350, align 4 + %mul.i.i.i.i.i.i.i.i351 = mul i32 %97, 455773 + %arrayidx2.i.i.i.i.i.i.i.i352 = getelementptr inbounds i8, ptr %96, i64 12 + %98 = load i32, ptr %arrayidx2.i.i.i.i.i.i.i.i352, align 4 + %mul3.i.i.i.i.i.i.i.i353 = mul i32 %98, 475301 + %xor.i.i.i.i.i.i.i.i354 = xor i32 %mul3.i.i.i.i.i.i.i.i353, %mul.i.i.i.i.i.i.i.i351 + %arrayidx4.i.i.i.i.i.i.i.i355 = getelementptr inbounds i8, ptr %96, i64 16 + %99 = load i32, ptr %arrayidx4.i.i.i.i.i.i.i.i355, align 4 + %mul5.i.i.i.i.i.i.i.i356 = mul i32 %99, 655287 + %xor6.i.i.i.i.i.i.i.i357 = xor i32 %xor.i.i.i.i.i.i.i.i354, %mul5.i.i.i.i.i.i.i.i356 + %and.i.i.i.i.i.i.i.i358 = and i32 %xor6.i.i.i.i.i.i.i.i357, 1048575 + %conv.i.i.i.i.i.i.i.i359 = zext nneg i32 %and.i.i.i.i.i.i.i.i358 to i64 + %rem.i.i.i.i.i.i360 = urem i64 %conv.i.i.i.i.i.i.i.i359, %88 + %cmp.not.i.i.i361 = icmp eq i64 %rem.i.i.i.i.i.i360, %rem.i.i.i.i339 + br i1 %cmp.not.i.i.i361, label %for.cond.i.i.i345, label %if.then122, !llvm.loop !132 + +if.then122: ; preds = %for.inc.i380, %lor.lhs.false.i.i.i349, %if.end3.i.i.i347, %if.end15.i328, %if.then.i369 + %call5.i.i.i.i.i467 = invoke noalias noundef nonnull dereferenceable(24) ptr @_Znwm(i64 noundef 24) #22 + to label %call5.i.i.i.i.i.noexc466 unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit + +call5.i.i.i.i.i.noexc466: ; preds = %if.then122 + store ptr null, ptr %call5.i.i.i.i.i467, align 8 + %add.ptr.i.i.i390 = getelementptr inbounds i8, ptr %call5.i.i.i.i.i467, i64 8 + store i64 %retval.sroa.0.0.copyload.i149, ptr %add.ptr.i.i.i390, align 4 + %ref.tmp123.sroa.0.sroa.2.0.add.ptr.i.i.i390.sroa_idx = getelementptr inbounds i8, ptr %call5.i.i.i.i.i467, i64 16 + store i32 %retval.sroa.2.0.copyload.i151, ptr %ref.tmp123.sroa.0.sroa.2.0.add.ptr.i.i.i390.sroa_idx, align 4 + %ref.tmp123.sroa.2.0.add.ptr.i.i.i390.sroa_idx = getelementptr inbounds i8, ptr %call5.i.i.i.i.i467, i64 20 + store i8 2, ptr %ref.tmp123.sroa.2.0.add.ptr.i.i.i390.sroa_idx, align 4 + %__it.sroa.0.036.i447 = load ptr, ptr %_M_before_begin.i.i, align 8 + %cmp.i.not37.i448 = icmp eq ptr %__it.sroa.0.036.i447, null + %or.cond822 = select i1 %cmp.not.not.i327, i1 true, i1 %cmp.i.not37.i448 + br i1 %or.cond822, label %invoke.cont21.i395, label %for.body.i453 + +for.body.i453: ; preds = %call5.i.i.i.i.i.noexc466, %for.inc.i457 + %__it.sroa.0.038.i454 = phi ptr [ %__it.sroa.0.0.i458, %for.inc.i457 ], [ %__it.sroa.0.036.i447, %call5.i.i.i.i.i.noexc466 ] + %add.ptr12.i455 = getelementptr inbounds i8, ptr %__it.sroa.0.038.i454, i64 8 + %100 = load i32, ptr %add.ptr12.i455, align 4 + %cmp.i.i.i.i456 = icmp eq i32 %100, %ref.tmp106.sroa.0.sroa.0.0.extract.trunc + br i1 %cmp.i.i.i.i456, label %land.lhs.true.i.i.i.i460, label %for.inc.i457 + +land.lhs.true.i.i.i.i460: ; preds = %for.body.i453 + %arrayidx.i.i3.i.i.i.i461 = getelementptr inbounds i8, ptr %__it.sroa.0.038.i454, i64 12 + %101 = load i32, ptr %arrayidx.i.i3.i.i.i.i461, align 4 + %cmp8.i.i.i.i462 = icmp eq i32 %101, %ref.tmp106.sroa.0.sroa.4.0.extract.trunc + br i1 %cmp8.i.i.i.i462, label %invoke.cont.i463, label %for.inc.i457 + +invoke.cont.i463: ; preds = %land.lhs.true.i.i.i.i460 + %arrayidx.i.i5.i.i.i.i464 = getelementptr inbounds i8, ptr %__it.sroa.0.038.i454, i64 16 + %102 = load i32, ptr %arrayidx.i.i5.i.i.i.i464, align 4 + %cmp13.i.i.i.i465 = icmp eq i32 %retval.sroa.2.0.copyload.i151, %102 + br i1 %cmp13.i.i.i.i465, label %if.then.i15.i443, label %for.inc.i457 + +_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE12_Scoped_nodeD2Ev.exit.i432: ; preds = %if.end34.i430 %103 = landingpad { ptr, i32 } cleanup - br label %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE12_Scoped_nodeD2Ev.exit.i434.body + br label %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE12_Scoped_nodeD2Ev.exit.i432.body -_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE12_Scoped_nodeD2Ev.exit.i434.body: ; preds = %lpad2.i.i514, %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE12_Scoped_nodeD2Ev.exit.i434 - %eh.lpad-body522 = phi { ptr, i32 } [ %103, %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE12_Scoped_nodeD2Ev.exit.i434 ], [ %132, %lpad2.i.i514 ] - call void @_ZdlPv(ptr noundef nonnull %call5.i.i.i.i.i469) #23 +_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE12_Scoped_nodeD2Ev.exit.i432.body: ; preds = %lpad2.i.i512, %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE12_Scoped_nodeD2Ev.exit.i432 + %eh.lpad-body520 = phi { ptr, i32 } [ %103, %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE12_Scoped_nodeD2Ev.exit.i432 ], [ %132, %lpad2.i.i512 ] + call void @_ZdlPv(ptr noundef nonnull %call5.i.i.i.i.i467) #23 br label %ehcleanup -for.inc.i459: ; preds = %invoke.cont.i465, %land.lhs.true.i.i.i.i462, %for.body.i455 - %__it.sroa.0.0.i460 = load ptr, ptr %__it.sroa.0.038.i456, align 8 - %cmp.i.not.i461 = icmp eq ptr %__it.sroa.0.0.i460, null - br i1 %cmp.i.not.i461, label %invoke.cont21.i397, label %for.body.i455, !llvm.loop !133 - -invoke.cont21.i397: ; preds = %for.inc.i459, %call5.i.i.i.i.i.noexc468 - %mul.i.i.i.i398 = mul i32 %ref.tmp106.sroa.0.sroa.0.0.extract.trunc, 455773 - %mul3.i.i.i.i400 = mul i32 %ref.tmp106.sroa.0.sroa.4.0.extract.trunc, 475301 - %xor.i.i.i.i401 = xor i32 %mul3.i.i.i.i400, %mul.i.i.i.i398 - %mul5.i.i.i.i403 = mul i32 %retval.sroa.2.0.copyload.i153, 655287 - %xor6.i.i.i.i404 = xor i32 %xor.i.i.i.i401, %mul5.i.i.i.i403 - %and.i.i.i.i405 = and i32 %xor6.i.i.i.i404, 1048575 - %conv.i.i.i.i406 = zext nneg i32 %and.i.i.i.i405 to i64 +for.inc.i457: ; preds = %invoke.cont.i463, %land.lhs.true.i.i.i.i460, %for.body.i453 + %__it.sroa.0.0.i458 = load ptr, ptr %__it.sroa.0.038.i454, align 8 + %cmp.i.not.i459 = icmp eq ptr %__it.sroa.0.0.i458, null + br i1 %cmp.i.not.i459, label %invoke.cont21.i395, label %for.body.i453, !llvm.loop !133 + +invoke.cont21.i395: ; preds = %for.inc.i457, %call5.i.i.i.i.i.noexc466 + %mul.i.i.i.i396 = mul i32 %ref.tmp106.sroa.0.sroa.0.0.extract.trunc, 455773 + %mul3.i.i.i.i398 = mul i32 %ref.tmp106.sroa.0.sroa.4.0.extract.trunc, 475301 + %xor.i.i.i.i399 = xor i32 %mul3.i.i.i.i398, %mul.i.i.i.i396 + %mul5.i.i.i.i401 = mul i32 %retval.sroa.2.0.copyload.i151, 655287 + %xor6.i.i.i.i402 = xor i32 %xor.i.i.i.i399, %mul5.i.i.i.i401 + %and.i.i.i.i403 = and i32 %xor6.i.i.i.i402, 1048575 + %conv.i.i.i.i404 = zext nneg i32 %and.i.i.i.i403 to i64 %104 = load i64, ptr %_M_bucket_count.i.i, align 8 - %rem.i.i.i.i408 = urem i64 %conv.i.i.i.i406, %104 - br i1 %cmp.not.not.i329, label %if.then26.i409, label %if.end34.i432 + %rem.i.i.i.i406 = urem i64 %conv.i.i.i.i404, %104 + br i1 %cmp.not.not.i327, label %if.then26.i407, label %if.end34.i430 -if.then26.i409: ; preds = %invoke.cont21.i397 +if.then26.i407: ; preds = %invoke.cont21.i395 %105 = load ptr, ptr %children, align 8 - %arrayidx.i.i.i410 = getelementptr inbounds ptr, ptr %105, i64 %rem.i.i.i.i408 - %106 = load ptr, ptr %arrayidx.i.i.i410, align 8 - %tobool.not.i.i.i411 = icmp eq ptr %106, null - br i1 %tobool.not.i.i.i411, label %if.end34.i432, label %if.end.i.i.i412 + %arrayidx.i.i.i408 = getelementptr inbounds ptr, ptr %105, i64 %rem.i.i.i.i406 + %106 = load ptr, ptr %arrayidx.i.i.i408, align 8 + %tobool.not.i.i.i409 = icmp eq ptr %106, null + br i1 %tobool.not.i.i.i409, label %if.end34.i430, label %if.end.i.i.i410 -if.end.i.i.i412: ; preds = %if.then26.i409 +if.end.i.i.i410: ; preds = %if.then26.i407 %107 = load ptr, ptr %106, align 8 - %add.ptr.phi.trans.insert.i.i.i413 = getelementptr inbounds i8, ptr %107, i64 8 - %.pre.i.i.i414 = load i32, ptr %add.ptr.phi.trans.insert.i.i.i413, align 4 - br label %for.cond.i.i.i415 - -for.cond.i.i.i415: ; preds = %lor.lhs.false.i.i.i419, %if.end.i.i.i412 - %108 = phi i32 [ %.pre.i.i.i414, %if.end.i.i.i412 ], [ %113, %lor.lhs.false.i.i.i419 ] - %109 = phi ptr [ %107, %if.end.i.i.i412 ], [ %112, %lor.lhs.false.i.i.i419 ] - %cmp.i.i.i.i.i.i.i416 = icmp eq i32 %108, %ref.tmp106.sroa.0.sroa.0.0.extract.trunc - br i1 %cmp.i.i.i.i.i.i.i416, label %land.lhs.true.i.i.i.i.i.i.i439, label %if.end3.i.i.i417 - -land.lhs.true.i.i.i.i.i.i.i439: ; preds = %for.cond.i.i.i415 - %arrayidx.i.i3.i.i.i.i.i.i.i440 = getelementptr inbounds i8, ptr %109, i64 12 - %110 = load i32, ptr %arrayidx.i.i3.i.i.i.i.i.i.i440, align 4 - %cmp8.i.i.i.i.i.i.i441 = icmp eq i32 %110, %ref.tmp106.sroa.0.sroa.4.0.extract.trunc - br i1 %cmp8.i.i.i.i.i.i.i441, label %_ZNKSt8__detail15_Hashtable_baseIN7openvdb5v11_04math5CoordESt4pairIKS4_hENS_10_Select1stESt8equal_toIS4_ESt4hashIS4_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_equalsERS6_mRKNS_16_Hash_node_valueIS7_Lb0EEE.exit.i.i.i442, label %if.end3.i.i.i417 - -_ZNKSt8__detail15_Hashtable_baseIN7openvdb5v11_04math5CoordESt4pairIKS4_hENS_10_Select1stESt8equal_toIS4_ESt4hashIS4_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_equalsERS6_mRKNS_16_Hash_node_valueIS7_Lb0EEE.exit.i.i.i442: ; preds = %land.lhs.true.i.i.i.i.i.i.i439 - %arrayidx.i.i5.i.i.i.i.i.i.i443 = getelementptr inbounds i8, ptr %109, i64 16 - %111 = load i32, ptr %arrayidx.i.i5.i.i.i.i.i.i.i443, align 4 - %cmp13.i.i.i.i.i.i.i444 = icmp eq i32 %retval.sroa.2.0.copyload.i153, %111 - br i1 %cmp13.i.i.i.i.i.i.i444, label %if.then.i15.i445, label %if.end3.i.i.i417 - -if.end3.i.i.i417: ; preds = %_ZNKSt8__detail15_Hashtable_baseIN7openvdb5v11_04math5CoordESt4pairIKS4_hENS_10_Select1stESt8equal_toIS4_ESt4hashIS4_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_equalsERS6_mRKNS_16_Hash_node_valueIS7_Lb0EEE.exit.i.i.i442, %land.lhs.true.i.i.i.i.i.i.i439, %for.cond.i.i.i415 + %add.ptr.phi.trans.insert.i.i.i411 = getelementptr inbounds i8, ptr %107, i64 8 + %.pre.i.i.i412 = load i32, ptr %add.ptr.phi.trans.insert.i.i.i411, align 4 + br label %for.cond.i.i.i413 + +for.cond.i.i.i413: ; preds = %lor.lhs.false.i.i.i417, %if.end.i.i.i410 + %108 = phi i32 [ %.pre.i.i.i412, %if.end.i.i.i410 ], [ %113, %lor.lhs.false.i.i.i417 ] + %109 = phi ptr [ %107, %if.end.i.i.i410 ], [ %112, %lor.lhs.false.i.i.i417 ] + %cmp.i.i.i.i.i.i.i414 = icmp eq i32 %108, %ref.tmp106.sroa.0.sroa.0.0.extract.trunc + br i1 %cmp.i.i.i.i.i.i.i414, label %land.lhs.true.i.i.i.i.i.i.i437, label %if.end3.i.i.i415 + +land.lhs.true.i.i.i.i.i.i.i437: ; preds = %for.cond.i.i.i413 + %arrayidx.i.i3.i.i.i.i.i.i.i438 = getelementptr inbounds i8, ptr %109, i64 12 + %110 = load i32, ptr %arrayidx.i.i3.i.i.i.i.i.i.i438, align 4 + %cmp8.i.i.i.i.i.i.i439 = icmp eq i32 %110, %ref.tmp106.sroa.0.sroa.4.0.extract.trunc + br i1 %cmp8.i.i.i.i.i.i.i439, label %_ZNKSt8__detail15_Hashtable_baseIN7openvdb5v11_04math5CoordESt4pairIKS4_hENS_10_Select1stESt8equal_toIS4_ESt4hashIS4_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_equalsERS6_mRKNS_16_Hash_node_valueIS7_Lb0EEE.exit.i.i.i440, label %if.end3.i.i.i415 + +_ZNKSt8__detail15_Hashtable_baseIN7openvdb5v11_04math5CoordESt4pairIKS4_hENS_10_Select1stESt8equal_toIS4_ESt4hashIS4_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_equalsERS6_mRKNS_16_Hash_node_valueIS7_Lb0EEE.exit.i.i.i440: ; preds = %land.lhs.true.i.i.i.i.i.i.i437 + %arrayidx.i.i5.i.i.i.i.i.i.i441 = getelementptr inbounds i8, ptr %109, i64 16 + %111 = load i32, ptr %arrayidx.i.i5.i.i.i.i.i.i.i441, align 4 + %cmp13.i.i.i.i.i.i.i442 = icmp eq i32 %retval.sroa.2.0.copyload.i151, %111 + br i1 %cmp13.i.i.i.i.i.i.i442, label %if.then.i15.i443, label %if.end3.i.i.i415 + +if.end3.i.i.i415: ; preds = %_ZNKSt8__detail15_Hashtable_baseIN7openvdb5v11_04math5CoordESt4pairIKS4_hENS_10_Select1stESt8equal_toIS4_ESt4hashIS4_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_equalsERS6_mRKNS_16_Hash_node_valueIS7_Lb0EEE.exit.i.i.i440, %land.lhs.true.i.i.i.i.i.i.i437, %for.cond.i.i.i413 %112 = load ptr, ptr %109, align 8 - %tobool5.not.i.i.i418 = icmp eq ptr %112, null - br i1 %tobool5.not.i.i.i418, label %if.end34.i432, label %lor.lhs.false.i.i.i419 - -lor.lhs.false.i.i.i419: ; preds = %if.end3.i.i.i417 - %add.ptr7.i.i.i420 = getelementptr inbounds i8, ptr %112, i64 8 - %113 = load i32, ptr %add.ptr7.i.i.i420, align 4 - %mul.i.i.i.i.i.i.i.i421 = mul i32 %113, 455773 - %arrayidx2.i.i.i.i.i.i.i.i422 = getelementptr inbounds i8, ptr %112, i64 12 - %114 = load i32, ptr %arrayidx2.i.i.i.i.i.i.i.i422, align 4 - %mul3.i.i.i.i.i.i.i.i423 = mul i32 %114, 475301 - %xor.i.i.i.i.i.i.i.i424 = xor i32 %mul3.i.i.i.i.i.i.i.i423, %mul.i.i.i.i.i.i.i.i421 - %arrayidx4.i.i.i.i.i.i.i.i425 = getelementptr inbounds i8, ptr %112, i64 16 - %115 = load i32, ptr %arrayidx4.i.i.i.i.i.i.i.i425, align 4 - %mul5.i.i.i.i.i.i.i.i426 = mul i32 %115, 655287 - %xor6.i.i.i.i.i.i.i.i427 = xor i32 %xor.i.i.i.i.i.i.i.i424, %mul5.i.i.i.i.i.i.i.i426 - %and.i.i.i.i.i.i.i.i428 = and i32 %xor6.i.i.i.i.i.i.i.i427, 1048575 - %conv.i.i.i.i.i.i.i.i429 = zext nneg i32 %and.i.i.i.i.i.i.i.i428 to i64 - %rem.i.i.i.i.i.i430 = urem i64 %conv.i.i.i.i.i.i.i.i429, %104 - %cmp.not.i.i.i431 = icmp eq i64 %rem.i.i.i.i.i.i430, %rem.i.i.i.i408 - br i1 %cmp.not.i.i.i431, label %for.cond.i.i.i415, label %if.end34.i432, !llvm.loop !132 - -if.end34.i432: ; preds = %lor.lhs.false.i.i.i419, %if.end3.i.i.i417, %if.then26.i409, %invoke.cont21.i397 + %tobool5.not.i.i.i416 = icmp eq ptr %112, null + br i1 %tobool5.not.i.i.i416, label %if.end34.i430, label %lor.lhs.false.i.i.i417 + +lor.lhs.false.i.i.i417: ; preds = %if.end3.i.i.i415 + %add.ptr7.i.i.i418 = getelementptr inbounds i8, ptr %112, i64 8 + %113 = load i32, ptr %add.ptr7.i.i.i418, align 4 + %mul.i.i.i.i.i.i.i.i419 = mul i32 %113, 455773 + %arrayidx2.i.i.i.i.i.i.i.i420 = getelementptr inbounds i8, ptr %112, i64 12 + %114 = load i32, ptr %arrayidx2.i.i.i.i.i.i.i.i420, align 4 + %mul3.i.i.i.i.i.i.i.i421 = mul i32 %114, 475301 + %xor.i.i.i.i.i.i.i.i422 = xor i32 %mul3.i.i.i.i.i.i.i.i421, %mul.i.i.i.i.i.i.i.i419 + %arrayidx4.i.i.i.i.i.i.i.i423 = getelementptr inbounds i8, ptr %112, i64 16 + %115 = load i32, ptr %arrayidx4.i.i.i.i.i.i.i.i423, align 4 + %mul5.i.i.i.i.i.i.i.i424 = mul i32 %115, 655287 + %xor6.i.i.i.i.i.i.i.i425 = xor i32 %xor.i.i.i.i.i.i.i.i422, %mul5.i.i.i.i.i.i.i.i424 + %and.i.i.i.i.i.i.i.i426 = and i32 %xor6.i.i.i.i.i.i.i.i425, 1048575 + %conv.i.i.i.i.i.i.i.i427 = zext nneg i32 %and.i.i.i.i.i.i.i.i426 to i64 + %rem.i.i.i.i.i.i428 = urem i64 %conv.i.i.i.i.i.i.i.i427, %104 + %cmp.not.i.i.i429 = icmp eq i64 %rem.i.i.i.i.i.i428, %rem.i.i.i.i406 + br i1 %cmp.not.i.i.i429, label %for.cond.i.i.i413, label %if.end34.i430, !llvm.loop !132 + +if.end34.i430: ; preds = %lor.lhs.false.i.i.i417, %if.end3.i.i.i415, %if.then26.i407, %invoke.cont21.i395 %116 = load i64, ptr %_M_next_resize.i.i.i, align 8 - %call3.i521 = invoke { i8, i64 } @_ZNKSt8__detail20_Prime_rehash_policy14_M_need_rehashEmmm(ptr noundef nonnull align 8 dereferenceable(16) %_M_rehash_policy.i.i, i64 noundef %104, i64 noundef %84, i64 noundef 1) - to label %call3.i.noexc520 unwind label %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE12_Scoped_nodeD2Ev.exit.i434 + %call3.i519 = invoke { i8, i64 } @_ZNKSt8__detail20_Prime_rehash_policy14_M_need_rehashEmmm(ptr noundef nonnull align 8 dereferenceable(16) %_M_rehash_policy.i.i, i64 noundef %104, i64 noundef %84, i64 noundef 1) + to label %call3.i.noexc518 unwind label %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE12_Scoped_nodeD2Ev.exit.i432 -call3.i.noexc520: ; preds = %if.end34.i432 - %117 = extractvalue { i8, i64 } %call3.i521, 0 - %tobool.i486 = trunc i8 %117 to i1 - br i1 %tobool.i486, label %if.then.i512, label %call3.i.noexc520.if.end.i487_crit_edge +call3.i.noexc518: ; preds = %if.end34.i430 + %117 = extractvalue { i8, i64 } %call3.i519, 0 + %tobool.i484 = trunc i8 %117 to i1 + br i1 %tobool.i484, label %if.then.i510, label %call3.i.noexc518.if.end.i485_crit_edge -call3.i.noexc520.if.end.i487_crit_edge: ; preds = %call3.i.noexc520 - %.pre748 = load ptr, ptr %children, align 8 - br label %if.end.i487 +call3.i.noexc518.if.end.i485_crit_edge: ; preds = %call3.i.noexc518 + %.pre750 = load ptr, ptr %children, align 8 + br label %if.end.i485 -if.then.i512: ; preds = %call3.i.noexc520 - %118 = extractvalue { i8, i64 } %call3.i521, 1 - %cmp.i.i541 = icmp eq i64 %118, 1 - br i1 %cmp.i.i541, label %if.then.i.i586, label %if.end.i.i542 +if.then.i510: ; preds = %call3.i.noexc518 + %118 = extractvalue { i8, i64 } %call3.i519, 1 + %cmp.i.i539 = icmp eq i64 %118, 1 + br i1 %cmp.i.i539, label %if.then.i.i584, label %if.end.i.i540 -if.then.i.i586: ; preds = %if.then.i512 +if.then.i.i584: ; preds = %if.then.i510 store ptr null, ptr %_M_single_bucket.i.i, align 8 - br label %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE19_M_allocate_bucketsEm.exit.i546 + br label %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE19_M_allocate_bucketsEm.exit.i544 -if.end.i.i542: ; preds = %if.then.i512 - %cmp.i.i.i.i.i543 = icmp ugt i64 %118, 1152921504606846975 - br i1 %cmp.i.i.i.i.i543, label %if.then.i.i.i.i.i582, label %_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeISt4pairIKN7openvdb5v11_04math5CoordEhELb0EEEEE19_M_allocate_bucketsEm.exit.i.i544 +if.end.i.i540: ; preds = %if.then.i510 + %cmp.i.i.i.i.i541 = icmp ugt i64 %118, 1152921504606846975 + br i1 %cmp.i.i.i.i.i541, label %if.then.i.i.i.i.i580, label %_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeISt4pairIKN7openvdb5v11_04math5CoordEhELb0EEEEE19_M_allocate_bucketsEm.exit.i.i542 -if.then.i.i.i.i.i582: ; preds = %if.end.i.i542 - %cmp2.i.i.i.i.i583 = icmp ugt i64 %118, 2305843009213693951 - br i1 %cmp2.i.i.i.i.i583, label %if.then3.i.i.i.i.i585, label %if.end.i.i.i.i.i584 +if.then.i.i.i.i.i580: ; preds = %if.end.i.i540 + %cmp2.i.i.i.i.i581 = icmp ugt i64 %118, 2305843009213693951 + br i1 %cmp2.i.i.i.i.i581, label %if.then3.i.i.i.i.i583, label %if.end.i.i.i.i.i582 -if.then3.i.i.i.i.i585: ; preds = %if.then.i.i.i.i.i582 +if.then3.i.i.i.i.i583: ; preds = %if.then.i.i.i.i.i580 invoke void @_ZSt28__throw_bad_array_new_lengthv() #24 - to label %.noexc588 unwind label %lpad.i.i513.loopexit.split-lp + to label %.noexc586 unwind label %lpad.i.i511.loopexit.split-lp -.noexc588: ; preds = %if.then3.i.i.i.i.i585 +.noexc586: ; preds = %if.then3.i.i.i.i.i583 unreachable -if.end.i.i.i.i.i584: ; preds = %if.then.i.i.i.i.i582 +if.end.i.i.i.i.i582: ; preds = %if.then.i.i.i.i.i580 invoke void @_ZSt17__throw_bad_allocv() #24 - to label %.noexc589 unwind label %lpad.i.i513.loopexit.split-lp + to label %.noexc587 unwind label %lpad.i.i511.loopexit.split-lp -.noexc589: ; preds = %if.end.i.i.i.i.i584 +.noexc587: ; preds = %if.end.i.i.i.i.i582 unreachable -_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeISt4pairIKN7openvdb5v11_04math5CoordEhELb0EEEEE19_M_allocate_bucketsEm.exit.i.i544: ; preds = %if.end.i.i542 - %mul.i.i.i.i.i545 = shl nuw nsw i64 %118, 3 - %call5.i.i4.i.i.i591 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef %mul.i.i.i.i.i545) #22 - to label %call5.i.i4.i.i.i.noexc590 unwind label %lpad.i.i513.loopexit +_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeISt4pairIKN7openvdb5v11_04math5CoordEhELb0EEEEE19_M_allocate_bucketsEm.exit.i.i542: ; preds = %if.end.i.i540 + %mul.i.i.i.i.i543 = shl nuw nsw i64 %118, 3 + %call5.i.i4.i.i.i589 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef %mul.i.i.i.i.i543) #22 + to label %call5.i.i4.i.i.i.noexc588 unwind label %lpad.i.i511.loopexit -call5.i.i4.i.i.i.noexc590: ; preds = %_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeISt4pairIKN7openvdb5v11_04math5CoordEhELb0EEEEE19_M_allocate_bucketsEm.exit.i.i544 - call void @llvm.memset.p0.i64(ptr nonnull align 8 %call5.i.i4.i.i.i591, i8 0, i64 %mul.i.i.i.i.i545, i1 false) - br label %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE19_M_allocate_bucketsEm.exit.i546 +call5.i.i4.i.i.i.noexc588: ; preds = %_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeISt4pairIKN7openvdb5v11_04math5CoordEhELb0EEEEE19_M_allocate_bucketsEm.exit.i.i542 + call void @llvm.memset.p0.i64(ptr nonnull align 8 %call5.i.i4.i.i.i589, i8 0, i64 %mul.i.i.i.i.i543, i1 false) + br label %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE19_M_allocate_bucketsEm.exit.i544 -_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE19_M_allocate_bucketsEm.exit.i546: ; preds = %call5.i.i4.i.i.i.noexc590, %if.then.i.i586 - %retval.0.i.i547 = phi ptr [ %_M_single_bucket.i.i, %if.then.i.i586 ], [ %call5.i.i4.i.i.i591, %call5.i.i4.i.i.i.noexc590 ] +_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE19_M_allocate_bucketsEm.exit.i544: ; preds = %call5.i.i4.i.i.i.noexc588, %if.then.i.i584 + %retval.0.i.i545 = phi ptr [ %_M_single_bucket.i.i, %if.then.i.i584 ], [ %call5.i.i4.i.i.i589, %call5.i.i4.i.i.i.noexc588 ] %119 = load ptr, ptr %_M_before_begin.i.i, align 8 store ptr null, ptr %_M_before_begin.i.i, align 8 - %tobool.not21.i549 = icmp eq ptr %119, null - br i1 %tobool.not21.i549, label %while.end.i573, label %while.body.i550 - -while.body.i550: ; preds = %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE19_M_allocate_bucketsEm.exit.i546, %if.end22.i570 - %__p.023.i551 = phi ptr [ %120, %if.end22.i570 ], [ %119, %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE19_M_allocate_bucketsEm.exit.i546 ] - %__bbegin_bkt.022.i552 = phi i64 [ %__bbegin_bkt.1.i571, %if.end22.i570 ], [ 0, %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE19_M_allocate_bucketsEm.exit.i546 ] - %120 = load ptr, ptr %__p.023.i551, align 8 - %add.ptr.i553 = getelementptr inbounds i8, ptr %__p.023.i551, i64 8 - %121 = load i32, ptr %add.ptr.i553, align 4 - %mul.i.i.i.i20.i554 = mul i32 %121, 455773 - %arrayidx2.i.i.i.i.i555 = getelementptr inbounds i8, ptr %__p.023.i551, i64 12 - %122 = load i32, ptr %arrayidx2.i.i.i.i.i555, align 4 - %mul3.i.i.i.i.i556 = mul i32 %122, 475301 - %xor.i.i.i.i.i557 = xor i32 %mul3.i.i.i.i.i556, %mul.i.i.i.i20.i554 - %arrayidx4.i.i.i.i.i558 = getelementptr inbounds i8, ptr %__p.023.i551, i64 16 - %123 = load i32, ptr %arrayidx4.i.i.i.i.i558, align 4 - %mul5.i.i.i.i.i559 = mul i32 %123, 655287 - %xor6.i.i.i.i.i560 = xor i32 %xor.i.i.i.i.i557, %mul5.i.i.i.i.i559 - %and.i.i.i.i.i561 = and i32 %xor6.i.i.i.i.i560, 1048575 - %conv.i.i.i.i.i562 = zext nneg i32 %and.i.i.i.i.i561 to i64 - %rem.i.i.i563 = urem i64 %conv.i.i.i.i.i562, %118 - %arrayidx.i564 = getelementptr inbounds ptr, ptr %retval.0.i.i547, i64 %rem.i.i.i563 - %124 = load ptr, ptr %arrayidx.i564, align 8 - %tobool5.not.i565 = icmp eq ptr %124, null - br i1 %tobool5.not.i565, label %if.then.i578, label %if.else.i566 - -if.then.i578: ; preds = %while.body.i550 + %tobool.not21.i547 = icmp eq ptr %119, null + br i1 %tobool.not21.i547, label %while.end.i571, label %while.body.i548 + +while.body.i548: ; preds = %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE19_M_allocate_bucketsEm.exit.i544, %if.end22.i568 + %__p.023.i549 = phi ptr [ %120, %if.end22.i568 ], [ %119, %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE19_M_allocate_bucketsEm.exit.i544 ] + %__bbegin_bkt.022.i550 = phi i64 [ %__bbegin_bkt.1.i569, %if.end22.i568 ], [ 0, %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE19_M_allocate_bucketsEm.exit.i544 ] + %120 = load ptr, ptr %__p.023.i549, align 8 + %add.ptr.i551 = getelementptr inbounds i8, ptr %__p.023.i549, i64 8 + %121 = load i32, ptr %add.ptr.i551, align 4 + %mul.i.i.i.i20.i552 = mul i32 %121, 455773 + %arrayidx2.i.i.i.i.i553 = getelementptr inbounds i8, ptr %__p.023.i549, i64 12 + %122 = load i32, ptr %arrayidx2.i.i.i.i.i553, align 4 + %mul3.i.i.i.i.i554 = mul i32 %122, 475301 + %xor.i.i.i.i.i555 = xor i32 %mul3.i.i.i.i.i554, %mul.i.i.i.i20.i552 + %arrayidx4.i.i.i.i.i556 = getelementptr inbounds i8, ptr %__p.023.i549, i64 16 + %123 = load i32, ptr %arrayidx4.i.i.i.i.i556, align 4 + %mul5.i.i.i.i.i557 = mul i32 %123, 655287 + %xor6.i.i.i.i.i558 = xor i32 %xor.i.i.i.i.i555, %mul5.i.i.i.i.i557 + %and.i.i.i.i.i559 = and i32 %xor6.i.i.i.i.i558, 1048575 + %conv.i.i.i.i.i560 = zext nneg i32 %and.i.i.i.i.i559 to i64 + %rem.i.i.i561 = urem i64 %conv.i.i.i.i.i560, %118 + %arrayidx.i562 = getelementptr inbounds ptr, ptr %retval.0.i.i545, i64 %rem.i.i.i561 + %124 = load ptr, ptr %arrayidx.i562, align 8 + %tobool5.not.i563 = icmp eq ptr %124, null + br i1 %tobool5.not.i563, label %if.then.i576, label %if.else.i564 + +if.then.i576: ; preds = %while.body.i548 %125 = load ptr, ptr %_M_before_begin.i.i, align 8 - store ptr %125, ptr %__p.023.i551, align 8 - store ptr %__p.023.i551, ptr %_M_before_begin.i.i, align 8 - store ptr %_M_before_begin.i.i, ptr %arrayidx.i564, align 8 - %126 = load ptr, ptr %__p.023.i551, align 8 - %tobool14.not.i579 = icmp eq ptr %126, null - br i1 %tobool14.not.i579, label %if.end22.i570, label %if.then15.i580 - -if.then15.i580: ; preds = %if.then.i578 - %arrayidx16.i581 = getelementptr inbounds ptr, ptr %retval.0.i.i547, i64 %__bbegin_bkt.022.i552 - br label %if.end22.sink.split.i567 - -if.else.i566: ; preds = %while.body.i550 + store ptr %125, ptr %__p.023.i549, align 8 + store ptr %__p.023.i549, ptr %_M_before_begin.i.i, align 8 + store ptr %_M_before_begin.i.i, ptr %arrayidx.i562, align 8 + %126 = load ptr, ptr %__p.023.i549, align 8 + %tobool14.not.i577 = icmp eq ptr %126, null + br i1 %tobool14.not.i577, label %if.end22.i568, label %if.then15.i578 + +if.then15.i578: ; preds = %if.then.i576 + %arrayidx16.i579 = getelementptr inbounds ptr, ptr %retval.0.i.i545, i64 %__bbegin_bkt.022.i550 + br label %if.end22.sink.split.i565 + +if.else.i564: ; preds = %while.body.i548 %127 = load ptr, ptr %124, align 8 - store ptr %127, ptr %__p.023.i551, align 8 - %128 = load ptr, ptr %arrayidx.i564, align 8 - br label %if.end22.sink.split.i567 - -if.end22.sink.split.i567: ; preds = %if.else.i566, %if.then15.i580 - %arrayidx16.sink.i568 = phi ptr [ %arrayidx16.i581, %if.then15.i580 ], [ %128, %if.else.i566 ] - %__bbegin_bkt.1.ph.i569 = phi i64 [ %rem.i.i.i563, %if.then15.i580 ], [ %__bbegin_bkt.022.i552, %if.else.i566 ] - store ptr %__p.023.i551, ptr %arrayidx16.sink.i568, align 8 - br label %if.end22.i570 - -if.end22.i570: ; preds = %if.end22.sink.split.i567, %if.then.i578 - %__bbegin_bkt.1.i571 = phi i64 [ %rem.i.i.i563, %if.then.i578 ], [ %__bbegin_bkt.1.ph.i569, %if.end22.sink.split.i567 ] - %tobool.not.i572 = icmp eq ptr %120, null - br i1 %tobool.not.i572, label %while.end.i573, label %while.body.i550, !llvm.loop !134 - -while.end.i573: ; preds = %if.end22.i570, %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE19_M_allocate_bucketsEm.exit.i546 + store ptr %127, ptr %__p.023.i549, align 8 + %128 = load ptr, ptr %arrayidx.i562, align 8 + br label %if.end22.sink.split.i565 + +if.end22.sink.split.i565: ; preds = %if.else.i564, %if.then15.i578 + %arrayidx16.sink.i566 = phi ptr [ %arrayidx16.i579, %if.then15.i578 ], [ %128, %if.else.i564 ] + %__bbegin_bkt.1.ph.i567 = phi i64 [ %rem.i.i.i561, %if.then15.i578 ], [ %__bbegin_bkt.022.i550, %if.else.i564 ] + store ptr %__p.023.i549, ptr %arrayidx16.sink.i566, align 8 + br label %if.end22.i568 + +if.end22.i568: ; preds = %if.end22.sink.split.i565, %if.then.i576 + %__bbegin_bkt.1.i569 = phi i64 [ %rem.i.i.i561, %if.then.i576 ], [ %__bbegin_bkt.1.ph.i567, %if.end22.sink.split.i565 ] + %tobool.not.i570 = icmp eq ptr %120, null + br i1 %tobool.not.i570, label %while.end.i571, label %while.body.i548, !llvm.loop !134 + +while.end.i571: ; preds = %if.end22.i568, %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE19_M_allocate_bucketsEm.exit.i544 %129 = load ptr, ptr %children, align 8 - %cmp.i.i.i.i575 = icmp eq ptr %_M_single_bucket.i.i, %129 - br i1 %cmp.i.i.i.i575, label %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_rehashEmRKm.exit.i518, label %if.end.i.i.i576 + %cmp.i.i.i.i573 = icmp eq ptr %_M_single_bucket.i.i, %129 + br i1 %cmp.i.i.i.i573, label %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_rehashEmRKm.exit.i516, label %if.end.i.i.i574 -if.end.i.i.i576: ; preds = %while.end.i573 +if.end.i.i.i574: ; preds = %while.end.i571 call void @_ZdlPv(ptr noundef %129) #23 - br label %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_rehashEmRKm.exit.i518 + br label %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_rehashEmRKm.exit.i516 -lpad.i.i513.loopexit: ; preds = %_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeISt4pairIKN7openvdb5v11_04math5CoordEhELb0EEEEE19_M_allocate_bucketsEm.exit.i.i544 - %lpad.loopexit650 = landingpad { ptr, i32 } +lpad.i.i511.loopexit: ; preds = %_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeISt4pairIKN7openvdb5v11_04math5CoordEhELb0EEEEE19_M_allocate_bucketsEm.exit.i.i542 + %lpad.loopexit648 = landingpad { ptr, i32 } catch ptr null - br label %lpad.i.i513 + br label %lpad.i.i511 -lpad.i.i513.loopexit.split-lp: ; preds = %if.then3.i.i.i.i.i585, %if.end.i.i.i.i.i584 - %lpad.loopexit.split-lp651 = landingpad { ptr, i32 } +lpad.i.i511.loopexit.split-lp: ; preds = %if.then3.i.i.i.i.i583, %if.end.i.i.i.i.i582 + %lpad.loopexit.split-lp649 = landingpad { ptr, i32 } catch ptr null - br label %lpad.i.i513 + br label %lpad.i.i511 -lpad.i.i513: ; preds = %lpad.i.i513.loopexit.split-lp, %lpad.i.i513.loopexit - %lpad.phi652 = phi { ptr, i32 } [ %lpad.loopexit650, %lpad.i.i513.loopexit ], [ %lpad.loopexit.split-lp651, %lpad.i.i513.loopexit.split-lp ] - %130 = extractvalue { ptr, i32 } %lpad.phi652, 0 +lpad.i.i511: ; preds = %lpad.i.i511.loopexit.split-lp, %lpad.i.i511.loopexit + %lpad.phi650 = phi { ptr, i32 } [ %lpad.loopexit648, %lpad.i.i511.loopexit ], [ %lpad.loopexit.split-lp649, %lpad.i.i511.loopexit.split-lp ] + %130 = extractvalue { ptr, i32 } %lpad.phi650, 0 %131 = call ptr @__cxa_begin_catch(ptr %130) #15 store i64 %116, ptr %_M_next_resize.i.i.i, align 8 invoke void @__cxa_rethrow() #24 - to label %unreachable.i.i517 unwind label %lpad2.i.i514 + to label %unreachable.i.i515 unwind label %lpad2.i.i512 -lpad2.i.i514: ; preds = %lpad.i.i513 +lpad2.i.i512: ; preds = %lpad.i.i511 %132 = landingpad { ptr, i32 } cleanup invoke void @__cxa_end_catch() - to label %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE12_Scoped_nodeD2Ev.exit.i434.body unwind label %terminate.lpad.i.i515 + to label %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE12_Scoped_nodeD2Ev.exit.i432.body unwind label %terminate.lpad.i.i513 -terminate.lpad.i.i515: ; preds = %lpad2.i.i514 +terminate.lpad.i.i513: ; preds = %lpad2.i.i512 %133 = landingpad { ptr, i32 } catch ptr null %134 = extractvalue { ptr, i32 } %133, 0 call void @__clang_call_terminate(ptr %134) #26 unreachable -unreachable.i.i517: ; preds = %lpad.i.i513 +unreachable.i.i515: ; preds = %lpad.i.i511 unreachable -_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_rehashEmRKm.exit.i518: ; preds = %if.end.i.i.i576, %while.end.i573 +_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_rehashEmRKm.exit.i516: ; preds = %if.end.i.i.i574, %while.end.i571 store i64 %118, ptr %_M_bucket_count.i.i, align 8 - store ptr %retval.0.i.i547, ptr %children, align 8 - %rem.i.i.i.i519 = urem i64 %conv.i.i.i.i406, %118 - br label %if.end.i487 - -if.end.i487: ; preds = %call3.i.noexc520.if.end.i487_crit_edge, %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_rehashEmRKm.exit.i518 - %135 = phi ptr [ %retval.0.i.i547, %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_rehashEmRKm.exit.i518 ], [ %.pre748, %call3.i.noexc520.if.end.i487_crit_edge ] - %__bkt.addr.0.i488 = phi i64 [ %rem.i.i.i.i519, %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_rehashEmRKm.exit.i518 ], [ %rem.i.i.i.i408, %call3.i.noexc520.if.end.i487_crit_edge ] - %arrayidx.i.i489 = getelementptr inbounds ptr, ptr %135, i64 %__bkt.addr.0.i488 - %136 = load ptr, ptr %arrayidx.i.i489, align 8 - %tobool.not.i.i490 = icmp eq ptr %136, null - br i1 %tobool.not.i.i490, label %if.else.i.i494, label %if.then.i.i491 - -if.then.i.i491: ; preds = %if.end.i487 + store ptr %retval.0.i.i545, ptr %children, align 8 + %rem.i.i.i.i517 = urem i64 %conv.i.i.i.i404, %118 + br label %if.end.i485 + +if.end.i485: ; preds = %call3.i.noexc518.if.end.i485_crit_edge, %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_rehashEmRKm.exit.i516 + %135 = phi ptr [ %retval.0.i.i545, %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_rehashEmRKm.exit.i516 ], [ %.pre750, %call3.i.noexc518.if.end.i485_crit_edge ] + %__bkt.addr.0.i486 = phi i64 [ %rem.i.i.i.i517, %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_rehashEmRKm.exit.i516 ], [ %rem.i.i.i.i406, %call3.i.noexc518.if.end.i485_crit_edge ] + %arrayidx.i.i487 = getelementptr inbounds ptr, ptr %135, i64 %__bkt.addr.0.i486 + %136 = load ptr, ptr %arrayidx.i.i487, align 8 + %tobool.not.i.i488 = icmp eq ptr %136, null + br i1 %tobool.not.i.i488, label %if.else.i.i492, label %if.then.i.i489 + +if.then.i.i489: ; preds = %if.end.i485 %137 = load ptr, ptr %136, align 8 - store ptr %137, ptr %call5.i.i.i.i.i469, align 8 - %138 = load ptr, ptr %arrayidx.i.i489, align 8 - store ptr %call5.i.i.i.i.i469, ptr %138, align 8 - br label %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE21_M_insert_unique_nodeEmmPNS8_10_Hash_nodeIS6_Lb0EEEm.exit523 + store ptr %137, ptr %call5.i.i.i.i.i467, align 8 + %138 = load ptr, ptr %arrayidx.i.i487, align 8 + store ptr %call5.i.i.i.i.i467, ptr %138, align 8 + br label %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE21_M_insert_unique_nodeEmmPNS8_10_Hash_nodeIS6_Lb0EEEm.exit521 -if.else.i.i494: ; preds = %if.end.i487 +if.else.i.i492: ; preds = %if.end.i485 %139 = load ptr, ptr %_M_before_begin.i.i, align 8 - store ptr %139, ptr %call5.i.i.i.i.i469, align 8 - store ptr %call5.i.i.i.i.i469, ptr %_M_before_begin.i.i, align 8 - %tobool13.not.i.i496 = icmp eq ptr %139, null - br i1 %tobool13.not.i.i496, label %if.end.i.i510, label %if.then14.i.i497 + store ptr %139, ptr %call5.i.i.i.i.i467, align 8 + store ptr %call5.i.i.i.i.i467, ptr %_M_before_begin.i.i, align 8 + %tobool13.not.i.i494 = icmp eq ptr %139, null + br i1 %tobool13.not.i.i494, label %if.end.i.i508, label %if.then14.i.i495 -if.then14.i.i497: ; preds = %if.else.i.i494 - %add.ptr.i.i498 = getelementptr inbounds i8, ptr %139, i64 8 +if.then14.i.i495: ; preds = %if.else.i.i492 + %add.ptr.i.i496 = getelementptr inbounds i8, ptr %139, i64 8 %140 = load i64, ptr %_M_bucket_count.i.i, align 8 - %141 = load i32, ptr %add.ptr.i.i498, align 4 - %mul.i.i.i.i.i.i.i499 = mul i32 %141, 455773 - %arrayidx2.i.i.i.i.i.i.i500 = getelementptr inbounds i8, ptr %139, i64 12 - %142 = load i32, ptr %arrayidx2.i.i.i.i.i.i.i500, align 4 - %mul3.i.i.i.i.i.i.i501 = mul i32 %142, 475301 - %xor.i.i.i.i.i.i.i502 = xor i32 %mul3.i.i.i.i.i.i.i501, %mul.i.i.i.i.i.i.i499 - %arrayidx4.i.i.i.i.i.i.i503 = getelementptr inbounds i8, ptr %139, i64 16 - %143 = load i32, ptr %arrayidx4.i.i.i.i.i.i.i503, align 4 - %mul5.i.i.i.i.i.i.i504 = mul i32 %143, 655287 - %xor6.i.i.i.i.i.i.i505 = xor i32 %xor.i.i.i.i.i.i.i502, %mul5.i.i.i.i.i.i.i504 - %and.i.i.i.i.i.i.i506 = and i32 %xor6.i.i.i.i.i.i.i505, 1048575 - %conv.i.i.i.i.i.i.i507 = zext nneg i32 %and.i.i.i.i.i.i.i506 to i64 - %rem.i.i.i.i.i508 = urem i64 %conv.i.i.i.i.i.i.i507, %140 - %arrayidx17.i.i509 = getelementptr inbounds ptr, ptr %135, i64 %rem.i.i.i.i.i508 - store ptr %call5.i.i.i.i.i469, ptr %arrayidx17.i.i509, align 8 - %.pre749 = load ptr, ptr %children, align 8 - br label %if.end.i.i510 - -if.end.i.i510: ; preds = %if.then14.i.i497, %if.else.i.i494 - %144 = phi ptr [ %.pre749, %if.then14.i.i497 ], [ %135, %if.else.i.i494 ] - %arrayidx20.i.i511 = getelementptr inbounds ptr, ptr %144, i64 %__bkt.addr.0.i488 - store ptr %_M_before_begin.i.i, ptr %arrayidx20.i.i511, align 8 - br label %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE21_M_insert_unique_nodeEmmPNS8_10_Hash_nodeIS6_Lb0EEEm.exit523 - -_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE21_M_insert_unique_nodeEmmPNS8_10_Hash_nodeIS6_Lb0EEEm.exit523: ; preds = %if.then.i.i491, %if.end.i.i510 + %141 = load i32, ptr %add.ptr.i.i496, align 4 + %mul.i.i.i.i.i.i.i497 = mul i32 %141, 455773 + %arrayidx2.i.i.i.i.i.i.i498 = getelementptr inbounds i8, ptr %139, i64 12 + %142 = load i32, ptr %arrayidx2.i.i.i.i.i.i.i498, align 4 + %mul3.i.i.i.i.i.i.i499 = mul i32 %142, 475301 + %xor.i.i.i.i.i.i.i500 = xor i32 %mul3.i.i.i.i.i.i.i499, %mul.i.i.i.i.i.i.i497 + %arrayidx4.i.i.i.i.i.i.i501 = getelementptr inbounds i8, ptr %139, i64 16 + %143 = load i32, ptr %arrayidx4.i.i.i.i.i.i.i501, align 4 + %mul5.i.i.i.i.i.i.i502 = mul i32 %143, 655287 + %xor6.i.i.i.i.i.i.i503 = xor i32 %xor.i.i.i.i.i.i.i500, %mul5.i.i.i.i.i.i.i502 + %and.i.i.i.i.i.i.i504 = and i32 %xor6.i.i.i.i.i.i.i503, 1048575 + %conv.i.i.i.i.i.i.i505 = zext nneg i32 %and.i.i.i.i.i.i.i504 to i64 + %rem.i.i.i.i.i506 = urem i64 %conv.i.i.i.i.i.i.i505, %140 + %arrayidx17.i.i507 = getelementptr inbounds ptr, ptr %135, i64 %rem.i.i.i.i.i506 + store ptr %call5.i.i.i.i.i467, ptr %arrayidx17.i.i507, align 8 + %.pre751 = load ptr, ptr %children, align 8 + br label %if.end.i.i508 + +if.end.i.i508: ; preds = %if.then14.i.i495, %if.else.i.i492 + %144 = phi ptr [ %.pre751, %if.then14.i.i495 ], [ %135, %if.else.i.i492 ] + %arrayidx20.i.i509 = getelementptr inbounds ptr, ptr %144, i64 %__bkt.addr.0.i486 + store ptr %_M_before_begin.i.i, ptr %arrayidx20.i.i509, align 8 + br label %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE21_M_insert_unique_nodeEmmPNS8_10_Hash_nodeIS6_Lb0EEEm.exit521 + +_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE21_M_insert_unique_nodeEmmPNS8_10_Hash_nodeIS6_Lb0EEEm.exit521: ; preds = %if.then.i.i489, %if.end.i.i508 %145 = load i64, ptr %_M_element_count.i.i, align 8 - %inc.i493 = add i64 %145, 1 - store i64 %inc.i493, ptr %_M_element_count.i.i, align 8 + %inc.i491 = add i64 %145, 1 + store i64 %inc.i491, ptr %_M_element_count.i.i, align 8 br label %for.inc135 -if.then.i15.i445: ; preds = %invoke.cont.i465, %_ZNKSt8__detail15_Hashtable_baseIN7openvdb5v11_04math5CoordESt4pairIKS4_hENS_10_Select1stESt8equal_toIS4_ESt4hashIS4_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_equalsERS6_mRKNS_16_Hash_node_valueIS7_Lb0EEE.exit.i.i.i442 - call void @_ZdlPv(ptr noundef nonnull %call5.i.i.i.i.i469) #23 +if.then.i15.i443: ; preds = %invoke.cont.i463, %_ZNKSt8__detail15_Hashtable_baseIN7openvdb5v11_04math5CoordESt4pairIKS4_hENS_10_Select1stESt8equal_toIS4_ESt4hashIS4_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_equalsERS6_mRKNS_16_Hash_node_valueIS7_Lb0EEE.exit.i.i.i440 + call void @_ZdlPv(ptr noundef nonnull %call5.i.i.i.i.i467) #23 br label %for.inc135 -if.else128: ; preds = %_ZNKSt8__detail15_Hashtable_baseIN7openvdb5v11_04math5CoordESt4pairIKS4_hENS_10_Select1stESt8equal_toIS4_ESt4hashIS4_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE13_M_key_equalsERS6_RKNS_16_Hash_node_valueIS7_Lb0EEE.exit.i388, %_ZNKSt8__detail15_Hashtable_baseIN7openvdb5v11_04math5CoordESt4pairIKS4_hENS_10_Select1stESt8equal_toIS4_ESt4hashIS4_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_equalsERS6_mRKNS_16_Hash_node_valueIS7_Lb0EEE.exit.i.i.i368 - %retval.sroa.0.1.i364 = phi ptr [ %93, %_ZNKSt8__detail15_Hashtable_baseIN7openvdb5v11_04math5CoordESt4pairIKS4_hENS_10_Select1stESt8equal_toIS4_ESt4hashIS4_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_equalsERS6_mRKNS_16_Hash_node_valueIS7_Lb0EEE.exit.i.i.i368 ], [ %retval.sroa.0.011.i379, %_ZNKSt8__detail15_Hashtable_baseIN7openvdb5v11_04math5CoordESt4pairIKS4_hENS_10_Select1stESt8equal_toIS4_ESt4hashIS4_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE13_M_key_equalsERS6_RKNS_16_Hash_node_valueIS7_Lb0EEE.exit.i388 ] - %second130 = getelementptr inbounds i8, ptr %retval.sroa.0.1.i364, i64 20 +if.else128: ; preds = %_ZNKSt8__detail15_Hashtable_baseIN7openvdb5v11_04math5CoordESt4pairIKS4_hENS_10_Select1stESt8equal_toIS4_ESt4hashIS4_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE13_M_key_equalsERS6_RKNS_16_Hash_node_valueIS7_Lb0EEE.exit.i386, %_ZNKSt8__detail15_Hashtable_baseIN7openvdb5v11_04math5CoordESt4pairIKS4_hENS_10_Select1stESt8equal_toIS4_ESt4hashIS4_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_equalsERS6_mRKNS_16_Hash_node_valueIS7_Lb0EEE.exit.i.i.i366 + %retval.sroa.0.1.i362 = phi ptr [ %93, %_ZNKSt8__detail15_Hashtable_baseIN7openvdb5v11_04math5CoordESt4pairIKS4_hENS_10_Select1stESt8equal_toIS4_ESt4hashIS4_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_equalsERS6_mRKNS_16_Hash_node_valueIS7_Lb0EEE.exit.i.i.i366 ], [ %retval.sroa.0.011.i377, %_ZNKSt8__detail15_Hashtable_baseIN7openvdb5v11_04math5CoordESt4pairIKS4_hENS_10_Select1stESt8equal_toIS4_ESt4hashIS4_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb0ELb0ELb1EEEE13_M_key_equalsERS6_RKNS_16_Hash_node_valueIS7_Lb0EEE.exit.i386 ] + %second130 = getelementptr inbounds i8, ptr %retval.sroa.0.1.i362, i64 20 %146 = load i8, ptr %second130, align 4 %147 = or i8 %146, 2 store i8 %147, ptr %second130, align 4 br label %for.inc135 -for.inc135: ; preds = %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE21_M_insert_unique_nodeEmmPNS8_10_Hash_nodeIS6_Lb0EEEm.exit523, %if.then.i15.i445, %if.else128 - %cmp.i.i.not.i.i165 = icmp eq ptr %childIter97.sroa.3.0696, %add.ptr.i.i.i.i.i.i90 - br i1 %cmp.i.i.not.i.i165, label %for.inc139, label %if.end.i.i166 - -if.end.i.i166: ; preds = %for.inc135 - %call.i.i.i167 = call noundef ptr @_ZSt18_Rb_tree_incrementPKSt18_Rb_tree_node_base(ptr noundef %childIter97.sroa.3.0696) #25 - %cmp.i.i.not2.i.i.i168 = icmp eq ptr %call.i.i.i167, %add.ptr.i.i.i.i.i.i90 - br i1 %cmp.i.i.not2.i.i.i168, label %for.inc139, label %land.rhs.i.i.i169 - -land.rhs.i.i.i169: ; preds = %if.end.i.i166, %while.body.i.i.i173 - %childIter97.sroa.3.1 = phi ptr [ %call.i.i.i.i174, %while.body.i.i.i173 ], [ %call.i.i.i167, %if.end.i.i166 ] - %second.i.i.i.i.i171 = getelementptr inbounds i8, ptr %childIter97.sroa.3.1, i64 48 - %148 = load ptr, ptr %second.i.i.i.i.i171, align 8 - %cmp.i.i.i.not.i.i.i172 = icmp eq ptr %148, null - br i1 %cmp.i.i.i.not.i.i.i172, label %while.body.i.i.i173, label %_ZN7openvdb5v11_04tree8RootNodeINS1_12InternalNodeINS3_INS1_8LeafNodeIbLj3EEELj4EEELj5EEEE9ChildIterIKS8_St23_Rb_tree_const_iteratorISt4pairIKNS0_4math5CoordENS8_10NodeStructEEENS8_11ChildOnPredEKS7_EppEv.exit176 - -while.body.i.i.i173: ; preds = %land.rhs.i.i.i169 - %call.i.i.i.i174 = call noundef ptr @_ZSt18_Rb_tree_incrementPKSt18_Rb_tree_node_base(ptr noundef nonnull %childIter97.sroa.3.1) #25 - %cmp.i.i.not.i.i.i175 = icmp eq ptr %call.i.i.i.i174, %add.ptr.i.i.i.i.i.i90 - br i1 %cmp.i.i.not.i.i.i175, label %for.inc139, label %land.rhs.i.i.i169, !llvm.loop !38 - -_ZN7openvdb5v11_04tree8RootNodeINS1_12InternalNodeINS3_INS1_8LeafNodeIbLj3EEELj4EEELj5EEEE9ChildIterIKS8_St23_Rb_tree_const_iteratorISt4pairIKNS0_4math5CoordENS8_10NodeStructEEENS8_11ChildOnPredEKS7_EppEv.exit176: ; preds = %land.rhs.i.i.i169 - %cmp.i.i.i148.not = icmp eq ptr %childIter97.sroa.3.1, %add.ptr.i.i.i.i.i.i90 - br i1 %cmp.i.i.i148.not, label %for.inc139, label %for.body104 - -for.inc139: ; preds = %while.body.i.i.i142, %if.end.i.i166, %for.inc135, %_ZN7openvdb5v11_04tree8RootNodeINS1_12InternalNodeINS3_INS1_8LeafNodeIbLj3EEELj4EEELj5EEEE9ChildIterIKS8_St23_Rb_tree_const_iteratorISt4pairIKNS0_4math5CoordENS8_10NodeStructEEENS8_11ChildOnPredEKS7_EppEv.exit176, %while.body.i.i.i173, %for.end96, %invoke.cont98 - %incdec.ptr.i = getelementptr inbounds i8, ptr %__begin1.sroa.0.0698, i64 40 +for.inc135: ; preds = %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE21_M_insert_unique_nodeEmmPNS8_10_Hash_nodeIS6_Lb0EEEm.exit521, %if.then.i15.i443, %if.else128 + %cmp.i.i.not.i.i163 = icmp eq ptr %childIter97.sroa.3.0694, %add.ptr.i.i.i.i.i.i88 + br i1 %cmp.i.i.not.i.i163, label %for.inc139, label %if.end.i.i164 + +if.end.i.i164: ; preds = %for.inc135 + %call.i.i.i165 = call noundef ptr @_ZSt18_Rb_tree_incrementPKSt18_Rb_tree_node_base(ptr noundef %childIter97.sroa.3.0694) #25 + %cmp.i.i.not2.i.i.i166 = icmp eq ptr %call.i.i.i165, %add.ptr.i.i.i.i.i.i88 + br i1 %cmp.i.i.not2.i.i.i166, label %for.inc139, label %land.rhs.i.i.i167 + +land.rhs.i.i.i167: ; preds = %if.end.i.i164, %while.body.i.i.i171 + %childIter97.sroa.3.1 = phi ptr [ %call.i.i.i.i172, %while.body.i.i.i171 ], [ %call.i.i.i165, %if.end.i.i164 ] + %second.i.i.i.i.i169 = getelementptr inbounds i8, ptr %childIter97.sroa.3.1, i64 48 + %148 = load ptr, ptr %second.i.i.i.i.i169, align 8 + %cmp.i.i.i.not.i.i.i170 = icmp eq ptr %148, null + br i1 %cmp.i.i.i.not.i.i.i170, label %while.body.i.i.i171, label %_ZN7openvdb5v11_04tree8RootNodeINS1_12InternalNodeINS3_INS1_8LeafNodeIbLj3EEELj4EEELj5EEEE9ChildIterIKS8_St23_Rb_tree_const_iteratorISt4pairIKNS0_4math5CoordENS8_10NodeStructEEENS8_11ChildOnPredEKS7_EppEv.exit174 + +while.body.i.i.i171: ; preds = %land.rhs.i.i.i167 + %call.i.i.i.i172 = call noundef ptr @_ZSt18_Rb_tree_incrementPKSt18_Rb_tree_node_base(ptr noundef nonnull %childIter97.sroa.3.1) #25 + %cmp.i.i.not.i.i.i173 = icmp eq ptr %call.i.i.i.i172, %add.ptr.i.i.i.i.i.i88 + br i1 %cmp.i.i.not.i.i.i173, label %for.inc139, label %land.rhs.i.i.i167, !llvm.loop !38 + +_ZN7openvdb5v11_04tree8RootNodeINS1_12InternalNodeINS3_INS1_8LeafNodeIbLj3EEELj4EEELj5EEEE9ChildIterIKS8_St23_Rb_tree_const_iteratorISt4pairIKNS0_4math5CoordENS8_10NodeStructEEENS8_11ChildOnPredEKS7_EppEv.exit174: ; preds = %land.rhs.i.i.i167 + %cmp.i.i.i146.not = icmp eq ptr %childIter97.sroa.3.1, %add.ptr.i.i.i.i.i.i88 + br i1 %cmp.i.i.i146.not, label %for.inc139, label %for.body104 + +for.inc139: ; preds = %while.body.i.i.i140, %if.end.i.i164, %for.inc135, %_ZN7openvdb5v11_04tree8RootNodeINS1_12InternalNodeINS3_INS1_8LeafNodeIbLj3EEELj4EEELj5EEEE9ChildIterIKS8_St23_Rb_tree_const_iteratorISt4pairIKNS0_4math5CoordENS8_10NodeStructEEENS8_11ChildOnPredEKS7_EppEv.exit174, %while.body.i.i.i171, %for.end96, %invoke.cont98 + %incdec.ptr.i = getelementptr inbounds i8, ptr %__begin1.sroa.0.0696, i64 40 %cmp.i.not = icmp eq ptr %incdec.ptr.i, %13 br i1 %cmp.i.not, label %for.end141, label %if.end59 for.end141: ; preds = %for.inc139, %if.end46 %149 = load ptr, ptr %_M_before_begin.i.i, align 8 - %cmp.i177.not699 = icmp eq ptr %149, null - br i1 %cmp.i177.not699, label %for.end256, label %for.body151.lr.ph + %cmp.i175.not697 = icmp eq ptr %149, null + br i1 %cmp.i175.not697, label %for.end256, label %for.body151.lr.ph for.body151.lr.ph: ; preds = %for.end141 - %mBackground.i181 = getelementptr inbounds i8, ptr %root, i64 48 + %mBackground.i179 = getelementptr inbounds i8, ptr %root, i64 48 br label %for.body151 for.body151: ; preds = %for.body151.lr.ph, %for.inc162 - %__begin3.sroa.0.0700 = phi ptr [ %149, %for.body151.lr.ph ], [ %150, %for.inc162 ] - %add.ptr.i178 = getelementptr inbounds i8, ptr %__begin3.sroa.0.0700, i64 8 - %call.i180 = invoke noundef i32 @_ZNK7openvdb5v11_04tree8RootNodeINS1_12InternalNodeINS3_INS1_8LeafNodeIbLj3EEELj4EEELj5EEEE13getValueDepthERKNS0_4math5CoordE(ptr noundef nonnull align 8 dereferenceable(68) %root, ptr noundef nonnull align 4 dereferenceable(12) %add.ptr.i178) + %__begin3.sroa.0.0698 = phi ptr [ %149, %for.body151.lr.ph ], [ %150, %for.inc162 ] + %add.ptr.i176 = getelementptr inbounds i8, ptr %__begin3.sroa.0.0698, i64 8 + %call.i178 = invoke noundef i32 @_ZNK7openvdb5v11_04tree8RootNodeINS1_12InternalNodeINS3_INS1_8LeafNodeIbLj3EEELj4EEELj5EEEE13getValueDepthERKNS0_4math5CoordE(ptr noundef nonnull align 8 dereferenceable(68) %root, ptr noundef nonnull align 4 dereferenceable(12) %add.ptr.i176) to label %invoke.cont154 unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit invoke.cont154: ; preds = %for.body151 - %cmp.i179 = icmp sgt i32 %call.i180, -1 - br i1 %cmp.i179, label %for.inc162, label %if.then156 + %cmp.i177 = icmp sgt i32 %call.i178, -1 + br i1 %cmp.i177, label %for.inc162, label %if.then156 if.then156: ; preds = %invoke.cont154 - invoke void @_ZN7openvdb5v11_04tree8RootNodeINS1_12InternalNodeINS3_INS1_8LeafNodeIbLj3EEELj4EEELj5EEEE7addTileERKNS0_4math5CoordERKbb(ptr noundef nonnull align 8 dereferenceable(68) %root, ptr noundef nonnull align 4 dereferenceable(12) %add.ptr.i178, ptr noundef nonnull align 1 dereferenceable(1) %mBackground.i181, i1 noundef zeroext false) + invoke void @_ZN7openvdb5v11_04tree8RootNodeINS1_12InternalNodeINS3_INS1_8LeafNodeIbLj3EEELj4EEELj5EEEE7addTileERKNS0_4math5CoordERKbb(ptr noundef nonnull align 8 dereferenceable(68) %root, ptr noundef nonnull align 4 dereferenceable(12) %add.ptr.i176, ptr noundef nonnull align 1 dereferenceable(1) %mBackground.i179, i1 noundef zeroext false) to label %for.inc162 unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit for.inc162: ; preds = %invoke.cont154, %if.then156 - %150 = load ptr, ptr %__begin3.sroa.0.0700, align 8 - %cmp.i177.not = icmp eq ptr %150, null - br i1 %cmp.i177.not, label %for.end164, label %for.body151 + %150 = load ptr, ptr %__begin3.sroa.0.0698, align 8 + %cmp.i175.not = icmp eq ptr %150, null + br i1 %cmp.i175.not, label %for.end164, label %for.body151 for.end164: ; preds = %for.inc162 - %.pre750 = load ptr, ptr %_M_before_begin.i.i, align 8 - %cmp.i183.not705 = icmp eq ptr %.pre750, null - br i1 %cmp.i183.not705, label %for.end256, label %for.body176.lr.ph + %.pre752 = load ptr, ptr %_M_before_begin.i.i, align 8 + %cmp.i181.not703 = icmp eq ptr %.pre752, null + br i1 %cmp.i181.not703, label %for.end256, label %for.body176.lr.ph for.body176.lr.ph: ; preds = %for.end164 %mActive.i = getelementptr inbounds i8, ptr %applyOp, i64 1 br label %for.body176 for.body176: ; preds = %for.body176.lr.ph, %for.inc254 - %__begin3166.sroa.0.0706 = phi ptr [ %.pre750, %for.body176.lr.ph ], [ %199, %for.inc254 ] - %add.ptr.i184 = getelementptr inbounds i8, ptr %__begin3166.sroa.0.0706, i64 8 - %second181 = getelementptr inbounds i8, ptr %__begin3166.sroa.0.0706, i64 20 + %__begin3166.sroa.0.0704 = phi ptr [ %.pre752, %for.body176.lr.ph ], [ %200, %for.inc254 ] + %add.ptr.i182 = getelementptr inbounds i8, ptr %__begin3166.sroa.0.0704, i64 8 + %second181 = getelementptr inbounds i8, ptr %__begin3166.sroa.0.0704, i64 20 %151 = load i8, ptr %second181, align 4 %152 = and i8 %151, 4 %tobool183.not = icmp eq i8 %152, 0 br i1 %tobool183.not, label %if.end185, label %for.inc254 if.end185: ; preds = %for.body176 - %call187 = invoke noundef zeroext i1 @_ZNK7openvdb5v11_04tree8RootNodeINS1_12InternalNodeINS3_INS1_8LeafNodeIbLj3EEELj4EEELj5EEEE10probeValueERKNS0_4math5CoordERb(ptr noundef nonnull align 8 dereferenceable(68) %root, ptr noundef nonnull align 4 dereferenceable(12) %add.ptr.i184, ptr noundef nonnull align 1 dereferenceable(1) %value) + %call187 = invoke noundef zeroext i1 @_ZNK7openvdb5v11_04tree8RootNodeINS1_12InternalNodeINS3_INS1_8LeafNodeIbLj3EEELj4EEELj5EEEE10probeValueERKNS0_4math5CoordERb(ptr noundef nonnull align 8 dereferenceable(68) %root, ptr noundef nonnull align 4 dereferenceable(12) %add.ptr.i182, ptr noundef nonnull align 1 dereferenceable(1) %value) to label %invoke.cont186 unwind label %lpad.loopexit.split-lp.loopexit invoke.cont186: ; preds = %if.end185 %153 = load ptr, ptr %this, align 8 %154 = load ptr, ptr %_M_finish.i.i.i, align 8 - %cmp.i186.not701 = icmp eq ptr %153, %154 - br i1 %cmp.i186.not701, label %for.inc254, label %if.end205.lr.ph + %cmp.i184.not699 = icmp eq ptr %153, %154 + br i1 %cmp.i184.not699, label %for.inc254, label %if.end205.lr.ph if.end205.lr.ph: ; preds = %invoke.cont186 - %arrayidx.i.i.i.i.i.i = getelementptr inbounds i8, ptr %__begin3166.sroa.0.0706, i64 12 - %arrayidx.i.i3.i.i.i.i = getelementptr inbounds i8, ptr %__begin3166.sroa.0.0706, i64 16 + %arrayidx.i.i.i.i.i.i = getelementptr inbounds i8, ptr %__begin3166.sroa.0.0704, i64 12 + %arrayidx.i.i3.i.i.i.i = getelementptr inbounds i8, ptr %__begin3166.sroa.0.0704, i64 16 br label %if.end205 if.end205: ; preds = %if.end205.lr.ph, %for.inc251 - %__begin1189.sroa.0.0702 = phi ptr [ %153, %if.end205.lr.ph ], [ %incdec.ptr.i249, %for.inc251 ] - %mTree.i187 = getelementptr inbounds i8, ptr %__begin1189.sroa.0.0702, i64 16 - %155 = load ptr, ptr %mTree.i187, align 8 + %__begin1189.sroa.0.0700 = phi ptr [ %153, %if.end205.lr.ph ], [ %incdec.ptr.i247, %for.inc251 ] + %mTree.i185 = getelementptr inbounds i8, ptr %__begin1189.sroa.0.0700, i64 16 + %155 = load ptr, ptr %mTree.i185, align 8 %mOrigin.i.i.i = getelementptr inbounds i8, ptr %155, i64 60 - %156 = load i32, ptr %add.ptr.i184, align 4 + %156 = load i32, ptr %add.ptr.i182, align 4 %157 = load i32, ptr %mOrigin.i.i.i, align 4 %sub.i.i.i.i = sub nsw i32 %156, %157 %158 = load i32, ptr %arrayidx.i.i.i.i.i.i, align 4 @@ -20159,13 +20159,13 @@ if.end205: ; preds = %if.end205.lr.ph, %f %and7.i.i.i.i = and i32 %sub10.i.i.i.i, -4096 %_M_parent.i.i.i.i.i = getelementptr inbounds i8, ptr %155, i64 24 %162 = load ptr, ptr %_M_parent.i.i.i.i.i, align 8 - %add.ptr.i.i.i.i.i189 = getelementptr inbounds i8, ptr %155, i64 16 + %add.ptr.i.i.i.i.i187 = getelementptr inbounds i8, ptr %155, i64 16 %cmp.not9.i.i.i.i.i = icmp eq ptr %162, null br i1 %cmp.not9.i.i.i.i.i, label %if.then.i, label %while.body.i.i.i.i.i while.body.i.i.i.i.i: ; preds = %if.end205, %if.end.i.i.i.i.i %__x.addr.011.i.i.i.i.i = phi ptr [ %__x.addr.1.i.i.i.i.i, %if.end.i.i.i.i.i ], [ %162, %if.end205 ] - %__y.addr.010.i.i.i.i.i = phi ptr [ %__y.addr.1.i.i.i.i.i, %if.end.i.i.i.i.i ], [ %add.ptr.i.i.i.i.i189, %if.end205 ] + %__y.addr.010.i.i.i.i.i = phi ptr [ %__y.addr.1.i.i.i.i.i, %if.end.i.i.i.i.i ], [ %add.ptr.i.i.i.i.i187, %if.end205 ] %_M_storage.i.i.i.i.i.i.i = getelementptr inbounds i8, ptr %__x.addr.011.i.i.i.i.i, i64 32 %163 = load i32, ptr %_M_storage.i.i.i.i.i.i.i, align 4 %cmp.i.i.i.i.i.i.i = icmp slt i32 %163, %and.i.i.i.i @@ -20203,14 +20203,14 @@ if.end.i.i.i.i.i: ; preds = %if.else.i.i.i.i.i, br i1 %cmp.not.i.i.i.i.i, label %_ZNKSt8_Rb_treeIN7openvdb5v11_04math5CoordESt4pairIKS3_NS1_4tree8RootNodeINS6_12InternalNodeINS8_INS6_8LeafNodeIbLj3EEELj4EEELj5EEEE10NodeStructEESt10_Select1stISF_ESt4lessIS3_ESaISF_EE14_M_lower_boundEPKSt13_Rb_tree_nodeISF_EPKSt18_Rb_tree_node_baseRS5_.exit.i.i.i.i, label %while.body.i.i.i.i.i, !llvm.loop !151 _ZNKSt8_Rb_treeIN7openvdb5v11_04math5CoordESt4pairIKS3_NS1_4tree8RootNodeINS6_12InternalNodeINS8_INS6_8LeafNodeIbLj3EEELj4EEELj5EEEE10NodeStructEESt10_Select1stISF_ESt4lessIS3_ESaISF_EE14_M_lower_boundEPKSt13_Rb_tree_nodeISF_EPKSt18_Rb_tree_node_baseRS5_.exit.i.i.i.i: ; preds = %if.end.i.i.i.i.i - %cmp.i.i.i.i.i = icmp eq ptr %__y.addr.1.i.i.i.i.i, %add.ptr.i.i.i.i.i189 - br i1 %cmp.i.i.i.i.i, label %while.body.i.i.i.i.i207.preheader, label %lor.lhs.false.i.i.i.i + %cmp.i.i.i.i.i = icmp eq ptr %__y.addr.1.i.i.i.i.i, %add.ptr.i.i.i.i.i187 + br i1 %cmp.i.i.i.i.i, label %while.body.i.i.i.i.i205.preheader, label %lor.lhs.false.i.i.i.i lor.lhs.false.i.i.i.i: ; preds = %_ZNKSt8_Rb_treeIN7openvdb5v11_04math5CoordESt4pairIKS3_NS1_4tree8RootNodeINS6_12InternalNodeINS8_INS6_8LeafNodeIbLj3EEELj4EEELj5EEEE10NodeStructEESt10_Select1stISF_ESt4lessIS3_ESaISF_EE14_M_lower_boundEPKSt13_Rb_tree_nodeISF_EPKSt18_Rb_tree_node_baseRS5_.exit.i.i.i.i %_M_storage.i.i.i3.i.i.i.i = getelementptr inbounds i8, ptr %__y.addr.1.i.i.i.i.i, i64 32 %166 = load i32, ptr %_M_storage.i.i.i3.i.i.i.i, align 4 - %cmp.i.i.i.i.i.i190 = icmp slt i32 %and.i.i.i.i, %166 - br i1 %cmp.i.i.i.i.i.i190, label %while.body.i.i.i.i.i207.preheader, label %cond.false.i.i.i.i.i.i + %cmp.i.i.i.i.i.i188 = icmp slt i32 %and.i.i.i.i, %166 + br i1 %cmp.i.i.i.i.i.i188, label %while.body.i.i.i.i.i205.preheader, label %cond.false.i.i.i.i.i.i cond.false.i.i.i.i.i.i: ; preds = %lor.lhs.false.i.i.i.i %cmp5.i.i.i.i.i.i = icmp sgt i32 %and.i.i.i.i, %166 @@ -20220,7 +20220,7 @@ cond.false7.i.i.i.i.i.i: ; preds = %cond.false.i.i.i.i. %arrayidx.i.i.i5.i.i.i.i.i.i = getelementptr inbounds i8, ptr %__y.addr.1.i.i.i.i.i, i64 36 %167 = load i32, ptr %arrayidx.i.i.i5.i.i.i.i.i.i, align 4 %cmp10.i.i.i.i.i.i = icmp slt i32 %and4.i.i.i.i, %167 - br i1 %cmp10.i.i.i.i.i.i, label %while.body.i.i.i.i.i207.preheader, label %cond.false12.i.i.i.i.i.i + br i1 %cmp10.i.i.i.i.i.i, label %while.body.i.i.i.i.i205.preheader, label %cond.false12.i.i.i.i.i.i cond.false12.i.i.i.i.i.i: ; preds = %cond.false7.i.i.i.i.i.i %cmp15.i.i.i.i.i.i = icmp sgt i32 %and4.i.i.i.i, %167 @@ -20230,26 +20230,26 @@ _ZNKSt4lessIN7openvdb5v11_04math5CoordEEclERKS3_S6_.exit.i.i.i.i: ; preds = %con %arrayidx.i.i.i9.i.i.i.i.i.i = getelementptr inbounds i8, ptr %__y.addr.1.i.i.i.i.i, i64 40 %168 = load i32, ptr %arrayidx.i.i.i9.i.i.i.i.i.i, align 4 %cmp20.i.i.i.i.i.i = icmp slt i32 %and7.i.i.i.i, %168 - br i1 %cmp20.i.i.i.i.i.i, label %while.body.i.i.i.i.i207.preheader, label %invoke.cont206 + br i1 %cmp20.i.i.i.i.i.i, label %while.body.i.i.i.i.i205.preheader, label %invoke.cont206 invoke.cont206: ; preds = %cond.false.i.i.i.i.i.i, %cond.false12.i.i.i.i.i.i, %_ZNKSt4lessIN7openvdb5v11_04math5CoordEEclERKS3_S6_.exit.i.i.i.i %second.i.i = getelementptr inbounds i8, ptr %__y.addr.1.i.i.i.i.i, i64 48 %169 = load ptr, ptr %second.i.i, align 8 %tobool208.not = icmp eq ptr %169, null - br i1 %tobool208.not, label %while.body.i.i.i.i.i207.preheader, label %if.then209 + br i1 %tobool208.not, label %while.body.i.i.i.i.i205.preheader, label %if.then209 -while.body.i.i.i.i.i207.preheader: ; preds = %cond.false7.i.i.i.i.i.i, %lor.lhs.false.i.i.i.i, %_ZNKSt8_Rb_treeIN7openvdb5v11_04math5CoordESt4pairIKS3_NS1_4tree8RootNodeINS6_12InternalNodeINS8_INS6_8LeafNodeIbLj3EEELj4EEELj5EEEE10NodeStructEESt10_Select1stISF_ESt4lessIS3_ESaISF_EE14_M_lower_boundEPKSt13_Rb_tree_nodeISF_EPKSt18_Rb_tree_node_baseRS5_.exit.i.i.i.i, %_ZNKSt4lessIN7openvdb5v11_04math5CoordEEclERKS3_S6_.exit.i.i.i.i, %invoke.cont206 - br label %while.body.i.i.i.i.i207 +while.body.i.i.i.i.i205.preheader: ; preds = %cond.false7.i.i.i.i.i.i, %lor.lhs.false.i.i.i.i, %_ZNKSt8_Rb_treeIN7openvdb5v11_04math5CoordESt4pairIKS3_NS1_4tree8RootNodeINS6_12InternalNodeINS8_INS6_8LeafNodeIbLj3EEELj4EEELj5EEEE10NodeStructEESt10_Select1stISF_ESt4lessIS3_ESaISF_EE14_M_lower_boundEPKSt13_Rb_tree_nodeISF_EPKSt18_Rb_tree_node_baseRS5_.exit.i.i.i.i, %_ZNKSt4lessIN7openvdb5v11_04math5CoordEEclERKS3_S6_.exit.i.i.i.i, %invoke.cont206 + br label %while.body.i.i.i.i.i205 if.then209: ; preds = %invoke.cont206 %mBackground.i.i = getelementptr inbounds i8, ptr %155, i64 56 - invoke void @_ZN7openvdb5v11_05tools11TreeToMergeINS0_4tree4TreeINS3_8RootNodeINS3_12InternalNodeINS6_INS3_8LeafNodeIbLj3EEELj4EEELj5EEEEEEEE19stealOrDeepCopyNodeISA_EESt10unique_ptrIT_St14default_deleteISG_EERKNS0_4math5CoordERKb(ptr nonnull sret(%"class.std::unique_ptr.427") align 8 %childPtr, ptr noundef nonnull align 8 dereferenceable(33) %__begin1189.sroa.0.0702, ptr noundef nonnull align 4 dereferenceable(12) %add.ptr.i184, ptr noundef nonnull align 1 dereferenceable(1) %mBackground.i.i) + invoke void @_ZN7openvdb5v11_05tools11TreeToMergeINS0_4tree4TreeINS3_8RootNodeINS3_12InternalNodeINS6_INS3_8LeafNodeIbLj3EEELj4EEELj5EEEEEEEE19stealOrDeepCopyNodeISA_EESt10unique_ptrIT_St14default_deleteISG_EERKNS0_4math5CoordERKb(ptr nonnull sret(%"class.std::unique_ptr.427") align 8 %childPtr, ptr noundef nonnull align 8 dereferenceable(33) %__begin1189.sroa.0.0700, ptr noundef nonnull align 4 dereferenceable(12) %add.ptr.i182, ptr noundef nonnull align 1 dereferenceable(1) %mBackground.i.i) to label %invoke.cont210 unwind label %lpad.loopexit.split-lp.loopexit invoke.cont210: ; preds = %if.then209 %170 = load ptr, ptr %childPtr, align 8 - %cmp.i192.not = icmp eq ptr %170, null - br i1 %cmp.i192.not, label %_ZNSt10unique_ptrIN7openvdb5v11_04tree12InternalNodeINS3_INS2_8LeafNodeIbLj3EEELj4EEELj5EEESt14default_deleteIS7_EED2Ev.exit, label %if.then212 + %cmp.i190.not = icmp eq ptr %170, null + br i1 %cmp.i190.not, label %_ZNSt10unique_ptrIN7openvdb5v11_04tree12InternalNodeINS3_INS2_8LeafNodeIbLj3EEELj4EEELj5EEESt14default_deleteIS7_EED2Ev.exit, label %if.then212 if.then212: ; preds = %invoke.cont210 %frombool.i = zext i1 %call187 to i8 @@ -20286,84 +20286,83 @@ _ZNSt10unique_ptrIN7openvdb5v11_04tree12InternalNodeINS3_INS2_8LeafNodeIbLj3EEEL store ptr null, ptr %childPtr, align 8 br label %for.inc254 -while.body.i.i.i.i.i207: ; preds = %while.body.i.i.i.i.i207.preheader, %if.end.i.i.i.i.i222 - %__x.addr.011.i.i.i.i.i208 = phi ptr [ %__x.addr.1.i.i.i.i.i226, %if.end.i.i.i.i.i222 ], [ %162, %while.body.i.i.i.i.i207.preheader ] - %__y.addr.010.i.i.i.i.i209 = phi ptr [ %__y.addr.1.i.i.i.i.i224, %if.end.i.i.i.i.i222 ], [ %add.ptr.i.i.i.i.i189, %while.body.i.i.i.i.i207.preheader ] - %_M_storage.i.i.i.i.i.i.i210 = getelementptr inbounds i8, ptr %__x.addr.011.i.i.i.i.i208, i64 32 - %174 = load i32, ptr %_M_storage.i.i.i.i.i.i.i210, align 4 - %cmp.i.i.i.i.i.i.i211 = icmp slt i32 %174, %and.i.i.i.i - br i1 %cmp.i.i.i.i.i.i.i211, label %if.else.i.i.i.i.i248, label %cond.false.i.i.i.i.i.i.i212 - -cond.false.i.i.i.i.i.i.i212: ; preds = %while.body.i.i.i.i.i207 - %cmp5.i.i.i.i.i.i.i213 = icmp sgt i32 %174, %and.i.i.i.i - br i1 %cmp5.i.i.i.i.i.i.i213, label %if.end.i.i.i.i.i222, label %cond.false7.i.i.i.i.i.i.i214 - -cond.false7.i.i.i.i.i.i.i214: ; preds = %cond.false.i.i.i.i.i.i.i212 - %arrayidx.i.i.i.i.i.i.i.i.i.i215 = getelementptr inbounds i8, ptr %__x.addr.011.i.i.i.i.i208, i64 36 - %175 = load i32, ptr %arrayidx.i.i.i.i.i.i.i.i.i.i215, align 4 - %cmp10.i.i.i.i.i.i.i216 = icmp slt i32 %175, %and4.i.i.i.i - br i1 %cmp10.i.i.i.i.i.i.i216, label %if.else.i.i.i.i.i248, label %cond.false12.i.i.i.i.i.i.i217 - -cond.false12.i.i.i.i.i.i.i217: ; preds = %cond.false7.i.i.i.i.i.i.i214 - %cmp15.i.i.i.i.i.i.i218 = icmp sgt i32 %175, %and4.i.i.i.i - br i1 %cmp15.i.i.i.i.i.i.i218, label %if.end.i.i.i.i.i222, label %_ZNKSt4lessIN7openvdb5v11_04math5CoordEEclERKS3_S6_.exit.i.i.i.i.i219 - -_ZNKSt4lessIN7openvdb5v11_04math5CoordEEclERKS3_S6_.exit.i.i.i.i.i219: ; preds = %cond.false12.i.i.i.i.i.i.i217 - %arrayidx.i.i.i8.i.i.i.i.i.i.i220 = getelementptr inbounds i8, ptr %__x.addr.011.i.i.i.i.i208, i64 40 - %176 = load i32, ptr %arrayidx.i.i.i8.i.i.i.i.i.i.i220, align 4 - %cmp20.i.i.i.i.i.i.i221 = icmp slt i32 %176, %and7.i.i.i.i - br i1 %cmp20.i.i.i.i.i.i.i221, label %if.else.i.i.i.i.i248, label %if.end.i.i.i.i.i222 - -if.else.i.i.i.i.i248: ; preds = %_ZNKSt4lessIN7openvdb5v11_04math5CoordEEclERKS3_S6_.exit.i.i.i.i.i219, %cond.false7.i.i.i.i.i.i.i214, %while.body.i.i.i.i.i207 - br label %if.end.i.i.i.i.i222 - -if.end.i.i.i.i.i222: ; preds = %if.else.i.i.i.i.i248, %_ZNKSt4lessIN7openvdb5v11_04math5CoordEEclERKS3_S6_.exit.i.i.i.i.i219, %cond.false12.i.i.i.i.i.i.i217, %cond.false.i.i.i.i.i.i.i212 - %.sink.i.i.i.i.i223 = phi i64 [ 24, %if.else.i.i.i.i.i248 ], [ 16, %cond.false12.i.i.i.i.i.i.i217 ], [ 16, %cond.false.i.i.i.i.i.i.i212 ], [ 16, %_ZNKSt4lessIN7openvdb5v11_04math5CoordEEclERKS3_S6_.exit.i.i.i.i.i219 ] - %__y.addr.1.i.i.i.i.i224 = phi ptr [ %__y.addr.010.i.i.i.i.i209, %if.else.i.i.i.i.i248 ], [ %__x.addr.011.i.i.i.i.i208, %cond.false12.i.i.i.i.i.i.i217 ], [ %__x.addr.011.i.i.i.i.i208, %cond.false.i.i.i.i.i.i.i212 ], [ %__x.addr.011.i.i.i.i.i208, %_ZNKSt4lessIN7openvdb5v11_04math5CoordEEclERKS3_S6_.exit.i.i.i.i.i219 ] - %_M_right.i.i.i.i.i.i225 = getelementptr inbounds i8, ptr %__x.addr.011.i.i.i.i.i208, i64 %.sink.i.i.i.i.i223 - %__x.addr.1.i.i.i.i.i226 = load ptr, ptr %_M_right.i.i.i.i.i.i225, align 8 - %cmp.not.i.i.i.i.i227 = icmp eq ptr %__x.addr.1.i.i.i.i.i226, null - br i1 %cmp.not.i.i.i.i.i227, label %_ZNKSt8_Rb_treeIN7openvdb5v11_04math5CoordESt4pairIKS3_NS1_4tree8RootNodeINS6_12InternalNodeINS8_INS6_8LeafNodeIbLj3EEELj4EEELj5EEEE10NodeStructEESt10_Select1stISF_ESt4lessIS3_ESaISF_EE14_M_lower_boundEPKSt13_Rb_tree_nodeISF_EPKSt18_Rb_tree_node_baseRS5_.exit.i.i.i.i228, label %while.body.i.i.i.i.i207, !llvm.loop !151 - -_ZNKSt8_Rb_treeIN7openvdb5v11_04math5CoordESt4pairIKS3_NS1_4tree8RootNodeINS6_12InternalNodeINS8_INS6_8LeafNodeIbLj3EEELj4EEELj5EEEE10NodeStructEESt10_Select1stISF_ESt4lessIS3_ESaISF_EE14_M_lower_boundEPKSt13_Rb_tree_nodeISF_EPKSt18_Rb_tree_node_baseRS5_.exit.i.i.i.i228: ; preds = %if.end.i.i.i.i.i222 - %cmp.i.i.i.i.i229 = icmp eq ptr %__y.addr.1.i.i.i.i.i224, %add.ptr.i.i.i.i.i189 - br i1 %cmp.i.i.i.i.i229, label %if.then.i, label %lor.lhs.false.i.i.i.i230 - -lor.lhs.false.i.i.i.i230: ; preds = %_ZNKSt8_Rb_treeIN7openvdb5v11_04math5CoordESt4pairIKS3_NS1_4tree8RootNodeINS6_12InternalNodeINS8_INS6_8LeafNodeIbLj3EEELj4EEELj5EEEE10NodeStructEESt10_Select1stISF_ESt4lessIS3_ESaISF_EE14_M_lower_boundEPKSt13_Rb_tree_nodeISF_EPKSt18_Rb_tree_node_baseRS5_.exit.i.i.i.i228 - %_M_storage.i.i.i3.i.i.i.i231 = getelementptr inbounds i8, ptr %__y.addr.1.i.i.i.i.i224, i64 32 - %177 = load i32, ptr %_M_storage.i.i.i3.i.i.i.i231, align 4 - %cmp.i.i.i.i.i.i232 = icmp slt i32 %and.i.i.i.i, %177 - br i1 %cmp.i.i.i.i.i.i232, label %if.then.i, label %cond.false.i.i.i.i.i.i233 - -cond.false.i.i.i.i.i.i233: ; preds = %lor.lhs.false.i.i.i.i230 - %cmp5.i.i.i.i.i.i234 = icmp sgt i32 %and.i.i.i.i, %177 - br i1 %cmp5.i.i.i.i.i.i234, label %if.else.i, label %cond.false7.i.i.i.i.i.i235 - -cond.false7.i.i.i.i.i.i235: ; preds = %cond.false.i.i.i.i.i.i233 - %arrayidx.i.i.i5.i.i.i.i.i.i236 = getelementptr inbounds i8, ptr %__y.addr.1.i.i.i.i.i224, i64 36 - %178 = load i32, ptr %arrayidx.i.i.i5.i.i.i.i.i.i236, align 4 - %cmp10.i.i.i.i.i.i237 = icmp slt i32 %and4.i.i.i.i, %178 - br i1 %cmp10.i.i.i.i.i.i237, label %if.then.i, label %cond.false12.i.i.i.i.i.i238 - -cond.false12.i.i.i.i.i.i238: ; preds = %cond.false7.i.i.i.i.i.i235 - %cmp15.i.i.i.i.i.i239 = icmp sgt i32 %and4.i.i.i.i, %178 - br i1 %cmp15.i.i.i.i.i.i239, label %if.else.i, label %_ZNKSt4lessIN7openvdb5v11_04math5CoordEEclERKS3_S6_.exit.i.i.i.i240 - -_ZNKSt4lessIN7openvdb5v11_04math5CoordEEclERKS3_S6_.exit.i.i.i.i240: ; preds = %cond.false12.i.i.i.i.i.i238 - %arrayidx.i.i.i9.i.i.i.i.i.i241 = getelementptr inbounds i8, ptr %__y.addr.1.i.i.i.i.i224, i64 40 - %179 = load i32, ptr %arrayidx.i.i.i9.i.i.i.i.i.i241, align 4 - %cmp20.i.i.i.i.i.i242 = icmp slt i32 %and7.i.i.i.i, %179 - br i1 %cmp20.i.i.i.i.i.i242, label %if.then.i, label %if.else.i - -if.then.i: ; preds = %if.end205, %_ZNKSt4lessIN7openvdb5v11_04math5CoordEEclERKS3_S6_.exit.i.i.i.i240, %cond.false7.i.i.i.i.i.i235, %lor.lhs.false.i.i.i.i230, %_ZNKSt8_Rb_treeIN7openvdb5v11_04math5CoordESt4pairIKS3_NS1_4tree8RootNodeINS6_12InternalNodeINS8_INS6_8LeafNodeIbLj3EEELj4EEELj5EEEE10NodeStructEESt10_Select1stISF_ESt4lessIS3_ESaISF_EE14_M_lower_boundEPKSt13_Rb_tree_nodeISF_EPKSt18_Rb_tree_node_baseRS5_.exit.i.i.i.i228 - %mBackground.i246 = getelementptr inbounds i8, ptr %155, i64 56 - %180 = load i8, ptr %mBackground.i246, align 8 - %frombool.i247 = and i8 %180, 1 +while.body.i.i.i.i.i205: ; preds = %while.body.i.i.i.i.i205.preheader, %if.end.i.i.i.i.i220 + %__x.addr.011.i.i.i.i.i206 = phi ptr [ %__x.addr.1.i.i.i.i.i224, %if.end.i.i.i.i.i220 ], [ %162, %while.body.i.i.i.i.i205.preheader ] + %__y.addr.010.i.i.i.i.i207 = phi ptr [ %__y.addr.1.i.i.i.i.i222, %if.end.i.i.i.i.i220 ], [ %add.ptr.i.i.i.i.i187, %while.body.i.i.i.i.i205.preheader ] + %_M_storage.i.i.i.i.i.i.i208 = getelementptr inbounds i8, ptr %__x.addr.011.i.i.i.i.i206, i64 32 + %174 = load i32, ptr %_M_storage.i.i.i.i.i.i.i208, align 4 + %cmp.i.i.i.i.i.i.i209 = icmp slt i32 %174, %and.i.i.i.i + br i1 %cmp.i.i.i.i.i.i.i209, label %if.else.i.i.i.i.i246, label %cond.false.i.i.i.i.i.i.i210 + +cond.false.i.i.i.i.i.i.i210: ; preds = %while.body.i.i.i.i.i205 + %cmp5.i.i.i.i.i.i.i211 = icmp sgt i32 %174, %and.i.i.i.i + br i1 %cmp5.i.i.i.i.i.i.i211, label %if.end.i.i.i.i.i220, label %cond.false7.i.i.i.i.i.i.i212 + +cond.false7.i.i.i.i.i.i.i212: ; preds = %cond.false.i.i.i.i.i.i.i210 + %arrayidx.i.i.i.i.i.i.i.i.i.i213 = getelementptr inbounds i8, ptr %__x.addr.011.i.i.i.i.i206, i64 36 + %175 = load i32, ptr %arrayidx.i.i.i.i.i.i.i.i.i.i213, align 4 + %cmp10.i.i.i.i.i.i.i214 = icmp slt i32 %175, %and4.i.i.i.i + br i1 %cmp10.i.i.i.i.i.i.i214, label %if.else.i.i.i.i.i246, label %cond.false12.i.i.i.i.i.i.i215 + +cond.false12.i.i.i.i.i.i.i215: ; preds = %cond.false7.i.i.i.i.i.i.i212 + %cmp15.i.i.i.i.i.i.i216 = icmp sgt i32 %175, %and4.i.i.i.i + br i1 %cmp15.i.i.i.i.i.i.i216, label %if.end.i.i.i.i.i220, label %_ZNKSt4lessIN7openvdb5v11_04math5CoordEEclERKS3_S6_.exit.i.i.i.i.i217 + +_ZNKSt4lessIN7openvdb5v11_04math5CoordEEclERKS3_S6_.exit.i.i.i.i.i217: ; preds = %cond.false12.i.i.i.i.i.i.i215 + %arrayidx.i.i.i8.i.i.i.i.i.i.i218 = getelementptr inbounds i8, ptr %__x.addr.011.i.i.i.i.i206, i64 40 + %176 = load i32, ptr %arrayidx.i.i.i8.i.i.i.i.i.i.i218, align 4 + %cmp20.i.i.i.i.i.i.i219 = icmp slt i32 %176, %and7.i.i.i.i + br i1 %cmp20.i.i.i.i.i.i.i219, label %if.else.i.i.i.i.i246, label %if.end.i.i.i.i.i220 + +if.else.i.i.i.i.i246: ; preds = %_ZNKSt4lessIN7openvdb5v11_04math5CoordEEclERKS3_S6_.exit.i.i.i.i.i217, %cond.false7.i.i.i.i.i.i.i212, %while.body.i.i.i.i.i205 + br label %if.end.i.i.i.i.i220 + +if.end.i.i.i.i.i220: ; preds = %if.else.i.i.i.i.i246, %_ZNKSt4lessIN7openvdb5v11_04math5CoordEEclERKS3_S6_.exit.i.i.i.i.i217, %cond.false12.i.i.i.i.i.i.i215, %cond.false.i.i.i.i.i.i.i210 + %.sink.i.i.i.i.i221 = phi i64 [ 24, %if.else.i.i.i.i.i246 ], [ 16, %cond.false12.i.i.i.i.i.i.i215 ], [ 16, %cond.false.i.i.i.i.i.i.i210 ], [ 16, %_ZNKSt4lessIN7openvdb5v11_04math5CoordEEclERKS3_S6_.exit.i.i.i.i.i217 ] + %__y.addr.1.i.i.i.i.i222 = phi ptr [ %__y.addr.010.i.i.i.i.i207, %if.else.i.i.i.i.i246 ], [ %__x.addr.011.i.i.i.i.i206, %cond.false12.i.i.i.i.i.i.i215 ], [ %__x.addr.011.i.i.i.i.i206, %cond.false.i.i.i.i.i.i.i210 ], [ %__x.addr.011.i.i.i.i.i206, %_ZNKSt4lessIN7openvdb5v11_04math5CoordEEclERKS3_S6_.exit.i.i.i.i.i217 ] + %_M_right.i.i.i.i.i.i223 = getelementptr inbounds i8, ptr %__x.addr.011.i.i.i.i.i206, i64 %.sink.i.i.i.i.i221 + %__x.addr.1.i.i.i.i.i224 = load ptr, ptr %_M_right.i.i.i.i.i.i223, align 8 + %cmp.not.i.i.i.i.i225 = icmp eq ptr %__x.addr.1.i.i.i.i.i224, null + br i1 %cmp.not.i.i.i.i.i225, label %_ZNKSt8_Rb_treeIN7openvdb5v11_04math5CoordESt4pairIKS3_NS1_4tree8RootNodeINS6_12InternalNodeINS8_INS6_8LeafNodeIbLj3EEELj4EEELj5EEEE10NodeStructEESt10_Select1stISF_ESt4lessIS3_ESaISF_EE14_M_lower_boundEPKSt13_Rb_tree_nodeISF_EPKSt18_Rb_tree_node_baseRS5_.exit.i.i.i.i226, label %while.body.i.i.i.i.i205, !llvm.loop !151 + +_ZNKSt8_Rb_treeIN7openvdb5v11_04math5CoordESt4pairIKS3_NS1_4tree8RootNodeINS6_12InternalNodeINS8_INS6_8LeafNodeIbLj3EEELj4EEELj5EEEE10NodeStructEESt10_Select1stISF_ESt4lessIS3_ESaISF_EE14_M_lower_boundEPKSt13_Rb_tree_nodeISF_EPKSt18_Rb_tree_node_baseRS5_.exit.i.i.i.i226: ; preds = %if.end.i.i.i.i.i220 + %cmp.i.i.i.i.i227 = icmp eq ptr %__y.addr.1.i.i.i.i.i222, %add.ptr.i.i.i.i.i187 + br i1 %cmp.i.i.i.i.i227, label %if.then.i, label %lor.lhs.false.i.i.i.i228 + +lor.lhs.false.i.i.i.i228: ; preds = %_ZNKSt8_Rb_treeIN7openvdb5v11_04math5CoordESt4pairIKS3_NS1_4tree8RootNodeINS6_12InternalNodeINS8_INS6_8LeafNodeIbLj3EEELj4EEELj5EEEE10NodeStructEESt10_Select1stISF_ESt4lessIS3_ESaISF_EE14_M_lower_boundEPKSt13_Rb_tree_nodeISF_EPKSt18_Rb_tree_node_baseRS5_.exit.i.i.i.i226 + %_M_storage.i.i.i3.i.i.i.i229 = getelementptr inbounds i8, ptr %__y.addr.1.i.i.i.i.i222, i64 32 + %177 = load i32, ptr %_M_storage.i.i.i3.i.i.i.i229, align 4 + %cmp.i.i.i.i.i.i230 = icmp slt i32 %and.i.i.i.i, %177 + br i1 %cmp.i.i.i.i.i.i230, label %if.then.i, label %cond.false.i.i.i.i.i.i231 + +cond.false.i.i.i.i.i.i231: ; preds = %lor.lhs.false.i.i.i.i228 + %cmp5.i.i.i.i.i.i232 = icmp sgt i32 %and.i.i.i.i, %177 + br i1 %cmp5.i.i.i.i.i.i232, label %if.else.i, label %cond.false7.i.i.i.i.i.i233 + +cond.false7.i.i.i.i.i.i233: ; preds = %cond.false.i.i.i.i.i.i231 + %arrayidx.i.i.i5.i.i.i.i.i.i234 = getelementptr inbounds i8, ptr %__y.addr.1.i.i.i.i.i222, i64 36 + %178 = load i32, ptr %arrayidx.i.i.i5.i.i.i.i.i.i234, align 4 + %cmp10.i.i.i.i.i.i235 = icmp slt i32 %and4.i.i.i.i, %178 + br i1 %cmp10.i.i.i.i.i.i235, label %if.then.i, label %cond.false12.i.i.i.i.i.i236 + +cond.false12.i.i.i.i.i.i236: ; preds = %cond.false7.i.i.i.i.i.i233 + %cmp15.i.i.i.i.i.i237 = icmp sgt i32 %and4.i.i.i.i, %178 + br i1 %cmp15.i.i.i.i.i.i237, label %if.else.i, label %_ZNKSt4lessIN7openvdb5v11_04math5CoordEEclERKS3_S6_.exit.i.i.i.i238 + +_ZNKSt4lessIN7openvdb5v11_04math5CoordEEclERKS3_S6_.exit.i.i.i.i238: ; preds = %cond.false12.i.i.i.i.i.i236 + %arrayidx.i.i.i9.i.i.i.i.i.i239 = getelementptr inbounds i8, ptr %__y.addr.1.i.i.i.i.i222, i64 40 + %179 = load i32, ptr %arrayidx.i.i.i9.i.i.i.i.i.i239, align 4 + %cmp20.i.i.i.i.i.i240 = icmp slt i32 %and7.i.i.i.i, %179 + br i1 %cmp20.i.i.i.i.i.i240, label %if.then.i, label %if.else.i + +if.then.i: ; preds = %if.end205, %_ZNKSt4lessIN7openvdb5v11_04math5CoordEEclERKS3_S6_.exit.i.i.i.i238, %cond.false7.i.i.i.i.i.i233, %lor.lhs.false.i.i.i.i228, %_ZNKSt8_Rb_treeIN7openvdb5v11_04math5CoordESt4pairIKS3_NS1_4tree8RootNodeINS6_12InternalNodeINS8_INS6_8LeafNodeIbLj3EEELj4EEELj5EEEE10NodeStructEESt10_Select1stISF_ESt4lessIS3_ESaISF_EE14_M_lower_boundEPKSt13_Rb_tree_nodeISF_EPKSt18_Rb_tree_node_baseRS5_.exit.i.i.i.i226 + %mBackground.i244 = getelementptr inbounds i8, ptr %155, i64 56 + %180 = load i8, ptr %mBackground.i244, align 8 br label %invoke.cont223 -if.else.i: ; preds = %_ZNKSt4lessIN7openvdb5v11_04math5CoordEEclERKS3_S6_.exit.i.i.i.i240, %cond.false12.i.i.i.i.i.i238, %cond.false.i.i.i.i.i.i233 - %second.i.i243 = getelementptr inbounds i8, ptr %__y.addr.1.i.i.i.i.i224, i64 48 - %181 = load ptr, ptr %second.i.i243, align 8 +if.else.i: ; preds = %_ZNKSt4lessIN7openvdb5v11_04math5CoordEEclERKS3_S6_.exit.i.i.i.i238, %cond.false12.i.i.i.i.i.i236, %cond.false.i.i.i.i.i.i231 + %second.i.i241 = getelementptr inbounds i8, ptr %__y.addr.1.i.i.i.i.i222, i64 48 + %181 = load ptr, ptr %second.i.i241, align 8 %cmp.i.i.not.i = icmp eq ptr %181, null br i1 %cmp.i.i.not.i, label %if.end9.i, label %if.then6.i @@ -20388,16 +20387,15 @@ if.then6.i: ; preds = %if.else.i %cmp.i.not.i.i.i.i = icmp eq i64 %and2.i.i.i.i.i, 0 %idxprom.i.i = zext nneg i32 %add8.i.i.i to i64 %arrayidx.i.i = getelementptr inbounds [32768 x %"class.openvdb::v11_0::tree::NodeUnion.96"], ptr %181, i64 0, i64 %idxprom.i.i - br i1 %cmp.i.not.i.i.i.i, label %if.then.i.i, label %if.end.i.i244 + br i1 %cmp.i.not.i.i.i.i, label %if.then.i.i, label %if.end.i.i242 if.then.i.i: ; preds = %if.then6.i %185 = load i8, ptr %arrayidx.i.i, align 1 - %frombool.i.i = and i8 %185, 1 %mValueMask.i.i.i = getelementptr inbounds i8, ptr %181, i64 266240 %arrayidx.i.i.i.i = getelementptr inbounds [512 x i64], ptr %mValueMask.i.i.i, i64 0, i64 %idxprom.i.i.i.i.i br label %_ZNK7openvdb5v11_04tree12InternalNodeINS2_INS1_8LeafNodeIbLj3EEELj4EEELj5EE10probeValueERKNS0_4math5CoordERb.exit.i -if.end.i.i244: ; preds = %if.then6.i +if.end.i.i242: ; preds = %if.then6.i %186 = load ptr, ptr %arrayidx.i.i, align 8 %187 = shl i32 %156, 5 %shl.i.i6.i.i = and i32 %187, 3840 @@ -20421,14 +20419,13 @@ if.end.i.i244: ; preds = %if.then6.i %arrayidx.i.i.i = getelementptr inbounds [4096 x %"class.openvdb::v11_0::tree::NodeUnion.713"], ptr %186, i64 0, i64 %idxprom.i.i.i br i1 %cmp.i.not.i.i.i.i.i, label %if.then.i.i.i, label %if.end.i.i.i -if.then.i.i.i: ; preds = %if.end.i.i244 +if.then.i.i.i: ; preds = %if.end.i.i242 %190 = load i8, ptr %arrayidx.i.i.i, align 1 - %frombool.i.i.i = and i8 %190, 1 %mValueMask.i.i.i.i = getelementptr inbounds i8, ptr %186, i64 33280 %arrayidx.i.i.i8.i.i = getelementptr inbounds [64 x i64], ptr %mValueMask.i.i.i.i, i64 0, i64 %idxprom.i.i.i.i.i.i br label %_ZNK7openvdb5v11_04tree12InternalNodeINS2_INS1_8LeafNodeIbLj3EEELj4EEELj5EE10probeValueERKNS0_4math5CoordERb.exit.i -if.end.i.i.i: ; preds = %if.end.i.i244 +if.end.i.i.i: ; preds = %if.end.i.i242 %191 = load ptr, ptr %arrayidx.i.i.i, align 8 %shl.i.i6.i.i.i = and i32 %156, 7 %and2.i.i7.i.i.i = shl i32 %158, 3 @@ -20448,7 +20445,7 @@ if.end.i.i.i: ; preds = %if.end.i.i244 br label %_ZNK7openvdb5v11_04tree12InternalNodeINS2_INS1_8LeafNodeIbLj3EEELj4EEELj5EE10probeValueERKNS0_4math5CoordERb.exit.i _ZNK7openvdb5v11_04tree12InternalNodeINS2_INS1_8LeafNodeIbLj3EEELj4EEELj5EE10probeValueERKNS0_4math5CoordERb.exit.i: ; preds = %if.then.i.i.i, %if.end.i.i.i, %if.then.i.i - %mergeValue.0 = phi i8 [ %frombool.i.i, %if.then.i.i ], [ %frombool.i.i.i, %if.then.i.i.i ], [ %frombool.i.i.i.i, %if.end.i.i.i ] + %mergeValue.0 = phi i8 [ %185, %if.then.i.i ], [ %190, %if.then.i.i.i ], [ %frombool.i.i.i.i, %if.end.i.i.i ] %arrayidx.i7.i.sink.i.sink.i.i = phi ptr [ %arrayidx.i.i.i.i, %if.then.i.i ], [ %arrayidx.i.i.i8.i.i, %if.then.i.i.i ], [ %arrayidx.i7.i.i.i.i, %if.end.i.i.i ] %shl.i3.i.sink.i.sink.i.i = phi i64 [ %shl.i.i.i.i.i, %if.then.i.i ], [ %shl.i.i.i.i.i.i, %if.then.i.i.i ], [ %shl.i3.i.i.i.i, %if.end.i.i.i ] %194 = load i64, ptr %arrayidx.i7.i.sink.i.sink.i.i, align 8 @@ -20457,102 +20454,101 @@ _ZNK7openvdb5v11_04tree12InternalNodeINS2_INS1_8LeafNodeIbLj3EEELj4EEELj5EE10pro br label %invoke.cont223 if.end9.i: ; preds = %if.else.i - %tile.i.i = getelementptr inbounds i8, ptr %__y.addr.1.i.i.i.i.i224, i64 56 + %tile.i.i = getelementptr inbounds i8, ptr %__y.addr.1.i.i.i.i.i222, i64 56 %195 = load i8, ptr %tile.i.i, align 1 - %frombool13.i = and i8 %195, 1 - %active.i.i.i = getelementptr inbounds i8, ptr %__y.addr.1.i.i.i.i.i224, i64 57 + %active.i.i.i = getelementptr inbounds i8, ptr %__y.addr.1.i.i.i.i.i222, i64 57 %196 = load i8, ptr %active.i.i.i, align 1 %tobool.i.i.i = trunc i8 %196 to i1 br label %invoke.cont223 invoke.cont223: ; preds = %if.end9.i, %_ZNK7openvdb5v11_04tree12InternalNodeINS2_INS1_8LeafNodeIbLj3EEELj4EEELj5EE10probeValueERKNS0_4math5CoordERb.exit.i, %if.then.i - %mergeValue.1 = phi i8 [ %frombool.i247, %if.then.i ], [ %frombool13.i, %if.end9.i ], [ %mergeValue.0, %_ZNK7openvdb5v11_04tree12InternalNodeINS2_INS1_8LeafNodeIbLj3EEELj4EEELj5EE10probeValueERKNS0_4math5CoordERb.exit.i ] - %retval.0.i245 = phi i1 [ false, %if.then.i ], [ %tobool.i.i.i, %if.end9.i ], [ %retval.0.i.i, %_ZNK7openvdb5v11_04tree12InternalNodeINS2_INS1_8LeafNodeIbLj3EEELj4EEELj5EE10probeValueERKNS0_4math5CoordERb.exit.i ] - %brmerge = or i1 %call187, %retval.0.i245 + %mergeValue.1 = phi i8 [ %180, %if.then.i ], [ %195, %if.end9.i ], [ %mergeValue.0, %_ZNK7openvdb5v11_04tree12InternalNodeINS2_INS1_8LeafNodeIbLj3EEELj4EEELj5EE10probeValueERKNS0_4math5CoordERb.exit.i ] + %retval.0.i243 = phi i1 [ false, %if.then.i ], [ %tobool.i.i.i, %if.end9.i ], [ %retval.0.i.i, %_ZNK7openvdb5v11_04tree12InternalNodeINS2_INS1_8LeafNodeIbLj3EEELj4EEELj5EE10probeValueERKNS0_4math5CoordERb.exit.i ] + %brmerge = or i1 %call187, %retval.0.i243 %197 = load i8, ptr %value, align 1 - %198 = and i8 %197, 1 - %narrow37 = sub nsw i8 0, %mergeValue.1 - %tobool233 = icmp ne i8 %198, %narrow37 - %frombool234 = zext i1 %tobool233 to i8 - store i8 %frombool234, ptr %value, align 1 - invoke void @_ZN7openvdb5v11_04tree8RootNodeINS1_12InternalNodeINS3_INS1_8LeafNodeIbLj3EEELj4EEELj5EEEE7addTileERKNS0_4math5CoordERKbb(ptr noundef nonnull align 8 dereferenceable(68) %root, ptr noundef nonnull align 4 dereferenceable(12) %add.ptr.i184, ptr noundef nonnull align 1 dereferenceable(1) %value, i1 noundef zeroext %brmerge) + %198 = or i8 %197, %mergeValue.1 + %199 = and i8 %198, 1 + store i8 %199, ptr %value, align 1 + invoke void @_ZN7openvdb5v11_04tree8RootNodeINS1_12InternalNodeINS3_INS1_8LeafNodeIbLj3EEELj4EEELj5EEEE7addTileERKNS0_4math5CoordERKbb(ptr noundef nonnull align 8 dereferenceable(68) %root, ptr noundef nonnull align 4 dereferenceable(12) %add.ptr.i182, ptr noundef nonnull align 1 dereferenceable(1) %value, i1 noundef zeroext %brmerge) to label %if.end245 unwind label %lpad.loopexit if.end245: ; preds = %invoke.cont223 store i8 0, ptr %ref.tmp246, align 1 - invoke void @_ZN7openvdb5v11_05tools11TreeToMergeINS0_4tree4TreeINS3_8RootNodeINS3_12InternalNodeINS6_INS3_8LeafNodeIbLj3EEELj4EEELj5EEEEEEEE7addTileISA_EEvRKNS0_4math5CoordERKbb(ptr noundef nonnull align 8 dereferenceable(33) %__begin1189.sroa.0.0702, ptr noundef nonnull align 4 dereferenceable(12) %add.ptr.i184, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp246, i1 noundef zeroext false) + invoke void @_ZN7openvdb5v11_05tools11TreeToMergeINS0_4tree4TreeINS3_8RootNodeINS3_12InternalNodeINS6_INS3_8LeafNodeIbLj3EEELj4EEELj5EEEEEEEE7addTileISA_EEvRKNS0_4math5CoordERKbb(ptr noundef nonnull align 8 dereferenceable(33) %__begin1189.sroa.0.0700, ptr noundef nonnull align 4 dereferenceable(12) %add.ptr.i182, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp246, i1 noundef zeroext false) to label %for.inc251 unwind label %lpad.loopexit for.inc251: ; preds = %if.end245 - %incdec.ptr.i249 = getelementptr inbounds i8, ptr %__begin1189.sroa.0.0702, i64 40 - %cmp.i186.not = icmp eq ptr %incdec.ptr.i249, %154 - br i1 %cmp.i186.not, label %for.inc254, label %if.end205 + %incdec.ptr.i247 = getelementptr inbounds i8, ptr %__begin1189.sroa.0.0700, i64 40 + %cmp.i184.not = icmp eq ptr %incdec.ptr.i247, %154 + br i1 %cmp.i184.not, label %for.inc254, label %if.end205 for.inc254: ; preds = %for.inc251, %invoke.cont186, %_ZNSt10unique_ptrIN7openvdb5v11_04tree12InternalNodeINS3_INS2_8LeafNodeIbLj3EEELj4EEELj5EEESt14default_deleteIS7_EED2Ev.exit, %for.body176 - %199 = load ptr, ptr %__begin3166.sroa.0.0706, align 8 - %cmp.i183.not = icmp eq ptr %199, null - br i1 %cmp.i183.not, label %for.end256, label %for.body176 + %200 = load ptr, ptr %__begin3166.sroa.0.0704, align 8 + %cmp.i181.not = icmp eq ptr %200, null + br i1 %cmp.i181.not, label %for.end256, label %for.body176 for.end256: ; preds = %for.inc254, %for.end141, %for.end164 - %mBackground.i250 = getelementptr inbounds i8, ptr %root, i64 48 - %200 = load i8, ptr %mBackground.i250, align 8 - %frombool260 = and i8 %200, 1 - %201 = load ptr, ptr %this, align 8 - %202 = load ptr, ptr %_M_finish.i.i.i, align 8 - %cmp.i252.not708 = icmp eq ptr %201, %202 - br i1 %cmp.i252.not708, label %invoke.cont292, label %for.inc289 + %mBackground.i248 = getelementptr inbounds i8, ptr %root, i64 48 + %201 = load i8, ptr %mBackground.i248, align 8 + %202 = load ptr, ptr %this, align 8 + %203 = load ptr, ptr %_M_finish.i.i.i, align 8 + %background.0706 = and i8 %201, 1 + %cmp.i250.not707 = icmp eq ptr %202, %203 + br i1 %cmp.i250.not707, label %for.end291, label %for.inc289 for.inc289: ; preds = %for.end256, %for.inc289 - %__begin1263.sroa.0.0710 = phi ptr [ %incdec.ptr.i256, %for.inc289 ], [ %201, %for.end256 ] - %background.0709 = phi i8 [ %frombool288, %for.inc289 ], [ %frombool260, %for.end256 ] - %mTree.i253 = getelementptr inbounds i8, ptr %__begin1263.sroa.0.0710, i64 16 - %203 = load ptr, ptr %mTree.i253, align 8 - %mBackground.i255 = getelementptr inbounds i8, ptr %203, i64 56 - %204 = load i8, ptr %mBackground.i255, align 1 - %205 = and i8 %204, 1 - %narrow = sub nsw i8 0, %205 - %tobool287 = icmp ne i8 %background.0709, %narrow - %frombool288 = zext i1 %tobool287 to i8 - %incdec.ptr.i256 = getelementptr inbounds i8, ptr %__begin1263.sroa.0.0710, i64 40 - %cmp.i252.not = icmp eq ptr %incdec.ptr.i256, %202 - br i1 %cmp.i252.not, label %for.end291, label %for.inc289 - -for.end291: ; preds = %for.inc289 - %cmp.i.i = icmp eq i8 %frombool260, %frombool288 + %background.0709 = phi i8 [ %background.0, %for.inc289 ], [ %background.0706, %for.end256 ] + %__begin1263.sroa.0.0708 = phi ptr [ %incdec.ptr.i254, %for.inc289 ], [ %202, %for.end256 ] + %mTree.i251 = getelementptr inbounds i8, ptr %__begin1263.sroa.0.0708, i64 16 + %204 = load ptr, ptr %mTree.i251, align 8 + %mBackground.i253 = getelementptr inbounds i8, ptr %204, i64 56 + %205 = load i8, ptr %mBackground.i253, align 1 + %206 = or i8 %205, %background.0709 + %incdec.ptr.i254 = getelementptr inbounds i8, ptr %__begin1263.sroa.0.0708, i64 40 + %background.0 = and i8 %206, 1 + %cmp.i250.not = icmp eq ptr %incdec.ptr.i254, %203 + br i1 %cmp.i250.not, label %for.end291, label %for.inc289 + +for.end291: ; preds = %for.inc289, %for.end256 + %background.0.in.lcssa = phi i8 [ %201, %for.end256 ], [ %206, %for.inc289 ] + %background.0.lcssa = phi i8 [ %background.0706, %for.end256 ], [ %background.0, %for.inc289 ] + %207 = xor i8 %background.0.in.lcssa, %201 + %208 = and i8 %207, 1 + %cmp.i.i = icmp eq i8 %208, 0 br i1 %cmp.i.i, label %invoke.cont292, label %if.end.i if.end.i: ; preds = %for.end291 - store i8 %frombool288, ptr %mBackground.i250, align 8 + store i8 %background.0.lcssa, ptr %mBackground.i248, align 8 br label %invoke.cont292 -invoke.cont292: ; preds = %for.end256, %if.end.i, %for.end291 - %206 = load ptr, ptr %_M_before_begin.i.i, align 8 - %tobool.not3.i.i.i.i = icmp eq ptr %206, null +invoke.cont292: ; preds = %if.end.i, %for.end291 + %209 = load ptr, ptr %_M_before_begin.i.i, align 8 + %tobool.not3.i.i.i.i = icmp eq ptr %209, null br i1 %tobool.not3.i.i.i.i, label %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE5clearEv.exit.i.i, label %while.body.i.i.i.i while.body.i.i.i.i: ; preds = %invoke.cont292, %while.body.i.i.i.i - %__n.addr.04.i.i.i.i = phi ptr [ %207, %while.body.i.i.i.i ], [ %206, %invoke.cont292 ] - %207 = load ptr, ptr %__n.addr.04.i.i.i.i, align 8 + %__n.addr.04.i.i.i.i = phi ptr [ %210, %while.body.i.i.i.i ], [ %209, %invoke.cont292 ] + %210 = load ptr, ptr %__n.addr.04.i.i.i.i, align 8 call void @_ZdlPv(ptr noundef nonnull %__n.addr.04.i.i.i.i) #23 - %tobool.not.i.i.i.i = icmp eq ptr %207, null + %tobool.not.i.i.i.i = icmp eq ptr %210, null br i1 %tobool.not.i.i.i.i, label %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE5clearEv.exit.i.i, label %while.body.i.i.i.i, !llvm.loop !136 _ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE5clearEv.exit.i.i: ; preds = %while.body.i.i.i.i, %invoke.cont292 - %208 = load ptr, ptr %children, align 8 - %209 = load i64, ptr %_M_bucket_count.i.i, align 8 - %mul.i.i.i = shl i64 %209, 3 - call void @llvm.memset.p0.i64(ptr align 8 %208, i8 0, i64 %mul.i.i.i, i1 false) + %211 = load ptr, ptr %children, align 8 + %212 = load i64, ptr %_M_bucket_count.i.i, align 8 + %mul.i.i.i = shl i64 %212, 3 + call void @llvm.memset.p0.i64(ptr align 8 %211, i8 0, i64 %mul.i.i.i, i1 false) call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %_M_before_begin.i.i, i8 0, i64 16, i1 false) - %210 = load ptr, ptr %children, align 8 - %cmp.i.i.i.i.i258 = icmp eq ptr %_M_single_bucket.i.i, %210 - br i1 %cmp.i.i.i.i.i258, label %return, label %if.end.i.i.i.i + %213 = load ptr, ptr %children, align 8 + %cmp.i.i.i.i.i256 = icmp eq ptr %_M_single_bucket.i.i, %213 + br i1 %cmp.i.i.i.i.i256, label %return, label %if.end.i.i.i.i if.end.i.i.i.i: ; preds = %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE5clearEv.exit.i.i - call void @_ZdlPv(ptr noundef %210) #23 + call void @_ZdlPv(ptr noundef %213) #23 br label %return -ehcleanup: ; preds = %lpad.loopexit, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit, %lpad.loopexit.split-lp.loopexit, %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE12_Scoped_nodeD2Ev.exit.i.body, %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE12_Scoped_nodeD2Ev.exit.i434.body, %lpad214 - %.pn = phi { ptr, i32 } [ %173, %lpad214 ], [ %eh.lpad-body481, %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE12_Scoped_nodeD2Ev.exit.i.body ], [ %eh.lpad-body522, %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE12_Scoped_nodeD2Ev.exit.i434.body ], [ %lpad.loopexit633, %lpad.loopexit ], [ %lpad.loopexit635, %lpad.loopexit.split-lp.loopexit ], [ %lpad.loopexit638, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit647, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit653, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit659, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit.split-lp660, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp ] +ehcleanup: ; preds = %lpad.loopexit, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit, %lpad.loopexit.split-lp.loopexit, %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE12_Scoped_nodeD2Ev.exit.i.body, %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE12_Scoped_nodeD2Ev.exit.i432.body, %lpad214 + %.pn = phi { ptr, i32 } [ %173, %lpad214 ], [ %eh.lpad-body479, %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE12_Scoped_nodeD2Ev.exit.i.body ], [ %eh.lpad-body520, %_ZNSt10_HashtableIN7openvdb5v11_04math5CoordESt4pairIKS3_hESaIS6_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE12_Scoped_nodeD2Ev.exit.i432.body ], [ %lpad.loopexit631, %lpad.loopexit ], [ %lpad.loopexit633, %lpad.loopexit.split-lp.loopexit ], [ %lpad.loopexit636, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit645, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit651, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit657, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit.split-lp658, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp ] call void @_ZNSt13unordered_mapIN7openvdb5v11_04math5CoordEhSt4hashIS3_ESt8equal_toIS3_ESaISt4pairIKS3_hEEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %children) #15 resume { ptr, i32 } %.pn @@ -164432,20 +164428,17 @@ _ZN7openvdb5v11_04tree12InternalNodeINS2_INS1_8LeafNodeINS0_9ValueMaskELj3EEELj4 for.body: ; preds = %_ZN7openvdb5v11_04tree12InternalNodeINS2_INS1_8LeafNodeINS0_9ValueMaskELj3EEELj4EEELj5EE13beginValueAllEv.exit, %_ZN7openvdb5v11_04tree12IteratorBaseINS0_4util15OffMaskIteratorINS3_8NodeMaskILj5EEEEENS1_12InternalNodeINS8_INS1_8LeafNodeINS0_9ValueMaskELj3EEELj4EEELj5EEEEppEv.exit %4 = phi i32 [ %retval.0.i.i.i.i, %_ZN7openvdb5v11_04tree12IteratorBaseINS0_4util15OffMaskIteratorINS3_8NodeMaskILj5EEEEENS1_12InternalNodeINS8_INS1_8LeafNodeINS0_9ValueMaskELj3EEELj4EEELj5EEEEppEv.exit ], [ %add.i.i.i, %_ZN7openvdb5v11_04tree12InternalNodeINS2_INS1_8LeafNodeINS0_9ValueMaskELj3EEELj4EEELj5EE13beginValueAllEv.exit ] %5 = load i8, ptr %this, align 1 - %6 = and i8 %5, 1 %call.i.i.i = call noundef nonnull align 8 dereferenceable(270352) ptr @_ZNK7openvdb5v11_04tree12IteratorBaseINS0_4util15OffMaskIteratorINS3_8NodeMaskILj5EEEEENS1_12InternalNodeINS8_INS1_8LeafNodeINS0_9ValueMaskELj3EEELj4EEELj5EEEE6parentEv(ptr noundef nonnull align 8 dereferenceable(24) %iter) %idxprom.i.i.i = zext i32 %4 to i64 %arrayidx.i.i.i = getelementptr inbounds [32768 x %"class.openvdb::v11_0::tree::NodeUnion"], ptr %call.i.i.i, i64 0, i64 %idxprom.i.i.i - %7 = load i8, ptr %arrayidx.i.i.i, align 8 + %6 = load i8, ptr %arrayidx.i.i.i, align 8 + %7 = or i8 %6, %5 %8 = and i8 %7, 1 - %narrow = sub nsw i8 0, %8 - %tobool5 = icmp ne i8 %6, %narrow - %frombool = zext i1 %tobool5 to i8 %9 = load i32, ptr %mMaskIter.i.i.i.i, align 8 %call.i.i = call noundef nonnull align 8 dereferenceable(270352) ptr @_ZNK7openvdb5v11_04tree12IteratorBaseINS0_4util15OffMaskIteratorINS3_8NodeMaskILj5EEEEENS1_12InternalNodeINS8_INS1_8LeafNodeINS0_9ValueMaskELj3EEELj4EEELj5EEEE6parentEv(ptr noundef nonnull align 8 dereferenceable(24) %iter) %idxprom.i.i = zext i32 %9 to i64 %arrayidx.i.i = getelementptr inbounds [32768 x %"class.openvdb::v11_0::tree::NodeUnion"], ptr %call.i.i, i64 0, i64 %idxprom.i.i - store i8 %frombool, ptr %arrayidx.i.i, align 8 + store i8 %8, ptr %arrayidx.i.i, align 8 %10 = load ptr, ptr %ref.tmp.sroa.21.0.mMaskIter.i.i.i.sroa_idx.i, align 8 %11 = load i32, ptr %mMaskIter.i.i.i.i, align 8 %add.i.i.i4 = add i32 %11, 1 @@ -165747,20 +165740,17 @@ _ZN7openvdb5v11_04tree12InternalNodeINS1_8LeafNodeINS0_9ValueMaskELj3EEELj4EE13b for.body: ; preds = %_ZN7openvdb5v11_04tree12InternalNodeINS1_8LeafNodeINS0_9ValueMaskELj3EEELj4EE13beginValueAllEv.exit, %_ZN7openvdb5v11_04tree12IteratorBaseINS0_4util15OffMaskIteratorINS3_8NodeMaskILj4EEEEENS1_12InternalNodeINS1_8LeafNodeINS0_9ValueMaskELj3EEELj4EEEEppEv.exit %4 = phi i32 [ %retval.0.i.i.i.i, %_ZN7openvdb5v11_04tree12IteratorBaseINS0_4util15OffMaskIteratorINS3_8NodeMaskILj4EEEEENS1_12InternalNodeINS1_8LeafNodeINS0_9ValueMaskELj3EEELj4EEEEppEv.exit ], [ %add.i.i.i, %_ZN7openvdb5v11_04tree12InternalNodeINS1_8LeafNodeINS0_9ValueMaskELj3EEELj4EE13beginValueAllEv.exit ] %5 = load i8, ptr %this, align 1 - %6 = and i8 %5, 1 %call.i.i.i = call noundef nonnull align 8 dereferenceable(33808) ptr @_ZNK7openvdb5v11_04tree12IteratorBaseINS0_4util15OffMaskIteratorINS3_8NodeMaskILj4EEEEENS1_12InternalNodeINS1_8LeafNodeINS0_9ValueMaskELj3EEELj4EEEE6parentEv(ptr noundef nonnull align 8 dereferenceable(24) %iter) %idxprom.i.i.i = zext i32 %4 to i64 %arrayidx.i.i.i = getelementptr inbounds [4096 x %"class.openvdb::v11_0::tree::NodeUnion.703"], ptr %call.i.i.i, i64 0, i64 %idxprom.i.i.i - %7 = load i8, ptr %arrayidx.i.i.i, align 8 + %6 = load i8, ptr %arrayidx.i.i.i, align 8 + %7 = or i8 %6, %5 %8 = and i8 %7, 1 - %narrow = sub nsw i8 0, %8 - %tobool5 = icmp ne i8 %6, %narrow - %frombool = zext i1 %tobool5 to i8 %9 = load i32, ptr %mMaskIter.i.i.i.i, align 8 %call.i.i = call noundef nonnull align 8 dereferenceable(33808) ptr @_ZNK7openvdb5v11_04tree12IteratorBaseINS0_4util15OffMaskIteratorINS3_8NodeMaskILj4EEEEENS1_12InternalNodeINS1_8LeafNodeINS0_9ValueMaskELj3EEELj4EEEE6parentEv(ptr noundef nonnull align 8 dereferenceable(24) %iter) %idxprom.i.i = zext i32 %9 to i64 %arrayidx.i.i = getelementptr inbounds [4096 x %"class.openvdb::v11_0::tree::NodeUnion.703"], ptr %call.i.i, i64 0, i64 %idxprom.i.i - store i8 %frombool, ptr %arrayidx.i.i, align 8 + store i8 %8, ptr %arrayidx.i.i, align 8 %10 = load ptr, ptr %ref.tmp.sroa.21.0.mMaskIter.i.i.i.sroa_idx.i, align 8 %11 = load i32, ptr %mMaskIter.i.i.i.i, align 8 %add.i.i.i4 = add i32 %11, 1 @@ -169555,20 +169545,17 @@ _ZN7openvdb5v11_04tree12InternalNodeINS2_INS1_8LeafNodeIbLj3EEELj4EEELj5EE13begi for.body: ; preds = %_ZN7openvdb5v11_04tree12InternalNodeINS2_INS1_8LeafNodeIbLj3EEELj4EEELj5EE13beginValueAllEv.exit, %_ZN7openvdb5v11_04tree12IteratorBaseINS0_4util15OffMaskIteratorINS3_8NodeMaskILj5EEEEENS1_12InternalNodeINS8_INS1_8LeafNodeIbLj3EEELj4EEELj5EEEEppEv.exit %4 = phi i32 [ %retval.0.i.i.i.i, %_ZN7openvdb5v11_04tree12IteratorBaseINS0_4util15OffMaskIteratorINS3_8NodeMaskILj5EEEEENS1_12InternalNodeINS8_INS1_8LeafNodeIbLj3EEELj4EEELj5EEEEppEv.exit ], [ %add.i.i.i, %_ZN7openvdb5v11_04tree12InternalNodeINS2_INS1_8LeafNodeIbLj3EEELj4EEELj5EE13beginValueAllEv.exit ] %5 = load i8, ptr %this, align 1 - %6 = and i8 %5, 1 %call.i.i.i = call noundef nonnull align 8 dereferenceable(270352) ptr @_ZNK7openvdb5v11_04tree12IteratorBaseINS0_4util15OffMaskIteratorINS3_8NodeMaskILj5EEEEENS1_12InternalNodeINS8_INS1_8LeafNodeIbLj3EEELj4EEELj5EEEE6parentEv(ptr noundef nonnull align 8 dereferenceable(24) %iter) %idxprom.i.i.i = zext i32 %4 to i64 %arrayidx.i.i.i = getelementptr inbounds [32768 x %"class.openvdb::v11_0::tree::NodeUnion.96"], ptr %call.i.i.i, i64 0, i64 %idxprom.i.i.i - %7 = load i8, ptr %arrayidx.i.i.i, align 8 + %6 = load i8, ptr %arrayidx.i.i.i, align 8 + %7 = or i8 %6, %5 %8 = and i8 %7, 1 - %narrow = sub nsw i8 0, %8 - %tobool5 = icmp ne i8 %6, %narrow - %frombool = zext i1 %tobool5 to i8 %9 = load i32, ptr %mMaskIter.i.i.i.i, align 8 %call.i.i = call noundef nonnull align 8 dereferenceable(270352) ptr @_ZNK7openvdb5v11_04tree12IteratorBaseINS0_4util15OffMaskIteratorINS3_8NodeMaskILj5EEEEENS1_12InternalNodeINS8_INS1_8LeafNodeIbLj3EEELj4EEELj5EEEE6parentEv(ptr noundef nonnull align 8 dereferenceable(24) %iter) %idxprom.i.i = zext i32 %9 to i64 %arrayidx.i.i = getelementptr inbounds [32768 x %"class.openvdb::v11_0::tree::NodeUnion.96"], ptr %call.i.i, i64 0, i64 %idxprom.i.i - store i8 %frombool, ptr %arrayidx.i.i, align 8 + store i8 %8, ptr %arrayidx.i.i, align 8 %10 = load ptr, ptr %ref.tmp.sroa.21.0.mMaskIter.i.i.i.sroa_idx.i, align 8 %11 = load i32, ptr %mMaskIter.i.i.i.i, align 8 %add.i.i.i4 = add i32 %11, 1 @@ -170938,20 +170925,17 @@ _ZN7openvdb5v11_04tree12InternalNodeINS1_8LeafNodeIbLj3EEELj4EE13beginValueAllEv for.body: ; preds = %_ZN7openvdb5v11_04tree12InternalNodeINS1_8LeafNodeIbLj3EEELj4EE13beginValueAllEv.exit, %_ZN7openvdb5v11_04tree12IteratorBaseINS0_4util15OffMaskIteratorINS3_8NodeMaskILj4EEEEENS1_12InternalNodeINS1_8LeafNodeIbLj3EEELj4EEEEppEv.exit %4 = phi i32 [ %retval.0.i.i.i.i, %_ZN7openvdb5v11_04tree12IteratorBaseINS0_4util15OffMaskIteratorINS3_8NodeMaskILj4EEEEENS1_12InternalNodeINS1_8LeafNodeIbLj3EEELj4EEEEppEv.exit ], [ %add.i.i.i, %_ZN7openvdb5v11_04tree12InternalNodeINS1_8LeafNodeIbLj3EEELj4EE13beginValueAllEv.exit ] %5 = load i8, ptr %this, align 1 - %6 = and i8 %5, 1 %call.i.i.i = call noundef nonnull align 8 dereferenceable(33808) ptr @_ZNK7openvdb5v11_04tree12IteratorBaseINS0_4util15OffMaskIteratorINS3_8NodeMaskILj4EEEEENS1_12InternalNodeINS1_8LeafNodeIbLj3EEELj4EEEE6parentEv(ptr noundef nonnull align 8 dereferenceable(24) %iter) %idxprom.i.i.i = zext i32 %4 to i64 %arrayidx.i.i.i = getelementptr inbounds [4096 x %"class.openvdb::v11_0::tree::NodeUnion.713"], ptr %call.i.i.i, i64 0, i64 %idxprom.i.i.i - %7 = load i8, ptr %arrayidx.i.i.i, align 8 + %6 = load i8, ptr %arrayidx.i.i.i, align 8 + %7 = or i8 %6, %5 %8 = and i8 %7, 1 - %narrow = sub nsw i8 0, %8 - %tobool5 = icmp ne i8 %6, %narrow - %frombool = zext i1 %tobool5 to i8 %9 = load i32, ptr %mMaskIter.i.i.i.i, align 8 %call.i.i = call noundef nonnull align 8 dereferenceable(33808) ptr @_ZNK7openvdb5v11_04tree12IteratorBaseINS0_4util15OffMaskIteratorINS3_8NodeMaskILj4EEEEENS1_12InternalNodeINS1_8LeafNodeIbLj3EEELj4EEEE6parentEv(ptr noundef nonnull align 8 dereferenceable(24) %iter) %idxprom.i.i = zext i32 %9 to i64 %arrayidx.i.i = getelementptr inbounds [4096 x %"class.openvdb::v11_0::tree::NodeUnion.713"], ptr %call.i.i, i64 0, i64 %idxprom.i.i - store i8 %frombool, ptr %arrayidx.i.i, align 8 + store i8 %8, ptr %arrayidx.i.i, align 8 %10 = load ptr, ptr %ref.tmp.sroa.21.0.mMaskIter.i.i.i.sroa_idx.i, align 8 %11 = load i32, ptr %mMaskIter.i.i.i.i, align 8 %add.i.i.i4 = add i32 %11, 1 diff --git a/bench/qemu/optimized/hw_net_tulip.c.ll b/bench/qemu/optimized/hw_net_tulip.c.ll index eb203047127..6fb47118775 100644 --- a/bench/qemu/optimized/hw_net_tulip.c.ll +++ b/bench/qemu/optimized/hw_net_tulip.c.ll @@ -1669,13 +1669,13 @@ if.then46.i: ; preds = %if.end44.i if.then20: ; preds = %if.then46.i, %if.end44.i %60 = phi i16 [ %conv60.i, %if.then46.i ], [ %55, %if.end44.i ] - %add62.i = sub nsw i32 0, %and3.i - %tobool63.not.i = icmp eq i32 %and.i54, %add62.i + %61 = or i32 %and3.i, %and.i54 + %tobool63.not.i = icmp eq i32 %61, 0 %cond.i = select i1 %tobool63.not.i, i32 2147483647, i32 0 store i32 %cond.i, ptr %desc, align 4 - %61 = load i32, ptr %control.i, align 4 - %62 = and i32 %61, 1073741824 - %tobool24.not = icmp eq i32 %62, 0 + %62 = load i32, ptr %control.i, align 4 + %63 = and i32 %62, 1073741824 + %tobool24.not = icmp eq i32 %63, 0 br i1 %tobool24.not, label %if.end28, label %if.then25 if.then25: ; preds = %if.then20 @@ -1683,9 +1683,9 @@ if.then25: ; preds = %if.then20 br i1 %tobool.not.i63, label %if.end15.i, label %if.then.i64 if.then.i64: ; preds = %if.then25 - %63 = load i32, ptr %arrayidx.i65, align 8 - %64 = and i32 %63, 3072 - %tobool1.not.i = icmp eq i32 %64, 0 + %64 = load i32, ptr %arrayidx.i65, align 8 + %65 = and i32 %64, 3072 + %tobool1.not.i = icmp eq i32 %65, 0 br i1 %tobool1.not.i, label %if.else.i, label %if.then2.i if.then2.i: ; preds = %if.then.i64 @@ -1698,10 +1698,10 @@ if.else.i: ; preds = %if.then.i64 br i1 %cmp.i69, label %if.then7.i, label %if.end15.ithread-pre-split if.then7.i: ; preds = %if.else.i - %65 = load ptr, ptr %nic.i, align 16 - %call8.i = call ptr @qemu_get_queue(ptr noundef %65) #8 - %66 = load i16, ptr %tx_frame_len, align 16 - %conv12.i = zext i16 %66 to i32 + %66 = load ptr, ptr %nic.i, align 16 + %call8.i = call ptr @qemu_get_queue(ptr noundef %66) #8 + %67 = load i16, ptr %tx_frame_len, align 16 + %conv12.i = zext i16 %67 to i32 %call13.i = call i64 @qemu_send_packet(ptr noundef %call8.i, ptr noundef nonnull %tx_frame.i, i32 noundef %conv12.i) #8 br label %if.end15.ithread-pre-split @@ -1710,20 +1710,20 @@ if.end15.ithread-pre-split: ; preds = %if.then2.i, %if.els br label %if.end15.i if.end15.i: ; preds = %if.end15.ithread-pre-split, %if.then25 - %67 = phi i32 [ %.pr, %if.end15.ithread-pre-split ], [ %61, %if.then25 ] - %tobool18.not.i = icmp sgt i32 %67, -1 + %68 = phi i32 [ %.pr, %if.end15.ithread-pre-split ], [ %62, %if.then25 ] + %tobool18.not.i = icmp sgt i32 %68, -1 br i1 %tobool18.not.i, label %if.end28, label %if.then19.i if.then19.i: ; preds = %if.end15.i - %68 = load i32, ptr %0, align 4 - %69 = or i32 %68, 1 - store i32 %69, ptr %0, align 4 + %69 = load i32, ptr %0, align 4 + %70 = or i32 %69, 1 + store i32 %70, ptr %0, align 4 call fastcc void @tulip_update_int(ptr noundef nonnull %s) br label %if.end28 if.end28: ; preds = %if.then39.i, %do.body31.i, %if.then8.i61, %do.body.i, %if.then19.i, %if.end15.i, %if.then20, %tulip_setup_frame.exit - %70 = load i64, ptr %current_tx_desc, align 8 - call fastcc void @tulip_desc_write(ptr noundef nonnull %s, i64 noundef %70, ptr noundef nonnull %desc) + %71 = load i64, ptr %current_tx_desc, align 8 + call fastcc void @tulip_desc_write(ptr noundef nonnull %s, i64 noundef %71, ptr noundef nonnull %desc) %desc.val = load i32, ptr %control.i, align 4 %desc.val16 = load i32, ptr %buf_addr2.i, align 4 %conv.i70 = zext i32 %desc.val to i64 @@ -1732,8 +1732,8 @@ if.end28: ; preds = %if.then39.i, %do.bo br i1 %tobool.not.i72, label %if.else.i75, label %if.then.i73 if.then.i73: ; preds = %if.end28 - %71 = load i32, ptr %arrayidx.i74, align 16 - %conv1.i = zext i32 %71 to i64 + %72 = load i32, ptr %arrayidx.i74, align 16 + %conv1.i = zext i32 %72 to i64 br label %tulip_next_tx_descriptor.exit if.else.i75: ; preds = %if.end28 @@ -1746,17 +1746,17 @@ if.then6.i: ; preds = %if.else.i75 br label %tulip_next_tx_descriptor.exit if.else9.i: ; preds = %if.else.i75 - %72 = load i32, ptr %csr10.i, align 16 - %and12.i = and i32 %72, 124 + %73 = load i32, ptr %csr10.i, align 16 + %and12.i = and i32 %73, 124 %narrow.i = add nuw nsw i32 %and12.i, 16 %add.i77 = zext nneg i32 %narrow.i to i64 - %73 = load i64, ptr %current_tx_desc, align 8 - %add15.i = add i64 %73, %add.i77 + %74 = load i64, ptr %current_tx_desc, align 8 + %add15.i = add i64 %74, %add.i77 br label %tulip_next_tx_descriptor.exit tulip_next_tx_descriptor.exit: ; preds = %if.then.i73, %if.then6.i, %if.else9.i - %74 = phi i64 [ %conv7.i, %if.then6.i ], [ %add15.i, %if.else9.i ], [ %conv1.i, %if.then.i73 ] - %and18.i = and i64 %74, -4 + %75 = phi i64 [ %conv7.i, %if.then6.i ], [ %add15.i, %if.else9.i ], [ %conv1.i, %if.then.i73 ] + %and18.i = and i64 %75, -4 store i64 %and18.i, ptr %current_tx_desc, align 8 %inc = add nuw i8 %i.080, 1 %exitcond.not = icmp eq i8 %inc, -128 diff --git a/bench/qemu/optimized/util_cutils.c.ll b/bench/qemu/optimized/util_cutils.c.ll index 9e9d5d184c5..59a750d3ec2 100644 --- a/bench/qemu/optimized/util_cutils.c.ll +++ b/bench/qemu/optimized/util_cutils.c.ll @@ -845,8 +845,9 @@ if.else110: ; preds = %if.end102 %shr = lshr i64 %conv2.i74, 63 %add115 = add i64 %add, %shr %cmp116 = icmp ult i64 %add115, %shr - %conv118.neg = sext i1 %cmp116 to i64 - %cmp120.not = icmp eq i64 %add114, %conv118.neg + %conv118 = zext i1 %cmp116 to i64 + %48 = or i64 %add114, %conv118 + %cmp120.not = icmp eq i64 %48, 0 br i1 %cmp120.not, label %if.end124, label %out if.end124: ; preds = %if.else110, %if.then105 @@ -874,8 +875,8 @@ if.then126: ; preds = %out.thread, %out br label %if.end134 land.lhs.true129: ; preds = %out - %48 = load i8, ptr %endptr.4, align 1 - %tobool131.not = icmp eq i8 %48, 0 + %49 = load i8, ptr %endptr.4, align 1 + %tobool131.not = icmp eq i8 %49, 0 br i1 %tobool131.not, label %if.end134, label %if.else138.thread if.else138.thread: ; preds = %out.thread, %land.lhs.true129 diff --git a/bench/quickjs/optimized/quickjs.ll b/bench/quickjs/optimized/quickjs.ll index 34b96bfaccb..b48f2fd19e7 100644 --- a/bench/quickjs/optimized/quickjs.ll +++ b/bench/quickjs/optimized/quickjs.ll @@ -76897,10 +76897,10 @@ define internal fastcc void @free_gc_object(ptr noundef %0, ptr noundef %1) unna %3 = getelementptr inbounds i8, ptr %1, i64 4 %4 = load i8, ptr %3, align 4 %5 = and i8 %4, 15 - switch i8 %5, label %528 [ + switch i8 %5, label %526 [ i8 0, label %6 i8 1, label %88 - i8 4, label %481 + i8 4, label %479 ] 6: ; preds = %2 @@ -77201,614 +77201,612 @@ free_bytecode_atoms.exit: ; preds = %JS_FreeAtomRT.exit. %169 = getelementptr inbounds i8, ptr %1, i64 64 %170 = getelementptr inbounds i8, ptr %1, i64 66 %171 = load i16, ptr %169, align 8 - %172 = zext i16 %171 to i32 - %173 = load i16, ptr %170, align 2 - %174 = zext i16 %173 to i32 - %175 = sub nsw i32 0, %172 - %.not = icmp eq i32 %174, %175 + %172 = load i16, ptr %170, align 2 + %173 = or i16 %172, %171 + %.not = icmp eq i16 %173, 0 br i1 %.not, label %.loopexit, label %.lr.ph .lr.ph: ; preds = %.preheader54 - %176 = getelementptr inbounds i8, ptr %0, i64 96 - %177 = getelementptr inbounds i8, ptr %0, i64 72 - %178 = getelementptr inbounds i8, ptr %0, i64 88 - %179 = getelementptr inbounds i8, ptr %0, i64 104 - %180 = getelementptr inbounds i8, ptr %0, i64 8 - %181 = getelementptr inbounds i8, ptr %0, i64 32 - %182 = getelementptr inbounds i8, ptr %0, i64 76 - br label %183 + %174 = getelementptr inbounds i8, ptr %0, i64 96 + %175 = getelementptr inbounds i8, ptr %0, i64 72 + %176 = getelementptr inbounds i8, ptr %0, i64 88 + %177 = getelementptr inbounds i8, ptr %0, i64 104 + %178 = getelementptr inbounds i8, ptr %0, i64 8 + %179 = getelementptr inbounds i8, ptr %0, i64 32 + %180 = getelementptr inbounds i8, ptr %0, i64 76 + br label %181 -183: ; preds = %.lr.ph, %JS_FreeAtomRT.exit39 +181: ; preds = %.lr.ph, %JS_FreeAtomRT.exit39 %indvars.iv = phi i64 [ 0, %.lr.ph ], [ %indvars.iv.next, %JS_FreeAtomRT.exit39 ] - %184 = load ptr, ptr %167, align 8 - %185 = getelementptr %struct.JSVarDef, ptr %184, i64 %indvars.iv - %186 = load i32, ptr %185, align 4 - %187 = icmp sgt i32 %186, 226 - br i1 %187, label %188, label %JS_FreeAtomRT.exit39 + %182 = load ptr, ptr %167, align 8 + %183 = getelementptr %struct.JSVarDef, ptr %182, i64 %indvars.iv + %184 = load i32, ptr %183, align 4 + %185 = icmp sgt i32 %184, 226 + br i1 %185, label %186, label %JS_FreeAtomRT.exit39 -188: ; preds = %183 - %189 = load ptr, ptr %176, align 8 - %190 = zext nneg i32 %186 to i64 - %191 = getelementptr ptr, ptr %189, i64 %190 - %192 = load ptr, ptr %191, align 8 - %193 = load i32, ptr %192, align 4 - %194 = add i32 %193, -1 - store i32 %194, ptr %192, align 4 - %195 = icmp sgt i32 %194, 0 - br i1 %195, label %JS_FreeAtomRT.exit39, label %196 +186: ; preds = %181 + %187 = load ptr, ptr %174, align 8 + %188 = zext nneg i32 %184 to i64 + %189 = getelementptr ptr, ptr %187, i64 %188 + %190 = load ptr, ptr %189, align 8 + %191 = load i32, ptr %190, align 4 + %192 = add i32 %191, -1 + store i32 %192, ptr %190, align 4 + %193 = icmp sgt i32 %192, 0 + br i1 %193, label %JS_FreeAtomRT.exit39, label %194 -196: ; preds = %188 - %197 = getelementptr inbounds i8, ptr %192, i64 12 - %198 = load i32, ptr %197, align 4 - %199 = getelementptr inbounds i8, ptr %192, i64 4 - %200 = load i64, ptr %199, align 4 - %.not.i.i.i31 = icmp ugt i64 %200, -4611686018427387905 - br i1 %.not.i.i.i31, label %._crit_edge.i.i.i37, label %201 +194: ; preds = %186 + %195 = getelementptr inbounds i8, ptr %190, i64 12 + %196 = load i32, ptr %195, align 4 + %197 = getelementptr inbounds i8, ptr %190, i64 4 + %198 = load i64, ptr %197, align 4 + %.not.i.i.i31 = icmp ugt i64 %198, -4611686018427387905 + br i1 %.not.i.i.i31, label %._crit_edge.i.i.i37, label %199 -._crit_edge.i.i.i37: ; preds = %196 - %.pre.i.i.i38 = zext i32 %198 to i64 +._crit_edge.i.i.i37: ; preds = %194 + %.pre.i.i.i38 = zext i32 %196 to i64 br label %JS_FreeAtomStruct.exit.i.i34 -201: ; preds = %196 - %202 = lshr i64 %200, 32 - %203 = trunc i64 %202 to i32 - %204 = and i32 %203, 1073741823 - %205 = load i32, ptr %177, align 8 - %206 = add i32 %205, -1 - %207 = and i32 %204, %206 - %208 = load ptr, ptr %178, align 8 - %209 = zext nneg i32 %207 to i64 - %210 = getelementptr i32, ptr %208, i64 %209 - %211 = load i32, ptr %210, align 4 - %212 = load ptr, ptr %176, align 8 - %213 = zext i32 %211 to i64 - %214 = getelementptr ptr, ptr %212, i64 %213 - %215 = load ptr, ptr %214, align 8 - %216 = icmp eq ptr %215, %192 - br i1 %216, label %217, label %.preheader.i.i.i32 +199: ; preds = %194 + %200 = lshr i64 %198, 32 + %201 = trunc i64 %200 to i32 + %202 = and i32 %201, 1073741823 + %203 = load i32, ptr %175, align 8 + %204 = add i32 %203, -1 + %205 = and i32 %202, %204 + %206 = load ptr, ptr %176, align 8 + %207 = zext nneg i32 %205 to i64 + %208 = getelementptr i32, ptr %206, i64 %207 + %209 = load i32, ptr %208, align 4 + %210 = load ptr, ptr %174, align 8 + %211 = zext i32 %209 to i64 + %212 = getelementptr ptr, ptr %210, i64 %211 + %213 = load ptr, ptr %212, align 8 + %214 = icmp eq ptr %213, %190 + br i1 %214, label %215, label %.preheader.i.i.i32 -217: ; preds = %201 - store i32 %198, ptr %210, align 4 +215: ; preds = %199 + store i32 %196, ptr %208, align 4 br label %JS_FreeAtomStruct.exit.i.i34 -.preheader.i.i.i32: ; preds = %201, %.preheader.i.i.i32 - %.028.i.i.i33 = phi ptr [ %222, %.preheader.i.i.i32 ], [ %215, %201 ] - %218 = getelementptr inbounds i8, ptr %.028.i.i.i33, i64 12 - %219 = load i32, ptr %218, align 4 - %220 = zext i32 %219 to i64 - %221 = getelementptr ptr, ptr %212, i64 %220 - %222 = load ptr, ptr %221, align 8 - %223 = icmp eq ptr %222, %192 - br i1 %223, label %224, label %.preheader.i.i.i32 +.preheader.i.i.i32: ; preds = %199, %.preheader.i.i.i32 + %.028.i.i.i33 = phi ptr [ %220, %.preheader.i.i.i32 ], [ %213, %199 ] + %216 = getelementptr inbounds i8, ptr %.028.i.i.i33, i64 12 + %217 = load i32, ptr %216, align 4 + %218 = zext i32 %217 to i64 + %219 = getelementptr ptr, ptr %210, i64 %218 + %220 = load ptr, ptr %219, align 8 + %221 = icmp eq ptr %220, %190 + br i1 %221, label %222, label %.preheader.i.i.i32 -224: ; preds = %.preheader.i.i.i32 - %225 = getelementptr inbounds i8, ptr %.028.i.i.i33, i64 12 - store i32 %198, ptr %225, align 4 +222: ; preds = %.preheader.i.i.i32 + %223 = getelementptr inbounds i8, ptr %.028.i.i.i33, i64 12 + store i32 %196, ptr %223, align 4 br label %JS_FreeAtomStruct.exit.i.i34 -JS_FreeAtomStruct.exit.i.i34: ; preds = %224, %217, %._crit_edge.i.i.i37 - %.pre-phi.i.i.i35 = phi i64 [ %.pre.i.i.i38, %._crit_edge.i.i.i37 ], [ %213, %217 ], [ %220, %224 ] - %.0.i.i.i36 = phi i32 [ %198, %._crit_edge.i.i.i37 ], [ %211, %217 ], [ %219, %224 ] - %226 = load i32, ptr %179, align 8 - %227 = zext i32 %226 to i64 - %228 = shl nuw nsw i64 %227, 1 - %229 = or disjoint i64 %228, 1 - %230 = inttoptr i64 %229 to ptr - %231 = load ptr, ptr %176, align 8 - %232 = getelementptr ptr, ptr %231, i64 %.pre-phi.i.i.i35 - store ptr %230, ptr %232, align 8 - store i32 %.0.i.i.i36, ptr %179, align 8 - %233 = load ptr, ptr %180, align 8 - tail call void %233(ptr noundef nonnull %181, ptr noundef nonnull %192) #42 - %234 = load i32, ptr %182, align 4 - %235 = add i32 %234, -1 - store i32 %235, ptr %182, align 4 +JS_FreeAtomStruct.exit.i.i34: ; preds = %222, %215, %._crit_edge.i.i.i37 + %.pre-phi.i.i.i35 = phi i64 [ %.pre.i.i.i38, %._crit_edge.i.i.i37 ], [ %211, %215 ], [ %218, %222 ] + %.0.i.i.i36 = phi i32 [ %196, %._crit_edge.i.i.i37 ], [ %209, %215 ], [ %217, %222 ] + %224 = load i32, ptr %177, align 8 + %225 = zext i32 %224 to i64 + %226 = shl nuw nsw i64 %225, 1 + %227 = or disjoint i64 %226, 1 + %228 = inttoptr i64 %227 to ptr + %229 = load ptr, ptr %174, align 8 + %230 = getelementptr ptr, ptr %229, i64 %.pre-phi.i.i.i35 + store ptr %228, ptr %230, align 8 + store i32 %.0.i.i.i36, ptr %177, align 8 + %231 = load ptr, ptr %178, align 8 + tail call void %231(ptr noundef nonnull %179, ptr noundef nonnull %190) #42 + %232 = load i32, ptr %180, align 4 + %233 = add i32 %232, -1 + store i32 %233, ptr %180, align 4 br label %JS_FreeAtomRT.exit39 -JS_FreeAtomRT.exit39: ; preds = %183, %188, %JS_FreeAtomStruct.exit.i.i34 +JS_FreeAtomRT.exit39: ; preds = %181, %186, %JS_FreeAtomStruct.exit.i.i34 %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 - %236 = load i16, ptr %169, align 8 + %234 = load i16, ptr %169, align 8 + %235 = zext i16 %234 to i64 + %236 = load i16, ptr %170, align 2 %237 = zext i16 %236 to i64 - %238 = load i16, ptr %170, align 2 - %239 = zext i16 %238 to i64 - %240 = add nuw nsw i64 %239, %237 - %241 = icmp ult i64 %indvars.iv.next, %240 - br i1 %241, label %183, label %.loopexit, !llvm.loop !231 + %238 = add nuw nsw i64 %237, %235 + %239 = icmp ult i64 %indvars.iv.next, %238 + br i1 %239, label %181, label %.loopexit, !llvm.loop !231 .loopexit: ; preds = %JS_FreeAtomRT.exit39, %.preheader54, %free_bytecode_atoms.exit - %242 = getelementptr inbounds i8, ptr %1, i64 88 - %243 = load i32, ptr %242, align 8 - %244 = icmp sgt i32 %243, 0 - br i1 %244, label %.lr.ph71, label %.preheader53 + %240 = getelementptr inbounds i8, ptr %1, i64 88 + %241 = load i32, ptr %240, align 8 + %242 = icmp sgt i32 %241, 0 + br i1 %242, label %.lr.ph71, label %.preheader53 .lr.ph71: ; preds = %.loopexit - %245 = getelementptr inbounds i8, ptr %1, i64 80 - br label %257 + %243 = getelementptr inbounds i8, ptr %1, i64 80 + br label %255 .preheader53: ; preds = %JS_FreeValueRT.exit, %.loopexit - %246 = getelementptr inbounds i8, ptr %1, i64 92 - %247 = load i32, ptr %246, align 4 - %248 = icmp sgt i32 %247, 0 - br i1 %248, label %.lr.ph73, label %._crit_edge + %244 = getelementptr inbounds i8, ptr %1, i64 92 + %245 = load i32, ptr %244, align 4 + %246 = icmp sgt i32 %245, 0 + br i1 %246, label %.lr.ph73, label %._crit_edge .lr.ph73: ; preds = %.preheader53 - %249 = getelementptr inbounds i8, ptr %1, i64 56 - %250 = getelementptr inbounds i8, ptr %0, i64 96 - %251 = getelementptr inbounds i8, ptr %0, i64 72 - %252 = getelementptr inbounds i8, ptr %0, i64 88 - %253 = getelementptr inbounds i8, ptr %0, i64 104 - %254 = getelementptr inbounds i8, ptr %0, i64 8 - %255 = getelementptr inbounds i8, ptr %0, i64 32 - %256 = getelementptr inbounds i8, ptr %0, i64 76 - br label %274 + %247 = getelementptr inbounds i8, ptr %1, i64 56 + %248 = getelementptr inbounds i8, ptr %0, i64 96 + %249 = getelementptr inbounds i8, ptr %0, i64 72 + %250 = getelementptr inbounds i8, ptr %0, i64 88 + %251 = getelementptr inbounds i8, ptr %0, i64 104 + %252 = getelementptr inbounds i8, ptr %0, i64 8 + %253 = getelementptr inbounds i8, ptr %0, i64 32 + %254 = getelementptr inbounds i8, ptr %0, i64 76 + br label %272 -257: ; preds = %.lr.ph71, %JS_FreeValueRT.exit +255: ; preds = %.lr.ph71, %JS_FreeValueRT.exit %indvars.iv94 = phi i64 [ 0, %.lr.ph71 ], [ %indvars.iv.next95, %JS_FreeValueRT.exit ] - %258 = load ptr, ptr %245, align 8 - %259 = getelementptr %struct.JSValue, ptr %258, i64 %indvars.iv94 + %256 = load ptr, ptr %243, align 8 + %257 = getelementptr %struct.JSValue, ptr %256, i64 %indvars.iv94 + %258 = load i64, ptr %257, align 8 + %259 = getelementptr inbounds i8, ptr %257, i64 8 %260 = load i64, ptr %259, align 8 - %261 = getelementptr inbounds i8, ptr %259, i64 8 - %262 = load i64, ptr %261, align 8 - %263 = trunc i64 %262 to i32 - %264 = icmp ugt i32 %263, -12 - br i1 %264, label %265, label %JS_FreeValueRT.exit + %261 = trunc i64 %260 to i32 + %262 = icmp ugt i32 %261, -12 + br i1 %262, label %263, label %JS_FreeValueRT.exit -265: ; preds = %257 - %266 = inttoptr i64 %260 to ptr - %267 = load i32, ptr %266, align 4 - %268 = add i32 %267, -1 - store i32 %268, ptr %266, align 4 - %269 = icmp slt i32 %268, 1 - br i1 %269, label %270, label %JS_FreeValueRT.exit +263: ; preds = %255 + %264 = inttoptr i64 %258 to ptr + %265 = load i32, ptr %264, align 4 + %266 = add i32 %265, -1 + store i32 %266, ptr %264, align 4 + %267 = icmp slt i32 %266, 1 + br i1 %267, label %268, label %JS_FreeValueRT.exit -270: ; preds = %265 - tail call void @__JS_FreeValueRT(ptr noundef %0, i64 %260, i64 %262) +268: ; preds = %263 + tail call void @__JS_FreeValueRT(ptr noundef %0, i64 %258, i64 %260) br label %JS_FreeValueRT.exit -JS_FreeValueRT.exit: ; preds = %257, %265, %270 +JS_FreeValueRT.exit: ; preds = %255, %263, %268 %indvars.iv.next95 = add nuw nsw i64 %indvars.iv94, 1 - %271 = load i32, ptr %242, align 8 - %272 = sext i32 %271 to i64 - %273 = icmp slt i64 %indvars.iv.next95, %272 - br i1 %273, label %257, label %.preheader53, !llvm.loop !232 + %269 = load i32, ptr %240, align 8 + %270 = sext i32 %269 to i64 + %271 = icmp slt i64 %indvars.iv.next95, %270 + br i1 %271, label %255, label %.preheader53, !llvm.loop !232 -274: ; preds = %.lr.ph73, %JS_FreeAtomRT.exit30 +272: ; preds = %.lr.ph73, %JS_FreeAtomRT.exit30 %indvars.iv97 = phi i64 [ 0, %.lr.ph73 ], [ %indvars.iv.next98, %JS_FreeAtomRT.exit30 ] - %275 = load ptr, ptr %249, align 8 - %276 = getelementptr %struct.JSClosureVar, ptr %275, i64 %indvars.iv97, i32 2 - %277 = load i32, ptr %276, align 4 - %278 = icmp sgt i32 %277, 226 - br i1 %278, label %279, label %JS_FreeAtomRT.exit30 + %273 = load ptr, ptr %247, align 8 + %274 = getelementptr %struct.JSClosureVar, ptr %273, i64 %indvars.iv97, i32 2 + %275 = load i32, ptr %274, align 4 + %276 = icmp sgt i32 %275, 226 + br i1 %276, label %277, label %JS_FreeAtomRT.exit30 -279: ; preds = %274 - %280 = load ptr, ptr %250, align 8 - %281 = zext nneg i32 %277 to i64 - %282 = getelementptr ptr, ptr %280, i64 %281 - %283 = load ptr, ptr %282, align 8 - %284 = load i32, ptr %283, align 4 - %285 = add i32 %284, -1 - store i32 %285, ptr %283, align 4 - %286 = icmp sgt i32 %285, 0 - br i1 %286, label %JS_FreeAtomRT.exit30, label %287 +277: ; preds = %272 + %278 = load ptr, ptr %248, align 8 + %279 = zext nneg i32 %275 to i64 + %280 = getelementptr ptr, ptr %278, i64 %279 + %281 = load ptr, ptr %280, align 8 + %282 = load i32, ptr %281, align 4 + %283 = add i32 %282, -1 + store i32 %283, ptr %281, align 4 + %284 = icmp sgt i32 %283, 0 + br i1 %284, label %JS_FreeAtomRT.exit30, label %285 -287: ; preds = %279 - %288 = getelementptr inbounds i8, ptr %283, i64 12 - %289 = load i32, ptr %288, align 4 - %290 = getelementptr inbounds i8, ptr %283, i64 4 - %291 = load i64, ptr %290, align 4 - %.not.i.i.i22 = icmp ugt i64 %291, -4611686018427387905 - br i1 %.not.i.i.i22, label %._crit_edge.i.i.i28, label %292 +285: ; preds = %277 + %286 = getelementptr inbounds i8, ptr %281, i64 12 + %287 = load i32, ptr %286, align 4 + %288 = getelementptr inbounds i8, ptr %281, i64 4 + %289 = load i64, ptr %288, align 4 + %.not.i.i.i22 = icmp ugt i64 %289, -4611686018427387905 + br i1 %.not.i.i.i22, label %._crit_edge.i.i.i28, label %290 -._crit_edge.i.i.i28: ; preds = %287 - %.pre.i.i.i29 = zext i32 %289 to i64 +._crit_edge.i.i.i28: ; preds = %285 + %.pre.i.i.i29 = zext i32 %287 to i64 br label %JS_FreeAtomStruct.exit.i.i25 -292: ; preds = %287 - %293 = lshr i64 %291, 32 - %294 = trunc i64 %293 to i32 - %295 = and i32 %294, 1073741823 - %296 = load i32, ptr %251, align 8 - %297 = add i32 %296, -1 - %298 = and i32 %295, %297 - %299 = load ptr, ptr %252, align 8 - %300 = zext nneg i32 %298 to i64 - %301 = getelementptr i32, ptr %299, i64 %300 - %302 = load i32, ptr %301, align 4 - %303 = load ptr, ptr %250, align 8 - %304 = zext i32 %302 to i64 - %305 = getelementptr ptr, ptr %303, i64 %304 - %306 = load ptr, ptr %305, align 8 - %307 = icmp eq ptr %306, %283 - br i1 %307, label %308, label %.preheader.i.i.i23 +290: ; preds = %285 + %291 = lshr i64 %289, 32 + %292 = trunc i64 %291 to i32 + %293 = and i32 %292, 1073741823 + %294 = load i32, ptr %249, align 8 + %295 = add i32 %294, -1 + %296 = and i32 %293, %295 + %297 = load ptr, ptr %250, align 8 + %298 = zext nneg i32 %296 to i64 + %299 = getelementptr i32, ptr %297, i64 %298 + %300 = load i32, ptr %299, align 4 + %301 = load ptr, ptr %248, align 8 + %302 = zext i32 %300 to i64 + %303 = getelementptr ptr, ptr %301, i64 %302 + %304 = load ptr, ptr %303, align 8 + %305 = icmp eq ptr %304, %281 + br i1 %305, label %306, label %.preheader.i.i.i23 -308: ; preds = %292 - store i32 %289, ptr %301, align 4 +306: ; preds = %290 + store i32 %287, ptr %299, align 4 br label %JS_FreeAtomStruct.exit.i.i25 -.preheader.i.i.i23: ; preds = %292, %.preheader.i.i.i23 - %.028.i.i.i24 = phi ptr [ %313, %.preheader.i.i.i23 ], [ %306, %292 ] - %309 = getelementptr inbounds i8, ptr %.028.i.i.i24, i64 12 - %310 = load i32, ptr %309, align 4 - %311 = zext i32 %310 to i64 - %312 = getelementptr ptr, ptr %303, i64 %311 - %313 = load ptr, ptr %312, align 8 - %314 = icmp eq ptr %313, %283 - br i1 %314, label %315, label %.preheader.i.i.i23 - -315: ; preds = %.preheader.i.i.i23 - %316 = getelementptr inbounds i8, ptr %.028.i.i.i24, i64 12 - store i32 %289, ptr %316, align 4 +.preheader.i.i.i23: ; preds = %290, %.preheader.i.i.i23 + %.028.i.i.i24 = phi ptr [ %311, %.preheader.i.i.i23 ], [ %304, %290 ] + %307 = getelementptr inbounds i8, ptr %.028.i.i.i24, i64 12 + %308 = load i32, ptr %307, align 4 + %309 = zext i32 %308 to i64 + %310 = getelementptr ptr, ptr %301, i64 %309 + %311 = load ptr, ptr %310, align 8 + %312 = icmp eq ptr %311, %281 + br i1 %312, label %313, label %.preheader.i.i.i23 + +313: ; preds = %.preheader.i.i.i23 + %314 = getelementptr inbounds i8, ptr %.028.i.i.i24, i64 12 + store i32 %287, ptr %314, align 4 br label %JS_FreeAtomStruct.exit.i.i25 -JS_FreeAtomStruct.exit.i.i25: ; preds = %315, %308, %._crit_edge.i.i.i28 - %.pre-phi.i.i.i26 = phi i64 [ %.pre.i.i.i29, %._crit_edge.i.i.i28 ], [ %304, %308 ], [ %311, %315 ] - %.0.i.i.i27 = phi i32 [ %289, %._crit_edge.i.i.i28 ], [ %302, %308 ], [ %310, %315 ] - %317 = load i32, ptr %253, align 8 - %318 = zext i32 %317 to i64 - %319 = shl nuw nsw i64 %318, 1 - %320 = or disjoint i64 %319, 1 - %321 = inttoptr i64 %320 to ptr - %322 = load ptr, ptr %250, align 8 - %323 = getelementptr ptr, ptr %322, i64 %.pre-phi.i.i.i26 - store ptr %321, ptr %323, align 8 - store i32 %.0.i.i.i27, ptr %253, align 8 - %324 = load ptr, ptr %254, align 8 - tail call void %324(ptr noundef nonnull %255, ptr noundef nonnull %283) #42 - %325 = load i32, ptr %256, align 4 - %326 = add i32 %325, -1 - store i32 %326, ptr %256, align 4 +JS_FreeAtomStruct.exit.i.i25: ; preds = %313, %306, %._crit_edge.i.i.i28 + %.pre-phi.i.i.i26 = phi i64 [ %.pre.i.i.i29, %._crit_edge.i.i.i28 ], [ %302, %306 ], [ %309, %313 ] + %.0.i.i.i27 = phi i32 [ %287, %._crit_edge.i.i.i28 ], [ %300, %306 ], [ %308, %313 ] + %315 = load i32, ptr %251, align 8 + %316 = zext i32 %315 to i64 + %317 = shl nuw nsw i64 %316, 1 + %318 = or disjoint i64 %317, 1 + %319 = inttoptr i64 %318 to ptr + %320 = load ptr, ptr %248, align 8 + %321 = getelementptr ptr, ptr %320, i64 %.pre-phi.i.i.i26 + store ptr %319, ptr %321, align 8 + store i32 %.0.i.i.i27, ptr %251, align 8 + %322 = load ptr, ptr %252, align 8 + tail call void %322(ptr noundef nonnull %253, ptr noundef nonnull %281) #42 + %323 = load i32, ptr %254, align 4 + %324 = add i32 %323, -1 + store i32 %324, ptr %254, align 4 br label %JS_FreeAtomRT.exit30 -JS_FreeAtomRT.exit30: ; preds = %274, %279, %JS_FreeAtomStruct.exit.i.i25 +JS_FreeAtomRT.exit30: ; preds = %272, %277, %JS_FreeAtomStruct.exit.i.i25 %indvars.iv.next98 = add nuw nsw i64 %indvars.iv97, 1 - %327 = load i32, ptr %246, align 4 - %328 = sext i32 %327 to i64 - %329 = icmp slt i64 %indvars.iv.next98, %328 - br i1 %329, label %274, label %._crit_edge, !llvm.loop !233 + %325 = load i32, ptr %244, align 4 + %326 = sext i32 %325 to i64 + %327 = icmp slt i64 %indvars.iv.next98, %326 + br i1 %327, label %272, label %._crit_edge, !llvm.loop !233 ._crit_edge: ; preds = %JS_FreeAtomRT.exit30, %.preheader53 - %330 = getelementptr inbounds i8, ptr %1, i64 72 - %331 = load ptr, ptr %330, align 8 - %.not42.i = icmp eq ptr %331, null - br i1 %.not42.i, label %333, label %332 + %328 = getelementptr inbounds i8, ptr %1, i64 72 + %329 = load ptr, ptr %328, align 8 + %.not42.i = icmp eq ptr %329, null + br i1 %.not42.i, label %331, label %330 -332: ; preds = %._crit_edge - tail call void @JS_FreeContext(ptr noundef nonnull %331) - br label %333 +330: ; preds = %._crit_edge + tail call void @JS_FreeContext(ptr noundef nonnull %329) + br label %331 -333: ; preds = %332, %._crit_edge - %334 = getelementptr inbounds i8, ptr %1, i64 44 - %335 = load i32, ptr %334, align 4 - %336 = icmp sgt i32 %335, 226 - br i1 %336, label %337, label %JS_FreeAtomRT.exit21 +331: ; preds = %330, %._crit_edge + %332 = getelementptr inbounds i8, ptr %1, i64 44 + %333 = load i32, ptr %332, align 4 + %334 = icmp sgt i32 %333, 226 + br i1 %334, label %335, label %JS_FreeAtomRT.exit21 -337: ; preds = %333 - %338 = getelementptr inbounds i8, ptr %0, i64 96 - %339 = load ptr, ptr %338, align 8 - %340 = zext nneg i32 %335 to i64 - %341 = getelementptr ptr, ptr %339, i64 %340 - %342 = load ptr, ptr %341, align 8 - %343 = load i32, ptr %342, align 4 - %344 = add i32 %343, -1 - store i32 %344, ptr %342, align 4 - %345 = icmp sgt i32 %344, 0 - br i1 %345, label %JS_FreeAtomRT.exit21, label %346 +335: ; preds = %331 + %336 = getelementptr inbounds i8, ptr %0, i64 96 + %337 = load ptr, ptr %336, align 8 + %338 = zext nneg i32 %333 to i64 + %339 = getelementptr ptr, ptr %337, i64 %338 + %340 = load ptr, ptr %339, align 8 + %341 = load i32, ptr %340, align 4 + %342 = add i32 %341, -1 + store i32 %342, ptr %340, align 4 + %343 = icmp sgt i32 %342, 0 + br i1 %343, label %JS_FreeAtomRT.exit21, label %344 -346: ; preds = %337 - %347 = getelementptr inbounds i8, ptr %342, i64 12 - %348 = load i32, ptr %347, align 4 - %349 = getelementptr inbounds i8, ptr %342, i64 4 - %350 = load i64, ptr %349, align 4 - %.not.i.i.i13 = icmp ugt i64 %350, -4611686018427387905 - br i1 %.not.i.i.i13, label %._crit_edge.i.i.i19, label %351 +344: ; preds = %335 + %345 = getelementptr inbounds i8, ptr %340, i64 12 + %346 = load i32, ptr %345, align 4 + %347 = getelementptr inbounds i8, ptr %340, i64 4 + %348 = load i64, ptr %347, align 4 + %.not.i.i.i13 = icmp ugt i64 %348, -4611686018427387905 + br i1 %.not.i.i.i13, label %._crit_edge.i.i.i19, label %349 -._crit_edge.i.i.i19: ; preds = %346 - %.pre.i.i.i20 = zext i32 %348 to i64 +._crit_edge.i.i.i19: ; preds = %344 + %.pre.i.i.i20 = zext i32 %346 to i64 br label %JS_FreeAtomStruct.exit.i.i16 -351: ; preds = %346 - %352 = lshr i64 %350, 32 - %353 = trunc i64 %352 to i32 - %354 = and i32 %353, 1073741823 - %355 = getelementptr inbounds i8, ptr %0, i64 72 - %356 = load i32, ptr %355, align 8 - %357 = add i32 %356, -1 - %358 = and i32 %354, %357 - %359 = getelementptr inbounds i8, ptr %0, i64 88 - %360 = load ptr, ptr %359, align 8 - %361 = zext nneg i32 %358 to i64 - %362 = getelementptr i32, ptr %360, i64 %361 - %363 = load i32, ptr %362, align 4 - %364 = load ptr, ptr %338, align 8 - %365 = zext i32 %363 to i64 - %366 = getelementptr ptr, ptr %364, i64 %365 - %367 = load ptr, ptr %366, align 8 - %368 = icmp eq ptr %367, %342 - br i1 %368, label %369, label %.preheader.i.i.i14 +349: ; preds = %344 + %350 = lshr i64 %348, 32 + %351 = trunc i64 %350 to i32 + %352 = and i32 %351, 1073741823 + %353 = getelementptr inbounds i8, ptr %0, i64 72 + %354 = load i32, ptr %353, align 8 + %355 = add i32 %354, -1 + %356 = and i32 %352, %355 + %357 = getelementptr inbounds i8, ptr %0, i64 88 + %358 = load ptr, ptr %357, align 8 + %359 = zext nneg i32 %356 to i64 + %360 = getelementptr i32, ptr %358, i64 %359 + %361 = load i32, ptr %360, align 4 + %362 = load ptr, ptr %336, align 8 + %363 = zext i32 %361 to i64 + %364 = getelementptr ptr, ptr %362, i64 %363 + %365 = load ptr, ptr %364, align 8 + %366 = icmp eq ptr %365, %340 + br i1 %366, label %367, label %.preheader.i.i.i14 -369: ; preds = %351 - store i32 %348, ptr %362, align 4 +367: ; preds = %349 + store i32 %346, ptr %360, align 4 br label %JS_FreeAtomStruct.exit.i.i16 -.preheader.i.i.i14: ; preds = %351, %.preheader.i.i.i14 - %.028.i.i.i15 = phi ptr [ %374, %.preheader.i.i.i14 ], [ %367, %351 ] - %370 = getelementptr inbounds i8, ptr %.028.i.i.i15, i64 12 - %371 = load i32, ptr %370, align 4 - %372 = zext i32 %371 to i64 - %373 = getelementptr ptr, ptr %364, i64 %372 - %374 = load ptr, ptr %373, align 8 - %375 = icmp eq ptr %374, %342 - br i1 %375, label %376, label %.preheader.i.i.i14 +.preheader.i.i.i14: ; preds = %349, %.preheader.i.i.i14 + %.028.i.i.i15 = phi ptr [ %372, %.preheader.i.i.i14 ], [ %365, %349 ] + %368 = getelementptr inbounds i8, ptr %.028.i.i.i15, i64 12 + %369 = load i32, ptr %368, align 4 + %370 = zext i32 %369 to i64 + %371 = getelementptr ptr, ptr %362, i64 %370 + %372 = load ptr, ptr %371, align 8 + %373 = icmp eq ptr %372, %340 + br i1 %373, label %374, label %.preheader.i.i.i14 -376: ; preds = %.preheader.i.i.i14 - %377 = getelementptr inbounds i8, ptr %.028.i.i.i15, i64 12 - store i32 %348, ptr %377, align 4 +374: ; preds = %.preheader.i.i.i14 + %375 = getelementptr inbounds i8, ptr %.028.i.i.i15, i64 12 + store i32 %346, ptr %375, align 4 br label %JS_FreeAtomStruct.exit.i.i16 -JS_FreeAtomStruct.exit.i.i16: ; preds = %376, %369, %._crit_edge.i.i.i19 - %.pre-phi.i.i.i17 = phi i64 [ %.pre.i.i.i20, %._crit_edge.i.i.i19 ], [ %365, %369 ], [ %372, %376 ] - %.0.i.i.i18 = phi i32 [ %348, %._crit_edge.i.i.i19 ], [ %363, %369 ], [ %371, %376 ] - %378 = getelementptr inbounds i8, ptr %0, i64 104 - %379 = load i32, ptr %378, align 8 - %380 = zext i32 %379 to i64 - %381 = shl nuw nsw i64 %380, 1 - %382 = or disjoint i64 %381, 1 - %383 = inttoptr i64 %382 to ptr - %384 = load ptr, ptr %338, align 8 - %385 = getelementptr ptr, ptr %384, i64 %.pre-phi.i.i.i17 - store ptr %383, ptr %385, align 8 - store i32 %.0.i.i.i18, ptr %378, align 8 - %386 = getelementptr inbounds i8, ptr %0, i64 8 - %387 = load ptr, ptr %386, align 8 - %388 = getelementptr inbounds i8, ptr %0, i64 32 - tail call void %387(ptr noundef nonnull %388, ptr noundef nonnull %342) #42 - %389 = getelementptr inbounds i8, ptr %0, i64 76 - %390 = load i32, ptr %389, align 4 - %391 = add i32 %390, -1 - store i32 %391, ptr %389, align 4 +JS_FreeAtomStruct.exit.i.i16: ; preds = %374, %367, %._crit_edge.i.i.i19 + %.pre-phi.i.i.i17 = phi i64 [ %.pre.i.i.i20, %._crit_edge.i.i.i19 ], [ %363, %367 ], [ %370, %374 ] + %.0.i.i.i18 = phi i32 [ %346, %._crit_edge.i.i.i19 ], [ %361, %367 ], [ %369, %374 ] + %376 = getelementptr inbounds i8, ptr %0, i64 104 + %377 = load i32, ptr %376, align 8 + %378 = zext i32 %377 to i64 + %379 = shl nuw nsw i64 %378, 1 + %380 = or disjoint i64 %379, 1 + %381 = inttoptr i64 %380 to ptr + %382 = load ptr, ptr %336, align 8 + %383 = getelementptr ptr, ptr %382, i64 %.pre-phi.i.i.i17 + store ptr %381, ptr %383, align 8 + store i32 %.0.i.i.i18, ptr %376, align 8 + %384 = getelementptr inbounds i8, ptr %0, i64 8 + %385 = load ptr, ptr %384, align 8 + %386 = getelementptr inbounds i8, ptr %0, i64 32 + tail call void %385(ptr noundef nonnull %386, ptr noundef nonnull %340) #42 + %387 = getelementptr inbounds i8, ptr %0, i64 76 + %388 = load i32, ptr %387, align 4 + %389 = add i32 %388, -1 + store i32 %389, ptr %387, align 4 br label %JS_FreeAtomRT.exit21 -JS_FreeAtomRT.exit21: ; preds = %333, %337, %JS_FreeAtomStruct.exit.i.i16 - %392 = getelementptr inbounds i8, ptr %1, i64 25 - %393 = load i16, ptr %392, align 1 - %394 = and i16 %393, 1024 - %.not43.i = icmp eq i16 %394, 0 - br i1 %.not43.i, label %462, label %395 +JS_FreeAtomRT.exit21: ; preds = %331, %335, %JS_FreeAtomStruct.exit.i.i16 + %390 = getelementptr inbounds i8, ptr %1, i64 25 + %391 = load i16, ptr %390, align 1 + %392 = and i16 %391, 1024 + %.not43.i = icmp eq i16 %392, 0 + br i1 %.not43.i, label %460, label %393 -395: ; preds = %JS_FreeAtomRT.exit21 - %396 = getelementptr inbounds i8, ptr %1, i64 96 - %397 = load i32, ptr %396, align 8 - %398 = icmp sgt i32 %397, 226 - br i1 %398, label %399, label %JS_FreeAtomRT.exit - -399: ; preds = %395 - %400 = getelementptr inbounds i8, ptr %0, i64 96 - %401 = load ptr, ptr %400, align 8 - %402 = zext nneg i32 %397 to i64 - %403 = getelementptr ptr, ptr %401, i64 %402 - %404 = load ptr, ptr %403, align 8 - %405 = load i32, ptr %404, align 4 - %406 = add i32 %405, -1 - store i32 %406, ptr %404, align 4 - %407 = icmp sgt i32 %406, 0 - br i1 %407, label %JS_FreeAtomRT.exit, label %408 +393: ; preds = %JS_FreeAtomRT.exit21 + %394 = getelementptr inbounds i8, ptr %1, i64 96 + %395 = load i32, ptr %394, align 8 + %396 = icmp sgt i32 %395, 226 + br i1 %396, label %397, label %JS_FreeAtomRT.exit -408: ; preds = %399 - %409 = getelementptr inbounds i8, ptr %404, i64 12 - %410 = load i32, ptr %409, align 4 - %411 = getelementptr inbounds i8, ptr %404, i64 4 - %412 = load i64, ptr %411, align 4 - %.not.i.i.i = icmp ugt i64 %412, -4611686018427387905 - br i1 %.not.i.i.i, label %._crit_edge.i.i.i, label %413 +397: ; preds = %393 + %398 = getelementptr inbounds i8, ptr %0, i64 96 + %399 = load ptr, ptr %398, align 8 + %400 = zext nneg i32 %395 to i64 + %401 = getelementptr ptr, ptr %399, i64 %400 + %402 = load ptr, ptr %401, align 8 + %403 = load i32, ptr %402, align 4 + %404 = add i32 %403, -1 + store i32 %404, ptr %402, align 4 + %405 = icmp sgt i32 %404, 0 + br i1 %405, label %JS_FreeAtomRT.exit, label %406 + +406: ; preds = %397 + %407 = getelementptr inbounds i8, ptr %402, i64 12 + %408 = load i32, ptr %407, align 4 + %409 = getelementptr inbounds i8, ptr %402, i64 4 + %410 = load i64, ptr %409, align 4 + %.not.i.i.i = icmp ugt i64 %410, -4611686018427387905 + br i1 %.not.i.i.i, label %._crit_edge.i.i.i, label %411 -._crit_edge.i.i.i: ; preds = %408 - %.pre.i.i.i = zext i32 %410 to i64 +._crit_edge.i.i.i: ; preds = %406 + %.pre.i.i.i = zext i32 %408 to i64 br label %JS_FreeAtomStruct.exit.i.i -413: ; preds = %408 - %414 = lshr i64 %412, 32 - %415 = trunc i64 %414 to i32 - %416 = and i32 %415, 1073741823 - %417 = getelementptr inbounds i8, ptr %0, i64 72 - %418 = load i32, ptr %417, align 8 - %419 = add i32 %418, -1 - %420 = and i32 %416, %419 - %421 = getelementptr inbounds i8, ptr %0, i64 88 - %422 = load ptr, ptr %421, align 8 - %423 = zext nneg i32 %420 to i64 - %424 = getelementptr i32, ptr %422, i64 %423 - %425 = load i32, ptr %424, align 4 - %426 = load ptr, ptr %400, align 8 - %427 = zext i32 %425 to i64 - %428 = getelementptr ptr, ptr %426, i64 %427 - %429 = load ptr, ptr %428, align 8 - %430 = icmp eq ptr %429, %404 - br i1 %430, label %431, label %.preheader.i.i.i +411: ; preds = %406 + %412 = lshr i64 %410, 32 + %413 = trunc i64 %412 to i32 + %414 = and i32 %413, 1073741823 + %415 = getelementptr inbounds i8, ptr %0, i64 72 + %416 = load i32, ptr %415, align 8 + %417 = add i32 %416, -1 + %418 = and i32 %414, %417 + %419 = getelementptr inbounds i8, ptr %0, i64 88 + %420 = load ptr, ptr %419, align 8 + %421 = zext nneg i32 %418 to i64 + %422 = getelementptr i32, ptr %420, i64 %421 + %423 = load i32, ptr %422, align 4 + %424 = load ptr, ptr %398, align 8 + %425 = zext i32 %423 to i64 + %426 = getelementptr ptr, ptr %424, i64 %425 + %427 = load ptr, ptr %426, align 8 + %428 = icmp eq ptr %427, %402 + br i1 %428, label %429, label %.preheader.i.i.i -431: ; preds = %413 - store i32 %410, ptr %424, align 4 +429: ; preds = %411 + store i32 %408, ptr %422, align 4 br label %JS_FreeAtomStruct.exit.i.i -.preheader.i.i.i: ; preds = %413, %.preheader.i.i.i - %.028.i.i.i = phi ptr [ %436, %.preheader.i.i.i ], [ %429, %413 ] - %432 = getelementptr inbounds i8, ptr %.028.i.i.i, i64 12 - %433 = load i32, ptr %432, align 4 - %434 = zext i32 %433 to i64 - %435 = getelementptr ptr, ptr %426, i64 %434 - %436 = load ptr, ptr %435, align 8 - %437 = icmp eq ptr %436, %404 - br i1 %437, label %438, label %.preheader.i.i.i - -438: ; preds = %.preheader.i.i.i - %439 = getelementptr inbounds i8, ptr %.028.i.i.i, i64 12 - store i32 %410, ptr %439, align 4 +.preheader.i.i.i: ; preds = %411, %.preheader.i.i.i + %.028.i.i.i = phi ptr [ %434, %.preheader.i.i.i ], [ %427, %411 ] + %430 = getelementptr inbounds i8, ptr %.028.i.i.i, i64 12 + %431 = load i32, ptr %430, align 4 + %432 = zext i32 %431 to i64 + %433 = getelementptr ptr, ptr %424, i64 %432 + %434 = load ptr, ptr %433, align 8 + %435 = icmp eq ptr %434, %402 + br i1 %435, label %436, label %.preheader.i.i.i + +436: ; preds = %.preheader.i.i.i + %437 = getelementptr inbounds i8, ptr %.028.i.i.i, i64 12 + store i32 %408, ptr %437, align 4 br label %JS_FreeAtomStruct.exit.i.i -JS_FreeAtomStruct.exit.i.i: ; preds = %438, %431, %._crit_edge.i.i.i - %.pre-phi.i.i.i = phi i64 [ %.pre.i.i.i, %._crit_edge.i.i.i ], [ %427, %431 ], [ %434, %438 ] - %.0.i.i.i = phi i32 [ %410, %._crit_edge.i.i.i ], [ %425, %431 ], [ %433, %438 ] - %440 = getelementptr inbounds i8, ptr %0, i64 104 - %441 = load i32, ptr %440, align 8 - %442 = zext i32 %441 to i64 - %443 = shl nuw nsw i64 %442, 1 - %444 = or disjoint i64 %443, 1 - %445 = inttoptr i64 %444 to ptr - %446 = load ptr, ptr %400, align 8 - %447 = getelementptr ptr, ptr %446, i64 %.pre-phi.i.i.i - store ptr %445, ptr %447, align 8 - store i32 %.0.i.i.i, ptr %440, align 8 - %448 = getelementptr inbounds i8, ptr %0, i64 8 - %449 = load ptr, ptr %448, align 8 - %450 = getelementptr inbounds i8, ptr %0, i64 32 - tail call void %449(ptr noundef nonnull %450, ptr noundef nonnull %404) #42 - %451 = getelementptr inbounds i8, ptr %0, i64 76 - %452 = load i32, ptr %451, align 4 - %453 = add i32 %452, -1 - store i32 %453, ptr %451, align 4 +JS_FreeAtomStruct.exit.i.i: ; preds = %436, %429, %._crit_edge.i.i.i + %.pre-phi.i.i.i = phi i64 [ %.pre.i.i.i, %._crit_edge.i.i.i ], [ %425, %429 ], [ %432, %436 ] + %.0.i.i.i = phi i32 [ %408, %._crit_edge.i.i.i ], [ %423, %429 ], [ %431, %436 ] + %438 = getelementptr inbounds i8, ptr %0, i64 104 + %439 = load i32, ptr %438, align 8 + %440 = zext i32 %439 to i64 + %441 = shl nuw nsw i64 %440, 1 + %442 = or disjoint i64 %441, 1 + %443 = inttoptr i64 %442 to ptr + %444 = load ptr, ptr %398, align 8 + %445 = getelementptr ptr, ptr %444, i64 %.pre-phi.i.i.i + store ptr %443, ptr %445, align 8 + store i32 %.0.i.i.i, ptr %438, align 8 + %446 = getelementptr inbounds i8, ptr %0, i64 8 + %447 = load ptr, ptr %446, align 8 + %448 = getelementptr inbounds i8, ptr %0, i64 32 + tail call void %447(ptr noundef nonnull %448, ptr noundef nonnull %402) #42 + %449 = getelementptr inbounds i8, ptr %0, i64 76 + %450 = load i32, ptr %449, align 4 + %451 = add i32 %450, -1 + store i32 %451, ptr %449, align 4 br label %JS_FreeAtomRT.exit -JS_FreeAtomRT.exit: ; preds = %395, %399, %JS_FreeAtomStruct.exit.i.i - %454 = getelementptr inbounds i8, ptr %1, i64 112 +JS_FreeAtomRT.exit: ; preds = %393, %397, %JS_FreeAtomStruct.exit.i.i + %452 = getelementptr inbounds i8, ptr %1, i64 112 + %453 = load ptr, ptr %452, align 8 + %454 = getelementptr inbounds i8, ptr %0, i64 8 %455 = load ptr, ptr %454, align 8 - %456 = getelementptr inbounds i8, ptr %0, i64 8 - %457 = load ptr, ptr %456, align 8 - %458 = getelementptr inbounds i8, ptr %0, i64 32 - tail call void %457(ptr noundef nonnull %458, ptr noundef %455) #42 - %459 = getelementptr inbounds i8, ptr %1, i64 120 - %460 = load ptr, ptr %459, align 8 - %461 = load ptr, ptr %456, align 8 - tail call void %461(ptr noundef nonnull %458, ptr noundef %460) #42 - br label %462 + %456 = getelementptr inbounds i8, ptr %0, i64 32 + tail call void %455(ptr noundef nonnull %456, ptr noundef %453) #42 + %457 = getelementptr inbounds i8, ptr %1, i64 120 + %458 = load ptr, ptr %457, align 8 + %459 = load ptr, ptr %454, align 8 + tail call void %459(ptr noundef nonnull %456, ptr noundef %458) #42 + br label %460 -462: ; preds = %JS_FreeAtomRT.exit, %JS_FreeAtomRT.exit21 - %463 = getelementptr inbounds i8, ptr %1, i64 8 +460: ; preds = %JS_FreeAtomRT.exit, %JS_FreeAtomRT.exit21 + %461 = getelementptr inbounds i8, ptr %1, i64 8 + %462 = load ptr, ptr %461, align 8 + %463 = getelementptr inbounds i8, ptr %1, i64 16 %464 = load ptr, ptr %463, align 8 - %465 = getelementptr inbounds i8, ptr %1, i64 16 - %466 = load ptr, ptr %465, align 8 - %467 = getelementptr inbounds i8, ptr %464, i64 8 - store ptr %466, ptr %467, align 8 - store ptr %464, ptr %466, align 8 - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %463, i8 0, i64 16, i1 false) - %468 = getelementptr inbounds i8, ptr %0, i64 184 - %469 = load i8, ptr %468, align 8 - %470 = icmp eq i8 %469, 2 - br i1 %470, label %471, label %477 - -471: ; preds = %462 - %472 = load i32, ptr %1, align 8 - %.not44.i = icmp eq i32 %472, 0 - br i1 %.not44.i, label %477, label %473 - -473: ; preds = %471 - %474 = getelementptr inbounds i8, ptr %0, i64 152 - %475 = load ptr, ptr %474, align 8 - %476 = getelementptr inbounds i8, ptr %475, i64 8 - store ptr %463, ptr %476, align 8 - store ptr %475, ptr %463, align 8 - store ptr %474, ptr %465, align 8 - store ptr %463, ptr %474, align 8 + %465 = getelementptr inbounds i8, ptr %462, i64 8 + store ptr %464, ptr %465, align 8 + store ptr %462, ptr %464, align 8 + tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %461, i8 0, i64 16, i1 false) + %466 = getelementptr inbounds i8, ptr %0, i64 184 + %467 = load i8, ptr %466, align 8 + %468 = icmp eq i8 %467, 2 + br i1 %468, label %469, label %475 + +469: ; preds = %460 + %470 = load i32, ptr %1, align 8 + %.not44.i = icmp eq i32 %470, 0 + br i1 %.not44.i, label %475, label %471 + +471: ; preds = %469 + %472 = getelementptr inbounds i8, ptr %0, i64 152 + %473 = load ptr, ptr %472, align 8 + %474 = getelementptr inbounds i8, ptr %473, i64 8 + store ptr %461, ptr %474, align 8 + store ptr %473, ptr %461, align 8 + store ptr %472, ptr %463, align 8 + store ptr %461, ptr %472, align 8 br label %free_object.exit -477: ; preds = %471, %462 - %478 = getelementptr inbounds i8, ptr %0, i64 8 - %479 = load ptr, ptr %478, align 8 - %480 = getelementptr inbounds i8, ptr %0, i64 32 - tail call void %479(ptr noundef nonnull %480, ptr noundef nonnull %1) #42 +475: ; preds = %469, %460 + %476 = getelementptr inbounds i8, ptr %0, i64 8 + %477 = load ptr, ptr %476, align 8 + %478 = getelementptr inbounds i8, ptr %0, i64 32 + tail call void %477(ptr noundef nonnull %478, ptr noundef nonnull %1) #42 br label %free_object.exit -481: ; preds = %2 - %482 = getelementptr inbounds i8, ptr %1, i64 48 - %483 = load i32, ptr %482, align 8 - %.not.i9 = icmp eq i32 %483, 0 - br i1 %.not.i9, label %484, label %485 +479: ; preds = %2 + %480 = getelementptr inbounds i8, ptr %1, i64 48 + %481 = load i32, ptr %480, align 8 + %.not.i9 = icmp eq i32 %481, 0 + br i1 %.not.i9, label %482, label %483 -484: ; preds = %481 +482: ; preds = %479 tail call fastcc void @async_func_free_frame(ptr noundef %0, ptr noundef nonnull %1) - br label %485 + br label %483 -485: ; preds = %484, %481 - %486 = getelementptr inbounds i8, ptr %1, i64 56 +483: ; preds = %482, %479 + %484 = getelementptr inbounds i8, ptr %1, i64 56 + %485 = load i64, ptr %484, align 8 + %486 = getelementptr inbounds i8, ptr %1, i64 64 %487 = load i64, ptr %486, align 8 - %488 = getelementptr inbounds i8, ptr %1, i64 64 - %489 = load i64, ptr %488, align 8 - %490 = trunc i64 %489 to i32 - %491 = icmp ugt i32 %490, -12 - br i1 %491, label %492, label %JS_FreeValueRT.exit48 + %488 = trunc i64 %487 to i32 + %489 = icmp ugt i32 %488, -12 + br i1 %489, label %490, label %JS_FreeValueRT.exit48 -492: ; preds = %485 - %493 = inttoptr i64 %487 to ptr - %494 = load i32, ptr %493, align 4 - %495 = add i32 %494, -1 - store i32 %495, ptr %493, align 4 - %496 = icmp slt i32 %495, 1 - br i1 %496, label %497, label %JS_FreeValueRT.exit48 +490: ; preds = %483 + %491 = inttoptr i64 %485 to ptr + %492 = load i32, ptr %491, align 4 + %493 = add i32 %492, -1 + store i32 %493, ptr %491, align 4 + %494 = icmp slt i32 %493, 1 + br i1 %494, label %495, label %JS_FreeValueRT.exit48 -497: ; preds = %492 - tail call void @__JS_FreeValueRT(ptr noundef %0, i64 %487, i64 %489) +495: ; preds = %490 + tail call void @__JS_FreeValueRT(ptr noundef %0, i64 %485, i64 %487) br label %JS_FreeValueRT.exit48 -JS_FreeValueRT.exit48: ; preds = %485, %492, %497 - %498 = getelementptr i8, ptr %1, i64 72 +JS_FreeValueRT.exit48: ; preds = %483, %490, %495 + %496 = getelementptr i8, ptr %1, i64 72 + %497 = load i64, ptr %496, align 8 + %498 = getelementptr i8, ptr %1, i64 80 %499 = load i64, ptr %498, align 8 - %500 = getelementptr i8, ptr %1, i64 80 - %501 = load i64, ptr %500, align 8 - %502 = trunc i64 %501 to i32 - %503 = icmp ugt i32 %502, -12 - br i1 %503, label %504, label %JS_FreeValueRT.exit44 - -504: ; preds = %JS_FreeValueRT.exit48 - %505 = inttoptr i64 %499 to ptr - %506 = load i32, ptr %505, align 4 - %507 = add i32 %506, -1 - store i32 %507, ptr %505, align 4 - %508 = icmp slt i32 %507, 1 - br i1 %508, label %509, label %JS_FreeValueRT.exit44 - -509: ; preds = %504 - tail call void @__JS_FreeValueRT(ptr noundef %0, i64 %499, i64 %501) + %500 = trunc i64 %499 to i32 + %501 = icmp ugt i32 %500, -12 + br i1 %501, label %502, label %JS_FreeValueRT.exit44 + +502: ; preds = %JS_FreeValueRT.exit48 + %503 = inttoptr i64 %497 to ptr + %504 = load i32, ptr %503, align 4 + %505 = add i32 %504, -1 + store i32 %505, ptr %503, align 4 + %506 = icmp slt i32 %505, 1 + br i1 %506, label %507, label %JS_FreeValueRT.exit44 + +507: ; preds = %502 + tail call void @__JS_FreeValueRT(ptr noundef %0, i64 %497, i64 %499) br label %JS_FreeValueRT.exit44 -JS_FreeValueRT.exit44: ; preds = %JS_FreeValueRT.exit48, %504, %509 - %510 = getelementptr inbounds i8, ptr %1, i64 8 +JS_FreeValueRT.exit44: ; preds = %JS_FreeValueRT.exit48, %502, %507 + %508 = getelementptr inbounds i8, ptr %1, i64 8 + %509 = load ptr, ptr %508, align 8 + %510 = getelementptr inbounds i8, ptr %1, i64 16 %511 = load ptr, ptr %510, align 8 - %512 = getelementptr inbounds i8, ptr %1, i64 16 - %513 = load ptr, ptr %512, align 8 - %514 = getelementptr inbounds i8, ptr %511, i64 8 - store ptr %513, ptr %514, align 8 - store ptr %511, ptr %513, align 8 - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %510, i8 0, i64 16, i1 false) - %515 = getelementptr inbounds i8, ptr %0, i64 184 - %516 = load i8, ptr %515, align 8 - %517 = icmp eq i8 %516, 2 - br i1 %517, label %518, label %524 - -518: ; preds = %JS_FreeValueRT.exit44 - %519 = load i32, ptr %1, align 8 - %.not14.i = icmp eq i32 %519, 0 - br i1 %.not14.i, label %524, label %520 - -520: ; preds = %518 - %521 = getelementptr inbounds i8, ptr %0, i64 152 - %522 = load ptr, ptr %521, align 8 - %523 = getelementptr inbounds i8, ptr %522, i64 8 - store ptr %510, ptr %523, align 8 - store ptr %522, ptr %510, align 8 - store ptr %521, ptr %512, align 8 - store ptr %510, ptr %521, align 8 + %512 = getelementptr inbounds i8, ptr %509, i64 8 + store ptr %511, ptr %512, align 8 + store ptr %509, ptr %511, align 8 + tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %508, i8 0, i64 16, i1 false) + %513 = getelementptr inbounds i8, ptr %0, i64 184 + %514 = load i8, ptr %513, align 8 + %515 = icmp eq i8 %514, 2 + br i1 %515, label %516, label %522 + +516: ; preds = %JS_FreeValueRT.exit44 + %517 = load i32, ptr %1, align 8 + %.not14.i = icmp eq i32 %517, 0 + br i1 %.not14.i, label %522, label %518 + +518: ; preds = %516 + %519 = getelementptr inbounds i8, ptr %0, i64 152 + %520 = load ptr, ptr %519, align 8 + %521 = getelementptr inbounds i8, ptr %520, i64 8 + store ptr %508, ptr %521, align 8 + store ptr %520, ptr %508, align 8 + store ptr %519, ptr %510, align 8 + store ptr %508, ptr %519, align 8 br label %free_object.exit -524: ; preds = %518, %JS_FreeValueRT.exit44 - %525 = getelementptr inbounds i8, ptr %0, i64 8 - %526 = load ptr, ptr %525, align 8 - %527 = getelementptr inbounds i8, ptr %0, i64 32 - tail call void %526(ptr noundef nonnull %527, ptr noundef nonnull %1) #42 +522: ; preds = %516, %JS_FreeValueRT.exit44 + %523 = getelementptr inbounds i8, ptr %0, i64 8 + %524 = load ptr, ptr %523, align 8 + %525 = getelementptr inbounds i8, ptr %0, i64 32 + tail call void %524(ptr noundef nonnull %525, ptr noundef nonnull %1) #42 br label %free_object.exit -528: ; preds = %2 +526: ; preds = %2 tail call void @abort() #44 unreachable -free_object.exit: ; preds = %524, %520, %477, %473, %86, %82 +free_object.exit: ; preds = %522, %518, %475, %471, %86, %82 ret void } @@ -97725,7 +97723,7 @@ bc_put_leb128.exit127: ; preds = %.lr.ph.i.i123, %bc_ %98 = getelementptr inbounds i8, ptr %.sroa.0.0..sroa.0.0..cast, i64 48 %99 = load ptr, ptr %98, align 8 %.not = icmp eq ptr %99, null - br i1 %.not, label %167, label %100 + br i1 %.not, label %165, label %100 100: ; preds = %bc_put_leb128.exit127 %101 = load i16, ptr %38, align 8 @@ -97750,412 +97748,410 @@ bc_put_leb128.exit133: ; preds = %.lr.ph.i.i129, %100 %110 = trunc i32 %.0.lcssa.i.i132 to i8 %111 = call i32 @dbuf_putc(ptr noundef nonnull %9, i8 noundef zeroext %110) #42 %112 = load i16, ptr %38, align 8 - %113 = zext i16 %112 to i32 - %114 = load i16, ptr %47, align 2 - %115 = zext i16 %114 to i32 - %116 = sub nsw i32 0, %113 - %.not294 = icmp eq i32 %115, %116 + %113 = load i16, ptr %47, align 2 + %114 = or i16 %113, %112 + %.not294 = icmp eq i16 %114, 0 br i1 %.not294, label %.loopexit269, label %.lr.ph .lr.ph: ; preds = %bc_put_leb128.exit133, %bc_put_leb128.exit156 %indvars.iv = phi i64 [ %indvars.iv.next, %bc_put_leb128.exit156 ], [ 0, %bc_put_leb128.exit133 ] - %117 = load ptr, ptr %98, align 8 - %118 = getelementptr %struct.JSVarDef, ptr %117, i64 %indvars.iv - %119 = load i32, ptr %118, align 4 + %115 = load ptr, ptr %98, align 8 + %116 = getelementptr %struct.JSVarDef, ptr %115, i64 %indvars.iv + %117 = load i32, ptr %116, align 4 call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %6) - %.not.i134 = icmp sgt i32 %119, -1 - br i1 %.not.i134, label %123, label %120 + %.not.i134 = icmp sgt i32 %117, -1 + br i1 %.not.i134, label %121, label %118 -120: ; preds = %.lr.ph - %121 = shl i32 %119, 1 - %122 = or disjoint i32 %121, 1 - br label %128 +118: ; preds = %.lr.ph + %119 = shl i32 %117, 1 + %120 = or disjoint i32 %119, 1 + br label %126 -123: ; preds = %.lr.ph - %124 = call fastcc i32 @bc_atom_to_idx(ptr noundef %0, ptr noundef nonnull %6, i32 noundef %119), !range !12 - %.not5.i143 = icmp eq i32 %124, 0 - br i1 %.not5.i143, label %125, label %bc_put_atom.exit144 +121: ; preds = %.lr.ph + %122 = call fastcc i32 @bc_atom_to_idx(ptr noundef %0, ptr noundef nonnull %6, i32 noundef %117), !range !12 + %.not5.i143 = icmp eq i32 %122, 0 + br i1 %.not5.i143, label %123, label %bc_put_atom.exit144 -125: ; preds = %123 - %126 = load i32, ptr %6, align 4 - %127 = shl i32 %126, 1 - br label %128 +123: ; preds = %121 + %124 = load i32, ptr %6, align 4 + %125 = shl i32 %124, 1 + br label %126 -128: ; preds = %125, %120 - %storemerge.i135 = phi i32 [ %127, %125 ], [ %122, %120 ] +126: ; preds = %123, %118 + %storemerge.i135 = phi i32 [ %125, %123 ], [ %120, %118 ] %.not7.i.i.i136 = icmp ult i32 %storemerge.i135, 128 br i1 %.not7.i.i.i136, label %bc_put_leb128.exit.i140, label %.lr.ph.i.i.i137 -.lr.ph.i.i.i137: ; preds = %128, %.lr.ph.i.i.i137 - %.08.i.i.i138 = phi i32 [ %129, %.lr.ph.i.i.i137 ], [ %storemerge.i135, %128 ] - %129 = lshr i32 %.08.i.i.i138, 7 - %130 = trunc i32 %.08.i.i.i138 to i8 - %131 = or i8 %130, -128 - %132 = call i32 @dbuf_putc(ptr noundef nonnull %9, i8 noundef zeroext %131) #42 +.lr.ph.i.i.i137: ; preds = %126, %.lr.ph.i.i.i137 + %.08.i.i.i138 = phi i32 [ %127, %.lr.ph.i.i.i137 ], [ %storemerge.i135, %126 ] + %127 = lshr i32 %.08.i.i.i138, 7 + %128 = trunc i32 %.08.i.i.i138 to i8 + %129 = or i8 %128, -128 + %130 = call i32 @dbuf_putc(ptr noundef nonnull %9, i8 noundef zeroext %129) #42 %.not.i.i.i139 = icmp ult i32 %.08.i.i.i138, 16384 br i1 %.not.i.i.i139, label %bc_put_leb128.exit.i140, label %.lr.ph.i.i.i137 -bc_put_leb128.exit.i140: ; preds = %.lr.ph.i.i.i137, %128 - %.0.lcssa.i.i.i141 = phi i32 [ %storemerge.i135, %128 ], [ %129, %.lr.ph.i.i.i137 ] - %133 = trunc i32 %.0.lcssa.i.i.i141 to i8 - %134 = call i32 @dbuf_putc(ptr noundef nonnull %9, i8 noundef zeroext %133) #42 +bc_put_leb128.exit.i140: ; preds = %.lr.ph.i.i.i137, %126 + %.0.lcssa.i.i.i141 = phi i32 [ %storemerge.i135, %126 ], [ %127, %.lr.ph.i.i.i137 ] + %131 = trunc i32 %.0.lcssa.i.i.i141 to i8 + %132 = call i32 @dbuf_putc(ptr noundef nonnull %9, i8 noundef zeroext %131) #42 br label %bc_put_atom.exit144 -bc_put_atom.exit144: ; preds = %123, %bc_put_leb128.exit.i140 +bc_put_atom.exit144: ; preds = %121, %bc_put_leb128.exit.i140 call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %6) - %135 = getelementptr inbounds i8, ptr %118, i64 4 - %136 = load i32, ptr %135, align 4 - %.not7.i.i145 = icmp ult i32 %136, 128 + %133 = getelementptr inbounds i8, ptr %116, i64 4 + %134 = load i32, ptr %133, align 4 + %.not7.i.i145 = icmp ult i32 %134, 128 br i1 %.not7.i.i145, label %bc_put_leb128.exit150, label %.lr.ph.i.i146 .lr.ph.i.i146: ; preds = %bc_put_atom.exit144, %.lr.ph.i.i146 - %.08.i.i147 = phi i32 [ %137, %.lr.ph.i.i146 ], [ %136, %bc_put_atom.exit144 ] - %137 = lshr i32 %.08.i.i147, 7 - %138 = trunc i32 %.08.i.i147 to i8 - %139 = or i8 %138, -128 - %140 = call i32 @dbuf_putc(ptr noundef nonnull %9, i8 noundef zeroext %139) #42 + %.08.i.i147 = phi i32 [ %135, %.lr.ph.i.i146 ], [ %134, %bc_put_atom.exit144 ] + %135 = lshr i32 %.08.i.i147, 7 + %136 = trunc i32 %.08.i.i147 to i8 + %137 = or i8 %136, -128 + %138 = call i32 @dbuf_putc(ptr noundef nonnull %9, i8 noundef zeroext %137) #42 %.not.i.i148 = icmp ult i32 %.08.i.i147, 16384 br i1 %.not.i.i148, label %bc_put_leb128.exit150, label %.lr.ph.i.i146 bc_put_leb128.exit150: ; preds = %.lr.ph.i.i146, %bc_put_atom.exit144 - %.0.lcssa.i.i149 = phi i32 [ %136, %bc_put_atom.exit144 ], [ %137, %.lr.ph.i.i146 ] - %141 = trunc i32 %.0.lcssa.i.i149 to i8 - %142 = call i32 @dbuf_putc(ptr noundef nonnull %9, i8 noundef zeroext %141) #42 - %143 = getelementptr inbounds i8, ptr %118, i64 8 - %144 = load i32, ptr %143, align 4 - %145 = add i32 %144, 1 - %.not7.i.i151 = icmp ult i32 %145, 128 + %.0.lcssa.i.i149 = phi i32 [ %134, %bc_put_atom.exit144 ], [ %135, %.lr.ph.i.i146 ] + %139 = trunc i32 %.0.lcssa.i.i149 to i8 + %140 = call i32 @dbuf_putc(ptr noundef nonnull %9, i8 noundef zeroext %139) #42 + %141 = getelementptr inbounds i8, ptr %116, i64 8 + %142 = load i32, ptr %141, align 4 + %143 = add i32 %142, 1 + %.not7.i.i151 = icmp ult i32 %143, 128 br i1 %.not7.i.i151, label %bc_put_leb128.exit156, label %.lr.ph.i.i152 .lr.ph.i.i152: ; preds = %bc_put_leb128.exit150, %.lr.ph.i.i152 - %.08.i.i153 = phi i32 [ %146, %.lr.ph.i.i152 ], [ %145, %bc_put_leb128.exit150 ] - %146 = lshr i32 %.08.i.i153, 7 - %147 = trunc i32 %.08.i.i153 to i8 - %148 = or i8 %147, -128 - %149 = call i32 @dbuf_putc(ptr noundef nonnull %9, i8 noundef zeroext %148) #42 + %.08.i.i153 = phi i32 [ %144, %.lr.ph.i.i152 ], [ %143, %bc_put_leb128.exit150 ] + %144 = lshr i32 %.08.i.i153, 7 + %145 = trunc i32 %.08.i.i153 to i8 + %146 = or i8 %145, -128 + %147 = call i32 @dbuf_putc(ptr noundef nonnull %9, i8 noundef zeroext %146) #42 %.not.i.i154 = icmp ult i32 %.08.i.i153, 16384 br i1 %.not.i.i154, label %bc_put_leb128.exit156, label %.lr.ph.i.i152 bc_put_leb128.exit156: ; preds = %.lr.ph.i.i152, %bc_put_leb128.exit150 - %.0.lcssa.i.i155 = phi i32 [ %145, %bc_put_leb128.exit150 ], [ %146, %.lr.ph.i.i152 ] - %150 = trunc i32 %.0.lcssa.i.i155 to i8 - %151 = call i32 @dbuf_putc(ptr noundef nonnull %9, i8 noundef zeroext %150) #42 - %152 = getelementptr inbounds i8, ptr %118, i64 12 - %153 = load i32, ptr %152, align 4 - %154 = lshr i32 %153, 4 - %155 = and i32 %154, 15 - %156 = shl i32 %153, 4 - %157 = and i32 %156, 112 - %158 = or disjoint i32 %157, %155 - %159 = trunc i32 %158 to i8 - %160 = call i32 @dbuf_putc(ptr noundef nonnull %9, i8 noundef zeroext %159) #42 + %.0.lcssa.i.i155 = phi i32 [ %143, %bc_put_leb128.exit150 ], [ %144, %.lr.ph.i.i152 ] + %148 = trunc i32 %.0.lcssa.i.i155 to i8 + %149 = call i32 @dbuf_putc(ptr noundef nonnull %9, i8 noundef zeroext %148) #42 + %150 = getelementptr inbounds i8, ptr %116, i64 12 + %151 = load i32, ptr %150, align 4 + %152 = lshr i32 %151, 4 + %153 = and i32 %152, 15 + %154 = shl i32 %151, 4 + %155 = and i32 %154, 112 + %156 = or disjoint i32 %155, %153 + %157 = trunc i32 %156 to i8 + %158 = call i32 @dbuf_putc(ptr noundef nonnull %9, i8 noundef zeroext %157) #42 %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 - %161 = load i16, ptr %38, align 8 + %159 = load i16, ptr %38, align 8 + %160 = zext i16 %159 to i64 + %161 = load i16, ptr %47, align 2 %162 = zext i16 %161 to i64 - %163 = load i16, ptr %47, align 2 - %164 = zext i16 %163 to i64 - %165 = add nuw nsw i64 %164, %162 - %166 = icmp ult i64 %indvars.iv.next, %165 - br i1 %166, label %.lr.ph, label %.loopexit269, !llvm.loop !297 - -167: ; preds = %bc_put_leb128.exit127 - %168 = call i32 @dbuf_putc(ptr noundef nonnull %9, i8 noundef zeroext 0) #42 + %163 = add nuw nsw i64 %162, %160 + %164 = icmp ult i64 %indvars.iv.next, %163 + br i1 %164, label %.lr.ph, label %.loopexit269, !llvm.loop !297 + +165: ; preds = %bc_put_leb128.exit127 + %166 = call i32 @dbuf_putc(ptr noundef nonnull %9, i8 noundef zeroext 0) #42 br label %.loopexit269 -.loopexit269: ; preds = %bc_put_leb128.exit156, %bc_put_leb128.exit133, %167 - %169 = load i32, ptr %74, align 4 - %170 = icmp sgt i32 %169, 0 - br i1 %170, label %.lr.ph288, label %._crit_edge +.loopexit269: ; preds = %bc_put_leb128.exit156, %bc_put_leb128.exit133, %165 + %167 = load i32, ptr %74, align 4 + %168 = icmp sgt i32 %167, 0 + br i1 %168, label %.lr.ph288, label %._crit_edge .lr.ph288: ; preds = %.loopexit269 - %171 = getelementptr inbounds i8, ptr %.sroa.0.0..sroa.0.0..cast, i64 56 - br label %172 + %169 = getelementptr inbounds i8, ptr %.sroa.0.0..sroa.0.0..cast, i64 56 + br label %170 -172: ; preds = %.lr.ph288, %bc_put_leb128.exit174 +170: ; preds = %.lr.ph288, %bc_put_leb128.exit174 %indvars.iv312 = phi i64 [ 0, %.lr.ph288 ], [ %indvars.iv.next313, %bc_put_leb128.exit174 ] - %173 = load ptr, ptr %171, align 8 - %174 = getelementptr %struct.JSClosureVar, ptr %173, i64 %indvars.iv312 - %175 = getelementptr inbounds i8, ptr %174, i64 4 - %176 = load i32, ptr %175, align 4 + %171 = load ptr, ptr %169, align 8 + %172 = getelementptr %struct.JSClosureVar, ptr %171, i64 %indvars.iv312 + %173 = getelementptr inbounds i8, ptr %172, i64 4 + %174 = load i32, ptr %173, align 4 call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %5) - %.not.i158 = icmp sgt i32 %176, -1 - br i1 %.not.i158, label %180, label %177 + %.not.i158 = icmp sgt i32 %174, -1 + br i1 %.not.i158, label %178, label %175 -177: ; preds = %172 - %178 = shl i32 %176, 1 - %179 = or disjoint i32 %178, 1 - br label %185 +175: ; preds = %170 + %176 = shl i32 %174, 1 + %177 = or disjoint i32 %176, 1 + br label %183 -180: ; preds = %172 - %181 = call fastcc i32 @bc_atom_to_idx(ptr noundef %0, ptr noundef nonnull %5, i32 noundef %176), !range !12 - %.not5.i167 = icmp eq i32 %181, 0 - br i1 %.not5.i167, label %182, label %bc_put_atom.exit168 +178: ; preds = %170 + %179 = call fastcc i32 @bc_atom_to_idx(ptr noundef %0, ptr noundef nonnull %5, i32 noundef %174), !range !12 + %.not5.i167 = icmp eq i32 %179, 0 + br i1 %.not5.i167, label %180, label %bc_put_atom.exit168 -182: ; preds = %180 - %183 = load i32, ptr %5, align 4 - %184 = shl i32 %183, 1 - br label %185 +180: ; preds = %178 + %181 = load i32, ptr %5, align 4 + %182 = shl i32 %181, 1 + br label %183 -185: ; preds = %182, %177 - %storemerge.i159 = phi i32 [ %184, %182 ], [ %179, %177 ] +183: ; preds = %180, %175 + %storemerge.i159 = phi i32 [ %182, %180 ], [ %177, %175 ] %.not7.i.i.i160 = icmp ult i32 %storemerge.i159, 128 br i1 %.not7.i.i.i160, label %bc_put_leb128.exit.i164, label %.lr.ph.i.i.i161 -.lr.ph.i.i.i161: ; preds = %185, %.lr.ph.i.i.i161 - %.08.i.i.i162 = phi i32 [ %186, %.lr.ph.i.i.i161 ], [ %storemerge.i159, %185 ] - %186 = lshr i32 %.08.i.i.i162, 7 - %187 = trunc i32 %.08.i.i.i162 to i8 - %188 = or i8 %187, -128 - %189 = call i32 @dbuf_putc(ptr noundef nonnull %9, i8 noundef zeroext %188) #42 +.lr.ph.i.i.i161: ; preds = %183, %.lr.ph.i.i.i161 + %.08.i.i.i162 = phi i32 [ %184, %.lr.ph.i.i.i161 ], [ %storemerge.i159, %183 ] + %184 = lshr i32 %.08.i.i.i162, 7 + %185 = trunc i32 %.08.i.i.i162 to i8 + %186 = or i8 %185, -128 + %187 = call i32 @dbuf_putc(ptr noundef nonnull %9, i8 noundef zeroext %186) #42 %.not.i.i.i163 = icmp ult i32 %.08.i.i.i162, 16384 br i1 %.not.i.i.i163, label %bc_put_leb128.exit.i164, label %.lr.ph.i.i.i161 -bc_put_leb128.exit.i164: ; preds = %.lr.ph.i.i.i161, %185 - %.0.lcssa.i.i.i165 = phi i32 [ %storemerge.i159, %185 ], [ %186, %.lr.ph.i.i.i161 ] - %190 = trunc i32 %.0.lcssa.i.i.i165 to i8 - %191 = call i32 @dbuf_putc(ptr noundef nonnull %9, i8 noundef zeroext %190) #42 +bc_put_leb128.exit.i164: ; preds = %.lr.ph.i.i.i161, %183 + %.0.lcssa.i.i.i165 = phi i32 [ %storemerge.i159, %183 ], [ %184, %.lr.ph.i.i.i161 ] + %188 = trunc i32 %.0.lcssa.i.i.i165 to i8 + %189 = call i32 @dbuf_putc(ptr noundef nonnull %9, i8 noundef zeroext %188) #42 br label %bc_put_atom.exit168 -bc_put_atom.exit168: ; preds = %180, %bc_put_leb128.exit.i164 +bc_put_atom.exit168: ; preds = %178, %bc_put_leb128.exit.i164 call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %5) - %192 = getelementptr inbounds i8, ptr %174, i64 2 - %193 = load i16, ptr %192, align 2 - %194 = zext i16 %193 to i32 - %.not7.i.i169 = icmp ult i16 %193, 128 + %190 = getelementptr inbounds i8, ptr %172, i64 2 + %191 = load i16, ptr %190, align 2 + %192 = zext i16 %191 to i32 + %.not7.i.i169 = icmp ult i16 %191, 128 br i1 %.not7.i.i169, label %bc_put_leb128.exit174, label %.lr.ph.i.i170 .lr.ph.i.i170: ; preds = %bc_put_atom.exit168, %.lr.ph.i.i170 - %.08.i.i171 = phi i32 [ %195, %.lr.ph.i.i170 ], [ %194, %bc_put_atom.exit168 ] - %195 = lshr i32 %.08.i.i171, 7 - %196 = trunc i32 %.08.i.i171 to i8 - %197 = or i8 %196, -128 - %198 = call i32 @dbuf_putc(ptr noundef nonnull %9, i8 noundef zeroext %197) #42 + %.08.i.i171 = phi i32 [ %193, %.lr.ph.i.i170 ], [ %192, %bc_put_atom.exit168 ] + %193 = lshr i32 %.08.i.i171, 7 + %194 = trunc i32 %.08.i.i171 to i8 + %195 = or i8 %194, -128 + %196 = call i32 @dbuf_putc(ptr noundef nonnull %9, i8 noundef zeroext %195) #42 %.not.i.i172 = icmp ult i32 %.08.i.i171, 16384 br i1 %.not.i.i172, label %bc_put_leb128.exit174, label %.lr.ph.i.i170 bc_put_leb128.exit174: ; preds = %.lr.ph.i.i170, %bc_put_atom.exit168 - %.0.lcssa.i.i173 = phi i32 [ %194, %bc_put_atom.exit168 ], [ %195, %.lr.ph.i.i170 ] - %199 = trunc i32 %.0.lcssa.i.i173 to i8 + %.0.lcssa.i.i173 = phi i32 [ %192, %bc_put_atom.exit168 ], [ %193, %.lr.ph.i.i170 ] + %197 = trunc i32 %.0.lcssa.i.i173 to i8 + %198 = call i32 @dbuf_putc(ptr noundef nonnull %9, i8 noundef zeroext %197) #42 + %199 = load i8, ptr %172, align 4 %200 = call i32 @dbuf_putc(ptr noundef nonnull %9, i8 noundef zeroext %199) #42 - %201 = load i8, ptr %174, align 4 - %202 = call i32 @dbuf_putc(ptr noundef nonnull %9, i8 noundef zeroext %201) #42 %indvars.iv.next313 = add nuw nsw i64 %indvars.iv312, 1 - %203 = load i32, ptr %74, align 4 - %204 = sext i32 %203 to i64 - %205 = icmp slt i64 %indvars.iv.next313, %204 - br i1 %205, label %172, label %._crit_edge, !llvm.loop !298 + %201 = load i32, ptr %74, align 4 + %202 = sext i32 %201 to i64 + %203 = icmp slt i64 %indvars.iv.next313, %202 + br i1 %203, label %170, label %._crit_edge, !llvm.loop !298 ._crit_edge: ; preds = %bc_put_leb128.exit174, %.loopexit269 - %206 = getelementptr inbounds i8, ptr %.sroa.0.0..sroa.0.0..cast, i64 32 - %207 = load ptr, ptr %206, align 8 - %208 = load i32, ptr %90, align 8 + %204 = getelementptr inbounds i8, ptr %.sroa.0.0..sroa.0.0..cast, i64 32 + %205 = load ptr, ptr %204, align 8 + %206 = load i32, ptr %90, align 8 call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %4) - %209 = load ptr, ptr %0, align 8 - %210 = sext i32 %208 to i64 - %211 = getelementptr inbounds i8, ptr %209, i64 24 - %212 = load ptr, ptr %211, align 8 - %213 = load ptr, ptr %212, align 8 - %214 = getelementptr inbounds i8, ptr %212, i64 32 - %215 = call ptr %213(ptr noundef nonnull %214, i64 noundef %210) #42 - %.not.i.i175 = icmp eq ptr %215, null - br i1 %.not.i.i175, label %216, label %js_malloc.exit.i - -216: ; preds = %._crit_edge - %217 = load ptr, ptr %211, align 8 - %218 = getelementptr inbounds i8, ptr %217, i64 240 - %219 = load i8, ptr %218, align 8 - %.not.i.i.i177 = icmp eq i8 %219, 0 - br i1 %.not.i.i.i177, label %220, label %JS_WriteFunctionBytecode.exit.thread - -220: ; preds = %216 - store i8 1, ptr %218, align 8 - %221 = call { i64, i64 } (ptr, ptr, ...) @JS_ThrowInternalError(ptr noundef nonnull %209, ptr noundef nonnull @.str.45) - store i8 0, ptr %218, align 8 + %207 = load ptr, ptr %0, align 8 + %208 = sext i32 %206 to i64 + %209 = getelementptr inbounds i8, ptr %207, i64 24 + %210 = load ptr, ptr %209, align 8 + %211 = load ptr, ptr %210, align 8 + %212 = getelementptr inbounds i8, ptr %210, i64 32 + %213 = call ptr %211(ptr noundef nonnull %212, i64 noundef %208) #42 + %.not.i.i175 = icmp eq ptr %213, null + br i1 %.not.i.i175, label %214, label %js_malloc.exit.i + +214: ; preds = %._crit_edge + %215 = load ptr, ptr %209, align 8 + %216 = getelementptr inbounds i8, ptr %215, i64 240 + %217 = load i8, ptr %216, align 8 + %.not.i.i.i177 = icmp eq i8 %217, 0 + br i1 %.not.i.i.i177, label %218, label %JS_WriteFunctionBytecode.exit.thread + +218: ; preds = %214 + store i8 1, ptr %216, align 8 + %219 = call { i64, i64 } (ptr, ptr, ...) @JS_ThrowInternalError(ptr noundef nonnull %207, ptr noundef nonnull @.str.45) + store i8 0, ptr %216, align 8 br label %JS_WriteFunctionBytecode.exit.thread js_malloc.exit.i: ; preds = %._crit_edge - call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %215, ptr align 1 %207, i64 %210, i1 false) - %222 = icmp sgt i32 %208, 0 - br i1 %222, label %.lr.ph.i, label %.loopexit268 - -.lr.ph.i: ; preds = %js_malloc.exit.i, %241 - %.03337.i = phi i32 [ %242, %241 ], [ 0, %js_malloc.exit.i ] - %223 = sext i32 %.03337.i to i64 - %224 = getelementptr i8, ptr %215, i64 %223 - %225 = load i8, ptr %224, align 1 - %226 = zext i8 %225 to i32 - %227 = icmp ugt i8 %225, -75 - %228 = add nuw nsw i32 %226, 19 - %229 = select i1 %227, i32 %228, i32 %226 - %230 = zext nneg i32 %229 to i64 - %231 = getelementptr [267 x %struct.JSOpCode], ptr @opcode_info, i64 0, i64 %230 - %232 = load i8, ptr %231, align 4 - %233 = zext i8 %232 to i32 - %234 = getelementptr inbounds i8, ptr %231, i64 3 - %235 = load i8, ptr %234, align 1 - %.off.i = add i8 %235, -23 + call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %213, ptr align 1 %205, i64 %208, i1 false) + %220 = icmp sgt i32 %206, 0 + br i1 %220, label %.lr.ph.i, label %.loopexit268 + +.lr.ph.i: ; preds = %js_malloc.exit.i, %239 + %.03337.i = phi i32 [ %240, %239 ], [ 0, %js_malloc.exit.i ] + %221 = sext i32 %.03337.i to i64 + %222 = getelementptr i8, ptr %213, i64 %221 + %223 = load i8, ptr %222, align 1 + %224 = zext i8 %223 to i32 + %225 = icmp ugt i8 %223, -75 + %226 = add nuw nsw i32 %224, 19 + %227 = select i1 %225, i32 %226, i32 %224 + %228 = zext nneg i32 %227 to i64 + %229 = getelementptr [267 x %struct.JSOpCode], ptr @opcode_info, i64 0, i64 %228 + %230 = load i8, ptr %229, align 4 + %231 = zext i8 %230 to i32 + %232 = getelementptr inbounds i8, ptr %229, i64 3 + %233 = load i8, ptr %232, align 1 + %.off.i = add i8 %233, -23 %switch.i = icmp ult i8 %.off.i, 5 - br i1 %switch.i, label %236, label %241 + br i1 %switch.i, label %234, label %239 -236: ; preds = %.lr.ph.i - %237 = getelementptr i8, ptr %224, i64 1 - %.val.i = load i32, ptr %237, align 1 - %238 = call fastcc i32 @bc_atom_to_idx(ptr noundef nonnull %0, ptr noundef nonnull %4, i32 noundef %.val.i), !range !12 - %.not36.i = icmp eq i32 %238, 0 - br i1 %.not36.i, label %239, label %244 +234: ; preds = %.lr.ph.i + %235 = getelementptr i8, ptr %222, i64 1 + %.val.i = load i32, ptr %235, align 1 + %236 = call fastcc i32 @bc_atom_to_idx(ptr noundef nonnull %0, ptr noundef nonnull %4, i32 noundef %.val.i), !range !12 + %.not36.i = icmp eq i32 %236, 0 + br i1 %.not36.i, label %237, label %242 -239: ; preds = %236 - %240 = load i32, ptr %4, align 4 - store i32 %240, ptr %237, align 1 - br label %241 +237: ; preds = %234 + %238 = load i32, ptr %4, align 4 + store i32 %238, ptr %235, align 1 + br label %239 -241: ; preds = %239, %.lr.ph.i - %242 = add i32 %.03337.i, %233 - %243 = icmp slt i32 %242, %208 - br i1 %243, label %.lr.ph.i, label %.loopexit268, !llvm.loop !299 +239: ; preds = %237, %.lr.ph.i + %240 = add i32 %.03337.i, %231 + %241 = icmp slt i32 %240, %206 + br i1 %241, label %.lr.ph.i, label %.loopexit268, !llvm.loop !299 -244: ; preds = %236 - %245 = load ptr, ptr %0, align 8 - %246 = getelementptr inbounds i8, ptr %245, i64 24 +242: ; preds = %234 + %243 = load ptr, ptr %0, align 8 + %244 = getelementptr inbounds i8, ptr %243, i64 24 + %245 = load ptr, ptr %244, align 8 + %246 = getelementptr inbounds i8, ptr %245, i64 8 %247 = load ptr, ptr %246, align 8 - %248 = getelementptr inbounds i8, ptr %247, i64 8 - %249 = load ptr, ptr %248, align 8 - %250 = getelementptr inbounds i8, ptr %247, i64 32 - call void %249(ptr noundef nonnull %250, ptr noundef nonnull %215) #42 + %248 = getelementptr inbounds i8, ptr %245, i64 32 + call void %247(ptr noundef nonnull %248, ptr noundef nonnull %213) #42 br label %JS_WriteFunctionBytecode.exit.thread -JS_WriteFunctionBytecode.exit.thread: ; preds = %244, %216, %220 +JS_WriteFunctionBytecode.exit.thread: ; preds = %242, %214, %218 call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %4) br label %.loopexit -.loopexit268: ; preds = %241, %js_malloc.exit.i - %251 = call i32 @dbuf_put(ptr noundef nonnull %9, ptr noundef nonnull %215, i64 noundef %210) #42 - %252 = load ptr, ptr %0, align 8 - %253 = getelementptr inbounds i8, ptr %252, i64 24 +.loopexit268: ; preds = %239, %js_malloc.exit.i + %249 = call i32 @dbuf_put(ptr noundef nonnull %9, ptr noundef nonnull %213, i64 noundef %208) #42 + %250 = load ptr, ptr %0, align 8 + %251 = getelementptr inbounds i8, ptr %250, i64 24 + %252 = load ptr, ptr %251, align 8 + %253 = getelementptr inbounds i8, ptr %252, i64 8 %254 = load ptr, ptr %253, align 8 - %255 = getelementptr inbounds i8, ptr %254, i64 8 - %256 = load ptr, ptr %255, align 8 - %257 = getelementptr inbounds i8, ptr %254, i64 32 - call void %256(ptr noundef nonnull %257, ptr noundef nonnull %215) #42 + %255 = getelementptr inbounds i8, ptr %252, i64 32 + call void %254(ptr noundef nonnull %255, ptr noundef nonnull %213) #42 call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %4) - %258 = load i16, ptr %11, align 1 - %259 = and i16 %258, 1024 - %.not90 = icmp eq i16 %259, 0 - br i1 %.not90, label %299, label %260 - -260: ; preds = %.loopexit268 - %261 = getelementptr inbounds i8, ptr %.sroa.0.0..sroa.0.0..cast, i64 96 - %262 = load i32, ptr %261, align 8 - call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %3) - %.not.i178 = icmp sgt i32 %262, -1 - br i1 %.not.i178, label %266, label %263 - -263: ; preds = %260 - %264 = shl i32 %262, 1 - %265 = or disjoint i32 %264, 1 - br label %271 - -266: ; preds = %260 - %267 = call fastcc i32 @bc_atom_to_idx(ptr noundef nonnull %0, ptr noundef nonnull %3, i32 noundef %262), !range !12 - %.not5.i187 = icmp eq i32 %267, 0 - br i1 %.not5.i187, label %268, label %bc_put_atom.exit188 + %256 = load i16, ptr %11, align 1 + %257 = and i16 %256, 1024 + %.not90 = icmp eq i16 %257, 0 + br i1 %.not90, label %297, label %258 -268: ; preds = %266 - %269 = load i32, ptr %3, align 4 - %270 = shl i32 %269, 1 - br label %271 - -271: ; preds = %268, %263 - %storemerge.i179 = phi i32 [ %270, %268 ], [ %265, %263 ] +258: ; preds = %.loopexit268 + %259 = getelementptr inbounds i8, ptr %.sroa.0.0..sroa.0.0..cast, i64 96 + %260 = load i32, ptr %259, align 8 + call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %3) + %.not.i178 = icmp sgt i32 %260, -1 + br i1 %.not.i178, label %264, label %261 + +261: ; preds = %258 + %262 = shl i32 %260, 1 + %263 = or disjoint i32 %262, 1 + br label %269 + +264: ; preds = %258 + %265 = call fastcc i32 @bc_atom_to_idx(ptr noundef nonnull %0, ptr noundef nonnull %3, i32 noundef %260), !range !12 + %.not5.i187 = icmp eq i32 %265, 0 + br i1 %.not5.i187, label %266, label %bc_put_atom.exit188 + +266: ; preds = %264 + %267 = load i32, ptr %3, align 4 + %268 = shl i32 %267, 1 + br label %269 + +269: ; preds = %266, %261 + %storemerge.i179 = phi i32 [ %268, %266 ], [ %263, %261 ] %.not7.i.i.i180 = icmp ult i32 %storemerge.i179, 128 br i1 %.not7.i.i.i180, label %bc_put_leb128.exit.i184, label %.lr.ph.i.i.i181 -.lr.ph.i.i.i181: ; preds = %271, %.lr.ph.i.i.i181 - %.08.i.i.i182 = phi i32 [ %272, %.lr.ph.i.i.i181 ], [ %storemerge.i179, %271 ] - %272 = lshr i32 %.08.i.i.i182, 7 - %273 = trunc i32 %.08.i.i.i182 to i8 - %274 = or i8 %273, -128 - %275 = call i32 @dbuf_putc(ptr noundef nonnull %9, i8 noundef zeroext %274) #42 +.lr.ph.i.i.i181: ; preds = %269, %.lr.ph.i.i.i181 + %.08.i.i.i182 = phi i32 [ %270, %.lr.ph.i.i.i181 ], [ %storemerge.i179, %269 ] + %270 = lshr i32 %.08.i.i.i182, 7 + %271 = trunc i32 %.08.i.i.i182 to i8 + %272 = or i8 %271, -128 + %273 = call i32 @dbuf_putc(ptr noundef nonnull %9, i8 noundef zeroext %272) #42 %.not.i.i.i183 = icmp ult i32 %.08.i.i.i182, 16384 br i1 %.not.i.i.i183, label %bc_put_leb128.exit.i184, label %.lr.ph.i.i.i181 -bc_put_leb128.exit.i184: ; preds = %.lr.ph.i.i.i181, %271 - %.0.lcssa.i.i.i185 = phi i32 [ %storemerge.i179, %271 ], [ %272, %.lr.ph.i.i.i181 ] - %276 = trunc i32 %.0.lcssa.i.i.i185 to i8 - %277 = call i32 @dbuf_putc(ptr noundef nonnull %9, i8 noundef zeroext %276) #42 +bc_put_leb128.exit.i184: ; preds = %.lr.ph.i.i.i181, %269 + %.0.lcssa.i.i.i185 = phi i32 [ %storemerge.i179, %269 ], [ %270, %.lr.ph.i.i.i181 ] + %274 = trunc i32 %.0.lcssa.i.i.i185 to i8 + %275 = call i32 @dbuf_putc(ptr noundef nonnull %9, i8 noundef zeroext %274) #42 br label %bc_put_atom.exit188 -bc_put_atom.exit188: ; preds = %266, %bc_put_leb128.exit.i184 +bc_put_atom.exit188: ; preds = %264, %bc_put_leb128.exit.i184 call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %3) - %278 = getelementptr inbounds i8, ptr %.sroa.0.0..sroa.0.0..cast, i64 100 - %279 = load i32, ptr %278, align 4 - %.not7.i.i189 = icmp ult i32 %279, 128 + %276 = getelementptr inbounds i8, ptr %.sroa.0.0..sroa.0.0..cast, i64 100 + %277 = load i32, ptr %276, align 4 + %.not7.i.i189 = icmp ult i32 %277, 128 br i1 %.not7.i.i189, label %bc_put_leb128.exit194, label %.lr.ph.i.i190 .lr.ph.i.i190: ; preds = %bc_put_atom.exit188, %.lr.ph.i.i190 - %.08.i.i191 = phi i32 [ %280, %.lr.ph.i.i190 ], [ %279, %bc_put_atom.exit188 ] - %280 = lshr i32 %.08.i.i191, 7 - %281 = trunc i32 %.08.i.i191 to i8 - %282 = or i8 %281, -128 - %283 = call i32 @dbuf_putc(ptr noundef nonnull %9, i8 noundef zeroext %282) #42 + %.08.i.i191 = phi i32 [ %278, %.lr.ph.i.i190 ], [ %277, %bc_put_atom.exit188 ] + %278 = lshr i32 %.08.i.i191, 7 + %279 = trunc i32 %.08.i.i191 to i8 + %280 = or i8 %279, -128 + %281 = call i32 @dbuf_putc(ptr noundef nonnull %9, i8 noundef zeroext %280) #42 %.not.i.i192 = icmp ult i32 %.08.i.i191, 16384 br i1 %.not.i.i192, label %bc_put_leb128.exit194, label %.lr.ph.i.i190 bc_put_leb128.exit194: ; preds = %.lr.ph.i.i190, %bc_put_atom.exit188 - %.0.lcssa.i.i193 = phi i32 [ %279, %bc_put_atom.exit188 ], [ %280, %.lr.ph.i.i190 ] - %284 = trunc i32 %.0.lcssa.i.i193 to i8 - %285 = call i32 @dbuf_putc(ptr noundef nonnull %9, i8 noundef zeroext %284) #42 - %286 = getelementptr inbounds i8, ptr %.sroa.0.0..sroa.0.0..cast, i64 108 - %287 = load i32, ptr %286, align 4 - %.not7.i.i195 = icmp ult i32 %287, 128 + %.0.lcssa.i.i193 = phi i32 [ %277, %bc_put_atom.exit188 ], [ %278, %.lr.ph.i.i190 ] + %282 = trunc i32 %.0.lcssa.i.i193 to i8 + %283 = call i32 @dbuf_putc(ptr noundef nonnull %9, i8 noundef zeroext %282) #42 + %284 = getelementptr inbounds i8, ptr %.sroa.0.0..sroa.0.0..cast, i64 108 + %285 = load i32, ptr %284, align 4 + %.not7.i.i195 = icmp ult i32 %285, 128 br i1 %.not7.i.i195, label %bc_put_leb128.exit200, label %.lr.ph.i.i196 .lr.ph.i.i196: ; preds = %bc_put_leb128.exit194, %.lr.ph.i.i196 - %.08.i.i197 = phi i32 [ %288, %.lr.ph.i.i196 ], [ %287, %bc_put_leb128.exit194 ] - %288 = lshr i32 %.08.i.i197, 7 - %289 = trunc i32 %.08.i.i197 to i8 - %290 = or i8 %289, -128 - %291 = call i32 @dbuf_putc(ptr noundef nonnull %9, i8 noundef zeroext %290) #42 + %.08.i.i197 = phi i32 [ %286, %.lr.ph.i.i196 ], [ %285, %bc_put_leb128.exit194 ] + %286 = lshr i32 %.08.i.i197, 7 + %287 = trunc i32 %.08.i.i197 to i8 + %288 = or i8 %287, -128 + %289 = call i32 @dbuf_putc(ptr noundef nonnull %9, i8 noundef zeroext %288) #42 %.not.i.i198 = icmp ult i32 %.08.i.i197, 16384 br i1 %.not.i.i198, label %bc_put_leb128.exit200, label %.lr.ph.i.i196 bc_put_leb128.exit200: ; preds = %.lr.ph.i.i196, %bc_put_leb128.exit194 - %.0.lcssa.i.i199 = phi i32 [ %287, %bc_put_leb128.exit194 ], [ %288, %.lr.ph.i.i196 ] - %292 = trunc i32 %.0.lcssa.i.i199 to i8 - %293 = call i32 @dbuf_putc(ptr noundef nonnull %9, i8 noundef zeroext %292) #42 - %294 = getelementptr inbounds i8, ptr %.sroa.0.0..sroa.0.0..cast, i64 112 - %295 = load ptr, ptr %294, align 8 - %296 = load i32, ptr %286, align 4 - %297 = sext i32 %296 to i64 - %298 = call i32 @dbuf_put(ptr noundef nonnull %9, ptr noundef %295, i64 noundef %297) #42 - br label %299 - -299: ; preds = %bc_put_leb128.exit200, %.loopexit268 - %300 = getelementptr inbounds i8, ptr %.sroa.0.0..sroa.0.0..cast, i64 80 - %301 = load i32, ptr %82, align 8 - %302 = icmp sgt i32 %301, 0 - br i1 %302, label %.lr.ph291, label %.loopexit - -303: ; preds = %.lr.ph291 + %.0.lcssa.i.i199 = phi i32 [ %285, %bc_put_leb128.exit194 ], [ %286, %.lr.ph.i.i196 ] + %290 = trunc i32 %.0.lcssa.i.i199 to i8 + %291 = call i32 @dbuf_putc(ptr noundef nonnull %9, i8 noundef zeroext %290) #42 + %292 = getelementptr inbounds i8, ptr %.sroa.0.0..sroa.0.0..cast, i64 112 + %293 = load ptr, ptr %292, align 8 + %294 = load i32, ptr %284, align 4 + %295 = sext i32 %294 to i64 + %296 = call i32 @dbuf_put(ptr noundef nonnull %9, ptr noundef %293, i64 noundef %295) #42 + br label %297 + +297: ; preds = %bc_put_leb128.exit200, %.loopexit268 + %298 = getelementptr inbounds i8, ptr %.sroa.0.0..sroa.0.0..cast, i64 80 + %299 = load i32, ptr %82, align 8 + %300 = icmp sgt i32 %299, 0 + br i1 %300, label %.lr.ph291, label %.loopexit + +301: ; preds = %.lr.ph291 %indvars.iv.next316 = add nuw nsw i64 %indvars.iv315, 1 - %304 = load i32, ptr %82, align 8 - %305 = sext i32 %304 to i64 - %306 = icmp slt i64 %indvars.iv.next316, %305 - br i1 %306, label %.lr.ph291, label %.loopexit, !llvm.loop !300 - -.lr.ph291: ; preds = %299, %303 - %indvars.iv315 = phi i64 [ %indvars.iv.next316, %303 ], [ 0, %299 ] - %307 = load ptr, ptr %300, align 8 - %308 = getelementptr %struct.JSValue, ptr %307, i64 %indvars.iv315 + %302 = load i32, ptr %82, align 8 + %303 = sext i32 %302 to i64 + %304 = icmp slt i64 %indvars.iv.next316, %303 + br i1 %304, label %.lr.ph291, label %.loopexit, !llvm.loop !300 + +.lr.ph291: ; preds = %297, %301 + %indvars.iv315 = phi i64 [ %indvars.iv.next316, %301 ], [ 0, %297 ] + %305 = load ptr, ptr %298, align 8 + %306 = getelementptr %struct.JSValue, ptr %305, i64 %indvars.iv315 + %307 = load i64, ptr %306, align 8 + %308 = getelementptr inbounds i8, ptr %306, i64 8 %309 = load i64, ptr %308, align 8 - %310 = getelementptr inbounds i8, ptr %308, i64 8 - %311 = load i64, ptr %310, align 8 - %312 = call fastcc i32 @JS_WriteObjectRec(ptr noundef nonnull %0, i64 %309, i64 %311), !range !12 - %.not91 = icmp eq i32 %312, 0 - br i1 %.not91, label %303, label %.loopexit + %310 = call fastcc i32 @JS_WriteObjectRec(ptr noundef nonnull %0, i64 %307, i64 %309), !range !12 + %.not91 = icmp eq i32 %310, 0 + br i1 %.not91, label %301, label %.loopexit -.loopexit: ; preds = %303, %.lr.ph291, %299, %JS_WriteFunctionBytecode.exit.thread - %.0 = phi i32 [ -1, %JS_WriteFunctionBytecode.exit.thread ], [ 0, %299 ], [ 0, %303 ], [ -1, %.lr.ph291 ] +.loopexit: ; preds = %301, %.lr.ph291, %297, %JS_WriteFunctionBytecode.exit.thread + %.0 = phi i32 [ -1, %JS_WriteFunctionBytecode.exit.thread ], [ 0, %297 ], [ 0, %301 ], [ -1, %.lr.ph291 ] ret i32 %.0 } diff --git a/bench/raylib/optimized/raudio.c.ll b/bench/raylib/optimized/raudio.c.ll index 0bef320100a..149ebf94bfc 100644 --- a/bench/raylib/optimized/raudio.c.ll +++ b/bench/raylib/optimized/raudio.c.ll @@ -3164,99 +3164,100 @@ define hidden noundef i32 @ma_slot_allocator_alloc(ptr noundef %0, ptr noundef w %6 = getelementptr inbounds i8, ptr %0, i64 16 br label %.preheader55 -.preheader55: ; preds = %.preheader56, %54 - %7 = phi i1 [ true, %.preheader56 ], [ false, %54 ] +.preheader55: ; preds = %.preheader56, %56 + %7 = phi i1 [ true, %.preheader56 ], [ false, %56 ] %8 = load i32, ptr %5, align 4 %9 = lshr i32 %8, 5 %10 = and i32 %8, 31 %.not61 = icmp ne i32 %10, 0 - %.neg = sext i1 %.not61 to i32 - %.not65 = icmp eq i32 %9, %.neg + %11 = zext i1 %.not61 to i32 + %12 = or i32 %9, %11 + %.not65 = icmp eq i32 %12, 0 br i1 %.not65, label %._crit_edge, label %.preheader54 -.preheader54: ; preds = %.preheader55, %45 - %indvars.iv = phi i64 [ %indvars.iv.next, %45 ], [ 0, %.preheader55 ] - br label %11 +.preheader54: ; preds = %.preheader55, %47 + %indvars.iv = phi i64 [ %indvars.iv.next, %47 ], [ 0, %.preheader55 ] + br label %13 -11: ; preds = %.preheader54, %ma_ffs_32.exit - %12 = load ptr, ptr %0, align 8 - %13 = getelementptr inbounds %struct.ma_slot_allocator_group, ptr %12, i64 %indvars.iv - %14 = load atomic i32, ptr %13 seq_cst, align 4 - %15 = icmp eq i32 %14, -1 - br i1 %15, label %45, label %.preheader - -.preheader: ; preds = %11, %18 - %.08.i = phi i32 [ %19, %18 ], [ 0, %11 ] - %16 = shl nuw i32 1, %.08.i - %17 = and i32 %16, %14 - %.not.i.not = icmp eq i32 %17, 0 - br i1 %.not.i.not, label %ma_ffs_32.exit, label %18 - -18: ; preds = %.preheader - %19 = add nuw nsw i32 %.08.i, 1 - %exitcond.not.i = icmp eq i32 %19, 32 +13: ; preds = %.preheader54, %ma_ffs_32.exit + %14 = load ptr, ptr %0, align 8 + %15 = getelementptr inbounds %struct.ma_slot_allocator_group, ptr %14, i64 %indvars.iv + %16 = load atomic i32, ptr %15 seq_cst, align 4 + %17 = icmp eq i32 %16, -1 + br i1 %17, label %47, label %.preheader + +.preheader: ; preds = %13, %20 + %.08.i = phi i32 [ %21, %20 ], [ 0, %13 ] + %18 = shl nuw i32 1, %.08.i + %19 = and i32 %18, %16 + %.not.i.not = icmp eq i32 %19, 0 + br i1 %.not.i.not, label %ma_ffs_32.exit, label %20 + +20: ; preds = %.preheader + %21 = add nuw nsw i32 %.08.i, 1 + %exitcond.not.i = icmp eq i32 %21, 32 br i1 %exitcond.not.i, label %ma_ffs_32.exit, label %.preheader -ma_ffs_32.exit: ; preds = %.preheader, %18 - %.0.lcssa.i = phi i32 [ 32, %18 ], [ %.08.i, %.preheader ] - %20 = shl nuw i32 1, %.0.lcssa.i - %21 = or i32 %20, %14 - %22 = load ptr, ptr %0, align 8 - %23 = getelementptr inbounds %struct.ma_slot_allocator_group, ptr %22, i64 %indvars.iv - %24 = cmpxchg volatile ptr %23, i32 %14, i32 %21 seq_cst seq_cst, align 4 - %25 = extractvalue { i32, i1 } %24, 1 - br i1 %25, label %26, label %11 - -26: ; preds = %ma_ffs_32.exit - %27 = trunc i64 %indvars.iv to i32 - %28 = atomicrmw add ptr %6, i32 1 seq_cst, align 8 - %29 = shl i32 %27, 5 - %30 = add i32 %.0.lcssa.i, %29 - %31 = load i32, ptr %5, align 4 - %.not52 = icmp ult i32 %30, %31 - br i1 %.not52, label %32, label %.loopexit +ma_ffs_32.exit: ; preds = %.preheader, %20 + %.0.lcssa.i = phi i32 [ 32, %20 ], [ %.08.i, %.preheader ] + %22 = shl nuw i32 1, %.0.lcssa.i + %23 = or i32 %22, %16 + %24 = load ptr, ptr %0, align 8 + %25 = getelementptr inbounds %struct.ma_slot_allocator_group, ptr %24, i64 %indvars.iv + %26 = cmpxchg volatile ptr %25, i32 %16, i32 %23 seq_cst seq_cst, align 4 + %27 = extractvalue { i32, i1 } %26, 1 + br i1 %27, label %28, label %13 -32: ; preds = %26 - %33 = getelementptr inbounds i8, ptr %0, i64 8 - %34 = load ptr, ptr %33, align 8 - %35 = zext i32 %30 to i64 - %36 = getelementptr inbounds i32, ptr %34, i64 %35 - %37 = load i32, ptr %36, align 4 - %38 = add i32 %37, 1 - store i32 %38, ptr %36, align 4 - %39 = load ptr, ptr %33, align 8 - %40 = getelementptr inbounds i32, ptr %39, i64 %35 - %41 = load i32, ptr %40, align 4 - %42 = zext i32 %41 to i64 - %43 = shl nuw i64 %42, 32 - %44 = or disjoint i64 %43, %35 - store i64 %44, ptr %1, align 8 +28: ; preds = %ma_ffs_32.exit + %29 = trunc i64 %indvars.iv to i32 + %30 = atomicrmw add ptr %6, i32 1 seq_cst, align 8 + %31 = shl i32 %29, 5 + %32 = add i32 %.0.lcssa.i, %31 + %33 = load i32, ptr %5, align 4 + %.not52 = icmp ult i32 %32, %33 + br i1 %.not52, label %34, label %.loopexit + +34: ; preds = %28 + %35 = getelementptr inbounds i8, ptr %0, i64 8 + %36 = load ptr, ptr %35, align 8 + %37 = zext i32 %32 to i64 + %38 = getelementptr inbounds i32, ptr %36, i64 %37 + %39 = load i32, ptr %38, align 4 + %40 = add i32 %39, 1 + store i32 %40, ptr %38, align 4 + %41 = load ptr, ptr %35, align 8 + %42 = getelementptr inbounds i32, ptr %41, i64 %37 + %43 = load i32, ptr %42, align 4 + %44 = zext i32 %43 to i64 + %45 = shl nuw i64 %44, 32 + %46 = or disjoint i64 %45, %37 + store i64 %46, ptr %1, align 8 br label %.loopexit -45: ; preds = %11 +47: ; preds = %13 %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 - %46 = load i32, ptr %5, align 4 - %47 = lshr i32 %46, 5 - %48 = and i32 %46, 31 - %.not = icmp ne i32 %48, 0 - %49 = zext i1 %.not to i32 - %spec.select = add nuw nsw i32 %47, %49 - %50 = zext nneg i32 %spec.select to i64 - %51 = icmp ult i64 %indvars.iv.next, %50 - br i1 %51, label %.preheader54, label %._crit_edge - -._crit_edge: ; preds = %45, %.preheader55 - %.lcssa = phi i32 [ %8, %.preheader55 ], [ %46, %45 ] - %52 = load i32, ptr %6, align 8 - %53 = icmp ult i32 %52, %.lcssa - br i1 %53, label %54, label %.loopexit + %48 = load i32, ptr %5, align 4 + %49 = lshr i32 %48, 5 + %50 = and i32 %48, 31 + %.not = icmp ne i32 %50, 0 + %51 = zext i1 %.not to i32 + %spec.select = add nuw nsw i32 %49, %51 + %52 = zext nneg i32 %spec.select to i64 + %53 = icmp ult i64 %indvars.iv.next, %52 + br i1 %53, label %.preheader54, label %._crit_edge + +._crit_edge: ; preds = %47, %.preheader55 + %.lcssa = phi i32 [ %8, %.preheader55 ], [ %48, %47 ] + %54 = load i32, ptr %6, align 8 + %55 = icmp ult i32 %54, %.lcssa + br i1 %55, label %56, label %.loopexit -54: ; preds = %._crit_edge +56: ; preds = %._crit_edge tail call void asm sideeffect "pause", "~{dirflag},~{fpsr},~{flags}"() #68, !srcloc !5 br i1 %7, label %.preheader55, label %.loopexit -.loopexit: ; preds = %54, %._crit_edge, %26, %2, %32 - %.045 = phi i32 [ 0, %32 ], [ -2, %2 ], [ -4, %26 ], [ -4, %._crit_edge ], [ -4, %54 ] +.loopexit: ; preds = %56, %._crit_edge, %28, %2, %34 + %.045 = phi i32 [ 0, %34 ], [ -2, %2 ], [ -4, %28 ], [ -4, %._crit_edge ], [ -4, %56 ] ret i32 %.045 } @@ -3519,105 +3520,106 @@ ma_semaphore_init.exit: ; preds = %61, %64, %57, %50 %67 = getelementptr inbounds i8, ptr %2, i64 136 br label %.preheader55.i -.preheader55.i: ; preds = %114, %ma_semaphore_init.exit - %68 = phi i1 [ true, %ma_semaphore_init.exit ], [ false, %114 ] +.preheader55.i: ; preds = %116, %ma_semaphore_init.exit + %68 = phi i1 [ true, %ma_semaphore_init.exit ], [ false, %116 ] %69 = load i32, ptr %54, align 4 %70 = lshr i32 %69, 5 %71 = and i32 %69, 31 %.not61.i = icmp ne i32 %71, 0 - %.neg.i = sext i1 %.not61.i to i32 - %.not65.i = icmp eq i32 %70, %.neg.i + %72 = zext i1 %.not61.i to i32 + %73 = or i32 %70, %72 + %.not65.i = icmp eq i32 %73, 0 br i1 %.not65.i, label %._crit_edge.i, label %.preheader54.i -.preheader54.i: ; preds = %.preheader55.i, %105 - %indvars.iv.i = phi i64 [ %indvars.iv.next.i, %105 ], [ 0, %.preheader55.i ] - br label %72 +.preheader54.i: ; preds = %.preheader55.i, %107 + %indvars.iv.i = phi i64 [ %indvars.iv.next.i, %107 ], [ 0, %.preheader55.i ] + br label %74 -72: ; preds = %ma_ffs_32.exit.i, %.preheader54.i - %73 = load ptr, ptr %34, align 8 - %74 = getelementptr inbounds %struct.ma_slot_allocator_group, ptr %73, i64 %indvars.iv.i - %75 = load atomic i32, ptr %74 seq_cst, align 4 - %76 = icmp eq i32 %75, -1 - br i1 %76, label %105, label %.preheader.i - -.preheader.i: ; preds = %72, %79 - %.08.i.i = phi i32 [ %80, %79 ], [ 0, %72 ] - %77 = shl nuw i32 1, %.08.i.i - %78 = and i32 %77, %75 - %.not.i.not.i = icmp eq i32 %78, 0 - br i1 %.not.i.not.i, label %ma_ffs_32.exit.i, label %79 - -79: ; preds = %.preheader.i - %80 = add nuw nsw i32 %.08.i.i, 1 - %exitcond.not.i.i = icmp eq i32 %80, 32 +74: ; preds = %ma_ffs_32.exit.i, %.preheader54.i + %75 = load ptr, ptr %34, align 8 + %76 = getelementptr inbounds %struct.ma_slot_allocator_group, ptr %75, i64 %indvars.iv.i + %77 = load atomic i32, ptr %76 seq_cst, align 4 + %78 = icmp eq i32 %77, -1 + br i1 %78, label %107, label %.preheader.i + +.preheader.i: ; preds = %74, %81 + %.08.i.i = phi i32 [ %82, %81 ], [ 0, %74 ] + %79 = shl nuw i32 1, %.08.i.i + %80 = and i32 %79, %77 + %.not.i.not.i = icmp eq i32 %80, 0 + br i1 %.not.i.not.i, label %ma_ffs_32.exit.i, label %81 + +81: ; preds = %.preheader.i + %82 = add nuw nsw i32 %.08.i.i, 1 + %exitcond.not.i.i = icmp eq i32 %82, 32 br i1 %exitcond.not.i.i, label %ma_ffs_32.exit.i, label %.preheader.i -ma_ffs_32.exit.i: ; preds = %.preheader.i, %79 - %.0.lcssa.i.i = phi i32 [ 32, %79 ], [ %.08.i.i, %.preheader.i ] - %81 = shl nuw i32 1, %.0.lcssa.i.i - %82 = or i32 %81, %75 - %83 = load ptr, ptr %34, align 8 - %84 = getelementptr inbounds %struct.ma_slot_allocator_group, ptr %83, i64 %indvars.iv.i - %85 = cmpxchg volatile ptr %84, i32 %75, i32 %82 seq_cst seq_cst, align 4 - %86 = extractvalue { i32, i1 } %85, 1 - br i1 %86, label %87, label %72 - -87: ; preds = %ma_ffs_32.exit.i - %88 = trunc i64 %indvars.iv.i to i32 - %89 = atomicrmw add ptr %67, i32 1 seq_cst, align 8 - %90 = shl i32 %88, 5 - %91 = add i32 %.0.lcssa.i.i, %90 - %92 = load i32, ptr %54, align 4 - %.not52.i = icmp ult i32 %91, %92 - br i1 %.not52.i, label %93, label %ma_slot_allocator_alloc.exit - -93: ; preds = %87 - %94 = load ptr, ptr %53, align 8 - %95 = zext i32 %91 to i64 - %96 = getelementptr inbounds i32, ptr %94, i64 %95 - %97 = load i32, ptr %96, align 4 - %98 = add i32 %97, 1 - store i32 %98, ptr %96, align 4 - %99 = load ptr, ptr %53, align 8 - %100 = getelementptr inbounds i32, ptr %99, i64 %95 - %101 = load i32, ptr %100, align 4 - %102 = zext i32 %101 to i64 - %103 = shl nuw i64 %102, 32 - %104 = or disjoint i64 %103, %95 - store i64 %104, ptr %66, align 8 +ma_ffs_32.exit.i: ; preds = %.preheader.i, %81 + %.0.lcssa.i.i = phi i32 [ 32, %81 ], [ %.08.i.i, %.preheader.i ] + %83 = shl nuw i32 1, %.0.lcssa.i.i + %84 = or i32 %83, %77 + %85 = load ptr, ptr %34, align 8 + %86 = getelementptr inbounds %struct.ma_slot_allocator_group, ptr %85, i64 %indvars.iv.i + %87 = cmpxchg volatile ptr %86, i32 %77, i32 %84 seq_cst seq_cst, align 4 + %88 = extractvalue { i32, i1 } %87, 1 + br i1 %88, label %89, label %74 + +89: ; preds = %ma_ffs_32.exit.i + %90 = trunc i64 %indvars.iv.i to i32 + %91 = atomicrmw add ptr %67, i32 1 seq_cst, align 8 + %92 = shl i32 %90, 5 + %93 = add i32 %.0.lcssa.i.i, %92 + %94 = load i32, ptr %54, align 4 + %.not52.i = icmp ult i32 %93, %94 + br i1 %.not52.i, label %95, label %ma_slot_allocator_alloc.exit + +95: ; preds = %89 + %96 = load ptr, ptr %53, align 8 + %97 = zext i32 %93 to i64 + %98 = getelementptr inbounds i32, ptr %96, i64 %97 + %99 = load i32, ptr %98, align 4 + %100 = add i32 %99, 1 + store i32 %100, ptr %98, align 4 + %101 = load ptr, ptr %53, align 8 + %102 = getelementptr inbounds i32, ptr %101, i64 %97 + %103 = load i32, ptr %102, align 4 + %104 = zext i32 %103 to i64 + %105 = shl nuw i64 %104, 32 + %106 = or disjoint i64 %105, %97 + store i64 %106, ptr %66, align 8 br label %ma_slot_allocator_alloc.exit -105: ; preds = %72 +107: ; preds = %74 %indvars.iv.next.i = add nuw nsw i64 %indvars.iv.i, 1 - %106 = load i32, ptr %54, align 4 - %107 = lshr i32 %106, 5 - %108 = and i32 %106, 31 - %.not.i = icmp ne i32 %108, 0 - %109 = zext i1 %.not.i to i32 - %spec.select.i = add nuw nsw i32 %107, %109 - %110 = zext nneg i32 %spec.select.i to i64 - %111 = icmp ult i64 %indvars.iv.next.i, %110 - br i1 %111, label %.preheader54.i, label %._crit_edge.i - -._crit_edge.i: ; preds = %105, %.preheader55.i - %.lcssa.i = phi i32 [ %69, %.preheader55.i ], [ %106, %105 ] - %112 = load i32, ptr %67, align 8 - %113 = icmp ult i32 %112, %.lcssa.i - br i1 %113, label %114, label %ma_slot_allocator_alloc.exit - -114: ; preds = %._crit_edge.i + %108 = load i32, ptr %54, align 4 + %109 = lshr i32 %108, 5 + %110 = and i32 %108, 31 + %.not.i = icmp ne i32 %110, 0 + %111 = zext i1 %.not.i to i32 + %spec.select.i = add nuw nsw i32 %109, %111 + %112 = zext nneg i32 %spec.select.i to i64 + %113 = icmp ult i64 %indvars.iv.next.i, %112 + br i1 %113, label %.preheader54.i, label %._crit_edge.i + +._crit_edge.i: ; preds = %107, %.preheader55.i + %.lcssa.i = phi i32 [ %69, %.preheader55.i ], [ %108, %107 ] + %114 = load i32, ptr %67, align 8 + %115 = icmp ult i32 %114, %.lcssa.i + br i1 %115, label %116, label %ma_slot_allocator_alloc.exit + +116: ; preds = %._crit_edge.i tail call void asm sideeffect "pause", "~{dirflag},~{fpsr},~{flags}"() #68, !srcloc !5 br i1 %68, label %.preheader55.i, label %ma_slot_allocator_alloc.exit -ma_slot_allocator_alloc.exit: ; preds = %._crit_edge.i, %114, %87, %93 - %115 = load ptr, ptr %32, align 8 - %116 = load i64, ptr %66, align 8 - %117 = and i64 %116, 65535 - %118 = getelementptr inbounds %struct.ma_job, ptr %115, i64 %117, i32 1 - store i64 -1, ptr %118, align 8 - %119 = load i64, ptr %66, align 8 - %120 = getelementptr inbounds i8, ptr %2, i64 16 - store i64 %119, ptr %120, align 8 +ma_slot_allocator_alloc.exit: ; preds = %._crit_edge.i, %116, %89, %95 + %117 = load ptr, ptr %32, align 8 + %118 = load i64, ptr %66, align 8 + %119 = and i64 %118, 65535 + %120 = getelementptr inbounds %struct.ma_job, ptr %117, i64 %119, i32 1 + store i64 -1, ptr %120, align 8 + %121 = load i64, ptr %66, align 8 + %122 = getelementptr inbounds i8, ptr %2, i64 16 + store i64 %121, ptr %122, align 8 br label %ma_job_queue_get_heap_layout.exit.thread ma_job_queue_get_heap_layout.exit.thread: ; preds = %27, %7, %5, %3, %ma_slot_allocator_alloc.exit @@ -3806,196 +3808,197 @@ define hidden noundef i32 @ma_job_queue_post(ptr noundef %0, ptr noundef readonl %8 = getelementptr inbounds i8, ptr %0, i64 136 br label %.preheader55.i -.preheader55.i: ; preds = %43, %5 - %9 = phi i1 [ true, %5 ], [ false, %43 ] +.preheader55.i: ; preds = %45, %5 + %9 = phi i1 [ true, %5 ], [ false, %45 ] %10 = load i32, ptr %7, align 4 %11 = lshr i32 %10, 5 %12 = and i32 %10, 31 %.not61.i = icmp ne i32 %12, 0 - %.neg.i = sext i1 %.not61.i to i32 - %.not65.i = icmp eq i32 %11, %.neg.i + %13 = zext i1 %.not61.i to i32 + %14 = or i32 %11, %13 + %.not65.i = icmp eq i32 %14, 0 br i1 %.not65.i, label %._crit_edge.i, label %.preheader54.i -.preheader54.i: ; preds = %.preheader55.i, %34 - %indvars.iv.i = phi i64 [ %indvars.iv.next.i, %34 ], [ 0, %.preheader55.i ] - br label %13 +.preheader54.i: ; preds = %.preheader55.i, %36 + %indvars.iv.i = phi i64 [ %indvars.iv.next.i, %36 ], [ 0, %.preheader55.i ] + br label %15 -13: ; preds = %ma_ffs_32.exit.i, %.preheader54.i - %14 = load ptr, ptr %6, align 8 - %15 = getelementptr inbounds %struct.ma_slot_allocator_group, ptr %14, i64 %indvars.iv.i - %16 = load atomic i32, ptr %15 seq_cst, align 4 - %17 = icmp eq i32 %16, -1 - br i1 %17, label %34, label %.preheader.i +15: ; preds = %ma_ffs_32.exit.i, %.preheader54.i + %16 = load ptr, ptr %6, align 8 + %17 = getelementptr inbounds %struct.ma_slot_allocator_group, ptr %16, i64 %indvars.iv.i + %18 = load atomic i32, ptr %17 seq_cst, align 4 + %19 = icmp eq i32 %18, -1 + br i1 %19, label %36, label %.preheader.i -.preheader.i: ; preds = %13, %20 - %.08.i.i = phi i32 [ %21, %20 ], [ 0, %13 ] - %18 = shl nuw i32 1, %.08.i.i - %19 = and i32 %18, %16 - %.not.i.not.i = icmp eq i32 %19, 0 - br i1 %.not.i.not.i, label %ma_ffs_32.exit.i, label %20 +.preheader.i: ; preds = %15, %22 + %.08.i.i = phi i32 [ %23, %22 ], [ 0, %15 ] + %20 = shl nuw i32 1, %.08.i.i + %21 = and i32 %20, %18 + %.not.i.not.i = icmp eq i32 %21, 0 + br i1 %.not.i.not.i, label %ma_ffs_32.exit.i, label %22 -20: ; preds = %.preheader.i - %21 = add nuw nsw i32 %.08.i.i, 1 - %exitcond.not.i.i = icmp eq i32 %21, 32 +22: ; preds = %.preheader.i + %23 = add nuw nsw i32 %.08.i.i, 1 + %exitcond.not.i.i = icmp eq i32 %23, 32 br i1 %exitcond.not.i.i, label %ma_ffs_32.exit.i, label %.preheader.i -ma_ffs_32.exit.i: ; preds = %.preheader.i, %20 - %.0.lcssa.i.i = phi i32 [ 32, %20 ], [ %.08.i.i, %.preheader.i ] - %22 = shl nuw i32 1, %.0.lcssa.i.i - %23 = or i32 %22, %16 - %24 = load ptr, ptr %6, align 8 - %25 = getelementptr inbounds %struct.ma_slot_allocator_group, ptr %24, i64 %indvars.iv.i - %26 = cmpxchg volatile ptr %25, i32 %16, i32 %23 seq_cst seq_cst, align 4 - %27 = extractvalue { i32, i1 } %26, 1 - br i1 %27, label %28, label %13 - -28: ; preds = %ma_ffs_32.exit.i - %29 = trunc i64 %indvars.iv.i to i32 - %30 = atomicrmw add ptr %8, i32 1 seq_cst, align 8 - %31 = shl i32 %29, 5 - %32 = add i32 %.0.lcssa.i.i, %31 - %33 = load i32, ptr %7, align 4 - %.not52.i = icmp ult i32 %32, %33 - br i1 %.not52.i, label %44, label %ma_slot_allocator_alloc.exit.thread +ma_ffs_32.exit.i: ; preds = %.preheader.i, %22 + %.0.lcssa.i.i = phi i32 [ 32, %22 ], [ %.08.i.i, %.preheader.i ] + %24 = shl nuw i32 1, %.0.lcssa.i.i + %25 = or i32 %24, %18 + %26 = load ptr, ptr %6, align 8 + %27 = getelementptr inbounds %struct.ma_slot_allocator_group, ptr %26, i64 %indvars.iv.i + %28 = cmpxchg volatile ptr %27, i32 %18, i32 %25 seq_cst seq_cst, align 4 + %29 = extractvalue { i32, i1 } %28, 1 + br i1 %29, label %30, label %15 + +30: ; preds = %ma_ffs_32.exit.i + %31 = trunc i64 %indvars.iv.i to i32 + %32 = atomicrmw add ptr %8, i32 1 seq_cst, align 8 + %33 = shl i32 %31, 5 + %34 = add i32 %.0.lcssa.i.i, %33 + %35 = load i32, ptr %7, align 4 + %.not52.i = icmp ult i32 %34, %35 + br i1 %.not52.i, label %46, label %ma_slot_allocator_alloc.exit.thread -34: ; preds = %13 +36: ; preds = %15 %indvars.iv.next.i = add nuw nsw i64 %indvars.iv.i, 1 - %35 = load i32, ptr %7, align 4 - %36 = lshr i32 %35, 5 - %37 = and i32 %35, 31 - %.not.i = icmp ne i32 %37, 0 - %38 = zext i1 %.not.i to i32 - %spec.select.i = add nuw nsw i32 %36, %38 - %39 = zext nneg i32 %spec.select.i to i64 - %40 = icmp ult i64 %indvars.iv.next.i, %39 - br i1 %40, label %.preheader54.i, label %._crit_edge.i - -._crit_edge.i: ; preds = %34, %.preheader55.i - %.lcssa.i = phi i32 [ %10, %.preheader55.i ], [ %35, %34 ] - %41 = load i32, ptr %8, align 8 - %42 = icmp ult i32 %41, %.lcssa.i - br i1 %42, label %43, label %ma_slot_allocator_alloc.exit.thread - -43: ; preds = %._crit_edge.i + %37 = load i32, ptr %7, align 4 + %38 = lshr i32 %37, 5 + %39 = and i32 %37, 31 + %.not.i = icmp ne i32 %39, 0 + %40 = zext i1 %.not.i to i32 + %spec.select.i = add nuw nsw i32 %38, %40 + %41 = zext nneg i32 %spec.select.i to i64 + %42 = icmp ult i64 %indvars.iv.next.i, %41 + br i1 %42, label %.preheader54.i, label %._crit_edge.i + +._crit_edge.i: ; preds = %36, %.preheader55.i + %.lcssa.i = phi i32 [ %10, %.preheader55.i ], [ %37, %36 ] + %43 = load i32, ptr %8, align 8 + %44 = icmp ult i32 %43, %.lcssa.i + br i1 %44, label %45, label %ma_slot_allocator_alloc.exit.thread + +45: ; preds = %._crit_edge.i tail call void asm sideeffect "pause", "~{dirflag},~{fpsr},~{flags}"() #68, !srcloc !5 br i1 %9, label %.preheader55.i, label %ma_slot_allocator_alloc.exit.thread -44: ; preds = %28 - %45 = getelementptr inbounds i8, ptr %0, i64 128 - %46 = load ptr, ptr %45, align 8 - %47 = zext i32 %32 to i64 - %48 = getelementptr inbounds i32, ptr %46, i64 %47 - %49 = load i32, ptr %48, align 4 - %50 = add i32 %49, 1 - store i32 %50, ptr %48, align 4 - %51 = load ptr, ptr %45, align 8 - %52 = getelementptr inbounds i32, ptr %51, i64 %47 - %53 = load i32, ptr %52, align 4 - %54 = zext i32 %53 to i64 - %55 = shl nuw i64 %54, 32 - %56 = or disjoint i64 %55, %47 - %57 = getelementptr inbounds i8, ptr %0, i64 160 - %58 = load ptr, ptr %57, align 8 - %59 = and i64 %47, 65535 - %60 = getelementptr inbounds %struct.ma_job, ptr %58, i64 %59 - tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(104) %60, ptr noundef nonnull align 8 dereferenceable(104) %1, i64 104, i1 false) - %61 = load ptr, ptr %57, align 8 - %62 = getelementptr inbounds %struct.ma_job, ptr %61, i64 %59 - store i64 %56, ptr %62, align 8 - %63 = load i16, ptr %1, align 8 - %64 = load ptr, ptr %57, align 8 - %65 = getelementptr inbounds %struct.ma_job, ptr %64, i64 %59 - store i16 %63, ptr %65, align 8 - %66 = load ptr, ptr %57, align 8 - %67 = getelementptr inbounds %struct.ma_job, ptr %66, i64 %59, i32 1 - store i64 -1, ptr %67, align 8 - %68 = getelementptr inbounds i8, ptr %0, i64 168 - %69 = atomicrmw volatile xchg ptr %68, i32 1 acquire, align 4 - %70 = icmp eq i32 %69, 0 - br i1 %70, label %ma_spinlock_lock.exit, label %.preheader.i53 - -.loopexit.i: ; preds = %.lr.ph.i, %.preheader.i53 - %71 = atomicrmw volatile xchg ptr %68, i32 1 acquire, align 4 +46: ; preds = %30 + %47 = getelementptr inbounds i8, ptr %0, i64 128 + %48 = load ptr, ptr %47, align 8 + %49 = zext i32 %34 to i64 + %50 = getelementptr inbounds i32, ptr %48, i64 %49 + %51 = load i32, ptr %50, align 4 + %52 = add i32 %51, 1 + store i32 %52, ptr %50, align 4 + %53 = load ptr, ptr %47, align 8 + %54 = getelementptr inbounds i32, ptr %53, i64 %49 + %55 = load i32, ptr %54, align 4 + %56 = zext i32 %55 to i64 + %57 = shl nuw i64 %56, 32 + %58 = or disjoint i64 %57, %49 + %59 = getelementptr inbounds i8, ptr %0, i64 160 + %60 = load ptr, ptr %59, align 8 + %61 = and i64 %49, 65535 + %62 = getelementptr inbounds %struct.ma_job, ptr %60, i64 %61 + tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(104) %62, ptr noundef nonnull align 8 dereferenceable(104) %1, i64 104, i1 false) + %63 = load ptr, ptr %59, align 8 + %64 = getelementptr inbounds %struct.ma_job, ptr %63, i64 %61 + store i64 %58, ptr %64, align 8 + %65 = load i16, ptr %1, align 8 + %66 = load ptr, ptr %59, align 8 + %67 = getelementptr inbounds %struct.ma_job, ptr %66, i64 %61 + store i16 %65, ptr %67, align 8 + %68 = load ptr, ptr %59, align 8 + %69 = getelementptr inbounds %struct.ma_job, ptr %68, i64 %61, i32 1 + store i64 -1, ptr %69, align 8 + %70 = getelementptr inbounds i8, ptr %0, i64 168 + %71 = atomicrmw volatile xchg ptr %70, i32 1 acquire, align 4 %72 = icmp eq i32 %71, 0 br i1 %72, label %ma_spinlock_lock.exit, label %.preheader.i53 -.preheader.i53: ; preds = %44, %.loopexit.i - %73 = load atomic volatile i32, ptr %68 monotonic, align 4 - %74 = icmp eq i32 %73, 1 - br i1 %74, label %.lr.ph.i, label %.loopexit.i +.loopexit.i: ; preds = %.lr.ph.i, %.preheader.i53 + %73 = atomicrmw volatile xchg ptr %70, i32 1 acquire, align 4 + %74 = icmp eq i32 %73, 0 + br i1 %74, label %ma_spinlock_lock.exit, label %.preheader.i53 -.lr.ph.i: ; preds = %.preheader.i53, %.lr.ph.i - tail call void asm sideeffect "pause", "~{dirflag},~{fpsr},~{flags}"() #68, !srcloc !5 - %75 = load atomic volatile i32, ptr %68 monotonic, align 4 +.preheader.i53: ; preds = %46, %.loopexit.i + %75 = load atomic volatile i32, ptr %70 monotonic, align 4 %76 = icmp eq i32 %75, 1 br i1 %76, label %.lr.ph.i, label %.loopexit.i -ma_spinlock_lock.exit: ; preds = %.loopexit.i, %44 - %77 = getelementptr inbounds i8, ptr %0, i64 16 - br label %78 +.lr.ph.i: ; preds = %.preheader.i53, %.lr.ph.i + tail call void asm sideeffect "pause", "~{dirflag},~{fpsr},~{flags}"() #68, !srcloc !5 + %77 = load atomic volatile i32, ptr %70 monotonic, align 4 + %78 = icmp eq i32 %77, 1 + br i1 %78, label %.lr.ph.i, label %.loopexit.i -78: ; preds = %.backedge, %ma_spinlock_lock.exit - %79 = load atomic i64, ptr %77 seq_cst, align 8 - %80 = load ptr, ptr %57, align 8 - %81 = and i64 %79, 65535 - %82 = getelementptr inbounds %struct.ma_job, ptr %80, i64 %81, i32 1 - %83 = load atomic i64, ptr %82 seq_cst, align 8 - %84 = load atomic i64, ptr %77 seq_cst, align 8 - %85 = xor i64 %84, %79 - %86 = and i64 %85, -4294901761 - %87 = icmp eq i64 %86, 0 - br i1 %87, label %88, label %.backedge +ma_spinlock_lock.exit: ; preds = %.loopexit.i, %46 + %79 = getelementptr inbounds i8, ptr %0, i64 16 + br label %80 -88: ; preds = %78 - %89 = and i64 %83, 65535 - %90 = icmp eq i64 %89, 65535 - br i1 %90, label %91, label %99 +80: ; preds = %.backedge, %ma_spinlock_lock.exit + %81 = load atomic i64, ptr %79 seq_cst, align 8 + %82 = load ptr, ptr %59, align 8 + %83 = and i64 %81, 65535 + %84 = getelementptr inbounds %struct.ma_job, ptr %82, i64 %83, i32 1 + %85 = load atomic i64, ptr %84 seq_cst, align 8 + %86 = load atomic i64, ptr %79 seq_cst, align 8 + %87 = xor i64 %86, %81 + %88 = and i64 %87, -4294901761 + %89 = icmp eq i64 %88, 0 + br i1 %89, label %90, label %.backedge -91: ; preds = %88 - %92 = load ptr, ptr %57, align 8 - %93 = getelementptr inbounds %struct.ma_job, ptr %92, i64 %81, i32 1 - %94 = and i64 %83, -4294967296 - %95 = add i64 %94, 4294967296 - %96 = or disjoint i64 %95, %47 - %97 = cmpxchg volatile ptr %93, i64 %83, i64 %96 seq_cst seq_cst, align 8 - %98 = extractvalue { i64, i1 } %97, 1 - br i1 %98, label %104, label %.backedge - -99: ; preds = %88 - %100 = and i64 %79, -4294967296 - %101 = add i64 %100, 4294967296 - %102 = or disjoint i64 %89, %101 - %103 = cmpxchg volatile ptr %77, i64 %79, i64 %102 seq_cst seq_cst, align 8 +90: ; preds = %80 + %91 = and i64 %85, 65535 + %92 = icmp eq i64 %91, 65535 + br i1 %92, label %93, label %101 + +93: ; preds = %90 + %94 = load ptr, ptr %59, align 8 + %95 = getelementptr inbounds %struct.ma_job, ptr %94, i64 %83, i32 1 + %96 = and i64 %85, -4294967296 + %97 = add i64 %96, 4294967296 + %98 = or disjoint i64 %97, %49 + %99 = cmpxchg volatile ptr %95, i64 %85, i64 %98 seq_cst seq_cst, align 8 + %100 = extractvalue { i64, i1 } %99, 1 + br i1 %100, label %106, label %.backedge + +101: ; preds = %90 + %102 = and i64 %81, -4294967296 + %103 = add i64 %102, 4294967296 + %104 = or disjoint i64 %91, %103 + %105 = cmpxchg volatile ptr %79, i64 %81, i64 %104 seq_cst seq_cst, align 8 br label %.backedge -.backedge: ; preds = %99, %91, %78 - br label %78 +.backedge: ; preds = %101, %93, %80 + br label %80 -104: ; preds = %91 - %105 = and i64 %79, -4294967296 - %106 = add i64 %105, 4294967296 - %107 = or disjoint i64 %106, %47 - %108 = cmpxchg volatile ptr %77, i64 %79, i64 %107 seq_cst seq_cst, align 8 - store atomic volatile i32 0, ptr %68 release, align 4 - %109 = load i32, ptr %0, align 8 - %110 = and i32 %109, 1 - %111 = icmp eq i32 %110, 0 - br i1 %111, label %112, label %ma_slot_allocator_alloc.exit.thread - -112: ; preds = %104 - %113 = getelementptr inbounds i8, ptr %0, i64 24 - %114 = getelementptr inbounds i8, ptr %0, i64 32 - %115 = tail call i32 @pthread_mutex_lock(ptr noundef nonnull %114) #68 - %116 = load i32, ptr %113, align 8 - %117 = add nsw i32 %116, 1 - store i32 %117, ptr %113, align 8 - %118 = getelementptr inbounds i8, ptr %0, i64 72 - %119 = tail call i32 @pthread_cond_signal(ptr noundef nonnull %118) #68 - %120 = tail call i32 @pthread_mutex_unlock(ptr noundef nonnull %114) #68 +106: ; preds = %93 + %107 = and i64 %81, -4294967296 + %108 = add i64 %107, 4294967296 + %109 = or disjoint i64 %108, %49 + %110 = cmpxchg volatile ptr %79, i64 %81, i64 %109 seq_cst seq_cst, align 8 + store atomic volatile i32 0, ptr %70 release, align 4 + %111 = load i32, ptr %0, align 8 + %112 = and i32 %111, 1 + %113 = icmp eq i32 %112, 0 + br i1 %113, label %114, label %ma_slot_allocator_alloc.exit.thread + +114: ; preds = %106 + %115 = getelementptr inbounds i8, ptr %0, i64 24 + %116 = getelementptr inbounds i8, ptr %0, i64 32 + %117 = tail call i32 @pthread_mutex_lock(ptr noundef nonnull %116) #68 + %118 = load i32, ptr %115, align 8 + %119 = add nsw i32 %118, 1 + store i32 %119, ptr %115, align 8 + %120 = getelementptr inbounds i8, ptr %0, i64 72 + %121 = tail call i32 @pthread_cond_signal(ptr noundef nonnull %120) #68 + %122 = tail call i32 @pthread_mutex_unlock(ptr noundef nonnull %116) #68 br label %ma_slot_allocator_alloc.exit.thread -ma_slot_allocator_alloc.exit.thread: ; preds = %43, %._crit_edge.i, %28, %104, %112, %2 - %.0 = phi i32 [ -2, %2 ], [ 0, %112 ], [ 0, %104 ], [ -4, %28 ], [ -4, %._crit_edge.i ], [ -4, %43 ] +ma_slot_allocator_alloc.exit.thread: ; preds = %45, %._crit_edge.i, %30, %106, %114, %2 + %.0 = phi i32 [ -2, %2 ], [ 0, %114 ], [ 0, %106 ], [ -4, %30 ], [ -4, %._crit_edge.i ], [ -4, %45 ] ret i32 %.0 } @@ -76762,7 +76765,7 @@ drmp3d_find_frame.exit: ; preds = %329, %drmp3d_find_f drmp3d_find_frame.exit.thread: ; preds = %drmp3_hdr_valid.exit.thread.i, %120, %drmp3d_find_frame.exit %.0.i287 = phi i32 [ %.0.i, %drmp3d_find_frame.exit ], [ %2, %120 ], [ %2, %drmp3_hdr_valid.exit.thread.i ] store i32 %.0.i287, ptr %4, align 4 - br label %2209 + br label %2207 .thread277: ; preds = %115, %drmp3_hdr_padding.exit, %drmp3d_find_frame.exit %.1272 = phi i32 [ %storemerge.i, %drmp3d_find_frame.exit ], [ %2, %drmp3_hdr_padding.exit ], [ %90, %115 ] @@ -76834,7 +76837,7 @@ drmp3d_find_frame.exit.thread: ; preds = %drmp3_hdr_valid.exi %384 = xor i8 %383, 16 %spec.select551 = zext nneg i8 %384 to i32 %385 = icmp eq i8 %361, 1 - br i1 %385, label %386, label %1851 + br i1 %385, label %386, label %1849 386: ; preds = %.thread277 %387 = getelementptr inbounds i8, ptr %15, i64 2832 @@ -77621,7 +77624,7 @@ drmp3_bs_get_bits.exit335.i: ; preds = %._crit_edge.i324.i, drmp3_L3_read_side_info.exit.thread: ; preds = %drmp3_bs_get_bits.exit203.i, %.lr.ph.i149.i, %824, %drmp3_bs_get_bits.exit203.thread.i store i8 0, ptr %19, align 4 - br label %2209 + br label %2207 831: ; preds = %824 %832 = getelementptr inbounds i8, ptr %0, i64 6144 @@ -77685,8 +77688,8 @@ drmp3_L3_read_side_info.exit.thread: ; preds = %drmp3_bs_get_bits.e br label %879 879: ; preds = %.preheader, %drmp3_L3_decode.exit - %880 = phi i32 [ %342, %.preheader ], [ %1831, %drmp3_L3_decode.exit ] - %.074385 = phi ptr [ %3, %.preheader ], [ %1834, %drmp3_L3_decode.exit ] + %880 = phi i32 [ %342, %.preheader ], [ %1829, %drmp3_L3_decode.exit ] + %.074385 = phi ptr [ %3, %.preheader ], [ %1832, %drmp3_L3_decode.exit ] %881 = phi i1 [ true, %.preheader ], [ false, %drmp3_L3_decode.exit ] %.076384 = phi i32 [ 0, %.preheader ], [ 1, %drmp3_L3_decode.exit ] call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(4608) %854, i8 0, i64 4608, i1 false) @@ -78013,1173 +78016,1171 @@ drmp3_L3_read_scalefactors.exit.i.i: ; preds = %.loopexit.i.i.i, %9 drmp3_L3_ldexp_q2.exit.preheader.i.i: ; preds = %1050 %1063 = load i8, ptr %898, align 1 - %1064 = zext i8 %1063 to i32 - %1065 = zext i8 %999 to i32 - %1066 = sub nsw i32 0, %1064 - %.not101.i.i = icmp eq i32 %1065, %1066 + %1064 = or i8 %1063, %999 + %.not101.i.i = icmp eq i8 %1064, 0 br i1 %.not101.i.i, label %drmp3_L3_decode_scalefactors.exit.i, label %.lr.ph.i.i137 .lr.ph.i.i137: ; preds = %drmp3_L3_ldexp_q2.exit.preheader.i.i, %drmp3_L3_ldexp_q2.exit83.i.i %indvars.iv119.i.i = phi i64 [ %indvars.iv.next120.i.i, %drmp3_L3_ldexp_q2.exit83.i.i ], [ 0, %drmp3_L3_ldexp_q2.exit.preheader.i.i ] - %1067 = getelementptr inbounds [40 x i8], ptr %14, i64 0, i64 %indvars.iv119.i.i - %1068 = load i8, ptr %1067, align 1 - %1069 = zext i8 %1068 to i32 - %1070 = shl i32 %1069, %906 - br label %1071 - -1071: ; preds = %1071, %.lr.ph.i.i137 - %.07.i81.i.i = phi i32 [ %1070, %.lr.ph.i.i137 ], [ %1082, %1071 ] - %.0.i82.i.i = phi float [ %1060, %.lr.ph.i.i137 ], [ %1081, %1071 ] - %1072 = call i32 @llvm.smin.i32(i32 %.07.i81.i.i, i32 120) - %1073 = and i32 %1072, 3 - %1074 = zext nneg i32 %1073 to i64 - %1075 = getelementptr inbounds [4 x float], ptr @drmp3_L3_ldexp_q2.g_expfrac, i64 0, i64 %1074 - %1076 = load float, ptr %1075, align 4 - %1077 = ashr i32 %1072, 2 - %1078 = lshr i32 1073741824, %1077 - %1079 = sitofp i32 %1078 to float - %1080 = fmul float %1076, %1079 - %1081 = fmul float %.0.i82.i.i, %1080 - %1082 = sub nsw i32 %.07.i81.i.i, %1072 - %1083 = icmp sgt i32 %1082, 0 - br i1 %1083, label %1071, label %drmp3_L3_ldexp_q2.exit83.i.i - -drmp3_L3_ldexp_q2.exit83.i.i: ; preds = %1071 - %1084 = getelementptr inbounds float, ptr %857, i64 %indvars.iv119.i.i - store float %1081, ptr %1084, align 4 + %1065 = getelementptr inbounds [40 x i8], ptr %14, i64 0, i64 %indvars.iv119.i.i + %1066 = load i8, ptr %1065, align 1 + %1067 = zext i8 %1066 to i32 + %1068 = shl i32 %1067, %906 + br label %1069 + +1069: ; preds = %1069, %.lr.ph.i.i137 + %.07.i81.i.i = phi i32 [ %1068, %.lr.ph.i.i137 ], [ %1080, %1069 ] + %.0.i82.i.i = phi float [ %1060, %.lr.ph.i.i137 ], [ %1079, %1069 ] + %1070 = call i32 @llvm.smin.i32(i32 %.07.i81.i.i, i32 120) + %1071 = and i32 %1070, 3 + %1072 = zext nneg i32 %1071 to i64 + %1073 = getelementptr inbounds [4 x float], ptr @drmp3_L3_ldexp_q2.g_expfrac, i64 0, i64 %1072 + %1074 = load float, ptr %1073, align 4 + %1075 = ashr i32 %1070, 2 + %1076 = lshr i32 1073741824, %1075 + %1077 = sitofp i32 %1076 to float + %1078 = fmul float %1074, %1077 + %1079 = fmul float %.0.i82.i.i, %1078 + %1080 = sub nsw i32 %.07.i81.i.i, %1070 + %1081 = icmp sgt i32 %1080, 0 + br i1 %1081, label %1069, label %drmp3_L3_ldexp_q2.exit83.i.i + +drmp3_L3_ldexp_q2.exit83.i.i: ; preds = %1069 + %1082 = getelementptr inbounds float, ptr %857, i64 %indvars.iv119.i.i + store float %1079, ptr %1082, align 4 %indvars.iv.next120.i.i = add nuw nsw i64 %indvars.iv119.i.i, 1 - %1085 = load i8, ptr %898, align 1 + %1083 = load i8, ptr %898, align 1 + %1084 = zext i8 %1083 to i64 + %1085 = load i8, ptr %894, align 2 %1086 = zext i8 %1085 to i64 - %1087 = load i8, ptr %894, align 2 - %1088 = zext i8 %1087 to i64 - %1089 = add nuw nsw i64 %1088, %1086 - %1090 = icmp ult i64 %indvars.iv.next120.i.i, %1089 - br i1 %1090, label %.lr.ph.i.i137, label %drmp3_L3_decode_scalefactors.exit.i + %1087 = add nuw nsw i64 %1086, %1084 + %1088 = icmp ult i64 %indvars.iv.next120.i.i, %1087 + br i1 %1088, label %.lr.ph.i.i137, label %drmp3_L3_decode_scalefactors.exit.i drmp3_L3_decode_scalefactors.exit.i: ; preds = %drmp3_L3_ldexp_q2.exit83.i.i, %drmp3_L3_ldexp_q2.exit.preheader.i.i call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %13) call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %14) - %1091 = getelementptr inbounds [2 x [576 x float]], ptr %854, i64 0, i64 %indvars.iv.i133 - %1092 = getelementptr inbounds i8, ptr %888, i64 10 - %1093 = load i16, ptr %1092, align 2 - %1094 = load ptr, ptr %888, align 8 - %1095 = load ptr, ptr %15, align 8 - %1096 = load i32, ptr %848, align 8 - %1097 = sdiv i32 %1096, 8 - %1098 = sext i32 %1097 to i64 - %1099 = getelementptr inbounds i8, ptr %1095, i64 %1098 - %1100 = load i8, ptr %1099, align 1 - %1101 = zext i8 %1100 to i32 - %1102 = getelementptr inbounds i8, ptr %1099, i64 1 - %1103 = load i8, ptr %1102, align 1 - %1104 = zext i8 %1103 to i32 - %1105 = shl nuw nsw i32 %1101, 16 - %1106 = shl nuw nsw i32 %1104, 8 - %1107 = or disjoint i32 %1106, %1105 - %1108 = getelementptr inbounds i8, ptr %1099, i64 2 - %1109 = load i8, ptr %1108, align 1 - %1110 = zext i8 %1109 to i32 - %1111 = or disjoint i32 %1107, %1110 - %1112 = shl nuw i32 %1111, 8 - %1113 = getelementptr inbounds i8, ptr %1099, i64 3 - %1114 = load i8, ptr %1113, align 1 - %1115 = zext i8 %1114 to i32 - %1116 = or disjoint i32 %1112, %1115 - %1117 = and i32 %1096, 7 - %1118 = shl i32 %1116, %1117 - %1119 = or i32 %1096, -8 - %1120 = getelementptr inbounds i8, ptr %1099, i64 4 - %.not403.i.i = icmp eq i16 %1093, 0 + %1089 = getelementptr inbounds [2 x [576 x float]], ptr %854, i64 0, i64 %indvars.iv.i133 + %1090 = getelementptr inbounds i8, ptr %888, i64 10 + %1091 = load i16, ptr %1090, align 2 + %1092 = load ptr, ptr %888, align 8 + %1093 = load ptr, ptr %15, align 8 + %1094 = load i32, ptr %848, align 8 + %1095 = sdiv i32 %1094, 8 + %1096 = sext i32 %1095 to i64 + %1097 = getelementptr inbounds i8, ptr %1093, i64 %1096 + %1098 = load i8, ptr %1097, align 1 + %1099 = zext i8 %1098 to i32 + %1100 = getelementptr inbounds i8, ptr %1097, i64 1 + %1101 = load i8, ptr %1100, align 1 + %1102 = zext i8 %1101 to i32 + %1103 = shl nuw nsw i32 %1099, 16 + %1104 = shl nuw nsw i32 %1102, 8 + %1105 = or disjoint i32 %1104, %1103 + %1106 = getelementptr inbounds i8, ptr %1097, i64 2 + %1107 = load i8, ptr %1106, align 1 + %1108 = zext i8 %1107 to i32 + %1109 = or disjoint i32 %1105, %1108 + %1110 = shl nuw i32 %1109, 8 + %1111 = getelementptr inbounds i8, ptr %1097, i64 3 + %1112 = load i8, ptr %1111, align 1 + %1113 = zext i8 %1112 to i32 + %1114 = or disjoint i32 %1110, %1113 + %1115 = and i32 %1094, 7 + %1116 = shl i32 %1114, %1115 + %1117 = or i32 %1094, -8 + %1118 = getelementptr inbounds i8, ptr %1097, i64 4 + %.not403.i.i = icmp eq i16 %1091, 0 br i1 %.not403.i.i, label %._crit_edge385.i.i, label %.lr.ph384.i.i .lr.ph384.i.i: ; preds = %drmp3_L3_decode_scalefactors.exit.i - %1121 = zext i16 %1093 to i32 - %1122 = getelementptr inbounds i8, ptr %888, i64 19 - %1123 = getelementptr inbounds i8, ptr %888, i64 22 - br label %1124 + %1119 = zext i16 %1091 to i32 + %1120 = getelementptr inbounds i8, ptr %888, i64 19 + %1121 = getelementptr inbounds i8, ptr %888, i64 22 + br label %1122 -1124: ; preds = %.critedge.i.i, %.lr.ph384.i.i +1122: ; preds = %.critedge.i.i, %.lr.ph384.i.i %indvars.iv.i59.i = phi i64 [ 0, %.lr.ph384.i.i ], [ %indvars.iv.next.i60.i, %.critedge.i.i ] - %.0188382.i.i = phi ptr [ %1091, %.lr.ph384.i.i ], [ %.7.i.i, %.critedge.i.i ] + %.0188382.i.i = phi ptr [ %1089, %.lr.ph384.i.i ], [ %.7.i.i, %.critedge.i.i ] %.0189381.i.i = phi ptr [ %857, %.lr.ph384.i.i ], [ %.3192.i.i, %.critedge.i.i ] - %.0213379.i.i = phi i32 [ %1121, %.lr.ph384.i.i ], [ %.3216.i.i, %.critedge.i.i ] - %.0217378.i.i = phi i32 [ %1119, %.lr.ph384.i.i ], [ %.13.i.i, %.critedge.i.i ] - %.0231377.i.i = phi i32 [ %1118, %.lr.ph384.i.i ], [ %.13244.i.i, %.critedge.i.i ] - %.0251376.i.i = phi ptr [ %1120, %.lr.ph384.i.i ], [ %.10261.i.i, %.critedge.i.i ] - %.0264375.i.i = phi ptr [ %1094, %.lr.ph384.i.i ], [ %.3267.i.i, %.critedge.i.i ] - %1125 = getelementptr inbounds [3 x i8], ptr %1122, i64 0, i64 %indvars.iv.i59.i - %1126 = load i8, ptr %1125, align 1 + %.0213379.i.i = phi i32 [ %1119, %.lr.ph384.i.i ], [ %.3216.i.i, %.critedge.i.i ] + %.0217378.i.i = phi i32 [ %1117, %.lr.ph384.i.i ], [ %.13.i.i, %.critedge.i.i ] + %.0231377.i.i = phi i32 [ %1116, %.lr.ph384.i.i ], [ %.13244.i.i, %.critedge.i.i ] + %.0251376.i.i = phi ptr [ %1118, %.lr.ph384.i.i ], [ %.10261.i.i, %.critedge.i.i ] + %.0264375.i.i = phi ptr [ %1092, %.lr.ph384.i.i ], [ %.3267.i.i, %.critedge.i.i ] + %1123 = getelementptr inbounds [3 x i8], ptr %1120, i64 0, i64 %indvars.iv.i59.i + %1124 = load i8, ptr %1123, align 1 %indvars.iv.next.i60.i = add nuw nsw i64 %indvars.iv.i59.i, 1 - %1127 = getelementptr inbounds [3 x i8], ptr %1123, i64 0, i64 %indvars.iv.i59.i - %1128 = load i8, ptr %1127, align 1 - %1129 = zext i8 %1128 to i32 - %1130 = zext i8 %1126 to i64 - %1131 = getelementptr inbounds [32 x i16], ptr @drmp3_L3_huffman.tabindex, i64 0, i64 %1130 - %1132 = load i16, ptr %1131, align 2 - %1133 = sext i16 %1132 to i64 - %1134 = getelementptr inbounds i16, ptr @drmp3_L3_huffman.tabs, i64 %1133 - %1135 = getelementptr inbounds [32 x i8], ptr @drmp3_L3_huffman.g_linbits, i64 0, i64 %1130 - %1136 = load i8, ptr %1135, align 1 - %1137 = zext i8 %1136 to i32 - %.not294.i.i = icmp ult i8 %1126, 16 + %1125 = getelementptr inbounds [3 x i8], ptr %1121, i64 0, i64 %indvars.iv.i59.i + %1126 = load i8, ptr %1125, align 1 + %1127 = zext i8 %1126 to i32 + %1128 = zext i8 %1124 to i64 + %1129 = getelementptr inbounds [32 x i16], ptr @drmp3_L3_huffman.tabindex, i64 0, i64 %1128 + %1130 = load i16, ptr %1129, align 2 + %1131 = sext i16 %1130 to i64 + %1132 = getelementptr inbounds i16, ptr @drmp3_L3_huffman.tabs, i64 %1131 + %1133 = getelementptr inbounds [32 x i8], ptr @drmp3_L3_huffman.g_linbits, i64 0, i64 %1128 + %1134 = load i8, ptr %1133, align 1 + %1135 = zext i8 %1134 to i32 + %.not294.i.i = icmp ult i8 %1124, 16 br i1 %.not294.i.i, label %.preheader305.i.i, label %.preheader306.i.i -.preheader306.i.i: ; preds = %1124 - %1138 = sub nsw i32 32, %1137 - br label %1139 - -1139: ; preds = %1231, %.preheader306.i.i - %.1265.i.i = phi ptr [ %1232, %1231 ], [ %.0264375.i.i, %.preheader306.i.i ] - %.1252.i.i = phi ptr [ %.6257.lcssa.i.i, %1231 ], [ %.0251376.i.i, %.preheader306.i.i ] - %.1232.i.i = phi i32 [ %.7238.lcssa.i.i, %1231 ], [ %.0231377.i.i, %.preheader306.i.i ] - %.1218.i.i = phi i32 [ %.7224.lcssa.i.i, %1231 ], [ %.0217378.i.i, %.preheader306.i.i ] - %.1214.i.i = phi i32 [ %1234, %1231 ], [ %.0213379.i.i, %.preheader306.i.i ] - %.0211.i.i = phi i32 [ %1236, %1231 ], [ %1129, %.preheader306.i.i ] - %.1190.i.i = phi ptr [ %1233, %1231 ], [ %.0189381.i.i, %.preheader306.i.i ] - %.1.i.i = phi ptr [ %1221, %1231 ], [ %.0188382.i.i, %.preheader306.i.i ] - %1140 = load i8, ptr %.1265.i.i, align 1 - %1141 = lshr i8 %1140, 1 - %1142 = zext nneg i8 %1141 to i32 - %1143 = call i32 @llvm.umin.i32(i32 %.1214.i.i, i32 %1142) - %1144 = load float, ptr %.1190.i.i, align 4 - br label %1145 - -1145: ; preds = %._crit_edge344.i.i, %1139 - %.2253.i.i = phi ptr [ %.1252.i.i, %1139 ], [ %.6257.lcssa.i.i, %._crit_edge344.i.i ] - %.2233.i.i = phi i32 [ %.1232.i.i, %1139 ], [ %.7238.lcssa.i.i, %._crit_edge344.i.i ] - %.0229.i.i = phi i32 [ %1143, %1139 ], [ %1230, %._crit_edge344.i.i ] - %.2219.i.i = phi i32 [ %.1218.i.i, %1139 ], [ %.7224.lcssa.i.i, %._crit_edge344.i.i ] - %.2.i.i = phi ptr [ %.1.i.i, %1139 ], [ %1221, %._crit_edge344.i.i ] - %1146 = lshr i32 %.2233.i.i, 27 - %.pn297315.i.i = zext nneg i32 %1146 to i64 - %.0201.in.in316.i.i = getelementptr inbounds i16, ptr %1134, i64 %.pn297315.i.i +.preheader306.i.i: ; preds = %1122 + %1136 = sub nsw i32 32, %1135 + br label %1137 + +1137: ; preds = %1229, %.preheader306.i.i + %.1265.i.i = phi ptr [ %1230, %1229 ], [ %.0264375.i.i, %.preheader306.i.i ] + %.1252.i.i = phi ptr [ %.6257.lcssa.i.i, %1229 ], [ %.0251376.i.i, %.preheader306.i.i ] + %.1232.i.i = phi i32 [ %.7238.lcssa.i.i, %1229 ], [ %.0231377.i.i, %.preheader306.i.i ] + %.1218.i.i = phi i32 [ %.7224.lcssa.i.i, %1229 ], [ %.0217378.i.i, %.preheader306.i.i ] + %.1214.i.i = phi i32 [ %1232, %1229 ], [ %.0213379.i.i, %.preheader306.i.i ] + %.0211.i.i = phi i32 [ %1234, %1229 ], [ %1127, %.preheader306.i.i ] + %.1190.i.i = phi ptr [ %1231, %1229 ], [ %.0189381.i.i, %.preheader306.i.i ] + %.1.i.i = phi ptr [ %1219, %1229 ], [ %.0188382.i.i, %.preheader306.i.i ] + %1138 = load i8, ptr %.1265.i.i, align 1 + %1139 = lshr i8 %1138, 1 + %1140 = zext nneg i8 %1139 to i32 + %1141 = call i32 @llvm.umin.i32(i32 %.1214.i.i, i32 %1140) + %1142 = load float, ptr %.1190.i.i, align 4 + br label %1143 + +1143: ; preds = %._crit_edge344.i.i, %1137 + %.2253.i.i = phi ptr [ %.1252.i.i, %1137 ], [ %.6257.lcssa.i.i, %._crit_edge344.i.i ] + %.2233.i.i = phi i32 [ %.1232.i.i, %1137 ], [ %.7238.lcssa.i.i, %._crit_edge344.i.i ] + %.0229.i.i = phi i32 [ %1141, %1137 ], [ %1228, %._crit_edge344.i.i ] + %.2219.i.i = phi i32 [ %.1218.i.i, %1137 ], [ %.7224.lcssa.i.i, %._crit_edge344.i.i ] + %.2.i.i = phi ptr [ %.1.i.i, %1137 ], [ %1219, %._crit_edge344.i.i ] + %1144 = lshr i32 %.2233.i.i, 27 + %.pn297315.i.i = zext nneg i32 %1144 to i64 + %.0201.in.in316.i.i = getelementptr inbounds i16, ptr %1132, i64 %.pn297315.i.i %.0201.in317.i.i = load i16, ptr %.0201.in.in316.i.i, align 2 %.0201318.i.i = sext i16 %.0201.in317.i.i to i32 - %1147 = icmp slt i16 %.0201.in317.i.i, 0 - br i1 %1147, label %.lr.ph.i65.i, label %._crit_edge.i61.i - -.lr.ph.i65.i: ; preds = %1145, %.lr.ph.i65.i - %.0201322.i.i = phi i32 [ %.0201.i.i, %.lr.ph.i65.i ], [ %.0201318.i.i, %1145 ] - %.0203321.i.i = phi i32 [ %1150, %.lr.ph.i65.i ], [ 5, %1145 ] - %.3220320.i.i = phi i32 [ %1149, %.lr.ph.i65.i ], [ %.2219.i.i, %1145 ] - %.3234319.i.i = phi i32 [ %1148, %.lr.ph.i65.i ], [ %.2233.i.i, %1145 ] - %1148 = shl i32 %.3234319.i.i, %.0203321.i.i - %1149 = add nsw i32 %.3220320.i.i, %.0203321.i.i - %1150 = and i32 %.0201322.i.i, 7 - %1151 = sub nuw nsw i32 32, %1150 - %1152 = lshr i32 %1148, %1151 - %1153 = ashr i32 %.0201322.i.i, 3 - %1154 = sub nsw i32 %1152, %1153 - %.pn297.i.i = zext i32 %1154 to i64 - %.0201.in.in.i.i = getelementptr inbounds i16, ptr %1134, i64 %.pn297.i.i + %1145 = icmp slt i16 %.0201.in317.i.i, 0 + br i1 %1145, label %.lr.ph.i65.i, label %._crit_edge.i61.i + +.lr.ph.i65.i: ; preds = %1143, %.lr.ph.i65.i + %.0201322.i.i = phi i32 [ %.0201.i.i, %.lr.ph.i65.i ], [ %.0201318.i.i, %1143 ] + %.0203321.i.i = phi i32 [ %1148, %.lr.ph.i65.i ], [ 5, %1143 ] + %.3220320.i.i = phi i32 [ %1147, %.lr.ph.i65.i ], [ %.2219.i.i, %1143 ] + %.3234319.i.i = phi i32 [ %1146, %.lr.ph.i65.i ], [ %.2233.i.i, %1143 ] + %1146 = shl i32 %.3234319.i.i, %.0203321.i.i + %1147 = add nsw i32 %.3220320.i.i, %.0203321.i.i + %1148 = and i32 %.0201322.i.i, 7 + %1149 = sub nuw nsw i32 32, %1148 + %1150 = lshr i32 %1146, %1149 + %1151 = ashr i32 %.0201322.i.i, 3 + %1152 = sub nsw i32 %1150, %1151 + %.pn297.i.i = zext i32 %1152 to i64 + %.0201.in.in.i.i = getelementptr inbounds i16, ptr %1132, i64 %.pn297.i.i %.0201.in.i.i = load i16, ptr %.0201.in.in.i.i, align 2 %.0201.i.i = sext i16 %.0201.in.i.i to i32 - %1155 = icmp slt i16 %.0201.in.i.i, 0 - br i1 %1155, label %.lr.ph.i65.i, label %._crit_edge.i61.i - -._crit_edge.i61.i: ; preds = %.lr.ph.i65.i, %1145 - %.3234.lcssa.i.i = phi i32 [ %.2233.i.i, %1145 ], [ %1148, %.lr.ph.i65.i ] - %.3220.lcssa.i.i = phi i32 [ %.2219.i.i, %1145 ], [ %1149, %.lr.ph.i65.i ] - %.0201.lcssa.i.i = phi i32 [ %.0201318.i.i, %1145 ], [ %.0201.i.i, %.lr.ph.i65.i ] - %1156 = lshr i32 %.0201.lcssa.i.i, 8 - %1157 = shl i32 %.3234.lcssa.i.i, %1156 - %1158 = add nsw i32 %1156, %.3220.lcssa.i.i - br label %1160 - -.preheader304.i.i: ; preds = %1217 - %1159 = icmp sgt i32 %1220, -1 - br i1 %1159, label %.lr.ph343.i.i, label %._crit_edge344.i.i - -1160: ; preds = %1217, %._crit_edge.i61.i - %.3339.i.i = phi ptr [ %.2.i.i, %._crit_edge.i61.i ], [ %1221, %1217 ] - %.1202338.i.i = phi i32 [ %.0201.lcssa.i.i, %._crit_edge.i61.i ], [ %1222, %1217 ] - %1161 = phi i1 [ true, %._crit_edge.i61.i ], [ false, %1217 ] - %.4221336.i.i = phi i32 [ %1158, %._crit_edge.i61.i ], [ %1220, %1217 ] - %.4235335.i.i = phi i32 [ %1157, %._crit_edge.i61.i ], [ %1219, %1217 ] - %.3254334.i.i = phi ptr [ %.2253.i.i, %._crit_edge.i61.i ], [ %.5256.i.i, %1217 ] - %1162 = and i32 %.1202338.i.i, 15 - %1163 = icmp eq i32 %1162, 15 - br i1 %1163, label %1164, label %1209 - -1164: ; preds = %1160 - %1165 = lshr i32 %.4235335.i.i, %1138 - %1166 = add i32 %1165, 15 - %1167 = shl i32 %.4235335.i.i, %1137 - %1168 = add nsw i32 %.4221336.i.i, %1137 - %1169 = icmp sgt i32 %1168, -1 - br i1 %1169, label %.lr.ph329.i.i, label %._crit_edge330.i.i - -.lr.ph329.i.i: ; preds = %1164, %.lr.ph329.i.i - %.5222327.i.i = phi i32 [ %1175, %.lr.ph329.i.i ], [ %1168, %1164 ] - %.5236326.i.i = phi i32 [ %1174, %.lr.ph329.i.i ], [ %1167, %1164 ] - %.4255325.i.i = phi ptr [ %1170, %.lr.ph329.i.i ], [ %.3254334.i.i, %1164 ] - %1170 = getelementptr inbounds i8, ptr %.4255325.i.i, i64 1 - %1171 = load i8, ptr %.4255325.i.i, align 1 - %1172 = zext i8 %1171 to i32 - %1173 = shl i32 %1172, %.5222327.i.i - %1174 = or i32 %1173, %.5236326.i.i - %1175 = add nsw i32 %.5222327.i.i, -8 - %1176 = icmp ugt i32 %.5222327.i.i, 7 - br i1 %1176, label %.lr.ph329.i.i, label %._crit_edge330.i.i - -._crit_edge330.i.i: ; preds = %.lr.ph329.i.i, %1164 - %.4255.lcssa.i.i = phi ptr [ %.3254334.i.i, %1164 ], [ %1170, %.lr.ph329.i.i ] - %.5236.lcssa.i.i = phi i32 [ %1167, %1164 ], [ %1174, %.lr.ph329.i.i ] - %.5222.lcssa.i.i = phi i32 [ %1168, %1164 ], [ %1175, %.lr.ph329.i.i ] - %1177 = icmp slt i32 %1166, 129 - br i1 %1177, label %1178, label %1183 - -1178: ; preds = %._crit_edge330.i.i - %1179 = add i32 %1165, 31 - %1180 = sext i32 %1179 to i64 - %1181 = getelementptr inbounds [145 x float], ptr @g_drmp3_pow43, i64 0, i64 %1180 - %1182 = load float, ptr %1181, align 4 + %1153 = icmp slt i16 %.0201.in.i.i, 0 + br i1 %1153, label %.lr.ph.i65.i, label %._crit_edge.i61.i + +._crit_edge.i61.i: ; preds = %.lr.ph.i65.i, %1143 + %.3234.lcssa.i.i = phi i32 [ %.2233.i.i, %1143 ], [ %1146, %.lr.ph.i65.i ] + %.3220.lcssa.i.i = phi i32 [ %.2219.i.i, %1143 ], [ %1147, %.lr.ph.i65.i ] + %.0201.lcssa.i.i = phi i32 [ %.0201318.i.i, %1143 ], [ %.0201.i.i, %.lr.ph.i65.i ] + %1154 = lshr i32 %.0201.lcssa.i.i, 8 + %1155 = shl i32 %.3234.lcssa.i.i, %1154 + %1156 = add nsw i32 %1154, %.3220.lcssa.i.i + br label %1158 + +.preheader304.i.i: ; preds = %1215 + %1157 = icmp sgt i32 %1218, -1 + br i1 %1157, label %.lr.ph343.i.i, label %._crit_edge344.i.i + +1158: ; preds = %1215, %._crit_edge.i61.i + %.3339.i.i = phi ptr [ %.2.i.i, %._crit_edge.i61.i ], [ %1219, %1215 ] + %.1202338.i.i = phi i32 [ %.0201.lcssa.i.i, %._crit_edge.i61.i ], [ %1220, %1215 ] + %1159 = phi i1 [ true, %._crit_edge.i61.i ], [ false, %1215 ] + %.4221336.i.i = phi i32 [ %1156, %._crit_edge.i61.i ], [ %1218, %1215 ] + %.4235335.i.i = phi i32 [ %1155, %._crit_edge.i61.i ], [ %1217, %1215 ] + %.3254334.i.i = phi ptr [ %.2253.i.i, %._crit_edge.i61.i ], [ %.5256.i.i, %1215 ] + %1160 = and i32 %.1202338.i.i, 15 + %1161 = icmp eq i32 %1160, 15 + br i1 %1161, label %1162, label %1207 + +1162: ; preds = %1158 + %1163 = lshr i32 %.4235335.i.i, %1136 + %1164 = add i32 %1163, 15 + %1165 = shl i32 %.4235335.i.i, %1135 + %1166 = add nsw i32 %.4221336.i.i, %1135 + %1167 = icmp sgt i32 %1166, -1 + br i1 %1167, label %.lr.ph329.i.i, label %._crit_edge330.i.i + +.lr.ph329.i.i: ; preds = %1162, %.lr.ph329.i.i + %.5222327.i.i = phi i32 [ %1173, %.lr.ph329.i.i ], [ %1166, %1162 ] + %.5236326.i.i = phi i32 [ %1172, %.lr.ph329.i.i ], [ %1165, %1162 ] + %.4255325.i.i = phi ptr [ %1168, %.lr.ph329.i.i ], [ %.3254334.i.i, %1162 ] + %1168 = getelementptr inbounds i8, ptr %.4255325.i.i, i64 1 + %1169 = load i8, ptr %.4255325.i.i, align 1 + %1170 = zext i8 %1169 to i32 + %1171 = shl i32 %1170, %.5222327.i.i + %1172 = or i32 %1171, %.5236326.i.i + %1173 = add nsw i32 %.5222327.i.i, -8 + %1174 = icmp ugt i32 %.5222327.i.i, 7 + br i1 %1174, label %.lr.ph329.i.i, label %._crit_edge330.i.i + +._crit_edge330.i.i: ; preds = %.lr.ph329.i.i, %1162 + %.4255.lcssa.i.i = phi ptr [ %.3254334.i.i, %1162 ], [ %1168, %.lr.ph329.i.i ] + %.5236.lcssa.i.i = phi i32 [ %1165, %1162 ], [ %1172, %.lr.ph329.i.i ] + %.5222.lcssa.i.i = phi i32 [ %1166, %1162 ], [ %1173, %.lr.ph329.i.i ] + %1175 = icmp slt i32 %1164, 129 + br i1 %1175, label %1176, label %1181 + +1176: ; preds = %._crit_edge330.i.i + %1177 = add i32 %1163, 31 + %1178 = sext i32 %1177 to i64 + %1179 = getelementptr inbounds [145 x float], ptr @g_drmp3_pow43, i64 0, i64 %1178 + %1180 = load float, ptr %1179, align 4 br label %drmp3_L3_pow_43.exit.i.i -1183: ; preds = %._crit_edge330.i.i - %1184 = icmp ult i32 %1166, 1024 - %1185 = shl nuw nsw i32 %1166, 3 - %.015.i.i.i = select i1 %1184, i32 %1185, i32 %1166 - %.0.i.i64.i = select i1 %1184, float 1.600000e+01, float 2.560000e+02 - %1186 = shl nuw nsw i32 %.015.i.i.i, 1 - %1187 = and i32 %1186, 64 - %1188 = and i32 %.015.i.i.i, 63 - %1189 = sub nsw i32 %1188, %1187 - %1190 = sitofp i32 %1189 to float - %1191 = and i32 %.015.i.i.i, 2147483584 - %1192 = add nuw nsw i32 %1187, %1191 - %1193 = sitofp i32 %1192 to float - %1194 = fdiv float %1190, %1193 - %1195 = add nuw nsw i32 %1187, %.015.i.i.i - %1196 = lshr i32 %1195, 6 - %1197 = add nuw nsw i32 %1196, 16 - %1198 = zext nneg i32 %1197 to i64 - %1199 = getelementptr inbounds [145 x float], ptr @g_drmp3_pow43, i64 0, i64 %1198 - %1200 = load float, ptr %1199, align 4 - %1201 = call float @llvm.fmuladd.f32(float %1194, float 0x3FCC71C720000000, float 0x3FF5555560000000) - %1202 = call float @llvm.fmuladd.f32(float %1194, float %1201, float 1.000000e+00) - %1203 = fmul float %1202, %1200 - %1204 = fmul float %.0.i.i64.i, %1203 +1181: ; preds = %._crit_edge330.i.i + %1182 = icmp ult i32 %1164, 1024 + %1183 = shl nuw nsw i32 %1164, 3 + %.015.i.i.i = select i1 %1182, i32 %1183, i32 %1164 + %.0.i.i64.i = select i1 %1182, float 1.600000e+01, float 2.560000e+02 + %1184 = shl nuw nsw i32 %.015.i.i.i, 1 + %1185 = and i32 %1184, 64 + %1186 = and i32 %.015.i.i.i, 63 + %1187 = sub nsw i32 %1186, %1185 + %1188 = sitofp i32 %1187 to float + %1189 = and i32 %.015.i.i.i, 2147483584 + %1190 = add nuw nsw i32 %1185, %1189 + %1191 = sitofp i32 %1190 to float + %1192 = fdiv float %1188, %1191 + %1193 = add nuw nsw i32 %1185, %.015.i.i.i + %1194 = lshr i32 %1193, 6 + %1195 = add nuw nsw i32 %1194, 16 + %1196 = zext nneg i32 %1195 to i64 + %1197 = getelementptr inbounds [145 x float], ptr @g_drmp3_pow43, i64 0, i64 %1196 + %1198 = load float, ptr %1197, align 4 + %1199 = call float @llvm.fmuladd.f32(float %1192, float 0x3FCC71C720000000, float 0x3FF5555560000000) + %1200 = call float @llvm.fmuladd.f32(float %1192, float %1199, float 1.000000e+00) + %1201 = fmul float %1200, %1198 + %1202 = fmul float %.0.i.i64.i, %1201 br label %drmp3_L3_pow_43.exit.i.i -drmp3_L3_pow_43.exit.i.i: ; preds = %1183, %1178 - %.014.i.i.i = phi float [ %1182, %1178 ], [ %1204, %1183 ] - %1205 = fmul float %1144, %.014.i.i.i +drmp3_L3_pow_43.exit.i.i: ; preds = %1181, %1176 + %.014.i.i.i = phi float [ %1180, %1176 ], [ %1202, %1181 ] + %1203 = fmul float %1142, %.014.i.i.i %.inv.i.i = icmp sgt i32 %.5236.lcssa.i.i, -1 - %1206 = select i1 %.inv.i.i, i32 1, i32 -1 - %1207 = sitofp i32 %1206 to float - %1208 = fmul float %1205, %1207 - br label %1217 - -1209: ; preds = %1160 - %1210 = lshr i32 %.4235335.i.i, 27 - %.not404.i.i = and i32 %1210, 16 - %1211 = or disjoint i32 %.not404.i.i, %1162 - %1212 = xor i32 %1211, 16 - %1213 = zext nneg i32 %1212 to i64 - %1214 = getelementptr inbounds [145 x float], ptr @g_drmp3_pow43, i64 0, i64 %1213 - %1215 = load float, ptr %1214, align 4 - %1216 = fmul float %1144, %1215 - br label %1217 - -1217: ; preds = %1209, %drmp3_L3_pow_43.exit.i.i - %storemerge.i.i = phi float [ %1216, %1209 ], [ %1208, %drmp3_L3_pow_43.exit.i.i ] - %.5256.i.i = phi ptr [ %.3254334.i.i, %1209 ], [ %.4255.lcssa.i.i, %drmp3_L3_pow_43.exit.i.i ] - %.6237.i.i = phi i32 [ %.4235335.i.i, %1209 ], [ %.5236.lcssa.i.i, %drmp3_L3_pow_43.exit.i.i ] - %.6223.i.i = phi i32 [ %.4221336.i.i, %1209 ], [ %.5222.lcssa.i.i, %drmp3_L3_pow_43.exit.i.i ] - %.0200.i.i = phi i32 [ %1162, %1209 ], [ %1166, %drmp3_L3_pow_43.exit.i.i ] + %1204 = select i1 %.inv.i.i, i32 1, i32 -1 + %1205 = sitofp i32 %1204 to float + %1206 = fmul float %1203, %1205 + br label %1215 + +1207: ; preds = %1158 + %1208 = lshr i32 %.4235335.i.i, 27 + %.not404.i.i = and i32 %1208, 16 + %1209 = or disjoint i32 %.not404.i.i, %1160 + %1210 = xor i32 %1209, 16 + %1211 = zext nneg i32 %1210 to i64 + %1212 = getelementptr inbounds [145 x float], ptr @g_drmp3_pow43, i64 0, i64 %1211 + %1213 = load float, ptr %1212, align 4 + %1214 = fmul float %1142, %1213 + br label %1215 + +1215: ; preds = %1207, %drmp3_L3_pow_43.exit.i.i + %storemerge.i.i = phi float [ %1214, %1207 ], [ %1206, %drmp3_L3_pow_43.exit.i.i ] + %.5256.i.i = phi ptr [ %.3254334.i.i, %1207 ], [ %.4255.lcssa.i.i, %drmp3_L3_pow_43.exit.i.i ] + %.6237.i.i = phi i32 [ %.4235335.i.i, %1207 ], [ %.5236.lcssa.i.i, %drmp3_L3_pow_43.exit.i.i ] + %.6223.i.i = phi i32 [ %.4221336.i.i, %1207 ], [ %.5222.lcssa.i.i, %drmp3_L3_pow_43.exit.i.i ] + %.0200.i.i = phi i32 [ %1160, %1207 ], [ %1164, %drmp3_L3_pow_43.exit.i.i ] store float %storemerge.i.i, ptr %.3339.i.i, align 4 %.not299.i.i = icmp ne i32 %.0200.i.i, 0 - %1218 = zext i1 %.not299.i.i to i32 - %1219 = shl i32 %.6237.i.i, %1218 - %1220 = add nsw i32 %.6223.i.i, %1218 - %1221 = getelementptr inbounds i8, ptr %.3339.i.i, i64 4 - %1222 = lshr i32 %.1202338.i.i, 4 - br i1 %1161, label %1160, label %.preheader304.i.i + %1216 = zext i1 %.not299.i.i to i32 + %1217 = shl i32 %.6237.i.i, %1216 + %1218 = add nsw i32 %.6223.i.i, %1216 + %1219 = getelementptr inbounds i8, ptr %.3339.i.i, i64 4 + %1220 = lshr i32 %.1202338.i.i, 4 + br i1 %1159, label %1158, label %.preheader304.i.i .lr.ph343.i.i: ; preds = %.preheader304.i.i, %.lr.ph343.i.i - %.7224342.i.i = phi i32 [ %1228, %.lr.ph343.i.i ], [ %1220, %.preheader304.i.i ] - %.7238341.i.i = phi i32 [ %1227, %.lr.ph343.i.i ], [ %1219, %.preheader304.i.i ] - %.6257340.i.i = phi ptr [ %1223, %.lr.ph343.i.i ], [ %.5256.i.i, %.preheader304.i.i ] - %1223 = getelementptr inbounds i8, ptr %.6257340.i.i, i64 1 - %1224 = load i8, ptr %.6257340.i.i, align 1 - %1225 = zext i8 %1224 to i32 - %1226 = shl i32 %1225, %.7224342.i.i - %1227 = or i32 %1226, %.7238341.i.i - %1228 = add nsw i32 %.7224342.i.i, -8 - %1229 = icmp ugt i32 %.7224342.i.i, 7 - br i1 %1229, label %.lr.ph343.i.i, label %._crit_edge344.i.i + %.7224342.i.i = phi i32 [ %1226, %.lr.ph343.i.i ], [ %1218, %.preheader304.i.i ] + %.7238341.i.i = phi i32 [ %1225, %.lr.ph343.i.i ], [ %1217, %.preheader304.i.i ] + %.6257340.i.i = phi ptr [ %1221, %.lr.ph343.i.i ], [ %.5256.i.i, %.preheader304.i.i ] + %1221 = getelementptr inbounds i8, ptr %.6257340.i.i, i64 1 + %1222 = load i8, ptr %.6257340.i.i, align 1 + %1223 = zext i8 %1222 to i32 + %1224 = shl i32 %1223, %.7224342.i.i + %1225 = or i32 %1224, %.7238341.i.i + %1226 = add nsw i32 %.7224342.i.i, -8 + %1227 = icmp ugt i32 %.7224342.i.i, 7 + br i1 %1227, label %.lr.ph343.i.i, label %._crit_edge344.i.i ._crit_edge344.i.i: ; preds = %.lr.ph343.i.i, %.preheader304.i.i - %.6257.lcssa.i.i = phi ptr [ %.5256.i.i, %.preheader304.i.i ], [ %1223, %.lr.ph343.i.i ] - %.7238.lcssa.i.i = phi i32 [ %1219, %.preheader304.i.i ], [ %1227, %.lr.ph343.i.i ] - %.7224.lcssa.i.i = phi i32 [ %1220, %.preheader304.i.i ], [ %1228, %.lr.ph343.i.i ] - %1230 = add nsw i32 %.0229.i.i, -1 - %.not298.i.i = icmp eq i32 %1230, 0 - br i1 %.not298.i.i, label %1231, label %1145 - -1231: ; preds = %._crit_edge344.i.i - %1232 = getelementptr inbounds i8, ptr %.1265.i.i, i64 1 - %1233 = getelementptr inbounds i8, ptr %.1190.i.i, i64 4 - %1234 = sub nsw i32 %.1214.i.i, %1142 - %1235 = icmp sgt i32 %1234, 0 - %1236 = add nsw i32 %.0211.i.i, -1 - %1237 = icmp sgt i32 %.0211.i.i, 0 - %or.cond.i.i138 = select i1 %1235, i1 %1237, i1 false - br i1 %or.cond.i.i138, label %1139, label %.critedge.i.i - -.preheader305.i.i: ; preds = %1124, %1281 - %.2266.i.i = phi ptr [ %1282, %1281 ], [ %.0264375.i.i, %1124 ] - %.7258.i.i = phi ptr [ %.9260.lcssa.i.i, %1281 ], [ %.0251376.i.i, %1124 ] - %.8239.i.i = phi i32 [ %.12243.lcssa.i.i, %1281 ], [ %.0231377.i.i, %1124 ] - %.8225.i.i = phi i32 [ %.12.lcssa.i.i, %1281 ], [ %.0217378.i.i, %1124 ] - %.2215.i.i = phi i32 [ %1284, %1281 ], [ %.0213379.i.i, %1124 ] - %.1212.i.i = phi i32 [ %1286, %1281 ], [ %1129, %1124 ] - %.2191.i.i = phi ptr [ %1283, %1281 ], [ %.0189381.i.i, %1124 ] - %.4.i.i = phi ptr [ %1271, %1281 ], [ %.0188382.i.i, %1124 ] - %1238 = load i8, ptr %.2266.i.i, align 1 - %1239 = lshr i8 %1238, 1 - %1240 = zext nneg i8 %1239 to i32 - %1241 = call i32 @llvm.umin.i32(i32 %.2215.i.i, i32 %1240) - %1242 = load float, ptr %.2191.i.i, align 4 - br label %1243 - -1243: ; preds = %._crit_edge371.i.i, %.preheader305.i.i + %.6257.lcssa.i.i = phi ptr [ %.5256.i.i, %.preheader304.i.i ], [ %1221, %.lr.ph343.i.i ] + %.7238.lcssa.i.i = phi i32 [ %1217, %.preheader304.i.i ], [ %1225, %.lr.ph343.i.i ] + %.7224.lcssa.i.i = phi i32 [ %1218, %.preheader304.i.i ], [ %1226, %.lr.ph343.i.i ] + %1228 = add nsw i32 %.0229.i.i, -1 + %.not298.i.i = icmp eq i32 %1228, 0 + br i1 %.not298.i.i, label %1229, label %1143 + +1229: ; preds = %._crit_edge344.i.i + %1230 = getelementptr inbounds i8, ptr %.1265.i.i, i64 1 + %1231 = getelementptr inbounds i8, ptr %.1190.i.i, i64 4 + %1232 = sub nsw i32 %.1214.i.i, %1140 + %1233 = icmp sgt i32 %1232, 0 + %1234 = add nsw i32 %.0211.i.i, -1 + %1235 = icmp sgt i32 %.0211.i.i, 0 + %or.cond.i.i138 = select i1 %1233, i1 %1235, i1 false + br i1 %or.cond.i.i138, label %1137, label %.critedge.i.i + +.preheader305.i.i: ; preds = %1122, %1279 + %.2266.i.i = phi ptr [ %1280, %1279 ], [ %.0264375.i.i, %1122 ] + %.7258.i.i = phi ptr [ %.9260.lcssa.i.i, %1279 ], [ %.0251376.i.i, %1122 ] + %.8239.i.i = phi i32 [ %.12243.lcssa.i.i, %1279 ], [ %.0231377.i.i, %1122 ] + %.8225.i.i = phi i32 [ %.12.lcssa.i.i, %1279 ], [ %.0217378.i.i, %1122 ] + %.2215.i.i = phi i32 [ %1282, %1279 ], [ %.0213379.i.i, %1122 ] + %.1212.i.i = phi i32 [ %1284, %1279 ], [ %1127, %1122 ] + %.2191.i.i = phi ptr [ %1281, %1279 ], [ %.0189381.i.i, %1122 ] + %.4.i.i = phi ptr [ %1269, %1279 ], [ %.0188382.i.i, %1122 ] + %1236 = load i8, ptr %.2266.i.i, align 1 + %1237 = lshr i8 %1236, 1 + %1238 = zext nneg i8 %1237 to i32 + %1239 = call i32 @llvm.umin.i32(i32 %.2215.i.i, i32 %1238) + %1240 = load float, ptr %.2191.i.i, align 4 + br label %1241 + +1241: ; preds = %._crit_edge371.i.i, %.preheader305.i.i %.8259.i.i = phi ptr [ %.7258.i.i, %.preheader305.i.i ], [ %.9260.lcssa.i.i, %._crit_edge371.i.i ] %.9240.i.i = phi i32 [ %.8239.i.i, %.preheader305.i.i ], [ %.12243.lcssa.i.i, %._crit_edge371.i.i ] - %.1230.i.i = phi i32 [ %1241, %.preheader305.i.i ], [ %1280, %._crit_edge371.i.i ] + %.1230.i.i = phi i32 [ %1239, %.preheader305.i.i ], [ %1278, %._crit_edge371.i.i ] %.9.i.i = phi i32 [ %.8225.i.i, %.preheader305.i.i ], [ %.12.lcssa.i.i, %._crit_edge371.i.i ] - %.5.i.i = phi ptr [ %.4.i.i, %.preheader305.i.i ], [ %1271, %._crit_edge371.i.i ] - %1244 = lshr i32 %.9240.i.i, 27 - %.pn348.i.i = zext nneg i32 %1244 to i64 - %.0196.in.in349.i.i = getelementptr inbounds i16, ptr %1134, i64 %.pn348.i.i + %.5.i.i = phi ptr [ %.4.i.i, %.preheader305.i.i ], [ %1269, %._crit_edge371.i.i ] + %1242 = lshr i32 %.9240.i.i, 27 + %.pn348.i.i = zext nneg i32 %1242 to i64 + %.0196.in.in349.i.i = getelementptr inbounds i16, ptr %1132, i64 %.pn348.i.i %.0196.in350.i.i = load i16, ptr %.0196.in.in349.i.i, align 2 %.0196351.i.i = sext i16 %.0196.in350.i.i to i32 - %1245 = icmp slt i16 %.0196.in350.i.i, 0 - br i1 %1245, label %.lr.ph357.i.i, label %._crit_edge358.i.i - -.lr.ph357.i.i: ; preds = %1243, %.lr.ph357.i.i - %.0196355.i.i = phi i32 [ %.0196.i.i, %.lr.ph357.i.i ], [ %.0196351.i.i, %1243 ] - %.0198354.i.i = phi i32 [ %1248, %.lr.ph357.i.i ], [ 5, %1243 ] - %.10353.i.i = phi i32 [ %1247, %.lr.ph357.i.i ], [ %.9.i.i, %1243 ] - %.10241352.i.i = phi i32 [ %1246, %.lr.ph357.i.i ], [ %.9240.i.i, %1243 ] - %1246 = shl i32 %.10241352.i.i, %.0198354.i.i - %1247 = add nsw i32 %.10353.i.i, %.0198354.i.i - %1248 = and i32 %.0196355.i.i, 7 - %1249 = sub nuw nsw i32 32, %1248 - %1250 = lshr i32 %1246, %1249 - %1251 = ashr i32 %.0196355.i.i, 3 - %1252 = sub nsw i32 %1250, %1251 - %.pn.i.i = zext i32 %1252 to i64 - %.0196.in.in.i.i = getelementptr inbounds i16, ptr %1134, i64 %.pn.i.i + %1243 = icmp slt i16 %.0196.in350.i.i, 0 + br i1 %1243, label %.lr.ph357.i.i, label %._crit_edge358.i.i + +.lr.ph357.i.i: ; preds = %1241, %.lr.ph357.i.i + %.0196355.i.i = phi i32 [ %.0196.i.i, %.lr.ph357.i.i ], [ %.0196351.i.i, %1241 ] + %.0198354.i.i = phi i32 [ %1246, %.lr.ph357.i.i ], [ 5, %1241 ] + %.10353.i.i = phi i32 [ %1245, %.lr.ph357.i.i ], [ %.9.i.i, %1241 ] + %.10241352.i.i = phi i32 [ %1244, %.lr.ph357.i.i ], [ %.9240.i.i, %1241 ] + %1244 = shl i32 %.10241352.i.i, %.0198354.i.i + %1245 = add nsw i32 %.10353.i.i, %.0198354.i.i + %1246 = and i32 %.0196355.i.i, 7 + %1247 = sub nuw nsw i32 32, %1246 + %1248 = lshr i32 %1244, %1247 + %1249 = ashr i32 %.0196355.i.i, 3 + %1250 = sub nsw i32 %1248, %1249 + %.pn.i.i = zext i32 %1250 to i64 + %.0196.in.in.i.i = getelementptr inbounds i16, ptr %1132, i64 %.pn.i.i %.0196.in.i.i = load i16, ptr %.0196.in.in.i.i, align 2 %.0196.i.i = sext i16 %.0196.in.i.i to i32 - %1253 = icmp slt i16 %.0196.in.i.i, 0 - br i1 %1253, label %.lr.ph357.i.i, label %._crit_edge358.i.i - -._crit_edge358.i.i: ; preds = %.lr.ph357.i.i, %1243 - %.10241.lcssa.i.i = phi i32 [ %.9240.i.i, %1243 ], [ %1246, %.lr.ph357.i.i ] - %.10.lcssa.i.i = phi i32 [ %.9.i.i, %1243 ], [ %1247, %.lr.ph357.i.i ] - %.0196.lcssa.i.i = phi i32 [ %.0196351.i.i, %1243 ], [ %.0196.i.i, %.lr.ph357.i.i ] - %1254 = lshr i32 %.0196.lcssa.i.i, 8 - %1255 = shl i32 %.10241.lcssa.i.i, %1254 - %1256 = add nsw i32 %1254, %.10.lcssa.i.i - br label %1258 - -.preheader.i66.i: ; preds = %1258 - %1257 = icmp sgt i32 %1270, -1 - br i1 %1257, label %.lr.ph370.i.i, label %._crit_edge371.i.i - -1258: ; preds = %1258, %._crit_edge358.i.i - %.6366.i.i = phi ptr [ %.5.i.i, %._crit_edge358.i.i ], [ %1271, %1258 ] - %.1197365.i.i = phi i32 [ %.0196.lcssa.i.i, %._crit_edge358.i.i ], [ %1272, %1258 ] - %1259 = phi i1 [ true, %._crit_edge358.i.i ], [ false, %1258 ] - %.11363.i.i = phi i32 [ %1256, %._crit_edge358.i.i ], [ %1270, %1258 ] - %.11242362.i.i = phi i32 [ %1255, %._crit_edge358.i.i ], [ %1269, %1258 ] - %1260 = and i32 %.1197365.i.i, 15 - %1261 = lshr i32 %.11242362.i.i, 27 - %.not405.i.i = and i32 %1261, 16 - %1262 = or disjoint i32 %.not405.i.i, %1260 - %1263 = xor i32 %1262, 16 - %1264 = zext nneg i32 %1263 to i64 - %1265 = getelementptr inbounds [145 x float], ptr @g_drmp3_pow43, i64 0, i64 %1264 - %1266 = load float, ptr %1265, align 4 - %1267 = fmul float %1242, %1266 - store float %1267, ptr %.6366.i.i, align 4 - %.not296.i.i = icmp ne i32 %1260, 0 - %1268 = zext i1 %.not296.i.i to i32 - %1269 = shl i32 %.11242362.i.i, %1268 - %1270 = add nsw i32 %.11363.i.i, %1268 - %1271 = getelementptr inbounds i8, ptr %.6366.i.i, i64 4 - %1272 = lshr i32 %.1197365.i.i, 4 - br i1 %1259, label %1258, label %.preheader.i66.i + %1251 = icmp slt i16 %.0196.in.i.i, 0 + br i1 %1251, label %.lr.ph357.i.i, label %._crit_edge358.i.i + +._crit_edge358.i.i: ; preds = %.lr.ph357.i.i, %1241 + %.10241.lcssa.i.i = phi i32 [ %.9240.i.i, %1241 ], [ %1244, %.lr.ph357.i.i ] + %.10.lcssa.i.i = phi i32 [ %.9.i.i, %1241 ], [ %1245, %.lr.ph357.i.i ] + %.0196.lcssa.i.i = phi i32 [ %.0196351.i.i, %1241 ], [ %.0196.i.i, %.lr.ph357.i.i ] + %1252 = lshr i32 %.0196.lcssa.i.i, 8 + %1253 = shl i32 %.10241.lcssa.i.i, %1252 + %1254 = add nsw i32 %1252, %.10.lcssa.i.i + br label %1256 + +.preheader.i66.i: ; preds = %1256 + %1255 = icmp sgt i32 %1268, -1 + br i1 %1255, label %.lr.ph370.i.i, label %._crit_edge371.i.i + +1256: ; preds = %1256, %._crit_edge358.i.i + %.6366.i.i = phi ptr [ %.5.i.i, %._crit_edge358.i.i ], [ %1269, %1256 ] + %.1197365.i.i = phi i32 [ %.0196.lcssa.i.i, %._crit_edge358.i.i ], [ %1270, %1256 ] + %1257 = phi i1 [ true, %._crit_edge358.i.i ], [ false, %1256 ] + %.11363.i.i = phi i32 [ %1254, %._crit_edge358.i.i ], [ %1268, %1256 ] + %.11242362.i.i = phi i32 [ %1253, %._crit_edge358.i.i ], [ %1267, %1256 ] + %1258 = and i32 %.1197365.i.i, 15 + %1259 = lshr i32 %.11242362.i.i, 27 + %.not405.i.i = and i32 %1259, 16 + %1260 = or disjoint i32 %.not405.i.i, %1258 + %1261 = xor i32 %1260, 16 + %1262 = zext nneg i32 %1261 to i64 + %1263 = getelementptr inbounds [145 x float], ptr @g_drmp3_pow43, i64 0, i64 %1262 + %1264 = load float, ptr %1263, align 4 + %1265 = fmul float %1240, %1264 + store float %1265, ptr %.6366.i.i, align 4 + %.not296.i.i = icmp ne i32 %1258, 0 + %1266 = zext i1 %.not296.i.i to i32 + %1267 = shl i32 %.11242362.i.i, %1266 + %1268 = add nsw i32 %.11363.i.i, %1266 + %1269 = getelementptr inbounds i8, ptr %.6366.i.i, i64 4 + %1270 = lshr i32 %.1197365.i.i, 4 + br i1 %1257, label %1256, label %.preheader.i66.i .lr.ph370.i.i: ; preds = %.preheader.i66.i, %.lr.ph370.i.i - %.12369.i.i = phi i32 [ %1278, %.lr.ph370.i.i ], [ %1270, %.preheader.i66.i ] - %.12243368.i.i = phi i32 [ %1277, %.lr.ph370.i.i ], [ %1269, %.preheader.i66.i ] - %.9260367.i.i = phi ptr [ %1273, %.lr.ph370.i.i ], [ %.8259.i.i, %.preheader.i66.i ] - %1273 = getelementptr inbounds i8, ptr %.9260367.i.i, i64 1 - %1274 = load i8, ptr %.9260367.i.i, align 1 - %1275 = zext i8 %1274 to i32 - %1276 = shl i32 %1275, %.12369.i.i - %1277 = or i32 %1276, %.12243368.i.i - %1278 = add nsw i32 %.12369.i.i, -8 - %1279 = icmp ugt i32 %.12369.i.i, 7 - br i1 %1279, label %.lr.ph370.i.i, label %._crit_edge371.i.i + %.12369.i.i = phi i32 [ %1276, %.lr.ph370.i.i ], [ %1268, %.preheader.i66.i ] + %.12243368.i.i = phi i32 [ %1275, %.lr.ph370.i.i ], [ %1267, %.preheader.i66.i ] + %.9260367.i.i = phi ptr [ %1271, %.lr.ph370.i.i ], [ %.8259.i.i, %.preheader.i66.i ] + %1271 = getelementptr inbounds i8, ptr %.9260367.i.i, i64 1 + %1272 = load i8, ptr %.9260367.i.i, align 1 + %1273 = zext i8 %1272 to i32 + %1274 = shl i32 %1273, %.12369.i.i + %1275 = or i32 %1274, %.12243368.i.i + %1276 = add nsw i32 %.12369.i.i, -8 + %1277 = icmp ugt i32 %.12369.i.i, 7 + br i1 %1277, label %.lr.ph370.i.i, label %._crit_edge371.i.i ._crit_edge371.i.i: ; preds = %.lr.ph370.i.i, %.preheader.i66.i - %.9260.lcssa.i.i = phi ptr [ %.8259.i.i, %.preheader.i66.i ], [ %1273, %.lr.ph370.i.i ] - %.12243.lcssa.i.i = phi i32 [ %1269, %.preheader.i66.i ], [ %1277, %.lr.ph370.i.i ] - %.12.lcssa.i.i = phi i32 [ %1270, %.preheader.i66.i ], [ %1278, %.lr.ph370.i.i ] - %1280 = add nsw i32 %.1230.i.i, -1 - %.not295.i.i = icmp eq i32 %1280, 0 - br i1 %.not295.i.i, label %1281, label %1243 - -1281: ; preds = %._crit_edge371.i.i - %1282 = getelementptr inbounds i8, ptr %.2266.i.i, i64 1 - %1283 = getelementptr inbounds i8, ptr %.2191.i.i, i64 4 - %1284 = sub nsw i32 %.2215.i.i, %1240 - %1285 = icmp sgt i32 %1284, 0 - %1286 = add nsw i32 %.1212.i.i, -1 - %1287 = icmp sgt i32 %.1212.i.i, 0 - %or.cond302.i.i = select i1 %1285, i1 %1287, i1 false + %.9260.lcssa.i.i = phi ptr [ %.8259.i.i, %.preheader.i66.i ], [ %1271, %.lr.ph370.i.i ] + %.12243.lcssa.i.i = phi i32 [ %1267, %.preheader.i66.i ], [ %1275, %.lr.ph370.i.i ] + %.12.lcssa.i.i = phi i32 [ %1268, %.preheader.i66.i ], [ %1276, %.lr.ph370.i.i ] + %1278 = add nsw i32 %.1230.i.i, -1 + %.not295.i.i = icmp eq i32 %1278, 0 + br i1 %.not295.i.i, label %1279, label %1241 + +1279: ; preds = %._crit_edge371.i.i + %1280 = getelementptr inbounds i8, ptr %.2266.i.i, i64 1 + %1281 = getelementptr inbounds i8, ptr %.2191.i.i, i64 4 + %1282 = sub nsw i32 %.2215.i.i, %1238 + %1283 = icmp sgt i32 %1282, 0 + %1284 = add nsw i32 %.1212.i.i, -1 + %1285 = icmp sgt i32 %.1212.i.i, 0 + %or.cond302.i.i = select i1 %1283, i1 %1285, i1 false br i1 %or.cond302.i.i, label %.preheader305.i.i, label %.critedge.i.i -.critedge.i.i: ; preds = %1231, %1281 - %.3267.i.i = phi ptr [ %1282, %1281 ], [ %1232, %1231 ] - %.10261.i.i = phi ptr [ %.9260.lcssa.i.i, %1281 ], [ %.6257.lcssa.i.i, %1231 ] - %.13244.i.i = phi i32 [ %.12243.lcssa.i.i, %1281 ], [ %.7238.lcssa.i.i, %1231 ] - %.13.i.i = phi i32 [ %.12.lcssa.i.i, %1281 ], [ %.7224.lcssa.i.i, %1231 ] - %.3216.i.i = phi i32 [ %1284, %1281 ], [ %1234, %1231 ] - %.1206.i.i = phi float [ %1242, %1281 ], [ %1144, %1231 ] - %.3192.i.i = phi ptr [ %1283, %1281 ], [ %1233, %1231 ] - %.7.i.i = phi ptr [ %1271, %1281 ], [ %1221, %1231 ] - %1288 = icmp sgt i32 %.3216.i.i, 0 - br i1 %1288, label %1124, label %._crit_edge385.i.i +.critedge.i.i: ; preds = %1229, %1279 + %.3267.i.i = phi ptr [ %1280, %1279 ], [ %1230, %1229 ] + %.10261.i.i = phi ptr [ %.9260.lcssa.i.i, %1279 ], [ %.6257.lcssa.i.i, %1229 ] + %.13244.i.i = phi i32 [ %.12243.lcssa.i.i, %1279 ], [ %.7238.lcssa.i.i, %1229 ] + %.13.i.i = phi i32 [ %.12.lcssa.i.i, %1279 ], [ %.7224.lcssa.i.i, %1229 ] + %.3216.i.i = phi i32 [ %1282, %1279 ], [ %1232, %1229 ] + %.1206.i.i = phi float [ %1240, %1279 ], [ %1142, %1229 ] + %.3192.i.i = phi ptr [ %1281, %1279 ], [ %1231, %1229 ] + %.7.i.i = phi ptr [ %1269, %1279 ], [ %1219, %1229 ] + %1286 = icmp sgt i32 %.3216.i.i, 0 + br i1 %1286, label %1122, label %._crit_edge385.i.i ._crit_edge385.i.i: ; preds = %.critedge.i.i, %drmp3_L3_decode_scalefactors.exit.i - %.0264.lcssa.i.i = phi ptr [ %1094, %drmp3_L3_decode_scalefactors.exit.i ], [ %.3267.i.i, %.critedge.i.i ] - %.0251.lcssa.i.i = phi ptr [ %1120, %drmp3_L3_decode_scalefactors.exit.i ], [ %.10261.i.i, %.critedge.i.i ] - %.0231.lcssa.i.i = phi i32 [ %1118, %drmp3_L3_decode_scalefactors.exit.i ], [ %.13244.i.i, %.critedge.i.i ] - %.0217.lcssa.i.i = phi i32 [ %1119, %drmp3_L3_decode_scalefactors.exit.i ], [ %.13.i.i, %.critedge.i.i ] + %.0264.lcssa.i.i = phi ptr [ %1092, %drmp3_L3_decode_scalefactors.exit.i ], [ %.3267.i.i, %.critedge.i.i ] + %.0251.lcssa.i.i = phi ptr [ %1118, %drmp3_L3_decode_scalefactors.exit.i ], [ %.10261.i.i, %.critedge.i.i ] + %.0231.lcssa.i.i = phi i32 [ %1116, %drmp3_L3_decode_scalefactors.exit.i ], [ %.13244.i.i, %.critedge.i.i ] + %.0217.lcssa.i.i = phi i32 [ %1117, %drmp3_L3_decode_scalefactors.exit.i ], [ %.13.i.i, %.critedge.i.i ] %.0213.lcssa.i.i = phi i32 [ 0, %drmp3_L3_decode_scalefactors.exit.i ], [ %.3216.i.i, %.critedge.i.i ] %.0205.lcssa.i.i = phi float [ 0.000000e+00, %drmp3_L3_decode_scalefactors.exit.i ], [ %.1206.i.i, %.critedge.i.i ] %.0189.lcssa.i.i = phi ptr [ %857, %drmp3_L3_decode_scalefactors.exit.i ], [ %.3192.i.i, %.critedge.i.i ] - %.0188.lcssa.i.i = phi ptr [ %1091, %drmp3_L3_decode_scalefactors.exit.i ], [ %.7.i.i, %.critedge.i.i ] - %1289 = sub nsw i32 1, %.0213.lcssa.i.i - %1290 = getelementptr inbounds i8, ptr %888, i64 30 - %1291 = sext i32 %892 to i64 - br label %1292 + %.0188.lcssa.i.i = phi ptr [ %1089, %drmp3_L3_decode_scalefactors.exit.i ], [ %.7.i.i, %.critedge.i.i ] + %1287 = sub nsw i32 1, %.0213.lcssa.i.i + %1288 = getelementptr inbounds i8, ptr %888, i64 30 + %1289 = sext i32 %892 to i64 + br label %1290 -1292: ; preds = %._crit_edge399.i.i, %._crit_edge385.i.i +1290: ; preds = %._crit_edge399.i.i, %._crit_edge385.i.i %.4268.i.i = phi ptr [ %.0264.lcssa.i.i, %._crit_edge385.i.i ], [ %.6270.i.i, %._crit_edge399.i.i ] %.11262.i.i = phi ptr [ %.0251.lcssa.i.i, %._crit_edge385.i.i ], [ %.12263.lcssa.i.i, %._crit_edge399.i.i ] %.14245.i.i = phi i32 [ %.0231.lcssa.i.i, %._crit_edge385.i.i ], [ %.19250.lcssa.i.i, %._crit_edge399.i.i ] - %.0226.i.i = phi i32 [ %1289, %._crit_edge385.i.i ], [ %.2228.i.i, %._crit_edge399.i.i ] + %.0226.i.i = phi i32 [ %1287, %._crit_edge385.i.i ], [ %.2228.i.i, %._crit_edge399.i.i ] %.14.i.i = phi i32 [ %.0217.lcssa.i.i, %._crit_edge385.i.i ], [ %.19.lcssa.i.i, %._crit_edge399.i.i ] %.2207.i.i = phi float [ %.0205.lcssa.i.i, %._crit_edge385.i.i ], [ %.4209.i.i, %._crit_edge399.i.i ] %.4193.i.i = phi ptr [ %.0189.lcssa.i.i, %._crit_edge385.i.i ], [ %.6195.i.i, %._crit_edge399.i.i ] - %.8.i.i = phi ptr [ %.0188.lcssa.i.i, %._crit_edge385.i.i ], [ %1393, %._crit_edge399.i.i ] - %1293 = load i8, ptr %1290, align 2 - %.not.i62.i = icmp eq i8 %1293, 0 - %1294 = select i1 %.not.i62.i, ptr @drmp3_L3_huffman.tab32, ptr @drmp3_L3_huffman.tab33 - %1295 = lshr i32 %.14245.i.i, 28 - %1296 = zext nneg i32 %1295 to i64 - %1297 = getelementptr inbounds i8, ptr %1294, i64 %1296 - %1298 = load i8, ptr %1297, align 1 - %1299 = zext i8 %1298 to i32 - %1300 = and i32 %1299, 8 - %.not285.i.i = icmp eq i32 %1300, 0 - br i1 %.not285.i.i, label %1301, label %1312 - -1301: ; preds = %1292 - %1302 = lshr i32 %1299, 3 - %1303 = shl i32 %.14245.i.i, 4 - %1304 = and i32 %1299, 3 - %1305 = sub nuw nsw i32 32, %1304 - %1306 = lshr i32 %1303, %1305 - %1307 = add nuw nsw i32 %1306, %1302 - %1308 = zext nneg i32 %1307 to i64 - %1309 = getelementptr inbounds i8, ptr %1294, i64 %1308 - %1310 = load i8, ptr %1309, align 1 - %1311 = zext i8 %1310 to i32 - br label %1312 - -1312: ; preds = %1301, %1292 - %.0.i63.i = phi i32 [ %1299, %1292 ], [ %1311, %1301 ] - %1313 = and i32 %.0.i63.i, 7 - %1314 = shl i32 %.14245.i.i, %1313 - %1315 = add nsw i32 %1313, %.14.i.i - %1316 = load ptr, ptr %15, align 8 - %1317 = ptrtoint ptr %.11262.i.i to i64 - %1318 = ptrtoint ptr %1316 to i64 - %1319 = sub i64 %1317, %1318 - %1320 = shl nsw i64 %1319, 3 - %1321 = sext i32 %1315 to i64 - %1322 = add nsw i64 %1321, -24 - %1323 = add i64 %1322, %1320 - %1324 = icmp sgt i64 %1323, %1291 - br i1 %1324, label %drmp3_L3_huffman.exit.i, label %1325 - -1325: ; preds = %1312 - %1326 = add nsw i32 %.0226.i.i, -1 - %.not286.i.i = icmp eq i32 %1326, 0 - br i1 %.not286.i.i, label %1327, label %1335 + %.8.i.i = phi ptr [ %.0188.lcssa.i.i, %._crit_edge385.i.i ], [ %1391, %._crit_edge399.i.i ] + %1291 = load i8, ptr %1288, align 2 + %.not.i62.i = icmp eq i8 %1291, 0 + %1292 = select i1 %.not.i62.i, ptr @drmp3_L3_huffman.tab32, ptr @drmp3_L3_huffman.tab33 + %1293 = lshr i32 %.14245.i.i, 28 + %1294 = zext nneg i32 %1293 to i64 + %1295 = getelementptr inbounds i8, ptr %1292, i64 %1294 + %1296 = load i8, ptr %1295, align 1 + %1297 = zext i8 %1296 to i32 + %1298 = and i32 %1297, 8 + %.not285.i.i = icmp eq i32 %1298, 0 + br i1 %.not285.i.i, label %1299, label %1310 + +1299: ; preds = %1290 + %1300 = lshr i32 %1297, 3 + %1301 = shl i32 %.14245.i.i, 4 + %1302 = and i32 %1297, 3 + %1303 = sub nuw nsw i32 32, %1302 + %1304 = lshr i32 %1301, %1303 + %1305 = add nuw nsw i32 %1304, %1300 + %1306 = zext nneg i32 %1305 to i64 + %1307 = getelementptr inbounds i8, ptr %1292, i64 %1306 + %1308 = load i8, ptr %1307, align 1 + %1309 = zext i8 %1308 to i32 + br label %1310 + +1310: ; preds = %1299, %1290 + %.0.i63.i = phi i32 [ %1297, %1290 ], [ %1309, %1299 ] + %1311 = and i32 %.0.i63.i, 7 + %1312 = shl i32 %.14245.i.i, %1311 + %1313 = add nsw i32 %1311, %.14.i.i + %1314 = load ptr, ptr %15, align 8 + %1315 = ptrtoint ptr %.11262.i.i to i64 + %1316 = ptrtoint ptr %1314 to i64 + %1317 = sub i64 %1315, %1316 + %1318 = shl nsw i64 %1317, 3 + %1319 = sext i32 %1313 to i64 + %1320 = add nsw i64 %1319, -24 + %1321 = add i64 %1320, %1318 + %1322 = icmp sgt i64 %1321, %1289 + br i1 %1322, label %drmp3_L3_huffman.exit.i, label %1323 + +1323: ; preds = %1310 + %1324 = add nsw i32 %.0226.i.i, -1 + %.not286.i.i = icmp eq i32 %1324, 0 + br i1 %.not286.i.i, label %1325, label %1333 + +1325: ; preds = %1323 + %1326 = load i8, ptr %.4268.i.i, align 1 + %.not287.i.i = icmp ult i8 %1326, 2 + br i1 %.not287.i.i, label %drmp3_L3_huffman.exit.i, label %1327 1327: ; preds = %1325 - %1328 = load i8, ptr %.4268.i.i, align 1 - %.not287.i.i = icmp ult i8 %1328, 2 - br i1 %.not287.i.i, label %drmp3_L3_huffman.exit.i, label %1329 - -1329: ; preds = %1327 - %1330 = lshr i8 %1328, 1 - %1331 = zext nneg i8 %1330 to i32 - %1332 = getelementptr inbounds i8, ptr %.4268.i.i, i64 1 - %1333 = getelementptr inbounds i8, ptr %.4193.i.i, i64 4 - %1334 = load float, ptr %.4193.i.i, align 4 - br label %1335 - -1335: ; preds = %1329, %1325 - %.5269.i.i = phi ptr [ %.4268.i.i, %1325 ], [ %1332, %1329 ] - %.1227.i.i = phi i32 [ %1326, %1325 ], [ %1331, %1329 ] - %.3208.i.i = phi float [ %.2207.i.i, %1325 ], [ %1334, %1329 ] - %.5194.i.i = phi ptr [ %.4193.i.i, %1325 ], [ %1333, %1329 ] + %1328 = lshr i8 %1326, 1 + %1329 = zext nneg i8 %1328 to i32 + %1330 = getelementptr inbounds i8, ptr %.4268.i.i, i64 1 + %1331 = getelementptr inbounds i8, ptr %.4193.i.i, i64 4 + %1332 = load float, ptr %.4193.i.i, align 4 + br label %1333 + +1333: ; preds = %1327, %1323 + %.5269.i.i = phi ptr [ %.4268.i.i, %1323 ], [ %1330, %1327 ] + %.1227.i.i = phi i32 [ %1324, %1323 ], [ %1329, %1327 ] + %.3208.i.i = phi float [ %.2207.i.i, %1323 ], [ %1332, %1327 ] + %.5194.i.i = phi ptr [ %.4193.i.i, %1323 ], [ %1331, %1327 ] %.not288.i.i = icmp ult i32 %.0.i63.i, 128 - br i1 %.not288.i.i, label %1342, label %1336 - -1336: ; preds = %1335 - %1337 = icmp slt i32 %1314, 0 - %1338 = fneg float %.3208.i.i - %1339 = select i1 %1337, float %1338, float %.3208.i.i - store float %1339, ptr %.8.i.i, align 4 - %1340 = shl i32 %1314, 1 - %1341 = add nsw i32 %1315, 1 - br label %1342 - -1342: ; preds = %1336, %1335 - %.15246.i.i = phi i32 [ %1340, %1336 ], [ %1314, %1335 ] - %.15.i.i = phi i32 [ %1341, %1336 ], [ %1315, %1335 ] - %1343 = and i32 %.0.i63.i, 64 - %.not289.i.i = icmp eq i32 %1343, 0 - br i1 %.not289.i.i, label %1351, label %1344 - -1344: ; preds = %1342 - %1345 = icmp slt i32 %.15246.i.i, 0 - %1346 = fneg float %.3208.i.i - %1347 = select i1 %1345, float %1346, float %.3208.i.i - %1348 = getelementptr inbounds i8, ptr %.8.i.i, i64 4 - store float %1347, ptr %1348, align 4 - %1349 = shl i32 %.15246.i.i, 1 - %1350 = add nsw i32 %.15.i.i, 1 - br label %1351 - -1351: ; preds = %1344, %1342 - %.16247.i.i = phi i32 [ %1349, %1344 ], [ %.15246.i.i, %1342 ] - %.16.i.i = phi i32 [ %1350, %1344 ], [ %.15.i.i, %1342 ] - %1352 = add nsw i32 %.1227.i.i, -1 - %.not290.i.i = icmp eq i32 %1352, 0 - br i1 %.not290.i.i, label %1353, label %1361 + br i1 %.not288.i.i, label %1340, label %1334 + +1334: ; preds = %1333 + %1335 = icmp slt i32 %1312, 0 + %1336 = fneg float %.3208.i.i + %1337 = select i1 %1335, float %1336, float %.3208.i.i + store float %1337, ptr %.8.i.i, align 4 + %1338 = shl i32 %1312, 1 + %1339 = add nsw i32 %1313, 1 + br label %1340 + +1340: ; preds = %1334, %1333 + %.15246.i.i = phi i32 [ %1338, %1334 ], [ %1312, %1333 ] + %.15.i.i = phi i32 [ %1339, %1334 ], [ %1313, %1333 ] + %1341 = and i32 %.0.i63.i, 64 + %.not289.i.i = icmp eq i32 %1341, 0 + br i1 %.not289.i.i, label %1349, label %1342 + +1342: ; preds = %1340 + %1343 = icmp slt i32 %.15246.i.i, 0 + %1344 = fneg float %.3208.i.i + %1345 = select i1 %1343, float %1344, float %.3208.i.i + %1346 = getelementptr inbounds i8, ptr %.8.i.i, i64 4 + store float %1345, ptr %1346, align 4 + %1347 = shl i32 %.15246.i.i, 1 + %1348 = add nsw i32 %.15.i.i, 1 + br label %1349 + +1349: ; preds = %1342, %1340 + %.16247.i.i = phi i32 [ %1347, %1342 ], [ %.15246.i.i, %1340 ] + %.16.i.i = phi i32 [ %1348, %1342 ], [ %.15.i.i, %1340 ] + %1350 = add nsw i32 %.1227.i.i, -1 + %.not290.i.i = icmp eq i32 %1350, 0 + br i1 %.not290.i.i, label %1351, label %1359 + +1351: ; preds = %1349 + %1352 = load i8, ptr %.5269.i.i, align 1 + %.not291.i.i = icmp ult i8 %1352, 2 + br i1 %.not291.i.i, label %drmp3_L3_huffman.exit.i, label %1353 1353: ; preds = %1351 - %1354 = load i8, ptr %.5269.i.i, align 1 - %.not291.i.i = icmp ult i8 %1354, 2 - br i1 %.not291.i.i, label %drmp3_L3_huffman.exit.i, label %1355 - -1355: ; preds = %1353 - %1356 = lshr i8 %1354, 1 - %1357 = zext nneg i8 %1356 to i32 - %1358 = getelementptr inbounds i8, ptr %.5269.i.i, i64 1 - %1359 = getelementptr inbounds i8, ptr %.5194.i.i, i64 4 - %1360 = load float, ptr %.5194.i.i, align 4 - br label %1361 - -1361: ; preds = %1355, %1351 - %.6270.i.i = phi ptr [ %.5269.i.i, %1351 ], [ %1358, %1355 ] - %.2228.i.i = phi i32 [ %1352, %1351 ], [ %1357, %1355 ] - %.4209.i.i = phi float [ %.3208.i.i, %1351 ], [ %1360, %1355 ] - %.6195.i.i = phi ptr [ %.5194.i.i, %1351 ], [ %1359, %1355 ] - %1362 = and i32 %.0.i63.i, 32 - %.not292.i.i = icmp eq i32 %1362, 0 - br i1 %.not292.i.i, label %1370, label %1363 - -1363: ; preds = %1361 - %1364 = icmp slt i32 %.16247.i.i, 0 - %1365 = fneg float %.4209.i.i - %1366 = select i1 %1364, float %1365, float %.4209.i.i - %1367 = getelementptr inbounds i8, ptr %.8.i.i, i64 8 - store float %1366, ptr %1367, align 4 - %1368 = shl i32 %.16247.i.i, 1 - %1369 = add nsw i32 %.16.i.i, 1 - br label %1370 - -1370: ; preds = %1363, %1361 - %.17248.i.i = phi i32 [ %1368, %1363 ], [ %.16247.i.i, %1361 ] - %.17.i.i = phi i32 [ %1369, %1363 ], [ %.16.i.i, %1361 ] - %1371 = and i32 %.0.i63.i, 16 - %.not293.i.i = icmp eq i32 %1371, 0 - br i1 %.not293.i.i, label %1379, label %1372 - -1372: ; preds = %1370 - %1373 = icmp slt i32 %.17248.i.i, 0 - %1374 = fneg float %.4209.i.i - %1375 = select i1 %1373, float %1374, float %.4209.i.i - %1376 = getelementptr inbounds i8, ptr %.8.i.i, i64 12 - store float %1375, ptr %1376, align 4 - %1377 = shl i32 %.17248.i.i, 1 - %1378 = add nsw i32 %.17.i.i, 1 - br label %1379 - -1379: ; preds = %1372, %1370 - %.18249.i.i = phi i32 [ %1377, %1372 ], [ %.17248.i.i, %1370 ] - %.18.i.i = phi i32 [ %1378, %1372 ], [ %.17.i.i, %1370 ] - %1380 = icmp sgt i32 %.18.i.i, -1 - br i1 %1380, label %.lr.ph398.i.preheader.i, label %._crit_edge399.i.i - -.lr.ph398.i.preheader.i: ; preds = %1379 + %1354 = lshr i8 %1352, 1 + %1355 = zext nneg i8 %1354 to i32 + %1356 = getelementptr inbounds i8, ptr %.5269.i.i, i64 1 + %1357 = getelementptr inbounds i8, ptr %.5194.i.i, i64 4 + %1358 = load float, ptr %.5194.i.i, align 4 + br label %1359 + +1359: ; preds = %1353, %1349 + %.6270.i.i = phi ptr [ %.5269.i.i, %1349 ], [ %1356, %1353 ] + %.2228.i.i = phi i32 [ %1350, %1349 ], [ %1355, %1353 ] + %.4209.i.i = phi float [ %.3208.i.i, %1349 ], [ %1358, %1353 ] + %.6195.i.i = phi ptr [ %.5194.i.i, %1349 ], [ %1357, %1353 ] + %1360 = and i32 %.0.i63.i, 32 + %.not292.i.i = icmp eq i32 %1360, 0 + br i1 %.not292.i.i, label %1368, label %1361 + +1361: ; preds = %1359 + %1362 = icmp slt i32 %.16247.i.i, 0 + %1363 = fneg float %.4209.i.i + %1364 = select i1 %1362, float %1363, float %.4209.i.i + %1365 = getelementptr inbounds i8, ptr %.8.i.i, i64 8 + store float %1364, ptr %1365, align 4 + %1366 = shl i32 %.16247.i.i, 1 + %1367 = add nsw i32 %.16.i.i, 1 + br label %1368 + +1368: ; preds = %1361, %1359 + %.17248.i.i = phi i32 [ %1366, %1361 ], [ %.16247.i.i, %1359 ] + %.17.i.i = phi i32 [ %1367, %1361 ], [ %.16.i.i, %1359 ] + %1369 = and i32 %.0.i63.i, 16 + %.not293.i.i = icmp eq i32 %1369, 0 + br i1 %.not293.i.i, label %1377, label %1370 + +1370: ; preds = %1368 + %1371 = icmp slt i32 %.17248.i.i, 0 + %1372 = fneg float %.4209.i.i + %1373 = select i1 %1371, float %1372, float %.4209.i.i + %1374 = getelementptr inbounds i8, ptr %.8.i.i, i64 12 + store float %1373, ptr %1374, align 4 + %1375 = shl i32 %.17248.i.i, 1 + %1376 = add nsw i32 %.17.i.i, 1 + br label %1377 + +1377: ; preds = %1370, %1368 + %.18249.i.i = phi i32 [ %1375, %1370 ], [ %.17248.i.i, %1368 ] + %.18.i.i = phi i32 [ %1376, %1370 ], [ %.17.i.i, %1368 ] + %1378 = icmp sgt i32 %.18.i.i, -1 + br i1 %1378, label %.lr.ph398.i.preheader.i, label %._crit_edge399.i.i + +.lr.ph398.i.preheader.i: ; preds = %1377 %scevgep.i = getelementptr i8, ptr %.11262.i.i, i64 1 - %1381 = lshr i32 %.18.i.i, 3 - %1382 = zext nneg i32 %1381 to i64 - %scevgep186.i = getelementptr i8, ptr %scevgep.i, i64 %1382 + %1379 = lshr i32 %.18.i.i, 3 + %1380 = zext nneg i32 %1379 to i64 + %scevgep186.i = getelementptr i8, ptr %scevgep.i, i64 %1380 br label %.lr.ph398.i.i .lr.ph398.i.i: ; preds = %.lr.ph398.i.i, %.lr.ph398.i.preheader.i - %.19396.i.i = phi i32 [ %1388, %.lr.ph398.i.i ], [ %.18.i.i, %.lr.ph398.i.preheader.i ] - %.19250395.i.i = phi i32 [ %1387, %.lr.ph398.i.i ], [ %.18249.i.i, %.lr.ph398.i.preheader.i ] - %.12263394.i.i = phi ptr [ %1383, %.lr.ph398.i.i ], [ %.11262.i.i, %.lr.ph398.i.preheader.i ] - %1383 = getelementptr inbounds i8, ptr %.12263394.i.i, i64 1 - %1384 = load i8, ptr %.12263394.i.i, align 1 - %1385 = zext i8 %1384 to i32 - %1386 = shl i32 %1385, %.19396.i.i - %1387 = or i32 %1386, %.19250395.i.i - %1388 = add nsw i32 %.19396.i.i, -8 - %1389 = icmp ugt i32 %.19396.i.i, 7 - br i1 %1389, label %.lr.ph398.i.i, label %._crit_edge399.i.loopexit.i + %.19396.i.i = phi i32 [ %1386, %.lr.ph398.i.i ], [ %.18.i.i, %.lr.ph398.i.preheader.i ] + %.19250395.i.i = phi i32 [ %1385, %.lr.ph398.i.i ], [ %.18249.i.i, %.lr.ph398.i.preheader.i ] + %.12263394.i.i = phi ptr [ %1381, %.lr.ph398.i.i ], [ %.11262.i.i, %.lr.ph398.i.preheader.i ] + %1381 = getelementptr inbounds i8, ptr %.12263394.i.i, i64 1 + %1382 = load i8, ptr %.12263394.i.i, align 1 + %1383 = zext i8 %1382 to i32 + %1384 = shl i32 %1383, %.19396.i.i + %1385 = or i32 %1384, %.19250395.i.i + %1386 = add nsw i32 %.19396.i.i, -8 + %1387 = icmp ugt i32 %.19396.i.i, 7 + br i1 %1387, label %.lr.ph398.i.i, label %._crit_edge399.i.loopexit.i ._crit_edge399.i.loopexit.i: ; preds = %.lr.ph398.i.i - %1390 = and i32 %.18.i.i, 2147483640 - %1391 = add nsw i32 %.18.i.i, -8 - %1392 = sub i32 %1391, %1390 + %1388 = and i32 %.18.i.i, 2147483640 + %1389 = add nsw i32 %.18.i.i, -8 + %1390 = sub i32 %1389, %1388 br label %._crit_edge399.i.i -._crit_edge399.i.i: ; preds = %._crit_edge399.i.loopexit.i, %1379 - %.12263.lcssa.i.i = phi ptr [ %.11262.i.i, %1379 ], [ %scevgep186.i, %._crit_edge399.i.loopexit.i ] - %.19250.lcssa.i.i = phi i32 [ %.18249.i.i, %1379 ], [ %1387, %._crit_edge399.i.loopexit.i ] - %.19.lcssa.i.i = phi i32 [ %.18.i.i, %1379 ], [ %1392, %._crit_edge399.i.loopexit.i ] - %1393 = getelementptr inbounds i8, ptr %.8.i.i, i64 16 - br label %1292 +._crit_edge399.i.i: ; preds = %._crit_edge399.i.loopexit.i, %1377 + %.12263.lcssa.i.i = phi ptr [ %.11262.i.i, %1377 ], [ %scevgep186.i, %._crit_edge399.i.loopexit.i ] + %.19250.lcssa.i.i = phi i32 [ %.18249.i.i, %1377 ], [ %1385, %._crit_edge399.i.loopexit.i ] + %.19.lcssa.i.i = phi i32 [ %.18.i.i, %1377 ], [ %1390, %._crit_edge399.i.loopexit.i ] + %1391 = getelementptr inbounds i8, ptr %.8.i.i, i64 16 + br label %1290 -drmp3_L3_huffman.exit.i: ; preds = %1353, %1327, %1312 +drmp3_L3_huffman.exit.i: ; preds = %1351, %1325, %1310 store i32 %892, ptr %848, align 8 %indvars.iv.next.i139 = add nuw nsw i64 %indvars.iv.i133, 1 %exitcond.not.i140 = icmp eq i64 %indvars.iv.next.i139, %wide.trip.count.i132 br i1 %exitcond.not.i140, label %._crit_edge.i128, label %886 ._crit_edge.i128: ; preds = %drmp3_L3_huffman.exit.i, %879 - %1394 = load i8, ptr %855, align 1 - %1395 = zext i8 %1394 to i32 - %1396 = and i32 %1395, 16 - %.not.i129 = icmp eq i32 %1396, 0 - br i1 %.not.i129, label %1540, label %1397 + %1392 = load i8, ptr %855, align 1 + %1393 = zext i8 %1392 to i32 + %1394 = and i32 %1393, 16 + %.not.i129 = icmp eq i32 %1394, 0 + br i1 %.not.i129, label %1538, label %1395 -1397: ; preds = %._crit_edge.i128 +1395: ; preds = %._crit_edge.i128 call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %12) - %1398 = getelementptr inbounds i8, ptr %884, i64 17 - %1399 = load i8, ptr %1398, align 1 - %1400 = zext i8 %1399 to i32 - %1401 = getelementptr inbounds i8, ptr %884, i64 18 - %1402 = load i8, ptr %1401, align 2 - %1403 = zext i8 %1402 to i32 - %1404 = add nuw nsw i32 %1403, %1400 - %.not.i67.i = icmp eq i8 %1402, 0 - %1405 = select i1 %.not.i67.i, i32 1, i32 3 - %1406 = load ptr, ptr %884, align 8 + %1396 = getelementptr inbounds i8, ptr %884, i64 17 + %1397 = load i8, ptr %1396, align 1 + %1398 = zext i8 %1397 to i32 + %1399 = getelementptr inbounds i8, ptr %884, i64 18 + %1400 = load i8, ptr %1399, align 2 + %1401 = zext i8 %1400 to i32 + %1402 = add nuw nsw i32 %1401, %1398 + %.not.i67.i = icmp eq i8 %1400, 0 + %1403 = select i1 %.not.i67.i, i32 1, i32 3 + %1404 = load ptr, ptr %884, align 8 store i32 -1, ptr %863, align 4 store i32 -1, ptr %864, align 4 store i32 -1, ptr %12, align 4 - %.not36.i.i = icmp eq i32 %1404, 0 + %.not36.i.i = icmp eq i32 %1402, 0 br i1 %.not36.i.i, label %drmp3_L3_stereo_top_band.exit.i.i, label %.preheader.preheader.i.i.i -.preheader.preheader.i.i.i: ; preds = %1397 - %wide.trip.count.i.i68.i = zext nneg i32 %1404 to i64 +.preheader.preheader.i.i.i: ; preds = %1395 + %wide.trip.count.i.i68.i = zext nneg i32 %1402 to i64 br label %.preheader.i.i.i .preheader.i.i.i: ; preds = %.loopexit.i.i72.i, %.preheader.preheader.i.i.i %indvars.iv30.i.i.i = phi i64 [ 0, %.preheader.preheader.i.i.i ], [ %indvars.iv.next31.i.i.i, %.loopexit.i.i72.i ] - %.02025.i.i.i = phi ptr [ %865, %.preheader.preheader.i.i.i ], [ %1425, %.loopexit.i.i72.i ] - %1407 = getelementptr inbounds i8, ptr %1406, i64 %indvars.iv30.i.i.i - %1408 = load i8, ptr %1407, align 1 - %.not.i.i69.i = icmp eq i8 %1408, 0 + %.02025.i.i.i = phi ptr [ %865, %.preheader.preheader.i.i.i ], [ %1423, %.loopexit.i.i72.i ] + %1405 = getelementptr inbounds i8, ptr %1404, i64 %indvars.iv30.i.i.i + %1406 = load i8, ptr %1405, align 1 + %.not.i.i69.i = icmp eq i8 %1406, 0 br i1 %.not.i.i69.i, label %.loopexit.i.i72.i, label %.lr.ph.preheader.i.i.i .lr.ph.preheader.i.i.i: ; preds = %.preheader.i.i.i - %1409 = zext i8 %1408 to i64 + %1407 = zext i8 %1406 to i64 br label %.lr.ph.i.i.i -1410: ; preds = %1415 +1408: ; preds = %1413 %indvars.iv.next.i.i71.i = add nuw nsw i64 %indvars.iv.i.i70.i, 2 - %1411 = icmp ult i64 %indvars.iv.next.i.i71.i, %1409 - br i1 %1411, label %.lr.ph.i.i.i, label %.loopexit.i.i72.i - -.lr.ph.i.i.i: ; preds = %1410, %.lr.ph.preheader.i.i.i - %indvars.iv.i.i70.i = phi i64 [ 0, %.lr.ph.preheader.i.i.i ], [ %indvars.iv.next.i.i71.i, %1410 ] - %1412 = getelementptr inbounds float, ptr %.02025.i.i.i, i64 %indvars.iv.i.i70.i - %1413 = load float, ptr %1412, align 4 - %1414 = fcmp une float %1413, 0.000000e+00 - br i1 %1414, label %1420, label %1415 - -1415: ; preds = %.lr.ph.i.i.i - %1416 = or disjoint i64 %indvars.iv.i.i70.i, 1 - %1417 = getelementptr inbounds float, ptr %.02025.i.i.i, i64 %1416 - %1418 = load float, ptr %1417, align 4 - %1419 = fcmp une float %1418, 0.000000e+00 - br i1 %1419, label %1420, label %1410 - -1420: ; preds = %1415, %.lr.ph.i.i.i - %1421 = trunc i64 %indvars.iv30.i.i.i to i32 - %1422 = urem i32 %1421, 3 - %1423 = zext nneg i32 %1422 to i64 - %1424 = getelementptr inbounds i32, ptr %12, i64 %1423 - store i32 %1421, ptr %1424, align 4 + %1409 = icmp ult i64 %indvars.iv.next.i.i71.i, %1407 + br i1 %1409, label %.lr.ph.i.i.i, label %.loopexit.i.i72.i + +.lr.ph.i.i.i: ; preds = %1408, %.lr.ph.preheader.i.i.i + %indvars.iv.i.i70.i = phi i64 [ 0, %.lr.ph.preheader.i.i.i ], [ %indvars.iv.next.i.i71.i, %1408 ] + %1410 = getelementptr inbounds float, ptr %.02025.i.i.i, i64 %indvars.iv.i.i70.i + %1411 = load float, ptr %1410, align 4 + %1412 = fcmp une float %1411, 0.000000e+00 + br i1 %1412, label %1418, label %1413 + +1413: ; preds = %.lr.ph.i.i.i + %1414 = or disjoint i64 %indvars.iv.i.i70.i, 1 + %1415 = getelementptr inbounds float, ptr %.02025.i.i.i, i64 %1414 + %1416 = load float, ptr %1415, align 4 + %1417 = fcmp une float %1416, 0.000000e+00 + br i1 %1417, label %1418, label %1408 + +1418: ; preds = %1413, %.lr.ph.i.i.i + %1419 = trunc i64 %indvars.iv30.i.i.i to i32 + %1420 = urem i32 %1419, 3 + %1421 = zext nneg i32 %1420 to i64 + %1422 = getelementptr inbounds i32, ptr %12, i64 %1421 + store i32 %1419, ptr %1422, align 4 br label %.loopexit.i.i72.i -.loopexit.i.i72.i: ; preds = %1410, %1420, %.preheader.i.i.i - %.pre-phi.i.i = phi i64 [ %1409, %1420 ], [ 0, %.preheader.i.i.i ], [ %1409, %1410 ] - %1425 = getelementptr inbounds float, ptr %.02025.i.i.i, i64 %.pre-phi.i.i +.loopexit.i.i72.i: ; preds = %1408, %1418, %.preheader.i.i.i + %.pre-phi.i.i = phi i64 [ %1407, %1418 ], [ 0, %.preheader.i.i.i ], [ %1407, %1408 ] + %1423 = getelementptr inbounds float, ptr %.02025.i.i.i, i64 %.pre-phi.i.i %indvars.iv.next31.i.i.i = add nuw nsw i64 %indvars.iv30.i.i.i, 1 %exitcond.not.i.i73.i = icmp eq i64 %indvars.iv.next31.i.i.i, %wide.trip.count.i.i68.i br i1 %exitcond.not.i.i73.i, label %drmp3_L3_stereo_top_band.exit.i.i, label %.preheader.i.i.i -drmp3_L3_stereo_top_band.exit.i.i: ; preds = %.loopexit.i.i72.i, %1397 - %.not31.i.i = icmp eq i8 %1399, 0 - br i1 %.not31.i.i, label %1431, label %1426 +drmp3_L3_stereo_top_band.exit.i.i: ; preds = %.loopexit.i.i72.i, %1395 + %.not31.i.i = icmp eq i8 %1397, 0 + br i1 %.not31.i.i, label %1429, label %1424 -1426: ; preds = %drmp3_L3_stereo_top_band.exit.i.i - %1427 = load i32, ptr %12, align 4 - %1428 = load i32, ptr %864, align 4 - %1429 = call i32 @llvm.smax.i32(i32 %1427, i32 %1428) - %1430 = load i32, ptr %863, align 4 - %..i.i = call i32 @llvm.smax.i32(i32 %1429, i32 %1430) +1424: ; preds = %drmp3_L3_stereo_top_band.exit.i.i + %1425 = load i32, ptr %12, align 4 + %1426 = load i32, ptr %864, align 4 + %1427 = call i32 @llvm.smax.i32(i32 %1425, i32 %1426) + %1428 = load i32, ptr %863, align 4 + %..i.i = call i32 @llvm.smax.i32(i32 %1427, i32 %1428) store i32 %..i.i, ptr %863, align 4 store i32 %..i.i, ptr %864, align 4 store i32 %..i.i, ptr %12, align 4 + br label %1429 + +1429: ; preds = %1424, %drmp3_L3_stereo_top_band.exit.i.i + %1430 = sub nsw i32 %1402, %1403 + %wide.trip.count.i.i = zext nneg i32 %1403 to i64 br label %1431 -1431: ; preds = %1426, %drmp3_L3_stereo_top_band.exit.i.i - %1432 = sub nsw i32 %1404, %1405 - %wide.trip.count.i.i = zext nneg i32 %1405 to i64 - br label %1433 - -1433: ; preds = %1447, %1431 - %indvars.iv.i74.i = phi i64 [ 0, %1431 ], [ %indvars.iv.next.i75.i, %1447 ] - %1434 = trunc i64 %indvars.iv.i74.i to i32 - %1435 = add nsw i32 %1432, %1434 - %1436 = sub nsw i32 %1435, %1405 - %1437 = getelementptr inbounds [3 x i32], ptr %12, i64 0, i64 %indvars.iv.i74.i - %1438 = load i32, ptr %1437, align 4 - %.not33.i.i = icmp slt i32 %1438, %1436 - br i1 %.not33.i.i, label %1443, label %1439 - -1439: ; preds = %1433 - %1440 = load i8, ptr %858, align 1 - %1441 = and i8 %1440, 8 - %.not32.i.i = icmp eq i8 %1441, 0 - %1442 = select i1 %.not32.i.i, i8 0, i8 3 - br label %1447 - -1443: ; preds = %1433 - %1444 = sext i32 %1436 to i64 - %1445 = getelementptr inbounds i8, ptr %862, i64 %1444 - %1446 = load i8, ptr %1445, align 1 - br label %1447 - -1447: ; preds = %1443, %1439 - %1448 = phi i8 [ %1442, %1439 ], [ %1446, %1443 ] - %1449 = sext i32 %1435 to i64 - %1450 = getelementptr inbounds i8, ptr %862, i64 %1449 - store i8 %1448, ptr %1450, align 1 +1431: ; preds = %1445, %1429 + %indvars.iv.i74.i = phi i64 [ 0, %1429 ], [ %indvars.iv.next.i75.i, %1445 ] + %1432 = trunc i64 %indvars.iv.i74.i to i32 + %1433 = add nsw i32 %1430, %1432 + %1434 = sub nsw i32 %1433, %1403 + %1435 = getelementptr inbounds [3 x i32], ptr %12, i64 0, i64 %indvars.iv.i74.i + %1436 = load i32, ptr %1435, align 4 + %.not33.i.i = icmp slt i32 %1436, %1434 + br i1 %.not33.i.i, label %1441, label %1437 + +1437: ; preds = %1431 + %1438 = load i8, ptr %858, align 1 + %1439 = and i8 %1438, 8 + %.not32.i.i = icmp eq i8 %1439, 0 + %1440 = select i1 %.not32.i.i, i8 0, i8 3 + br label %1445 + +1441: ; preds = %1431 + %1442 = sext i32 %1434 to i64 + %1443 = getelementptr inbounds i8, ptr %862, i64 %1442 + %1444 = load i8, ptr %1443, align 1 + br label %1445 + +1445: ; preds = %1441, %1437 + %1446 = phi i8 [ %1440, %1437 ], [ %1444, %1441 ] + %1447 = sext i32 %1433 to i64 + %1448 = getelementptr inbounds i8, ptr %862, i64 %1447 + store i8 %1446, ptr %1448, align 1 %indvars.iv.next.i75.i = add nuw nsw i64 %indvars.iv.i74.i, 1 %exitcond.not.i76.i = icmp eq i64 %indvars.iv.next.i75.i, %wide.trip.count.i.i - br i1 %exitcond.not.i76.i, label %1451, label %1433 - -1451: ; preds = %1447 - %1452 = load ptr, ptr %884, align 8 - %1453 = getelementptr inbounds i8, ptr %884, i64 44 - %1454 = load i16, ptr %1453, align 4 - %1455 = and i16 %1454, 1 - %1456 = zext nneg i16 %1455 to i32 - %1457 = load i8, ptr %858, align 1 - %1458 = and i8 %1457, 8 - %.not.i34.i.i = icmp eq i8 %1458, 0 - %1459 = select i1 %.not.i34.i.i, i32 64, i32 7 - %1460 = load i8, ptr %1452, align 1 - %.not3648.i.i.i = icmp eq i8 %1460, 0 + br i1 %exitcond.not.i76.i, label %1449, label %1431 + +1449: ; preds = %1445 + %1450 = load ptr, ptr %884, align 8 + %1451 = getelementptr inbounds i8, ptr %884, i64 44 + %1452 = load i16, ptr %1451, align 4 + %1453 = and i16 %1452, 1 + %1454 = zext nneg i16 %1453 to i32 + %1455 = load i8, ptr %858, align 1 + %1456 = and i8 %1455, 8 + %.not.i34.i.i = icmp eq i8 %1456, 0 + %1457 = select i1 %.not.i34.i.i, i32 64, i32 7 + %1458 = load i8, ptr %1450, align 1 + %.not3648.i.i.i = icmp eq i8 %1458, 0 br i1 %.not3648.i.i.i, label %drmp3_L3_intensity_stereo.exit.i, label %.lr.ph.i35.i.i.preheader -.lr.ph.i35.i.i.preheader: ; preds = %1451 - %1461 = and i8 %1394, 32 - %.not38.i.i.i = icmp eq i8 %1461, 0 - %1462 = select i1 %.not38.i.i.i, float 1.000000e+00, float 0x3FF6A09E60000000 +.lr.ph.i35.i.i.preheader: ; preds = %1449 + %1459 = and i8 %1392, 32 + %.not38.i.i.i = icmp eq i8 %1459, 0 + %1460 = select i1 %.not38.i.i.i, float 1.000000e+00, float 0x3FF6A09E60000000 br label %.lr.ph.i35.i.i .lr.ph.i35.i.i: ; preds = %.lr.ph.i35.i.i.preheader, %drmp3_L3_intensity_stereo_band.exit.i.i.i - %1463 = phi i8 [ %1539, %drmp3_L3_intensity_stereo_band.exit.i.i.i ], [ %1460, %.lr.ph.i35.i.i.preheader ] - %1464 = phi ptr [ %1538, %drmp3_L3_intensity_stereo_band.exit.i.i.i ], [ %1452, %.lr.ph.i35.i.i.preheader ] - %1465 = phi i64 [ %1537, %drmp3_L3_intensity_stereo_band.exit.i.i.i ], [ 0, %.lr.ph.i35.i.i.preheader ] - %.050.i.i.i = phi ptr [ %1535, %drmp3_L3_intensity_stereo_band.exit.i.i.i ], [ %854, %.lr.ph.i35.i.i.preheader ] - %.03449.i.i.i = phi i32 [ %1536, %drmp3_L3_intensity_stereo_band.exit.i.i.i ], [ 0, %.lr.ph.i35.i.i.preheader ] - %1466 = getelementptr inbounds i8, ptr %862, i64 %1465 - %1467 = load i8, ptr %1466, align 1 - %1468 = zext i8 %1467 to i32 - %1469 = urem i32 %.03449.i.i.i, 3 - %1470 = zext nneg i32 %1469 to i64 - %1471 = getelementptr inbounds i32, ptr %12, i64 %1470 - %1472 = load i32, ptr %1471, align 4 - %1473 = icmp sgt i32 %.03449.i.i.i, %1472 - %1474 = icmp ugt i32 %1459, %1468 - %or.cond.i.i.i = select i1 %1473, i1 %1474, i1 false - br i1 %or.cond.i.i.i, label %1475, label %1511 - -1475: ; preds = %.lr.ph.i35.i.i - br i1 %.not.i34.i.i, label %1485, label %1476 - -1476: ; preds = %1475 - %1477 = shl nuw nsw i32 %1468, 1 - %1478 = zext nneg i32 %1477 to i64 - %1479 = getelementptr inbounds [14 x float], ptr @drmp3_L3_stereo_process.g_pan, i64 0, i64 %1478 - %1480 = load float, ptr %1479, align 8 - %1481 = or disjoint i32 %1477, 1 - %1482 = zext nneg i32 %1481 to i64 - %1483 = getelementptr inbounds [14 x float], ptr @drmp3_L3_stereo_process.g_pan, i64 0, i64 %1482 - %1484 = load float, ptr %1483, align 4 + %1461 = phi i8 [ %1537, %drmp3_L3_intensity_stereo_band.exit.i.i.i ], [ %1458, %.lr.ph.i35.i.i.preheader ] + %1462 = phi ptr [ %1536, %drmp3_L3_intensity_stereo_band.exit.i.i.i ], [ %1450, %.lr.ph.i35.i.i.preheader ] + %1463 = phi i64 [ %1535, %drmp3_L3_intensity_stereo_band.exit.i.i.i ], [ 0, %.lr.ph.i35.i.i.preheader ] + %.050.i.i.i = phi ptr [ %1533, %drmp3_L3_intensity_stereo_band.exit.i.i.i ], [ %854, %.lr.ph.i35.i.i.preheader ] + %.03449.i.i.i = phi i32 [ %1534, %drmp3_L3_intensity_stereo_band.exit.i.i.i ], [ 0, %.lr.ph.i35.i.i.preheader ] + %1464 = getelementptr inbounds i8, ptr %862, i64 %1463 + %1465 = load i8, ptr %1464, align 1 + %1466 = zext i8 %1465 to i32 + %1467 = urem i32 %.03449.i.i.i, 3 + %1468 = zext nneg i32 %1467 to i64 + %1469 = getelementptr inbounds i32, ptr %12, i64 %1468 + %1470 = load i32, ptr %1469, align 4 + %1471 = icmp sgt i32 %.03449.i.i.i, %1470 + %1472 = icmp ugt i32 %1457, %1466 + %or.cond.i.i.i = select i1 %1471, i1 %1472, i1 false + br i1 %or.cond.i.i.i, label %1473, label %1509 + +1473: ; preds = %.lr.ph.i35.i.i + br i1 %.not.i34.i.i, label %1483, label %1474 + +1474: ; preds = %1473 + %1475 = shl nuw nsw i32 %1466, 1 + %1476 = zext nneg i32 %1475 to i64 + %1477 = getelementptr inbounds [14 x float], ptr @drmp3_L3_stereo_process.g_pan, i64 0, i64 %1476 + %1478 = load float, ptr %1477, align 8 + %1479 = or disjoint i32 %1475, 1 + %1480 = zext nneg i32 %1479 to i64 + %1481 = getelementptr inbounds [14 x float], ptr @drmp3_L3_stereo_process.g_pan, i64 0, i64 %1480 + %1482 = load float, ptr %1481, align 4 br label %.lr.ph.preheader.i.i.i.i -1485: ; preds = %1475 - %1486 = add nuw nsw i32 %1468, 1 - %1487 = lshr i32 %1486, 1 - %1488 = shl nuw nsw i32 %1487, %1456 - br label %1489 - -1489: ; preds = %1489, %1485 - %.07.i.i.i.i = phi i32 [ %1488, %1485 ], [ %1500, %1489 ] - %.0.i.i.i79.i = phi float [ 1.000000e+00, %1485 ], [ %1499, %1489 ] - %1490 = call i32 @llvm.smin.i32(i32 %.07.i.i.i.i, i32 120) - %1491 = and i32 %1490, 3 - %1492 = zext nneg i32 %1491 to i64 - %1493 = getelementptr inbounds [4 x float], ptr @drmp3_L3_ldexp_q2.g_expfrac, i64 0, i64 %1492 - %1494 = load float, ptr %1493, align 4 - %1495 = ashr i32 %1490, 2 - %1496 = lshr i32 1073741824, %1495 - %1497 = sitofp i32 %1496 to float - %1498 = fmul float %1494, %1497 - %1499 = fmul float %.0.i.i.i79.i, %1498 - %1500 = sub nsw i32 %.07.i.i.i.i, %1490 - %1501 = icmp sgt i32 %1500, 0 - br i1 %1501, label %1489, label %drmp3_L3_ldexp_q2.exit.i.i.i - -drmp3_L3_ldexp_q2.exit.i.i.i: ; preds = %1489 - %1502 = and i32 %1468, 1 - %.not40.i.i.i = icmp eq i32 %1502, 0 - br i1 %.not40.i.i.i, label %.lr.ph.preheader.i.i.i.i, label %1503 - -1503: ; preds = %drmp3_L3_ldexp_q2.exit.i.i.i +1483: ; preds = %1473 + %1484 = add nuw nsw i32 %1466, 1 + %1485 = lshr i32 %1484, 1 + %1486 = shl nuw nsw i32 %1485, %1454 + br label %1487 + +1487: ; preds = %1487, %1483 + %.07.i.i.i.i = phi i32 [ %1486, %1483 ], [ %1498, %1487 ] + %.0.i.i.i79.i = phi float [ 1.000000e+00, %1483 ], [ %1497, %1487 ] + %1488 = call i32 @llvm.smin.i32(i32 %.07.i.i.i.i, i32 120) + %1489 = and i32 %1488, 3 + %1490 = zext nneg i32 %1489 to i64 + %1491 = getelementptr inbounds [4 x float], ptr @drmp3_L3_ldexp_q2.g_expfrac, i64 0, i64 %1490 + %1492 = load float, ptr %1491, align 4 + %1493 = ashr i32 %1488, 2 + %1494 = lshr i32 1073741824, %1493 + %1495 = sitofp i32 %1494 to float + %1496 = fmul float %1492, %1495 + %1497 = fmul float %.0.i.i.i79.i, %1496 + %1498 = sub nsw i32 %.07.i.i.i.i, %1488 + %1499 = icmp sgt i32 %1498, 0 + br i1 %1499, label %1487, label %drmp3_L3_ldexp_q2.exit.i.i.i + +drmp3_L3_ldexp_q2.exit.i.i.i: ; preds = %1487 + %1500 = and i32 %1466, 1 + %.not40.i.i.i = icmp eq i32 %1500, 0 + br i1 %.not40.i.i.i, label %.lr.ph.preheader.i.i.i.i, label %1501 + +1501: ; preds = %drmp3_L3_ldexp_q2.exit.i.i.i br label %.lr.ph.preheader.i.i.i.i -.lr.ph.preheader.i.i.i.i: ; preds = %1503, %drmp3_L3_ldexp_q2.exit.i.i.i, %1476 - %.033.i.i.i = phi float [ %1480, %1476 ], [ %1499, %1503 ], [ 1.000000e+00, %drmp3_L3_ldexp_q2.exit.i.i.i ] - %.032.i.i.i = phi float [ %1484, %1476 ], [ 1.000000e+00, %1503 ], [ %1499, %drmp3_L3_ldexp_q2.exit.i.i.i ] - %1504 = fmul float %1462, %.033.i.i.i - %1505 = fmul float %1462, %.032.i.i.i - %wide.trip.count.i.i.i.i = zext i8 %1463 to i64 +.lr.ph.preheader.i.i.i.i: ; preds = %1501, %drmp3_L3_ldexp_q2.exit.i.i.i, %1474 + %.033.i.i.i = phi float [ %1478, %1474 ], [ %1497, %1501 ], [ 1.000000e+00, %drmp3_L3_ldexp_q2.exit.i.i.i ] + %.032.i.i.i = phi float [ %1482, %1474 ], [ 1.000000e+00, %1501 ], [ %1497, %drmp3_L3_ldexp_q2.exit.i.i.i ] + %1502 = fmul float %1460, %.033.i.i.i + %1503 = fmul float %1460, %.032.i.i.i + %wide.trip.count.i.i.i.i = zext i8 %1461 to i64 br label %.lr.ph.i.i.i78.i .lr.ph.i.i.i78.i: ; preds = %.lr.ph.i.i.i78.i, %.lr.ph.preheader.i.i.i.i %indvars.iv.i.i.i.i = phi i64 [ 0, %.lr.ph.preheader.i.i.i.i ], [ %indvars.iv.next.i.i.i.i, %.lr.ph.i.i.i78.i ] - %1506 = getelementptr inbounds float, ptr %.050.i.i.i, i64 %indvars.iv.i.i.i.i - %1507 = load float, ptr %1506, align 4 - %1508 = fmul float %1505, %1507 - %1509 = getelementptr i8, ptr %1506, i64 2304 - store float %1508, ptr %1509, align 4 - %1510 = fmul float %1504, %1507 - store float %1510, ptr %1506, align 4 + %1504 = getelementptr inbounds float, ptr %.050.i.i.i, i64 %indvars.iv.i.i.i.i + %1505 = load float, ptr %1504, align 4 + %1506 = fmul float %1503, %1505 + %1507 = getelementptr i8, ptr %1504, i64 2304 + store float %1506, ptr %1507, align 4 + %1508 = fmul float %1502, %1505 + store float %1508, ptr %1504, align 4 %indvars.iv.next.i.i.i.i = add nuw nsw i64 %indvars.iv.i.i.i.i, 1 %exitcond.not.i.i.i.i = icmp eq i64 %indvars.iv.next.i.i.i.i, %wide.trip.count.i.i.i.i br i1 %exitcond.not.i.i.i.i, label %drmp3_L3_intensity_stereo_band.exit.i.i.i, label %.lr.ph.i.i.i78.i -1511: ; preds = %.lr.ph.i35.i.i - br i1 %.not38.i.i.i, label %drmp3_L3_intensity_stereo_band.exit.i.i.i, label %1512 +1509: ; preds = %.lr.ph.i35.i.i + br i1 %.not38.i.i.i, label %drmp3_L3_intensity_stereo_band.exit.i.i.i, label %1510 -1512: ; preds = %1511 - %1513 = zext i8 %1463 to i32 - %1514 = getelementptr inbounds i8, ptr %.050.i.i.i, i64 2304 - %1515 = icmp ugt i8 %1463, 3 - br i1 %1515, label %.lr.ph.preheader.i43.i.i.i, label %._crit_edge.i.i.i77.i +1510: ; preds = %1509 + %1511 = zext i8 %1461 to i32 + %1512 = getelementptr inbounds i8, ptr %.050.i.i.i, i64 2304 + %1513 = icmp ugt i8 %1461, 3 + br i1 %1513, label %.lr.ph.preheader.i43.i.i.i, label %._crit_edge.i.i.i77.i -.lr.ph.preheader.i43.i.i.i: ; preds = %1512 - %1516 = add nsw i32 %1513, -3 - %1517 = zext nneg i32 %1516 to i64 +.lr.ph.preheader.i43.i.i.i: ; preds = %1510 + %1514 = add nsw i32 %1511, -3 + %1515 = zext nneg i32 %1514 to i64 br label %.lr.ph.i44.i.i.i .lr.ph.i44.i.i.i: ; preds = %.lr.ph.i44.i.i.i, %.lr.ph.preheader.i43.i.i.i %indvars.iv.i45.i.i.i = phi i64 [ 0, %.lr.ph.preheader.i43.i.i.i ], [ %indvars.iv.next.i46.i.i.i, %.lr.ph.i44.i.i.i ] - %1518 = getelementptr inbounds float, ptr %.050.i.i.i, i64 %indvars.iv.i45.i.i.i + %1516 = getelementptr inbounds float, ptr %.050.i.i.i, i64 %indvars.iv.i45.i.i.i + %1517 = load <4 x float>, ptr %1516, align 1 + %1518 = getelementptr inbounds float, ptr %1512, i64 %indvars.iv.i45.i.i.i %1519 = load <4 x float>, ptr %1518, align 1 - %1520 = getelementptr inbounds float, ptr %1514, i64 %indvars.iv.i45.i.i.i - %1521 = load <4 x float>, ptr %1520, align 1 - %1522 = fadd <4 x float> %1519, %1521 - store <4 x float> %1522, ptr %1518, align 1 - %1523 = fsub <4 x float> %1519, %1521 - store <4 x float> %1523, ptr %1520, align 1 + %1520 = fadd <4 x float> %1517, %1519 + store <4 x float> %1520, ptr %1516, align 1 + %1521 = fsub <4 x float> %1517, %1519 + store <4 x float> %1521, ptr %1518, align 1 %indvars.iv.next.i46.i.i.i = add nuw nsw i64 %indvars.iv.i45.i.i.i, 4 - %1524 = icmp ult i64 %indvars.iv.next.i46.i.i.i, %1517 - br i1 %1524, label %.lr.ph.i44.i.i.i, label %._crit_edge.loopexit.i.i.i.i + %1522 = icmp ult i64 %indvars.iv.next.i46.i.i.i, %1515 + br i1 %1522, label %.lr.ph.i44.i.i.i, label %._crit_edge.loopexit.i.i.i.i ._crit_edge.loopexit.i.i.i.i: ; preds = %.lr.ph.i44.i.i.i - %1525 = trunc i64 %indvars.iv.next.i46.i.i.i to i32 + %1523 = trunc i64 %indvars.iv.next.i46.i.i.i to i32 br label %._crit_edge.i.i.i77.i -._crit_edge.i.i.i77.i: ; preds = %._crit_edge.loopexit.i.i.i.i, %1512 - %.0.lcssa.i.i.i.i = phi i32 [ 0, %1512 ], [ %1525, %._crit_edge.loopexit.i.i.i.i ] - %.not628 = icmp slt i32 %.0.lcssa.i.i.i.i, %1513 +._crit_edge.i.i.i77.i: ; preds = %._crit_edge.loopexit.i.i.i.i, %1510 + %.0.lcssa.i.i.i.i = phi i32 [ 0, %1510 ], [ %1523, %._crit_edge.loopexit.i.i.i.i ] + %.not628 = icmp slt i32 %.0.lcssa.i.i.i.i, %1511 br i1 %.not628, label %.lr.ph45.preheader.i.i.i.i, label %drmp3_L3_intensity_stereo_band.exit.i.i.i .lr.ph45.preheader.i.i.i.i: ; preds = %._crit_edge.i.i.i77.i - %1526 = zext nneg i32 %.0.lcssa.i.i.i.i to i64 - %wide.trip.count.i41.i.i.i = zext i8 %1463 to i64 + %1524 = zext nneg i32 %.0.lcssa.i.i.i.i to i64 + %wide.trip.count.i41.i.i.i = zext i8 %1461 to i64 br label %.lr.ph45.i.i.i.i .lr.ph45.i.i.i.i: ; preds = %.lr.ph45.i.i.i.i, %.lr.ph45.preheader.i.i.i.i - %indvars.iv47.i.i.i.i = phi i64 [ %1526, %.lr.ph45.preheader.i.i.i.i ], [ %indvars.iv.next48.i.i.i.i, %.lr.ph45.i.i.i.i ] - %1527 = getelementptr inbounds float, ptr %.050.i.i.i, i64 %indvars.iv47.i.i.i.i + %indvars.iv47.i.i.i.i = phi i64 [ %1524, %.lr.ph45.preheader.i.i.i.i ], [ %indvars.iv.next48.i.i.i.i, %.lr.ph45.i.i.i.i ] + %1525 = getelementptr inbounds float, ptr %.050.i.i.i, i64 %indvars.iv47.i.i.i.i + %1526 = load float, ptr %1525, align 4 + %1527 = getelementptr inbounds float, ptr %1512, i64 %indvars.iv47.i.i.i.i %1528 = load float, ptr %1527, align 4 - %1529 = getelementptr inbounds float, ptr %1514, i64 %indvars.iv47.i.i.i.i - %1530 = load float, ptr %1529, align 4 - %1531 = fadd float %1528, %1530 - store float %1531, ptr %1527, align 4 - %1532 = fsub float %1528, %1530 - store float %1532, ptr %1529, align 4 + %1529 = fadd float %1526, %1528 + store float %1529, ptr %1525, align 4 + %1530 = fsub float %1526, %1528 + store float %1530, ptr %1527, align 4 %indvars.iv.next48.i.i.i.i = add nuw nsw i64 %indvars.iv47.i.i.i.i, 1 %exitcond.not.i42.i.i.i = icmp eq i64 %indvars.iv.next48.i.i.i.i, %wide.trip.count.i41.i.i.i br i1 %exitcond.not.i42.i.i.i, label %drmp3_L3_intensity_stereo_band.exit.i.i.i, label %.lr.ph45.i.i.i.i -drmp3_L3_intensity_stereo_band.exit.i.i.i: ; preds = %.lr.ph45.i.i.i.i, %.lr.ph.i.i.i78.i, %._crit_edge.i.i.i77.i, %1511 - %1533 = load i8, ptr %1464, align 1 - %1534 = zext i8 %1533 to i64 - %1535 = getelementptr inbounds float, ptr %.050.i.i.i, i64 %1534 - %1536 = add i32 %.03449.i.i.i, 1 - %1537 = zext i32 %1536 to i64 - %1538 = getelementptr inbounds i8, ptr %1452, i64 %1537 - %1539 = load i8, ptr %1538, align 1 - %.not36.i.i.i = icmp eq i8 %1539, 0 +drmp3_L3_intensity_stereo_band.exit.i.i.i: ; preds = %.lr.ph45.i.i.i.i, %.lr.ph.i.i.i78.i, %._crit_edge.i.i.i77.i, %1509 + %1531 = load i8, ptr %1462, align 1 + %1532 = zext i8 %1531 to i64 + %1533 = getelementptr inbounds float, ptr %.050.i.i.i, i64 %1532 + %1534 = add i32 %.03449.i.i.i, 1 + %1535 = zext i32 %1534 to i64 + %1536 = getelementptr inbounds i8, ptr %1450, i64 %1535 + %1537 = load i8, ptr %1536, align 1 + %.not36.i.i.i = icmp eq i8 %1537, 0 br i1 %.not36.i.i.i, label %drmp3_L3_intensity_stereo.exit.i, label %.lr.ph.i35.i.i -drmp3_L3_intensity_stereo.exit.i: ; preds = %drmp3_L3_intensity_stereo_band.exit.i.i.i, %1451 +drmp3_L3_intensity_stereo.exit.i: ; preds = %drmp3_L3_intensity_stereo_band.exit.i.i.i, %1449 call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %12) br label %drmp3_L3_midside_stereo.exit.i -1540: ; preds = %._crit_edge.i128 - %1541 = and i32 %1395, 224 - %1542 = icmp eq i32 %1541, 96 - br i1 %1542, label %.lr.ph.i80.i, label %drmp3_L3_midside_stereo.exit.i +1538: ; preds = %._crit_edge.i128 + %1539 = and i32 %1393, 224 + %1540 = icmp eq i32 %1539, 96 + br i1 %1540, label %.lr.ph.i80.i, label %drmp3_L3_midside_stereo.exit.i -.lr.ph.i80.i: ; preds = %1540, %.lr.ph.i80.i - %indvars.iv.i81.i = phi i64 [ %indvars.iv.next.i82.i, %.lr.ph.i80.i ], [ 0, %1540 ] - %1543 = getelementptr inbounds float, ptr %854, i64 %indvars.iv.i81.i +.lr.ph.i80.i: ; preds = %1538, %.lr.ph.i80.i + %indvars.iv.i81.i = phi i64 [ %indvars.iv.next.i82.i, %.lr.ph.i80.i ], [ 0, %1538 ] + %1541 = getelementptr inbounds float, ptr %854, i64 %indvars.iv.i81.i + %1542 = load <4 x float>, ptr %1541, align 8 + %1543 = getelementptr inbounds float, ptr %865, i64 %indvars.iv.i81.i %1544 = load <4 x float>, ptr %1543, align 8 - %1545 = getelementptr inbounds float, ptr %865, i64 %indvars.iv.i81.i - %1546 = load <4 x float>, ptr %1545, align 8 - %1547 = fadd <4 x float> %1544, %1546 - store <4 x float> %1547, ptr %1543, align 8 - %1548 = fsub <4 x float> %1544, %1546 - store <4 x float> %1548, ptr %1545, align 8 + %1545 = fadd <4 x float> %1542, %1544 + store <4 x float> %1545, ptr %1541, align 8 + %1546 = fsub <4 x float> %1542, %1544 + store <4 x float> %1546, ptr %1543, align 8 %indvars.iv.next.i82.i = add nuw nsw i64 %indvars.iv.i81.i, 4 - %1549 = icmp ult i64 %indvars.iv.i81.i, 569 - br i1 %1549, label %.lr.ph.i80.i, label %drmp3_L3_midside_stereo.exit.i + %1547 = icmp ult i64 %indvars.iv.i81.i, 569 + br i1 %1547, label %.lr.ph.i80.i, label %drmp3_L3_midside_stereo.exit.i -drmp3_L3_midside_stereo.exit.i: ; preds = %.lr.ph.i80.i, %1540, %drmp3_L3_intensity_stereo.exit.i +drmp3_L3_midside_stereo.exit.i: ; preds = %.lr.ph.i80.i, %1538, %drmp3_L3_intensity_stereo.exit.i br i1 %885, label %.lr.ph143.i, label %drmp3_L3_decode.exit .lr.ph143.i: ; preds = %drmp3_L3_midside_stereo.exit.i %wide.trip.count191.i = zext nneg i32 %880 to i64 - br label %1550 + br label %1548 -1550: ; preds = %drmp3_L3_change_sign.exit.i, %.lr.ph143.i +1548: ; preds = %drmp3_L3_change_sign.exit.i, %.lr.ph143.i %indvars.iv188.i = phi i64 [ 0, %.lr.ph143.i ], [ %indvars.iv.next189.i, %drmp3_L3_change_sign.exit.i ] - %.0142.i = phi ptr [ %884, %.lr.ph143.i ], [ %1829, %drmp3_L3_change_sign.exit.i ] - %1551 = getelementptr inbounds i8, ptr %.0142.i, i64 16 - %1552 = load i8, ptr %1551, align 8 - %.not57.i = icmp eq i8 %1552, 0 - %1553 = select i1 %.not57.i, i32 0, i32 2 - %1554 = load i8, ptr %866, align 2 - %1555 = lshr i8 %1554, 2 - %1556 = and i8 %1555, 3 - %1557 = zext nneg i8 %1556 to i32 - %1558 = load i8, ptr %858, align 1 - %1559 = zext i8 %1558 to i32 - %1560 = lshr i32 %1559, 3 + %.0142.i = phi ptr [ %884, %.lr.ph143.i ], [ %1827, %drmp3_L3_change_sign.exit.i ] + %1549 = getelementptr inbounds i8, ptr %.0142.i, i64 16 + %1550 = load i8, ptr %1549, align 8 + %.not57.i = icmp eq i8 %1550, 0 + %1551 = select i1 %.not57.i, i32 0, i32 2 + %1552 = load i8, ptr %866, align 2 + %1553 = lshr i8 %1552, 2 + %1554 = and i8 %1553, 3 + %1555 = zext nneg i8 %1554 to i32 + %1556 = load i8, ptr %858, align 1 + %1557 = zext i8 %1556 to i32 + %1558 = lshr i32 %1557, 3 + %1559 = and i32 %1558, 1 + %1560 = lshr i32 %1557, 4 %1561 = and i32 %1560, 1 - %1562 = lshr i32 %1559, 4 - %1563 = and i32 %1562, 1 - %1564 = add nuw nsw i32 %1561, %1563 - %1565 = mul nuw nsw i32 %1564, 3 - %1566 = add nuw nsw i32 %1565, %1557 - %1567 = icmp eq i32 %1566, 2 - %1568 = zext i1 %1567 to i32 - %1569 = shl nuw nsw i32 %1553, %1568 - %1570 = getelementptr inbounds i8, ptr %.0142.i, i64 18 - %1571 = load i8, ptr %1570, align 2 - %.not58.i = icmp eq i8 %1571, 0 - br i1 %.not58.i, label %.thread.i, label %1573 - -.thread.i: ; preds = %1550 - %1572 = getelementptr inbounds [2 x [576 x float]], ptr %854, i64 0, i64 %indvars.iv188.i + %1562 = add nuw nsw i32 %1559, %1561 + %1563 = mul nuw nsw i32 %1562, 3 + %1564 = add nuw nsw i32 %1563, %1555 + %1565 = icmp eq i32 %1564, 2 + %1566 = zext i1 %1565 to i32 + %1567 = shl nuw nsw i32 %1551, %1566 + %1568 = getelementptr inbounds i8, ptr %.0142.i, i64 18 + %1569 = load i8, ptr %1568, align 2 + %.not58.i = icmp eq i8 %1569, 0 + br i1 %.not58.i, label %.thread.i, label %1571 + +.thread.i: ; preds = %1548 + %1570 = getelementptr inbounds [2 x [576 x float]], ptr %854, i64 0, i64 %indvars.iv188.i br label %.preheader.i90.preheader.i -1573: ; preds = %1550 - %1574 = add nsw i32 %1569, -1 - %1575 = getelementptr inbounds [2 x [576 x float]], ptr %854, i64 0, i64 %indvars.iv188.i - %1576 = mul nuw nsw i32 %1569, 18 - %1577 = zext nneg i32 %1576 to i64 - %1578 = getelementptr inbounds float, ptr %1575, i64 %1577 - %1579 = load ptr, ptr %.0142.i, align 8 - %1580 = getelementptr inbounds i8, ptr %.0142.i, i64 17 - %1581 = load i8, ptr %1580, align 1 - %1582 = zext i8 %1581 to i64 - %1583 = getelementptr inbounds i8, ptr %1579, i64 %1582 - %1584 = load i8, ptr %1583, align 1 - %.not30.i.i = icmp eq i8 %1584, 0 - br i1 %.not30.i.i, label %1605, label %.preheader.i85.i - -.preheader.i85.i: ; preds = %1573, %1601 - %1585 = phi i8 [ %1604, %1601 ], [ %1584, %1573 ] - %.033.i.i = phi ptr [ %1598, %1601 ], [ %867, %1573 ] - %.02232.i.i = phi ptr [ %1603, %1601 ], [ %1578, %1573 ] - %.02431.i.i = phi ptr [ %1602, %1601 ], [ %1583, %1573 ] - %1586 = zext i8 %1585 to i32 - %1587 = zext i8 %1585 to i64 - %1588 = shl nuw nsw i32 %1586, 1 - %1589 = zext nneg i32 %1588 to i64 - br label %1590 - -1590: ; preds = %1590, %.preheader.i85.i - %.129.i.i = phi ptr [ %.033.i.i, %.preheader.i85.i ], [ %1598, %1590 ] - %.12328.i.i = phi ptr [ %.02232.i.i, %.preheader.i85.i ], [ %1600, %1590 ] - %.02527.i.i = phi i32 [ 0, %.preheader.i85.i ], [ %1599, %1590 ] - %1591 = load float, ptr %.12328.i.i, align 4 - %1592 = getelementptr inbounds i8, ptr %.129.i.i, i64 4 - store float %1591, ptr %.129.i.i, align 4 - %1593 = getelementptr inbounds float, ptr %.12328.i.i, i64 %1587 - %1594 = load float, ptr %1593, align 4 - %1595 = getelementptr inbounds i8, ptr %.129.i.i, i64 8 - store float %1594, ptr %1592, align 4 - %1596 = getelementptr inbounds float, ptr %.12328.i.i, i64 %1589 - %1597 = load float, ptr %1596, align 4 - %1598 = getelementptr inbounds i8, ptr %.129.i.i, i64 12 - store float %1597, ptr %1595, align 4 - %1599 = add nuw nsw i32 %.02527.i.i, 1 - %1600 = getelementptr inbounds i8, ptr %.12328.i.i, i64 4 - %exitcond.not.i86.i = icmp eq i32 %1599, %1586 - br i1 %exitcond.not.i86.i, label %1601, label %1590 - -1601: ; preds = %1590 - %1602 = getelementptr inbounds i8, ptr %.02431.i.i, i64 3 - %1603 = getelementptr inbounds float, ptr %1600, i64 %1589 - %1604 = load i8, ptr %1602, align 1 - %.not.i87.i130 = icmp eq i8 %1604, 0 +1571: ; preds = %1548 + %1572 = add nsw i32 %1567, -1 + %1573 = getelementptr inbounds [2 x [576 x float]], ptr %854, i64 0, i64 %indvars.iv188.i + %1574 = mul nuw nsw i32 %1567, 18 + %1575 = zext nneg i32 %1574 to i64 + %1576 = getelementptr inbounds float, ptr %1573, i64 %1575 + %1577 = load ptr, ptr %.0142.i, align 8 + %1578 = getelementptr inbounds i8, ptr %.0142.i, i64 17 + %1579 = load i8, ptr %1578, align 1 + %1580 = zext i8 %1579 to i64 + %1581 = getelementptr inbounds i8, ptr %1577, i64 %1580 + %1582 = load i8, ptr %1581, align 1 + %.not30.i.i = icmp eq i8 %1582, 0 + br i1 %.not30.i.i, label %1603, label %.preheader.i85.i + +.preheader.i85.i: ; preds = %1571, %1599 + %1583 = phi i8 [ %1602, %1599 ], [ %1582, %1571 ] + %.033.i.i = phi ptr [ %1596, %1599 ], [ %867, %1571 ] + %.02232.i.i = phi ptr [ %1601, %1599 ], [ %1576, %1571 ] + %.02431.i.i = phi ptr [ %1600, %1599 ], [ %1581, %1571 ] + %1584 = zext i8 %1583 to i32 + %1585 = zext i8 %1583 to i64 + %1586 = shl nuw nsw i32 %1584, 1 + %1587 = zext nneg i32 %1586 to i64 + br label %1588 + +1588: ; preds = %1588, %.preheader.i85.i + %.129.i.i = phi ptr [ %.033.i.i, %.preheader.i85.i ], [ %1596, %1588 ] + %.12328.i.i = phi ptr [ %.02232.i.i, %.preheader.i85.i ], [ %1598, %1588 ] + %.02527.i.i = phi i32 [ 0, %.preheader.i85.i ], [ %1597, %1588 ] + %1589 = load float, ptr %.12328.i.i, align 4 + %1590 = getelementptr inbounds i8, ptr %.129.i.i, i64 4 + store float %1589, ptr %.129.i.i, align 4 + %1591 = getelementptr inbounds float, ptr %.12328.i.i, i64 %1585 + %1592 = load float, ptr %1591, align 4 + %1593 = getelementptr inbounds i8, ptr %.129.i.i, i64 8 + store float %1592, ptr %1590, align 4 + %1594 = getelementptr inbounds float, ptr %.12328.i.i, i64 %1587 + %1595 = load float, ptr %1594, align 4 + %1596 = getelementptr inbounds i8, ptr %.129.i.i, i64 12 + store float %1595, ptr %1593, align 4 + %1597 = add nuw nsw i32 %.02527.i.i, 1 + %1598 = getelementptr inbounds i8, ptr %.12328.i.i, i64 4 + %exitcond.not.i86.i = icmp eq i32 %1597, %1584 + br i1 %exitcond.not.i86.i, label %1599, label %1588 + +1599: ; preds = %1588 + %1600 = getelementptr inbounds i8, ptr %.02431.i.i, i64 3 + %1601 = getelementptr inbounds float, ptr %1598, i64 %1587 + %1602 = load i8, ptr %1600, align 1 + %.not.i87.i130 = icmp eq i8 %1602, 0 br i1 %.not.i87.i130, label %drmp3_L3_reorder.exit.loopexit.i, label %.preheader.i85.i -drmp3_L3_reorder.exit.loopexit.i: ; preds = %1601 - %.pre193.i = ptrtoint ptr %1598 to i64 - br label %1605 +drmp3_L3_reorder.exit.loopexit.i: ; preds = %1599 + %.pre193.i = ptrtoint ptr %1596 to i64 + br label %1603 -1605: ; preds = %drmp3_L3_reorder.exit.loopexit.i, %1573 - %.pre-phi.i = phi i64 [ %.pre193.i, %drmp3_L3_reorder.exit.loopexit.i ], [ %868, %1573 ] - %1606 = sub i64 %.pre-phi.i, %868 - call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 8 %1578, ptr nonnull align 8 %867, i64 %1606, i1 false) +1603: ; preds = %drmp3_L3_reorder.exit.loopexit.i, %1571 + %.pre-phi.i = phi i64 [ %.pre193.i, %drmp3_L3_reorder.exit.loopexit.i ], [ %868, %1571 ] + %1604 = sub i64 %.pre-phi.i, %868 + call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 8 %1576, ptr nonnull align 8 %867, i64 %1604, i1 false) br i1 %.not57.i, label %drmp3_L3_antialias.exit.i.thread, label %.preheader.i90.preheader.i -drmp3_L3_antialias.exit.i.thread: ; preds = %1605 - %1607 = getelementptr inbounds [2 x [288 x float]], ptr %0, i64 0, i64 %indvars.iv188.i - %1608 = getelementptr inbounds i8, ptr %.0142.i, i64 15 - %1609 = load i8, ptr %1608, align 1 +drmp3_L3_antialias.exit.i.thread: ; preds = %1603 + %1605 = getelementptr inbounds [2 x [288 x float]], ptr %0, i64 0, i64 %indvars.iv188.i + %1606 = getelementptr inbounds i8, ptr %.0142.i, i64 15 + %1607 = load i8, ptr %1606, align 1 br label %.thread.i.i -.preheader.i90.preheader.i: ; preds = %1605, %.thread.i - %1610 = phi ptr [ %1572, %.thread.i ], [ %1575, %1605 ] - %.054195.i = phi i32 [ 31, %.thread.i ], [ %1574, %1605 ] +.preheader.i90.preheader.i: ; preds = %1603, %.thread.i + %1608 = phi ptr [ %1570, %.thread.i ], [ %1573, %1603 ] + %.054195.i = phi i32 [ 31, %.thread.i ], [ %1572, %1603 ] br label %.preheader.i90.i -.preheader.i90.i: ; preds = %1631, %.preheader.i90.preheader.i - %.051.i.i = phi ptr [ %1611, %1631 ], [ %1610, %.preheader.i90.preheader.i ] - %.04850.i.i = phi i32 [ %1632, %1631 ], [ %.054195.i, %.preheader.i90.preheader.i ] - %1611 = getelementptr inbounds i8, ptr %.051.i.i, i64 72 - %1612 = getelementptr inbounds i8, ptr %.051.i.i, i64 56 - br label %1613 - -1613: ; preds = %1613, %.preheader.i90.i - %.old1.i.i = phi i1 [ false, %1613 ], [ true, %.preheader.i90.i ] - %.049.i.i = phi i64 [ 4, %1613 ], [ 0, %.preheader.i90.i ] - %1614 = getelementptr inbounds float, ptr %1611, i64 %.049.i.i - %1615 = load <4 x float>, ptr %1614, align 1 - %1616 = sub nsw i64 0, %.049.i.i - %1617 = getelementptr inbounds float, ptr %1612, i64 %1616 - %1618 = load <4 x float>, ptr %1617, align 1 - %1619 = getelementptr inbounds float, ptr @drmp3_L3_antialias.g_aa, i64 %.049.i.i +.preheader.i90.i: ; preds = %1629, %.preheader.i90.preheader.i + %.051.i.i = phi ptr [ %1609, %1629 ], [ %1608, %.preheader.i90.preheader.i ] + %.04850.i.i = phi i32 [ %1630, %1629 ], [ %.054195.i, %.preheader.i90.preheader.i ] + %1609 = getelementptr inbounds i8, ptr %.051.i.i, i64 72 + %1610 = getelementptr inbounds i8, ptr %.051.i.i, i64 56 + br label %1611 + +1611: ; preds = %1611, %.preheader.i90.i + %.old1.i.i = phi i1 [ false, %1611 ], [ true, %.preheader.i90.i ] + %.049.i.i = phi i64 [ 4, %1611 ], [ 0, %.preheader.i90.i ] + %1612 = getelementptr inbounds float, ptr %1609, i64 %.049.i.i + %1613 = load <4 x float>, ptr %1612, align 1 + %1614 = sub nsw i64 0, %.049.i.i + %1615 = getelementptr inbounds float, ptr %1610, i64 %1614 + %1616 = load <4 x float>, ptr %1615, align 1 + %1617 = getelementptr inbounds float, ptr @drmp3_L3_antialias.g_aa, i64 %.049.i.i + %1618 = load <4 x float>, ptr %1617, align 16 + %1619 = getelementptr inbounds float, ptr getelementptr inbounds ([2 x [8 x float]], ptr @drmp3_L3_antialias.g_aa, i64 0, i64 1), i64 %.049.i.i %1620 = load <4 x float>, ptr %1619, align 16 - %1621 = getelementptr inbounds float, ptr getelementptr inbounds ([2 x [8 x float]], ptr @drmp3_L3_antialias.g_aa, i64 0, i64 1), i64 %.049.i.i - %1622 = load <4 x float>, ptr %1621, align 16 - %1623 = shufflevector <4 x float> %1618, <4 x float> poison, <4 x i32> - %1624 = fmul <4 x float> %1615, %1620 - %1625 = fmul <4 x float> %1623, %1622 - %1626 = fsub <4 x float> %1624, %1625 - store <4 x float> %1626, ptr %1614, align 1 - %1627 = fmul <4 x float> %1615, %1622 - %1628 = fmul <4 x float> %1623, %1620 - %1629 = fadd <4 x float> %1628, %1627 - %1630 = shufflevector <4 x float> %1629, <4 x float> poison, <4 x i32> - store <4 x float> %1630, ptr %1617, align 1 - br i1 %.old1.i.i, label %1613, label %1631 - -1631: ; preds = %1613 - %1632 = add nsw i32 %.04850.i.i, -1 - %1633 = icmp sgt i32 %.04850.i.i, 1 - br i1 %1633, label %.preheader.i90.i, label %drmp3_L3_antialias.exit.i - -drmp3_L3_antialias.exit.i: ; preds = %1631 - %1634 = getelementptr inbounds [2 x [288 x float]], ptr %0, i64 0, i64 %indvars.iv188.i - %1635 = getelementptr inbounds i8, ptr %.0142.i, i64 15 - %1636 = load i8, ptr %1635, align 1 - br i1 %.not57.i, label %.thread.i.i, label %1637 - -1637: ; preds = %drmp3_L3_antialias.exit.i - %1638 = getelementptr inbounds [2 x [576 x float]], ptr %854, i64 0, i64 %indvars.iv188.i - call fastcc void @drmp3_L3_imdct36(ptr noundef nonnull %1610, ptr noundef %1634, ptr noundef nonnull @drmp3_L3_imdct_gr.g_mdct_window, i32 noundef %1569) - %1639 = mul nuw nsw i32 %1569, 18 - %1640 = zext nneg i32 %1639 to i64 - %1641 = getelementptr inbounds float, ptr %1638, i64 %1640 - %1642 = mul nuw nsw i32 %1569, 9 - %1643 = zext nneg i32 %1642 to i64 - %1644 = getelementptr inbounds float, ptr %1634, i64 %1643 - %1645 = icmp eq i8 %1636, 2 - br i1 %1645, label %.lr.ph.i.i92.i, label %1811 + %1621 = shufflevector <4 x float> %1616, <4 x float> poison, <4 x i32> + %1622 = fmul <4 x float> %1613, %1618 + %1623 = fmul <4 x float> %1621, %1620 + %1624 = fsub <4 x float> %1622, %1623 + store <4 x float> %1624, ptr %1612, align 1 + %1625 = fmul <4 x float> %1613, %1620 + %1626 = fmul <4 x float> %1621, %1618 + %1627 = fadd <4 x float> %1626, %1625 + %1628 = shufflevector <4 x float> %1627, <4 x float> poison, <4 x i32> + store <4 x float> %1628, ptr %1615, align 1 + br i1 %.old1.i.i, label %1611, label %1629 + +1629: ; preds = %1611 + %1630 = add nsw i32 %.04850.i.i, -1 + %1631 = icmp sgt i32 %.04850.i.i, 1 + br i1 %1631, label %.preheader.i90.i, label %drmp3_L3_antialias.exit.i + +drmp3_L3_antialias.exit.i: ; preds = %1629 + %1632 = getelementptr inbounds [2 x [288 x float]], ptr %0, i64 0, i64 %indvars.iv188.i + %1633 = getelementptr inbounds i8, ptr %.0142.i, i64 15 + %1634 = load i8, ptr %1633, align 1 + br i1 %.not57.i, label %.thread.i.i, label %1635 + +1635: ; preds = %drmp3_L3_antialias.exit.i + %1636 = getelementptr inbounds [2 x [576 x float]], ptr %854, i64 0, i64 %indvars.iv188.i + call fastcc void @drmp3_L3_imdct36(ptr noundef nonnull %1608, ptr noundef %1632, ptr noundef nonnull @drmp3_L3_imdct_gr.g_mdct_window, i32 noundef %1567) + %1637 = mul nuw nsw i32 %1567, 18 + %1638 = zext nneg i32 %1637 to i64 + %1639 = getelementptr inbounds float, ptr %1636, i64 %1638 + %1640 = mul nuw nsw i32 %1567, 9 + %1641 = zext nneg i32 %1640 to i64 + %1642 = getelementptr inbounds float, ptr %1632, i64 %1641 + %1643 = icmp eq i8 %1634, 2 + br i1 %1643, label %.lr.ph.i.i92.i, label %1809 .thread.i.i: ; preds = %drmp3_L3_antialias.exit.i.thread, %drmp3_L3_antialias.exit.i - %1646 = phi i8 [ %1609, %drmp3_L3_antialias.exit.i.thread ], [ %1636, %drmp3_L3_antialias.exit.i ] - %1647 = phi ptr [ %1607, %drmp3_L3_antialias.exit.i.thread ], [ %1634, %drmp3_L3_antialias.exit.i ] - %1648 = phi ptr [ %1575, %drmp3_L3_antialias.exit.i.thread ], [ %1610, %drmp3_L3_antialias.exit.i ] - %1649 = icmp eq i8 %1646, 2 - br i1 %1649, label %.lr.ph.i.i92.i, label %1811 - -.lr.ph.i.i92.i: ; preds = %.thread.i.i, %1637 - %1650 = phi ptr [ %1648, %.thread.i.i ], [ %1610, %1637 ] - %.0152230.i.i = phi ptr [ %1647, %.thread.i.i ], [ %1644, %1637 ] - %.02429.i.i = phi ptr [ %1648, %.thread.i.i ], [ %1641, %1637 ] - %1651 = sub nuw nsw i32 32, %1569 - br label %1652 - -1652: ; preds = %drmp3_L3_imdct12.exit21.i.i.i, %.lr.ph.i.i92.i - %.024.i.i.i = phi i32 [ %1651, %.lr.ph.i.i92.i ], [ %1807, %drmp3_L3_imdct12.exit21.i.i.i ] - %.01223.i.i.i = phi ptr [ %.0152230.i.i, %.lr.ph.i.i92.i ], [ %1808, %drmp3_L3_imdct12.exit21.i.i.i ] - %.01322.i.i.i = phi ptr [ %.02429.i.i, %.lr.ph.i.i92.i ], [ %1809, %drmp3_L3_imdct12.exit21.i.i.i ] + %1644 = phi i8 [ %1607, %drmp3_L3_antialias.exit.i.thread ], [ %1634, %drmp3_L3_antialias.exit.i ] + %1645 = phi ptr [ %1605, %drmp3_L3_antialias.exit.i.thread ], [ %1632, %drmp3_L3_antialias.exit.i ] + %1646 = phi ptr [ %1573, %drmp3_L3_antialias.exit.i.thread ], [ %1608, %drmp3_L3_antialias.exit.i ] + %1647 = icmp eq i8 %1644, 2 + br i1 %1647, label %.lr.ph.i.i92.i, label %1809 + +.lr.ph.i.i92.i: ; preds = %.thread.i.i, %1635 + %1648 = phi ptr [ %1646, %.thread.i.i ], [ %1608, %1635 ] + %.0152230.i.i = phi ptr [ %1645, %.thread.i.i ], [ %1642, %1635 ] + %.02429.i.i = phi ptr [ %1646, %.thread.i.i ], [ %1639, %1635 ] + %1649 = sub nuw nsw i32 32, %1567 + br label %1650 + +1650: ; preds = %drmp3_L3_imdct12.exit21.i.i.i, %.lr.ph.i.i92.i + %.024.i.i.i = phi i32 [ %1649, %.lr.ph.i.i92.i ], [ %1805, %drmp3_L3_imdct12.exit21.i.i.i ] + %.01223.i.i.i = phi ptr [ %.0152230.i.i, %.lr.ph.i.i92.i ], [ %1806, %drmp3_L3_imdct12.exit21.i.i.i ] + %.01322.i.i.i = phi ptr [ %.02429.i.i, %.lr.ph.i.i92.i ], [ %1807, %drmp3_L3_imdct12.exit21.i.i.i ] %.sroa.0.0.copyload.i.i.i = load float, ptr %.01322.i.i.i, align 4 %.sroa.2.0..013.sroa_idx.i.i.i = getelementptr inbounds i8, ptr %.01322.i.i.i, i64 4 %.sroa.2.0.copyload.i.i.i = load float, ptr %.sroa.2.0..013.sroa_idx.i.i.i, align 4 @@ -79216,1040 +79217,1040 @@ drmp3_L3_antialias.exit.i: ; preds = %1631 %.sroa.18.0..013.sroa_idx.i.i.i = getelementptr inbounds i8, ptr %.01322.i.i.i, i64 68 %.sroa.18.0.copyload.i.i.i = load float, ptr %.sroa.18.0..013.sroa_idx.i.i.i, align 4 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(24) %.01322.i.i.i, ptr noundef nonnull align 4 dereferenceable(24) %.01223.i.i.i, i64 24, i1 false) - %1653 = getelementptr inbounds i8, ptr %.01223.i.i.i, i64 24 + %1651 = getelementptr inbounds i8, ptr %.01223.i.i.i, i64 24 call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %10) call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %11) - %1654 = fneg float %.sroa.0.0.copyload.i.i.i - %1655 = fadd float %.sroa.4.0.copyload.i.i.i, %.sroa.7.0.copyload.i.i.i - %1656 = fadd float %.sroa.10.0.copyload.i.i.i, %.sroa.13.0.copyload.i.i.i - %1657 = fmul float %1655, 0x3FEBB67AE0000000 - %1658 = fneg float %1656 - %1659 = call float @llvm.fmuladd.f32(float %1658, float 5.000000e-01, float %1654) - %1660 = fadd float %1657, %1659 - store float %1660, ptr %10, align 4 - %1661 = insertelement <2 x float> poison, float %1656, i64 0 - %1662 = insertelement <2 x float> %1661, float %1659, i64 1 - %1663 = insertelement <2 x float> poison, float %.sroa.0.0.copyload.i.i.i, i64 0 - %1664 = insertelement <2 x float> %1663, float %1657, i64 1 - %1665 = fsub <2 x float> %1662, %1664 - store <2 x float> %1665, ptr %869, align 4 - %1666 = fsub float %.sroa.13.0.copyload.i.i.i, %.sroa.10.0.copyload.i.i.i - %1667 = fsub float %.sroa.7.0.copyload.i.i.i, %.sroa.4.0.copyload.i.i.i - %1668 = fmul float %1666, 0x3FEBB67AE0000000 - %1669 = fneg float %1667 - %1670 = call float @llvm.fmuladd.f32(float %1669, float 5.000000e-01, float %.sroa.16.0.copyload.i.i.i) - %1671 = fadd float %1667, %.sroa.16.0.copyload.i.i.i - %1672 = fadd float %1668, %1670 - store float %1672, ptr %11, align 4 - %1673 = fsub float %1670, %1668 - store float %1673, ptr %871, align 4 - %1674 = fneg float %1671 - store float %1674, ptr %870, align 4 - br label %1675 - -1675: ; preds = %1675, %1652 - %indvars.iv.i.i.i93.i = phi i64 [ 0, %1652 ], [ %indvars.iv.next.i.i.i94.i, %1675 ] - %1676 = getelementptr inbounds float, ptr %1653, i64 %indvars.iv.i.i.i93.i + %1652 = fneg float %.sroa.0.0.copyload.i.i.i + %1653 = fadd float %.sroa.4.0.copyload.i.i.i, %.sroa.7.0.copyload.i.i.i + %1654 = fadd float %.sroa.10.0.copyload.i.i.i, %.sroa.13.0.copyload.i.i.i + %1655 = fmul float %1653, 0x3FEBB67AE0000000 + %1656 = fneg float %1654 + %1657 = call float @llvm.fmuladd.f32(float %1656, float 5.000000e-01, float %1652) + %1658 = fadd float %1655, %1657 + store float %1658, ptr %10, align 4 + %1659 = insertelement <2 x float> poison, float %1654, i64 0 + %1660 = insertelement <2 x float> %1659, float %1657, i64 1 + %1661 = insertelement <2 x float> poison, float %.sroa.0.0.copyload.i.i.i, i64 0 + %1662 = insertelement <2 x float> %1661, float %1655, i64 1 + %1663 = fsub <2 x float> %1660, %1662 + store <2 x float> %1663, ptr %869, align 4 + %1664 = fsub float %.sroa.13.0.copyload.i.i.i, %.sroa.10.0.copyload.i.i.i + %1665 = fsub float %.sroa.7.0.copyload.i.i.i, %.sroa.4.0.copyload.i.i.i + %1666 = fmul float %1664, 0x3FEBB67AE0000000 + %1667 = fneg float %1665 + %1668 = call float @llvm.fmuladd.f32(float %1667, float 5.000000e-01, float %.sroa.16.0.copyload.i.i.i) + %1669 = fadd float %1665, %.sroa.16.0.copyload.i.i.i + %1670 = fadd float %1666, %1668 + store float %1670, ptr %11, align 4 + %1671 = fsub float %1668, %1666 + store float %1671, ptr %871, align 4 + %1672 = fneg float %1669 + store float %1672, ptr %870, align 4 + br label %1673 + +1673: ; preds = %1673, %1650 + %indvars.iv.i.i.i93.i = phi i64 [ 0, %1650 ], [ %indvars.iv.next.i.i.i94.i, %1673 ] + %1674 = getelementptr inbounds float, ptr %1651, i64 %indvars.iv.i.i.i93.i + %1675 = load float, ptr %1674, align 4 + %1676 = getelementptr inbounds [3 x float], ptr %10, i64 0, i64 %indvars.iv.i.i.i93.i %1677 = load float, ptr %1676, align 4 - %1678 = getelementptr inbounds [3 x float], ptr %10, i64 0, i64 %indvars.iv.i.i.i93.i - %1679 = load float, ptr %1678, align 4 - %1680 = add nuw nsw i64 %indvars.iv.i.i.i93.i, 3 - %1681 = getelementptr inbounds [6 x float], ptr @drmp3_L3_imdct12.g_twid3, i64 0, i64 %1680 + %1678 = add nuw nsw i64 %indvars.iv.i.i.i93.i, 3 + %1679 = getelementptr inbounds [6 x float], ptr @drmp3_L3_imdct12.g_twid3, i64 0, i64 %1678 + %1680 = load float, ptr %1679, align 4 + %1681 = getelementptr inbounds [3 x float], ptr %11, i64 0, i64 %indvars.iv.i.i.i93.i %1682 = load float, ptr %1681, align 4 - %1683 = getelementptr inbounds [3 x float], ptr %11, i64 0, i64 %indvars.iv.i.i.i93.i + %1683 = getelementptr inbounds [6 x float], ptr @drmp3_L3_imdct12.g_twid3, i64 0, i64 %indvars.iv.i.i.i93.i %1684 = load float, ptr %1683, align 4 - %1685 = getelementptr inbounds [6 x float], ptr @drmp3_L3_imdct12.g_twid3, i64 0, i64 %indvars.iv.i.i.i93.i - %1686 = load float, ptr %1685, align 4 - %1687 = fmul float %1684, %1686 - %1688 = call float @llvm.fmuladd.f32(float %1679, float %1682, float %1687) - %1689 = fneg float %1684 - %1690 = fmul float %1682, %1689 - %1691 = call float @llvm.fmuladd.f32(float %1679, float %1686, float %1690) - store float %1691, ptr %1676, align 4 - %1692 = sub nuw nsw i64 2, %indvars.iv.i.i.i93.i - %1693 = getelementptr inbounds [6 x float], ptr @drmp3_L3_imdct12.g_twid3, i64 0, i64 %1692 - %1694 = load float, ptr %1693, align 4 - %1695 = sub nuw nsw i64 5, %indvars.iv.i.i.i93.i - %1696 = getelementptr inbounds [6 x float], ptr @drmp3_L3_imdct12.g_twid3, i64 0, i64 %1695 - %1697 = load float, ptr %1696, align 4 - %1698 = fneg float %1688 - %1699 = fmul float %1697, %1698 - %1700 = call float @llvm.fmuladd.f32(float %1677, float %1694, float %1699) - %1701 = getelementptr inbounds float, ptr %.sroa.7.0..013.sroa_idx.i.i.i, i64 %indvars.iv.i.i.i93.i - store float %1700, ptr %1701, align 4 - %1702 = fmul float %1688, %1694 - %1703 = call float @llvm.fmuladd.f32(float %1677, float %1697, float %1702) - %1704 = getelementptr inbounds float, ptr %.sroa.7.0..013.sroa_idx.i.i.i, i64 %1695 - store float %1703, ptr %1704, align 4 + %1685 = fmul float %1682, %1684 + %1686 = call float @llvm.fmuladd.f32(float %1677, float %1680, float %1685) + %1687 = fneg float %1682 + %1688 = fmul float %1680, %1687 + %1689 = call float @llvm.fmuladd.f32(float %1677, float %1684, float %1688) + store float %1689, ptr %1674, align 4 + %1690 = sub nuw nsw i64 2, %indvars.iv.i.i.i93.i + %1691 = getelementptr inbounds [6 x float], ptr @drmp3_L3_imdct12.g_twid3, i64 0, i64 %1690 + %1692 = load float, ptr %1691, align 4 + %1693 = sub nuw nsw i64 5, %indvars.iv.i.i.i93.i + %1694 = getelementptr inbounds [6 x float], ptr @drmp3_L3_imdct12.g_twid3, i64 0, i64 %1693 + %1695 = load float, ptr %1694, align 4 + %1696 = fneg float %1686 + %1697 = fmul float %1695, %1696 + %1698 = call float @llvm.fmuladd.f32(float %1675, float %1692, float %1697) + %1699 = getelementptr inbounds float, ptr %.sroa.7.0..013.sroa_idx.i.i.i, i64 %indvars.iv.i.i.i93.i + store float %1698, ptr %1699, align 4 + %1700 = fmul float %1686, %1692 + %1701 = call float @llvm.fmuladd.f32(float %1675, float %1695, float %1700) + %1702 = getelementptr inbounds float, ptr %.sroa.7.0..013.sroa_idx.i.i.i, i64 %1693 + store float %1701, ptr %1702, align 4 %indvars.iv.next.i.i.i94.i = add nuw nsw i64 %indvars.iv.i.i.i93.i, 1 %exitcond.not.i.i.i95.i = icmp eq i64 %indvars.iv.next.i.i.i94.i, 3 - br i1 %exitcond.not.i.i.i95.i, label %drmp3_L3_imdct12.exit.i.i.i, label %1675 + br i1 %exitcond.not.i.i.i95.i, label %drmp3_L3_imdct12.exit.i.i.i, label %1673 -drmp3_L3_imdct12.exit.i.i.i: ; preds = %1675 +drmp3_L3_imdct12.exit.i.i.i: ; preds = %1673 call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %10) call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %11) call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %8) call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %9) - %1705 = fneg float %.sroa.2.0.copyload.i.i.i - %1706 = fadd float %.sroa.5.0.copyload.i.i.i, %.sroa.8.0.copyload.i.i.i - %1707 = fadd float %.sroa.11.0.copyload.i.i.i, %.sroa.14.0.copyload.i.i.i - %1708 = fmul float %1706, 0x3FEBB67AE0000000 - %1709 = fneg float %1707 - %1710 = call float @llvm.fmuladd.f32(float %1709, float 5.000000e-01, float %1705) - %1711 = fadd float %1708, %1710 - store float %1711, ptr %8, align 4 - %1712 = insertelement <2 x float> poison, float %1707, i64 0 - %1713 = insertelement <2 x float> %1712, float %1710, i64 1 - %1714 = insertelement <2 x float> poison, float %.sroa.2.0.copyload.i.i.i, i64 0 - %1715 = insertelement <2 x float> %1714, float %1708, i64 1 - %1716 = fsub <2 x float> %1713, %1715 - store <2 x float> %1716, ptr %872, align 4 - %1717 = fsub float %.sroa.14.0.copyload.i.i.i, %.sroa.11.0.copyload.i.i.i - %1718 = fsub float %.sroa.8.0.copyload.i.i.i, %.sroa.5.0.copyload.i.i.i - %1719 = fmul float %1717, 0x3FEBB67AE0000000 - %1720 = fneg float %1718 - %1721 = call float @llvm.fmuladd.f32(float %1720, float 5.000000e-01, float %.sroa.17.0.copyload.i.i.i) - %1722 = fadd float %1718, %.sroa.17.0.copyload.i.i.i - %1723 = fadd float %1719, %1721 - store float %1723, ptr %9, align 4 - %1724 = fsub float %1721, %1719 - store float %1724, ptr %874, align 4 - %1725 = fneg float %1722 - store float %1725, ptr %873, align 4 - br label %1726 - -1726: ; preds = %1726, %drmp3_L3_imdct12.exit.i.i.i - %indvars.iv.i14.i.i.i = phi i64 [ 0, %drmp3_L3_imdct12.exit.i.i.i ], [ %indvars.iv.next.i15.i.i.i, %1726 ] - %1727 = getelementptr inbounds float, ptr %1653, i64 %indvars.iv.i14.i.i.i + %1703 = fneg float %.sroa.2.0.copyload.i.i.i + %1704 = fadd float %.sroa.5.0.copyload.i.i.i, %.sroa.8.0.copyload.i.i.i + %1705 = fadd float %.sroa.11.0.copyload.i.i.i, %.sroa.14.0.copyload.i.i.i + %1706 = fmul float %1704, 0x3FEBB67AE0000000 + %1707 = fneg float %1705 + %1708 = call float @llvm.fmuladd.f32(float %1707, float 5.000000e-01, float %1703) + %1709 = fadd float %1706, %1708 + store float %1709, ptr %8, align 4 + %1710 = insertelement <2 x float> poison, float %1705, i64 0 + %1711 = insertelement <2 x float> %1710, float %1708, i64 1 + %1712 = insertelement <2 x float> poison, float %.sroa.2.0.copyload.i.i.i, i64 0 + %1713 = insertelement <2 x float> %1712, float %1706, i64 1 + %1714 = fsub <2 x float> %1711, %1713 + store <2 x float> %1714, ptr %872, align 4 + %1715 = fsub float %.sroa.14.0.copyload.i.i.i, %.sroa.11.0.copyload.i.i.i + %1716 = fsub float %.sroa.8.0.copyload.i.i.i, %.sroa.5.0.copyload.i.i.i + %1717 = fmul float %1715, 0x3FEBB67AE0000000 + %1718 = fneg float %1716 + %1719 = call float @llvm.fmuladd.f32(float %1718, float 5.000000e-01, float %.sroa.17.0.copyload.i.i.i) + %1720 = fadd float %1716, %.sroa.17.0.copyload.i.i.i + %1721 = fadd float %1717, %1719 + store float %1721, ptr %9, align 4 + %1722 = fsub float %1719, %1717 + store float %1722, ptr %874, align 4 + %1723 = fneg float %1720 + store float %1723, ptr %873, align 4 + br label %1724 + +1724: ; preds = %1724, %drmp3_L3_imdct12.exit.i.i.i + %indvars.iv.i14.i.i.i = phi i64 [ 0, %drmp3_L3_imdct12.exit.i.i.i ], [ %indvars.iv.next.i15.i.i.i, %1724 ] + %1725 = getelementptr inbounds float, ptr %1651, i64 %indvars.iv.i14.i.i.i + %1726 = load float, ptr %1725, align 4 + %1727 = getelementptr inbounds [3 x float], ptr %8, i64 0, i64 %indvars.iv.i14.i.i.i %1728 = load float, ptr %1727, align 4 - %1729 = getelementptr inbounds [3 x float], ptr %8, i64 0, i64 %indvars.iv.i14.i.i.i - %1730 = load float, ptr %1729, align 4 - %1731 = add nuw nsw i64 %indvars.iv.i14.i.i.i, 3 - %1732 = getelementptr inbounds [6 x float], ptr @drmp3_L3_imdct12.g_twid3, i64 0, i64 %1731 + %1729 = add nuw nsw i64 %indvars.iv.i14.i.i.i, 3 + %1730 = getelementptr inbounds [6 x float], ptr @drmp3_L3_imdct12.g_twid3, i64 0, i64 %1729 + %1731 = load float, ptr %1730, align 4 + %1732 = getelementptr inbounds [3 x float], ptr %9, i64 0, i64 %indvars.iv.i14.i.i.i %1733 = load float, ptr %1732, align 4 - %1734 = getelementptr inbounds [3 x float], ptr %9, i64 0, i64 %indvars.iv.i14.i.i.i + %1734 = getelementptr inbounds [6 x float], ptr @drmp3_L3_imdct12.g_twid3, i64 0, i64 %indvars.iv.i14.i.i.i %1735 = load float, ptr %1734, align 4 - %1736 = getelementptr inbounds [6 x float], ptr @drmp3_L3_imdct12.g_twid3, i64 0, i64 %indvars.iv.i14.i.i.i - %1737 = load float, ptr %1736, align 4 - %1738 = fmul float %1735, %1737 - %1739 = call float @llvm.fmuladd.f32(float %1730, float %1733, float %1738) - %1740 = fneg float %1735 - %1741 = fmul float %1733, %1740 - %1742 = call float @llvm.fmuladd.f32(float %1730, float %1737, float %1741) - store float %1742, ptr %1727, align 4 - %1743 = sub nuw nsw i64 2, %indvars.iv.i14.i.i.i - %1744 = getelementptr inbounds [6 x float], ptr @drmp3_L3_imdct12.g_twid3, i64 0, i64 %1743 - %1745 = load float, ptr %1744, align 4 - %1746 = sub nuw nsw i64 5, %indvars.iv.i14.i.i.i - %1747 = getelementptr inbounds [6 x float], ptr @drmp3_L3_imdct12.g_twid3, i64 0, i64 %1746 - %1748 = load float, ptr %1747, align 4 - %1749 = fneg float %1739 - %1750 = fmul float %1748, %1749 - %1751 = call float @llvm.fmuladd.f32(float %1728, float %1745, float %1750) - %1752 = getelementptr inbounds float, ptr %.sroa.13.0..013.sroa_idx.i.i.i, i64 %indvars.iv.i14.i.i.i - store float %1751, ptr %1752, align 4 - %1753 = fmul float %1739, %1745 - %1754 = call float @llvm.fmuladd.f32(float %1728, float %1748, float %1753) - %1755 = getelementptr inbounds float, ptr %.sroa.13.0..013.sroa_idx.i.i.i, i64 %1746 - store float %1754, ptr %1755, align 4 + %1736 = fmul float %1733, %1735 + %1737 = call float @llvm.fmuladd.f32(float %1728, float %1731, float %1736) + %1738 = fneg float %1733 + %1739 = fmul float %1731, %1738 + %1740 = call float @llvm.fmuladd.f32(float %1728, float %1735, float %1739) + store float %1740, ptr %1725, align 4 + %1741 = sub nuw nsw i64 2, %indvars.iv.i14.i.i.i + %1742 = getelementptr inbounds [6 x float], ptr @drmp3_L3_imdct12.g_twid3, i64 0, i64 %1741 + %1743 = load float, ptr %1742, align 4 + %1744 = sub nuw nsw i64 5, %indvars.iv.i14.i.i.i + %1745 = getelementptr inbounds [6 x float], ptr @drmp3_L3_imdct12.g_twid3, i64 0, i64 %1744 + %1746 = load float, ptr %1745, align 4 + %1747 = fneg float %1737 + %1748 = fmul float %1746, %1747 + %1749 = call float @llvm.fmuladd.f32(float %1726, float %1743, float %1748) + %1750 = getelementptr inbounds float, ptr %.sroa.13.0..013.sroa_idx.i.i.i, i64 %indvars.iv.i14.i.i.i + store float %1749, ptr %1750, align 4 + %1751 = fmul float %1737, %1743 + %1752 = call float @llvm.fmuladd.f32(float %1726, float %1746, float %1751) + %1753 = getelementptr inbounds float, ptr %.sroa.13.0..013.sroa_idx.i.i.i, i64 %1744 + store float %1752, ptr %1753, align 4 %indvars.iv.next.i15.i.i.i = add nuw nsw i64 %indvars.iv.i14.i.i.i, 1 %exitcond.not.i16.i.i.i = icmp eq i64 %indvars.iv.next.i15.i.i.i, 3 - br i1 %exitcond.not.i16.i.i.i, label %drmp3_L3_imdct12.exit17.i.i.i, label %1726 + br i1 %exitcond.not.i16.i.i.i, label %drmp3_L3_imdct12.exit17.i.i.i, label %1724 -drmp3_L3_imdct12.exit17.i.i.i: ; preds = %1726 +drmp3_L3_imdct12.exit17.i.i.i: ; preds = %1724 call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %8) call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %9) call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %6) call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %7) - %1756 = fneg float %.sroa.3.0.copyload.i.i.i - %1757 = fadd float %.sroa.6.0.copyload.i.i.i, %.sroa.9.0.copyload.i.i.i - %1758 = fadd float %.sroa.12.0.copyload.i.i.i, %.sroa.15.0.copyload.i.i.i - %1759 = fmul float %1757, 0x3FEBB67AE0000000 - %1760 = fneg float %1758 - %1761 = call float @llvm.fmuladd.f32(float %1760, float 5.000000e-01, float %1756) - %1762 = fadd float %1759, %1761 - store float %1762, ptr %6, align 4 - %1763 = insertelement <2 x float> poison, float %1758, i64 0 - %1764 = insertelement <2 x float> %1763, float %1761, i64 1 - %1765 = insertelement <2 x float> poison, float %.sroa.3.0.copyload.i.i.i, i64 0 - %1766 = insertelement <2 x float> %1765, float %1759, i64 1 - %1767 = fsub <2 x float> %1764, %1766 - store <2 x float> %1767, ptr %875, align 4 - %1768 = fsub float %.sroa.15.0.copyload.i.i.i, %.sroa.12.0.copyload.i.i.i - %1769 = fsub float %.sroa.9.0.copyload.i.i.i, %.sroa.6.0.copyload.i.i.i - %1770 = fmul float %1768, 0x3FEBB67AE0000000 - %1771 = fneg float %1769 - %1772 = call float @llvm.fmuladd.f32(float %1771, float 5.000000e-01, float %.sroa.18.0.copyload.i.i.i) - %1773 = fadd float %1769, %.sroa.18.0.copyload.i.i.i - %1774 = fadd float %1770, %1772 - store float %1774, ptr %7, align 4 - %1775 = fsub float %1772, %1770 - store float %1775, ptr %877, align 4 - %1776 = fneg float %1773 - store float %1776, ptr %876, align 4 - br label %1777 - -1777: ; preds = %1777, %drmp3_L3_imdct12.exit17.i.i.i - %indvars.iv.i18.i.i.i = phi i64 [ 0, %drmp3_L3_imdct12.exit17.i.i.i ], [ %indvars.iv.next.i19.i.i.i, %1777 ] - %1778 = getelementptr inbounds float, ptr %1653, i64 %indvars.iv.i18.i.i.i + %1754 = fneg float %.sroa.3.0.copyload.i.i.i + %1755 = fadd float %.sroa.6.0.copyload.i.i.i, %.sroa.9.0.copyload.i.i.i + %1756 = fadd float %.sroa.12.0.copyload.i.i.i, %.sroa.15.0.copyload.i.i.i + %1757 = fmul float %1755, 0x3FEBB67AE0000000 + %1758 = fneg float %1756 + %1759 = call float @llvm.fmuladd.f32(float %1758, float 5.000000e-01, float %1754) + %1760 = fadd float %1757, %1759 + store float %1760, ptr %6, align 4 + %1761 = insertelement <2 x float> poison, float %1756, i64 0 + %1762 = insertelement <2 x float> %1761, float %1759, i64 1 + %1763 = insertelement <2 x float> poison, float %.sroa.3.0.copyload.i.i.i, i64 0 + %1764 = insertelement <2 x float> %1763, float %1757, i64 1 + %1765 = fsub <2 x float> %1762, %1764 + store <2 x float> %1765, ptr %875, align 4 + %1766 = fsub float %.sroa.15.0.copyload.i.i.i, %.sroa.12.0.copyload.i.i.i + %1767 = fsub float %.sroa.9.0.copyload.i.i.i, %.sroa.6.0.copyload.i.i.i + %1768 = fmul float %1766, 0x3FEBB67AE0000000 + %1769 = fneg float %1767 + %1770 = call float @llvm.fmuladd.f32(float %1769, float 5.000000e-01, float %.sroa.18.0.copyload.i.i.i) + %1771 = fadd float %1767, %.sroa.18.0.copyload.i.i.i + %1772 = fadd float %1768, %1770 + store float %1772, ptr %7, align 4 + %1773 = fsub float %1770, %1768 + store float %1773, ptr %877, align 4 + %1774 = fneg float %1771 + store float %1774, ptr %876, align 4 + br label %1775 + +1775: ; preds = %1775, %drmp3_L3_imdct12.exit17.i.i.i + %indvars.iv.i18.i.i.i = phi i64 [ 0, %drmp3_L3_imdct12.exit17.i.i.i ], [ %indvars.iv.next.i19.i.i.i, %1775 ] + %1776 = getelementptr inbounds float, ptr %1651, i64 %indvars.iv.i18.i.i.i + %1777 = load float, ptr %1776, align 4 + %1778 = getelementptr inbounds [3 x float], ptr %6, i64 0, i64 %indvars.iv.i18.i.i.i %1779 = load float, ptr %1778, align 4 - %1780 = getelementptr inbounds [3 x float], ptr %6, i64 0, i64 %indvars.iv.i18.i.i.i - %1781 = load float, ptr %1780, align 4 - %1782 = add nuw nsw i64 %indvars.iv.i18.i.i.i, 3 - %1783 = getelementptr inbounds [6 x float], ptr @drmp3_L3_imdct12.g_twid3, i64 0, i64 %1782 + %1780 = add nuw nsw i64 %indvars.iv.i18.i.i.i, 3 + %1781 = getelementptr inbounds [6 x float], ptr @drmp3_L3_imdct12.g_twid3, i64 0, i64 %1780 + %1782 = load float, ptr %1781, align 4 + %1783 = getelementptr inbounds [3 x float], ptr %7, i64 0, i64 %indvars.iv.i18.i.i.i %1784 = load float, ptr %1783, align 4 - %1785 = getelementptr inbounds [3 x float], ptr %7, i64 0, i64 %indvars.iv.i18.i.i.i + %1785 = getelementptr inbounds [6 x float], ptr @drmp3_L3_imdct12.g_twid3, i64 0, i64 %indvars.iv.i18.i.i.i %1786 = load float, ptr %1785, align 4 - %1787 = getelementptr inbounds [6 x float], ptr @drmp3_L3_imdct12.g_twid3, i64 0, i64 %indvars.iv.i18.i.i.i - %1788 = load float, ptr %1787, align 4 - %1789 = fmul float %1786, %1788 - %1790 = call float @llvm.fmuladd.f32(float %1781, float %1784, float %1789) - %1791 = fneg float %1786 - %1792 = fmul float %1784, %1791 - %1793 = call float @llvm.fmuladd.f32(float %1781, float %1788, float %1792) - store float %1793, ptr %1778, align 4 - %1794 = sub nuw nsw i64 2, %indvars.iv.i18.i.i.i - %1795 = getelementptr inbounds [6 x float], ptr @drmp3_L3_imdct12.g_twid3, i64 0, i64 %1794 - %1796 = load float, ptr %1795, align 4 - %1797 = sub nuw nsw i64 5, %indvars.iv.i18.i.i.i - %1798 = getelementptr inbounds [6 x float], ptr @drmp3_L3_imdct12.g_twid3, i64 0, i64 %1797 - %1799 = load float, ptr %1798, align 4 - %1800 = fneg float %1790 - %1801 = fmul float %1799, %1800 - %1802 = call float @llvm.fmuladd.f32(float %1779, float %1796, float %1801) - %1803 = getelementptr inbounds float, ptr %.01223.i.i.i, i64 %indvars.iv.i18.i.i.i - store float %1802, ptr %1803, align 4 - %1804 = fmul float %1790, %1796 - %1805 = call float @llvm.fmuladd.f32(float %1779, float %1799, float %1804) - %1806 = getelementptr inbounds float, ptr %.01223.i.i.i, i64 %1797 - store float %1805, ptr %1806, align 4 + %1787 = fmul float %1784, %1786 + %1788 = call float @llvm.fmuladd.f32(float %1779, float %1782, float %1787) + %1789 = fneg float %1784 + %1790 = fmul float %1782, %1789 + %1791 = call float @llvm.fmuladd.f32(float %1779, float %1786, float %1790) + store float %1791, ptr %1776, align 4 + %1792 = sub nuw nsw i64 2, %indvars.iv.i18.i.i.i + %1793 = getelementptr inbounds [6 x float], ptr @drmp3_L3_imdct12.g_twid3, i64 0, i64 %1792 + %1794 = load float, ptr %1793, align 4 + %1795 = sub nuw nsw i64 5, %indvars.iv.i18.i.i.i + %1796 = getelementptr inbounds [6 x float], ptr @drmp3_L3_imdct12.g_twid3, i64 0, i64 %1795 + %1797 = load float, ptr %1796, align 4 + %1798 = fneg float %1788 + %1799 = fmul float %1797, %1798 + %1800 = call float @llvm.fmuladd.f32(float %1777, float %1794, float %1799) + %1801 = getelementptr inbounds float, ptr %.01223.i.i.i, i64 %indvars.iv.i18.i.i.i + store float %1800, ptr %1801, align 4 + %1802 = fmul float %1788, %1794 + %1803 = call float @llvm.fmuladd.f32(float %1777, float %1797, float %1802) + %1804 = getelementptr inbounds float, ptr %.01223.i.i.i, i64 %1795 + store float %1803, ptr %1804, align 4 %indvars.iv.next.i19.i.i.i = add nuw nsw i64 %indvars.iv.i18.i.i.i, 1 %exitcond.not.i20.i.i.i = icmp eq i64 %indvars.iv.next.i19.i.i.i, 3 - br i1 %exitcond.not.i20.i.i.i, label %drmp3_L3_imdct12.exit21.i.i.i, label %1777 + br i1 %exitcond.not.i20.i.i.i, label %drmp3_L3_imdct12.exit21.i.i.i, label %1775 -drmp3_L3_imdct12.exit21.i.i.i: ; preds = %1777 +drmp3_L3_imdct12.exit21.i.i.i: ; preds = %1775 call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %6) call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %7) - %1807 = add nsw i32 %.024.i.i.i, -1 - %1808 = getelementptr inbounds i8, ptr %.01223.i.i.i, i64 36 - %1809 = getelementptr inbounds i8, ptr %.01322.i.i.i, i64 72 - %1810 = icmp sgt i32 %.024.i.i.i, 1 - br i1 %1810, label %1652, label %drmp3_L3_imdct_gr.exit.i - -1811: ; preds = %.thread.i.i, %1637 - %1812 = phi i8 [ %1646, %.thread.i.i ], [ %1636, %1637 ] - %1813 = phi ptr [ %1648, %.thread.i.i ], [ %1610, %1637 ] - %.023.i.i = phi ptr [ %1648, %.thread.i.i ], [ %1641, %1637 ] - %.01521.i.i = phi ptr [ %1647, %.thread.i.i ], [ %1644, %1637 ] - %1814 = icmp eq i8 %1812, 3 - %1815 = zext i1 %1814 to i64 - %1816 = getelementptr inbounds [2 x [18 x float]], ptr @drmp3_L3_imdct_gr.g_mdct_window, i64 0, i64 %1815 - %1817 = sub nuw nsw i32 32, %1569 - call fastcc void @drmp3_L3_imdct36(ptr noundef %.023.i.i, ptr noundef %.01521.i.i, ptr noundef nonnull %1816, i32 noundef %1817) + %1805 = add nsw i32 %.024.i.i.i, -1 + %1806 = getelementptr inbounds i8, ptr %.01223.i.i.i, i64 36 + %1807 = getelementptr inbounds i8, ptr %.01322.i.i.i, i64 72 + %1808 = icmp sgt i32 %.024.i.i.i, 1 + br i1 %1808, label %1650, label %drmp3_L3_imdct_gr.exit.i + +1809: ; preds = %.thread.i.i, %1635 + %1810 = phi i8 [ %1644, %.thread.i.i ], [ %1634, %1635 ] + %1811 = phi ptr [ %1646, %.thread.i.i ], [ %1608, %1635 ] + %.023.i.i = phi ptr [ %1646, %.thread.i.i ], [ %1639, %1635 ] + %.01521.i.i = phi ptr [ %1645, %.thread.i.i ], [ %1642, %1635 ] + %1812 = icmp eq i8 %1810, 3 + %1813 = zext i1 %1812 to i64 + %1814 = getelementptr inbounds [2 x [18 x float]], ptr @drmp3_L3_imdct_gr.g_mdct_window, i64 0, i64 %1813 + %1815 = sub nuw nsw i32 32, %1567 + call fastcc void @drmp3_L3_imdct36(ptr noundef %.023.i.i, ptr noundef %.01521.i.i, ptr noundef nonnull %1814, i32 noundef %1815) br label %drmp3_L3_imdct_gr.exit.i -drmp3_L3_imdct_gr.exit.i: ; preds = %drmp3_L3_imdct12.exit21.i.i.i, %1811 - %1818 = phi ptr [ %1813, %1811 ], [ %1650, %drmp3_L3_imdct12.exit21.i.i.i ] - %1819 = getelementptr inbounds i8, ptr %1818, i64 72 +drmp3_L3_imdct_gr.exit.i: ; preds = %drmp3_L3_imdct12.exit21.i.i.i, %1809 + %1816 = phi ptr [ %1811, %1809 ], [ %1648, %drmp3_L3_imdct12.exit21.i.i.i ] + %1817 = getelementptr inbounds i8, ptr %1816, i64 72 br label %.preheader.i96.i -.preheader.i96.i: ; preds = %1825, %drmp3_L3_imdct_gr.exit.i - %.0913.i.i = phi i32 [ 0, %drmp3_L3_imdct_gr.exit.i ], [ %1826, %1825 ] - %.01012.i.i = phi ptr [ %1819, %drmp3_L3_imdct_gr.exit.i ], [ %1827, %1825 ] - br label %1820 - -1820: ; preds = %1820, %.preheader.i96.i - %indvars.iv.i97.i = phi i64 [ 1, %.preheader.i96.i ], [ %indvars.iv.next.i98.i, %1820 ] - %1821 = getelementptr inbounds float, ptr %.01012.i.i, i64 %indvars.iv.i97.i - %1822 = load float, ptr %1821, align 4 - %1823 = fneg float %1822 - store float %1823, ptr %1821, align 4 +.preheader.i96.i: ; preds = %1823, %drmp3_L3_imdct_gr.exit.i + %.0913.i.i = phi i32 [ 0, %drmp3_L3_imdct_gr.exit.i ], [ %1824, %1823 ] + %.01012.i.i = phi ptr [ %1817, %drmp3_L3_imdct_gr.exit.i ], [ %1825, %1823 ] + br label %1818 + +1818: ; preds = %1818, %.preheader.i96.i + %indvars.iv.i97.i = phi i64 [ 1, %.preheader.i96.i ], [ %indvars.iv.next.i98.i, %1818 ] + %1819 = getelementptr inbounds float, ptr %.01012.i.i, i64 %indvars.iv.i97.i + %1820 = load float, ptr %1819, align 4 + %1821 = fneg float %1820 + store float %1821, ptr %1819, align 4 %indvars.iv.next.i98.i = add nuw nsw i64 %indvars.iv.i97.i, 2 - %1824 = icmp ult i64 %indvars.iv.i97.i, 16 - br i1 %1824, label %1820, label %1825 + %1822 = icmp ult i64 %indvars.iv.i97.i, 16 + br i1 %1822, label %1818, label %1823 -1825: ; preds = %1820 - %1826 = add nuw nsw i32 %.0913.i.i, 2 - %1827 = getelementptr inbounds i8, ptr %.01012.i.i, i64 144 - %1828 = icmp ult i32 %.0913.i.i, 30 - br i1 %1828, label %.preheader.i96.i, label %drmp3_L3_change_sign.exit.i +1823: ; preds = %1818 + %1824 = add nuw nsw i32 %.0913.i.i, 2 + %1825 = getelementptr inbounds i8, ptr %.01012.i.i, i64 144 + %1826 = icmp ult i32 %.0913.i.i, 30 + br i1 %1826, label %.preheader.i96.i, label %drmp3_L3_change_sign.exit.i -drmp3_L3_change_sign.exit.i: ; preds = %1825 +drmp3_L3_change_sign.exit.i: ; preds = %1823 %indvars.iv.next189.i = add nuw nsw i64 %indvars.iv188.i, 1 - %1829 = getelementptr inbounds i8, ptr %.0142.i, i64 32 + %1827 = getelementptr inbounds i8, ptr %.0142.i, i64 32 %exitcond192.not.i = icmp eq i64 %indvars.iv.next189.i, %wide.trip.count191.i - br i1 %exitcond192.not.i, label %drmp3_L3_decode.exit, label %1550 + br i1 %exitcond192.not.i, label %drmp3_L3_decode.exit, label %1548 drmp3_L3_decode.exit: ; preds = %drmp3_L3_change_sign.exit.i, %drmp3_L3_midside_stereo.exit.i - %1830 = load i32, ptr %343, align 4 - call fastcc void @drmp3d_synth_granule(ptr noundef nonnull %878, ptr noundef nonnull %854, i32 noundef 18, i32 noundef %1830, ptr noundef %.074385, ptr noundef nonnull %867) - %1831 = load i32, ptr %343, align 4 - %1832 = sext i32 %1831 to i64 - %1833 = mul nsw i64 %1832, 1152 - %1834 = getelementptr inbounds i8, ptr %.074385, i64 %1833 - %1835 = load i8, ptr %344, align 1 - %1836 = and i8 %1835, 8 - %.not93 = icmp ne i8 %1836, 0 - %1837 = and i1 %.not93, %881 - br i1 %1837, label %879, label %.loopexit.loopexit + %1828 = load i32, ptr %343, align 4 + call fastcc void @drmp3d_synth_granule(ptr noundef nonnull %878, ptr noundef nonnull %854, i32 noundef 18, i32 noundef %1828, ptr noundef %.074385, ptr noundef nonnull %867) + %1829 = load i32, ptr %343, align 4 + %1830 = sext i32 %1829 to i64 + %1831 = mul nsw i64 %1830, 1152 + %1832 = getelementptr inbounds i8, ptr %.074385, i64 %1831 + %1833 = load i8, ptr %344, align 1 + %1834 = and i8 %1833, 8 + %.not93 = icmp ne i8 %1834, 0 + %1835 = and i1 %.not93, %881 + br i1 %1835, label %879, label %.loopexit.loopexit .loopexit.loopexit: ; preds = %drmp3_L3_decode.exit %.pre = load i32, ptr %848, align 8 %.pre473 = load i32, ptr %850, align 4 - %1838 = add nsw i32 %.pre, 7 - %1839 = lshr i32 %1838, 3 + %1836 = add nsw i32 %.pre, 7 + %1837 = lshr i32 %1836, 3 br label %.loopexit .loopexit: ; preds = %.loopexit.loopexit, %831 - %1840 = phi i32 [ %.pre473, %.loopexit.loopexit ], [ %849, %831 ] - %1841 = phi i32 [ %1839, %.loopexit.loopexit ], [ 0, %831 ] - %1842 = lshr i32 %1840, 3 - %1843 = sub nsw i32 %1842, %1841 - %spec.select14.i = call i32 @llvm.smin.i32(i32 %1843, i32 511) - %1844 = icmp sgt i32 %1843, 0 - br i1 %1844, label %1845, label %drmp3_L3_save_reservoir.exit - -1845: ; preds = %.loopexit - %1846 = icmp ugt i32 %1843, 511 - %1847 = add nsw i32 %1842, -511 - %spec.select.i142 = select i1 %1846, i32 %1847, i32 %1841 - %1848 = zext nneg i32 %spec.select.i142 to i64 - %1849 = getelementptr inbounds i8, ptr %838, i64 %1848 - %1850 = zext nneg i32 %spec.select14.i to i64 - call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 4 %836, ptr nonnull align 1 %1849, i64 %1850, i1 false) + %1838 = phi i32 [ %.pre473, %.loopexit.loopexit ], [ %849, %831 ] + %1839 = phi i32 [ %1837, %.loopexit.loopexit ], [ 0, %831 ] + %1840 = lshr i32 %1838, 3 + %1841 = sub nsw i32 %1840, %1839 + %spec.select14.i = call i32 @llvm.smin.i32(i32 %1841, i32 511) + %1842 = icmp sgt i32 %1841, 0 + br i1 %1842, label %1843, label %drmp3_L3_save_reservoir.exit + +1843: ; preds = %.loopexit + %1844 = icmp ugt i32 %1841, 511 + %1845 = add nsw i32 %1840, -511 + %spec.select.i142 = select i1 %1844, i32 %1845, i32 %1839 + %1846 = zext nneg i32 %spec.select.i142 to i64 + %1847 = getelementptr inbounds i8, ptr %838, i64 %1846 + %1848 = zext nneg i32 %spec.select14.i to i64 + call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 4 %836, ptr nonnull align 1 %1847, i64 %1848, i1 false) br label %drmp3_L3_save_reservoir.exit -drmp3_L3_save_reservoir.exit: ; preds = %.loopexit, %1845 +drmp3_L3_save_reservoir.exit: ; preds = %.loopexit, %1843 store i32 %spec.select14.i, ptr %832, align 4 br label %.loopexit301 -1851: ; preds = %.thread277 - %1852 = icmp eq ptr %3, null - br i1 %1852, label %1853, label %1862 - -1853: ; preds = %1851 - %1854 = zext i8 %.fr to i32 - %1855 = and i32 %1854, 6 - %1856 = icmp eq i32 %1855, 6 - %1857 = and i32 %1854, 14 - %1858 = icmp eq i32 %1857, 2 - %1859 = zext i1 %1858 to i32 - %1860 = lshr exact i32 1152, %1859 - %1861 = select i1 %1856, i32 384, i32 %1860 - br label %2209 - -1862: ; preds = %1851 - %1863 = load i8, ptr %339, align 1 - %1864 = zext i8 %1863 to i32 - %1865 = lshr i32 %1864, 6 - switch i32 %1865, label %.fold.split.i.i [ - i32 3, label %1870 - i32 1, label %1866 +1849: ; preds = %.thread277 + %1850 = icmp eq ptr %3, null + br i1 %1850, label %1851, label %1860 + +1851: ; preds = %1849 + %1852 = zext i8 %.fr to i32 + %1853 = and i32 %1852, 6 + %1854 = icmp eq i32 %1853, 6 + %1855 = and i32 %1852, 14 + %1856 = icmp eq i32 %1855, 2 + %1857 = zext i1 %1856 to i32 + %1858 = lshr exact i32 1152, %1857 + %1859 = select i1 %1854, i32 384, i32 %1858 + br label %2207 + +1860: ; preds = %1849 + %1861 = load i8, ptr %339, align 1 + %1862 = zext i8 %1861 to i32 + %1863 = lshr i32 %1862, 6 + switch i32 %1863, label %.fold.split.i.i [ + i32 3, label %1868 + i32 1, label %1864 ] -1866: ; preds = %1862 - %1867 = lshr i32 %1864, 2 - %1868 = and i32 %1867, 12 - %1869 = add nuw nsw i32 %1868, 4 - br label %1870 - -.fold.split.i.i: ; preds = %1862 - br label %1870 - -1870: ; preds = %.fold.split.i.i, %1866, %1862 - %1871 = phi i32 [ 0, %1862 ], [ %1869, %1866 ], [ 32, %.fold.split.i.i ] - %1872 = zext i8 %.fr to i32 - %1873 = and i32 %1872, 6 - %1874 = icmp eq i32 %1873, 6 - br i1 %1874, label %.lr.ph.i146, label %1875 - -1875: ; preds = %1870 - %1876 = and i32 %1872, 8 - %.not.i.i143 = icmp eq i32 %1876, 0 - br i1 %.not.i.i143, label %.lr.ph.i146, label %1877 - -1877: ; preds = %1875 - %1878 = load i8, ptr %345, align 1 - %1879 = lshr i8 %1878, 2 - %1880 = and i8 %1879, 3 - %1881 = lshr i32 %1872, 1 - %1882 = and i32 %1881, 3 - %1883 = add nsw i32 %1882, -1 - %1884 = sext i32 %1883 to i64 - %1885 = lshr i8 %1878, 4 - %1886 = zext nneg i8 %1885 to i64 - %1887 = getelementptr inbounds [2 x [3 x [15 x i8]]], ptr @drmp3_hdr_bitrate_kbps.halfrate, i64 0, i64 1, i64 %1884, i64 %1886 - %1888 = load i8, ptr %1887, align 1 - %1889 = zext i8 %1888 to i32 - %1890 = shl nuw nsw i32 %1889, 1 - %1891 = icmp ne i32 %1865, 3 - %1892 = zext i1 %1891 to i32 - %1893 = lshr exact i32 %1890, %1892 - %.not24.i.i = icmp eq i8 %1888, 0 - %spec.store.select.i.i = select i1 %.not24.i.i, i32 192, i32 %1893 - %1894 = icmp ult i32 %spec.store.select.i.i, 56 - br i1 %1894, label %1895, label %1898 - -1895: ; preds = %1877 - %1896 = icmp eq i8 %1880, 2 - %1897 = select i1 %1896, i32 12, i32 8 +1864: ; preds = %1860 + %1865 = lshr i32 %1862, 2 + %1866 = and i32 %1865, 12 + %1867 = add nuw nsw i32 %1866, 4 + br label %1868 + +.fold.split.i.i: ; preds = %1860 + br label %1868 + +1868: ; preds = %.fold.split.i.i, %1864, %1860 + %1869 = phi i32 [ 0, %1860 ], [ %1867, %1864 ], [ 32, %.fold.split.i.i ] + %1870 = zext i8 %.fr to i32 + %1871 = and i32 %1870, 6 + %1872 = icmp eq i32 %1871, 6 + br i1 %1872, label %.lr.ph.i146, label %1873 + +1873: ; preds = %1868 + %1874 = and i32 %1870, 8 + %.not.i.i143 = icmp eq i32 %1874, 0 + br i1 %.not.i.i143, label %.lr.ph.i146, label %1875 + +1875: ; preds = %1873 + %1876 = load i8, ptr %345, align 1 + %1877 = lshr i8 %1876, 2 + %1878 = and i8 %1877, 3 + %1879 = lshr i32 %1870, 1 + %1880 = and i32 %1879, 3 + %1881 = add nsw i32 %1880, -1 + %1882 = sext i32 %1881 to i64 + %1883 = lshr i8 %1876, 4 + %1884 = zext nneg i8 %1883 to i64 + %1885 = getelementptr inbounds [2 x [3 x [15 x i8]]], ptr @drmp3_hdr_bitrate_kbps.halfrate, i64 0, i64 1, i64 %1882, i64 %1884 + %1886 = load i8, ptr %1885, align 1 + %1887 = zext i8 %1886 to i32 + %1888 = shl nuw nsw i32 %1887, 1 + %1889 = icmp ne i32 %1863, 3 + %1890 = zext i1 %1889 to i32 + %1891 = lshr exact i32 %1888, %1890 + %.not24.i.i = icmp eq i8 %1886, 0 + %spec.store.select.i.i = select i1 %.not24.i.i, i32 192, i32 %1891 + %1892 = icmp ult i32 %spec.store.select.i.i, 56 + br i1 %1892, label %1893, label %1896 + +1893: ; preds = %1875 + %1894 = icmp eq i8 %1878, 2 + %1895 = select i1 %1894, i32 12, i32 8 br label %.lr.ph.i146 -1898: ; preds = %1877 - %1899 = icmp ugt i32 %spec.store.select.i.i, 95 - %1900 = icmp ne i8 %1880, 1 - %or.cond.i.i144 = and i1 %1900, %1899 +1896: ; preds = %1875 + %1897 = icmp ugt i32 %spec.store.select.i.i, 95 + %1898 = icmp ne i8 %1878, 1 + %or.cond.i.i144 = and i1 %1898, %1897 %spec.select.i.i145 = select i1 %or.cond.i.i144, i32 30, i32 27 br label %.lr.ph.i146 -.lr.ph.i146: ; preds = %1898, %1895, %1875, %1870 - %.022.i.i = phi i32 [ %1897, %1895 ], [ 32, %1870 ], [ 30, %1875 ], [ %spec.select.i.i145, %1898 ] - %.0.i.i147 = phi ptr [ @drmp3_L12_subband_alloc_table.g_alloc_L2M1_lowrate, %1895 ], [ @drmp3_L12_subband_alloc_table.g_alloc_L1, %1870 ], [ @drmp3_L12_subband_alloc_table.g_alloc_L2M2, %1875 ], [ @drmp3_L12_subband_alloc_table.g_alloc_L2M1, %1898 ] - %1901 = trunc i32 %.022.i.i to i8 - %1902 = getelementptr inbounds i8, ptr %16, i64 768 - store i8 %1901, ptr %1902, align 16 - %1903 = tail call i32 @llvm.umin.i32(i32 %1871, i32 %.022.i.i) - %1904 = trunc i32 %1903 to i8 - %1905 = getelementptr inbounds i8, ptr %16, i64 769 - store i8 %1904, ptr %1905, align 1 - %1906 = getelementptr inbounds i8, ptr %16, i64 770 - %1907 = zext nneg i32 %1903 to i64 - %.not56.i = icmp eq i8 %1904, 0 - %1908 = zext nneg i32 %.022.i.i to i64 - br label %1918 - -.lr.ph103.i: ; preds = %1988 - %1909 = getelementptr inbounds i8, ptr %16, i64 834 - %1910 = shl nuw nsw i32 %.022.i.i, 1 - %1911 = zext nneg i32 %1910 to i64 - %1912 = and i8 %.fr, 6 - %1913 = icmp eq i8 %1912, 6 - br i1 %1913, label %.lr.ph103.i.split.us, label %.lr.ph103.i.split +.lr.ph.i146: ; preds = %1896, %1893, %1873, %1868 + %.022.i.i = phi i32 [ %1895, %1893 ], [ 32, %1868 ], [ 30, %1873 ], [ %spec.select.i.i145, %1896 ] + %.0.i.i147 = phi ptr [ @drmp3_L12_subband_alloc_table.g_alloc_L2M1_lowrate, %1893 ], [ @drmp3_L12_subband_alloc_table.g_alloc_L1, %1868 ], [ @drmp3_L12_subband_alloc_table.g_alloc_L2M2, %1873 ], [ @drmp3_L12_subband_alloc_table.g_alloc_L2M1, %1896 ] + %1899 = trunc i32 %.022.i.i to i8 + %1900 = getelementptr inbounds i8, ptr %16, i64 768 + store i8 %1899, ptr %1900, align 16 + %1901 = tail call i32 @llvm.umin.i32(i32 %1869, i32 %.022.i.i) + %1902 = trunc i32 %1901 to i8 + %1903 = getelementptr inbounds i8, ptr %16, i64 769 + store i8 %1902, ptr %1903, align 1 + %1904 = getelementptr inbounds i8, ptr %16, i64 770 + %1905 = zext nneg i32 %1901 to i64 + %.not56.i = icmp eq i8 %1902, 0 + %1906 = zext nneg i32 %.022.i.i to i64 + br label %1916 + +.lr.ph103.i: ; preds = %1986 + %1907 = getelementptr inbounds i8, ptr %16, i64 834 + %1908 = shl nuw nsw i32 %.022.i.i, 1 + %1909 = zext nneg i32 %1908 to i64 + %1910 = and i8 %.fr, 6 + %1911 = icmp eq i8 %1910, 6 + br i1 %1911, label %.lr.ph103.i.split.us, label %.lr.ph103.i.split .lr.ph103.i.split.us: ; preds = %.lr.ph103.i, %.lr.ph103.i.split.us %indvars.iv121.i.us = phi i64 [ %indvars.iv.next122.i.us, %.lr.ph103.i.split.us ], [ 0, %.lr.ph103.i ] - %1914 = getelementptr inbounds [64 x i8], ptr %1906, i64 0, i64 %indvars.iv121.i.us - %1915 = load i8, ptr %1914, align 1 - %.not.i156.us = icmp eq i8 %1915, 0 - %1916 = select i1 %.not.i156.us, i8 6, i8 2 - %1917 = getelementptr inbounds [64 x i8], ptr %1909, i64 0, i64 %indvars.iv121.i.us - store i8 %1916, ptr %1917, align 1 + %1912 = getelementptr inbounds [64 x i8], ptr %1904, i64 0, i64 %indvars.iv121.i.us + %1913 = load i8, ptr %1912, align 1 + %.not.i156.us = icmp eq i8 %1913, 0 + %1914 = select i1 %.not.i156.us, i8 6, i8 2 + %1915 = getelementptr inbounds [64 x i8], ptr %1907, i64 0, i64 %indvars.iv121.i.us + store i8 %1914, ptr %1915, align 1 %indvars.iv.next122.i.us = add nuw nsw i64 %indvars.iv121.i.us, 1 - %exitcond468.not = icmp eq i64 %indvars.iv.next122.i.us, %1911 + %exitcond468.not = icmp eq i64 %indvars.iv.next122.i.us, %1909 br i1 %exitcond468.not, label %.lr.ph.i83.i.preheader, label %.lr.ph103.i.split.us -1918: ; preds = %1988, %.lr.ph.i146 - %.sroa.24.6 = phi i32 [ %spec.select551, %.lr.ph.i146 ], [ %.sroa.24.7, %1988 ] - %indvars.iv.i148 = phi i64 [ 0, %.lr.ph.i146 ], [ %indvars.iv.next.i155, %1988 ] - %.046101.i = phi ptr [ @drmp3_L12_read_scale_info.g_bitalloc_code_tab, %.lr.ph.i146 ], [ %.1.i149, %1988 ] - %.047100.i = phi i32 [ 0, %.lr.ph.i146 ], [ %.148.i, %1988 ] - %.04999.i = phi i32 [ 0, %.lr.ph.i146 ], [ %.150.i, %1988 ] - %.05397.i = phi ptr [ %.0.i.i147, %.lr.ph.i146 ], [ %.154.i, %1988 ] - %1919 = zext i32 %.04999.i to i64 - %1920 = icmp eq i64 %indvars.iv.i148, %1919 - br i1 %1920, label %1921, label %1933 - -1921: ; preds = %1918 - %1922 = getelementptr inbounds i8, ptr %.05397.i, i64 2 - %1923 = load i8, ptr %1922, align 1 - %1924 = zext i8 %1923 to i32 - %1925 = add nuw nsw i32 %.04999.i, %1924 - %1926 = getelementptr inbounds i8, ptr %.05397.i, i64 1 - %1927 = load i8, ptr %1926, align 1 - %1928 = zext i8 %1927 to i32 - %1929 = load i8, ptr %.05397.i, align 1 - %1930 = zext i8 %1929 to i64 - %1931 = getelementptr inbounds i8, ptr @drmp3_L12_read_scale_info.g_bitalloc_code_tab, i64 %1930 - %1932 = getelementptr inbounds i8, ptr %.05397.i, i64 3 - br label %1933 - -1933: ; preds = %1921, %1918 - %.154.i = phi ptr [ %1932, %1921 ], [ %.05397.i, %1918 ] - %.150.i = phi i32 [ %1925, %1921 ], [ %.04999.i, %1918 ] - %.148.i = phi i32 [ %1928, %1921 ], [ %.047100.i, %1918 ] - %.1.i149 = phi ptr [ %1931, %1921 ], [ %.046101.i, %1918 ] - %1934 = add nsw i32 %.148.i, %.sroa.24.6 - %1935 = icmp sgt i32 %1934, %380 - br i1 %1935, label %drmp3_bs_get_bits.exit.i151, label %1936 - -1936: ; preds = %1933 - %1937 = ashr i32 %.sroa.24.6, 3 - %1938 = sext i32 %1937 to i64 - %1939 = getelementptr inbounds i8, ptr %378, i64 %1938 - %1940 = and i32 %.sroa.24.6, 7 - %1941 = add nuw nsw i32 %.148.i, %1940 - %1942 = load i8, ptr %1939, align 1 - %1943 = zext i8 %1942 to i32 - %1944 = lshr i32 255, %1940 - %1945 = and i32 %1944, %1943 - %1946 = icmp sgt i32 %1941, 8 - br i1 %1946, label %.lr.ph.i.i166, label %._crit_edge.i.i150 - -.lr.ph.i.i166: ; preds = %1936, %.lr.ph.i.i166 - %.pn26.i.i = phi ptr [ %.0.i57.i, %.lr.ph.i.i166 ], [ %1939, %1936 ] - %.01825.i.i = phi i32 [ %1947, %.lr.ph.i.i166 ], [ %1941, %1936 ] - %.02024.i.i = phi i32 [ %1949, %.lr.ph.i.i166 ], [ 0, %1936 ] - %.02123.i.i = phi i32 [ %1951, %.lr.ph.i.i166 ], [ %1945, %1936 ] +1916: ; preds = %1986, %.lr.ph.i146 + %.sroa.24.6 = phi i32 [ %spec.select551, %.lr.ph.i146 ], [ %.sroa.24.7, %1986 ] + %indvars.iv.i148 = phi i64 [ 0, %.lr.ph.i146 ], [ %indvars.iv.next.i155, %1986 ] + %.046101.i = phi ptr [ @drmp3_L12_read_scale_info.g_bitalloc_code_tab, %.lr.ph.i146 ], [ %.1.i149, %1986 ] + %.047100.i = phi i32 [ 0, %.lr.ph.i146 ], [ %.148.i, %1986 ] + %.04999.i = phi i32 [ 0, %.lr.ph.i146 ], [ %.150.i, %1986 ] + %.05397.i = phi ptr [ %.0.i.i147, %.lr.ph.i146 ], [ %.154.i, %1986 ] + %1917 = zext i32 %.04999.i to i64 + %1918 = icmp eq i64 %indvars.iv.i148, %1917 + br i1 %1918, label %1919, label %1931 + +1919: ; preds = %1916 + %1920 = getelementptr inbounds i8, ptr %.05397.i, i64 2 + %1921 = load i8, ptr %1920, align 1 + %1922 = zext i8 %1921 to i32 + %1923 = add nuw nsw i32 %.04999.i, %1922 + %1924 = getelementptr inbounds i8, ptr %.05397.i, i64 1 + %1925 = load i8, ptr %1924, align 1 + %1926 = zext i8 %1925 to i32 + %1927 = load i8, ptr %.05397.i, align 1 + %1928 = zext i8 %1927 to i64 + %1929 = getelementptr inbounds i8, ptr @drmp3_L12_read_scale_info.g_bitalloc_code_tab, i64 %1928 + %1930 = getelementptr inbounds i8, ptr %.05397.i, i64 3 + br label %1931 + +1931: ; preds = %1919, %1916 + %.154.i = phi ptr [ %1930, %1919 ], [ %.05397.i, %1916 ] + %.150.i = phi i32 [ %1923, %1919 ], [ %.04999.i, %1916 ] + %.148.i = phi i32 [ %1926, %1919 ], [ %.047100.i, %1916 ] + %.1.i149 = phi ptr [ %1929, %1919 ], [ %.046101.i, %1916 ] + %1932 = add nsw i32 %.148.i, %.sroa.24.6 + %1933 = icmp sgt i32 %1932, %380 + br i1 %1933, label %drmp3_bs_get_bits.exit.i151, label %1934 + +1934: ; preds = %1931 + %1935 = ashr i32 %.sroa.24.6, 3 + %1936 = sext i32 %1935 to i64 + %1937 = getelementptr inbounds i8, ptr %378, i64 %1936 + %1938 = and i32 %.sroa.24.6, 7 + %1939 = add nuw nsw i32 %.148.i, %1938 + %1940 = load i8, ptr %1937, align 1 + %1941 = zext i8 %1940 to i32 + %1942 = lshr i32 255, %1938 + %1943 = and i32 %1942, %1941 + %1944 = icmp sgt i32 %1939, 8 + br i1 %1944, label %.lr.ph.i.i166, label %._crit_edge.i.i150 + +.lr.ph.i.i166: ; preds = %1934, %.lr.ph.i.i166 + %.pn26.i.i = phi ptr [ %.0.i57.i, %.lr.ph.i.i166 ], [ %1937, %1934 ] + %.01825.i.i = phi i32 [ %1945, %.lr.ph.i.i166 ], [ %1939, %1934 ] + %.02024.i.i = phi i32 [ %1947, %.lr.ph.i.i166 ], [ 0, %1934 ] + %.02123.i.i = phi i32 [ %1949, %.lr.ph.i.i166 ], [ %1943, %1934 ] %.0.i57.i = getelementptr inbounds i8, ptr %.pn26.i.i, i64 1 - %1947 = add nsw i32 %.01825.i.i, -8 - %1948 = shl i32 %.02123.i.i, %1947 - %1949 = or i32 %1948, %.02024.i.i - %1950 = load i8, ptr %.0.i57.i, align 1 - %1951 = zext i8 %1950 to i32 - %1952 = icmp ugt i32 %.01825.i.i, 16 - br i1 %1952, label %.lr.ph.i.i166, label %._crit_edge.i.i150 - -._crit_edge.i.i150: ; preds = %.lr.ph.i.i166, %1936 - %.021.lcssa.i.i = phi i32 [ %1945, %1936 ], [ %1951, %.lr.ph.i.i166 ] - %.020.lcssa.i.i = phi i32 [ 0, %1936 ], [ %1949, %.lr.ph.i.i166 ] - %.018.lcssa.i.i = phi i32 [ %1941, %1936 ], [ %1947, %.lr.ph.i.i166 ] - %1953 = sub nsw i32 8, %.018.lcssa.i.i - %1954 = lshr i32 %.021.lcssa.i.i, %1953 - %1955 = or i32 %1954, %.020.lcssa.i.i + %1945 = add nsw i32 %.01825.i.i, -8 + %1946 = shl i32 %.02123.i.i, %1945 + %1947 = or i32 %1946, %.02024.i.i + %1948 = load i8, ptr %.0.i57.i, align 1 + %1949 = zext i8 %1948 to i32 + %1950 = icmp ugt i32 %.01825.i.i, 16 + br i1 %1950, label %.lr.ph.i.i166, label %._crit_edge.i.i150 + +._crit_edge.i.i150: ; preds = %.lr.ph.i.i166, %1934 + %.021.lcssa.i.i = phi i32 [ %1943, %1934 ], [ %1949, %.lr.ph.i.i166 ] + %.020.lcssa.i.i = phi i32 [ 0, %1934 ], [ %1947, %.lr.ph.i.i166 ] + %.018.lcssa.i.i = phi i32 [ %1939, %1934 ], [ %1945, %.lr.ph.i.i166 ] + %1951 = sub nsw i32 8, %.018.lcssa.i.i + %1952 = lshr i32 %.021.lcssa.i.i, %1951 + %1953 = or i32 %1952, %.020.lcssa.i.i br label %drmp3_bs_get_bits.exit.i151 -drmp3_bs_get_bits.exit.i151: ; preds = %._crit_edge.i.i150, %1933 - %.019.i.i152 = phi i32 [ %1955, %._crit_edge.i.i150 ], [ 0, %1933 ] - %1956 = zext i32 %.019.i.i152 to i64 - %1957 = getelementptr inbounds i8, ptr %.1.i149, i64 %1956 - %1958 = load i8, ptr %1957, align 1 - %1959 = shl nuw nsw i64 %indvars.iv.i148, 1 - %1960 = getelementptr inbounds [64 x i8], ptr %1906, i64 0, i64 %1959 - store i8 %1958, ptr %1960, align 2 - %1961 = icmp ult i64 %indvars.iv.i148, %1907 - br i1 %1961, label %1962, label %1988 - -1962: ; preds = %drmp3_bs_get_bits.exit.i151 - %1963 = add nsw i32 %1934, %.148.i - %1964 = icmp sgt i32 %1963, %380 - br i1 %1964, label %drmp3_bs_get_bits.exit69.i, label %1965 - -1965: ; preds = %1962 - %1966 = ashr i32 %1934, 3 - %1967 = sext i32 %1966 to i64 - %1968 = getelementptr inbounds i8, ptr %378, i64 %1967 - %1969 = and i32 %1934, 7 - %1970 = add nuw nsw i32 %1969, %.148.i - %1971 = load i8, ptr %1968, align 1 - %1972 = zext i8 %1971 to i32 - %1973 = lshr i32 255, %1969 - %1974 = and i32 %1973, %1972 - %1975 = icmp sgt i32 %1970, 8 - br i1 %1975, label %.lr.ph.i63.i, label %._crit_edge.i58.i - -.lr.ph.i63.i: ; preds = %1965, %.lr.ph.i63.i - %.pn26.i64.i = phi ptr [ %.0.i68.i, %.lr.ph.i63.i ], [ %1968, %1965 ] - %.01825.i65.i = phi i32 [ %1976, %.lr.ph.i63.i ], [ %1970, %1965 ] - %.02024.i66.i = phi i32 [ %1978, %.lr.ph.i63.i ], [ 0, %1965 ] - %.02123.i67.i = phi i32 [ %1980, %.lr.ph.i63.i ], [ %1974, %1965 ] +drmp3_bs_get_bits.exit.i151: ; preds = %._crit_edge.i.i150, %1931 + %.019.i.i152 = phi i32 [ %1953, %._crit_edge.i.i150 ], [ 0, %1931 ] + %1954 = zext i32 %.019.i.i152 to i64 + %1955 = getelementptr inbounds i8, ptr %.1.i149, i64 %1954 + %1956 = load i8, ptr %1955, align 1 + %1957 = shl nuw nsw i64 %indvars.iv.i148, 1 + %1958 = getelementptr inbounds [64 x i8], ptr %1904, i64 0, i64 %1957 + store i8 %1956, ptr %1958, align 2 + %1959 = icmp ult i64 %indvars.iv.i148, %1905 + br i1 %1959, label %1960, label %1986 + +1960: ; preds = %drmp3_bs_get_bits.exit.i151 + %1961 = add nsw i32 %1932, %.148.i + %1962 = icmp sgt i32 %1961, %380 + br i1 %1962, label %drmp3_bs_get_bits.exit69.i, label %1963 + +1963: ; preds = %1960 + %1964 = ashr i32 %1932, 3 + %1965 = sext i32 %1964 to i64 + %1966 = getelementptr inbounds i8, ptr %378, i64 %1965 + %1967 = and i32 %1932, 7 + %1968 = add nuw nsw i32 %1967, %.148.i + %1969 = load i8, ptr %1966, align 1 + %1970 = zext i8 %1969 to i32 + %1971 = lshr i32 255, %1967 + %1972 = and i32 %1971, %1970 + %1973 = icmp sgt i32 %1968, 8 + br i1 %1973, label %.lr.ph.i63.i, label %._crit_edge.i58.i + +.lr.ph.i63.i: ; preds = %1963, %.lr.ph.i63.i + %.pn26.i64.i = phi ptr [ %.0.i68.i, %.lr.ph.i63.i ], [ %1966, %1963 ] + %.01825.i65.i = phi i32 [ %1974, %.lr.ph.i63.i ], [ %1968, %1963 ] + %.02024.i66.i = phi i32 [ %1976, %.lr.ph.i63.i ], [ 0, %1963 ] + %.02123.i67.i = phi i32 [ %1978, %.lr.ph.i63.i ], [ %1972, %1963 ] %.0.i68.i = getelementptr inbounds i8, ptr %.pn26.i64.i, i64 1 - %1976 = add nsw i32 %.01825.i65.i, -8 - %1977 = shl i32 %.02123.i67.i, %1976 - %1978 = or i32 %1977, %.02024.i66.i - %1979 = load i8, ptr %.0.i68.i, align 1 - %1980 = zext i8 %1979 to i32 - %1981 = icmp ugt i32 %.01825.i65.i, 16 - br i1 %1981, label %.lr.ph.i63.i, label %._crit_edge.i58.i - -._crit_edge.i58.i: ; preds = %.lr.ph.i63.i, %1965 - %.021.lcssa.i59.i = phi i32 [ %1974, %1965 ], [ %1980, %.lr.ph.i63.i ] - %.020.lcssa.i60.i = phi i32 [ 0, %1965 ], [ %1978, %.lr.ph.i63.i ] - %.018.lcssa.i61.i = phi i32 [ %1970, %1965 ], [ %1976, %.lr.ph.i63.i ] - %1982 = sub nsw i32 8, %.018.lcssa.i61.i - %1983 = lshr i32 %.021.lcssa.i59.i, %1982 - %1984 = or i32 %1983, %.020.lcssa.i60.i + %1974 = add nsw i32 %.01825.i65.i, -8 + %1975 = shl i32 %.02123.i67.i, %1974 + %1976 = or i32 %1975, %.02024.i66.i + %1977 = load i8, ptr %.0.i68.i, align 1 + %1978 = zext i8 %1977 to i32 + %1979 = icmp ugt i32 %.01825.i65.i, 16 + br i1 %1979, label %.lr.ph.i63.i, label %._crit_edge.i58.i + +._crit_edge.i58.i: ; preds = %.lr.ph.i63.i, %1963 + %.021.lcssa.i59.i = phi i32 [ %1972, %1963 ], [ %1978, %.lr.ph.i63.i ] + %.020.lcssa.i60.i = phi i32 [ 0, %1963 ], [ %1976, %.lr.ph.i63.i ] + %.018.lcssa.i61.i = phi i32 [ %1968, %1963 ], [ %1974, %.lr.ph.i63.i ] + %1980 = sub nsw i32 8, %.018.lcssa.i61.i + %1981 = lshr i32 %.021.lcssa.i59.i, %1980 + %1982 = or i32 %1981, %.020.lcssa.i60.i br label %drmp3_bs_get_bits.exit69.i -drmp3_bs_get_bits.exit69.i: ; preds = %._crit_edge.i58.i, %1962 - %.019.i62.i = phi i32 [ %1984, %._crit_edge.i58.i ], [ 0, %1962 ] - %1985 = zext i32 %.019.i62.i to i64 - %1986 = getelementptr inbounds i8, ptr %.1.i149, i64 %1985 - %1987 = load i8, ptr %1986, align 1 - br label %1988 +drmp3_bs_get_bits.exit69.i: ; preds = %._crit_edge.i58.i, %1960 + %.019.i62.i = phi i32 [ %1982, %._crit_edge.i58.i ], [ 0, %1960 ] + %1983 = zext i32 %.019.i62.i to i64 + %1984 = getelementptr inbounds i8, ptr %.1.i149, i64 %1983 + %1985 = load i8, ptr %1984, align 1 + br label %1986 -1988: ; preds = %drmp3_bs_get_bits.exit69.i, %drmp3_bs_get_bits.exit.i151 - %.sroa.24.7 = phi i32 [ %1963, %drmp3_bs_get_bits.exit69.i ], [ %1934, %drmp3_bs_get_bits.exit.i151 ] - %.0.i153 = phi i8 [ %1987, %drmp3_bs_get_bits.exit69.i ], [ %1958, %drmp3_bs_get_bits.exit.i151 ] +1986: ; preds = %drmp3_bs_get_bits.exit69.i, %drmp3_bs_get_bits.exit.i151 + %.sroa.24.7 = phi i32 [ %1961, %drmp3_bs_get_bits.exit69.i ], [ %1932, %drmp3_bs_get_bits.exit.i151 ] + %.0.i153 = phi i8 [ %1985, %drmp3_bs_get_bits.exit69.i ], [ %1956, %drmp3_bs_get_bits.exit.i151 ] %narrow.i154 = select i1 %.not56.i, i8 0, i8 %.0.i153 - %1989 = or disjoint i64 %1959, 1 - %1990 = getelementptr inbounds [64 x i8], ptr %1906, i64 0, i64 %1989 - store i8 %narrow.i154, ptr %1990, align 1 + %1987 = or disjoint i64 %1957, 1 + %1988 = getelementptr inbounds [64 x i8], ptr %1904, i64 0, i64 %1987 + store i8 %narrow.i154, ptr %1988, align 1 %indvars.iv.next.i155 = add nuw nsw i64 %indvars.iv.i148, 1 - %exitcond.not = icmp eq i64 %indvars.iv.next.i155, %1908 - br i1 %exitcond.not, label %.lr.ph103.i, label %1918 + %exitcond.not = icmp eq i64 %indvars.iv.next.i155, %1906 + br i1 %exitcond.not, label %.lr.ph103.i, label %1916 .lr.ph103.i.split: ; preds = %.lr.ph103.i, %drmp3_bs_get_bits.exit81.i %.sroa.24.8 = phi i32 [ %.sroa.24.9, %drmp3_bs_get_bits.exit81.i ], [ %.sroa.24.7, %.lr.ph103.i ] %indvars.iv121.i = phi i64 [ %indvars.iv.next122.i, %drmp3_bs_get_bits.exit81.i ], [ 0, %.lr.ph103.i ] - %1991 = getelementptr inbounds [64 x i8], ptr %1906, i64 0, i64 %indvars.iv121.i - %1992 = load i8, ptr %1991, align 1 - %.not.i156 = icmp eq i8 %1992, 0 - br i1 %.not.i156, label %drmp3_bs_get_bits.exit81.i, label %1993 - -1993: ; preds = %.lr.ph103.i.split - %1994 = add nsw i32 %.sroa.24.8, 2 - %1995 = icmp sgt i32 %1994, %380 - br i1 %1995, label %drmp3_bs_get_bits.exit81.i, label %1996 - -1996: ; preds = %1993 - %1997 = ashr i32 %.sroa.24.8, 3 - %1998 = sext i32 %1997 to i64 - %1999 = getelementptr inbounds i8, ptr %378, i64 %1998 - %2000 = and i32 %.sroa.24.8, 7 - %2001 = add nuw nsw i32 %2000, 2 - %2002 = load i8, ptr %1999, align 1 - %2003 = zext i8 %2002 to i32 - %2004 = lshr i32 255, %2000 - %2005 = and i32 %2004, %2003 - %2006 = icmp eq i32 %2000, 7 - br i1 %2006, label %.lr.ph.i75.preheader.i, label %._crit_edge.i70.i - -.lr.ph.i75.preheader.i: ; preds = %1996 - %2007 = shl nuw nsw i32 %2005, 1 - %.0.i80.i = getelementptr inbounds i8, ptr %1999, i64 1 - %2008 = load i8, ptr %.0.i80.i, align 1 - %2009 = zext i8 %2008 to i32 + %1989 = getelementptr inbounds [64 x i8], ptr %1904, i64 0, i64 %indvars.iv121.i + %1990 = load i8, ptr %1989, align 1 + %.not.i156 = icmp eq i8 %1990, 0 + br i1 %.not.i156, label %drmp3_bs_get_bits.exit81.i, label %1991 + +1991: ; preds = %.lr.ph103.i.split + %1992 = add nsw i32 %.sroa.24.8, 2 + %1993 = icmp sgt i32 %1992, %380 + br i1 %1993, label %drmp3_bs_get_bits.exit81.i, label %1994 + +1994: ; preds = %1991 + %1995 = ashr i32 %.sroa.24.8, 3 + %1996 = sext i32 %1995 to i64 + %1997 = getelementptr inbounds i8, ptr %378, i64 %1996 + %1998 = and i32 %.sroa.24.8, 7 + %1999 = add nuw nsw i32 %1998, 2 + %2000 = load i8, ptr %1997, align 1 + %2001 = zext i8 %2000 to i32 + %2002 = lshr i32 255, %1998 + %2003 = and i32 %2002, %2001 + %2004 = icmp eq i32 %1998, 7 + br i1 %2004, label %.lr.ph.i75.preheader.i, label %._crit_edge.i70.i + +.lr.ph.i75.preheader.i: ; preds = %1994 + %2005 = shl nuw nsw i32 %2003, 1 + %.0.i80.i = getelementptr inbounds i8, ptr %1997, i64 1 + %2006 = load i8, ptr %.0.i80.i, align 1 + %2007 = zext i8 %2006 to i32 br label %._crit_edge.i70.i -._crit_edge.i70.i: ; preds = %.lr.ph.i75.preheader.i, %1996 - %.021.lcssa.i71.i = phi i32 [ %2005, %1996 ], [ %2009, %.lr.ph.i75.preheader.i ] - %.020.lcssa.i72.i = phi i32 [ 0, %1996 ], [ %2007, %.lr.ph.i75.preheader.i ] - %.018.lcssa.i73.i = phi i32 [ %2001, %1996 ], [ 1, %.lr.ph.i75.preheader.i ] - %2010 = sub nuw nsw i32 8, %.018.lcssa.i73.i - %2011 = lshr i32 %.021.lcssa.i71.i, %2010 - %2012 = or i32 %2011, %.020.lcssa.i72.i +._crit_edge.i70.i: ; preds = %.lr.ph.i75.preheader.i, %1994 + %.021.lcssa.i71.i = phi i32 [ %2003, %1994 ], [ %2007, %.lr.ph.i75.preheader.i ] + %.020.lcssa.i72.i = phi i32 [ 0, %1994 ], [ %2005, %.lr.ph.i75.preheader.i ] + %.018.lcssa.i73.i = phi i32 [ %1999, %1994 ], [ 1, %.lr.ph.i75.preheader.i ] + %2008 = sub nuw nsw i32 8, %.018.lcssa.i73.i + %2009 = lshr i32 %.021.lcssa.i71.i, %2008 + %2010 = or i32 %2009, %.020.lcssa.i72.i br label %drmp3_bs_get_bits.exit81.i -drmp3_bs_get_bits.exit81.i: ; preds = %._crit_edge.i70.i, %1993, %.lr.ph103.i.split - %.sroa.24.9 = phi i32 [ %.sroa.24.8, %.lr.ph103.i.split ], [ %1994, %1993 ], [ %1994, %._crit_edge.i70.i ] - %2013 = phi i32 [ 6, %.lr.ph103.i.split ], [ 0, %1993 ], [ %2012, %._crit_edge.i70.i ] - %2014 = trunc i32 %2013 to i8 - %2015 = getelementptr inbounds [64 x i8], ptr %1909, i64 0, i64 %indvars.iv121.i - store i8 %2014, ptr %2015, align 1 +drmp3_bs_get_bits.exit81.i: ; preds = %._crit_edge.i70.i, %1991, %.lr.ph103.i.split + %.sroa.24.9 = phi i32 [ %.sroa.24.8, %.lr.ph103.i.split ], [ %1992, %1991 ], [ %1992, %._crit_edge.i70.i ] + %2011 = phi i32 [ 6, %.lr.ph103.i.split ], [ 0, %1991 ], [ %2010, %._crit_edge.i70.i ] + %2012 = trunc i32 %2011 to i8 + %2013 = getelementptr inbounds [64 x i8], ptr %1907, i64 0, i64 %indvars.iv121.i + store i8 %2012, ptr %2013, align 1 %indvars.iv.next122.i = add nuw nsw i64 %indvars.iv121.i, 1 - %exitcond467.not = icmp eq i64 %indvars.iv.next122.i, %1911 + %exitcond467.not = icmp eq i64 %indvars.iv.next122.i, %1909 br i1 %exitcond467.not, label %.lr.ph.i83.i.preheader, label %.lr.ph103.i.split .lr.ph.i83.i.preheader: ; preds = %drmp3_bs_get_bits.exit81.i, %.lr.ph103.i.split.us %.sroa.24.10.ph = phi i32 [ %.sroa.24.7, %.lr.ph103.i.split.us ], [ %.sroa.24.9, %drmp3_bs_get_bits.exit81.i ] br label %.lr.ph.i83.i -.lr.ph.i83.i: ; preds = %.lr.ph.i83.i.preheader, %2063 - %.sroa.24.10 = phi i32 [ %.sroa.24.12, %2063 ], [ %.sroa.24.10.ph, %.lr.ph.i83.i.preheader ] - %indvars.iv.i.i159 = phi i64 [ %indvars.iv.next.i.i160, %2063 ], [ 0, %.lr.ph.i83.i.preheader ] - %.030.i.i = phi ptr [ %2016, %2063 ], [ %1906, %.lr.ph.i83.i.preheader ] - %.01629.i.i = phi ptr [ %2061, %2063 ], [ %16, %.lr.ph.i83.i.preheader ] - %2016 = getelementptr inbounds i8, ptr %.030.i.i, i64 1 - %2017 = load i8, ptr %.030.i.i, align 1 - %2018 = zext i8 %2017 to i64 - %.not.i84.i = icmp eq i8 %2017, 0 - br i1 %.not.i84.i, label %2025, label %2019 - -2019: ; preds = %.lr.ph.i83.i - %2020 = getelementptr inbounds i8, ptr %1909, i64 %indvars.iv.i.i159 - %2021 = load i8, ptr %2020, align 1 - %2022 = zext nneg i8 %2021 to i32 - %2023 = lshr i32 19, %2022 - %2024 = or i32 %2023, 4 - br label %2025 - -2025: ; preds = %2019, %.lr.ph.i83.i - %2026 = phi i32 [ %2024, %2019 ], [ 0, %.lr.ph.i83.i ] - %2027 = mul nuw nsw i64 %2018, 3 - %2028 = add nsw i64 %2027, -6 - br label %2029 - -2029: ; preds = %2060, %2025 - %.sroa.24.11 = phi i32 [ %.sroa.24.10, %2025 ], [ %.sroa.24.12, %2060 ] - %.127.i.i = phi ptr [ %.01629.i.i, %2025 ], [ %2061, %2060 ] - %.01826.i.i = phi float [ 0.000000e+00, %2025 ], [ %.119.i.i, %2060 ] - %.02025.i.i = phi i32 [ 4, %2025 ], [ %2062, %2060 ] - %2030 = and i32 %.02025.i.i, %2026 - %.not22.i.i = icmp eq i32 %2030, 0 - br i1 %.not22.i.i, label %2060, label %2031 - -2031: ; preds = %2029 - %2032 = add nsw i32 %.sroa.24.11, 6 - %2033 = icmp sgt i32 %2032, %380 - br i1 %2033, label %drmp3_bs_get_bits.exit.i.i, label %2034 - -2034: ; preds = %2031 - %2035 = ashr i32 %.sroa.24.11, 3 - %2036 = sext i32 %2035 to i64 - %2037 = getelementptr inbounds i8, ptr %378, i64 %2036 - %2038 = and i32 %.sroa.24.11, 7 - %2039 = add nuw nsw i32 %2038, 6 - %2040 = load i8, ptr %2037, align 1 - %2041 = zext i8 %2040 to i32 - %2042 = lshr i32 255, %2038 - %2043 = and i32 %2042, %2041 - %2044 = icmp ugt i32 %2038, 2 - br i1 %2044, label %.lr.ph.i.preheader.i.i, label %._crit_edge.i.i.i - -.lr.ph.i.preheader.i.i: ; preds = %2034 - %2045 = add nsw i32 %2038, -2 - %2046 = shl nuw nsw i32 %2043, %2045 - %.0.i.i.i164 = getelementptr inbounds i8, ptr %2037, i64 1 - %2047 = load i8, ptr %.0.i.i.i164, align 1 - %2048 = zext i8 %2047 to i32 +.lr.ph.i83.i: ; preds = %.lr.ph.i83.i.preheader, %2061 + %.sroa.24.10 = phi i32 [ %.sroa.24.12, %2061 ], [ %.sroa.24.10.ph, %.lr.ph.i83.i.preheader ] + %indvars.iv.i.i159 = phi i64 [ %indvars.iv.next.i.i160, %2061 ], [ 0, %.lr.ph.i83.i.preheader ] + %.030.i.i = phi ptr [ %2014, %2061 ], [ %1904, %.lr.ph.i83.i.preheader ] + %.01629.i.i = phi ptr [ %2059, %2061 ], [ %16, %.lr.ph.i83.i.preheader ] + %2014 = getelementptr inbounds i8, ptr %.030.i.i, i64 1 + %2015 = load i8, ptr %.030.i.i, align 1 + %2016 = zext i8 %2015 to i64 + %.not.i84.i = icmp eq i8 %2015, 0 + br i1 %.not.i84.i, label %2023, label %2017 + +2017: ; preds = %.lr.ph.i83.i + %2018 = getelementptr inbounds i8, ptr %1907, i64 %indvars.iv.i.i159 + %2019 = load i8, ptr %2018, align 1 + %2020 = zext nneg i8 %2019 to i32 + %2021 = lshr i32 19, %2020 + %2022 = or i32 %2021, 4 + br label %2023 + +2023: ; preds = %2017, %.lr.ph.i83.i + %2024 = phi i32 [ %2022, %2017 ], [ 0, %.lr.ph.i83.i ] + %2025 = mul nuw nsw i64 %2016, 3 + %2026 = add nsw i64 %2025, -6 + br label %2027 + +2027: ; preds = %2058, %2023 + %.sroa.24.11 = phi i32 [ %.sroa.24.10, %2023 ], [ %.sroa.24.12, %2058 ] + %.127.i.i = phi ptr [ %.01629.i.i, %2023 ], [ %2059, %2058 ] + %.01826.i.i = phi float [ 0.000000e+00, %2023 ], [ %.119.i.i, %2058 ] + %.02025.i.i = phi i32 [ 4, %2023 ], [ %2060, %2058 ] + %2028 = and i32 %.02025.i.i, %2024 + %.not22.i.i = icmp eq i32 %2028, 0 + br i1 %.not22.i.i, label %2058, label %2029 + +2029: ; preds = %2027 + %2030 = add nsw i32 %.sroa.24.11, 6 + %2031 = icmp sgt i32 %2030, %380 + br i1 %2031, label %drmp3_bs_get_bits.exit.i.i, label %2032 + +2032: ; preds = %2029 + %2033 = ashr i32 %.sroa.24.11, 3 + %2034 = sext i32 %2033 to i64 + %2035 = getelementptr inbounds i8, ptr %378, i64 %2034 + %2036 = and i32 %.sroa.24.11, 7 + %2037 = add nuw nsw i32 %2036, 6 + %2038 = load i8, ptr %2035, align 1 + %2039 = zext i8 %2038 to i32 + %2040 = lshr i32 255, %2036 + %2041 = and i32 %2040, %2039 + %2042 = icmp ugt i32 %2036, 2 + br i1 %2042, label %.lr.ph.i.preheader.i.i, label %._crit_edge.i.i.i + +.lr.ph.i.preheader.i.i: ; preds = %2032 + %2043 = add nsw i32 %2036, -2 + %2044 = shl nuw nsw i32 %2041, %2043 + %.0.i.i.i164 = getelementptr inbounds i8, ptr %2035, i64 1 + %2045 = load i8, ptr %.0.i.i.i164, align 1 + %2046 = zext i8 %2045 to i32 br label %._crit_edge.i.i.i -._crit_edge.i.i.i: ; preds = %.lr.ph.i.preheader.i.i, %2034 - %.021.lcssa.i.i.i = phi i32 [ %2043, %2034 ], [ %2048, %.lr.ph.i.preheader.i.i ] - %.020.lcssa.i.i.i = phi i32 [ 0, %2034 ], [ %2046, %.lr.ph.i.preheader.i.i ] - %.018.lcssa.i.i.i = phi i32 [ %2039, %2034 ], [ %2045, %.lr.ph.i.preheader.i.i ] - %2049 = sub nuw nsw i32 8, %.018.lcssa.i.i.i - %2050 = lshr i32 %.021.lcssa.i.i.i, %2049 - %2051 = or i32 %2050, %.020.lcssa.i.i.i +._crit_edge.i.i.i: ; preds = %.lr.ph.i.preheader.i.i, %2032 + %.021.lcssa.i.i.i = phi i32 [ %2041, %2032 ], [ %2046, %.lr.ph.i.preheader.i.i ] + %.020.lcssa.i.i.i = phi i32 [ 0, %2032 ], [ %2044, %.lr.ph.i.preheader.i.i ] + %.018.lcssa.i.i.i = phi i32 [ %2037, %2032 ], [ %2043, %.lr.ph.i.preheader.i.i ] + %2047 = sub nuw nsw i32 8, %.018.lcssa.i.i.i + %2048 = lshr i32 %.021.lcssa.i.i.i, %2047 + %2049 = or i32 %2048, %.020.lcssa.i.i.i br label %drmp3_bs_get_bits.exit.i.i -drmp3_bs_get_bits.exit.i.i: ; preds = %._crit_edge.i.i.i, %2031 - %.019.i.i.i = phi i32 [ %2051, %._crit_edge.i.i.i ], [ 0, %2031 ] +drmp3_bs_get_bits.exit.i.i: ; preds = %._crit_edge.i.i.i, %2029 + %.019.i.i.i = phi i32 [ %2049, %._crit_edge.i.i.i ], [ 0, %2029 ] %.lhs.trunc.i.i = trunc i32 %.019.i.i.i to i16 - %2052 = urem i16 %.lhs.trunc.i.i, 3 - %.zext.i.i = zext nneg i16 %2052 to i64 - %2053 = add nsw i64 %2028, %.zext.i.i - %2054 = getelementptr inbounds [54 x float], ptr @drmp3_L12_read_scalefactors.g_deq_L12, i64 0, i64 %2053 - %2055 = load float, ptr %2054, align 4 - %2056 = udiv i16 %.lhs.trunc.i.i, 3 - %.zext36.i.i = zext nneg i16 %2056 to i32 - %2057 = lshr i32 2097152, %.zext36.i.i - %2058 = sitofp i32 %2057 to float - %2059 = fmul float %2055, %2058 - br label %2060 - -2060: ; preds = %drmp3_bs_get_bits.exit.i.i, %2029 - %.sroa.24.12 = phi i32 [ %.sroa.24.11, %2029 ], [ %2032, %drmp3_bs_get_bits.exit.i.i ] - %.119.i.i = phi float [ %.01826.i.i, %2029 ], [ %2059, %drmp3_bs_get_bits.exit.i.i ] - %2061 = getelementptr inbounds i8, ptr %.127.i.i, i64 4 + %2050 = urem i16 %.lhs.trunc.i.i, 3 + %.zext.i.i = zext nneg i16 %2050 to i64 + %2051 = add nsw i64 %2026, %.zext.i.i + %2052 = getelementptr inbounds [54 x float], ptr @drmp3_L12_read_scalefactors.g_deq_L12, i64 0, i64 %2051 + %2053 = load float, ptr %2052, align 4 + %2054 = udiv i16 %.lhs.trunc.i.i, 3 + %.zext36.i.i = zext nneg i16 %2054 to i32 + %2055 = lshr i32 2097152, %.zext36.i.i + %2056 = sitofp i32 %2055 to float + %2057 = fmul float %2053, %2056 + br label %2058 + +2058: ; preds = %drmp3_bs_get_bits.exit.i.i, %2027 + %.sroa.24.12 = phi i32 [ %.sroa.24.11, %2027 ], [ %2030, %drmp3_bs_get_bits.exit.i.i ] + %.119.i.i = phi float [ %.01826.i.i, %2027 ], [ %2057, %drmp3_bs_get_bits.exit.i.i ] + %2059 = getelementptr inbounds i8, ptr %.127.i.i, i64 4 store float %.119.i.i, ptr %.127.i.i, align 4 - %2062 = lshr i32 %.02025.i.i, 1 + %2060 = lshr i32 %.02025.i.i, 1 %.not21.i.i = icmp ult i32 %.02025.i.i, 2 - br i1 %.not21.i.i, label %2063, label %2029 + br i1 %.not21.i.i, label %2061, label %2027 -2063: ; preds = %2060 +2061: ; preds = %2058 %indvars.iv.next.i.i160 = add nuw nsw i64 %indvars.iv.i.i159, 1 - %exitcond.not.i.i161 = icmp eq i64 %indvars.iv.next.i.i160, %1911 + %exitcond.not.i.i161 = icmp eq i64 %indvars.iv.next.i.i160, %1909 br i1 %exitcond.not.i.i161, label %drmp3_L12_read_scalefactors.exit.i, label %.lr.ph.i83.i -drmp3_L12_read_scalefactors.exit.i: ; preds = %2063 - %.pre127.i = load i8, ptr %1902, align 16 - %2064 = load i8, ptr %1905, align 1 - %2065 = icmp ult i8 %2064, %.pre127.i - br i1 %2065, label %.lr.ph106.preheader.i, label %drmp3_L12_read_scale_info.exit +drmp3_L12_read_scalefactors.exit.i: ; preds = %2061 + %.pre127.i = load i8, ptr %1900, align 16 + %2062 = load i8, ptr %1903, align 1 + %2063 = icmp ult i8 %2062, %.pre127.i + br i1 %2063, label %.lr.ph106.preheader.i, label %drmp3_L12_read_scale_info.exit .lr.ph106.preheader.i: ; preds = %drmp3_L12_read_scalefactors.exit.i - %2066 = zext i8 %2064 to i64 + %2064 = zext i8 %2062 to i64 %wide.trip.count.i162 = zext i8 %.pre127.i to i64 br label %.lr.ph106.i .lr.ph106.i: ; preds = %.lr.ph106.i, %.lr.ph106.preheader.i - %indvars.iv124.i = phi i64 [ %2066, %.lr.ph106.preheader.i ], [ %indvars.iv.next125.i, %.lr.ph106.i ] - %2067 = shl nuw nsw i64 %indvars.iv124.i, 1 - %2068 = or disjoint i64 %2067, 1 - %2069 = getelementptr inbounds [64 x i8], ptr %1906, i64 0, i64 %2068 - store i8 0, ptr %2069, align 1 + %indvars.iv124.i = phi i64 [ %2064, %.lr.ph106.preheader.i ], [ %indvars.iv.next125.i, %.lr.ph106.i ] + %2065 = shl nuw nsw i64 %indvars.iv124.i, 1 + %2066 = or disjoint i64 %2065, 1 + %2067 = getelementptr inbounds [64 x i8], ptr %1904, i64 0, i64 %2066 + store i8 0, ptr %2067, align 1 %indvars.iv.next125.i = add nuw nsw i64 %indvars.iv124.i, 1 %exitcond.not.i163 = icmp eq i64 %indvars.iv.next125.i, %wide.trip.count.i162 br i1 %exitcond.not.i163, label %drmp3_L12_read_scale_info.exit, label %.lr.ph106.i drmp3_L12_read_scale_info.exit: ; preds = %.lr.ph106.i, %drmp3_L12_read_scalefactors.exit.i - %2070 = getelementptr inbounds i8, ptr %15, i64 2960 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(4608) %2070, i8 0, i64 4608, i1 false) - %2071 = getelementptr inbounds i8, ptr %15, i64 5264 - %2072 = getelementptr inbounds i8, ptr %0, i64 2304 - %2073 = getelementptr inbounds i8, ptr %15, i64 7728 - br label %2075 - -2074: ; preds = %2196 + %2068 = getelementptr inbounds i8, ptr %15, i64 2960 + call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(4608) %2068, i8 0, i64 4608, i1 false) + %2069 = getelementptr inbounds i8, ptr %15, i64 5264 + %2070 = getelementptr inbounds i8, ptr %0, i64 2304 + %2071 = getelementptr inbounds i8, ptr %15, i64 7728 + br label %2073 + +2072: ; preds = %2194 %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 %exitcond472.not = icmp eq i64 %indvars.iv.next, 3 - br i1 %exitcond472.not, label %.loopexit301, label %2075 - -2075: ; preds = %drmp3_L12_read_scale_info.exit, %2074 - %indvars.iv = phi i64 [ 0, %drmp3_L12_read_scale_info.exit ], [ %indvars.iv.next, %2074 ] - %.1382 = phi ptr [ %3, %drmp3_L12_read_scale_info.exit ], [ %.2, %2074 ] - %.179380 = phi i32 [ 0, %drmp3_L12_read_scale_info.exit ], [ %.280, %2074 ] - %.sroa.24.14379 = phi i32 [ %.sroa.24.12, %drmp3_L12_read_scale_info.exit ], [ %.sroa.24.19, %2074 ] - %2076 = sext i32 %.179380 to i64 - %2077 = getelementptr inbounds float, ptr %2070, i64 %2076 - %2078 = load i32, ptr %363, align 4 - %2079 = or i32 %2078, 1 - %2080 = icmp sgt i32 %2078, -1 - %2081 = sext i32 %2079 to i64 - %.pre.i167 = load i8, ptr %1902, align 16 - %wide.trip.count.i168 = zext nneg i32 %2079 to i64 - %2082 = zext i8 %.pre.i167 to i64 - %2083 = shl nuw nsw i64 %2082, 1 - %umax = tail call i64 @llvm.umax.i64(i64 %2083, i64 1) - br label %2084 - -2084: ; preds = %._crit_edge.i170, %2075 - %.sroa.24.15 = phi i32 [ %.sroa.24.14379, %2075 ], [ %.sroa.24.19, %._crit_edge.i170 ] - %2085 = phi i8 [ %.pre.i167, %2075 ], [ %2159, %._crit_edge.i170 ] - %indvars.iv92.i = phi i64 [ 0, %2075 ], [ %indvars.iv.next93.i, %._crit_edge.i170 ] - %.04273.i = phi i32 [ 576, %2075 ], [ %.143.lcssa.i, %._crit_edge.i170 ] - %.not75.i = icmp eq i8 %2085, 0 + br i1 %exitcond472.not, label %.loopexit301, label %2073 + +2073: ; preds = %drmp3_L12_read_scale_info.exit, %2072 + %indvars.iv = phi i64 [ 0, %drmp3_L12_read_scale_info.exit ], [ %indvars.iv.next, %2072 ] + %.1382 = phi ptr [ %3, %drmp3_L12_read_scale_info.exit ], [ %.2, %2072 ] + %.179380 = phi i32 [ 0, %drmp3_L12_read_scale_info.exit ], [ %.280, %2072 ] + %.sroa.24.14379 = phi i32 [ %.sroa.24.12, %drmp3_L12_read_scale_info.exit ], [ %.sroa.24.19, %2072 ] + %2074 = sext i32 %.179380 to i64 + %2075 = getelementptr inbounds float, ptr %2068, i64 %2074 + %2076 = load i32, ptr %363, align 4 + %2077 = or i32 %2076, 1 + %2078 = icmp sgt i32 %2076, -1 + %2079 = sext i32 %2077 to i64 + %.pre.i167 = load i8, ptr %1900, align 16 + %wide.trip.count.i168 = zext nneg i32 %2077 to i64 + %2080 = zext i8 %.pre.i167 to i64 + %2081 = shl nuw nsw i64 %2080, 1 + %umax = tail call i64 @llvm.umax.i64(i64 %2081, i64 1) + br label %2082 + +2082: ; preds = %._crit_edge.i170, %2073 + %.sroa.24.15 = phi i32 [ %.sroa.24.14379, %2073 ], [ %.sroa.24.19, %._crit_edge.i170 ] + %2083 = phi i8 [ %.pre.i167, %2073 ], [ %2157, %._crit_edge.i170 ] + %indvars.iv92.i = phi i64 [ 0, %2073 ], [ %indvars.iv.next93.i, %._crit_edge.i170 ] + %.04273.i = phi i32 [ 576, %2073 ], [ %.143.lcssa.i, %._crit_edge.i170 ] + %.not75.i = icmp eq i8 %2083, 0 br i1 %.not75.i, label %._crit_edge.i170, label %.lr.ph72.preheader.i -.lr.ph72.preheader.i: ; preds = %2084 - %2086 = mul nsw i64 %indvars.iv92.i, %2081 - %2087 = getelementptr inbounds float, ptr %2077, i64 %2086 +.lr.ph72.preheader.i: ; preds = %2082 + %2084 = mul nsw i64 %indvars.iv92.i, %2079 + %2085 = getelementptr inbounds float, ptr %2075, i64 %2084 br label %.lr.ph72.i .lr.ph72.i: ; preds = %.loopexit.i, %.lr.ph72.preheader.i %.sroa.24.16 = phi i32 [ %.sroa.24.15, %.lr.ph72.preheader.i ], [ %.sroa.24.18, %.loopexit.i ] %indvars.iv89.i = phi i64 [ 0, %.lr.ph72.preheader.i ], [ %indvars.iv.next90.i, %.loopexit.i ] - %.04169.i = phi ptr [ %2087, %.lr.ph72.preheader.i ], [ %2157, %.loopexit.i ] - %.14368.i = phi i32 [ %.04273.i, %.lr.ph72.preheader.i ], [ %2158, %.loopexit.i ] - %2088 = getelementptr inbounds [64 x i8], ptr %1906, i64 0, i64 %indvars.iv89.i - %2089 = load i8, ptr %2088, align 1 - %2090 = zext i8 %2089 to i32 - %.not.i169 = icmp eq i8 %2089, 0 - br i1 %.not.i169, label %.loopexit.i, label %2091 - -2091: ; preds = %.lr.ph72.i - %2092 = icmp ult i8 %2089, 17 - br i1 %2092, label %2093, label %2120 - -2093: ; preds = %2091 - %2094 = add nsw i32 %2090, -1 - %notmask.i = shl nsw i32 -1, %2094 + %.04169.i = phi ptr [ %2085, %.lr.ph72.preheader.i ], [ %2155, %.loopexit.i ] + %.14368.i = phi i32 [ %.04273.i, %.lr.ph72.preheader.i ], [ %2156, %.loopexit.i ] + %2086 = getelementptr inbounds [64 x i8], ptr %1904, i64 0, i64 %indvars.iv89.i + %2087 = load i8, ptr %2086, align 1 + %2088 = zext i8 %2087 to i32 + %.not.i169 = icmp eq i8 %2087, 0 + br i1 %.not.i169, label %.loopexit.i, label %2089 + +2089: ; preds = %.lr.ph72.i + %2090 = icmp ult i8 %2087, 17 + br i1 %2090, label %2091, label %2118 + +2091: ; preds = %2089 + %2092 = add nsw i32 %2088, -1 + %notmask.i = shl nsw i32 -1, %2092 %.neg.i175 = add nsw i32 %notmask.i, 1 - br i1 %2080, label %.lr.ph67.i, label %.loopexit.i - -.lr.ph67.i: ; preds = %2093, %drmp3_bs_get_bits.exit.i180 - %.sroa.24.17 = phi i32 [ %2095, %drmp3_bs_get_bits.exit.i180 ], [ %.sroa.24.16, %2093 ] - %indvars.iv84.i = phi i64 [ %indvars.iv.next85.i, %drmp3_bs_get_bits.exit.i180 ], [ 0, %2093 ] - %2095 = add nsw i32 %.sroa.24.17, %2090 - %2096 = icmp sgt i32 %2095, %380 - br i1 %2096, label %drmp3_bs_get_bits.exit.i180, label %2097 - -2097: ; preds = %.lr.ph67.i - %2098 = ashr i32 %.sroa.24.17, 3 - %2099 = sext i32 %2098 to i64 - %2100 = getelementptr inbounds i8, ptr %378, i64 %2099 - %2101 = and i32 %.sroa.24.17, 7 - %2102 = add nuw nsw i32 %2101, %2090 - %2103 = load i8, ptr %2100, align 1 - %2104 = zext i8 %2103 to i32 - %2105 = lshr i32 255, %2101 - %2106 = and i32 %2105, %2104 - %2107 = icmp ugt i32 %2102, 8 - br i1 %2107, label %.lr.ph.i.i182, label %._crit_edge.i.i176 - -.lr.ph.i.i182: ; preds = %2097, %.lr.ph.i.i182 - %.pn26.i.i183 = phi ptr [ %.0.i.i187, %.lr.ph.i.i182 ], [ %2100, %2097 ] - %.01825.i.i184 = phi i32 [ %2108, %.lr.ph.i.i182 ], [ %2102, %2097 ] - %.02024.i.i185 = phi i32 [ %2110, %.lr.ph.i.i182 ], [ 0, %2097 ] - %.02123.i.i186 = phi i32 [ %2112, %.lr.ph.i.i182 ], [ %2106, %2097 ] + br i1 %2078, label %.lr.ph67.i, label %.loopexit.i + +.lr.ph67.i: ; preds = %2091, %drmp3_bs_get_bits.exit.i180 + %.sroa.24.17 = phi i32 [ %2093, %drmp3_bs_get_bits.exit.i180 ], [ %.sroa.24.16, %2091 ] + %indvars.iv84.i = phi i64 [ %indvars.iv.next85.i, %drmp3_bs_get_bits.exit.i180 ], [ 0, %2091 ] + %2093 = add nsw i32 %.sroa.24.17, %2088 + %2094 = icmp sgt i32 %2093, %380 + br i1 %2094, label %drmp3_bs_get_bits.exit.i180, label %2095 + +2095: ; preds = %.lr.ph67.i + %2096 = ashr i32 %.sroa.24.17, 3 + %2097 = sext i32 %2096 to i64 + %2098 = getelementptr inbounds i8, ptr %378, i64 %2097 + %2099 = and i32 %.sroa.24.17, 7 + %2100 = add nuw nsw i32 %2099, %2088 + %2101 = load i8, ptr %2098, align 1 + %2102 = zext i8 %2101 to i32 + %2103 = lshr i32 255, %2099 + %2104 = and i32 %2103, %2102 + %2105 = icmp ugt i32 %2100, 8 + br i1 %2105, label %.lr.ph.i.i182, label %._crit_edge.i.i176 + +.lr.ph.i.i182: ; preds = %2095, %.lr.ph.i.i182 + %.pn26.i.i183 = phi ptr [ %.0.i.i187, %.lr.ph.i.i182 ], [ %2098, %2095 ] + %.01825.i.i184 = phi i32 [ %2106, %.lr.ph.i.i182 ], [ %2100, %2095 ] + %.02024.i.i185 = phi i32 [ %2108, %.lr.ph.i.i182 ], [ 0, %2095 ] + %.02123.i.i186 = phi i32 [ %2110, %.lr.ph.i.i182 ], [ %2104, %2095 ] %.0.i.i187 = getelementptr inbounds i8, ptr %.pn26.i.i183, i64 1 - %2108 = add nsw i32 %.01825.i.i184, -8 - %2109 = shl i32 %.02123.i.i186, %2108 - %2110 = or i32 %2109, %.02024.i.i185 - %2111 = load i8, ptr %.0.i.i187, align 1 - %2112 = zext i8 %2111 to i32 - %2113 = icmp ugt i32 %.01825.i.i184, 16 - br i1 %2113, label %.lr.ph.i.i182, label %._crit_edge.i.i176 - -._crit_edge.i.i176: ; preds = %.lr.ph.i.i182, %2097 - %.021.lcssa.i.i177 = phi i32 [ %2106, %2097 ], [ %2112, %.lr.ph.i.i182 ] - %.020.lcssa.i.i178 = phi i32 [ 0, %2097 ], [ %2110, %.lr.ph.i.i182 ] - %.018.lcssa.i.i179 = phi i32 [ %2102, %2097 ], [ %2108, %.lr.ph.i.i182 ] - %2114 = sub nuw nsw i32 8, %.018.lcssa.i.i179 - %2115 = lshr i32 %.021.lcssa.i.i177, %2114 - %2116 = or i32 %2115, %.020.lcssa.i.i178 + %2106 = add nsw i32 %.01825.i.i184, -8 + %2107 = shl i32 %.02123.i.i186, %2106 + %2108 = or i32 %2107, %.02024.i.i185 + %2109 = load i8, ptr %.0.i.i187, align 1 + %2110 = zext i8 %2109 to i32 + %2111 = icmp ugt i32 %.01825.i.i184, 16 + br i1 %2111, label %.lr.ph.i.i182, label %._crit_edge.i.i176 + +._crit_edge.i.i176: ; preds = %.lr.ph.i.i182, %2095 + %.021.lcssa.i.i177 = phi i32 [ %2104, %2095 ], [ %2110, %.lr.ph.i.i182 ] + %.020.lcssa.i.i178 = phi i32 [ 0, %2095 ], [ %2108, %.lr.ph.i.i182 ] + %.018.lcssa.i.i179 = phi i32 [ %2100, %2095 ], [ %2106, %.lr.ph.i.i182 ] + %2112 = sub nuw nsw i32 8, %.018.lcssa.i.i179 + %2113 = lshr i32 %.021.lcssa.i.i177, %2112 + %2114 = or i32 %2113, %.020.lcssa.i.i178 br label %drmp3_bs_get_bits.exit.i180 drmp3_bs_get_bits.exit.i180: ; preds = %._crit_edge.i.i176, %.lr.ph67.i - %.019.i.i181 = phi i32 [ %2116, %._crit_edge.i.i176 ], [ 0, %.lr.ph67.i ] - %2117 = add i32 %.neg.i175, %.019.i.i181 - %2118 = sitofp i32 %2117 to float - %2119 = getelementptr inbounds float, ptr %.04169.i, i64 %indvars.iv84.i - store float %2118, ptr %2119, align 4 + %.019.i.i181 = phi i32 [ %2114, %._crit_edge.i.i176 ], [ 0, %.lr.ph67.i ] + %2115 = add i32 %.neg.i175, %.019.i.i181 + %2116 = sitofp i32 %2115 to float + %2117 = getelementptr inbounds float, ptr %.04169.i, i64 %indvars.iv84.i + store float %2116, ptr %2117, align 4 %indvars.iv.next85.i = add nuw nsw i64 %indvars.iv84.i, 1 %exitcond88.not.i = icmp eq i64 %indvars.iv.next85.i, %wide.trip.count.i168 br i1 %exitcond88.not.i, label %.loopexit.i, label %.lr.ph67.i -2120: ; preds = %2091 - %2121 = add nsw i32 %2090, -17 - %2122 = shl i32 2, %2121 - %2123 = or disjoint i32 %2122, 1 - %2124 = add nuw i32 %2122, 3 - %2125 = lshr i32 %2122, 3 - %2126 = sub i32 %2124, %2125 - %2127 = add nsw i32 %2126, %.sroa.24.16 - %2128 = icmp sgt i32 %2127, %380 - br i1 %2128, label %drmp3_bs_get_bits.exit56.i, label %2129 - -2129: ; preds = %2120 - %2130 = ashr i32 %.sroa.24.16, 3 - %2131 = sext i32 %2130 to i64 - %2132 = getelementptr inbounds i8, ptr %378, i64 %2131 - %2133 = and i32 %.sroa.24.16, 7 - %2134 = add i32 %2126, %2133 - %2135 = load i8, ptr %2132, align 1 - %2136 = zext i8 %2135 to i32 - %2137 = lshr i32 255, %2133 - %2138 = and i32 %2137, %2136 - %2139 = icmp sgt i32 %2134, 8 - br i1 %2139, label %.lr.ph.i50.i, label %._crit_edge.i45.i - -.lr.ph.i50.i: ; preds = %2129, %.lr.ph.i50.i - %.pn26.i51.i = phi ptr [ %.0.i55.i, %.lr.ph.i50.i ], [ %2132, %2129 ] - %.01825.i52.i = phi i32 [ %2140, %.lr.ph.i50.i ], [ %2134, %2129 ] - %.02024.i53.i = phi i32 [ %2142, %.lr.ph.i50.i ], [ 0, %2129 ] - %.02123.i54.i = phi i32 [ %2144, %.lr.ph.i50.i ], [ %2138, %2129 ] +2118: ; preds = %2089 + %2119 = add nsw i32 %2088, -17 + %2120 = shl i32 2, %2119 + %2121 = or disjoint i32 %2120, 1 + %2122 = add nuw i32 %2120, 3 + %2123 = lshr i32 %2120, 3 + %2124 = sub i32 %2122, %2123 + %2125 = add nsw i32 %2124, %.sroa.24.16 + %2126 = icmp sgt i32 %2125, %380 + br i1 %2126, label %drmp3_bs_get_bits.exit56.i, label %2127 + +2127: ; preds = %2118 + %2128 = ashr i32 %.sroa.24.16, 3 + %2129 = sext i32 %2128 to i64 + %2130 = getelementptr inbounds i8, ptr %378, i64 %2129 + %2131 = and i32 %.sroa.24.16, 7 + %2132 = add i32 %2124, %2131 + %2133 = load i8, ptr %2130, align 1 + %2134 = zext i8 %2133 to i32 + %2135 = lshr i32 255, %2131 + %2136 = and i32 %2135, %2134 + %2137 = icmp sgt i32 %2132, 8 + br i1 %2137, label %.lr.ph.i50.i, label %._crit_edge.i45.i + +.lr.ph.i50.i: ; preds = %2127, %.lr.ph.i50.i + %.pn26.i51.i = phi ptr [ %.0.i55.i, %.lr.ph.i50.i ], [ %2130, %2127 ] + %.01825.i52.i = phi i32 [ %2138, %.lr.ph.i50.i ], [ %2132, %2127 ] + %.02024.i53.i = phi i32 [ %2140, %.lr.ph.i50.i ], [ 0, %2127 ] + %.02123.i54.i = phi i32 [ %2142, %.lr.ph.i50.i ], [ %2136, %2127 ] %.0.i55.i = getelementptr inbounds i8, ptr %.pn26.i51.i, i64 1 - %2140 = add nsw i32 %.01825.i52.i, -8 - %2141 = shl i32 %.02123.i54.i, %2140 - %2142 = or i32 %2141, %.02024.i53.i - %2143 = load i8, ptr %.0.i55.i, align 1 - %2144 = zext i8 %2143 to i32 - %2145 = icmp ugt i32 %.01825.i52.i, 16 - br i1 %2145, label %.lr.ph.i50.i, label %._crit_edge.i45.i - -._crit_edge.i45.i: ; preds = %.lr.ph.i50.i, %2129 - %.021.lcssa.i46.i = phi i32 [ %2138, %2129 ], [ %2144, %.lr.ph.i50.i ] - %.020.lcssa.i47.i = phi i32 [ 0, %2129 ], [ %2142, %.lr.ph.i50.i ] - %.018.lcssa.i48.i = phi i32 [ %2134, %2129 ], [ %2140, %.lr.ph.i50.i ] - %2146 = sub nsw i32 8, %.018.lcssa.i48.i - %2147 = lshr i32 %.021.lcssa.i46.i, %2146 - %2148 = or i32 %2147, %.020.lcssa.i47.i + %2138 = add nsw i32 %.01825.i52.i, -8 + %2139 = shl i32 %.02123.i54.i, %2138 + %2140 = or i32 %2139, %.02024.i53.i + %2141 = load i8, ptr %.0.i55.i, align 1 + %2142 = zext i8 %2141 to i32 + %2143 = icmp ugt i32 %.01825.i52.i, 16 + br i1 %2143, label %.lr.ph.i50.i, label %._crit_edge.i45.i + +._crit_edge.i45.i: ; preds = %.lr.ph.i50.i, %2127 + %.021.lcssa.i46.i = phi i32 [ %2136, %2127 ], [ %2142, %.lr.ph.i50.i ] + %.020.lcssa.i47.i = phi i32 [ 0, %2127 ], [ %2140, %.lr.ph.i50.i ] + %.018.lcssa.i48.i = phi i32 [ %2132, %2127 ], [ %2138, %.lr.ph.i50.i ] + %2144 = sub nsw i32 8, %.018.lcssa.i48.i + %2145 = lshr i32 %.021.lcssa.i46.i, %2144 + %2146 = or i32 %2145, %.020.lcssa.i47.i br label %drmp3_bs_get_bits.exit56.i -drmp3_bs_get_bits.exit56.i: ; preds = %._crit_edge.i45.i, %2120 - %.019.i49.i = phi i32 [ %2148, %._crit_edge.i45.i ], [ 0, %2120 ] - br i1 %2080, label %.lr.ph.i171, label %.loopexit.i +drmp3_bs_get_bits.exit56.i: ; preds = %._crit_edge.i45.i, %2118 + %.019.i49.i = phi i32 [ %2146, %._crit_edge.i45.i ], [ 0, %2118 ] + br i1 %2078, label %.lr.ph.i171, label %.loopexit.i .lr.ph.i171: ; preds = %drmp3_bs_get_bits.exit56.i - %2149 = lshr exact i32 %2122, 1 - br label %2150 - -2150: ; preds = %2150, %.lr.ph.i171 - %indvars.iv.i172 = phi i64 [ 0, %.lr.ph.i171 ], [ %indvars.iv.next.i173, %2150 ] - %.065.i = phi i32 [ %.019.i49.i, %.lr.ph.i171 ], [ %2155, %2150 ] - %2151 = urem i32 %.065.i, %2123 - %2152 = sub i32 %2151, %2149 - %2153 = sitofp i32 %2152 to float - %2154 = getelementptr inbounds float, ptr %.04169.i, i64 %indvars.iv.i172 - store float %2153, ptr %2154, align 4 + %2147 = lshr exact i32 %2120, 1 + br label %2148 + +2148: ; preds = %2148, %.lr.ph.i171 + %indvars.iv.i172 = phi i64 [ 0, %.lr.ph.i171 ], [ %indvars.iv.next.i173, %2148 ] + %.065.i = phi i32 [ %.019.i49.i, %.lr.ph.i171 ], [ %2153, %2148 ] + %2149 = urem i32 %.065.i, %2121 + %2150 = sub i32 %2149, %2147 + %2151 = sitofp i32 %2150 to float + %2152 = getelementptr inbounds float, ptr %.04169.i, i64 %indvars.iv.i172 + store float %2151, ptr %2152, align 4 %indvars.iv.next.i173 = add nuw nsw i64 %indvars.iv.i172, 1 - %2155 = udiv i32 %.065.i, %2123 + %2153 = udiv i32 %.065.i, %2121 %exitcond.not.i174 = icmp eq i64 %indvars.iv.next.i173, %wide.trip.count.i168 - br i1 %exitcond.not.i174, label %.loopexit.i, label %2150 + br i1 %exitcond.not.i174, label %.loopexit.i, label %2148 -.loopexit.i: ; preds = %2150, %drmp3_bs_get_bits.exit.i180, %drmp3_bs_get_bits.exit56.i, %2093, %.lr.ph72.i - %.sroa.24.18 = phi i32 [ %.sroa.24.16, %.lr.ph72.i ], [ %.sroa.24.16, %2093 ], [ %2127, %drmp3_bs_get_bits.exit56.i ], [ %2095, %drmp3_bs_get_bits.exit.i180 ], [ %2127, %2150 ] - %2156 = sext i32 %.14368.i to i64 - %2157 = getelementptr inbounds float, ptr %.04169.i, i64 %2156 - %2158 = sub nsw i32 18, %.14368.i +.loopexit.i: ; preds = %2148, %drmp3_bs_get_bits.exit.i180, %drmp3_bs_get_bits.exit56.i, %2091, %.lr.ph72.i + %.sroa.24.18 = phi i32 [ %.sroa.24.16, %.lr.ph72.i ], [ %.sroa.24.16, %2091 ], [ %2125, %drmp3_bs_get_bits.exit56.i ], [ %2093, %drmp3_bs_get_bits.exit.i180 ], [ %2125, %2148 ] + %2154 = sext i32 %.14368.i to i64 + %2155 = getelementptr inbounds float, ptr %.04169.i, i64 %2154 + %2156 = sub nsw i32 18, %.14368.i %indvars.iv.next90.i = add nuw nsw i64 %indvars.iv89.i, 1 %exitcond469.not = icmp eq i64 %indvars.iv.next90.i, %umax br i1 %exitcond469.not, label %._crit_edge.i170, label %.lr.ph72.i -._crit_edge.i170: ; preds = %.loopexit.i, %2084 - %.sroa.24.19 = phi i32 [ %.sroa.24.15, %2084 ], [ %.sroa.24.18, %.loopexit.i ] - %2159 = phi i8 [ 0, %2084 ], [ %.pre.i167, %.loopexit.i ] - %.143.lcssa.i = phi i32 [ %.04273.i, %2084 ], [ %2158, %.loopexit.i ] +._crit_edge.i170: ; preds = %.loopexit.i, %2082 + %.sroa.24.19 = phi i32 [ %.sroa.24.15, %2082 ], [ %.sroa.24.18, %.loopexit.i ] + %2157 = phi i8 [ 0, %2082 ], [ %.pre.i167, %.loopexit.i ] + %.143.lcssa.i = phi i32 [ %.04273.i, %2082 ], [ %2156, %.loopexit.i ] %indvars.iv.next93.i = add nuw nsw i64 %indvars.iv92.i, 1 %exitcond95.not.i = icmp eq i64 %indvars.iv.next93.i, 4 - br i1 %exitcond95.not.i, label %drmp3_L12_dequantize_granule.exit, label %2084 + br i1 %exitcond95.not.i, label %drmp3_L12_dequantize_granule.exit, label %2082 drmp3_L12_dequantize_granule.exit: ; preds = %._crit_edge.i170 - %2160 = shl nsw i32 %2079, 2 - %2161 = add nsw i32 %2160, %.179380 - %2162 = icmp eq i32 %2161, 12 - br i1 %2162, label %2163, label %2196 - -2163: ; preds = %drmp3_L12_dequantize_granule.exit - %2164 = load i8, ptr %1905, align 1 - %2165 = zext i8 %2164 to i32 - %2166 = mul nuw nsw i32 %2165, 18 - %2167 = zext nneg i32 %2166 to i64 - %2168 = getelementptr inbounds float, ptr %2071, i64 %2167 - %2169 = getelementptr inbounds float, ptr %2070, i64 %2167 - %2170 = zext i8 %.pre.i167 to i32 - %2171 = sub nsw i32 %2170, %2165 - %2172 = mul nsw i32 %2171, 18 - %2173 = sext i32 %2172 to i64 - %2174 = shl nsw i64 %2173, 2 - call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 8 %2168, ptr nonnull align 8 %2169, i64 %2174, i1 false) + %2158 = shl nsw i32 %2077, 2 + %2159 = add nsw i32 %2158, %.179380 + %2160 = icmp eq i32 %2159, 12 + br i1 %2160, label %2161, label %2194 + +2161: ; preds = %drmp3_L12_dequantize_granule.exit + %2162 = load i8, ptr %1903, align 1 + %2163 = zext i8 %2162 to i32 + %2164 = mul nuw nsw i32 %2163, 18 + %2165 = zext nneg i32 %2164 to i64 + %2166 = getelementptr inbounds float, ptr %2069, i64 %2165 + %2167 = getelementptr inbounds float, ptr %2068, i64 %2165 + %2168 = zext i8 %.pre.i167 to i32 + %2169 = sub nsw i32 %2168, %2163 + %2170 = mul nsw i32 %2169, 18 + %2171 = sext i32 %2170 to i64 + %2172 = shl nsw i64 %2171, 2 + call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 8 %2166, ptr nonnull align 8 %2167, i64 %2172, i1 false) %.not.i188 = icmp eq i8 %.pre.i167, 0 br i1 %.not.i188, label %drmp3_L12_apply_scf_384.exit, label %.preheader.i189.preheader -.preheader.i189.preheader: ; preds = %2163 - %2175 = getelementptr inbounds float, ptr %16, i64 %indvars.iv +.preheader.i189.preheader: ; preds = %2161 + %2173 = getelementptr inbounds float, ptr %16, i64 %indvars.iv br label %.preheader.i189 -.preheader.i189: ; preds = %.preheader.i189.preheader, %2187 - %.01824.i = phi i32 [ %2188, %2187 ], [ 0, %.preheader.i189.preheader ] - %.01923.i = phi ptr [ %2189, %2187 ], [ %2070, %.preheader.i189.preheader ] - %.02022.i = phi ptr [ %2190, %2187 ], [ %2175, %.preheader.i189.preheader ] - %2176 = getelementptr inbounds i8, ptr %.02022.i, i64 12 - %2177 = load float, ptr %.02022.i, align 4 - %2178 = load float, ptr %2176, align 4 - br label %2179 - -2179: ; preds = %2179, %.preheader.i189 - %indvars.iv.i190 = phi i64 [ 0, %.preheader.i189 ], [ %indvars.iv.next.i191, %2179 ] - %2180 = getelementptr inbounds float, ptr %.01923.i, i64 %indvars.iv.i190 - %2181 = load float, ptr %2180, align 4 - %2182 = fmul float %2177, %2181 - store float %2182, ptr %2180, align 4 - %2183 = or disjoint i64 %indvars.iv.i190, 576 - %2184 = getelementptr inbounds float, ptr %.01923.i, i64 %2183 - %2185 = load float, ptr %2184, align 4 - %2186 = fmul float %2178, %2185 - store float %2186, ptr %2184, align 4 +.preheader.i189: ; preds = %.preheader.i189.preheader, %2185 + %.01824.i = phi i32 [ %2186, %2185 ], [ 0, %.preheader.i189.preheader ] + %.01923.i = phi ptr [ %2187, %2185 ], [ %2068, %.preheader.i189.preheader ] + %.02022.i = phi ptr [ %2188, %2185 ], [ %2173, %.preheader.i189.preheader ] + %2174 = getelementptr inbounds i8, ptr %.02022.i, i64 12 + %2175 = load float, ptr %.02022.i, align 4 + %2176 = load float, ptr %2174, align 4 + br label %2177 + +2177: ; preds = %2177, %.preheader.i189 + %indvars.iv.i190 = phi i64 [ 0, %.preheader.i189 ], [ %indvars.iv.next.i191, %2177 ] + %2178 = getelementptr inbounds float, ptr %.01923.i, i64 %indvars.iv.i190 + %2179 = load float, ptr %2178, align 4 + %2180 = fmul float %2175, %2179 + store float %2180, ptr %2178, align 4 + %2181 = or disjoint i64 %indvars.iv.i190, 576 + %2182 = getelementptr inbounds float, ptr %.01923.i, i64 %2181 + %2183 = load float, ptr %2182, align 4 + %2184 = fmul float %2176, %2183 + store float %2184, ptr %2182, align 4 %indvars.iv.next.i191 = add nuw nsw i64 %indvars.iv.i190, 1 %exitcond.not.i192 = icmp eq i64 %indvars.iv.next.i191, 12 - br i1 %exitcond.not.i192, label %2187, label %2179 + br i1 %exitcond.not.i192, label %2185, label %2177 -2187: ; preds = %2179 - %2188 = add nuw nsw i32 %.01824.i, 1 - %2189 = getelementptr inbounds i8, ptr %.01923.i, i64 72 - %2190 = getelementptr inbounds i8, ptr %.02022.i, i64 24 - %exitcond470.not = icmp eq i32 %2188, %2170 +2185: ; preds = %2177 + %2186 = add nuw nsw i32 %.01824.i, 1 + %2187 = getelementptr inbounds i8, ptr %.01923.i, i64 72 + %2188 = getelementptr inbounds i8, ptr %.02022.i, i64 24 + %exitcond470.not = icmp eq i32 %2186, %2168 br i1 %exitcond470.not, label %drmp3_L12_apply_scf_384.exit, label %.preheader.i189 -drmp3_L12_apply_scf_384.exit: ; preds = %2187, %2163 - %2191 = load i32, ptr %343, align 4 - call fastcc void @drmp3d_synth_granule(ptr noundef nonnull %2072, ptr noundef nonnull %2070, i32 noundef 12, i32 noundef %2191, ptr noundef %.1382, ptr noundef nonnull %2073) - call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(4608) %2070, i8 0, i64 4608, i1 false) - %2192 = load i32, ptr %343, align 4 - %2193 = sext i32 %2192 to i64 - %2194 = mul nsw i64 %2193, 768 - %2195 = getelementptr inbounds i8, ptr %.1382, i64 %2194 - br label %2196 - -2196: ; preds = %drmp3_L12_apply_scf_384.exit, %drmp3_L12_dequantize_granule.exit - %.280 = phi i32 [ 0, %drmp3_L12_apply_scf_384.exit ], [ %2161, %drmp3_L12_dequantize_granule.exit ] - %.2 = phi ptr [ %2195, %drmp3_L12_apply_scf_384.exit ], [ %.1382, %drmp3_L12_dequantize_granule.exit ] - %2197 = icmp sgt i32 %.sroa.24.19, %380 - br i1 %2197, label %2198, label %2074 - -2198: ; preds = %2196 +drmp3_L12_apply_scf_384.exit: ; preds = %2185, %2161 + %2189 = load i32, ptr %343, align 4 + call fastcc void @drmp3d_synth_granule(ptr noundef nonnull %2070, ptr noundef nonnull %2068, i32 noundef 12, i32 noundef %2189, ptr noundef %.1382, ptr noundef nonnull %2071) + call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(4608) %2068, i8 0, i64 4608, i1 false) + %2190 = load i32, ptr %343, align 4 + %2191 = sext i32 %2190 to i64 + %2192 = mul nsw i64 %2191, 768 + %2193 = getelementptr inbounds i8, ptr %.1382, i64 %2192 + br label %2194 + +2194: ; preds = %drmp3_L12_apply_scf_384.exit, %drmp3_L12_dequantize_granule.exit + %.280 = phi i32 [ 0, %drmp3_L12_apply_scf_384.exit ], [ %2159, %drmp3_L12_dequantize_granule.exit ] + %.2 = phi ptr [ %2193, %drmp3_L12_apply_scf_384.exit ], [ %.1382, %drmp3_L12_dequantize_granule.exit ] + %2195 = icmp sgt i32 %.sroa.24.19, %380 + br i1 %2195, label %2196, label %2072 + +2196: ; preds = %2194 store i8 0, ptr %19, align 4 - br label %2209 - -.loopexit301: ; preds = %2074, %drmp3_L3_save_reservoir.exit - %.075 = phi i32 [ %852, %drmp3_L3_save_reservoir.exit ], [ 1, %2074 ] - %2199 = getelementptr i8, ptr %0, i64 6153 - %.val96 = load i8, ptr %2199, align 1 - %2200 = zext i8 %.val96 to i32 - %2201 = and i32 %2200, 6 - %2202 = icmp eq i32 %2201, 6 - %2203 = and i32 %2200, 14 - %2204 = icmp eq i32 %2203, 2 - %2205 = zext i1 %2204 to i32 - %2206 = lshr exact i32 1152, %2205 - %2207 = select i1 %2202, i32 384, i32 %2206 - %2208 = mul nuw nsw i32 %2207, %.075 - br label %2209 - -2209: ; preds = %.loopexit301, %2198, %1853, %drmp3_L3_read_side_info.exit.thread, %drmp3d_find_frame.exit.thread - %.0 = phi i32 [ 0, %drmp3_L3_read_side_info.exit.thread ], [ %2208, %.loopexit301 ], [ %1861, %1853 ], [ 0, %2198 ], [ 0, %drmp3d_find_frame.exit.thread ] + br label %2207 + +.loopexit301: ; preds = %2072, %drmp3_L3_save_reservoir.exit + %.075 = phi i32 [ %852, %drmp3_L3_save_reservoir.exit ], [ 1, %2072 ] + %2197 = getelementptr i8, ptr %0, i64 6153 + %.val96 = load i8, ptr %2197, align 1 + %2198 = zext i8 %.val96 to i32 + %2199 = and i32 %2198, 6 + %2200 = icmp eq i32 %2199, 6 + %2201 = and i32 %2198, 14 + %2202 = icmp eq i32 %2201, 2 + %2203 = zext i1 %2202 to i32 + %2204 = lshr exact i32 1152, %2203 + %2205 = select i1 %2200, i32 384, i32 %2204 + %2206 = mul nuw nsw i32 %2205, %.075 + br label %2207 + +2207: ; preds = %.loopexit301, %2196, %1851, %drmp3_L3_read_side_info.exit.thread, %drmp3d_find_frame.exit.thread + %.0 = phi i32 [ 0, %drmp3_L3_read_side_info.exit.thread ], [ %2206, %.loopexit301 ], [ %1859, %1851 ], [ 0, %2196 ], [ 0, %drmp3d_find_frame.exit.thread ] ret i32 %.0 } diff --git a/bench/rocksdb/optimized/block_cache_tracer.cc.ll b/bench/rocksdb/optimized/block_cache_tracer.cc.ll index 5ee5e3b4817..7ea61b56ba5 100644 --- a/bench/rocksdb/optimized/block_cache_tracer.cc.ll +++ b/bench/rocksdb/optimized/block_cache_tracer.cc.ll @@ -3307,8 +3307,8 @@ _ZN7rocksdb12_GLOBAL__N_111ShouldTraceERKNS_5SliceERKNS_22BlockCacheTraceOptions %shr11.i.i.i.i.i = lshr i64 %mul7.i.i.i.i.i, 32 %mul15.i.i.i.i.i = mul nuw i64 %shr3.i.i.i.i.i, %shr5.i.i.i.i.i %add12.i.i.i.i.i = add nuw i64 %shr11.i.i.i.i.i, %mul15.i.i.i.i.i - %add16.i.i.i.i.i = sub nsw i64 0, %shr10.i.i.i.i.i - %cmp4.i = icmp eq i64 %add12.i.i.i.i.i, %add16.i.i.i.i.i + %2 = or i64 %shr10.i.i.i.i.i, %add12.i.i.i.i.i + %cmp4.i = icmp eq i64 %2, 0 br i1 %cmp4.i, label %if.end, label %if.then if.then: ; preds = %_ZN7rocksdb12_GLOBAL__N_111ShouldTraceERKNS_5SliceERKNS_22BlockCacheTraceOptionsE.exit, %entry @@ -3320,8 +3320,8 @@ if.then: ; preds = %_ZN7rocksdb12_GLOBA if.end: ; preds = %lor.lhs.false, %_ZN7rocksdb12_GLOBAL__N_111ShouldTraceERKNS_5SliceERKNS_22BlockCacheTraceOptionsE.exit %trace_writer_mutex_ = getelementptr inbounds i8, ptr %this, i64 8 tail call void @_ZN7rocksdb17InstrumentedMutex4LockEv(ptr noundef nonnull align 8 dereferenceable(60) %trace_writer_mutex_) - %2 = load atomic i64, ptr %writer_ seq_cst, align 8 - %tobool5.not = icmp eq i64 %2, 0 + %3 = load atomic i64, ptr %writer_ seq_cst, align 8 + %tobool5.not = icmp eq i64 %3, 0 br i1 %tobool5.not, label %if.then6, label %if.end7 if.then6: ; preds = %if.end @@ -3331,28 +3331,28 @@ if.then6: ; preds = %if.end br label %cleanup lpad: ; preds = %if.end7 - %3 = landingpad { ptr, i32 } + %4 = landingpad { ptr, i32 } cleanup invoke void @_ZN7rocksdb4port5Mutex6UnlockEv(ptr noundef nonnull align 8 dereferenceable(40) %trace_writer_mutex_) to label %_ZN7rocksdb21InstrumentedMutexLockD2Ev.exit unwind label %terminate.lpad.i terminate.lpad.i: ; preds = %lpad - %4 = landingpad { ptr, i32 } + %5 = landingpad { ptr, i32 } catch ptr null - %5 = extractvalue { ptr, i32 } %4, 0 - tail call void @__clang_call_terminate(ptr %5) #22 + %6 = extractvalue { ptr, i32 } %5, 0 + tail call void @__clang_call_terminate(ptr %6) #22 unreachable _ZN7rocksdb21InstrumentedMutexLockD2Ev.exit: ; preds = %lpad - resume { ptr, i32 } %3 + resume { ptr, i32 } %4 if.end7: ; preds = %if.end - %6 = load atomic i64, ptr %writer_ seq_cst, align 8 - %atomic-temp.i.0.i5 = inttoptr i64 %6 to ptr + %7 = load atomic i64, ptr %writer_ seq_cst, align 8 + %atomic-temp.i.0.i5 = inttoptr i64 %7 to ptr %vtable = load ptr, ptr %atomic-temp.i.0.i5, align 8 %vfn = getelementptr inbounds i8, ptr %vtable, i64 16 - %7 = load ptr, ptr %vfn, align 8 - invoke void %7(ptr sret(%"class.rocksdb::Status") align 8 %agg.result, ptr noundef nonnull align 8 dereferenceable(8) %atomic-temp.i.0.i5, ptr noundef nonnull align 8 dereferenceable(185) %record, ptr noundef nonnull align 8 dereferenceable(16) %block_key, ptr noundef nonnull align 8 dereferenceable(16) %cf_name, ptr noundef nonnull align 8 dereferenceable(16) %referenced_key) + %8 = load ptr, ptr %vfn, align 8 + invoke void %8(ptr sret(%"class.rocksdb::Status") align 8 %agg.result, ptr noundef nonnull align 8 dereferenceable(8) %atomic-temp.i.0.i5, ptr noundef nonnull align 8 dereferenceable(185) %record, ptr noundef nonnull align 8 dereferenceable(16) %block_key, ptr noundef nonnull align 8 dereferenceable(16) %cf_name, ptr noundef nonnull align 8 dereferenceable(16) %referenced_key) to label %cleanup unwind label %lpad cleanup: ; preds = %if.then6, %if.end7 @@ -3360,10 +3360,10 @@ cleanup: ; preds = %if.then6, %if.end7 to label %return unwind label %terminate.lpad.i6 terminate.lpad.i6: ; preds = %cleanup - %8 = landingpad { ptr, i32 } + %9 = landingpad { ptr, i32 } catch ptr null - %9 = extractvalue { ptr, i32 } %8, 0 - tail call void @__clang_call_terminate(ptr %9) #22 + %10 = extractvalue { ptr, i32 } %9, 0 + tail call void @__clang_call_terminate(ptr %10) #22 unreachable return: ; preds = %cleanup, %if.then diff --git a/bench/rustfmt-rs/optimized/3n0n7c4xrusd0kzl.ll b/bench/rustfmt-rs/optimized/3n0n7c4xrusd0kzl.ll index 40b33d35a63..9a169d03f44 100644 --- a/bench/rustfmt-rs/optimized/3n0n7c4xrusd0kzl.ll +++ b/bench/rustfmt-rs/optimized/3n0n7c4xrusd0kzl.ll @@ -9297,8 +9297,8 @@ common.resume: ; preds = %92, %.body, %18 71: ; preds = %61, %"_ZN4core6option15Option$LT$T$GT$6map_or17h4830eeb4fa402cd3E.exit.i.i.i.i.i.i" %.sroa.763.0.i.i.i.i.i.i = phi i64 [ %65, %61 ], [ 0, %"_ZN4core6option15Option$LT$T$GT$6map_or17h4830eeb4fa402cd3E.exit.i.i.i.i.i.i" ] - %72 = sub nsw i64 0, %.sroa.7.0.i.i.i.i.i.i - %.not.i.i.i = icmp ne i64 %.sroa.763.0.i.i.i.i.i.i, %72 + %72 = or i64 %.sroa.763.0.i.i.i.i.i.i, %.sroa.7.0.i.i.i.i.i.i + %.not.i.i.i = icmp ne i64 %72, 0 %73 = load i64, ptr %40, align 8, !alias.scope !1725, !noalias !1726 %74 = icmp eq i64 %73, 0 %narrow.i.i.i = select i1 %.not.i.i.i, i1 %74, i1 false diff --git a/bench/syn/optimized/2i67i8azb4r5b3mw.ll b/bench/syn/optimized/2i67i8azb4r5b3mw.ll index 7f61c20eb1a..b14594b86b1 100644 --- a/bench/syn/optimized/2i67i8azb4r5b3mw.ll +++ b/bench/syn/optimized/2i67i8azb4r5b3mw.ll @@ -1403,9 +1403,10 @@ define internal noundef zeroext i1 @_ZN4core4iter6traits10exact_size17ExactSizeI %9 = getelementptr inbounds i8, ptr %0, i64 16 %.val.i = load ptr, ptr %9, align 8, !alias.scope !354, !noundef !64 %10 = icmp ne ptr %.val.i, null - %spec.select.i.i.i.neg = sext i1 %10 to i64 - %11 = icmp eq i64 %8, %spec.select.i.i.i.neg - ret i1 %11 + %spec.select.i.i.i = zext i1 %10 to i64 + %11 = or i64 %8, %spec.select.i.i.i + %12 = icmp eq i64 %11, 0 + ret i1 %12 } ; Function Attrs: inlinehint mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(argmem: read) uwtable @@ -1420,9 +1421,10 @@ define internal noundef zeroext i1 @_ZN4core4iter6traits10exact_size17ExactSizeI %9 = getelementptr inbounds i8, ptr %0, i64 16 %.val.i = load ptr, ptr %9, align 8, !alias.scope !360, !noundef !64 %10 = icmp ne ptr %.val.i, null - %spec.select.i.i.i.neg = sext i1 %10 to i64 - %11 = icmp eq i64 %8, %spec.select.i.i.i.neg - ret i1 %11 + %spec.select.i.i.i = zext i1 %10 to i64 + %11 = or i64 %8, %spec.select.i.i.i + %12 = icmp eq i64 %11, 0 + ret i1 %12 } ; Function Attrs: inlinehint mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(argmem: read) uwtable @@ -1437,9 +1439,10 @@ define internal noundef zeroext i1 @_ZN4core4iter6traits10exact_size17ExactSizeI %9 = getelementptr inbounds i8, ptr %0, i64 16 %.val.i = load ptr, ptr %9, align 8, !alias.scope !366, !noundef !64 %10 = icmp ne ptr %.val.i, null - %spec.select.i.i.i.neg = sext i1 %10 to i64 - %11 = icmp eq i64 %8, %spec.select.i.i.i.neg - ret i1 %11 + %spec.select.i.i.i = zext i1 %10 to i64 + %11 = or i64 %8, %spec.select.i.i.i + %12 = icmp eq i64 %11, 0 + ret i1 %12 } ; Function Attrs: inlinehint mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(argmem: read) uwtable @@ -1454,9 +1457,10 @@ define internal noundef zeroext i1 @_ZN4core4iter6traits10exact_size17ExactSizeI %9 = getelementptr inbounds i8, ptr %0, i64 16 %.val.i = load ptr, ptr %9, align 8, !alias.scope !372, !noundef !64 %10 = icmp ne ptr %.val.i, null - %spec.select.i.i.i.neg = sext i1 %10 to i64 - %11 = icmp eq i64 %8, %spec.select.i.i.i.neg - ret i1 %11 + %spec.select.i.i.i = zext i1 %10 to i64 + %11 = or i64 %8, %spec.select.i.i.i + %12 = icmp eq i64 %11, 0 + ret i1 %12 } ; Function Attrs: inlinehint mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(argmem: read) uwtable @@ -1471,9 +1475,10 @@ define internal noundef zeroext i1 @_ZN4core4iter6traits10exact_size17ExactSizeI %9 = getelementptr inbounds i8, ptr %0, i64 16 %.val.i = load ptr, ptr %9, align 8, !alias.scope !378, !noundef !64 %10 = icmp ne ptr %.val.i, null - %spec.select.i.i.i.neg = sext i1 %10 to i64 - %11 = icmp eq i64 %8, %spec.select.i.i.i.neg - ret i1 %11 + %spec.select.i.i.i = zext i1 %10 to i64 + %11 = or i64 %8, %spec.select.i.i.i + %12 = icmp eq i64 %11, 0 + ret i1 %12 } ; Function Attrs: inlinehint mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(argmem: read) uwtable @@ -1488,9 +1493,10 @@ define internal noundef zeroext i1 @_ZN4core4iter6traits10exact_size17ExactSizeI %9 = getelementptr inbounds i8, ptr %0, i64 16 %.val.i = load ptr, ptr %9, align 8, !alias.scope !384, !noundef !64 %10 = icmp ne ptr %.val.i, null - %spec.select.i.i.i.neg = sext i1 %10 to i64 - %11 = icmp eq i64 %8, %spec.select.i.i.i.neg - ret i1 %11 + %spec.select.i.i.i = zext i1 %10 to i64 + %11 = or i64 %8, %spec.select.i.i.i + %12 = icmp eq i64 %11, 0 + ret i1 %12 } ; Function Attrs: inlinehint mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(argmem: read) uwtable @@ -1505,9 +1511,10 @@ define internal noundef zeroext i1 @_ZN4core4iter6traits10exact_size17ExactSizeI %9 = getelementptr inbounds i8, ptr %0, i64 16 %.val.i = load ptr, ptr %9, align 8, !alias.scope !390, !noundef !64 %10 = icmp ne ptr %.val.i, null - %spec.select.i.i.i.neg = sext i1 %10 to i64 - %11 = icmp eq i64 %8, %spec.select.i.i.i.neg - ret i1 %11 + %spec.select.i.i.i = zext i1 %10 to i64 + %11 = or i64 %8, %spec.select.i.i.i + %12 = icmp eq i64 %11, 0 + ret i1 %12 } ; Function Attrs: inlinehint nofree norecurse nosync nounwind nonlazybind memory(argmem: readwrite) uwtable diff --git a/bench/velox/optimized/MemoryArbitrator.cpp.ll b/bench/velox/optimized/MemoryArbitrator.cpp.ll index 0d43539b01c..4c167cdedce 100644 --- a/bench/velox/optimized/MemoryArbitrator.cpp.ll +++ b/bench/velox/optimized/MemoryArbitrator.cpp.ll @@ -2868,12 +2868,14 @@ entry: %41 = load i64, ptr %numReleases172, align 8 %cmp173.not = icmp ult i64 %40, %41 %cmp179 = icmp ugt i64 %40, %41 - %spec.select92.neg = sext i1 %cmp179 to i32 - %inc175.neg = sext i1 %cmp173.not to i32 - %cmp187 = icmp ne i32 %op.rdx95, %spec.select92.neg - %cmp188 = icmp ne i32 %op.rdx93, %inc175.neg - %42 = select i1 %cmp187, i1 %cmp188, i1 false - br i1 %42, label %if.then190, label %if.end191 + %spec.select92 = zext i1 %cmp179 to i32 + %inc175 = zext i1 %cmp173.not to i32 + %42 = or i32 %op.rdx95, %spec.select92 + %cmp187 = icmp ne i32 %42, 0 + %43 = or i32 %op.rdx93, %inc175 + %cmp188 = icmp ne i32 %43, 0 + %44 = select i1 %cmp187, i1 %cmp188, i1 false + br i1 %44, label %if.then190, label %if.end191 if.then190: ; preds = %entry tail call void @llvm.trap() diff --git a/bench/velox/optimized/SpillStats.cpp.ll b/bench/velox/optimized/SpillStats.cpp.ll index decceeeee5a..6225f0e8ec9 100644 --- a/bench/velox/optimized/SpillStats.cpp.ll +++ b/bench/velox/optimized/SpillStats.cpp.ll @@ -812,12 +812,14 @@ entry: %25 = load i64, ptr %spillMaxLevelExceededCount188, align 8 %cmp189.not = icmp ult i64 %24, %25 %cmp195 = icmp ugt i64 %24, %25 - %spec.select100.neg = sext i1 %cmp195 to i32 - %inc191.neg = sext i1 %cmp189.not to i32 - %cmp203 = icmp ne i32 %gtCount.11, %spec.select100.neg - %cmp204 = icmp ne i32 %ltCount.11, %inc191.neg - %26 = select i1 %cmp203, i1 %cmp204, i1 false - br i1 %26, label %if.then206, label %if.end207 + %spec.select100 = zext i1 %cmp195 to i32 + %inc191 = zext i1 %cmp189.not to i32 + %26 = or i32 %gtCount.11, %spec.select100 + %cmp203 = icmp ne i32 %26, 0 + %27 = or i32 %ltCount.11, %inc191 + %cmp204 = icmp ne i32 %27, 0 + %28 = select i1 %cmp203, i1 %cmp204, i1 false + br i1 %28, label %if.then206, label %if.end207 if.then206: ; preds = %entry tail call void @llvm.trap() diff --git a/bench/wireshark/optimized/packet-dns.c.ll b/bench/wireshark/optimized/packet-dns.c.ll index 8f8ab860764..08d3e3d7dce 100644 --- a/bench/wireshark/optimized/packet-dns.c.ll +++ b/bench/wireshark/optimized/packet-dns.c.ll @@ -4032,8 +4032,8 @@ define internal noundef i32 @dissect_dns_heur(ptr noundef %0, ptr noundef %1, pt 26: ; preds = %22 %27 = zext nneg i16 %11 to i32 %28 = zext nneg i16 %12 to i32 - %29 = sub nsw i32 0, %28 - %30 = icmp eq i32 %27, %29 + %29 = or i32 %28, %27 + %30 = icmp eq i32 %29, 0 br i1 %30, label %42, label %31 31: ; preds = %26 diff --git a/bench/wolfssl/optimized/rsa.c.ll b/bench/wolfssl/optimized/rsa.c.ll index fa19604d0af..5a46e937de7 100644 --- a/bench/wolfssl/optimized/rsa.c.ll +++ b/bench/wolfssl/optimized/rsa.c.ll @@ -993,8 +993,8 @@ while.body12.i133.i: ; preds = %while.cond9.prehead ForceZero.exit145.i: ; preds = %while.body12.i133.i, %while.cond9.preheader.i129.i %add38.i = add nuw i32 %add6.i, %call.i %sub41.i = add i32 %pkcsBlockLen, -1 - %cmp4210.i = icmp ult i32 %add38.i, %sub41.i - br i1 %cmp4210.i, label %for.body.preheader.i, label %for.end.i14 + %cmp429.i = icmp ult i32 %add38.i, %sub41.i + br i1 %cmp429.i, label %for.body.preheader.i, label %for.end.i14 for.body.preheader.i: ; preds = %ForceZero.exit145.i %39 = or disjoint i32 %mul.i, 1 @@ -1003,13 +1003,13 @@ for.body.preheader.i: ; preds = %ForceZero.exit145.i for.body.i15: ; preds = %for.body.i15, %for.body.preheader.i %indvars.iv.i16 = phi i64 [ %40, %for.body.preheader.i ], [ %indvars.iv.next.i17, %for.body.i15 ] - %inc.013.i = phi i32 [ 1, %for.body.preheader.i ], [ %and.i, %for.body.i15 ] - %idx.011.i = phi i32 [ %add38.i, %for.body.preheader.i ], [ %add47.i, %for.body.i15 ] + %inc.012.i = phi i32 [ 1, %for.body.preheader.i ], [ %and.i, %for.body.i15 ] + %idx.010.i = phi i32 [ %add38.i, %for.body.preheader.i ], [ %add47.i, %for.body.i15 ] %arrayidx.i = getelementptr inbounds i8, ptr %pkcsBlock, i64 %indvars.iv.i16 %41 = load i8, ptr %arrayidx.i, align 1 %.not.i = icmp eq i8 %41, 0 - %and.i = select i1 %.not.i, i32 %inc.013.i, i32 0 - %add47.i = add i32 %and.i, %idx.011.i + %and.i = select i1 %.not.i, i32 %inc.012.i, i32 0 + %add47.i = add i32 %and.i, %idx.010.i %indvars.iv.next.i17 = add nuw nsw i64 %indvars.iv.i16, 1 %lftr.wideiv.i = trunc i64 %indvars.iv.next.i17 to i32 %exitcond.not.i18 = icmp eq i32 %sub41.i, %lftr.wideiv.i @@ -1050,9 +1050,9 @@ ConstantCompare.exit.i: ; preds = %for.body.i148.i, %i %add64.i = add nuw nsw i32 %compareSum.0.lcssa.i.i, %xor.i %46 = load i8, ptr %pkcsBlock, align 1 %conv66.i = zext i8 %46 to i32 - %add68.i = sub nsw i32 0, %conv66.i - %.not8.i = icmp eq i32 %add64.i, %add68.i - %or.i154.i = select i1 %.not8.i, i32 %inc60.i, i32 %pkcsBlockLen + %47 = or i32 %add64.i, %conv66.i + %.not7.i = icmp eq i32 %47, 0 + %or.i154.i = select i1 %.not7.i, i32 %inc60.i, i32 %pkcsBlockLen %idx.ext71.i = zext i32 %or.i154.i to i64 %add.ptr72.i = getelementptr inbounds i8, ptr %pkcsBlock, i64 %idx.ext71.i store ptr %add.ptr72.i, ptr %out, align 8 @@ -1073,8 +1073,8 @@ do.end5: ; preds = %entry if.end.i21: ; preds = %do.end5 %sub.i = add i32 %bits, 7 %and.i22 = and i32 %sub.i, 7 - %47 = load i8, ptr %pkcsBlock, align 1 - %conv.i23 = zext i8 %47 to i32 + %48 = load i8, ptr %pkcsBlock, align 1 + %conv.i23 = zext i8 %48 to i32 %shl.i = shl nuw nsw i32 255, %and.i22 %and1.i = and i32 %shl.i, %conv.i23 %cmp2.not.i = icmp eq i32 %and1.i, 0 @@ -1114,8 +1114,8 @@ if.end29.i: ; preds = %if.else.i, %if.then if.end33.i: ; preds = %if.end29.i %idxprom.i26 = zext i32 %sub10.i to i64 %arrayidx35.i = getelementptr inbounds i8, ptr %pkcsBlock.addr.0.i, i64 %idxprom.i26 - %48 = load i8, ptr %arrayidx35.i, align 1 - %cmp37.not.i = icmp eq i8 %48, -68 + %49 = load i8, ptr %arrayidx35.i, align 1 + %cmp37.not.i = icmp eq i8 %49, -68 br i1 %cmp37.not.i, label %if.end42.i, label %sw.epilog if.end42.i: ; preds = %if.end33.i @@ -1136,30 +1136,30 @@ if.then53.i: ; preds = %if.end48.i if.end55.i: ; preds = %if.end48.i %notmask.i = shl nsw i32 -1, %and.i22 - %49 = load i8, ptr %call44.i, align 1 - %50 = trunc i32 %notmask.i to i8 - %51 = xor i8 %50, -1 - %conv63.i = and i8 %49, %51 + %50 = load i8, ptr %call44.i, align 1 + %51 = trunc i32 %notmask.i to i8 + %52 = xor i8 %51, -1 + %conv63.i = and i8 %50, %52 store i8 %conv63.i, ptr %call44.i, align 1 - %52 = load i8, ptr %pkcsBlock.addr.0.i, align 1 - %conv71.i = and i8 %52, %51 + %53 = load i8, ptr %pkcsBlock.addr.0.i, align 1 + %conv71.i = and i8 %53, %52 store i8 %conv71.i, ptr %pkcsBlock.addr.0.i, align 1 - %53 = xor i32 %saltLen.addr.0.i, -1 - %sub73.i28 = add nsw i32 %sub11.i, %53 + %54 = xor i32 %saltLen.addr.0.i, -1 + %sub73.i28 = add nsw i32 %sub11.i, %54 %cmp742.i = icmp sgt i32 %sub73.i28, 0 br i1 %cmp742.i, label %for.body.preheader.i30, label %for.end.i29 for.body.preheader.i30: ; preds = %if.end55.i - %54 = zext nneg i32 %sub73.i28 to i64 + %55 = zext nneg i32 %sub73.i28 to i64 br label %for.body.i31 for.body.i31: ; preds = %for.inc.i, %for.body.preheader.i30 %indvars.iv.i32 = phi i64 [ 0, %for.body.preheader.i30 ], [ %indvars.iv.next.i33, %for.inc.i ] %arrayidx77.i = getelementptr inbounds i8, ptr %call44.i, i64 %indvars.iv.i32 - %55 = load i8, ptr %arrayidx77.i, align 1 + %56 = load i8, ptr %arrayidx77.i, align 1 %arrayidx80.i = getelementptr inbounds i8, ptr %pkcsBlock.addr.0.i, i64 %indvars.iv.i32 - %56 = load i8, ptr %arrayidx80.i, align 1 - %cmp82.not.i = icmp eq i8 %55, %56 + %57 = load i8, ptr %arrayidx80.i, align 1 + %cmp82.not.i = icmp eq i8 %56, %57 br i1 %cmp82.not.i, label %for.inc.i, label %if.then87.i if.then87.i: ; preds = %for.body.i31 @@ -1168,22 +1168,22 @@ if.then87.i: ; preds = %for.body.i31 for.inc.i: ; preds = %for.body.i31 %indvars.iv.next.i33 = add nuw nsw i64 %indvars.iv.i32, 1 - %exitcond.not = icmp eq i64 %indvars.iv.next.i33, %54 + %exitcond.not = icmp eq i64 %indvars.iv.next.i33, %55 br i1 %exitcond.not, label %for.end.loopexit.i, label %for.body.i31, !llvm.loop !16 for.end.loopexit.i: ; preds = %for.inc.i - %arrayidx96.phi.trans.insert.i = getelementptr inbounds i8, ptr %pkcsBlock.addr.0.i, i64 %54 + %arrayidx96.phi.trans.insert.i = getelementptr inbounds i8, ptr %pkcsBlock.addr.0.i, i64 %55 %.pre.i = load i8, ptr %arrayidx96.phi.trans.insert.i, align 1 br label %for.end.i29 for.end.i29: ; preds = %if.end55.i, %for.end.loopexit.i - %57 = phi i8 [ %.pre.i, %for.end.loopexit.i ], [ %conv71.i, %if.end55.i ] + %58 = phi i8 [ %.pre.i, %for.end.loopexit.i ], [ %conv71.i, %if.end55.i ] %i.0.lcssa.i = phi i32 [ %sub73.i28, %for.end.loopexit.i ], [ 0, %if.end55.i ] %idxprom92.i = zext nneg i32 %i.0.lcssa.i to i64 %arrayidx93.i = getelementptr inbounds i8, ptr %call44.i, i64 %idxprom92.i - %58 = load i8, ptr %arrayidx93.i, align 1 - %59 = xor i8 %58, %57 - %cmp98.not.i = icmp eq i8 %59, 1 + %59 = load i8, ptr %arrayidx93.i, align 1 + %60 = xor i8 %59, %58 + %cmp98.not.i = icmp eq i8 %60, 1 br i1 %cmp98.not.i, label %if.end107.i, label %if.then103.i if.then103.i: ; preds = %for.end.i29 diff --git a/llvm/llvm-project b/llvm/llvm-project index d3016aa889a..e248f0df14e 160000 --- a/llvm/llvm-project +++ b/llvm/llvm-project @@ -1 +1 @@ -Subproject commit d3016aa889ac12fd8a047d68fed2ddaca107b990 +Subproject commit e248f0df14e407b8ae98cd31fb2e77fc058f3c7e